diff options
Diffstat (limited to 'test/test_parser.rb')
-rw-r--r-- | test/test_parser.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/test_parser.rb b/test/test_parser.rb index 7eab684..dab2e77 100644 --- a/test/test_parser.rb +++ b/test/test_parser.rb @@ -254,4 +254,39 @@ class TestParser < Test::Unit::TestCase end end + def test_leading_tab + resp = "HTTP/1.1 200 OK\r\nHost:\texample.com\r\n\r\n" + assert @hp.headers(env = {}, resp) + assert_equal 'example.com', env['Host'] + end + + def test_trailing_whitespace + resp = "HTTP/1.1 200 OK\r\nHost: example.com \r\n\r\n" + assert @hp.headers(env = {}, resp) + assert_equal 'example.com', env['Host'] + end + + def test_trailing_tab + resp = "HTTP/1.1 200 OK\r\nHost: example.com\t\r\n\r\n" + assert @hp.headers(env = {}, resp) + assert_equal 'example.com', env['Host'] + end + + def test_trailing_multiple_linear_whitespace + resp = "HTTP/1.1 200 OK\r\nHost: example.com\t \t \t\r\n\r\n" + assert @hp.headers(env = {}, resp) + assert_equal 'example.com', env['Host'] + end + + def test_embedded_linear_whitespace_ok + resp = "HTTP/1.1 200 OK\r\nX-Space: hello\t world\t \r\n\r\n" + assert @hp.headers(env = {}, resp) + assert_equal "hello\t world", env["X-Space"] + end + + def test_empty_header + resp = "HTTP/1.1 200 OK\r\nHost: \r\n\r\n" + assert @hp.headers(env = {}, resp) + assert_equal '', env['Host'] + end end |