diff options
author | Szymon Nowak <szimek@gmail.com> | 2012-08-24 21:55:41 +0200 |
---|---|---|
committer | Szymon Nowak <szimek@gmail.com> | 2012-08-24 21:55:41 +0200 |
commit | b6ba012032c0c53e4539228b06f3da6d6a5a69bc (patch) | |
tree | c6f76429583ebf514ae768b815d62cf796329996 /actionpack | |
parent | d14e2e5a217c5dfbc0de1796f2821ea1efd07fe4 (diff) | |
download | rails-b6ba012032c0c53e4539228b06f3da6d6a5a69bc.tar.gz rails-b6ba012032c0c53e4539228b06f3da6d6a5a69bc.tar.bz2 rails-b6ba012032c0c53e4539228b06f3da6d6a5a69bc.zip |
Fix ActionDispatch::ParamsParser::ParseError message for XML and JSON parsers.
Diffstat (limited to 'actionpack')
3 files changed, 6 insertions, 6 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/params_parser.rb b/actionpack/lib/action_dispatch/middleware/params_parser.rb index 7f38c6d4f3..46e33484a4 100644 --- a/actionpack/lib/action_dispatch/middleware/params_parser.rb +++ b/actionpack/lib/action_dispatch/middleware/params_parser.rb @@ -40,14 +40,12 @@ module ActionDispatch when Proc strategy.call(request.raw_post) when :xml_simple, :xml_node - data = Hash.from_xml(request.body.read) || {} - request.body.rewind if request.body.respond_to?(:rewind) + data = Hash.from_xml(request.raw_post) || {} data.with_indifferent_access when :yaml YAML.load(request.raw_post) when :json - data = ActiveSupport::JSON.decode(request.body) - request.body.rewind if request.body.respond_to?(:rewind) + data = ActiveSupport::JSON.decode(request.raw_post) data = {:_json => data} unless data.is_a?(Hash) data.with_indifferent_access else diff --git a/actionpack/test/dispatch/request/json_params_parsing_test.rb b/actionpack/test/dispatch/request/json_params_parsing_test.rb index f7f621df71..2022586912 100644 --- a/actionpack/test/dispatch/request/json_params_parsing_test.rb +++ b/actionpack/test/dispatch/request/json_params_parsing_test.rb @@ -46,7 +46,8 @@ class JsonParamsParsingTest < ActionDispatch::IntegrationTest begin $stderr = StringIO.new # suppress the log json = "[\"person]\": {\"name\": \"David\"}}" - assert_raise(ActionDispatch::ParamsParser::ParseError) { post "/parse", json, {'CONTENT_TYPE' => 'application/json', 'action_dispatch.show_exceptions' => false} } + exception = assert_raise(ActionDispatch::ParamsParser::ParseError) { post "/parse", json, {'CONTENT_TYPE' => 'application/json', 'action_dispatch.show_exceptions' => false} } + assert_match json, exception.message ensure $stderr = STDERR end diff --git a/actionpack/test/dispatch/request/xml_params_parsing_test.rb b/actionpack/test/dispatch/request/xml_params_parsing_test.rb index 0fcae1e650..1ef2195810 100644 --- a/actionpack/test/dispatch/request/xml_params_parsing_test.rb +++ b/actionpack/test/dispatch/request/xml_params_parsing_test.rb @@ -68,7 +68,8 @@ class XmlParamsParsingTest < ActionDispatch::IntegrationTest begin $stderr = StringIO.new # suppress the log xml = "<person><name>David</name></pineapple>" - assert_raise(ActionDispatch::ParamsParser::ParseError) { post "/parse", xml, default_headers.merge('action_dispatch.show_exceptions' => false) } + exception = assert_raise(ActionDispatch::ParamsParser::ParseError) { post "/parse", xml, default_headers.merge('action_dispatch.show_exceptions' => false) } + assert_match xml, exception.message ensure $stderr = STDERR end |