test/test_proxy_pass.rb in yahns-1.12.3 vs test/test_proxy_pass.rb in yahns-1.12.4
- old
+ new
@@ -584,9 +584,24 @@
s.write("GET /eof-body-slow HTTP/1.0\r\n\r\n")
res = s.read
assert_match %r{\AHTTP/1\.1 200 OK\r\n}, res
assert_match %r{\r\n\r\neof-body-slow\z}, res
s.close
+
+ # we auto-chunk on 1.1 requests and 1.0 backends
+ %w(eof-body-slow eof-body-fast).each do |x|
+ s = TCPSocket.new(host, port)
+ s.write("GET /#{x} HTTP/1.1\r\nHost: example.com\r\n\r\n")
+ res = ''.dup
+ res << s.readpartial(512) until res =~ /0\r\n\r\n\z/
+ s.close
+ head, body = res.split("\r\n\r\n", 2)
+ head = head.split("\r\n")
+ assert_equal 'HTTP/1.1 200 OK', head[0]
+ assert head.include?('Connection: keep-alive')
+ assert head.include?('Transfer-Encoding: chunked')
+ assert_match %r{\Ad\r\n#{x}\r\n0\r\n\r\n\z}, body
+ end
end
end
def check_forbidden_put(host, port)
to_close = []