aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/controller
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2017-04-11 21:56:55 -0400
committerRafael Mendonça França <rafaelmfranca@gmail.com>2017-04-18 17:33:24 -0400
commit9f4c2632ef28b9622ffa0eca5d02beea8ec809c0 (patch)
tree18b38a2187e01d9f02f24d96c67a4e60af8e5827 /actionpack/test/controller
parentfd88ccc905549c61e0e4525fcb68b91d20b9afe9 (diff)
downloadrails-9f4c2632ef28b9622ffa0eca5d02beea8ec809c0.tar.gz
rails-9f4c2632ef28b9622ffa0eca5d02beea8ec809c0.tar.bz2
rails-9f4c2632ef28b9622ffa0eca5d02beea8ec809c0.zip
Add ActionController::Parameters#to_hash to implict conversion
Now methods that implicit convert objects to a hash will be able to work without requiring the users to change their implementation. This method will return a Hash instead of a HashWithIndefirentAccess to mimic the same implementation of HashWithIndefirentAccess#to_hash.
Diffstat (limited to 'actionpack/test/controller')
-rw-r--r--actionpack/test/controller/parameters/parameters_permit_test.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/actionpack/test/controller/parameters/parameters_permit_test.rb b/actionpack/test/controller/parameters/parameters_permit_test.rb
index 2616b040d1..12555c3136 100644
--- a/actionpack/test/controller/parameters/parameters_permit_test.rb
+++ b/actionpack/test/controller/parameters/parameters_permit_test.rb
@@ -403,6 +403,32 @@ class ParametersPermitTest < ActiveSupport::TestCase
end
end
+ test "to_hash raises UnfilteredParameters on unfiltered params" do
+ assert_raises(ActionController::UnfilteredParameters) do
+ @params.to_hash
+ end
+ end
+
+ test "to_hash returns converted hash on permitted params" do
+ @params.permit!
+
+ assert_instance_of Hash, @params.to_hash
+ assert_not_kind_of ActionController::Parameters, @params.to_hash
+ end
+
+ test "to_hash returns converted hash when .permit_all_parameters is set" do
+ begin
+ ActionController::Parameters.permit_all_parameters = true
+ params = ActionController::Parameters.new(crab: "Senjougahara Hitagi")
+
+ assert_instance_of Hash, params.to_hash
+ assert_not_kind_of ActionController::Parameters, params.to_hash
+ assert_equal({ "crab" => "Senjougahara Hitagi" }, params.to_hash)
+ assert_equal({ "crab" => "Senjougahara Hitagi" }, params)
+ ensure
+ ActionController::Parameters.permit_all_parameters = false
+ end
+ end
test "to_unsafe_h returns unfiltered params" do
assert @params.to_unsafe_h.is_a? ActiveSupport::HashWithIndifferentAccess