From 58ba69452a25c3d4b2059c01cc6cd837159d2f90 Mon Sep 17 00:00:00 2001 From: Titus Wormer Date: Thu, 16 Jun 2022 11:34:35 +0200 Subject: Add support for hard break escape --- tests/character_escape.rs | 11 ++- tests/hard_break_escape.rs | 167 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 172 insertions(+), 6 deletions(-) create mode 100644 tests/hard_break_escape.rs (limited to 'tests') diff --git a/tests/character_escape.rs b/tests/character_escape.rs index aae0b58..c81760d 100644 --- a/tests/character_escape.rs +++ b/tests/character_escape.rs @@ -30,12 +30,11 @@ fn character_escape() { "should escape other constructs" ); - // To do: hard break. - // assert_eq!( - // micromark("foo\\\nbar"), - // "

foo
\nbar

", - // "should escape a line break" - // ); + assert_eq!( + micromark("foo\\\nbar"), + "

foo
\nbar

", + "should escape a line break" + ); assert_eq!( micromark("`` \\[\\` ``"), diff --git a/tests/hard_break_escape.rs b/tests/hard_break_escape.rs new file mode 100644 index 0000000..fe4c82b --- /dev/null +++ b/tests/hard_break_escape.rs @@ -0,0 +1,167 @@ +extern crate micromark; +use micromark::{micromark}; + +#[test] +fn hard_break_escape() { + // To do: trailing. + // assert_eq!( + // micromark("foo \nbaz"), + // "

foo
\nbaz

", + // "should support two trailing spaces to form a hard break" + // ); + + assert_eq!( + micromark("foo\\\nbaz"), + "

foo
\nbaz

", + "should support a backslash to form a hard break" + ); + + // To do: trailing. + // assert_eq!( + // micromark("foo \nbaz"), + // "

foo
\nbaz

", + // "should support multiple trailing spaces" + // ); + + // To do: trailing. + // assert_eq!( + // micromark("foo \n bar"), + // "

foo
\nbar

", + // "should support leading spaces after a trailing hard break" + // ); + + // To do: trim paragraph whitespace. + // assert_eq!( + // micromark("foo\\\n bar"), + // "

foo
\nbar

", + // "should support leading spaces after an escape hard break" + // ); + + // To do: trailing, attention. + // assert_eq!( + // micromark("*foo \nbar*"), + // "

foo
\nbar

", + // "should support trailing hard breaks in emphasis" + // ); + + // To do: attention. + // assert_eq!( + // micromark("*foo\\\nbar*"), + // "

foo
\nbar

", + // "should support escape hard breaks in emphasis" + // ); + + assert_eq!( + micromark("`code \ntext`"), + "

code text

", + "should not support trailing hard breaks in code" + ); + + assert_eq!( + micromark("``code\\\ntext``"), + "

code\\ text

", + "should not support escape hard breaks in code" + ); + + // To do: paragraph trimming. + // assert_eq!( + // micromark("foo "), + // "

foo

", + // "should not support trailing hard breaks at the end of a paragraph" + // ); + + assert_eq!( + micromark("foo\\"), + "

foo\\

", + "should not support escape hard breaks at the end of a paragraph" + ); + + assert_eq!( + micromark("### foo\\"), + "

foo\\

", + "should not support escape hard breaks at the end of a heading" + ); + + assert_eq!( + micromark("### foo "), + "

foo

", + "should not support trailing hard breaks at the end of a heading" + ); + + // To do: paragraph trimming. + // assert_eq!( + // micromark("aaa \t\nbb"), + // "

aaa\nbb

", + // "should support a mixed line suffix (1)" + // ); + + // To do: paragraph trimming. + // assert_eq!( + // micromark("aaa\t \nbb"), + // "

aaa\nbb

", + // "should support a mixed line suffix (2)" + // ); + + // To do: paragraph trimming. + // assert_eq!( + // micromark("aaa \t \nbb"), + // "

aaa\nbb

", + // "should support a mixed line suffix (3)" + // ); + + // To do: trailing. + // assert_eq!( + // micromark("aaa\0 \nbb"), + // "

aaa�
\nbb

", + // "should support a hard break after a replacement character" + // ); + + // To do: trailing. + // assert_eq!( + // micromark("aaa\0\t\nbb"), + // "

aaa�\nbb

", + // "should support a line suffix after a replacement character" + // ); + + // To do: attention, trailing. + // assert_eq!( + // micromark("*a* \nbb"), + // "

a
\nbb

", + // "should support a hard break after a span" + // ); + + // To do: attention, trailing. + // assert_eq!( + // micromark("*a*\t\nbb"), + // "

a\nbb

", + // "should support a line suffix after a span" + // ); + + // To do: attention, trailing. + // assert_eq!( + // micromark("*a* \t\nbb"), + // "

a\nbb

", + // "should support a mixed line suffix after a span (1)" + // ); + + // To do: attention, trailing. + // assert_eq!( + // micromark("*a*\t \nbb"), + // "

a\nbb

", + // "should support a mixed line suffix after a span (2)" + // ); + + // To do: attention, trailing. + // assert_eq!( + // micromark("*a* \t \nbb"), + // "

a\nbb

", + // "should support a mixed line suffix after a span (3)" + // ); + + // // To do: turning off things. + // assert_eq!( + // micromark("a\\\nb", {extensions: [{disable: {null: ["hardBreakEscape"]}}]}), + // "

a\\\nb

", + // "should support turning off hard break (escape)" + // ); +} -- cgit