#![cfg(test)]
use rstest::rstest;
#[rstest(
input,
case(r"](u.jpg)"),
case(r""),
case(r""),
case(r""),
case(r#""#)
)]
fn image_alt_survives_round_trip(input: &str) {
assert_round_trip(input);
}
#[rstest(
input,
case(r#"[x](u "it's")"#),
case(r#"[x](u "a \" b")"#),
case(r#"[x](u 'a " b')"#),
case(r#"[x](u "a \\ b")"#),
case(r#""#),
case("[x][1]\n\n[1]: u \"a \\\" b\"")
)]
fn link_title_survives_round_trip(input: &str) {
assert_round_trip(input);
}
#[rstest(
input,
case("[x](<a b>)"),
case("[x](<>)"),
case(r"[x](<a\<b>)"),
case(r"[x](<a\>b>)"),
case("[x](<a(b>)"),
case("[x](a(b)c)"),
case(r"[x](a\(b)"),
case("[x](<a b> \"t\")"),
case("[x][1]\n\n[1]: <a b> \"t\"")
)]
fn link_destination_survives_round_trip(input: &str) {
assert_round_trip(input);
}
fn assert_round_trip(input: &str) {
let state = || crate::parser::MarkdownParserState::default();
let doc = crate::parser::parse_markdown(state(), input).unwrap();
let printed = crate::printer::render_markdown(&doc, crate::printer::config::Config::default());
let reparsed = crate::parser::parse_markdown(state(), &printed).unwrap();
assert_eq!(doc, reparsed, "printed as {printed:?}");
}