diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2016-02-22 21:39:44 -0300 |
---|---|---|
committer | Rafael França <rafaelmfranca@gmail.com> | 2016-02-22 21:39:44 -0300 |
commit | e7299497871e20c3a28516a4e84fe1789c8795a8 (patch) | |
tree | c60aec696d0e74ffe0f0efbc8a2a17c8280f473e /actionpack/test | |
parent | 7a36686c115f1c6c60ac0a51bc4991c3d32b6e5d (diff) | |
parent | 4f30df4b524b5da22491090e22f5c2de789dd016 (diff) | |
download | rails-e7299497871e20c3a28516a4e84fe1789c8795a8.tar.gz rails-e7299497871e20c3a28516a4e84fe1789c8795a8.tar.bz2 rails-e7299497871e20c3a28516a4e84fe1789c8795a8.zip |
Merge pull request #23816 from rails/params_parser_api
Make sure the parameter parsers register API work with overidden mime types.
Diffstat (limited to 'actionpack/test')
-rw-r--r-- | actionpack/test/controller/webservice_test.rb | 2 | ||||
-rw-r--r-- | actionpack/test/dispatch/request/json_params_parsing_test.rb | 28 |
2 files changed, 29 insertions, 1 deletions
diff --git a/actionpack/test/controller/webservice_test.rb b/actionpack/test/controller/webservice_test.rb index 6d377c4691..daf17558aa 100644 --- a/actionpack/test/controller/webservice_test.rb +++ b/actionpack/test/controller/webservice_test.rb @@ -99,7 +99,7 @@ class WebServiceTest < ActionDispatch::IntegrationTest def test_parsing_json_doesnot_rescue_exception req = Class.new(ActionDispatch::Request) do def params_parsers - { Mime[:json] => Proc.new { |data| raise Interrupt } } + { json: Proc.new { |data| raise Interrupt } } end def content_length; get_header('rack.input').length; end diff --git a/actionpack/test/dispatch/request/json_params_parsing_test.rb b/actionpack/test/dispatch/request/json_params_parsing_test.rb index 64801bff39..3655c7f570 100644 --- a/actionpack/test/dispatch/request/json_params_parsing_test.rb +++ b/actionpack/test/dispatch/request/json_params_parsing_test.rb @@ -150,6 +150,34 @@ class RootLessJSONParamsParsingTest < ActionDispatch::IntegrationTest ) end + test "parses json params after custom json mime type registered" do + begin + Mime::Type.unregister :json + Mime::Type.register "application/json", :json, %w(application/vnd.api+json) + assert_parses( + {"user" => {"username" => "meinac"}, "username" => "meinac"}, + "{\"username\": \"meinac\"}", { 'CONTENT_TYPE' => 'application/json' } + ) + ensure + Mime::Type.unregister :json + Mime::Type.register "application/json", :json, %w( text/x-json application/jsonrequest ) + end + end + + test "parses json params after custom json mime type registered with synonym" do + begin + Mime::Type.unregister :json + 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' } + ) + ensure + Mime::Type.unregister :json + Mime::Type.register "application/json", :json, %w( text/x-json application/jsonrequest ) + end + end + private def assert_parses(expected, actual, headers = {}) with_test_routing(UsersController) do |