diff options
author | Mehmet Emin İNAÇ <mehmetemininac@gmail.com> | 2016-02-20 11:33:05 +0200 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2016-02-22 21:22:28 -0300 |
commit | 97ed810cfc15725a0856227fa9f9eb26930f16c8 (patch) | |
tree | d55772c514e0a96f833847c80d0e7e85e30c598a /actionpack/test/dispatch/request | |
parent | 353782652b7dae7573f6480439519f227c41185a (diff) | |
download | rails-97ed810cfc15725a0856227fa9f9eb26930f16c8.tar.gz rails-97ed810cfc15725a0856227fa9f9eb26930f16c8.tar.bz2 rails-97ed810cfc15725a0856227fa9f9eb26930f16c8.zip |
Use symbol of mime type instead of object to get correct parser
After registering new `:json` mime type `parsers.fetch` can't find the mime type because new mime type is not equal to old one. Using symbol of the mime type as key on parsers hash solves the problem.
Closes #23766
Diffstat (limited to 'actionpack/test/dispatch/request')
-rw-r--r-- | actionpack/test/dispatch/request/json_params_parsing_test.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/actionpack/test/dispatch/request/json_params_parsing_test.rb b/actionpack/test/dispatch/request/json_params_parsing_test.rb index 64801bff39..0c3c6d5f93 100644 --- a/actionpack/test/dispatch/request/json_params_parsing_test.rb +++ b/actionpack/test/dispatch/request/json_params_parsing_test.rb @@ -150,6 +150,22 @@ class RootLessJSONParamsParsingTest < ActionDispatch::IntegrationTest ) end + test "parses json params after custom json mime type registered" do + Mime::Type.register "application/json", :json, %w(application/vnd.api+json) + assert_parses( + {"user" => {"username" => "meinac"}, "username" => "meinac"}, + "{\"username\": \"meinac\"}", { 'CONTENT_TYPE' => 'application/json' } + ) + end + + test "parses json params after custom json mime type registered with synonym" do + Mime::Type.register "application/json", :json, %w(application/vnd.api+json) + assert_parses( + {"user" => {"username" => "meinac"}, "username" => "meinac"}, + "{\"username\": \"meinac\"}", { 'CONTENT_TYPE' => 'application/vnd.api+json' } + ) + end + private def assert_parses(expected, actual, headers = {}) with_test_routing(UsersController) do |