aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/dispatch/response_test.rb
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2016-01-06 12:43:40 +1030
committerMatthew Draper <matthew@trebex.net>2016-01-12 11:37:42 +1030
commit272c5838dfed0473acc11a9f97d797180015b242 (patch)
tree965424fdf3c4c069a6736a37a2c5debef41c5cf1 /actionpack/test/dispatch/response_test.rb
parentddfd51f270a9d915c64e83f73390c8642de44e23 (diff)
downloadrails-272c5838dfed0473acc11a9f97d797180015b242.tar.gz
rails-272c5838dfed0473acc11a9f97d797180015b242.tar.bz2
rails-272c5838dfed0473acc11a9f97d797180015b242.zip
Commit before freezing the headers
This shouldn't generally come up: under a standard flow, we don't start sending until after the commit. But application code always finds a way.
Diffstat (limited to 'actionpack/test/dispatch/response_test.rb')
-rw-r--r--actionpack/test/dispatch/response_test.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/actionpack/test/dispatch/response_test.rb b/actionpack/test/dispatch/response_test.rb
index c37679bc5f..43ee2efd9f 100644
--- a/actionpack/test/dispatch/response_test.rb
+++ b/actionpack/test/dispatch/response_test.rb
@@ -37,6 +37,27 @@ class ResponseTest < ActiveSupport::TestCase
assert_equal "closed stream", e.message
end
+ def test_read_body_during_action
+ @response.body = "Hello, World!"
+
+ # even though there's no explicitly set content-type,
+ assert_equal nil, @response.content_type
+
+ # after the action reads back @response.body,
+ assert_equal "Hello, World!", @response.body
+
+ # the response can be built.
+ status, headers, body = @response.to_a
+ assert_equal 200, status
+ assert_equal({
+ "Content-Type" => "text/html; charset=utf-8"
+ }, headers)
+
+ parts = []
+ body.each { |part| parts << part }
+ assert_equal ["Hello, World!"], parts
+ end
+
def test_response_body_encoding
body = ["hello".encode(Encoding::UTF_8)]
response = ActionDispatch::Response.new 200, {}, body