diff options
author | nahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-06-21 12:58:37 +0000 |
---|---|---|
committer | nahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-06-21 12:58:37 +0000 |
commit | 4ce158147502304af431c820c227134628578e74 (patch) | |
tree | 27d8a9235f3673c2bd9a7c47d9e1a29494b015e4 /test/webrick | |
parent | 908baefe7da367539092994fdbc718a43772e956 (diff) | |
download | ruby-4ce158147502304af431c820c227134628578e74.tar.gz |
* lib/webrick/httpresponse.rb (HTTPResponse#setup_header): Close
HTTP/1.1 connection when returning an IO object as response body
without setting HTTPResponse#chunked to true. See #855 no.1.
* test/webrick/test_httpserver.rb: Test it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/webrick')
-rw-r--r-- | test/webrick/test_httpserver.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/webrick/test_httpserver.rb b/test/webrick/test_httpserver.rb index b4bdd84045..526d72c381 100644 --- a/test/webrick/test_httpserver.rb +++ b/test/webrick/test_httpserver.rb @@ -258,6 +258,33 @@ class TestWEBrickHTTPServer < Test::Unit::TestCase assert_equal(stopped, 1) end + def test_response_io_without_chunked_set + config = { + :ServerName => "localhost" + } + TestWEBrick.start_httpserver(config){|server, addr, port, log| + server.mount_proc("/", lambda { |req, res| + r,w = IO.pipe + # Test for not setting chunked... + # res.chunked = true + res.body = r + w << "foo" + w.close + }) + Thread.pass while server.status != :Running + http = Net::HTTP.new(addr, port) + req = Net::HTTP::Get.new("/") + req['Connection'] = 'Keep-Alive' + begin + timeout(2) do + http.request(req){|res| assert_equal("foo", res.body) } + end + rescue Timeout::Error + flunk('corrupted reponse') + end + } + end + def test_request_handler_callback_is_deprecated requested = 0 config = { |