##// END OF EJS Templates
Fixed magic link in the note added when closing an issue by a commit from a subproject (#10284)....
Jean-Philippe Lang -
r8797:77287d1f0bd1
parent child
Show More
@@ -151,12 +151,16 class Changeset < ActiveRecord::Base
151 @long_comments || split_comments.last
151 @long_comments || split_comments.last
152 end
152 end
153
153
154 def text_tag
154 def text_tag(ref_project=nil)
155 if scmid?
155 tag = if scmid?
156 "commit:#{scmid}"
156 "commit:#{scmid}"
157 else
157 else
158 "r#{revision}"
158 "r#{revision}"
159 end
159 end
160 if ref_project && project && ref_project != project
161 tag = "#{project.identifier}:#{tag}"
162 end
163 tag
160 end
164 end
161
165
162 # Returns the previous changeset
166 # Returns the previous changeset
@@ -215,7 +219,7 class Changeset < ActiveRecord::Base
215 # don't change the status is the issue is closed
219 # don't change the status is the issue is closed
216 return if issue.status && issue.status.is_closed?
220 return if issue.status && issue.status.is_closed?
217
221
218 journal = issue.init_journal(user || User.anonymous, ll(Setting.default_language, :text_status_changed_by_changeset, text_tag))
222 journal = issue.init_journal(user || User.anonymous, ll(Setting.default_language, :text_status_changed_by_changeset, text_tag(issue.project)))
219 issue.status = status
223 issue.status = status
220 unless Setting.commit_fix_done_ratio.blank?
224 unless Setting.commit_fix_done_ratio.blank?
221 issue.done_ratio = Setting.commit_fix_done_ratio.to_i
225 issue.done_ratio = Setting.commit_fix_done_ratio.to_i
@@ -234,7 +238,7 class Changeset < ActiveRecord::Base
234 :hours => hours,
238 :hours => hours,
235 :issue => issue,
239 :issue => issue,
236 :spent_on => commit_date,
240 :spent_on => commit_date,
237 :comments => l(:text_time_logged_by_changeset, :value => text_tag,
241 :comments => l(:text_time_logged_by_changeset, :value => text_tag(issue.project),
238 :locale => Setting.default_language)
242 :locale => Setting.default_language)
239 )
243 )
240 time_entry.activity = log_time_activity unless log_time_activity.nil?
244 time_entry.activity = log_time_activity unless log_time_activity.nil?
@@ -178,6 +178,24 class ChangesetTest < ActiveSupport::TestCase
178 assert c.issues.first.project != c.project
178 assert c.issues.first.project != c.project
179 end
179 end
180
180
181 def test_commit_closing_a_subproject_issue
182 with_settings :commit_fix_status_id => 5, :commit_fix_keywords => 'closes' do
183 issue = Issue.find(5)
184 assert !issue.closed?
185 assert_difference 'Journal.count' do
186 c = Changeset.new(:repository => Project.find(1).repository,
187 :committed_on => Time.now,
188 :comments => 'closes #5, a subproject issue',
189 :revision => '12345')
190 assert c.save
191 end
192 assert issue.reload.closed?
193 journal = Journal.first(:order => 'id DESC')
194 assert_equal issue, journal.issue
195 assert_include "Applied in changeset ecookbook:r12345.", journal.notes
196 end
197 end
198
181 def test_commit_referencing_a_parent_project_issue
199 def test_commit_referencing_a_parent_project_issue
182 # repository of child project
200 # repository of child project
183 r = Repository::Subversion.create!(
201 r = Repository::Subversion.create!(
@@ -227,6 +245,16 class ChangesetTest < ActiveSupport::TestCase
227 assert_equal 'r520', c.text_tag
245 assert_equal 'r520', c.text_tag
228 end
246 end
229
247
248 def test_text_tag_revision_with_same_project
249 c = Changeset.new(:revision => '520', :repository => Project.find(1).repository)
250 assert_equal 'r520', c.text_tag(Project.find(1))
251 end
252
253 def test_text_tag_revision_with_different_project
254 c = Changeset.new(:revision => '520', :repository => Project.find(1).repository)
255 assert_equal 'ecookbook:r520', c.text_tag(Project.find(2))
256 end
257
230 def test_text_tag_hash
258 def test_text_tag_hash
231 c = Changeset.new(
259 c = Changeset.new(
232 :scmid => '7234cb2750b63f47bff735edc50a1c0a433c2518',
260 :scmid => '7234cb2750b63f47bff735edc50a1c0a433c2518',
@@ -234,6 +262,16 class ChangesetTest < ActiveSupport::TestCase
234 assert_equal 'commit:7234cb2750b63f47bff735edc50a1c0a433c2518', c.text_tag
262 assert_equal 'commit:7234cb2750b63f47bff735edc50a1c0a433c2518', c.text_tag
235 end
263 end
236
264
265 def test_text_tag_hash_with_same_project
266 c = Changeset.new(:revision => '7234cb27', :scmid => '7234cb27', :repository => Project.find(1).repository)
267 assert_equal 'commit:7234cb27', c.text_tag(Project.find(1))
268 end
269
270 def test_text_tag_hash_with_different_project
271 c = Changeset.new(:revision => '7234cb27', :scmid => '7234cb27', :repository => Project.find(1).repository)
272 assert_equal 'ecookbook:commit:7234cb27', c.text_tag(Project.find(2))
273 end
274
237 def test_text_tag_hash_all_number
275 def test_text_tag_hash_all_number
238 c = Changeset.new(:scmid => '0123456789', :revision => '0123456789')
276 c = Changeset.new(:scmid => '0123456789', :revision => '0123456789')
239 assert_equal 'commit:0123456789', c.text_tag
277 assert_equal 'commit:0123456789', c.text_tag
General Comments 0
You need to be logged in to leave comments. Login now