Sebastian Thielthanks clippy04cfa634 years agoHistory
93 lines · 2.4 KB · Rust
RawDownload
use std::borrow::Cow; use git_config::value::normalize_bstr; use crate::file::cow_str; #[test]fn not_modified_is_borrowed() {    let cow = normalize_bstr("hello world");    assert_eq!(cow, cow_str("hello world"));    assert!(matches!(cow, Cow::Borrowed(_)));} #[test]fn modified_is_owned() {    let cow = normalize_bstr("hello \"world\"");    assert_eq!(cow, cow_str("hello world"));    assert!(matches!(cow, Cow::Owned(_)));} #[test]fn empty_quotes_are_zero_copy() {    let cow = normalize_bstr("\"\"");    assert_eq!(cow, cow_str(""));    assert!(matches!(cow, Cow::Borrowed(_)));} #[test]fn all_quoted_is_optimized() {    let cow = normalize_bstr("\"hello world\"");    assert_eq!(cow, cow_str("hello world"));    assert!(matches!(cow, Cow::Borrowed(_)));} #[test]fn all_quote_optimization_is_correct() {    let cow = normalize_bstr(r#""hello" world\""#);    assert_eq!(cow, cow_str("hello world\""));    assert!(matches!(cow, Cow::Owned(_)));} #[test]fn quotes_right_next_to_each_other() {    let cow = normalize_bstr("\"hello\"\" world\"");    assert_eq!(cow, cow_str("hello world").clone());    assert!(matches!(cow, Cow::Owned(_)));} #[test]fn escaped_quotes_are_kept() {    let cow = normalize_bstr(r#""hello \"\" world""#);    assert_eq!(cow, cow_str("hello \"\" world").clone(),);    assert!(matches!(cow, Cow::Owned(_)));} #[test]fn empty_string() {    let cow = normalize_bstr("");    assert_eq!(cow, cow_str(""));    assert!(matches!(cow, Cow::Borrowed(_)));} #[test]fn inner_quotes_are_removed() {    assert_eq!(normalize_bstr(r#"5"hello world""#), cow_str("5hello world"));    assert_eq!(normalize_bstr(r#"true"""#), cow_str("true"));    assert_eq!(normalize_bstr(r#"fa"lse""#), cow_str("false"));} #[test]fn newline_tab_backspace_are_escapable() {    assert_eq!(normalize_bstr(r#"\n\ta\b"#), cow_str("\n\t"));} #[test]fn tabs_are_not_resolved_to_spaces_unlike_what_git_does() {    assert_eq!(normalize_bstr("\t"), cow_str("\t"));} #[test]fn other_escapes_are_ignored_entirely() {    assert_eq!(        normalize_bstr(r#"\x"#),        cow_str("x"),        "however, these would cause failure on parsing level so we ignore it similar to subsections"    );    assert_eq!(normalize_bstr(r#""\x""#), cow_str("x"), "same if within quotes");    assert_eq!(        normalize_bstr(r#""\"#),        cow_str(""),        "freestanding escapes are ignored as well"    );}