aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLibravatar Titus Wormer <tituswormer@gmail.com>2022-06-29 16:14:32 +0200
committerLibravatar Titus Wormer <tituswormer@gmail.com>2022-06-29 16:14:32 +0200
commitfa37356074c1bc3a0f74b6f6a22e038b7842ff4d (patch)
tree6e91262eb1d10acf08bae36fc1902e64e8178366 /tests
parenta1a66ce2a848458a7e0cdaf110ceeffb7b8943a2 (diff)
downloadmarkdown-rs-fa37356074c1bc3a0f74b6f6a22e038b7842ff4d.tar.gz
markdown-rs-fa37356074c1bc3a0f74b6f6a22e038b7842ff4d.tar.bz2
markdown-rs-fa37356074c1bc3a0f74b6f6a22e038b7842ff4d.zip
Add support for compiling definitions
Diffstat (limited to 'tests')
-rw-r--r--tests/character_escape.rs11
-rw-r--r--tests/character_reference.rs11
-rw-r--r--tests/definition.rs274
3 files changed, 136 insertions, 160 deletions
diff --git a/tests/character_escape.rs b/tests/character_escape.rs
index 3e3e839..26e9336 100644
--- a/tests/character_escape.rs
+++ b/tests/character_escape.rs
@@ -67,12 +67,11 @@ fn character_escape() {
"should escape in resource and title"
);
- // To do: link (reference).
- // assert_eq!(
- // micromark("[foo]: /bar\\* \"ti\\*tle\"\n\n[foo]"),
- // "<p><a href=\"/bar*\" title=\"ti*tle\">foo</a></p>",
- // "should escape in definition resource and title"
- // );
+ assert_eq!(
+ micromark("[foo]: /bar\\* \"ti\\*tle\"\n\n[foo]"),
+ "<p><a href=\"/bar*\" title=\"ti*tle\">foo</a></p>",
+ "should escape in definition resource and title"
+ );
assert_eq!(
micromark("``` foo\\+bar\nfoo\n```"),
diff --git a/tests/character_reference.rs b/tests/character_reference.rs
index 3d2111e..3951e00 100644
--- a/tests/character_reference.rs
+++ b/tests/character_reference.rs
@@ -61,12 +61,11 @@ fn character_reference() {
"should support character references in resource URLs and titles"
);
- // To do: link (reference).
- // assert_eq!(
- // micromark("[foo]: /f&ouml;&ouml; \"f&ouml;&ouml;\"\n\n[foo]"),
- // "<p><a href=\"/f%C3%B6%C3%B6\" title=\"föö\">foo</a></p>",
- // "should support character references in definition URLs and titles"
- // );
+ assert_eq!(
+ micromark("[foo]: /f&ouml;&ouml; \"f&ouml;&ouml;\"\n\n[foo]"),
+ "<p><a href=\"/f%C3%B6%C3%B6\" title=\"föö\">foo</a></p>",
+ "should support character references in definition URLs and titles"
+ );
assert_eq!(
micromark("``` f&ouml;&ouml;\nfoo\n```"),
diff --git a/tests/definition.rs b/tests/definition.rs
index a8e8164..c112a96 100644
--- a/tests/definition.rs
+++ b/tests/definition.rs
@@ -9,12 +9,11 @@ const DANGER: &Options = &Options {
#[test]
fn definition() {
- // To do: link (reference).
- // assert_eq!(
- // micromark("[foo]: /url \"title\"\n\n[foo]"),
- // "<p><a href=\"/url\" title=\"title\">foo</a></p>",
- // "should support link definitions"
- // );
+ assert_eq!(
+ micromark("[foo]: /url \"title\"\n\n[foo]"),
+ "<p><a href=\"/url\" title=\"title\">foo</a></p>",
+ "should support link definitions"
+ );
assert_eq!(
micromark("[foo]:\n\n/url\n\n[foo]"),
@@ -22,33 +21,30 @@ fn definition() {
"should not support blank lines before destination"
);
- // To do: link (reference).
- // assert_eq!(
- // micromark(" [foo]: \n /url \n 'the title' \n\n[foo]"),
- // "<p><a href=\"/url\" title=\"the title\">foo</a></p>",
- // "should support whitespace and line endings in definitions"
- // );
+ assert_eq!(
+ micromark(" [foo]: \n /url \n 'the title' \n\n[foo]"),
+ "<p><a href=\"/url\" title=\"the title\">foo</a></p>",
+ "should support whitespace and line endings in definitions"
+ );
- // To do: link (reference).
+ // To do: some bug.
// assert_eq!(
// micromark("[Foo*bar\\]]:my_(url) 'title (with parens)'\n\n[Foo*bar\\]]"),
// "<p><a href=\"my_(url)\" title=\"title (with parens)\">Foo*bar]</a></p>",
// "should support complex definitions (1)"
// );
- // To do: link (reference).
- // assert_eq!(
- // micromark("[Foo bar]:\n<my url>\n'title'\n\n[Foo bar]"),
- // "<p><a href=\"my%20url\" title=\"title\">Foo bar</a></p>",
- // "should support complex definitions (2)"
- // );
+ assert_eq!(
+ micromark("[Foo bar]:\n<my url>\n'title'\n\n[Foo bar]"),
+ "<p><a href=\"my%20url\" title=\"title\">Foo bar</a></p>",
+ "should support complex definitions (2)"
+ );
- // To do: link (reference).
- // assert_eq!(
- // micromark("[foo]: /url '\ntitle\nline1\nline2\n'\n\n[foo]"),
- // "<p><a href=\"/url\" title=\"\ntitle\nline1\nline2\n\">foo</a></p>",
- // "should support line endings in titles"
- // );
+ assert_eq!(
+ micromark("[foo]: /url '\ntitle\nline1\nline2\n'\n\n[foo]"),
+ "<p><a href=\"/url\" title=\"\ntitle\nline1\nline2\n\">foo</a></p>",
+ "should support line endings in titles"
+ );
assert_eq!(
micromark("[foo]: /url 'title\n\nwith blank line'\n\n[foo]"),
@@ -56,12 +52,11 @@ fn definition() {
"should not support blank lines in titles"
);
- // To do: link (reference).
- // assert_eq!(
- // micromark("[foo]:\n/url\n\n[foo]"),
- // "<p><a href=\"/url\">foo</a></p>",
- // "should support definitions w/o title"
- // );
+ assert_eq!(
+ micromark("[foo]:\n/url\n\n[foo]"),
+ "<p><a href=\"/url\">foo</a></p>",
+ "should support definitions w/o title"
+ );
assert_eq!(
micromark("[foo]:\n\n[foo]"),
@@ -69,12 +64,11 @@ fn definition() {
"should not support definitions w/o destination"
);
- // To do: link (reference).
- // assert_eq!(
- // micromark("[foo]: <>\n\n[foo]"),
- // "<p><a href=\"\">foo</a></p>",
- // "should support definitions w/ explicit empty destinations"
- // );
+ assert_eq!(
+ micromark("[foo]: <>\n\n[foo]"),
+ "<p><a href=\"\">foo</a></p>",
+ "should support definitions w/ explicit empty destinations"
+ );
assert_eq!(
micromark_with_options("[foo]: <bar>(baz)\n\n[foo]", DANGER),
@@ -82,35 +76,34 @@ fn definition() {
"should not support definitions w/ no whitespace between destination and title"
);
- // To do: link (reference).
- // assert_eq!(
- // micromark("[foo]: /url\\bar\\*baz \"foo\\\"bar\\baz\"\n\n[foo]"),
- // "<p><a href=\"/url%5Cbar*baz\" title=\"foo&quot;bar\\baz\">foo</a></p>",
- // "should support character escapes in destinations and titles"
- // );
+ assert_eq!(
+ micromark("[foo]: /url\\bar\\*baz \"foo\\\"bar\\baz\"\n\n[foo]"),
+ "<p><a href=\"/url%5Cbar*baz\" title=\"foo&quot;bar\\baz\">foo</a></p>",
+ "should support character escapes in destinations and titles"
+ );
- // To do: link (reference).
+ // Some bug.
// assert_eq!(
// micromark("[foo]\n\n[foo]: url"),
// "<p><a href=\"url\">foo</a></p>\n",
// "should support a link before a definition"
// );
- // To do: link (reference).
+ // Some bug.
// assert_eq!(
// micromark("[foo]: first\n[foo]: second\n\n[foo]"),
// "<p><a href=\"first\">foo</a></p>",
// "should match w/ the first definition"
// );
- // To do: link (reference).
+ // Some bug.
// assert_eq!(
// micromark("[FOO]: /url\n\n[Foo]"),
// "<p><a href=\"/url\">Foo</a></p>",
// "should match w/ case-insensitive (1)"
// );
- // To do: link (reference).
+ // Some bug.
// assert_eq!(
// micromark("[ΑΓΩ]: /φου\n\n[αγω]"),
// "<p><a href=\"/%CF%86%CE%BF%CF%85\">αγω</a></p>",
@@ -129,19 +122,17 @@ fn definition() {
"should not contribute anything w/o reference (2)"
);
- // To do: link (reference).
- // assert_eq!(
- // micromark("[foo]: /url \"title\" \n\n[foo]"),
- // "<p><a href=\"/url\" title=\"title\">foo</a></p>",
- // "should support whitespace after title"
- // );
+ assert_eq!(
+ micromark("[foo]: /url \"title\" \n\n[foo]"),
+ "<p><a href=\"/url\" title=\"title\">foo</a></p>",
+ "should support whitespace after title"
+ );
- // To do: link (reference).
- // assert_eq!(
- // micromark("[foo]: /url\n\"title\" \n\n[foo]"),
- // "<p><a href=\"/url\" title=\"title\">foo</a></p>",
- // "should support whitespace after title on a separate line"
- // );
+ assert_eq!(
+ micromark("[foo]: /url\n\"title\" \n\n[foo]"),
+ "<p><a href=\"/url\" title=\"title\">foo</a></p>",
+ "should support whitespace after title on a separate line"
+ );
assert_eq!(
micromark("[foo]: /url \"title\" ok"),
@@ -173,28 +164,26 @@ fn definition() {
"should not support definitions in paragraphs"
);
- // To do: link (reference).
+ // To do: block quote.
// assert_eq!(
// micromark("# [Foo]\n[foo]: /url\n> bar"),
// "<h1><a href=\"/url\">Foo</a></h1>\n<blockquote>\n<p>bar</p>\n</blockquote>",
// "should not support definitions in headings"
// );
- // To do: link (reference).
- // assert_eq!(
- // micromark("[foo]: /url\nbar\n===\n[foo]"),
- // "<h1>bar</h1>\n<p><a href=\"/url\">foo</a></p>",
- // "should support setext headings after definitions"
- // );
+ assert_eq!(
+ micromark("[foo]: /url\nbar\n===\n[foo]"),
+ "<h1>bar</h1>\n<p><a href=\"/url\">foo</a></p>",
+ "should support setext headings after definitions"
+ );
- // To do: link (reference).
- // assert_eq!(
- // micromark("[foo]: /url\n===\n[foo]"),
- // "<p>===\n<a href=\"/url\">foo</a></p>",
- // "should not support setext heading underlines after definitions"
- // );
+ assert_eq!(
+ micromark("[foo]: /url\n===\n[foo]"),
+ "<p>===\n<a href=\"/url\">foo</a></p>",
+ "should not support setext heading underlines after definitions"
+ );
- // To do: link (reference).
+ // To do: some bug.
// assert_eq!(
// micromark(
// "[foo]: /foo-url \"foo\"\n[bar]: /bar-url\n \"bar\"\n[baz]: /baz-url\n\n[foo],\n[bar],\n[baz]"
@@ -203,7 +192,7 @@ fn definition() {
// "should support definitions after definitions"
// );
- // To do: link (reference).
+ // To do: block quote.
// assert_eq!(
// micromark("> [foo]: /url\n\n[foo]"),
// "<blockquote>\n</blockquote>\n<p><a href=\"/url\">foo</a></p>",
@@ -211,26 +200,24 @@ fn definition() {
// );
// Extra
- // To do: link (reference).
+ // To do: some bug.
// assert_eq!(
// micromark("[\\[\\+\\]]: example.com\n\nLink: [\\[\\+\\]]."),
// "<p>Link: <a href=\"example.com\">[+]</a>.</p>",
// "should match w/ character escapes"
// );
- // To do: link (reference).
- // assert_eq!(
- // micromark("[x]: \\\"&#x20;\\(\\)\\\"\n\n[x]"),
- // "<p><a href=\"%22%20()%22\">x</a></p>",
- // "should support character escapes & references in unenclosed destinations"
- // );
+ assert_eq!(
+ micromark("[x]: \\\"&#x20;\\(\\)\\\"\n\n[x]"),
+ "<p><a href=\"%22%20()%22\">x</a></p>",
+ "should support character escapes & references in unenclosed destinations"
+ );
- // To do: link (reference).
- // assert_eq!(
- // micromark("[x]: <\\>&#x20;\\+\\>>\n\n[x]"),
- // "<p><a href=\"%3E%20+%3E\">x</a></p>",
- // "should support character escapes & references in enclosed destinations"
- // );
+ assert_eq!(
+ micromark("[x]: <\\>&#x20;\\+\\>>\n\n[x]"),
+ "<p><a href=\"%3E%20+%3E\">x</a></p>",
+ "should support character escapes & references in enclosed destinations"
+ );
assert_eq!(
micromark("[x]: <\n\n[x]"),
@@ -256,42 +243,38 @@ fn definition() {
"should not support ascii control characters in destination"
);
- // To do: link (reference).
- // assert_eq!(
- // micromark("[x]: <\u{000b}a>\n\n[x]"),
- // "<p><a href=\"%0Ba\">x</a></p>",
- // "should support ascii control characters at the start of enclosed destination"
- // );
+ assert_eq!(
+ micromark("[x]: <\u{000b}a>\n\n[x]"),
+ "<p><a href=\"%0Ba\">x</a></p>",
+ "should support ascii control characters at the start of enclosed destination"
+ );
- // To do: link (reference).
- // assert_eq!(
- // micromark("[x]: <a\u{000b}b>\n\n[x]"),
- // "<p><a href=\"a%0Bb\">x</a></p>",
- // "should support ascii control characters in enclosed destinations"
- // );
+ assert_eq!(
+ micromark("[x]: <a\u{000b}b>\n\n[x]"),
+ "<p><a href=\"a%0Bb\">x</a></p>",
+ "should support ascii control characters in enclosed destinations"
+ );
- // To do: link (reference).
- // assert_eq!(
- // micromark("[x]: a \"\\\"\"\n\n[x]"),
- // "<p><a href=\"a\" title=\"&quot;\">x</a></p>",
- // "should support character escapes at the start of a title"
- // );
+ assert_eq!(
+ micromark("[x]: a \"\\\"\"\n\n[x]"),
+ "<p><a href=\"a\" title=\"&quot;\">x</a></p>",
+ "should support character escapes at the start of a title"
+ );
- // To do: link (reference).
+ // To do: some bug.
// assert_eq!(
// micromark("[x]: a \"\\\"\"\n\n[x]"),
// "<p><a href=\"a\" title=\"\"\">x</a></p>",
// "should support double quoted titles"
// );
- // To do: link (reference).
- // assert_eq!(
- // micromark("[x]: a '\"'\n\n[x]"),
- // "<p><a href=\"a\" title=\"&quot;\">x</a></p>",
- // "should support double quoted titles"
- // );
+ assert_eq!(
+ micromark("[x]: a '\"'\n\n[x]"),
+ "<p><a href=\"a\" title=\"&quot;\">x</a></p>",
+ "should support double quoted titles"
+ );
- // To do: link (reference).
+ // To do: some bug.
// assert_eq!(
// micromark("[x]: a (\"\")\n\n[x]"),
// "<p><a href=\"a\" title=\"&quot;\"\">x</a></p>",
@@ -304,12 +287,11 @@ fn definition() {
"should not support more opening than closing parens in the destination"
);
- // To do: link (reference).
- // assert_eq!(
- // micromark("[x]: a(())\n\n[x]"),
- // "<p><a href=\"a(())\">x</a></p>",
- // "should support balanced opening and closing parens in the destination"
- // );
+ assert_eq!(
+ micromark("[x]: a(())\n\n[x]"),
+ "<p><a href=\"a(())\">x</a></p>",
+ "should support balanced opening and closing parens in the destination"
+ );
assert_eq!(
micromark("[x]: a())\n\n[x]"),
@@ -317,43 +299,39 @@ fn definition() {
"should not support more closing than opening parens in the destination"
);
- // To do: link (reference).
- // assert_eq!(
- // micromark("[x]: a \t\n\n[x]"),
- // "<p><a href=\"a\">x</a></p>",
- // "should support trailing whitespace after a destination"
- // );
+ assert_eq!(
+ micromark("[x]: a \t\n\n[x]"),
+ "<p><a href=\"a\">x</a></p>",
+ "should support trailing whitespace after a destination"
+ );
- // To do: link (reference).
+ // To do: some bug.
// assert_eq!(
// micromark("[x]: a \"\"X \t\n\n[x]"),
// "<p><a href=\"a\" title=\"\"X>x</a></p>",
// "should support trailing whitespace after a destination"
// );
- // To do: link (reference).
- // assert_eq!(
- // micromark("[&amp;&copy;&]: example.com/&amp;&copy;& \"&amp;&copy;&\"\n\n[&amp;&copy;&]"),
- // "<p><a href=\"example.com/&amp;%C2%A9&amp;\" title=\"&amp;©&amp;\">&amp;©&amp;</a></p>",
- // "should support character references in definitions"
- // );
+ assert_eq!(
+ micromark("[&amp;&copy;&]: example.com/&amp;&copy;& \"&amp;&copy;&\"\n\n[&amp;&copy;&]"),
+ "<p><a href=\"example.com/&amp;%C2%A9&amp;\" title=\"&amp;©&amp;\">&amp;©&amp;</a></p>",
+ "should support character references in definitions"
+ );
- // To do: link (reference).
- // assert_eq!(
- // micromark("[x]:\nexample.com\n\n[x]"),
- // "<p><a href=\"example.com\">x</a></p>",
- // "should support a line ending before a destination"
- // );
+ assert_eq!(
+ micromark("[x]:\nexample.com\n\n[x]"),
+ "<p><a href=\"example.com\">x</a></p>",
+ "should support a line ending before a destination"
+ );
- // To do: link (reference).
- // assert_eq!(
- // micromark("[x]: \t\nexample.com\n\n[x]"),
- // "<p><a href=\"example.com\">x</a></p>",
- // "should support whitespace before a destination"
- // );
+ assert_eq!(
+ micromark("[x]: \t\nexample.com\n\n[x]"),
+ "<p><a href=\"example.com\">x</a></p>",
+ "should support whitespace before a destination"
+ );
// See: <https://github.com/commonmark/commonmark.js/issues/192>
- // To do: link (reference).
+ // To do: some bug.
// assert_eq!(
// micromark("[x]: <> \"\"\n[][x]"),
// "<p><a href=\"\"></a></p>",
@@ -384,7 +362,7 @@ fn definition() {
"should not support an extra right paren (`)`) in a raw destination"
);
- // To do: link (reference).
+ // To do: some bug.
// assert_eq!(
// micromark("[a]\n\n[a]: a(1(2(3(4()))))b"),
// "<p><a href=\"a(1(2(3(4()))))b\">a</a></p>\n",
@@ -403,14 +381,14 @@ fn definition() {
"should not support a final (unbalanced) right paren in a raw destination “before” a title"
);
- // To do: link (reference).
+ // To do: some bug.
// assert_eq!(
// micromark(" [a]: b \"c\"\n [d]: e\n [f]: g \"h\"\n [i]: j\n\t[k]: l (m)\n\t n [k] o"),
// "<p>n <a href=\"l\" title=\"m\">k</a> o</p>",
// "should support subsequent indented definitions"
// );
- // To do: link (reference).
+ // To do: some bug.
// assert_eq!(
// micromark("[a\n b]: c\n\n[a\n b]"),
// "<p><a href=\"c\">a\nb</a></p>",