3 require 'unicorn/http11'
4 require 'unicorn/trailer_parser'
6 class TestTrailerParser < Test::Unit::TestCase
9 tp = Unicorn::TrailerParser.new('Content-MD5')
11 assert ! tp.execute!(env, "Content-MD5: asdf")
13 assert tp.execute!(env, "Content-MD5: asdf\r\n")
14 assert_equal 'asdf', env['HTTP_CONTENT_MD5']
15 assert_equal 1, env.size
18 def test_invalid_trailer
19 tp = Unicorn::TrailerParser.new('Content-MD5')
21 assert_raises(Unicorn::HttpParserError) {
22 tp.execute!(env, "Content-MD: asdf\r\n")
27 def test_multiple_trailer
28 tp = Unicorn::TrailerParser.new('Foo,Bar')
30 buf = "Bar: a\r\nFoo: b\r\n"
31 assert tp.execute!(env, buf)
32 assert_equal 'a', env['HTTP_BAR']
33 assert_equal 'b', env['HTTP_FOO']
37 tp = Unicorn::TrailerParser.new('Foo,Bar')
39 buf = "Bar#{'a' * 1024}: a\r\nFoo: b\r\n"
40 assert_raises(Unicorn::HttpParserError) { tp.execute!(env, buf) }
44 def test_too_big_value
45 tp = Unicorn::TrailerParser.new('Foo,Bar')
47 buf = "Bar: #{'a' * (1024 * 1024)}: a\r\nFoo: b\r\n"
48 assert_raises(Unicorn::HttpParserError) { tp.execute!(env, buf) }