diff options
author | Kasper Timm Hansen <kaspth@gmail.com> | 2016-07-10 22:02:12 +0200 |
---|---|---|
committer | Kasper Timm Hansen <kaspth@gmail.com> | 2016-07-10 22:02:12 +0200 |
commit | 333670ceb96e74399645fca3201969e63c3c403b (patch) | |
tree | 1b799b6ba8c6b6df018b3f4e3aec15ffd0b29ac4 /actionpack/test/dispatch | |
parent | db1582ac342be68bf5addd1b770e7dec2abe44d2 (diff) | |
download | rails-333670ceb96e74399645fca3201969e63c3c403b.tar.gz rails-333670ceb96e74399645fca3201969e63c3c403b.tar.bz2 rails-333670ceb96e74399645fca3201969e63c3c403b.zip |
Let TestResponse assign a parser.
Previously we'd only assign a response parser when a request came through
Action Dispatch integration tests. This made calls to `parsed_body` when a TestResponse
was manually instantiated — though own doing or perhaps from a framework — unintentionally
blow up because no parser was set at that time.
The response can lookup a parser entirely through its own ivars. Extract request encoder to
its own file and assume that a viable content type is present at TestResponse instantiation.
Since the default response parser is a no-op, making `parsed_body` equal to `body`, no
exceptions will be thrown.
Diffstat (limited to 'actionpack/test/dispatch')
-rw-r--r-- | actionpack/test/dispatch/test_response_test.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/actionpack/test/dispatch/test_response_test.rb b/actionpack/test/dispatch/test_response_test.rb index a4f9d56a6a..72e06b4590 100644 --- a/actionpack/test/dispatch/test_response_test.rb +++ b/actionpack/test/dispatch/test_response_test.rb @@ -17,4 +17,12 @@ class TestResponseTest < ActiveSupport::TestCase assert_response_code_range 500..599, :server_error? assert_response_code_range 400..499, :client_error? end + + test "response parsing" do + response = ActionDispatch::TestResponse.create(200, {}, '') + assert_equal response.body, response.parsed_body + + response = ActionDispatch::TestResponse.create(200, { 'Content-Type' => 'application/json' }, '{ "foo": "fighters" }') + assert_equal({ 'foo' => 'fighters' }, response.parsed_body) + end end |