aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLibravatar Titus Wormer <tituswormer@gmail.com>2022-06-16 11:34:35 +0200
committerLibravatar Titus Wormer <tituswormer@gmail.com>2022-06-16 11:34:35 +0200
commit58ba69452a25c3d4b2059c01cc6cd837159d2f90 (patch)
tree7f6d49449f564ec8606cc3881210d8b27df11961 /tests
parent7875ada79cea1194dc9e15acee36ed0700be70e6 (diff)
downloadmarkdown-rs-58ba69452a25c3d4b2059c01cc6cd837159d2f90.tar.gz
markdown-rs-58ba69452a25c3d4b2059c01cc6cd837159d2f90.tar.bz2
markdown-rs-58ba69452a25c3d4b2059c01cc6cd837159d2f90.zip
Add support for hard break escape
Diffstat (limited to 'tests')
-rw-r--r--tests/character_escape.rs11
-rw-r--r--tests/hard_break_escape.rs167
2 files changed, 172 insertions, 6 deletions
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"),
- // "<p>foo<br />\nbar</p>",
- // "should escape a line break"
- // );
+ assert_eq!(
+ micromark("foo\\\nbar"),
+ "<p>foo<br />\nbar</p>",
+ "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"),
+ // "<p>foo<br />\nbaz</p>",
+ // "should support two trailing spaces to form a hard break"
+ // );
+
+ assert_eq!(
+ micromark("foo\\\nbaz"),
+ "<p>foo<br />\nbaz</p>",
+ "should support a backslash to form a hard break"
+ );
+
+ // To do: trailing.
+ // assert_eq!(
+ // micromark("foo \nbaz"),
+ // "<p>foo<br />\nbaz</p>",
+ // "should support multiple trailing spaces"
+ // );
+
+ // To do: trailing.
+ // assert_eq!(
+ // micromark("foo \n bar"),
+ // "<p>foo<br />\nbar</p>",
+ // "should support leading spaces after a trailing hard break"
+ // );
+
+ // To do: trim paragraph whitespace.
+ // assert_eq!(
+ // micromark("foo\\\n bar"),
+ // "<p>foo<br />\nbar</p>",
+ // "should support leading spaces after an escape hard break"
+ // );
+
+ // To do: trailing, attention.
+ // assert_eq!(
+ // micromark("*foo \nbar*"),
+ // "<p><em>foo<br />\nbar</em></p>",
+ // "should support trailing hard breaks in emphasis"
+ // );
+
+ // To do: attention.
+ // assert_eq!(
+ // micromark("*foo\\\nbar*"),
+ // "<p><em>foo<br />\nbar</em></p>",
+ // "should support escape hard breaks in emphasis"
+ // );
+
+ assert_eq!(
+ micromark("`code \ntext`"),
+ "<p><code>code text</code></p>",
+ "should not support trailing hard breaks in code"
+ );
+
+ assert_eq!(
+ micromark("``code\\\ntext``"),
+ "<p><code>code\\ text</code></p>",
+ "should not support escape hard breaks in code"
+ );
+
+ // To do: paragraph trimming.
+ // assert_eq!(
+ // micromark("foo "),
+ // "<p>foo</p>",
+ // "should not support trailing hard breaks at the end of a paragraph"
+ // );
+
+ assert_eq!(
+ micromark("foo\\"),
+ "<p>foo\\</p>",
+ "should not support escape hard breaks at the end of a paragraph"
+ );
+
+ assert_eq!(
+ micromark("### foo\\"),
+ "<h3>foo\\</h3>",
+ "should not support escape hard breaks at the end of a heading"
+ );
+
+ assert_eq!(
+ micromark("### foo "),
+ "<h3>foo</h3>",
+ "should not support trailing hard breaks at the end of a heading"
+ );
+
+ // To do: paragraph trimming.
+ // assert_eq!(
+ // micromark("aaa \t\nbb"),
+ // "<p>aaa\nbb</p>",
+ // "should support a mixed line suffix (1)"
+ // );
+
+ // To do: paragraph trimming.
+ // assert_eq!(
+ // micromark("aaa\t \nbb"),
+ // "<p>aaa\nbb</p>",
+ // "should support a mixed line suffix (2)"
+ // );
+
+ // To do: paragraph trimming.
+ // assert_eq!(
+ // micromark("aaa \t \nbb"),
+ // "<p>aaa\nbb</p>",
+ // "should support a mixed line suffix (3)"
+ // );
+
+ // To do: trailing.
+ // assert_eq!(
+ // micromark("aaa\0 \nbb"),
+ // "<p>aaa�<br />\nbb</p>",
+ // "should support a hard break after a replacement character"
+ // );
+
+ // To do: trailing.
+ // assert_eq!(
+ // micromark("aaa\0\t\nbb"),
+ // "<p>aaa�\nbb</p>",
+ // "should support a line suffix after a replacement character"
+ // );
+
+ // To do: attention, trailing.
+ // assert_eq!(
+ // micromark("*a* \nbb"),
+ // "<p><em>a</em><br />\nbb</p>",
+ // "should support a hard break after a span"
+ // );
+
+ // To do: attention, trailing.
+ // assert_eq!(
+ // micromark("*a*\t\nbb"),
+ // "<p><em>a</em>\nbb</p>",
+ // "should support a line suffix after a span"
+ // );
+
+ // To do: attention, trailing.
+ // assert_eq!(
+ // micromark("*a* \t\nbb"),
+ // "<p><em>a</em>\nbb</p>",
+ // "should support a mixed line suffix after a span (1)"
+ // );
+
+ // To do: attention, trailing.
+ // assert_eq!(
+ // micromark("*a*\t \nbb"),
+ // "<p><em>a</em>\nbb</p>",
+ // "should support a mixed line suffix after a span (2)"
+ // );
+
+ // To do: attention, trailing.
+ // assert_eq!(
+ // micromark("*a* \t \nbb"),
+ // "<p><em>a</em>\nbb</p>",
+ // "should support a mixed line suffix after a span (3)"
+ // );
+
+ // // To do: turning off things.
+ // assert_eq!(
+ // micromark("a\\\nb", {extensions: [{disable: {null: ["hardBreakEscape"]}}]}),
+ // "<p>a\\\nb</p>",
+ // "should support turning off hard break (escape)"
+ // );
+}