about summary refs log tree commit homepage
path: root/test/test_http11.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_http11.rb')
-rw-r--r--test/test_http11.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/test_http11.rb b/test/test_http11.rb
new file mode 100644
index 0000000..8f07900
--- /dev/null
+++ b/test/test_http11.rb
@@ -0,0 +1,31 @@
+require 'test/unit'
+require 'http11'
+
+
+class HttpParserTest < Test::Unit::TestCase
+    
+    def test_parse_simple
+            parser = HttpParser.new
+            req = {}
+            http = "GET / HTTP/1.1\r\n\r\n"
+            nread = parser.execute(req, http);
+            assert nread == http.length, "Failed to parse the full HTTP request"
+            assert parser.finished?, "Parser didn't finish"
+            assert !parser.error?, "Parser had error"
+            assert nread == parser.nread, "Number read returned from execute does not match"
+            parser.reset
+            assert parser.nread == 0, "Number read after reset should be 0"
+    end
+    
+    
+    def test_parse_error
+        parser = HttpParser.new
+        req = {}
+        bad_http = "GET / SsUTF/1.1"
+        nread = parser.execute(req, bad_http)
+        assert nread < bad_http.length, "Number read should be less than total on error"
+        assert !parser.finished?, "Parser shouldn't be finished"
+        assert parser.error?, "Parser SHOULD have error"
+    end
+end
+