Don't parse Rinku returned value to DocFragment when it didn't change the original html string.
This commit is contained in:
parent
240a4aa62a
commit
0c2da7f734
3 changed files with 23 additions and 0 deletions
|
@ -64,6 +64,7 @@ v 8.10.0 (unreleased)
|
||||||
- Collapse large diffs by default (!4990)
|
- Collapse large diffs by default (!4990)
|
||||||
- Fix mentioned users list on diff notes
|
- Fix mentioned users list on diff notes
|
||||||
- Fix creation of deployment on build that is retried, redeployed or rollback
|
- Fix creation of deployment on build that is retried, redeployed or rollback
|
||||||
|
- Don't parse Rinku returned value to DocFragment when it didn't change the original html string.
|
||||||
- Check for conflicts with existing Project's wiki path when creating a new project.
|
- Check for conflicts with existing Project's wiki path when creating a new project.
|
||||||
- Show last push widget in upstream after push to fork
|
- Show last push widget in upstream after push to fork
|
||||||
- Fix stage status shown for pipelines
|
- Fix stage status shown for pipelines
|
||||||
|
|
|
@ -56,6 +56,8 @@ module Banzai
|
||||||
# period (e.g., http://localhost:3000/)
|
# period (e.g., http://localhost:3000/)
|
||||||
rinku = Rinku.auto_link(html, :urls, options, IGNORE_PARENTS.to_a, 1)
|
rinku = Rinku.auto_link(html, :urls, options, IGNORE_PARENTS.to_a, 1)
|
||||||
|
|
||||||
|
return if rinku == html
|
||||||
|
|
||||||
# Rinku returns a String, so parse it back to a Nokogiri::XML::Document
|
# Rinku returns a String, so parse it back to a Nokogiri::XML::Document
|
||||||
# for further processing.
|
# for further processing.
|
||||||
@doc = parse_html(rinku)
|
@doc = parse_html(rinku)
|
||||||
|
|
|
@ -15,6 +15,16 @@ describe Banzai::Filter::AutolinkFilter, lib: true do
|
||||||
expect(filter(act).to_html).to eq exp
|
expect(filter(act).to_html).to eq exp
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when the input contains no links' do
|
||||||
|
it 'does not parse_html back the rinku returned value' do
|
||||||
|
act = HTML::Pipeline.parse('<p>This text contains no links to autolink</p>')
|
||||||
|
|
||||||
|
expect_any_instance_of(described_class).not_to receive(:parse_html)
|
||||||
|
|
||||||
|
filter(act).to_html
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'Rinku schemes' do
|
context 'Rinku schemes' do
|
||||||
it 'autolinks http' do
|
it 'autolinks http' do
|
||||||
doc = filter("See #{link}")
|
doc = filter("See #{link}")
|
||||||
|
@ -58,6 +68,16 @@ describe Banzai::Filter::AutolinkFilter, lib: true do
|
||||||
expect(filter(act).to_html).to eq exp
|
expect(filter(act).to_html).to eq exp
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when the input contains link' do
|
||||||
|
it 'does parse_html back the rinku returned value' do
|
||||||
|
act = HTML::Pipeline.parse("<p>See #{link}</p>")
|
||||||
|
|
||||||
|
expect_any_instance_of(described_class).to receive(:parse_html).at_least(:once).and_call_original
|
||||||
|
|
||||||
|
filter(act).to_html
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'other schemes' do
|
context 'other schemes' do
|
||||||
|
|
Loading…
Reference in a new issue