aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2012-07-29 20:33:16 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2012-07-29 21:43:07 -0700
commitfa3c4ea6d0dee5995d0ac56699540eb9a3149224 (patch)
tree970df84c96e3e6fd40726be95dbfe9f08ca60833
parent4509494f702d58852ad47488ee1496dd34e31149 (diff)
downloadrails-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.rb5
-rw-r--r--actionpack/test/controller/live_stream_test.rb9
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