aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
authorTobias Bühlmann <tbuehlmann@users.noreply.github.com>2018-12-16 11:02:45 +0100
committerTobias Bühlmann <tbuehlmann@users.noreply.github.com>2018-12-16 12:27:37 +0100
commit8246a8139c78aca29f988274be9732b1e9f4f51d (patch)
tree53cb2d013947d5542b4abddb554d274095a87bdc /actionpack/test
parentce48b5a366482d4b4c4c053e1e39e79d71987197 (diff)
downloadrails-8246a8139c78aca29f988274be9732b1e9f4f51d.tar.gz
rails-8246a8139c78aca29f988274be9732b1e9f4f51d.tar.bz2
rails-8246a8139c78aca29f988274be9732b1e9f4f51d.zip
Allow using parsed_body in ActionController::TestCase
… by switching the initialzation of an appropriate response parser in `ActionDispatch::TestResponse` from eagerly to lazily. By doing so, the response parser can be correctly set for `ActionController::TestCase`, which doesn't include the content type header in the constructor but only sets it at a later time. Fixes #34676.
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/controller/test_case_test.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/actionpack/test/controller/test_case_test.rb b/actionpack/test/controller/test_case_test.rb
index 6fc70d6248..c931e2daac 100644
--- a/actionpack/test/controller/test_case_test.rb
+++ b/actionpack/test/controller/test_case_test.rb
@@ -156,6 +156,10 @@ XML
render html: '<body class="foo"></body>'.html_safe
end
+ def render_json
+ render json: request.raw_post
+ end
+
def boom
raise "boom!"
end
@@ -965,6 +969,16 @@ XML
assert_equal "q=test2", @response.body
end
+
+ def test_parsed_body_without_as_option
+ post :render_json, body: { foo: "heyo" }
+ assert_equal({ "foo" => "heyo" }, response.parsed_body)
+ end
+
+ def test_parsed_body_with_as_option
+ post :render_json, body: { foo: "heyo" }, as: :json
+ assert_equal({ "foo" => "heyo" }, response.parsed_body)
+ end
end
class ResponseDefaultHeadersTest < ActionController::TestCase