diff options
author | Jan Provaznik <jprovaznik@gitlab.com> | 2019-05-24 12:32:50 +0000 |
---|---|---|
committer | Jan Provaznik <jprovaznik@gitlab.com> | 2019-05-24 12:32:50 +0000 |
commit | 6b89b7cbcf1098831ffa06ea6700addba5a29ed5 (patch) | |
tree | ac49b031bd9a851f90f69c460982a4b21f36b6ca /spec | |
parent | 64d13d5a8ce70cf961e81a52b336ef5f651136e1 (diff) | |
parent | 17b97bf029a7085f6b726071a15f5d231510f1b6 (diff) | |
download | gitlab-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.rb | 21 |
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: '<html>') + end + + it 'links to a valid reference' do + doc = reference_filter('See %"<html>"') + + 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 %"<non valid>") + + 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}") |