diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-04-30 14:02:03 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-04-30 14:02:03 +0000 |
commit | 9f1b57779ff3db4f7ef6bfb9e7d1670972340896 (patch) | |
tree | ec87830fcdb7bb9396c52a6f47b5ae1e41b6998b /activerecord/test/validations_test.rb | |
parent | 537efa36d0d9301ff78eb0cec34d4bafe3ebf2e0 (diff) | |
download | rails-9f1b57779ff3db4f7ef6bfb9e7d1670972340896.tar.gz rails-9f1b57779ff3db4f7ef6bfb9e7d1670972340896.tar.bz2 rails-9f1b57779ff3db4f7ef6bfb9e7d1670972340896.zip |
Fixed that validate_length_of lost :on option when :within was specified #1195 [jhosteny@mac.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1258 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test/validations_test.rb')
-rwxr-xr-x | activerecord/test/validations_test.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/activerecord/test/validations_test.rb b/activerecord/test/validations_test.rb index 89df29375c..4f5f5802ef 100755 --- a/activerecord/test/validations_test.rb +++ b/activerecord/test/validations_test.rb @@ -394,6 +394,48 @@ class ValidationsTest < Test::Unit::TestCase assert t.valid? end + def test_optionally_validates_length_of_using_within_on_create + Topic.validates_length_of :title, :content, :within => 5..10, :on => :create, :too_long => "my string is too long: %d" + + t = Topic.create("title" => "thisisnotvalid", "content" => "whatever") + assert !t.save + assert t.errors.on(:title) + assert_equal "my string is too long: 10", t.errors[:title] + + t.title = "butthisis" + assert t.save + + t.title = "few" + assert t.save + + t.content = "andthisislong" + assert t.save + + t.content = t.title = "iamfine" + assert t.save + end + + def test_optionally_validates_length_of_using_within_on_update + Topic.validates_length_of :title, :content, :within => 5..10, :on => :update, :too_short => "my string is too short: %d" + + t = Topic.create("title" => "vali", "content" => "whatever") + assert !t.save + assert t.errors.on(:title) + + t.title = "not" + assert !t.save + assert t.errors.on(:title) + assert_equal "my string is too short: 5", t.errors[:title] + + t.title = "valid" + t.content = "andthisistoolong" + assert !t.save + assert t.errors.on(:content) + + t.content = "iamfine" + assert t.save + end + def test_validates_length_of_using_is Topic.validates_length_of :title, :is => 5 |