def test_each_body_with_keep_alive
@request.method = 'POST'
@request.path = '/'
@request.version = 'HTTP/1.1'
assert(! @request.conn_closed?)
pio = PseudoIO.new
pio << 'ABCDEFG'
pio << 'End_of_Body'
@request.set_header('Content-Length', '7')
@request.set_reader(pio)
byte_list = %w[ A B C D E F G ]
@request.each_body(1) do |messg|
assert_equal(byte_list.first, messg)
byte_list.shift
end
assert(byte_list.empty?)
assert_exception(RuntimeError) { @request.each_body{} }
assert_equal('End_of_Body', pio.read)
pio = PseudoIO.new
pio << 'ABCDEFG'
pio << 'End_of_Body'
@request.set_reader(pio)
byte_list1 = %w[ A B C D ]
@request.each_body(1) do |messg|
assert_equal(byte_list1.first, messg)
byte_list1.shift
break if byte_list1.empty?
end
byte_list2 = %w[ E F G ]
@request.each_body(1) do |messg|
assert_equal(byte_list2.first, messg)
byte_list2.shift
end
assert(byte_list2.empty?)
assert_exception(RuntimeError) { @request.each_body{} }
assert_equal('End_of_Body', pio.read)
end