diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2018-04-07 07:34:43 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2018-04-07 07:34:43 +0000 |
commit | 040f31d867c3764abda4e0d0b08b96565ba088f9 (patch) | |
tree | 411077d2849e231d3f767319e819fe6fb0b1b62a /test | |
parent | 9e05f69fdec53bbea0dce0877a9a7b2a3184137b (diff) | |
download | redmine-040f31d867c3764abda4e0d0b08b96565ba088f9.tar.gz redmine-040f31d867c3764abda4e0d0b08b96565ba088f9.zip |
Markdown pre-block could derive incorrect wiki sections (#25299).
Patch by Kiichi Ozaki.
git-svn-id: http://svn.redmine.org/redmine/trunk@17266 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r-- | test/unit/lib/redmine/wiki_formatting/markdown_formatter_test.rb | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/test/unit/lib/redmine/wiki_formatting/markdown_formatter_test.rb b/test/unit/lib/redmine/wiki_formatting/markdown_formatter_test.rb index 04083dd0f..a2f864c24 100644 --- a/test/unit/lib/redmine/wiki_formatting/markdown_formatter_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/markdown_formatter_test.rb @@ -122,5 +122,60 @@ EXPECTED assert_equal expected.gsub(%r{[\r\n\t]}, ''), @formatter.new(text).to_html.gsub(%r{[\r\n\t]}, '') end + STR_WITH_PRE = [ + # 0 +"# Title + +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas sed libero.", + # 1 +"## Heading 2 + +~~~ruby + def foo + end +~~~ + +Morbi facilisis accumsan orci non pharetra. + +``` +Pre Content: + +## Inside pre + +<tag> inside pre block + +Morbi facilisis accumsan orci non pharetra. +```", + # 2 +"### Heading 3 + +Nulla nunc nisi, egestas in ornare vel, posuere ac libero."] + + def test_get_section_should_ignore_pre_content + text = STR_WITH_PRE.join("\n\n") + + assert_section_with_hash STR_WITH_PRE[1..2].join("\n\n"), text, 2 + assert_section_with_hash STR_WITH_PRE[2], text, 3 + end + + def test_update_section_should_not_escape_pre_content_outside_section + text = STR_WITH_PRE.join("\n\n") + replacement = "New text" + + assert_equal [STR_WITH_PRE[0..1], "New text"].flatten.join("\n\n"), + @formatter.new(text).update_section(3, replacement) + end + + private + + def assert_section_with_hash(expected, text, index) + result = @formatter.new(text).get_section(index) + + assert_kind_of Array, result + assert_equal 2, result.size + assert_equal expected, result.first, "section content did not match" + assert_equal Digest::MD5.hexdigest(expected), result.last, "section hash did not match" + end + end end |