From 9d2ea7f623711d13cfcf536de61012f4879c344b Mon Sep 17 00:00:00 2001 From: Benjamin Quorning Date: Wed, 17 Feb 2016 14:44:07 +0100 Subject: Tests for AC::Parameters#== --- actionpack/test/controller/parameters/accessors_test.rb | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'actionpack/test/controller/parameters/accessors_test.rb') diff --git a/actionpack/test/controller/parameters/accessors_test.rb b/actionpack/test/controller/parameters/accessors_test.rb index 08b3d81bf0..7f46c6439c 100644 --- a/actionpack/test/controller/parameters/accessors_test.rb +++ b/actionpack/test/controller/parameters/accessors_test.rb @@ -135,6 +135,12 @@ class ParametersAccessorsTest < ActiveSupport::TestCase assert(params1 == hash1) 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 assert_equal( '{"age"=>"32", '\ -- cgit v1.2.3 From 08fd9f4f1174ce20f8ecbcda1c2509bb598ce200 Mon Sep 17 00:00:00 2001 From: Benjamin Quorning Date: Wed, 17 Feb 2016 14:44:32 +0100 Subject: Fix AC::Parameters#== with other AC::Parameters Creating a protected getter method for `@parameters`. --- .../test/controller/parameters/accessors_test.rb | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'actionpack/test/controller/parameters/accessors_test.rb') diff --git a/actionpack/test/controller/parameters/accessors_test.rb b/actionpack/test/controller/parameters/accessors_test.rb index 7f46c6439c..ef8eb5f33e 100644 --- a/actionpack/test/controller/parameters/accessors_test.rb +++ b/actionpack/test/controller/parameters/accessors_test.rb @@ -135,6 +135,39 @@ class ParametersAccessorsTest < ActiveSupport::TestCase assert(params1 == hash1) 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) -- cgit v1.2.3 From 30440363c077dc081f7f14a2a40ca72b0fbaae67 Mon Sep 17 00:00:00 2001 From: Benjamin Quorning Date: Wed, 17 Feb 2016 14:48:35 +0100 Subject: Deprecate AC::Parameters#== with a Hash --- actionpack/test/controller/parameters/accessors_test.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'actionpack/test/controller/parameters/accessors_test.rb') diff --git a/actionpack/test/controller/parameters/accessors_test.rb b/actionpack/test/controller/parameters/accessors_test.rb index ef8eb5f33e..4ef5bed30d 100644 --- a/actionpack/test/controller/parameters/accessors_test.rb +++ b/actionpack/test/controller/parameters/accessors_test.rb @@ -129,10 +129,12 @@ 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 -- cgit v1.2.3