Fixed: Circular loop when using relations and subtasks (#8794).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11641 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2013-03-17 15:02:57 +00:00
parent b1afd75620
commit 38b3e045cf
5 changed files with 68 additions and 16 deletions
+30
View File
@@ -1531,6 +1531,36 @@ class IssueTest < ActiveSupport::TestCase
assert child.save
end
def test_setting_parent_to_a_dependent_issue_should_not_validate
set_language_if_valid 'en'
issue1 = Issue.generate!
issue2 = Issue.generate!
issue3 = Issue.generate!
IssueRelation.create!(:issue_from => issue1, :issue_to => issue2, :relation_type => IssueRelation::TYPE_PRECEDES)
IssueRelation.create!(:issue_from => issue3, :issue_to => issue1, :relation_type => IssueRelation::TYPE_PRECEDES)
issue3.reload
issue3.parent_issue_id = issue2.id
assert !issue3.valid?
assert_include 'Parent task is invalid', issue3.errors.full_messages
end
def test_setting_parent_should_not_allow_circular_dependency
set_language_if_valid 'en'
issue1 = Issue.generate!
issue2 = Issue.generate!
IssueRelation.create!(:issue_from => issue1, :issue_to => issue2, :relation_type => IssueRelation::TYPE_PRECEDES)
issue3 = Issue.generate!
issue2.reload
issue2.parent_issue_id = issue3.id
issue2.save!
issue4 = Issue.generate!
IssueRelation.create!(:issue_from => issue3, :issue_to => issue4, :relation_type => IssueRelation::TYPE_PRECEDES)
issue4.reload
issue4.parent_issue_id = issue1.id
assert !issue4.valid?
assert_include 'Parent task is invalid', issue4.errors.full_messages
end
def test_overdue
assert Issue.new(:due_date => 1.day.ago.to_date).overdue?
assert !Issue.new(:due_date => Date.today).overdue?