Pārlūkot izejas kodu

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

Patch by Go MAEDA.

git-svn-id: http://svn.redmine.org/redmine/trunk@18268 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/4.1.0
Jean-Philippe Lang pirms 5 gadiem
vecāks
revīzija
c0a638721c

+ 2
- 2
lib/redmine/wiki_formatting/html_parser.rb Parādīt failu

@@ -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

+ 12
- 0
test/unit/lib/redmine/wiki_formatting/html_parser_test.rb Parādīt failu

@@ -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

Notiek ielāde…
Atcelt
Saglabāt