From 981a6223e40ef7d1550f155202279dee5b7f8978 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Fri, 11 Nov 2011 13:22:57 +0000 Subject: [PATCH] Custom date field accepts invalid dates (#9394). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7779 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/custom_value.rb | 2 +- test/unit/custom_value_test.rb | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/models/custom_value.rb b/app/models/custom_value.rb index 6d4af178a..dae8f73ef 100644 --- a/app/models/custom_value.rb +++ b/app/models/custom_value.rb @@ -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 diff --git a/test/unit/custom_value_test.rb b/test/unit/custom_value_test.rb index c0778fb43..95931d277 100644 --- a/test/unit/custom_value_test.rb +++ b/test/unit/custom_value_test.rb @@ -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