From 4c06c8554c35887f8f5147783953b2b7e7c2327f Mon Sep 17 00:00:00 2001 From: Titus Wormer Date: Wed, 8 Jun 2022 15:52:16 +0200 Subject: . --- tests/heading_atx.rs | 208 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 tests/heading_atx.rs (limited to 'tests/heading_atx.rs') diff --git a/tests/heading_atx.rs b/tests/heading_atx.rs new file mode 100644 index 0000000..b75d058 --- /dev/null +++ b/tests/heading_atx.rs @@ -0,0 +1,208 @@ +extern crate micromark; +use micromark::micromark; +#[test] +fn heading_atx() { + assert_eq!( + micromark("# foo"), + "

foo

", + "should support a heading w/ rank 1" + ); + + assert_eq!( + micromark("## foo"), + "

foo

", + "should support a heading w/ rank 2" + ); + + assert_eq!( + micromark("### foo"), + "

foo

", + "should support a heading w/ rank 3" + ); + + assert_eq!( + micromark("#### foo"), + "

foo

", + "should support a heading w/ rank 4" + ); + + assert_eq!( + micromark("##### foo"), + "
foo
", + "should support a heading w/ rank 5" + ); + + assert_eq!( + micromark("###### foo"), + "
foo
", + "should support a heading w/ rank 6" + ); + + assert_eq!( + micromark("####### foo"), + "

####### foo

", + "should not support a heading w/ rank 7" + ); + + assert_eq!( + micromark("#5 bolt"), + "

#5 bolt

", + "should not support a heading for a number sign not followed by whitespace (1)" + ); + + assert_eq!( + micromark("#hashtag"), + "

#hashtag

", + "should not support a heading for a number sign not followed by whitespace (2)" + ); + + // To do: phrasing. + // assert_eq!( + // micromark("\\## foo"), + // "

## foo

", + // "should not support a heading for an escaped number sign" + // ); + + // assert_eq!( + // micromark("# foo *bar* \\*baz\\*"), + // "

foo bar *baz*

", + // "should support text content in headings" + // ); + + assert_eq!( + micromark("# foo "), + "

foo

", + "should support arbitrary initial and final whitespace" + ); + + assert_eq!( + micromark(" ### foo"), + "

foo

", + "should support an initial space" + ); + + assert_eq!( + micromark(" ## foo"), + "

foo

", + "should support two initial spaces" + ); + + assert_eq!( + micromark(" # foo"), + "

foo

", + "should support three initial spaces" + ); + + assert_eq!( + micromark(" # foo"), + "
# foo\n
", + "should not support four initial spaces" + ); + + // To do: lazy. + // assert_eq!( + // micromark("foo\n # bar"), + // "

foo\n# bar

", + // "should not support four initial spaces when interrupting" + // ); + + assert_eq!( + micromark("## foo ##"), + "

foo

", + "should support a closing sequence (1)" + ); + + assert_eq!( + micromark(" ### bar ###"), + "

bar

", + "should support a closing sequence (2)" + ); + + assert_eq!( + micromark("# foo ##################################"), + "

foo

", + "should support a closing sequence w/ an arbitrary number of number signs (1)" + ); + + assert_eq!( + micromark("##### foo ##"), + "
foo
", + "should support a closing sequence w/ an arbitrary number of number signs (2)" + ); + + assert_eq!( + micromark("### foo ### "), + "

foo

", + "should support trailing whitespace after a closing sequence" + ); + + assert_eq!( + micromark("### foo ### b"), + "

foo ### b

", + "should not support other content after a closing sequence" + ); + + assert_eq!( + micromark("# foo#"), + "

foo#

", + "should not support a closing sequence w/o whitespace before it" + ); + + // Phrasing. + // assert_eq!( + // micromark("### foo \\###"), + // "

foo ###

", + // "should not support an “escaped” closing sequence (1)" + // ); + + // assert_eq!( + // micromark("## foo #\\##"), + // "

foo ###

", + // "should not support an “escaped” closing sequence (2)" + // ); + + // assert_eq!( + // micromark("# foo \\#"), + // "

foo #

", + // "should not support an “escaped” closing sequence (3)" + // ); + + assert_eq!( + micromark("****\n## foo\n****"), + "
\n

foo

\n
", + "should support atx headings when not surrounded by blank lines" + ); + + assert_eq!( + micromark("Foo bar\n# baz\nBar foo"), + "

Foo bar

\n

baz

\n

Bar foo

", + "should support atx headings interrupting paragraphs" + ); + + // Line endings. + assert_eq!( + micromark("## \n#\n### ###"), + "

\n

\n

", + "should support empty atx headings" + ); + + // To do: block quote. + // assert_eq!( + // micromark("> #\na"), + // "
\n

\n
\n

a

", + // "should not support lazyness (1)" + // ); + + // assert_eq!( + // micromark("> a\n#"), + // "
\n

a

\n
\n

", + // "should not support lazyness (2)" + // ); + + // Extensions: + // assert_eq!( + // micromark("# a", {extensions: [{disable: {null: ["headingAtx"]}}]}), + // "

# a

", + // "should support turning off heading (atx)" + // ); +} -- cgit