blob: 5e4779504cb0ce049694d14381ab19cb16b3612a [file] [log] [blame]
use indoc::formatdoc;
#[test]
fn carriage_return() {
// Every line in the string ends with \r\n
let indoc = formatdoc! {"
{}
\\{}
{}",
'a', 'b', 'c'
};
let expected = "a\n\n \\b\nc";
assert_eq!(indoc, expected);
}
#[test]
fn empty_string() {
let indoc = formatdoc! {""};
let expected = "";
assert_eq!(indoc, expected);
}
#[test]
fn joined_first_line() {
let indoc = formatdoc! {"\
{}", 'a'
};
let expected = "a";
assert_eq!(indoc, expected);
}
#[test]
fn joined_lines() {
let indoc = formatdoc! {"
{}\
{}
{}\
{}
{}",
'a', 'b', 'c', 'd', 'e'
};
let expected = "ab\ncd\ne";
assert_eq!(indoc, expected);
}
#[test]
fn no_leading_newline() {
let indoc = formatdoc! {"{}
{}
{}", 'a', 'b', 'c'};
let expected = "a\nb\nc";
assert_eq!(indoc, expected);
}
#[test]
fn one_line() {
let indoc = formatdoc! {"a"};
let expected = "a";
assert_eq!(indoc, expected);
}
#[test]
fn raw_string() {
let indoc = formatdoc! {r#"
{:?}
\\{}
{}"#,
"a", 'b', 'c'
};
let expected = "\"a\"\n\n \\\\b\nc";
assert_eq!(indoc, expected);
}
#[test]
fn string() {
let indoc = formatdoc! {"
{}
\\{}
{}",
'a', 'b', 'c'
};
let expected = "a\n\n \\b\nc";
assert_eq!(indoc, expected);
}
#[test]
fn string_trailing_newline() {
let indoc = formatdoc! {"
{}
\\{}
{}
",
'a', 'b', 'c'
};
let expected = "a\n\n \\b\nc\n";
assert_eq!(indoc, expected);
}
#[test]
fn trailing_whitespace() {
let indoc = formatdoc! {"
{} {below}
{} {below}
{} {below}
end",
2, 0, -2, below = "below"
};
let expected = "2 below\n \n0 below\n\n-2 below\n\nend";
assert_eq!(indoc, expected);
}