extern crate micromark; use micromark::micromark; #[test] fn dangerous_protocol_autolink() { assert_eq!( micromark(""), "

javascript:alert(1)

", "should be safe by default" ); assert_eq!( micromark(""), "

http://a

", "should allow `http:`" ); assert_eq!( micromark(""), "

https://a

", "should allow `https:`" ); assert_eq!( micromark(""), "

irc:///help

", "should allow `irc:`" ); assert_eq!( micromark(""), "

mailto:a

", "should allow `mailto:`" ); } // To do: image. // #[test] // fn dangerous_protocol_image() { // assert_eq!( // micromark("![](javascript:alert(1))"), // "

\"\"

", // "should be safe by default" // ); // assert_eq!( // micromark("![](http://a)"), // "

\"\"

", // "should allow `http:`" // ); // assert_eq!( // micromark("![](https://a)"), // "

\"\"

", // "should allow `https:`" // ); // assert_eq!( // micromark("![](irc:///help)"), // "

\"\"

", // "should not allow `irc:`" // ); // assert_eq!( // micromark("![](mailto:a)"), // "

\"\"

", // "should not allow `mailto:`" // ); // assert_eq!( // micromark("![](#a)"), // "

\"\"

", // "should allow a hash" // ); // assert_eq!( // micromark("![](?a)"), // "

\"\"

", // "should allow a search" // ); // assert_eq!( // micromark("![](/a)"), // "

\"\"

", // "should allow an absolute" // ); // assert_eq!( // micromark("![](./a)"), // "

\"\"

", // "should allow an relative" // ); // assert_eq!( // micromark("![](../a)"), // "

\"\"

", // "should allow an upwards relative" // ); // assert_eq!( // micromark("![](a#b:c)"), // "

\"\"

", // "should allow a colon in a hash" // ); // assert_eq!( // micromark("![](a?b:c)"), // "

\"\"

", // "should allow a colon in a search" // ); // assert_eq!( // micromark("![](a/b:c)"), // "

\"\"

", // "should allow a colon in a path" // ); // } // To do: link. // #[test] // fn dangerous_protocol_link() { // assert_eq!( // micromark("[](javascript:alert(1))"), // "

", // "should be safe by default" // ); // assert_eq!( // micromark("[](http://a)"), // "

", // "should allow `http:`" // ); // assert_eq!( // micromark("[](https://a)"), // "

", // "should allow `https:`" // ); // assert_eq!( // micromark("[](irc:///help)"), // "

", // "should allow `irc:`" // ); // assert_eq!( // micromark("[](mailto:a)"), // "

", // "should allow `mailto:`" // ); // assert_eq!( // micromark("[](#a)"), // "

", // "should allow a hash" // ); // assert_eq!( // micromark("[](?a)"), // "

", // "should allow a search" // ); // assert_eq!( // micromark("[](/a)"), // "

", // "should allow an absolute" // ); // assert_eq!( // micromark("[](./a)"), // "

", // "should allow an relative" // ); // assert_eq!( // micromark("[](../a)"), // "

", // "should allow an upwards relative" // ); // assert_eq!( // micromark("[](a#b:c)"), // "

", // "should allow a colon in a hash" // ); // assert_eq!( // micromark("[](a?b:c)"), // "

", // "should allow a colon in a search" // ); // assert_eq!( // micromark("[](a/b:c)"), // "

", // "should allow a colon in a path" // ); // }