diff options
author | Eugene Kenny <elkenny@gmail.com> | 2017-06-25 02:13:05 +0100 |
---|---|---|
committer | Eugene Kenny <elkenny@gmail.com> | 2017-06-25 02:13:05 +0100 |
commit | ab491134a355257eec4730c48977b618c04549a7 (patch) | |
tree | 87295605991c9c3cd547ebce3e45eaef58ea7550 /actionpack/test/controller | |
parent | 98d12f1ef31014287c897fc60df4e1af70781ca3 (diff) | |
download | rails-ab491134a355257eec4730c48977b618c04549a7.tar.gz rails-ab491134a355257eec4730c48977b618c04549a7.tar.bz2 rails-ab491134a355257eec4730c48977b618c04549a7.zip |
Don't wrap parameters if query parameter exists
We want to avoid overwriting a query parameter with the wrapped
parameters hash. Previously this was implemented by merging the wrapped
parameters at the root level if the key already existed, which was
effectively a no-op. The query parameter was still overwritten in the
filtered parameters hash, however.
We can fix that discrepancy with a simpler implementation and less
unnecessary work by skipping parameter wrapping entirely if the key was
sent as a query parameter.
Diffstat (limited to 'actionpack/test/controller')
-rw-r--r-- | actionpack/test/controller/params_wrapper_test.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/actionpack/test/controller/params_wrapper_test.rb b/actionpack/test/controller/params_wrapper_test.rb index 4cbb28ef60..c0f01e6df8 100644 --- a/actionpack/test/controller/params_wrapper_test.rb +++ b/actionpack/test/controller/params_wrapper_test.rb @@ -226,6 +226,14 @@ class ParamsWrapperTest < ActionController::TestCase end end + def test_preserves_query_string_params_in_filtered_params + with_default_wrapper_options do + @request.env["CONTENT_TYPE"] = "application/json" + get :parse, params: { "user" => { "username" => "nixon" } } + assert_equal({ "controller" => "params_wrapper_test/users", "action" => "parse", "user" => { "username" => "nixon" } }, @request.filtered_parameters) + end + end + def test_empty_parameter_set with_default_wrapper_options do @request.env["CONTENT_TYPE"] = "application/json" |