| // Tests for HTML spec. |
| |
| extern crate pulldown_cmark; |
| |
| #[test] |
| fn html_test_1() { |
| let original = r##"Little header |
| |
| <script type="text/js"> |
| function some_func() { |
| console.log("teeeest"); |
| } |
| |
| |
| function another_func() { |
| console.log("fooooo"); |
| } |
| </script>"##; |
| let expected = r##"<p>Little header</p> |
| <script type="text/js"> |
| function some_func() { |
| console.log("teeeest"); |
| } |
| |
| |
| function another_func() { |
| console.log("fooooo"); |
| } |
| </script>"##; |
| |
| use pulldown_cmark::{Parser, html}; |
| |
| let mut s = String::new(); |
| |
| let p = Parser::new(&original); |
| html::push_html(&mut s, p); |
| |
| assert_eq!(expected, s); |
| } |
| |
| #[test] |
| fn html_test_2() { |
| let original = r##"Little header |
| |
| <script |
| type="text/js"> |
| function some_func() { |
| console.log("teeeest"); |
| } |
| |
| |
| function another_func() { |
| console.log("fooooo"); |
| } |
| </script>"##; |
| let expected = r##"<p>Little header</p> |
| <script |
| type="text/js"> |
| function some_func() { |
| console.log("teeeest"); |
| } |
| |
| |
| function another_func() { |
| console.log("fooooo"); |
| } |
| </script>"##; |
| |
| use pulldown_cmark::{Parser, html}; |
| |
| let mut s = String::new(); |
| |
| let p = Parser::new(&original); |
| html::push_html(&mut s, p); |
| |
| assert_eq!(expected, s); |
| } |
| |
| #[test] |
| fn html_test_3() { |
| let original = r##"Little header |
| |
| <? |
| <div></div> |
| <p>Useless</p> |
| ?>"##; |
| let expected = r##"<p>Little header</p> |
| <? |
| <div></div> |
| <p>Useless</p> |
| ?>"##; |
| |
| use pulldown_cmark::{Parser, html}; |
| |
| let mut s = String::new(); |
| |
| let p = Parser::new(&original); |
| html::push_html(&mut s, p); |
| |
| assert_eq!(expected, s); |
| } |
| |
| #[test] |
| fn html_test_4() { |
| let original = r##"Little header |
| |
| <!-- |
| <div></div> |
| <p>Useless</p> |
| -->"##; |
| let expected = r##"<p>Little header</p> |
| <!-- |
| <div></div> |
| <p>Useless</p> |
| -->"##; |
| |
| use pulldown_cmark::{Parser, html}; |
| |
| let mut s = String::new(); |
| |
| let p = Parser::new(&original); |
| html::push_html(&mut s, p); |
| |
| assert_eq!(expected, s); |
| } |
| |
| #[test] |
| fn html_test_5() { |
| let original = r##"Little header |
| |
| <![CDATA[ |
| <div></div> |
| <p>Useless</p> |
| ]]>"##; |
| let expected = r##"<p>Little header</p> |
| <![CDATA[ |
| <div></div> |
| <p>Useless</p> |
| ]]>"##; |
| |
| use pulldown_cmark::{Parser, html}; |
| |
| let mut s = String::new(); |
| |
| let p = Parser::new(&original); |
| html::push_html(&mut s, p); |
| |
| assert_eq!(expected, s); |
| } |
| |
| #[test] |
| fn html_test_6() { |
| let original = r##"Little header |
| |
| <!X |
| Some things are here... |
| >"##; |
| let expected = r##"<p>Little header</p> |
| <!X |
| Some things are here... |
| >"##; |
| |
| use pulldown_cmark::{Parser, html}; |
| |
| let mut s = String::new(); |
| |
| let p = Parser::new(&original); |
| html::push_html(&mut s, p); |
| |
| assert_eq!(expected, s); |
| } |
| |
| #[test] |
| fn html_test_7() { |
| let original = r##"Little header |
| ----------- |
| |
| <script> |
| function some_func() { |
| console.log("teeeest"); |
| } |
| |
| |
| function another_func() { |
| console.log("fooooo"); |
| } |
| </script>"##; |
| let expected = r##"<h2>Little header</h2> |
| <script> |
| function some_func() { |
| console.log("teeeest"); |
| } |
| |
| |
| function another_func() { |
| console.log("fooooo"); |
| } |
| </script>"##; |
| |
| use pulldown_cmark::{Parser, html}; |
| |
| let mut s = String::new(); |
| |
| let p = Parser::new(&original); |
| html::push_html(&mut s, p); |
| |
| assert_eq!(expected, s); |
| } |
| |
| #[test] |
| fn html_test_broken_callback() { |
| let original = r##"[foo], |
| [bar], |
| [baz], |
| |
| [baz]: https://example.org |
| "##; |
| |
| let expected = r##"<p><a href="https://replaced.example.org" title="some title">foo</a>, |
| [bar], |
| <a href="https://example.org">baz</a>,</p> |
| "##; |
| |
| use pulldown_cmark::{Options, Parser, html}; |
| |
| let mut s = String::new(); |
| |
| let callback = |reference: &str, _normalized: &str| -> Option<(String, String)> { |
| if reference == "foo" || reference == "baz" { |
| Some(("https://replaced.example.org".into(), "some title".into())) |
| } else { |
| None |
| } |
| }; |
| |
| let p = Parser::new_with_broken_link_callback(&original, Options::empty(), Some(&callback)); |
| html::push_html(&mut s, p); |
| |
| assert_eq!(expected, s); |
| } |