diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2013-10-05 09:41:11 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2013-10-05 09:41:11 +0000 |
commit | a77b462a53a02dbead1042bd12060177ade7b22a (patch) | |
tree | 4d58c8dee5c021a8dd1af32a8fbe741e3c6ea1d0 /test/unit/changeset_test.rb | |
parent | b59d10968036b7da57a499895a9a2d91ea227c34 (diff) | |
download | redmine-a77b462a53a02dbead1042bd12060177ade7b22a.tar.gz redmine-a77b462a53a02dbead1042bd12060177ade7b22a.zip |
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
Diffstat (limited to 'test/unit/changeset_test.rb')
-rw-r--r-- | test/unit/changeset_test.rb | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/test/unit/changeset_test.rb b/test/unit/changeset_test.rb index a97dc37d2..3ead6b843 100644 --- a/test/unit/changeset_test.rb +++ b/test/unit/changeset_test.rb @@ -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? |