aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorRafael Chacón <rafaelchacon@gmail.com>2014-06-27 13:08:40 -0700
committerRafael Chacón <rafaelchacon@gmail.com>2014-06-27 13:08:40 -0700
commit58399e1dc3e40b0f6cf8f5da31d694267afdf328 (patch)
treea532ecae661ba53d9fc202f84f1d085f2fc3beca /actionpack
parentc197a7dc418cd4fe07131a41a44c8ddb66258801 (diff)
downloadrails-58399e1dc3e40b0f6cf8f5da31d694267afdf328.tar.gz
rails-58399e1dc3e40b0f6cf8f5da31d694267afdf328.tar.bz2
rails-58399e1dc3e40b0f6cf8f5da31d694267afdf328.zip
Improvements per code review.
* General style fixes. * Add changes to configuration guide. * Add missing tests.
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_controller/metal/strong_parameters.rb7
-rw-r--r--actionpack/test/controller/parameters/always_permitted_parameters_test.rb29
2 files changed, 32 insertions, 4 deletions
diff --git a/actionpack/lib/action_controller/metal/strong_parameters.rb b/actionpack/lib/action_controller/metal/strong_parameters.rb
index 71dca877b6..45d819c29a 100644
--- a/actionpack/lib/action_controller/metal/strong_parameters.rb
+++ b/actionpack/lib/action_controller/metal/strong_parameters.rb
@@ -105,11 +105,10 @@ module ActionController
# params are present. The default includes both 'controller' and 'action'
# because they are added by Rails and should be of no concern. One way
# to change these is to specify `always_permitted_parameters` in your
- # config, e.g.
- # `config.always_permitted_parameters = %w( controller action format )`
-
+ # config. For instance:
+ #
+ # config.always_permitted_parameters = %w( controller action format )
cattr_accessor :always_permitted_parameters
-
self.always_permitted_parameters = %w( controller action )
def self.const_missing(const_name)
diff --git a/actionpack/test/controller/parameters/always_permitted_parameters_test.rb b/actionpack/test/controller/parameters/always_permitted_parameters_test.rb
new file mode 100644
index 0000000000..059f310d49
--- /dev/null
+++ b/actionpack/test/controller/parameters/always_permitted_parameters_test.rb
@@ -0,0 +1,29 @@
+require 'abstract_unit'
+require 'action_controller/metal/strong_parameters'
+
+class AlwaysPermittedParametersTest < ActiveSupport::TestCase
+ def setup
+ ActionController::Parameters.action_on_unpermitted_parameters = :raise
+ ActionController::Parameters.always_permitted_parameters = %w( controller action format )
+ end
+
+ def teardown
+ ActionController::Parameters.action_on_unpermitted_parameters = false
+ ActionController::Parameters.always_permitted_parameters = %w( controller action )
+ end
+
+ test "shows deprecations warning on NEVER_UNPERMITTED_PARAMS" do
+ assert_deprecated do
+ ActionController::Parameters::NEVER_UNPERMITTED_PARAMS
+ end
+ end
+
+ test "permits parameters that are whitelisted" do
+ params = ActionController::Parameters.new({
+ book: { pages: 65 },
+ format: "json"
+ })
+ permitted = params.permit book: [:pages]
+ assert permitted.permitted?
+ end
+end