]> source.dussan.org Git - redmine.git/commitdiff
Wrong redmine link after referencing an object from a different project (#12930).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 22 Jan 2013 20:40:39 +0000 (20:40 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 22 Jan 2013 20:40:39 +0000 (20:40 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11258 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/application_helper.rb
test/unit/helpers/application_helper_test.rb

index f923b7b6ce4090dcc459722116d8cc1a1935bf59..90c0072a9d706a685592978fd0a8900c04efeca6 100644 (file)
@@ -658,10 +658,11 @@ module ApplicationHelper
   #     identifier:document:"Some document"
   #     identifier:version:1.0.0
   #     identifier:source:some/file
-  def parse_redmine_links(text, project, obj, attr, only_path, options)
+  def parse_redmine_links(text, default_project, obj, attr, only_path, options)
     text.gsub!(%r{([\s\(,\-\[\>]|^)(!)?(([a-z0-9\-_]+):)?(attachment|document|version|forum|news|message|project|commit|source|export)?(((#)|((([a-z0-9\-]+)\|)?(r)))((\d+)((#note)?-(\d+))?)|(:)([^"\s<>][^\s<>]*?|"[^"]+?"))(?=(?=[[:punct:]][^A-Za-z0-9_/])|,|\s|\]|<|$)}) do |m|
       leading, esc, project_prefix, project_identifier, prefix, repo_prefix, repo_identifier, sep, identifier, comment_suffix, comment_id = $1, $2, $3, $4, $5, $10, $11, $8 || $12 || $18, $14 || $19, $15, $17
       link = nil
+      project = default_project
       if project_identifier
         project = Project.visible.find_by_identifier(project_identifier)
       end
index f23417d1af38825e36b352b243b87379a344af2b..d96abb0fc0f29d5075707bc1fcd3ddd666da1a4a 100644 (file)
@@ -352,6 +352,15 @@ RAW
     to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text), "#{text} failed" }
   end
 
+  def test_redmine_links_with_a_different_project_before_current_project
+    vp1 = Version.generate!(:project_id => 1, :name => '1.4.4')
+    vp3 = Version.generate!(:project_id => 3, :name => '1.4.4')
+
+    @project = Project.find(3)
+    assert_equal %(<p><a href="/versions/#{vp1.id}" class="version">1.4.4</a> <a href="/versions/#{vp3.id}" class="version">1.4.4</a></p>),
+      textilizable("ecookbook:version:1.4.4 version:1.4.4")
+  end
+
   def test_escaped_redmine_links_should_not_be_parsed
     to_test = [
       '#3.',