summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2016-01-07 12:26:05 +0100
committerDouwe Maan <douwe@gitlab.com>2016-01-07 12:26:05 +0100
commit539b41929bddf0e82d986f9e823208dd92707a21 (patch)
treeb63069557b6303a57ea36f33f1a80aa3618ec43d
parentb38eabdaf69c4da19f39c26b7626e9ce4b51158b (diff)
downloadgitlab-ce-milestone-ref.tar.gz
Milestone reference is a Markdown linkmilestone-ref
-rw-r--r--app/models/milestone.rb6
-rw-r--r--spec/fixtures/markdown.md.erb1
-rw-r--r--spec/lib/banzai/filter/milestone_reference_filter_spec.rb4
3 files changed, 8 insertions, 3 deletions
diff --git a/app/models/milestone.rb b/app/models/milestone.rb
index eaa2db2e247..550d14d4c39 100644
--- a/app/models/milestone.rb
+++ b/app/models/milestone.rb
@@ -71,8 +71,12 @@ class Milestone < ActiveRecord::Base
end
def to_reference(from_project = nil)
+ escaped_title = self.title.gsub("]", "\\]")
+
h = Gitlab::Application.routes.url_helpers
- h.namespace_project_milestone_url(self.project.namespace, self.project, self)
+ url = h.namespace_project_milestone_url(self.project.namespace, self.project, self)
+
+ "[#{escaped_title}](#{url})"
end
def reference_link_text(from_project = nil)
diff --git a/spec/fixtures/markdown.md.erb b/spec/fixtures/markdown.md.erb
index 302b750aee5..0620096d689 100644
--- a/spec/fixtures/markdown.md.erb
+++ b/spec/fixtures/markdown.md.erb
@@ -219,7 +219,6 @@ References should be parseable even inside _<%= merge_request.to_reference %>_ e
- Milestone: <%= milestone.to_reference %>
- Milestone in another project: <%= xmilestone.to_reference(project) %>
- Ignored in code: `<%= milestone.to_reference %>`
-- Ignored in links: [Link to <%= milestone.to_reference %>](#milestone-link)
- Link to milestone by URL: [Milestone](<%= urls.namespace_project_milestone_url(milestone.project.namespace, milestone.project, milestone) %>)
### Task Lists
diff --git a/spec/lib/banzai/filter/milestone_reference_filter_spec.rb b/spec/lib/banzai/filter/milestone_reference_filter_spec.rb
index 86b71210100..ebf3d7489b5 100644
--- a/spec/lib/banzai/filter/milestone_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/milestone_reference_filter_spec.rb
@@ -18,7 +18,9 @@ describe Banzai::Filter::MilestoneReferenceFilter, lib: true do
end
context 'internal reference' do
- let(:reference) { milestone.to_reference }
+ # Convert the Markdown link to only the URL, since these tests aren't run through the regular Markdown pipeline.
+ # Milestone reference behavior in the full Markdown pipeline is tested elsewhere.
+ let(:reference) { milestone.to_reference.gsub(/\[([^\]]+)\]\(([^)]+)\)/, '\2') }
it 'links to a valid reference' do
doc = reference_filter("See #{reference}")