diff options
Diffstat (limited to 'actionpack/test/controller/parameters/always_permitted_parameters_test.rb')
-rw-r--r-- | actionpack/test/controller/parameters/always_permitted_parameters_test.rb | 30 |
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 |