#[cfg(feature = "linkify")]
#[test]
fn test_linkify() {
use clearurls::Error;
use clearurls::UrlCleaner;
let cleaner = UrlCleaner::from_embedded_rules().unwrap();
let test = |msg: &str, input: &str, expected: &str| {
let result = cleaner
.clear_text(input)
.unwrap_or_else(|e| panic!("error in test {msg}: {e:?}"));
assert_eq!(
result, expected,
"Testing {msg}, with original input '{input}'"
);
};
test(
"0 links",
"This is a markdown text.",
"This is a markdown text.",
);
test(
"2 links",
"This is a [markdown link](http://example.com/?&&&&), and another: http://example.com?utm_source=1",
"This is a [markdown link](http://example.com/), and another: http://example.com/",
);
let err = cleaner.clear_text("This is a [markdown link](http://example.com/?&&&&), and another: https://google.co.uk/url?foo=bar&q=http%F0");
assert!(matches!(
err.unwrap_err()[..],
[Error::PercentDecodeUtf8Error(_)]
));
}