diff options
-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 |