diff options
Diffstat (limited to 'activemodel')
3 files changed, 26 insertions, 14 deletions
diff --git a/activemodel/lib/active_model/deprecated_error_methods.rb b/activemodel/lib/active_model/deprecated_error_methods.rb index 2f2e804ade..433de8931a 100644 --- a/activemodel/lib/active_model/deprecated_error_methods.rb +++ b/activemodel/lib/active_model/deprecated_error_methods.rb @@ -11,22 +11,22 @@ module ActiveModel end def on_base - # ActiveSupport::Deprecation.warn "Errors#on_base have been deprecated, use Errors#[:base] instead" - on(:base) + ActiveSupport::Deprecation.warn "Errors#on_base have been deprecated, use Errors#[:base] instead" + ActiveSupport::Deprecation.silence { on(:base) } end def add_to_base(msg) - # ActiveSupport::Deprecation.warn "Errors#add_to_base(msg) has been deprecated, use Errors#[:base] << msg instead" + ActiveSupport::Deprecation.warn "Errors#add_to_base(msg) has been deprecated, use Errors#[:base] << msg instead" self[:base] << msg end def invalid?(attribute) - # ActiveSupport::Deprecation.warn "Errors#invalid?(attribute) has been deprecated, use Errors#[attribute].any? instead" + ActiveSupport::Deprecation.warn "Errors#invalid?(attribute) has been deprecated, use Errors#[attribute].any? instead" self[attribute].any? end def each_full - # ActiveSupport::Deprecation.warn "Errors#each_full has been deprecated, use Errors#to_a.each instead" + ActiveSupport::Deprecation.warn "Errors#each_full has been deprecated, use Errors#to_a.each instead" to_a.each { |error| yield error } end end diff --git a/activemodel/test/cases/validations/conditional_validation_test.rb b/activemodel/test/cases/validations/conditional_validation_test.rb index 72b4800dce..4c716d5d48 100644 --- a/activemodel/test/cases/validations/conditional_validation_test.rb +++ b/activemodel/test/cases/validations/conditional_validation_test.rb @@ -124,15 +124,15 @@ class ConditionalValidationTest < ActiveModel::TestCase Topic.validates_presence_of(:author_name, :if => "title.to_s.match('important')") t = Topic.new - assert !t.valid?, "A topic without a title should not be valid" - assert !t.errors.invalid?("author_name"), "A topic without an 'important' title should not require an author" + assert t.invalid?, "A topic without a title should not be valid" + assert t.errors[:author_name].empty?, "A topic without an 'important' title should not require an author" t.title = "Just a title" assert t.valid?, "A topic with a basic title should be valid" t.title = "A very important title" assert !t.valid?, "A topic with an important title, but without an author, should not be valid" - assert t.errors.invalid?("author_name"), "A topic with an 'important' title should require an author" + assert t.errors[:author_name].any?, "A topic with an 'important' title should require an author" t.author_name = "Hubert J. Farnsworth" assert t.valid?, "A topic with an important title and author should be valid" diff --git a/activemodel/test/cases/validations_test.rb b/activemodel/test/cases/validations_test.rb index a5dd7af04d..8c89494247 100644 --- a/activemodel/test/cases/validations_test.rb +++ b/activemodel/test/cases/validations_test.rb @@ -27,7 +27,7 @@ class ValidationsTest < ActiveModel::TestCase r = Reply.new r.title = "There's no content!" assert !r.valid? - assert r.errors.invalid?("content"), "A reply without content should mark that attribute as invalid" + assert r.errors[:content].any?, "A reply without content should mark that attribute as invalid" assert_equal ["Empty"], r.errors["content"], "A reply without content should contain an error" assert_equal 1, r.errors.count end @@ -36,10 +36,10 @@ class ValidationsTest < ActiveModel::TestCase r = Reply.new assert !r.valid? - assert r.errors.invalid?("title"), "A reply without title should mark that attribute as invalid" + assert r.errors[:title].any?, "A reply without title should mark that attribute as invalid" assert_equal ["Empty"], r.errors["title"], "A reply without title should contain an error" - assert r.errors.invalid?("content"), "A reply without content should mark that attribute as invalid" + assert r.errors[:content].any?, "A reply without content should mark that attribute as invalid" assert_equal ["Empty"], r.errors["content"], "A reply without content should contain an error" assert_equal 2, r.errors.count @@ -73,10 +73,10 @@ class ValidationsTest < ActiveModel::TestCase r = Reply.new r.content = "Mismatch" r.save - r.errors.add_to_base "Reply is not dignifying" + r.errors[:base] << "Reply is not dignifying" errors = [] - r.errors.each_full { |error| errors << error } + r.errors.to_a.each { |error| errors << error } assert_equal ["Reply is not dignifying"], r.errors[:base] @@ -134,7 +134,7 @@ class ValidationsTest < ActiveModel::TestCase t = Topic.new assert t.invalid? - assert t.errors.invalid?(:title) + assert t.errors[:title].any? t.title = 'Things are going to change' assert !t.invalid? @@ -163,4 +163,16 @@ class ValidationsTest < ActiveModel::TestCase end end end + + def test_deprecated_errors_on_base_and_each + t = Topic.new + assert t.valid? + + assert_deprecated { t.errors.add_to_base "invalid topic" } + assert_deprecated { assert_equal "invalid topic", t.errors.on_base } + assert_deprecated { assert t.errors.invalid?(:base) } + + all_errors = t.errors.to_a + assert_deprecated { assert_equal all_errors, t.errors.each_full{|err| err} } + end end
\ No newline at end of file |