diff options
Diffstat (limited to 'spec/lib/banzai/filter/references')
14 files changed, 63 insertions, 56 deletions
diff --git a/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb b/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb index 6ebf6c3cd1d..9723e9b39f1 100644 --- a/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb @@ -13,7 +13,7 @@ RSpec.describe Banzai::Filter::References::AlertReferenceFilter, feature_categor expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Alert #{reference}</#{elem}>" @@ -47,7 +47,7 @@ RSpec.describe Banzai::Filter::References::AlertReferenceFilter, feature_categor end it 'escapes the title attribute' do - allow(alert).to receive(:title).and_return(%{"></a>whatever<a title="}) + allow(alert).to receive(:title).and_return(%("></a>whatever<a title=")) doc = reference_filter("Alert #{reference}") expect(doc.text).to eq "Alert #{reference}" @@ -79,7 +79,7 @@ RSpec.describe Banzai::Filter::References::AlertReferenceFilter, feature_categor doc = reference_filter("Alert #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq urls.details_project_alert_management_url(project, alert.iid, only_path: true) end end diff --git a/spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb b/spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb index 594a24fa279..9300945a9af 100644 --- a/spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Banzai::Filter::References::CommitRangeReferenceFilter, feature_c expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Commit Range #{range.to_reference}</#{elem}>" expect(reference_filter(act).to_html).to eq exp @@ -96,7 +96,7 @@ RSpec.describe Banzai::Filter::References::CommitRangeReferenceFilter, feature_c doc = reference_filter("See #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq urls.project_compare_url(project, from: commit1.id, to: commit2.id, only_path: true) end end diff --git a/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb b/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb index 73e3bf41ee9..6e0f9eda0e2 100644 --- a/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb @@ -12,7 +12,7 @@ RSpec.describe Banzai::Filter::References::CommitReferenceFilter, feature_catego expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Commit #{commit.id}</#{elem}>" expect(reference_filter(act).to_html).to eq exp @@ -61,7 +61,7 @@ RSpec.describe Banzai::Filter::References::CommitReferenceFilter, feature_catego it 'escapes the title attribute' do allow_next_instance_of(Commit) do |instance| - allow(instance).to receive(:title).and_return(%{"></a>whatever<a title="}) + allow(instance).to receive(:title).and_return(%("></a>whatever<a title=")) end doc = reference_filter("See #{reference}") @@ -93,7 +93,7 @@ RSpec.describe Banzai::Filter::References::CommitReferenceFilter, feature_catego doc = reference_filter("See #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq urls.project_commit_url(project, reference, only_path: true) end diff --git a/spec/lib/banzai/filter/references/design_reference_filter_spec.rb b/spec/lib/banzai/filter/references/design_reference_filter_spec.rb index d97067de155..fd03d7c0d27 100644 --- a/spec/lib/banzai/filter/references/design_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/design_reference_filter_spec.rb @@ -77,7 +77,7 @@ RSpec.describe Banzai::Filter::References::DesignReferenceFilter, feature_catego end end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| context "wrapped in a <#{elem}/>" do let(:input_text) { "<#{elem}>Design #{url_for_design(design)}</#{elem}>" } diff --git a/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb b/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb index 86fb7d3964d..823f006c98a 100644 --- a/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb @@ -14,7 +14,7 @@ RSpec.describe Banzai::Filter::References::ExternalIssueReferenceFilter, feature expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Issue #{reference}</#{elem}>" @@ -59,7 +59,7 @@ RSpec.describe Banzai::Filter::References::ExternalIssueReferenceFilter, feature it 'escapes the title attribute' do allow(project.external_issue_tracker).to receive(:title) - .and_return(%{"></a>whatever<a title="}) + .and_return(%("></a>whatever<a title=")) doc = filter("Issue #{reference}") expect(doc.text).to eq "Issue #{reference}" diff --git a/spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb b/spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb index c2f4bf6caa5..02be2296d5c 100644 --- a/spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb @@ -13,7 +13,7 @@ RSpec.describe Banzai::Filter::References::FeatureFlagReferenceFilter, feature_c expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Feature Flag #{reference}</#{elem}>" @@ -47,7 +47,7 @@ RSpec.describe Banzai::Filter::References::FeatureFlagReferenceFilter, feature_c end it 'escapes the title attribute' do - allow(feature_flag).to receive(:name).and_return(%{"></a>whatever<a title="}) + allow(feature_flag).to receive(:name).and_return(%("></a>whatever<a title=")) doc = reference_filter("Feature Flag #{reference}") expect(doc.text).to eq "Feature Flag #{reference}" @@ -79,7 +79,7 @@ RSpec.describe Banzai::Filter::References::FeatureFlagReferenceFilter, feature_c doc = reference_filter("Feature Flag #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq urls.edit_project_feature_flag_url(project, feature_flag.iid, only_path: true) end end diff --git a/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb b/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb index aadd726ac40..d16188e99a3 100644 --- a/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb @@ -27,7 +27,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter, feature_categor expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Issue #{issue.to_reference}</#{elem}>" expect(reference_filter(act).to_html).to eq exp @@ -77,7 +77,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter, feature_categor end it 'escapes the title attribute' do - issue.update_attribute(:title, %{"></a>whatever<a title="}) + issue.update_attribute(:title, %("></a>whatever<a title=")) doc = reference_filter("Issue #{written_reference}") expect(doc.text).to eq "Issue #{reference}" @@ -128,7 +128,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter, feature_categor it 'does not escape the data-original attribute' do inner_html = 'element <code>node</code> inside' - doc = reference_filter(%{<a href="#{written_reference}">#{inner_html}</a>}) + doc = reference_filter(%(<a href="#{written_reference}">#{inner_html}</a>)) expect(doc.children.first.attr('data-original')).to eq inner_html end @@ -163,7 +163,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter, feature_categor doc = reference_filter("Issue #{written_reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq issue_path end @@ -381,7 +381,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter, feature_categor end context 'cross-project reference in link href' do - let(:reference_link) { %{<a href="#{reference}">Reference</a>} } + let(:reference_link) { %(<a href="#{reference}">Reference</a>) } let(:reference) { issue.to_reference(project) } let(:issue) { create(:issue, project: project2) } let(:project2) { create(:project, :public, namespace: namespace) } @@ -412,7 +412,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter, feature_categor end context 'cross-project URL in link href' do - let(:reference_link) { %{<a href="#{reference}">Reference</a>} } + let(:reference_link) { %(<a href="#{reference}">Reference</a>) } let(:reference) { (issue_url + "#note_123").to_s } let(:issue) { create(:issue, project: project2) } let(:project2) { create(:project, :public, namespace: namespace) } @@ -519,7 +519,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter, feature_categor it 'links to a valid reference for cross-reference in link href' do reference = (issue_url + "#note_123").to_s - reference_link = %{<a href="#{reference}">Reference</a>} + reference_link = %(<a href="#{reference}">Reference</a>) doc = reference_filter("See #{reference_link}", context) @@ -530,7 +530,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter, feature_categor it 'links to a valid reference for issue reference in the link href' do reference = issue.to_reference(group) - reference_link = %{<a href="#{reference}">Reference</a>} + reference_link = %(<a href="#{reference}">Reference</a>) doc = reference_filter("See #{reference_link}", context) link = doc.css('a').first diff --git a/spec/lib/banzai/filter/references/label_reference_filter_spec.rb b/spec/lib/banzai/filter/references/label_reference_filter_spec.rb index 91b051d71ec..a4587b70dfa 100644 --- a/spec/lib/banzai/filter/references/label_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/label_reference_filter_spec.rb @@ -19,7 +19,7 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Label #{reference}</#{elem}>" expect(reference_filter(act).to_html).to eq exp @@ -64,14 +64,14 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor doc = reference_filter("Label #{reference}") link = doc.css('a').first.attr('href') - expect(link).to match %r(https?://) + expect(link).to match %r{https?://} end it 'does not include protocol when :only_path true' do doc = reference_filter("Label #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} end it 'links to issue list when :label_url_method is not present' do @@ -118,7 +118,7 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\))) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\)}) end it 'ignores invalid label IDs' do @@ -142,7 +142,7 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor it 'links with adjacent text' do doc = reference_filter("Label (#{reference}).") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\)\.)) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\)\.}) end it 'ignores invalid label names' do @@ -166,7 +166,7 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor it 'links with adjacent text' do doc = reference_filter("Label (#{reference}).") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\)\.)) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\)\.}) end it 'ignores invalid label names' do @@ -191,7 +191,7 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor it 'does not include trailing punctuation', :aggregate_failures do ['.', ', ok?', '...', '?', '!', ': is that ok?'].each do |trailing_punctuation| doc = filter("Label #{reference}#{trailing_punctuation}") - expect(doc.to_html).to match(%r(<span.+><a.+><span.+>\?g\.fm&</span></a></span>#{Regexp.escape(trailing_punctuation)})) + expect(doc.to_html).to match(%r{<span.+><a.+><span.+>\?g\.fm&</span></a></span>#{Regexp.escape(trailing_punctuation)}}) end end @@ -217,7 +217,7 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\))) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\)}) end it 'ignores invalid label names' do @@ -241,7 +241,7 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\))) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\)}) end it 'ignores invalid label names' do @@ -265,7 +265,7 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>g\.fm & references\?</span></a></span>\.\))) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>g\.fm & references\?</span></a></span>\.\)}) end it 'ignores invalid label names' do @@ -344,7 +344,7 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor end describe 'referencing a label in a link href' do - let(:reference) { %{<a href="#{label.to_reference}">Label</a>} } + let(:reference) { %(<a href="#{label.to_reference}">Label</a>) } it 'links to a valid reference' do doc = reference_filter("See #{reference}") @@ -355,7 +355,7 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(<span.+><a.+>Label</a></span>\.\))) + expect(doc.to_html).to match(%r{\(<span.+><a.+>Label</a></span>\.\)}) end it 'includes a data-project attribute' do @@ -393,7 +393,7 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{group_label.name}</span></a></span>\.\))) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{group_label.name}</span></a></span>\.\)}) end it 'ignores invalid label names' do @@ -416,7 +416,7 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{group_label.name}</span></a></span>\.\))) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{group_label.name}</span></a></span>\.\)}) end it 'ignores invalid label names' do diff --git a/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb b/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb index 156455221cf..ccc8478c7d8 100644 --- a/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb @@ -12,7 +12,7 @@ RSpec.describe Banzai::Filter::References::MergeRequestReferenceFilter, feature_ expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Merge #{merge.to_reference}</#{elem}>" expect(reference_filter(act).to_html).to eq exp @@ -83,7 +83,7 @@ RSpec.describe Banzai::Filter::References::MergeRequestReferenceFilter, feature_ end it 'escapes the title attribute' do - merge.update_attribute(:title, %{"></a>whatever<a title="}) + merge.update_attribute(:title, %("></a>whatever<a title=")) doc = reference_filter("Merge #{reference}") expect(doc.text).to eq "Merge #{reference}" @@ -141,7 +141,7 @@ RSpec.describe Banzai::Filter::References::MergeRequestReferenceFilter, feature_ doc = reference_filter("Merge #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq urls.project_merge_request_url(project, merge, only_path: true) end end diff --git a/spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb b/spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb index 7caa6efff66..1fa62d70b72 100644 --- a/spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Banzai::Filter::References::MilestoneReferenceFilter, feature_cat end shared_examples 'reference parsing' do - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>milestone #{reference}</#{elem}>" expect(reference_filter(act).to_html).to eq exp @@ -49,7 +49,7 @@ RSpec.describe Banzai::Filter::References::MilestoneReferenceFilter, feature_cat doc = reference_filter("Milestone #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq urls.milestone_path(milestone) end end @@ -63,7 +63,7 @@ RSpec.describe Banzai::Filter::References::MilestoneReferenceFilter, feature_cat it 'links with adjacent text' do doc = reference_filter("Milestone (#{reference}.)") - expect(doc.to_html).to match(%r(\(<a.+>#{milestone.reference_link_text}</a>\.\))) + expect(doc.to_html).to match(%r{\(<a.+>#{milestone.reference_link_text}</a>\.\)}) end it 'ignores invalid milestone IIDs' do @@ -89,12 +89,12 @@ RSpec.describe Banzai::Filter::References::MilestoneReferenceFilter, feature_cat it 'links with adjacent text' do doc = reference_filter("Milestone (#{reference}.)") - expect(doc.to_html).to match(%r(\(<a.+>#{milestone.reference_link_text}</a>\.\))) + expect(doc.to_html).to match(%r{\(<a.+>#{milestone.reference_link_text}</a>\.\)}) end it 'links with adjacent html tags' do doc = reference_filter("Milestone <p>#{reference}</p>.") - expect(doc.to_html).to match(%r(<p><a.+>#{milestone.reference_link_text}</a></p>)) + expect(doc.to_html).to match(%r{<p><a.+>#{milestone.reference_link_text}</a></p>}) end it 'ignores invalid milestone names' do @@ -120,7 +120,7 @@ RSpec.describe Banzai::Filter::References::MilestoneReferenceFilter, feature_cat it 'links with adjacent text' do doc = reference_filter("Milestone (#{reference}.)") - expect(doc.to_html).to match(%r(\(<a.+>#{milestone.reference_link_text}</a>\.\))) + expect(doc.to_html).to match(%r{\(<a.+>#{milestone.reference_link_text}</a>\.\)}) end it 'ignores invalid milestone names' do @@ -132,7 +132,7 @@ RSpec.describe Banzai::Filter::References::MilestoneReferenceFilter, feature_cat shared_examples 'referencing a milestone in a link href' do let(:unquoted_reference) { "#{Milestone.reference_prefix}#{milestone.name}" } - let(:link_reference) { %{<a href="#{unquoted_reference}">Milestone</a>} } + let(:link_reference) { %(<a href="#{unquoted_reference}">Milestone</a>) } before do milestone.update!(name: 'gfm') @@ -146,7 +146,7 @@ RSpec.describe Banzai::Filter::References::MilestoneReferenceFilter, feature_cat it 'links with adjacent text' do doc = reference_filter("Milestone (#{link_reference}.)") - expect(doc.to_html).to match(%r(\(<a.+>Milestone</a>\.\))) + expect(doc.to_html).to match(%r{\(<a.+>Milestone</a>\.\)}) end it 'includes a data-project attribute' do @@ -169,7 +169,7 @@ RSpec.describe Banzai::Filter::References::MilestoneReferenceFilter, feature_cat shared_examples 'linking to a milestone as the entire link' do let(:unquoted_reference) { "#{Milestone.reference_prefix}#{milestone.name}" } let(:link) { urls.milestone_url(milestone) } - let(:link_reference) { %{<a href="#{link}">#{link}</a>} } + let(:link_reference) { %(<a href="#{link}">#{link}</a>) } it 'replaces the link text with the milestone reference' do doc = reference_filter("See #{link}") @@ -220,7 +220,7 @@ RSpec.describe Banzai::Filter::References::MilestoneReferenceFilter, feature_cat it 'escapes the name attribute' do allow_next_instance_of(Milestone) do |instance| - allow(instance).to receive(:title).and_return(%{"></a>whatever<a title="}) + allow(instance).to receive(:title).and_return(%("></a>whatever<a title=")) end doc = reference_filter("See #{reference}") @@ -257,7 +257,7 @@ RSpec.describe Banzai::Filter::References::MilestoneReferenceFilter, feature_cat it 'escapes the name attribute' do allow_next_instance_of(Milestone) do |instance| - allow(instance).to receive(:title).and_return(%{"></a>whatever<a title="}) + allow(instance).to receive(:title).and_return(%("></a>whatever<a title=")) end doc = reference_filter("See #{reference}") @@ -294,7 +294,7 @@ RSpec.describe Banzai::Filter::References::MilestoneReferenceFilter, feature_cat it 'escapes the name attribute' do allow_next_instance_of(Milestone) do |instance| - allow(instance).to receive(:title).and_return(%{"></a>whatever<a title="}) + allow(instance).to receive(:title).and_return(%("></a>whatever<a title=")) end doc = reference_filter("See #{reference}") diff --git a/spec/lib/banzai/filter/references/project_reference_filter_spec.rb b/spec/lib/banzai/filter/references/project_reference_filter_spec.rb index b6d6ff2309a..9433862ac8a 100644 --- a/spec/lib/banzai/filter/references/project_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/project_reference_filter_spec.rb @@ -47,7 +47,7 @@ RSpec.describe Banzai::Filter::References::ProjectReferenceFilter, feature_categ expect(doc.css('a').first.attr('href')).to eq urls.project_url(subject) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Hey #{CGI.escapeHTML(reference)}</#{elem}>" expect(reference_filter(act).to_html).to eq exp diff --git a/spec/lib/banzai/filter/references/reference_filter_spec.rb b/spec/lib/banzai/filter/references/reference_filter_spec.rb index b55b8fd41fa..a2aa4a33ed7 100644 --- a/spec/lib/banzai/filter/references/reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/reference_filter_spec.rb @@ -34,6 +34,13 @@ RSpec.describe Banzai::Filter::References::ReferenceFilter, feature_category: :t expect { |b| filter.each_node(&b) }.not_to yield_control end + + it 'skips text nodes in inline diff elements' do + document = Nokogiri::HTML.fragment('<span class="idiff">foo</span>') + filter = described_class.new(document, project: project) + + expect { |b| filter.each_node(&b) }.not_to yield_control + end end describe '#nodes' do diff --git a/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb b/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb index 32d1cb095d3..b196d85ba8a 100644 --- a/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb @@ -13,7 +13,7 @@ RSpec.describe Banzai::Filter::References::SnippetReferenceFilter, feature_categ expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Snippet #{reference}</#{elem}>" expect(reference_filter(act).to_html).to eq exp @@ -45,7 +45,7 @@ RSpec.describe Banzai::Filter::References::SnippetReferenceFilter, feature_categ end it 'escapes the title attribute' do - snippet.update_attribute(:title, %{"></a>whatever<a title="}) + snippet.update_attribute(:title, %("></a>whatever<a title=")) doc = reference_filter("Snippet #{reference}") expect(doc.text).to eq "Snippet #{reference}" @@ -76,7 +76,7 @@ RSpec.describe Banzai::Filter::References::SnippetReferenceFilter, feature_categ doc = reference_filter("Snippet #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq urls.project_snippet_url(project, snippet, only_path: true) end end diff --git a/spec/lib/banzai/filter/references/user_reference_filter_spec.rb b/spec/lib/banzai/filter/references/user_reference_filter_spec.rb index 276701a2984..7a11ff3ac3d 100644 --- a/spec/lib/banzai/filter/references/user_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/user_reference_filter_spec.rb @@ -32,7 +32,7 @@ RSpec.describe Banzai::Filter::References::UserReferenceFilter, feature_category expect(reference_filter(act).to_html).to eq(exp) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Hey #{reference}</#{elem}>" expect(reference_filter(act).to_html).to eq exp |