]> source.dussan.org Git - redmine.git/commitdiff
Custom date field accepts invalid dates (#9394).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 11 Nov 2011 13:22:57 +0000 (13:22 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 11 Nov 2011 13:22:57 +0000 (13:22 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7779 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/custom_value.rb
test/unit/custom_value_test.rb

index 6d4af178a1bb73fe629625f4ea39a572ee7e5d99..dae8f73ef3672c220bce2be290ccae5290e2b7ee 100644 (file)
@@ -64,7 +64,7 @@ protected
       when 'float'
         begin; Kernel.Float(value); rescue; errors.add(:value, :invalid) end
       when 'date'
-        errors.add(:value, :not_a_date) unless value =~ /^\d{4}-\d{2}-\d{2}$/
+        errors.add(:value, :not_a_date) unless value =~ /^\d{4}-\d{2}-\d{2}$/ && begin; value.to_date; rescue; false end
       when 'list'
         errors.add(:value, :inclusion) unless custom_field.possible_values.include?(value)
       end
index c0778fb439254f83405a297a7e8107f515ac7016..95931d27792dbceec4c903283af78b0c7e6618fb 100644 (file)
@@ -64,6 +64,8 @@ class CustomValueTest < ActiveSupport::TestCase
     assert v.valid?
     v.value = 'abc'
     assert !v.valid?
+    v.value = '1975-07-33'
+    assert !v.valid?
     v.value = '1975-07-14'
     assert v.valid?
   end