aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/script/headers.rs
blob: 530559af7ffc49e7b94e0394cd466052faa55898 (plain) (blame)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/* 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 script::test::{ByteString, normalize_value};

#[test]
fn test_normalize_empty_bytestring() {
    // empty ByteString test
    let empty_bytestring = ByteString::new(vec![]);
    let actual = normalize_value(empty_bytestring);
    let expected = ByteString::new(vec![]);
    assert_eq!(actual, expected);
}

#[test]
fn test_normalize_all_whitespace_bytestring() {
    // All whitespace test. A horizontal tab, a line feed, a carriage return , and a space
    let all_whitespace_bytestring = ByteString::new(vec![b'\t', b'\n', b'\r', b' ']);
    let actual = normalize_value(all_whitespace_bytestring);
    let expected = ByteString::new(vec![]);
    assert_eq!(actual, expected);
}

#[test]
fn test_normalize_non_empty_no_whitespace_bytestring() {
    // Non-empty, no whitespace ByteString test
    let no_whitespace_bytestring = ByteString::new(vec![b'S', b'!']);
    let actual = normalize_value(no_whitespace_bytestring);
    let expected = ByteString::new(vec![b'S', b'!']);
    assert_eq!(actual, expected);
}

#[test]
fn test_normalize_non_empty_leading_whitespace_bytestring() {
    // Non-empty, leading whitespace, no trailing whitespace ByteString test
    let leading_whitespace_bytestring =
        ByteString::new(vec![b'\t', b'\n', b' ', b'\r', b'S', b'!']);
    let actual = normalize_value(leading_whitespace_bytestring);
    let expected = ByteString::new(vec![b'S', b'!']);
    assert_eq!(actual, expected);
}

#[test]
fn test_normalize_non_empty_no_leading_whitespace_trailing_whitespace_bytestring() {
    // Non-empty, no leading whitespace, but with trailing whitespace ByteString test
    let trailing_whitespace_bytestring =
        ByteString::new(vec![b'S', b'!', b'\t', b'\n', b' ', b'\r']);
    let actual = normalize_value(trailing_whitespace_bytestring);
    let expected = ByteString::new(vec![b'S', b'!']);
    assert_eq!(actual, expected);
}

#[test]
fn test_normalize_non_empty_leading_and_trailing_whitespace_bytestring() {
    // Non-empty, leading whitespace, and trailing whitespace ByteString test
    let whitespace_sandwich_bytestring = ByteString::new(vec![
        b'\t', b'\n', b' ', b'\r', b'S', b'!', b'\t', b'\n', b' ', b'\r',
    ]);
    let actual = normalize_value(whitespace_sandwich_bytestring);
    let expected = ByteString::new(vec![b'S', b'!']);
    assert_eq!(actual, expected);
}

#[test]
fn test_normalize_non_empty_leading_trailing_and_internal_whitespace_bytestring() {
    // Non-empty, leading whitespace, trailing whitespace,
    // and internal whitespace ByteString test
    let whitespace_bigmac_bytestring = ByteString::new(vec![
        b'\t', b'\n', b' ', b'\r', b'S', b'\t', b'\n', b' ', b'\r', b'!', b'\t', b'\n', b' ', b'\r',
    ]);
    let actual = normalize_value(whitespace_bigmac_bytestring);
    let expected = ByteString::new(vec![b'S', b'\t', b'\n', b' ', b'\r', b'!']);
    assert_eq!(actual, expected);
}