aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/controller/parameters/always_permitted_parameters_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/test/controller/parameters/always_permitted_parameters_test.rb')
-rw-r--r--actionpack/test/controller/parameters/always_permitted_parameters_test.rb30
1 files changed, 30 insertions, 0 deletions
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..974612fb7b
--- /dev/null
+++ b/actionpack/test/controller/parameters/always_permitted_parameters_test.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+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 "returns super on missing constant other than NEVER_UNPERMITTED_PARAMS" do
+ ActionController::Parameters.superclass.stub :const_missing, "super" do
+ assert_equal "super", ActionController::Parameters::NON_EXISTING_CONSTANT
+ end
+ end
+
+ test "allows both explicitly listed and always-permitted parameters" do
+ params = ActionController::Parameters.new(
+ book: { pages: 65 },
+ format: "json")
+ permitted = params.permit book: [:pages]
+ assert_predicate permitted, :permitted?
+ end
+end