From 1d92666865b35341e076efbefddf6e73b5e1542e Mon Sep 17 00:00:00 2001 From: Titus Wormer Date: Wed, 7 Sep 2022 15:53:06 +0200 Subject: Add support for recoverable syntax errors --- tests/html_text.rs | 138 +++++++++++++++++++++++++++-------------------------- 1 file changed, 70 insertions(+), 68 deletions(-) (limited to 'tests/html_text.rs') diff --git a/tests/html_text.rs b/tests/html_text.rs index 988ebbc..8fdbbd2 100644 --- a/tests/html_text.rs +++ b/tests/html_text.rs @@ -3,7 +3,7 @@ use micromark::{micromark, micromark_with_options, Constructs, Options}; use pretty_assertions::assert_eq; #[test] -fn html_text() { +fn html_text() -> Result<(), String> { let danger = Options { allow_dangerous_html: true, ..Options::default() @@ -16,19 +16,19 @@ fn html_text() { ); assert_eq!( - micromark_with_options("", &danger), + micromark_with_options("", &danger)?, "

", "should support opening tags" ); assert_eq!( - micromark_with_options("", &danger), + micromark_with_options("", &danger)?, "

", "should support self-closing tags" ); assert_eq!( - micromark_with_options("", &danger), + micromark_with_options("", &danger)?, "

", "should support whitespace in tags" ); @@ -37,170 +37,170 @@ fn html_text() { micromark_with_options( "", &danger - ), + )?, "

", "should support attributes on tags" ); assert_eq!( - micromark_with_options("Foo ", &danger), + micromark_with_options("Foo ", &danger)?, "

Foo

", "should support non-html tags" ); assert_eq!( - micromark_with_options("<33> <__>", &danger), + micromark_with_options("<33> <__>", &danger)?, "

<33> <__>

", "should not support nonconforming tag names" ); assert_eq!( - micromark_with_options("
", &danger), + micromark_with_options("", &danger)?, "

<a h*#ref="hi">

", "should not support nonconforming attribute names" ); assert_eq!( - micromark_with_options("
", &danger), + micromark_with_options(" ", &danger)?, "

<a href="hi'> <a href=hi'>

", "should not support nonconforming attribute values" ); assert_eq!( - micromark_with_options("< a><\nfoo>\n", &danger), + micromark_with_options("< a><\nfoo>\n", &danger)?, "

< a><\nfoo><bar/ >\n<foo bar=baz\nbim!bop />

", "should not support nonconforming whitespace" ); assert_eq!( - micromark_with_options("
", &danger), + micromark_with_options("", &danger)?, "

<a href='bar'title=title>

", "should not support missing whitespace" ); assert_eq!( - micromark_with_options("
", &danger), + micromark_with_options("", &danger)?, "

", "should support closing tags" ); assert_eq!( - micromark_with_options("", &danger), + micromark_with_options("", &danger)?, "

</a href="foo">

", "should not support closing tags w/ attributes" ); assert_eq!( - micromark_with_options("foo ", &danger), + micromark_with_options("foo ", &danger)?, "

foo

", "should support comments" ); assert_eq!( - micromark_with_options("foo ", &danger), + micromark_with_options("foo ", &danger)?, "

foo <!-- not a comment -- two hyphens -->

", "should not support comments w/ two dashes inside" ); assert_eq!( - micromark_with_options("foo foo -->", &danger), + micromark_with_options("foo foo -->", &danger)?, "

foo <!--> foo -->

", "should not support nonconforming comments (1)" ); assert_eq!( - micromark_with_options("foo ", &danger), + micromark_with_options("foo ", &danger)?, "

foo <!-- foo--->

", "should not support nonconforming comments (2)" ); assert_eq!( - micromark_with_options("foo ", &danger), + micromark_with_options("foo ", &danger)?, "

foo

", "should support instructions" ); assert_eq!( - micromark_with_options("foo ", &danger), + micromark_with_options("foo ", &danger)?, "

foo

", "should support declarations" ); assert_eq!( - micromark_with_options("foo &<]]>", &danger), + micromark_with_options("foo &<]]>", &danger)?, "

foo &<]]>

", "should support cdata" ); assert_eq!( - micromark_with_options("foo ", &danger), + micromark_with_options("foo ", &danger)?, "

foo

", "should support (ignore) character references" ); assert_eq!( - micromark_with_options("foo ", &danger), + micromark_with_options("foo ", &danger)?, "

foo

", "should not support character escapes (1)" ); assert_eq!( - micromark_with_options("", &danger), + micromark_with_options("", &danger)?, "

<a href=""">

", "should not support character escapes (2)" ); // Extra: assert_eq!( - micromark_with_options("foo ", &danger), + micromark_with_options("foo ", &danger)?, "

foo <!1>

", "should not support non-comment, non-cdata, and non-named declaration" ); assert_eq!( - micromark_with_options("foo ", &danger), + micromark_with_options("foo ", &danger)?, "

foo <!-not enough!-->

", "should not support comments w/ not enough dashes" ); assert_eq!( - micromark_with_options("foo ", &danger), + micromark_with_options("foo ", &danger)?, "

foo

", "should support comments that start w/ a dash, if it’s not followed by a greater than" ); assert_eq!( - micromark_with_options("foo ", &danger), + micromark_with_options("foo ", &danger)?, "

foo <!--->

", "should not support comments that start w/ `->`" ); assert_eq!( - micromark_with_options("foo ", &danger), + micromark_with_options("foo ", &danger)?, "

foo

", "should support `->` in a comment" ); assert_eq!( - micromark_with_options("foo