Support for multiple issue update keywords/rules in commit messages (#4911).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@12197 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -30,10 +30,8 @@ class ChangesetTest < ActiveSupport::TestCase
|
||||
|
||||
def test_ref_keywords_any
|
||||
ActionMailer::Base.deliveries.clear
|
||||
Setting.commit_fix_status_id = IssueStatus.where(:is_closed => true).first.id
|
||||
Setting.commit_fix_done_ratio = '90'
|
||||
Setting.commit_ref_keywords = '*'
|
||||
Setting.commit_fix_keywords = 'fixes , closes'
|
||||
Setting.commit_update_keywords = {'fixes , closes' => {'status_id' => '5', 'done_ratio' => '90'}}
|
||||
|
||||
c = Changeset.new(:repository => Project.find(1).repository,
|
||||
:committed_on => Time.now,
|
||||
@@ -49,7 +47,7 @@ class ChangesetTest < ActiveSupport::TestCase
|
||||
|
||||
def test_ref_keywords
|
||||
Setting.commit_ref_keywords = 'refs'
|
||||
Setting.commit_fix_keywords = ''
|
||||
Setting.commit_update_keywords = ''
|
||||
c = Changeset.new(:repository => Project.find(1).repository,
|
||||
:committed_on => Time.now,
|
||||
:comments => 'Ignores #2. Refs #1',
|
||||
@@ -60,7 +58,7 @@ class ChangesetTest < ActiveSupport::TestCase
|
||||
|
||||
def test_ref_keywords_any_only
|
||||
Setting.commit_ref_keywords = '*'
|
||||
Setting.commit_fix_keywords = ''
|
||||
Setting.commit_update_keywords = ''
|
||||
c = Changeset.new(:repository => Project.find(1).repository,
|
||||
:committed_on => Time.now,
|
||||
:comments => 'Ignores #2. Refs #1',
|
||||
@@ -112,9 +110,12 @@ class ChangesetTest < ActiveSupport::TestCase
|
||||
end
|
||||
|
||||
def test_ref_keywords_closing_with_timelog
|
||||
Setting.commit_fix_status_id = IssueStatus.where(:is_closed => true).first.id
|
||||
Setting.commit_ref_keywords = '*'
|
||||
Setting.commit_fix_keywords = 'fixes , closes'
|
||||
Setting.commit_update_keywords = {
|
||||
'fixes , closes' => {
|
||||
'status_id' => IssueStatus.where(:is_closed => true).first.id.to_s
|
||||
}
|
||||
}
|
||||
Setting.commit_logtime_enabled = '1'
|
||||
|
||||
c = Changeset.new(:repository => Project.find(1).repository,
|
||||
@@ -163,6 +164,23 @@ class ChangesetTest < ActiveSupport::TestCase
|
||||
assert_equal [1,2,3], c.issue_ids.sort
|
||||
end
|
||||
|
||||
def test_update_keywords_with_multiple_rules
|
||||
Setting.commit_update_keywords = {
|
||||
'fixes, closes' => {'status_id' => '5'},
|
||||
'resolves' => {'status_id' => '3'}
|
||||
}
|
||||
issue1 = Issue.generate!
|
||||
issue2 = Issue.generate!
|
||||
|
||||
c = Changeset.new(:repository => Project.find(1).repository,
|
||||
:committed_on => Time.now,
|
||||
:comments => "Closes ##{issue1.id}\nResolves ##{issue2.id}",
|
||||
:revision => '12345')
|
||||
assert c.save
|
||||
assert_equal 5, issue1.reload.status_id
|
||||
assert_equal 3, issue2.reload.status_id
|
||||
end
|
||||
|
||||
def test_commit_referencing_a_subproject_issue
|
||||
c = Changeset.new(:repository => Project.find(1).repository,
|
||||
:committed_on => Time.now,
|
||||
@@ -174,7 +192,7 @@ class ChangesetTest < ActiveSupport::TestCase
|
||||
end
|
||||
|
||||
def test_commit_closing_a_subproject_issue
|
||||
with_settings :commit_fix_status_id => 5, :commit_fix_keywords => 'closes',
|
||||
with_settings :commit_update_keywords => {'closes' => {'status_id' => '5'}},
|
||||
:default_language => 'en' do
|
||||
issue = Issue.find(5)
|
||||
assert !issue.closed?
|
||||
|
||||
Reference in New Issue
Block a user