extern crate micromark; use micromark::{micromark, micromark_with_options, Options}; const DANGER: &Options = &Options { allow_dangerous_html: true, allow_dangerous_protocol: true, default_line_ending: None, }; #[test] fn line_ending() { assert_eq!( micromark("a\nb"), "

a\nb

", "should support a line feed for a line ending inside a paragraph" ); assert_eq!( micromark("a\rb"), "

a\rb

", "should support a carriage return for a line ending inside a paragraph" ); assert_eq!( micromark("a\r\nb"), "

a\r\nb

", "should support a carriage return + line feed for a line ending inside a paragraph" ); assert_eq!( micromark("\ta\n\tb"), "
a\nb\n
", "should support a line feed in indented code (and prefer it)" ); assert_eq!( micromark("\ta\r\tb"), "
a\rb\r
", "should support a carriage return in indented code (and prefer it)" ); assert_eq!( micromark("\ta\r\n\tb"), "
a\r\nb\r\n
", "should support a carriage return + line feed in indented code (and prefer it)" ); assert_eq!( micromark("***\n### Heading"), "
\n

Heading

", "should support a line feed between flow" ); assert_eq!( micromark("***\r### Heading"), "
\r

Heading

", "should support a carriage return between flow" ); assert_eq!( micromark("***\r\n### Heading"), "
\r\n

Heading

", "should support a carriage return + line feed between flow" ); assert_eq!( micromark("***\n\n\n### Heading\n"), "
\n

Heading

\n", "should support several line feeds between flow" ); assert_eq!( micromark("***\r\r\r### Heading\r"), "
\r

Heading

\r", "should support several carriage returns between flow" ); assert_eq!( micromark("***\r\n\r\n\r\n### Heading\r\n"), "
\r\n

Heading

\r\n", "should support several carriage return + line feeds between flow" ); assert_eq!( micromark("```x\n\n\ny\n\n\n```\n\n\n"), "
\n\ny\n\n\n
\n", "should support several line feeds in fenced code" ); assert_eq!( micromark("```x\r\r\ry\r\r\r```\r\r\r"), "
\r\ry\r\r\r
\r", "should support several carriage returns in fenced code" ); assert_eq!( micromark("```x\r\n\r\n\r\ny\r\n\r\n\r\n```\r\n\r\n\r\n"), "
\r\n\r\ny\r\n\r\n\r\n
\r\n", "should support several carriage return + line feeds in fenced code" ); assert_eq!( micromark("A\r\nB\r\n-\r\nC"), "

A\r\nB

\r\n

C

", "should support a carriage return + line feed in content" ); assert_eq!( micromark_with_options("\n\nx", DANGER), "
\n

x

", "should support a blank line w/ line feeds after html" ); assert_eq!( micromark_with_options("
\r\rx", DANGER), "
\r

x

", "should support a blank line w/ carriage returns after html" ); assert_eq!( micromark_with_options("
\r\n\r\nx", DANGER), "
\r\n

x

", "should support a blank line w/ carriage return + line feeds after html" ); assert_eq!( micromark_with_options("
\nx", DANGER), "
\nx", "should support a non-blank line w/ line feed in html" ); assert_eq!( micromark_with_options("
\rx", DANGER), "
\rx", "should support a non-blank line w/ carriage return in html" ); assert_eq!( micromark_with_options("
\r\nx", DANGER), "
\r\nx", "should support a non-blank line w/ carriage return + line feed in html" ); }