diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/character_escape.rs | 11 | ||||
| -rw-r--r-- | tests/character_reference.rs | 11 | ||||
| -rw-r--r-- | tests/definition.rs | 274 | 
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öö \"föö\"\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öö \"föö\"\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öö\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"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"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]: \\\" \\(\\)\\\"\n\n[x]"), -    //     "<p><a href=\"%22%20()%22\">x</a></p>", -    //     "should support character escapes & references in unenclosed destinations" -    // ); +    assert_eq!( +        micromark("[x]: \\\" \\(\\)\\\"\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]: <\\> \\+\\>>\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]"), +        "<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=\""\">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=\""\">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=\""\">x</a></p>", -    //     "should support double quoted titles" -    // ); +    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). +    // To do: some bug.      // assert_eq!(      //     micromark("[x]: a (\"\")\n\n[x]"),      //     "<p><a href=\"a\" title=\""\"\">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("[&©&]: example.com/&©& \"&©&\"\n\n[&©&]"), -    //     "<p><a href=\"example.com/&%C2%A9&\" title=\"&©&\">&©&</a></p>", -    //     "should support character references in definitions" -    // ); +    assert_eq!( +        micromark("[&©&]: example.com/&©& \"&©&\"\n\n[&©&]"), +        "<p><a href=\"example.com/&%C2%A9&\" title=\"&©&\">&©&</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>",  | 
