diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index f923b7b6c..90c0072a9 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -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 diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb index f23417d1a..d96abb0fc 100644 --- a/test/unit/helpers/application_helper_test.rb +++ b/test/unit/helpers/application_helper_test.rb @@ -352,6 +352,15 @@ RAW to_test.each { |text, result| assert_equal "

#{result}

", 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 %(

1.4.4 1.4.4

), + textilizable("ecookbook:version:1.4.4 version:1.4.4") + end + def test_escaped_redmine_links_should_not_be_parsed to_test = [ '#3.',