From 5b6c1a2182bfd1aa7b816c6654f38268ff597c2e Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Tue, 14 Apr 2015 19:01:09 -0400 Subject: [PATCH] Fix Issue and ExternalIssue reference specs --- .../external_issue_reference_filter.rb | 4 ++++ .../markdown/issue_reference_filter_spec.rb | 22 +++++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/lib/gitlab/markdown/external_issue_reference_filter.rb b/lib/gitlab/markdown/external_issue_reference_filter.rb index 3ca8eb7e4a7..c45cc805c71 100644 --- a/lib/gitlab/markdown/external_issue_reference_filter.rb +++ b/lib/gitlab/markdown/external_issue_reference_filter.rb @@ -1,6 +1,8 @@ module Gitlab module Markdown # HTML filter that replaces external issue tracker references with links. + # References are ignored if the project doesn't use an external issue + # tracker. class ExternalIssueReferenceFilter < ReferenceFilter # Public: Find `JIRA-123` issue references in text # @@ -23,6 +25,8 @@ module Gitlab ISSUE_PATTERN = /(?([A-Z\-]+-)\d+)/ def call + return doc if project.default_issues_tracker? + replace_text_nodes_matching(ISSUE_PATTERN) do |content| issue_link_filter(content) end diff --git a/spec/lib/gitlab/markdown/issue_reference_filter_spec.rb b/spec/lib/gitlab/markdown/issue_reference_filter_spec.rb index e4a0d4c70e2..8cbf00a3de2 100644 --- a/spec/lib/gitlab/markdown/issue_reference_filter_spec.rb +++ b/spec/lib/gitlab/markdown/issue_reference_filter_spec.rb @@ -16,13 +16,6 @@ module Gitlab::Markdown to raise_error(ArgumentError, /:project/) end - it 'ignores valid references when using non-default tracker' do - expect(project).to receive(:default_issues_tracker?).and_return(false) - - exp = act = "Issue ##{issue.iid}" - expect(filter(act).to_html).to eq exp - end - %w(pre code a style).each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Issue ##{issue.iid}" @@ -33,6 +26,13 @@ module Gitlab::Markdown context 'internal reference' do let(:reference) { "##{issue.iid}" } + it 'ignores valid references when using non-default tracker' do + expect(project).to receive(:issue_exists?).with(issue.iid).and_return(false) + + exp = act = "Issue ##{issue.iid}" + expect(filter(act).to_html).to eq exp + end + it 'links to a valid reference' do doc = filter("See #{reference}") @@ -87,6 +87,14 @@ module Gitlab::Markdown to receive(:user_can_reference_project?).and_return(true) end + it 'ignores valid references when cross-reference project uses external tracker' do + expect_any_instance_of(Project).to receive(:issue_exists?). + with(issue.iid).and_return(false) + + exp = act = "Issue ##{issue.iid}" + expect(filter(act).to_html).to eq exp + end + it 'links to a valid reference' do doc = filter("See #{reference}")