Fixed that invalid start date is ignored (#12092).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10670 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2012-10-18 16:43:14 +00:00
parent 9ff16dd411
commit 1737552eca
2 changed files with 23 additions and 1 deletions

View File

@ -525,10 +525,14 @@ class Issue < ActiveRecord::Base
end
def validate_issue
if self.due_date.nil? && @attributes['due_date'] && !@attributes['due_date'].empty?
if due_date.nil? && @attributes['due_date'].present?
errors.add :due_date, :not_a_date
end
if start_date.nil? && @attributes['start_date'].present?
errors.add :start_date, :not_a_date
end
if self.due_date and self.start_date and self.due_date < self.start_date
errors.add :due_date, :greater_than_start_date
end

View File

@ -54,6 +54,24 @@ class IssueTest < ActiveSupport::TestCase
assert_nil issue.estimated_hours
end
def test_start_date_format_should_be_validated
set_language_if_valid 'en'
['2012', 'ABC', '2012-15-20'].each do |invalid_date|
issue = Issue.new(:start_date => invalid_date)
assert !issue.valid?
assert_include 'Start date is not a valid date', issue.errors.full_messages, "No error found for invalid date #{invalid_date}"
end
end
def test_due_date_format_should_be_validated
set_language_if_valid 'en'
['2012', 'ABC', '2012-15-20'].each do |invalid_date|
issue = Issue.new(:due_date => invalid_date)
assert !issue.valid?
assert_include 'Due date is not a valid date', issue.errors.full_messages, "No error found for invalid date #{invalid_date}"
end
end
def test_create_with_required_custom_field
set_language_if_valid 'en'
field = IssueCustomField.find_by_name('Database')