extern crate micromark; use micromark::{ mdast::{Html, Node, Position, Root}, micromark, micromark_to_mdast, micromark_with_options, Constructs, Options, }; use pretty_assertions::assert_eq; #[test] fn html_flow() -> Result<(), String> { let danger = Options { allow_dangerous_html: true, ..Options::default() }; assert_eq!( micromark(""), "<!-- asd -->", "should support a heading w/ rank 1" ); assert_eq!( micromark_with_options("", &danger)?, "", "should support a heading w/ rank 1" ); assert_eq!( micromark_with_options( "", &Options { constructs: Constructs { html_flow: false, ..Constructs::default() }, ..Options::default() } )?, "

<x>

", "should support turning off html (flow)" ); assert_eq!( micromark_to_mdast("
\nstuff\n
", &Options::default())?, Node::Root(Root { children: vec![Node::Html(Html { value: "
\nstuff\n
".to_string(), position: Some(Position::new(1, 1, 0, 3, 7, 18)) })], position: Some(Position::new(1, 1, 0, 3, 7, 18)) }), "should support HTML (flow) as `Html`s in mdast" ); Ok(()) } #[test] fn html_flow_1_raw() -> Result<(), String> { let danger = Options { allow_dangerous_html: true, ..Options::default() }; assert_eq!( micromark_with_options( "

import Text.HTML.TagSoup

main :: IO ()
main = print $ parseTags tags
okay", &danger )?, "

import Text.HTML.TagSoup

main :: IO ()
main = print $ parseTags tags

okay

", "should support raw pre tags (type 1)" ); assert_eq!( micromark_with_options( " okay", &danger )?, "

okay

", "should support raw script tags" ); assert_eq!( micromark_with_options( " okay", &danger )?, "

okay

", "should support raw style tags" ); assert_eq!( micromark_with_options("\n\nfoo", &danger)?, "\n\nfoo", "should support raw tags w/o ending" ); assert_eq!( micromark_with_options("\n*foo*", &danger)?, "\n

foo

", "should support raw tags w/ start and end on a single line" ); assert_eq!( micromark_with_options("1. *bar*", &danger)?, "1. *bar*", "should support raw tags w/ more data on ending line" ); assert_eq!( micromark_with_options("</script\nmore

", "should not support a raw closing tag" ); assert_eq!( micromark_with_options("", &danger)?, "", "should support blank lines in raw" ); assert_eq!( micromark_with_options(">