summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorJan Provaznik <jprovaznik@gitlab.com>2019-05-24 12:32:50 +0000
committerJan Provaznik <jprovaznik@gitlab.com>2019-05-24 12:32:50 +0000
commit6b89b7cbcf1098831ffa06ea6700addba5a29ed5 (patch)
treeac49b031bd9a851f90f69c460982a4b21f36b6ca /spec
parent64d13d5a8ce70cf961e81a52b336ef5f651136e1 (diff)
parent17b97bf029a7085f6b726071a15f5d231510f1b6 (diff)
downloadgitlab-ce-6b89b7cbcf1098831ffa06ea6700addba5a29ed5.tar.gz
Merge branch 'fix-milestone-references-with-escaped-html-entities' into 'master'
Fix milestone references with HTML entities in the name Closes #62114 See merge request gitlab-org/gitlab-ce!28667
Diffstat (limited to 'spec')
-rw-r--r--spec/lib/banzai/filter/milestone_reference_filter_spec.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/spec/lib/banzai/filter/milestone_reference_filter_spec.rb b/spec/lib/banzai/filter/milestone_reference_filter_spec.rb
index 4c94e4fdae0..f0a5dc8d0d7 100644
--- a/spec/lib/banzai/filter/milestone_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/milestone_reference_filter_spec.rb
@@ -295,6 +295,25 @@ describe Banzai::Filter::MilestoneReferenceFilter do
end
end
+ shared_examples 'references with HTML entities' do
+ before do
+ milestone.update!(title: '&lt;html&gt;')
+ end
+
+ it 'links to a valid reference' do
+ doc = reference_filter('See %"&lt;html&gt;"')
+
+ expect(doc.css('a').first.attr('href')).to eq urls.milestone_url(milestone)
+ expect(doc.text).to eq 'See %<html>'
+ end
+
+ it 'ignores invalid milestone names and escapes entities' do
+ act = %(Milestone %"&lt;non valid&gt;")
+
+ expect(reference_filter(act).to_html).to eq act
+ end
+ end
+
shared_context 'project milestones' do
let(:reference) { milestone.to_reference(format: :iid) }
@@ -307,6 +326,7 @@ describe Banzai::Filter::MilestoneReferenceFilter do
it_behaves_like 'cross-project / cross-namespace complete reference'
it_behaves_like 'cross-project / same-namespace complete reference'
it_behaves_like 'cross project shorthand reference'
+ it_behaves_like 'references with HTML entities'
end
shared_context 'group milestones' do
@@ -317,6 +337,7 @@ describe Banzai::Filter::MilestoneReferenceFilter do
it_behaves_like 'String-based single-word references'
it_behaves_like 'String-based multi-word references in quotes'
it_behaves_like 'referencing a milestone in a link href'
+ it_behaves_like 'references with HTML entities'
it 'does not support references by IID' do
doc = reference_filter("See #{Milestone.reference_prefix}#{milestone.iid}")