aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
authorEdouard CHIN <edouard.chin@shopify.com>2017-03-09 01:42:16 -0500
committerEdouard CHIN <edouard.chin@shopify.com>2017-03-09 13:48:13 -0500
commit4d7986283653ff4fbd5a82dd273ed9795a0c6a65 (patch)
treec200fe9a7cfe2fcb8686b4359881d65bfc10f2bb /actionpack/test
parentc741b493409a5d8ae1f2514f73570a014ddc6b57 (diff)
downloadrails-4d7986283653ff4fbd5a82dd273ed9795a0c6a65.tar.gz
rails-4d7986283653ff4fbd5a82dd273ed9795a0c6a65.tar.bz2
rails-4d7986283653ff4fbd5a82dd273ed9795a0c6a65.zip
Added `reverse_merge`/`reverse_merge!` to AC::Parameters:
- This PR adds the `reverse_merge` and `reverse_merge!` method to `ActionController::Parameters` - Fixes #28353
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/controller/parameters/parameters_permit_test.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/actionpack/test/controller/parameters/parameters_permit_test.rb b/actionpack/test/controller/parameters/parameters_permit_test.rb
index 8920914af1..b51c55b1f1 100644
--- a/actionpack/test/controller/parameters/parameters_permit_test.rb
+++ b/actionpack/test/controller/parameters/parameters_permit_test.rb
@@ -302,6 +302,35 @@ class ParametersPermitTest < ActiveSupport::TestCase
assert_equal "32", @params[:person][:age]
end
+ test "#reverse_merge with parameters" do
+ default_params = ActionController::Parameters.new(id: "1234", person: {}).permit!
+ merged_params = @params.reverse_merge(default_params)
+
+ assert_equal "1234", merged_params[:id]
+ refute_predicate merged_params[:person], :empty?
+ end
+
+ test "not permitted is sticky beyond reverse_merge!" do
+ merged_params = @params.reverse_merge(a: "b")
+
+ refute_predicate @params, :permitted?
+ end
+
+ test "permitted is sticky beyond reverse_merge!" do
+ @params.permit!
+ merged_params = @params.reverse_merge(a: "b")
+
+ assert_predicate @params, :permitted?
+ end
+
+ test "#reverse_merge! with parameters" do
+ default_params = ActionController::Parameters.new(id: "1234", person: {}).permit!
+ @params.reverse_merge!(default_params)
+
+ assert_equal "1234", @params[:id]
+ refute_predicate @params[:person], :empty?
+ end
+
test "modifying the parameters" do
@params[:person][:hometown] = "Chicago"
@params[:person][:family] = { brother: "Jonas" }