aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/controller/parameters/accessors_test.rb
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2016-02-19 18:03:55 -0200
committerRafael França <rafaelmfranca@gmail.com>2016-02-19 18:03:55 -0200
commite0c6156c693efffd8009a116a96f7ff631e4db47 (patch)
tree9f5e09768bd98b94851c888f9b196cbced433791 /actionpack/test/controller/parameters/accessors_test.rb
parent4f44348602446217df89536e911f516b065de33a (diff)
parent30440363c077dc081f7f14a2a40ca72b0fbaae67 (diff)
downloadrails-e0c6156c693efffd8009a116a96f7ff631e4db47.tar.gz
rails-e0c6156c693efffd8009a116a96f7ff631e4db47.tar.bz2
rails-e0c6156c693efffd8009a116a96f7ff631e4db47.zip
Merge pull request #23733 from bquorning/actioncontroller-parameters-equality
Deprecate AC::Parameters#== with Hash
Diffstat (limited to 'actionpack/test/controller/parameters/accessors_test.rb')
-rw-r--r--actionpack/test/controller/parameters/accessors_test.rb45
1 files changed, 43 insertions, 2 deletions
diff --git a/actionpack/test/controller/parameters/accessors_test.rb b/actionpack/test/controller/parameters/accessors_test.rb
index 08b3d81bf0..4ef5bed30d 100644
--- a/actionpack/test/controller/parameters/accessors_test.rb
+++ b/actionpack/test/controller/parameters/accessors_test.rb
@@ -129,10 +129,51 @@ class ParametersAccessorsTest < ActiveSupport::TestCase
assert_not @params[:person].values_at(:name).first.permitted?
end
- test "equality with another hash works" do
+ test "equality with a hash is deprecated" do
hash1 = { foo: :bar }
params1 = ActionController::Parameters.new(hash1)
- assert(params1 == hash1)
+ assert_deprecated("will be removed in Rails 5.1") do
+ assert(params1 == hash1)
+ end
+ end
+
+ test "is equal to Parameters instance with same params" do
+ params1 = ActionController::Parameters.new(a: 1, b: 2)
+ params2 = ActionController::Parameters.new(a: 1, b: 2)
+ assert(params1 == params2)
+ end
+
+ test "is equal to Parameters instance with same permitted params" do
+ params1 = ActionController::Parameters.new(a: 1, b: 2).permit(:a)
+ params2 = ActionController::Parameters.new(a: 1, b: 2).permit(:a)
+ assert(params1 == params2)
+ end
+
+ test "is equal to Parameters instance with same different source params, but same permitted params" do
+ params1 = ActionController::Parameters.new(a: 1, b: 2).permit(:a)
+ params2 = ActionController::Parameters.new(a: 1, c: 3).permit(:a)
+ assert(params1 == params2)
+ assert(params2 == params1)
+ end
+
+ test 'is not equal to an unpermitted Parameters instance with same params' do
+ params1 = ActionController::Parameters.new(a: 1).permit(:a)
+ params2 = ActionController::Parameters.new(a: 1)
+ assert(params1 != params2)
+ assert(params2 != params1)
+ end
+
+ test "is not equal to Parameters instance with different permitted params" do
+ params1 = ActionController::Parameters.new(a: 1, b: 2).permit(:a, :b)
+ params2 = ActionController::Parameters.new(a: 1, b: 2).permit(:a)
+ assert(params1 != params2)
+ assert(params2 != params1)
+ end
+
+ test "equality with simple types works" do
+ assert(@params != 'Hello')
+ assert(@params != 42)
+ assert(@params != false)
end
test "inspect shows both class name and parameters" do