diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2012-07-29 20:33:16 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2012-07-29 21:43:07 -0700 |
commit | fa3c4ea6d0dee5995d0ac56699540eb9a3149224 (patch) | |
tree | 970df84c96e3e6fd40726be95dbfe9f08ca60833 | |
parent | 4509494f702d58852ad47488ee1496dd34e31149 (diff) | |
download | rails-fa3c4ea6d0dee5995d0ac56699540eb9a3149224.tar.gz rails-fa3c4ea6d0dee5995d0ac56699540eb9a3149224.tar.bz2 rails-fa3c4ea6d0dee5995d0ac56699540eb9a3149224.zip |
close the response when the response body is set so that normal render calls will work
-rw-r--r-- | actionpack/lib/action_controller/metal/live.rb | 5 | ||||
-rw-r--r-- | actionpack/test/controller/live_stream_test.rb | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/metal/live.rb b/actionpack/lib/action_controller/metal/live.rb index 226943ff26..4674f0348d 100644 --- a/actionpack/lib/action_controller/metal/live.rb +++ b/actionpack/lib/action_controller/metal/live.rb @@ -121,6 +121,11 @@ module ActionController # :nodoc: @_response.await_commit end + def response_body=(body) + super + response.stream.close if response + end + def set_response!(request) if request.env["HTTP_VERSION"] == "HTTP/1.0" super diff --git a/actionpack/test/controller/live_stream_test.rb b/actionpack/test/controller/live_stream_test.rb index 74b223e4f5..5ce1acccf1 100644 --- a/actionpack/test/controller/live_stream_test.rb +++ b/actionpack/test/controller/live_stream_test.rb @@ -12,6 +12,10 @@ module ActionController 'test' end + def render_text + render :text => 'zomg' + end + def default_header response.stream.write "<html><body>hi</body></html>" response.stream.close @@ -107,5 +111,10 @@ module ActionController _, headers, _ = @response.prepare! assert headers['Content-Type'] end + + def test_render_text + get :render_text + assert @response.stream.closed?, 'stream should be closed' + end end end |