aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
authorEugene Kenny <elkenny@gmail.com>2017-06-25 02:13:05 +0100
committerEugene Kenny <elkenny@gmail.com>2017-06-25 02:13:05 +0100
commitab491134a355257eec4730c48977b618c04549a7 (patch)
tree87295605991c9c3cd547ebce3e45eaef58ea7550 /actionpack/test
parent98d12f1ef31014287c897fc60df4e1af70781ca3 (diff)
downloadrails-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')
-rw-r--r--actionpack/test/controller/params_wrapper_test.rb8
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"