mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Seperate Parameters accessors and mutators tests
This commit is contained in:
parent
9704379c78
commit
0663e8f179
3 changed files with 215 additions and 57 deletions
116
actionpack/test/controller/parameters/accessors_test.rb
Normal file
116
actionpack/test/controller/parameters/accessors_test.rb
Normal file
|
@ -0,0 +1,116 @@
|
|||
require 'abstract_unit'
|
||||
require 'action_controller/metal/strong_parameters'
|
||||
require 'active_support/core_ext/hash/transform_values'
|
||||
|
||||
class ParametersAccessorsTest < ActiveSupport::TestCase
|
||||
setup do
|
||||
@params = ActionController::Parameters.new(
|
||||
person: {
|
||||
age: '32',
|
||||
name: {
|
||||
first: 'David',
|
||||
last: 'Heinemeier Hansson'
|
||||
},
|
||||
addresses: [{city: 'Chicago', state: 'Illinois'}]
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
test "[] retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params[:person].permitted?
|
||||
assert @params[:person][:name].permitted?
|
||||
end
|
||||
|
||||
test "[] retains unpermitted status" do
|
||||
assert_not @params[:person].permitted?
|
||||
assert_not @params[:person][:name].permitted?
|
||||
end
|
||||
|
||||
test "each carries permitted status" do
|
||||
@params.permit!
|
||||
@params.each { |key, value| assert(value.permitted?) if key == "person" }
|
||||
end
|
||||
|
||||
test "each carries unpermitted status" do
|
||||
@params.each { |key, value| assert_not(value.permitted?) if key == "person" }
|
||||
end
|
||||
|
||||
test "except retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.except(:person).permitted?
|
||||
assert @params[:person].except(:name).permitted?
|
||||
end
|
||||
|
||||
test "except retains unpermitted status" do
|
||||
assert_not @params.except(:person).permitted?
|
||||
assert_not @params[:person].except(:name).permitted?
|
||||
end
|
||||
|
||||
test "fetch retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.fetch(:person).permitted?
|
||||
assert @params[:person].fetch(:name).permitted?
|
||||
end
|
||||
|
||||
test "fetch retains unpermitted status" do
|
||||
assert_not @params.fetch(:person).permitted?
|
||||
assert_not @params[:person].fetch(:name).permitted?
|
||||
end
|
||||
|
||||
test "reject retains permitted status" do
|
||||
assert_not @params.reject { |k| k == "person" }.permitted?
|
||||
end
|
||||
|
||||
test "reject retains unpermitted status" do
|
||||
@params.permit!
|
||||
assert @params.reject { |k| k == "person" }.permitted?
|
||||
end
|
||||
|
||||
test "select retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.select { |k| k == "person" }.permitted?
|
||||
end
|
||||
|
||||
test "select retains unpermitted status" do
|
||||
assert_not @params.select { |k| k == "person" }.permitted?
|
||||
end
|
||||
|
||||
test "slice retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.slice(:person).permitted?
|
||||
end
|
||||
|
||||
test "slice retains unpermitted status" do
|
||||
assert_not @params.slice(:person).permitted?
|
||||
end
|
||||
|
||||
test "transform_keys retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.transform_keys { |k| k }.permitted?
|
||||
end
|
||||
|
||||
test "transform_keys retains unpermitted status" do
|
||||
assert_not @params.transform_keys { |k| k }.permitted?
|
||||
end
|
||||
|
||||
test "transform_values retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.transform_values { |v| v }.permitted?
|
||||
end
|
||||
|
||||
test "transform_values retains unpermitted status" do
|
||||
assert_not @params.transform_values { |v| v }.permitted?
|
||||
end
|
||||
|
||||
test "values_at retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.values_at(:person).first.permitted?
|
||||
assert @params[:person].values_at(:name).first.permitted?
|
||||
end
|
||||
|
||||
test "values_at retains unpermitted status" do
|
||||
assert_not @params.values_at(:person).first.permitted?
|
||||
assert_not @params[:person].values_at(:name).first.permitted?
|
||||
end
|
||||
end
|
99
actionpack/test/controller/parameters/mutators_test.rb
Normal file
99
actionpack/test/controller/parameters/mutators_test.rb
Normal file
|
@ -0,0 +1,99 @@
|
|||
require 'abstract_unit'
|
||||
require 'action_controller/metal/strong_parameters'
|
||||
require 'active_support/core_ext/hash/transform_values'
|
||||
|
||||
class ParametersMutatorsTest < ActiveSupport::TestCase
|
||||
setup do
|
||||
@params = ActionController::Parameters.new(
|
||||
person: {
|
||||
age: '32',
|
||||
name: {
|
||||
first: 'David',
|
||||
last: 'Heinemeier Hansson'
|
||||
},
|
||||
addresses: [{city: 'Chicago', state: 'Illinois'}]
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
test "delete retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.delete(:person).permitted?
|
||||
end
|
||||
|
||||
test "delete retains unpermitted status" do
|
||||
assert_not @params.delete(:person).permitted?
|
||||
end
|
||||
|
||||
test "delete_if retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.delete_if { |k| k == "person" }.permitted?
|
||||
end
|
||||
|
||||
test "delete_if retains unpermitted status" do
|
||||
assert_not @params.delete_if { |k| k == "person" }.permitted?
|
||||
end
|
||||
|
||||
test "extract! retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.extract!(:person).permitted?
|
||||
end
|
||||
|
||||
test "extract! retains unpermitted status" do
|
||||
assert_not @params.extract!(:person).permitted?
|
||||
end
|
||||
|
||||
test "keep_if retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.keep_if { |k,v| k == "person" }.permitted?
|
||||
end
|
||||
|
||||
test "keep_if retains unpermitted status" do
|
||||
assert_not @params.keep_if { |k,v| k == "person" }.permitted?
|
||||
end
|
||||
|
||||
test "reject! retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.reject! { |k| k == "person" }.permitted?
|
||||
end
|
||||
|
||||
test "reject! retains unpermitted status" do
|
||||
assert_not @params.reject! { |k| k == "person" }.permitted?
|
||||
end
|
||||
|
||||
test "select! retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.select! { |k| k == "person" }.permitted?
|
||||
end
|
||||
|
||||
test "select! retains unpermitted status" do
|
||||
assert_not @params.select! { |k| k == "person" }.permitted?
|
||||
end
|
||||
|
||||
test "slice! retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.slice!(:person).permitted?
|
||||
end
|
||||
|
||||
test "slice! retains unpermitted status" do
|
||||
assert_not @params.slice!(:person).permitted?
|
||||
end
|
||||
|
||||
test "transform_keys! retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.transform_keys! { |k| k }.permitted?
|
||||
end
|
||||
|
||||
test "transform_keys! retains unpermitted status" do
|
||||
assert_not @params.transform_keys! { |k| k }.permitted?
|
||||
end
|
||||
|
||||
test "transform_values! retains permitted status" do
|
||||
@params.permit!
|
||||
assert @params.transform_values! { |v| v }.permitted?
|
||||
end
|
||||
|
||||
test "transform_values! retains unpermitted status" do
|
||||
assert_not @params.transform_values! { |v| v }.permitted?
|
||||
end
|
||||
end
|
|
@ -1,7 +1,6 @@
|
|||
require 'abstract_unit'
|
||||
require 'action_dispatch/http/upload'
|
||||
require 'action_controller/metal/strong_parameters'
|
||||
require 'active_support/core_ext/hash/transform_values'
|
||||
|
||||
class ParametersPermitTest < ActiveSupport::TestCase
|
||||
def assert_filtered_out(params, key)
|
||||
|
@ -195,62 +194,6 @@ class ParametersPermitTest < ActiveSupport::TestCase
|
|||
assert_equal "monkey", @params.fetch(:foo) { "monkey" }
|
||||
end
|
||||
|
||||
test "not permitted is sticky on accessors" do
|
||||
assert !@params.slice(:person).permitted?
|
||||
assert !@params[:person][:name].permitted?
|
||||
assert !@params[:person].except(:name).permitted?
|
||||
|
||||
@params.each { |key, value| assert(!value.permitted?) if key == "person" }
|
||||
|
||||
assert !@params.fetch(:person).permitted?
|
||||
|
||||
assert !@params.values_at(:person).first.permitted?
|
||||
|
||||
assert !@params.transform_keys { |k| k }.permitted?
|
||||
assert !@params.transform_values { |v| v }.permitted?
|
||||
end
|
||||
|
||||
test "permitted is sticky on accessors" do
|
||||
@params.permit!
|
||||
assert @params.slice(:person).permitted?
|
||||
assert @params[:person][:name].permitted?
|
||||
assert @params[:person].except(:name).permitted?
|
||||
|
||||
@params.each { |key, value| assert(value.permitted?) if key == "person" }
|
||||
|
||||
assert @params.fetch(:person).permitted?
|
||||
|
||||
assert @params.values_at(:person).first.permitted?
|
||||
|
||||
assert @params.transform_keys { |k| k }.permitted?
|
||||
assert @params.transform_values { |v| v }.permitted?
|
||||
end
|
||||
|
||||
test "not permitted is sticky on mutators" do
|
||||
assert !@params.delete_if { |k| k == "person" }.permitted?
|
||||
assert !@params.keep_if { |k,v| k == "person" }.permitted?
|
||||
|
||||
assert !@params.slice!(:person).permitted?
|
||||
|
||||
assert !@params.extract!(:person).permitted?
|
||||
|
||||
assert !@params.transform_keys! { |k| k }.permitted?
|
||||
assert !@params.transform_values! { |v| v }.permitted?
|
||||
end
|
||||
|
||||
test "permitted is sticky on mutators" do
|
||||
@params.permit!
|
||||
assert @params.delete_if { |k| k == "person" }.permitted?
|
||||
assert @params.keep_if { |k,v| k == "person" }.permitted?
|
||||
|
||||
assert @params.slice!(:person).permitted?
|
||||
|
||||
assert @params.extract!(:person).permitted?
|
||||
|
||||
assert @params.transform_keys! { |k| k }.permitted?
|
||||
assert @params.transform_values! { |v| v }.permitted?
|
||||
end
|
||||
|
||||
test "not permitted is sticky beyond merges" do
|
||||
assert !@params.merge(a: "b").permitted?
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue