From ec2d1bfb4232178fb3a6cba36f138bc6efbbf34a Mon Sep 17 00:00:00 2001 From: Titus Wormer Date: Thu, 13 Oct 2022 10:40:01 +0200 Subject: Rename crate to `markdown` --- tests/link_reference.rs | 128 ++++++++++++++++++++++++------------------------ 1 file changed, 63 insertions(+), 65 deletions(-) (limited to 'tests/link_reference.rs') diff --git a/tests/link_reference.rs b/tests/link_reference.rs index 5e00dab..3769fbc 100644 --- a/tests/link_reference.rs +++ b/tests/link_reference.rs @@ -1,7 +1,7 @@ -extern crate micromark; -use micromark::{ +extern crate markdown; +use markdown::{ mdast::{Definition, LinkReference, Node, Paragraph, ReferenceKind, Root, Text}, - micromark, micromark_to_mdast, micromark_with_options, + to_html, to_html_with_options, to_mdast, unist::Position, CompileOptions, Constructs, Options, ParseOptions, }; @@ -19,277 +19,277 @@ fn link_reference() -> Result<(), String> { }; assert_eq!( - micromark("[bar]: /url \"title\"\n\n[foo][bar]"), + to_html("[bar]: /url \"title\"\n\n[foo][bar]"), "

foo

", "should support link references" ); assert_eq!( - micromark("[ref]: /uri\n\n[link [foo [bar]]][ref]"), + to_html("[ref]: /uri\n\n[link [foo [bar]]][ref]"), "

link [foo [bar]]

", "should support balanced brackets in link references" ); assert_eq!( - micromark("[ref]: /uri\n\n[link \\[bar][ref]"), + to_html("[ref]: /uri\n\n[link \\[bar][ref]"), "

link [bar

", "should support escaped brackets in link references" ); assert_eq!( - micromark("[ref]: /uri\n\n[link *foo **bar** `#`*][ref]"), + to_html("[ref]: /uri\n\n[link *foo **bar** `#`*][ref]"), "

link foo bar #

", "should support content in link references" ); assert_eq!( - micromark("[ref]: /uri\n\n[![moon](moon.jpg)][ref]"), + to_html("[ref]: /uri\n\n[![moon](moon.jpg)][ref]"), "

\"moon\"

", "should support images in link references" ); assert_eq!( - micromark("[ref]: /uri\n\n[foo [bar](/uri)][ref]"), + to_html("[ref]: /uri\n\n[foo [bar](/uri)][ref]"), "

[foo bar]ref

", "should not support links in link references" ); assert_eq!( - micromark("[ref]: /uri\n\n[foo *bar [baz][ref]*][ref]"), + to_html("[ref]: /uri\n\n[foo *bar [baz][ref]*][ref]"), "

[foo bar baz]ref

", "should not support deep links in link references" ); assert_eq!( - micromark("[ref]: /uri\n\n*[foo*][ref]"), + to_html("[ref]: /uri\n\n*[foo*][ref]"), "

*foo*

", "should prefer link references over emphasis (1)" ); assert_eq!( - micromark("[ref]: /uri\n\n[foo *bar][ref]"), + to_html("[ref]: /uri\n\n[foo *bar][ref]"), "

foo *bar

", "should prefer link references over emphasis (2)" ); assert_eq!( - micromark_with_options("[ref]: /uri\n\n[foo ", &danger)?, + to_html_with_options("[ref]: /uri\n\n[foo ", &danger)?, "

[foo

", "should prefer HTML over link references" ); assert_eq!( - micromark("[ref]: /uri\n\n[foo`][ref]`"), + to_html("[ref]: /uri\n\n[foo`][ref]`"), "

[foo][ref]

", "should prefer code over link references" ); assert_eq!( - micromark("[ref]: /uri\n\n[foo"), + to_html("[ref]: /uri\n\n[foo"), "

[foohttp://example.com/?search=][ref]

", "should prefer autolinks over link references" ); assert_eq!( - micromark("[bar]: /url \"title\"\n\n[foo][BaR]"), + to_html("[bar]: /url \"title\"\n\n[foo][BaR]"), "

foo

", "should match references to definitions case-insensitively" ); assert_eq!( - micromark("[ТОЛПОЙ]: /url\n\n[Толпой][Толпой] is a Russian word."), + to_html("[ТОЛПОЙ]: /url\n\n[Толпой][Толпой] is a Russian word."), "

Толпой is a Russian word.

", "should match references to definitions w/ unicode case-folding" ); assert_eq!( - micromark("[Foo\n bar]: /url\n\n[Baz][Foo bar]"), + to_html("[Foo\n bar]: /url\n\n[Baz][Foo bar]"), "

Baz

", "should match references to definitions w/ collapsing" ); assert_eq!( - micromark("[bar]: /url \"title\"\n\n[foo] [bar]"), + to_html("[bar]: /url \"title\"\n\n[foo] [bar]"), "

[foo] bar

", "should not support whitespace between label and reference (1)" ); assert_eq!( - micromark("[bar]: /url \"title\"\n\n[foo]\n[bar]"), + to_html("[bar]: /url \"title\"\n\n[foo]\n[bar]"), "

[foo]\nbar

", "should not support whitespace between label and reference (2)" ); assert_eq!( - micromark("[foo]: /url1\n\n[foo]: /url2\n\n[bar][foo]"), + to_html("[foo]: /url1\n\n[foo]: /url2\n\n[bar][foo]"), "

bar

", "should prefer earlier definitions" ); assert_eq!( - micromark("[foo!]: /url\n\n[bar][foo\\!]"), + to_html("[foo!]: /url\n\n[bar][foo\\!]"), "

[bar][foo!]

", "should not match references to definitions w/ escapes" ); assert_eq!( - micromark("[ref[]: /uri\n\n[foo][ref[]"), + to_html("[ref[]: /uri\n\n[foo][ref[]"), "

[ref[]: /uri

\n

[foo][ref[]

", "should not support references w/ brackets (1)" ); assert_eq!( - micromark("[ref[bar]]: /uri\n\n[foo][ref[bar]]"), + to_html("[ref[bar]]: /uri\n\n[foo][ref[bar]]"), "

[ref[bar]]: /uri

\n

[foo][ref[bar]]

", "should not support references w/ brackets (2)" ); assert_eq!( - micromark("[[[foo]]]: /url\n\n[[[foo]]]"), + to_html("[[[foo]]]: /url\n\n[[[foo]]]"), "

[[[foo]]]: /url

\n

[[[foo]]]

", "should not support references w/ brackets (3)" ); assert_eq!( - micromark("[ref\\[]: /uri\n\n[foo][ref\\[]"), + to_html("[ref\\[]: /uri\n\n[foo][ref\\[]"), "

foo

", "should match references to definitions w/ matching escapes" ); assert_eq!( - micromark("[bar\\\\]: /uri\n\n[bar\\\\]"), + to_html("[bar\\\\]: /uri\n\n[bar\\\\]"), "

bar\\

", "should support escapes" ); assert_eq!( - micromark("[]: /uri\n\n[]"), + to_html("[]: /uri\n\n[]"), "

[]: /uri

\n

[]

", "should not support empty references" ); assert_eq!( - micromark("[\n ]: /uri\n\n[\n ]"), + to_html("[\n ]: /uri\n\n[\n ]"), "

[\n]: /uri

\n

[\n]

", "should not support blank references" ); assert_eq!( - micromark("[foo]: /url \"title\"\n\n[foo][]"), + to_html("[foo]: /url \"title\"\n\n[foo][]"), "

foo

", "should support collaped references" ); assert_eq!( - micromark("[*foo* bar]: /url \"title\"\n\n[*foo* bar][]"), + to_html("[*foo* bar]: /url \"title\"\n\n[*foo* bar][]"), "

foo bar

", "should support content in collaped references" ); assert_eq!( - micromark("[foo]: /url \"title\"\n\n[Foo][]"), + to_html("[foo]: /url \"title\"\n\n[Foo][]"), "

Foo

", "should match references to definitions case-insensitively" ); assert_eq!( - micromark("[foo]: /url \"title\"\n\n[foo] \n[]"), + to_html("[foo]: /url \"title\"\n\n[foo] \n[]"), "

foo\n[]

", "should not support whitespace between label and collaped reference" ); assert_eq!( - micromark("[foo]: /url \"title\"\n\n[foo]"), + to_html("[foo]: /url \"title\"\n\n[foo]"), "

foo

", "should support shortcut references" ); assert_eq!( - micromark("[*foo* bar]: /url \"title\"\n\n[*foo* bar]"), + to_html("[*foo* bar]: /url \"title\"\n\n[*foo* bar]"), "

foo bar

", "should support content in shortcut references (1)" ); assert_eq!( - micromark("[*foo* bar]: /url \"title\"\n\n[[*foo* bar]]"), + to_html("[*foo* bar]: /url \"title\"\n\n[[*foo* bar]]"), "

[foo bar]

", "should support content in shortcut references (2)" ); assert_eq!( - micromark("[foo]: /url\n\n[[bar [foo]"), + to_html("[foo]: /url\n\n[[bar [foo]"), "

[[bar foo

", "should support content in shortcut references (3)" ); assert_eq!( - micromark("[foo]: /url \"title\"\n\n[Foo]"), + to_html("[foo]: /url \"title\"\n\n[Foo]"), "

Foo

", "should match shortcut references to definitions case-insensitively" ); assert_eq!( - micromark("[foo]: /url\n\n[foo] bar"), + to_html("[foo]: /url\n\n[foo] bar"), "

foo bar

", "should support whitespace after a shortcut reference" ); assert_eq!( - micromark("[foo]: /url \"title\"\n\n\\[foo]"), + to_html("[foo]: /url \"title\"\n\n\\[foo]"), "

[foo]

", "should “support” an escaped shortcut reference" ); assert_eq!( - micromark("[foo*]: /url\n\n*[foo*]"), + to_html("[foo*]: /url\n\n*[foo*]"), "

*foo*

", "should prefer shortcut references over emphasis" ); assert_eq!( - micromark("[foo]: /url1\n[bar]: /url2\n\n[foo][bar]"), + to_html("[foo]: /url1\n[bar]: /url2\n\n[foo][bar]"), "

foo

", "should prefer full references over shortcut references" ); assert_eq!( - micromark("[foo]: /url1\n\n[foo][]"), + to_html("[foo]: /url1\n\n[foo][]"), "

foo

", "should prefer collapsed references over shortcut references" ); assert_eq!( - micromark("[foo]: /url\n\n[foo]()"), + to_html("[foo]: /url\n\n[foo]()"), "

foo

", "should prefer resources over shortcut references (1)" ); assert_eq!( - micromark("[foo]: /url \"title\"\n\n[foo]()"), + to_html("[foo]: /url \"title\"\n\n[foo]()"), "

foo

", "should prefer resources over shortcut references (2)" ); assert_eq!( - micromark("[foo]: /url1\n\n[foo](not a link)"), + to_html("[foo]: /url1\n\n[foo](not a link)"), "

foo(not a link)

", "should support shortcut references when followed by nonconforming resources" ); assert_eq!( - micromark("[baz]: /url\n\n[foo][bar][baz]"), + to_html("[baz]: /url\n\n[foo][bar][baz]"), "

[foo]bar

", "stable/unstable (1)" ); assert_eq!( - micromark("[baz]: /url1\n[bar]: /url2\n\n[foo][bar][baz]"), + to_html("[baz]: /url1\n[bar]: /url2\n\n[foo][bar][baz]"), "

foobaz

", "stable/unstable (2)" ); assert_eq!( - micromark("[baz]: /url1\n[foo]: /url2\n\n[foo][bar][baz]"), + to_html("[baz]: /url1\n[foo]: /url2\n\n[foo][bar][baz]"), "

[foo]bar

", "stable/unstable (3)" ); @@ -298,52 +298,50 @@ fn link_reference() -> Result<(), String> { // This matches most implimentations, but is not strictly according to spec. // See: assert_eq!( - micromark("[x]: /url\n\n[x][ ], [x][\t], [x][\n], [x][]"), + to_html("[x]: /url\n\n[x][ ], [x][\t], [x][\n], [x][]"), "

[x][ ], [x][\t], [x][\n], x

", "should not support whitespace-only full references" ); // See also: assert_eq!( - micromark("[+]: example.com\n[\\;]: example.com\n\nWill it link? [\\+], [;]"), + to_html("[+]: example.com\n[\\;]: example.com\n\nWill it link? [\\+], [;]"), "

Will it link? [+], [;]

", "should not support mismatched character escapes in shortcuts" ); assert_eq!( - micromark("[©]: example.com\n[&]: example.com\n\nWill it link? [©], [&]"), + to_html("[©]: example.com\n[&]: example.com\n\nWill it link? [©], [&]"), "

Will it link? [©], [&]

", "should not support mismatched character references in shortcuts" ); assert_eq!( - micromark("[+]: example.com\n[\\;]: example.com\n\nWill it link? [\\+][], [;][]"), + to_html("[+]: example.com\n[\\;]: example.com\n\nWill it link? [\\+][], [;][]"), "

Will it link? [+][], [;][]

", "should not support mismatched character escapes in collapsed" ); assert_eq!( - micromark("[©]: example.com\n[&]: example.com\n\nWill it link? [©][], [&][]"), + to_html("[©]: example.com\n[&]: example.com\n\nWill it link? [©][], [&][]"), "

Will it link? [©][], [&][]

", "should not support mismatched character references in collapsed" ); assert_eq!( - micromark("[+]: example.com\n[\\;]: example.com\n\nWill it link? [a][ \\+ ], [b][ ; ]"), + to_html("[+]: example.com\n[\\;]: example.com\n\nWill it link? [a][ \\+ ], [b][ ; ]"), "

Will it link? [a][ + ], [b][ ; ]

", "should not support mismatched character escapes in fulls" ); assert_eq!( - micromark( - "[©]: example.com\n[&]: example.com\n\nWill it link? [a][ © ], [b][ & ]" - ), + to_html("[©]: example.com\n[&]: example.com\n\nWill it link? [a][ © ], [b][ & ]"), "

Will it link? [a][ © ], [b][ & ]

", "should not support mismatched character references in fulls" ); assert_eq!( - micromark( + to_html( "[*f*][] [;][] [\\;][] @@ -375,25 +373,25 @@ fn link_reference() -> Result<(), String> { let max = "x".repeat(999); assert_eq!( - micromark(format!("[{}]: a\n[y][{}]", max, max).as_str()), + to_html(format!("[{}]: a\n[y][{}]", max, max).as_str()), "

y

", "should support 999 characters in a reference" ); assert_eq!( - micromark(format!("[{}x]: a\n[y][{}x]", max, max).as_str()), + to_html(format!("[{}x]: a\n[y][{}x]", max, max).as_str()), format!("

[{}x]: a\n[y][{}x]

", max, max), "should not support 1000 characters in a reference" ); assert_eq!( - micromark("[x] missing-colon\n\nWill it link? [x]"), + to_html("[x] missing-colon\n\nWill it link? [x]"), "

[x] missing-colon

\n

Will it link? [x]

", "should not fail on a missing colon in a definition" ); assert_eq!( - micromark_with_options( + to_html_with_options( "[x]()", &Options { parse: ParseOptions { @@ -411,7 +409,7 @@ fn link_reference() -> Result<(), String> { ); assert_eq!( - micromark_with_options( + to_html_with_options( "[x]()", &Options { parse: ParseOptions { @@ -429,7 +427,7 @@ fn link_reference() -> Result<(), String> { ); assert_eq!( - micromark_to_mdast( + to_mdast( "[x]: y\n\na [x] b [x][] c [d][x] e.", &ParseOptions::default() )?, -- cgit