FIX: Handle null svg class for excerpt parsing (#19276)

Follow-up to 9d50790530

In certain cases the svg may not a class, so we just
need safe navigation to avoid an error here.
This commit is contained in:
Martin Brennan 2022-12-01 10:56:16 +10:00 committed by GitHub
parent 3ff6f6a5e1
commit d516c575fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 1 deletions

View File

@ -136,7 +136,7 @@ class ExcerptParser < Nokogiri::XML::SAX::Document
when "svg"
attributes = Hash[*attributes.flatten]
if attributes["class"].include?("d-icon") && @keep_svg
if attributes["class"]&.include?("d-icon") && @keep_svg
include_tag(name, attributes)
@in_svg = true
end

View File

@ -42,6 +42,9 @@ RSpec.describe ExcerptParser do
html = '<svg class="blah"><use href="#folder"></use></svg>'
expect(ExcerptParser.get_excerpt(html, 100, { keep_svg: true })).to match_html('')
html = '<svg><use href="#folder"></use></svg>'
expect(ExcerptParser.get_excerpt(html, 100, { keep_svg: true })).to match_html('')
html = '<use href="#user"></use><svg class="fa d-icon d-icon-folder svg-icon svg-node"><use href="#folder"></use></svg>'
expect(ExcerptParser.get_excerpt(html, 100, { keep_svg: true })).to match_html('<svg class="fa d-icon d-icon-folder svg-icon svg-node"><use href="#folder"></use></svg>')
end