From 815c9deae8de557688e1c99aabe30454bcbe5970 Mon Sep 17 00:00:00 2001 From: Arthur Neves Date: Thu, 3 Apr 2014 10:39:05 -0400 Subject: Block a few default Class methods as scope name. Add tests to make sure scopes cannot be create with names such as: private, protected, public. Make sure enum values don't collide with those methods too. --- activerecord/test/cases/enum_test.rb | 1 + activerecord/test/cases/scoping/named_scoping_test.rb | 3 +++ 2 files changed, 4 insertions(+) (limited to 'activerecord/test') diff --git a/activerecord/test/cases/enum_test.rb b/activerecord/test/cases/enum_test.rb index f8ebd7caee..47de3dec98 100644 --- a/activerecord/test/cases/enum_test.rb +++ b/activerecord/test/cases/enum_test.rb @@ -194,6 +194,7 @@ class EnumTest < ActiveRecord::TestCase :valid, # generates #valid?, which conflicts with an AR method :save, # generates #save!, which conflicts with an AR method :proposed, # same value as an existing enum + :public, :private, :protected, # generates a method that conflict with ruby words ] conflicts.each_with_index do |value, i| diff --git a/activerecord/test/cases/scoping/named_scoping_test.rb b/activerecord/test/cases/scoping/named_scoping_test.rb index f0ad9ebb8a..59ec2dd6a4 100644 --- a/activerecord/test/cases/scoping/named_scoping_test.rb +++ b/activerecord/test/cases/scoping/named_scoping_test.rb @@ -291,6 +291,9 @@ class NamedScopingTest < ActiveRecord::TestCase :relation, # private class method on AR::Base :new, # redefined class method on AR::Base :all, # a default scope + :public, + :protected, + :private ] non_conflicts = [ -- cgit v1.2.3