aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorHenrik Nyh <henrik@nyh.se>2014-03-23 12:09:55 +0100
committerHenrik Nyh <henrik@nyh.se>2014-03-27 17:56:14 +0100
commit2e70f44123cb6fab9124b52a6cc02ff453b8397f (patch)
treed2fe1fcc48ea68276cb41918249fc20b95b3252c /activerecord/test
parent5bf38ffc4f853a6ccc5812f0ed8341776b117aea (diff)
downloadrails-2e70f44123cb6fab9124b52a6cc02ff453b8397f.tar.gz
rails-2e70f44123cb6fab9124b52a6cc02ff453b8397f.tar.bz2
rails-2e70f44123cb6fab9124b52a6cc02ff453b8397f.zip
ActiveRecord/ActiveModel '#validate' alias for 'valid?'
It's unintuitive to call '#valid?' when you want to run validations but don't care about the return value. The alias in ActiveRecord isn't strictly necessary (the ActiveModel alias is still in effect), but it clarifies.
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/validations_test.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/activerecord/test/cases/validations_test.rb b/activerecord/test/cases/validations_test.rb
index de618902aa..d80da06e27 100644
--- a/activerecord/test/cases/validations_test.rb
+++ b/activerecord/test/cases/validations_test.rb
@@ -52,6 +52,21 @@ class ValidationsTest < ActiveRecord::TestCase
assert r.save(:context => :special_case)
end
+ def test_validate
+ r = WrongReply.new
+
+ r.validate
+ assert_empty r.errors[:author_name]
+
+ r.validate(:special_case)
+ assert_not_empty r.errors[:author_name]
+
+ r.author_name = "secret"
+
+ r.validate(:special_case)
+ assert_empty r.errors[:author_name]
+ end
+
def test_invalid_record_exception
assert_raise(ActiveRecord::RecordInvalid) { WrongReply.create! }
assert_raise(ActiveRecord::RecordInvalid) { WrongReply.new.save! }