summaryrefslogtreecommitdiffstats
path: root/servo/tests/unit/style/str.rs
blob: 9445ce167cc586d878060fdc8c3bd078a9cfcf86 (plain)
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
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */

use style::str::{split_html_space_chars, starts_with_ignore_ascii_case, str_join};

#[test]
pub fn split_html_space_chars_whitespace() {
    assert!(split_html_space_chars("").collect::<Vec<_>>().is_empty());
    assert!(
        split_html_space_chars("\u{0020}\u{0009}\u{000a}\u{000c}\u{000d}")
            .collect::<Vec<_>>()
            .is_empty()
    );
}

#[test]
pub fn test_str_join_empty() {
    let slice: [&str; 0] = [];
    let actual = str_join(&slice, "-");
    let expected = "";
    assert_eq!(actual, expected);
}

#[test]
pub fn test_str_join_one() {
    let slice = ["alpha"];
    let actual = str_join(&slice, "-");
    let expected = "alpha";
    assert_eq!(actual, expected);
}

#[test]
pub fn test_str_join_many() {
    let slice = ["", "alpha", "", "beta", "gamma", ""];
    let actual = str_join(&slice, "-");
    let expected = "-alpha--beta-gamma-";
    assert_eq!(actual, expected);
}

#[test]
pub fn test_starts_with_ignore_ascii_case_basic() {
    assert!(starts_with_ignore_ascii_case("-webkit-", "-webkit-"));
    assert!(starts_with_ignore_ascii_case("-webkit-foo", "-webkit-"));
}

#[test]
pub fn test_starts_with_ignore_ascii_case_char_boundary() {
    assert!(!starts_with_ignore_ascii_case("aaaaa💩", "-webkit-"));
}