aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test
diff options
context:
space:
mode:
authorAkira Matsuda <ronnie@dio.jp>2009-03-19 14:42:08 +0900
committerJeremy Kemper <jeremy@bitsweat.net>2009-09-11 18:52:22 -0700
commit0990a13500d036f9b8cf4c11eb1056069357fca7 (patch)
tree0c2443af4858ab86f3be3ab2975b42f4f4def231 /activemodel/test
parent68b2b730e46de8415ece93701ea40434ae080353 (diff)
downloadrails-0990a13500d036f9b8cf4c11eb1056069357fca7.tar.gz
rails-0990a13500d036f9b8cf4c11eb1056069357fca7.tar.bz2
rails-0990a13500d036f9b8cf4c11eb1056069357fca7.zip
Ensure validation errors to be ordered in declared order
[#2301 state:committed milestone:2.3.5] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
Diffstat (limited to 'activemodel/test')
-rw-r--r--activemodel/test/cases/validations_test.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/activemodel/test/cases/validations_test.rb b/activemodel/test/cases/validations_test.rb
index d44667e722..78565177d8 100644
--- a/activemodel/test/cases/validations_test.rb
+++ b/activemodel/test/cases/validations_test.rb
@@ -141,6 +141,22 @@ class ValidationsTest < ActiveModel::TestCase
t = Topic.new("title" => "")
assert !t.valid?
assert_equal "can't be blank", t.errors["title"].first
+ Topic.validates_presence_of :title, :author_name
+ Topic.validate {|topic| topic.errors.add('author_email_address', 'will never be valid')}
+ Topic.validates_length_of :title, :content, :minimum => 2
+
+ t = Topic.new :title => ''
+ assert !t.valid?
+
+ assert_equal :title, key = t.errors.keys.first
+ assert_equal "can't be blank", t.errors[key].first
+ assert_equal 'is too short (minimum is 2 characters)', t.errors[key].second
+ assert_equal :author_name, key = t.errors.keys.second
+ assert_equal "can't be blank", t.errors[key].first
+ assert_equal :author_email_address, key = t.errors.keys.third
+ assert_equal 'will never be valid', t.errors[key].first
+ assert_equal :content, key = t.errors.keys.fourth
+ assert_equal 'is too short (minimum is 2 characters)', t.errors[key].first
end
def test_invalid_should_be_the_opposite_of_valid