diff options
author | Robert Speicher <rspeicher@gmail.com> | 2015-04-14 19:01:09 -0400 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2015-04-20 13:01:45 -0400 |
commit | 5b6c1a2182bfd1aa7b816c6654f38268ff597c2e (patch) | |
tree | 86fbd8108f9fa272191936b15fb0e313c3896685 | |
parent | b3b8fc6c8a559b743d98577d07bc45a884e242a3 (diff) | |
download | gitlab-ce-5b6c1a2182bfd1aa7b816c6654f38268ff597c2e.tar.gz |
Fix Issue and ExternalIssue reference specs
-rw-r--r-- | lib/gitlab/markdown/external_issue_reference_filter.rb | 4 | ||||
-rw-r--r-- | spec/lib/gitlab/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 = /(?<issue>([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}</#{elem}>" @@ -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}") |