summaryrefslogtreecommitdiffstats
path: root/test/unit/changeset_test.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2013-10-05 09:41:11 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2013-10-05 09:41:11 +0000
commita77b462a53a02dbead1042bd12060177ade7b22a (patch)
tree4d58c8dee5c021a8dd1af32a8fbe741e3c6ea1d0 /test/unit/changeset_test.rb
parentb59d10968036b7da57a499895a9a2d91ea227c34 (diff)
downloadredmine-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.rb34
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?