Commit f20165b1 authored by jplang's avatar jplang

Text may unexpectedly be enclosed in pre tags when an issue is created via HTML email (#31232).

Patch by Go MAEDA.

git-svn-id: https://svn.redmine.org/redmine/trunk@18268 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent 3e0c728f
......@@ -30,13 +30,13 @@ module Redmine
}
def self.to_text(html)
html = html.gsub(/[\n\r]/, '').squeeze(' ')
html = html.gsub(/[\n\r]/, ' ')
doc = Loofah.document(html)
doc.scrub!(WikiTags.new(tags))
doc.scrub!(:newline_block_elements)
Loofah.remove_extraneous_whitespace(doc.text).strip
Loofah.remove_extraneous_whitespace(doc.text).strip.squeeze(' ').gsub(/^ +/, '')
end
class WikiTags < ::Loofah::Scrubber
......
......@@ -34,4 +34,16 @@ class Redmine::WikiFormatting::HtmlParserTest < ActiveSupport::TestCase
assert_equal "Text",
@parser.to_text('<html><body><style>body {font-size: 0.8em;}</style>Text</body></html>')
end
def test_should_remove_preceding_whitespaces
to_test = {
"<div> blocks with</div>\n<p>\n preceding whitespaces\n</p>" => "blocks with\n\npreceding whitespaces",
"<div>blocks without</div>\n<p>\npreceding whitespaces\n</p>" => "blocks without\n\npreceding whitespaces",
"<span> span with</span>\n<span> preceding whitespaces</span>" => "span with preceding whitespaces",
"<span>span without</span>\n<span>preceding whitespaces</span>" => "span without preceding whitespaces"
}
to_test.each do |html, expected|
assert_equal expected, @parser.to_text(html)
end
end
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment