aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/controller/parameters/parameters_permit_test.rb
diff options
context:
space:
mode:
authoraditya-kapoor <aditya.kapoor@vinsol.com>2013-12-10 11:44:07 +0530
committeraditya-kapoor <aditya.kapoor@vinsol.com>2013-12-10 11:44:07 +0530
commit0c55335074ed7baf2f165ada168f726f1f7bba68 (patch)
tree2a8428d72f6890cb0eb6c5b9b1d40b7b2ce93d8b /actionpack/test/controller/parameters/parameters_permit_test.rb
parent6b9b0767bf480d53029afeb3f8e86f66e933fb41 (diff)
parentfe077b50c9ce65c4ac1cc718c34dda45cd24c6fe (diff)
downloadrails-0c55335074ed7baf2f165ada168f726f1f7bba68.tar.gz
rails-0c55335074ed7baf2f165ada168f726f1f7bba68.tar.bz2
rails-0c55335074ed7baf2f165ada168f726f1f7bba68.zip
Merge branch 'master' of github.com:lifo/docrails
Diffstat (limited to 'actionpack/test/controller/parameters/parameters_permit_test.rb')
-rw-r--r--actionpack/test/controller/parameters/parameters_permit_test.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/actionpack/test/controller/parameters/parameters_permit_test.rb b/actionpack/test/controller/parameters/parameters_permit_test.rb
index 437da43d9b..b60c5f058d 100644
--- a/actionpack/test/controller/parameters/parameters_permit_test.rb
+++ b/actionpack/test/controller/parameters/parameters_permit_test.rb
@@ -107,6 +107,15 @@ class ParametersPermitTest < ActiveSupport::TestCase
assert_equal [], permitted[:id]
end
+ test 'do not break params filtering on nil values' do
+ params = ActionController::Parameters.new(a: 1, b: [1, 2, 3], c: nil)
+
+ permitted = params.permit(:a, c: [], b: [])
+ assert_equal 1, permitted[:a]
+ assert_equal [1, 2, 3], permitted[:b]
+ assert_equal nil, permitted[:c]
+ end
+
test 'key to empty array: arrays of permitted scalars pass' do
[['foo'], [1], ['foo', 'bar'], [1, 2, 3]].each do |array|
params = ActionController::Parameters.new(id: array)
@@ -138,6 +147,12 @@ class ParametersPermitTest < ActiveSupport::TestCase
assert_equal :foo, e.param
end
+ test "fetch with a default value of a hash does not mutate the object" do
+ params = ActionController::Parameters.new({})
+ params.fetch :foo, {}
+ assert_equal nil, params[:foo]
+ end
+
test "fetch doesnt raise ParameterMissing exception if there is a default" do
assert_equal "monkey", @params.fetch(:foo, "monkey")
assert_equal "monkey", @params.fetch(:foo) { "monkey" }