This repository was archived by the owner on Mar 16, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcss.spec.ts
More file actions
85 lines (83 loc) · 3.39 KB
/
Copy pathcss.spec.ts
File metadata and controls
85 lines (83 loc) · 3.39 KB
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
76
77
78
79
80
81
82
83
84
85
import { describe, expect, it } from '@jest/globals';
import { escapeCSS } from './css.js';
describe('escapeCSS', () => {
describe('If the character is NULL (U+0000)', () => {
it('the REPLACEMENT CHARACTER (U+FFFD)', () => {
expect(escapeCSS('\0')).toBe('\uFFFD');
expect(escapeCSS('abc\0')).toBe('abc\uFFFD');
});
});
describe('If the character is in the range [\\1-\\1f] (U+0001 to U+001F) or is U+007F', () => {
it('the character escaped as code point', () => {
expect(escapeCSS('\u0001abc\u007f')).toBe('\\1 abc\\7f ');
expect(escapeCSS('\u001fabc\u007f')).toBe('\\1f abc\\7f ');
});
});
describe('If the character is the first character and is in the range [0-9] (U+0030 to U+0039)', () => {
it('the character escaped as code point', () => {
expect(escapeCSS('0abc1')).toBe('\\30 abc1');
expect(escapeCSS('9abc1')).toBe('\\39 abc1');
});
});
describe('If the character is the second character and is in the range [0-9] (U+0030 to U+0039)', () => {
it('the character escaped as code point', () => {
expect(escapeCSS('-000')).toBe('-\\30 00');
expect(escapeCSS('-999')).toBe('-\\39 99');
});
});
describe('If the character is the first character and is a "-" (U+002D), and there is no second character', () => {
it('the escaped character', () => {
expect(escapeCSS('-')).toBe('\\-');
});
});
describe('If the character is greater than or equal to U+0080', () => {
it('the character itself', () => {
expect(escapeCSS('\u0080')).toBe('\u0080');
expect(escapeCSS('\u0080abc')).toBe('\u0080abc');
expect(escapeCSS('abc\u0080')).toBe('abc\u0080');
expect(escapeCSS('\u0081')).toBe('\u0081');
expect(escapeCSS('\u0081abc')).toBe('\u0081abc');
expect(escapeCSS('abc\u0081')).toBe('abc\u0081');
});
});
describe('If the character is "-" (U+002D) or "_" (U+005F)', () => {
it('the character itself', () => {
expect(escapeCSS('-abc')).toBe('-abc');
expect(escapeCSS('-ABC12')).toBe('-ABC12');
expect(escapeCSS('abc-')).toBe('abc-');
expect(escapeCSS('abc_')).toBe('abc_');
expect(escapeCSS('_abc')).toBe('_abc');
expect(escapeCSS('_123')).toBe('_123');
expect(escapeCSS('_')).toBe('_');
});
});
describe('If the character is punctuation', () => {
it('the escaped character', () => {
expect(escapeCSS(' ')).toBe('\\ ');
expect(escapeCSS('!')).toBe('\\!');
expect(escapeCSS('"')).toBe('\\"');
expect(escapeCSS('#')).toBe('\\#');
expect(escapeCSS('$')).toBe('\\$');
expect(escapeCSS('%')).toBe('\\%');
expect(escapeCSS('&')).toBe('\\&');
expect(escapeCSS("'")).toBe("\\'");
expect(escapeCSS('(')).toBe('\\(');
expect(escapeCSS(')')).toBe('\\)');
expect(escapeCSS('*')).toBe('\\*');
expect(escapeCSS('+')).toBe('\\+');
expect(escapeCSS(',')).toBe('\\,');
expect(escapeCSS('.')).toBe('\\.');
expect(escapeCSS('/')).toBe('\\/');
expect(escapeCSS(':')).toBe('\\:');
expect(escapeCSS('@')).toBe('\\@');
expect(escapeCSS('[')).toBe('\\[');
expect(escapeCSS(']')).toBe('\\]');
expect(escapeCSS('^')).toBe('\\^');
expect(escapeCSS('`')).toBe('\\`');
expect(escapeCSS('{')).toBe('\\{');
expect(escapeCSS('|')).toBe('\\|');
expect(escapeCSS('}')).toBe('\\}');
expect(escapeCSS('~')).toBe('\\~');
});
});
});