aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2019-01-17 17:14:13 -0500
committerRafael Mendonça França <rafaelmfranca@gmail.com>2019-01-17 17:14:13 -0500
commit470e6bdac97249ca3406c635f611aa8f7df8b222 (patch)
treeff6e74eaba0aade32dd7fda785fb73fe64a1bdf0 /activerecord/test
parente65a3a0ce585b1fbcd35872616717595d6950fca (diff)
parent6410c70f7caa5045e2f12ebd7aab8d8b6d3e6a0b (diff)
downloadrails-470e6bdac97249ca3406c635f611aa8f7df8b222.tar.gz
rails-470e6bdac97249ca3406c635f611aa8f7df8b222.tar.bz2
rails-470e6bdac97249ca3406c635f611aa8f7df8b222.zip
Merge pull request #34966 from bogdanvlviv/ensure-ar-relation-exists-allows-permitted-params
Ensure that AR::Relation#exists? allows only permitted params
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/finder_test.rb8
-rw-r--r--activerecord/test/support/stubs/strong_parameters.rb8
2 files changed, 13 insertions, 3 deletions
diff --git a/activerecord/test/cases/finder_test.rb b/activerecord/test/cases/finder_test.rb
index 1c53362bac..b8ce11a791 100644
--- a/activerecord/test/cases/finder_test.rb
+++ b/activerecord/test/cases/finder_test.rb
@@ -226,11 +226,15 @@ class FinderTest < ActiveRecord::TestCase
end
def test_exists_with_strong_parameters
- assert_equal false, Subscriber.exists?(Parameters.new(nick: "foo"))
+ assert_equal false, Subscriber.exists?(Parameters.new(nick: "foo").permit!)
Subscriber.create!(nick: "foo")
- assert_equal true, Subscriber.exists?(Parameters.new(nick: "foo"))
+ assert_equal true, Subscriber.exists?(Parameters.new(nick: "foo").permit!)
+
+ assert_raises(ActiveModel::ForbiddenAttributesError) do
+ Subscriber.exists?(Parameters.new(nick: "foo"))
+ end
end
def test_exists_passing_active_record_object_is_not_permitted
diff --git a/activerecord/test/support/stubs/strong_parameters.rb b/activerecord/test/support/stubs/strong_parameters.rb
index acba3a4504..84f93a28b9 100644
--- a/activerecord/test/support/stubs/strong_parameters.rb
+++ b/activerecord/test/support/stubs/strong_parameters.rb
@@ -3,10 +3,16 @@
class Parameters
def initialize(parameters = {})
@parameters = parameters.with_indifferent_access
+ @permitted = false
end
def permitted?
- true
+ @permitted
+ end
+
+ def permit!
+ @permitted = true
+ self
end
def to_h