]> source.dussan.org Git - redmine.git/commitdiff
Merged r10810 from trunk (#12359).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 17 Nov 2012 08:52:51 +0000 (08:52 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 17 Nov 2012 08:52:51 +0000 (08:52 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.1-stable@10821 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/version.rb
test/unit/version_test.rb

index cd32da91e62a90828e1fefc3b90868a14b2e2232..d6332897f60aee546693588c7abee82f03a95e61 100644 (file)
@@ -33,6 +33,7 @@ class Version < ActiveRecord::Base
   validates_format_of :effective_date, :with => /^\d{4}-\d{2}-\d{2}$/, :message => :not_a_date, :allow_nil => true
   validates_inclusion_of :status, :in => VERSION_STATUSES
   validates_inclusion_of :sharing, :in => VERSION_SHARINGS
+  validate :validate_version
 
   scope :named, lambda {|arg| { :conditions => ["LOWER(#{table_name}.name) = LOWER(?)", arg.to_s.strip]}}
   scope :open, :conditions => {:status => 'open'}
@@ -275,4 +276,10 @@ class Version < ActiveRecord::Base
       progress
     end
   end
+
+  def validate_version
+    if effective_date.nil? && @attributes['effective_date'].present?
+      errors.add :effective_date, :not_a_date
+    end
+  end
 end
index d80c3d10fb45b23ea58833357683bf2ef8b2b80b..83fb3f909802f3c5a4df2d3ea2ab588bd68469fa 100644 (file)
@@ -32,7 +32,13 @@ class VersionTest < ActiveSupport::TestCase
 
   def test_invalid_effective_date_validation
     v = Version.new(:project => Project.find(1), :name => '1.1', :effective_date => '99999-01-01')
-    assert !v.save
+    assert !v.valid?
+    v.effective_date = '2012-11-33'
+    assert !v.valid?
+    v.effective_date = '2012-31-11'
+    assert !v.valid?
+    v.effective_date = 'ABC'
+    assert !v.valid?
     assert_include I18n.translate('activerecord.errors.messages.not_a_date'),
                    v.errors[:effective_date]
   end