File: tests.rs

package info (click to toggle)
rustc-web 1.78.0%2Bdfsg1-2~deb12u3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,245,420 kB
  • sloc: xml: 147,985; javascript: 18,022; sh: 11,083; python: 10,265; ansic: 6,172; cpp: 5,023; asm: 4,390; makefile: 4,269
file content (51 lines) | stat: -rw-r--r-- 1,182 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#[test]
fn smoke() {
    let mut buf = String::new();

    {
        let mut obj = write_json::object(&mut buf);
        obj.string("name", "Peter").number("favorite number", 92.0);
        obj.array("films")
            .string("Drowning By Numbers")
            .string("A Zed & Two Noughts");
        obj.null("suitcase");
    }

    assert_eq!(
        buf,
        r#"{"name":"Peter","favorite number":92,"films":["Drowning By Numbers","A Zed & Two Noughts"],"suitcase":null}"#
    )
}

#[test]
fn string_escaping() {
    let mut buf = String::new();
    {
        write_json::array(&mut buf)
            .string("")
            .string("'")
            .string("\"")
            .string("\\")
            .string("hello world")
            .string(" \r\n\t\\ \\r\\n\\t")
            .string("❤😂")
            .string("\x00\x07\x1F\x20\x7E\x7F\u{80}\u{9f}!")
            .string("\x7F!")
            .string("Ċ");
    }
    let strings = buf.replace(|c: char| "[],".contains(c), "\n");
    let expected = r#"
""
"'"
"\""
"\\"
"hello world"
" \r\n\t\\ \\r\\n\\t"
"❤😂"
"\u0000\u0007\u001F ~\u007F\u0080\u009F!"
"\u007F!"
"Ċ"
"#;

    assert_eq!(strings, expected);
}