extern crate markdown; use markdown::{mdast, to_html, to_html_with_options, to_mdast, Options}; use pretty_assertions::assert_eq; #[test] fn fuzz() -> Result<(), String> { assert_eq!( to_html("[\n~\na\n-\n\n"), "

[\n~\na

\n", "1: label, blank lines, and code" ); // The first link is stopped by the `+` (so it’s `a@b.c`), but the next // link overlaps it (`b.c+d@e.f`). assert_eq!( to_html_with_options("a@b.c+d@e.f", &Options::gfm())?, "

a@b.c+d@e.f

", "2: gfm: email autolink literals running into each other" ); assert_eq!( to_html(" x\n* "), "
x\n
\n", "3-a: containers should not pierce into indented code" ); assert_eq!( to_html(" a\n* b"), "
a\n
\n", "3-b: containers should not pierce into indented code" ); assert_eq!( to_html("a * "), "

a *

", "4-a: trailing whitespace and broken data" ); assert_eq!( to_html("_ "), "

_

", "4-b: trailing whitespace and broken data (GH-13)" ); assert_eq!( to_html_with_options("a ~ ", &Options::gfm())?, "

a ~

", "4-c: trailing whitespace and broken data (GH-14)" ); assert!( matches!( to_mdast("123456789. ok", &Default::default()), Ok(mdast::Node::Root(_)) ), "5: lists should support high start numbers (GH-17)" ); Ok(()) }