-
Notifications
You must be signed in to change notification settings - Fork 1
/
detectURL.test.ts
120 lines (119 loc) · 3.18 KB
/
detectURL.test.ts
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import { detectURL } from "./detectURL.ts";
import { assert, assertEquals } from "./deps/testing.ts";
Deno.test("Absolute Path", async (t) => {
{
const text = "https://example.com/test.css";
await t.step(text, () => {
const url = detectURL(text);
assert(url instanceof URL);
if (url instanceof URL) assertEquals(url.href, text);
});
}
{
const text = ".div { display: block; }";
await t.step(text, () => {
const url = detectURL(text);
assert(!(url instanceof URL));
assertEquals(url, text);
});
}
{
const text = "./test.css";
await t.step(text, () => {
const url = detectURL(text);
assert(!(url instanceof URL));
assertEquals(url, text);
});
}
});
Deno.test("Relative Path", async (t) => {
const base = "https://example.com/foo/bar/baz";
{
const text = "https://example.com/test.css";
await t.step(text, () => {
const url = detectURL(text, base);
assert(url instanceof URL);
if (url instanceof URL) assertEquals(url.href, text);
});
}
{
const text = ".div { display: block; }";
await t.step(text, () => {
const url = detectURL(text, base);
assert(!(url instanceof URL));
assertEquals(url, text);
});
}
{
const text = "#editor { display: block; }";
await t.step(text, () => {
const url = detectURL(text, base);
assert(!(url instanceof URL));
assertEquals(url, text);
});
}
{
const text = "#editor { background: url('../../image.png'); }";
await t.step(text, () => {
const url = detectURL(text, base);
assert(!(url instanceof URL));
assertEquals(url, text);
});
}
{
const text = "#editor { background: url('./image.png'); }";
await t.step(text, () => {
const url = detectURL(text, base);
assert(!(url instanceof URL));
assertEquals(url, text);
});
}
{
const text = "#editor { background: url('/image.png'); }";
await t.step(text, () => {
const url = detectURL(text, base);
assert(!(url instanceof URL));
assertEquals(url, text);
});
}
{
const text = "./test.css";
await t.step(text, () => {
const url = detectURL(text, base);
assert(url instanceof URL);
assertEquals(url.href, "https://example.com/foo/bar/test.css");
});
}
{
const text = "../test.css";
await t.step(text, () => {
const url = detectURL(text, base);
assert(url instanceof URL);
assertEquals(url.href, "https://example.com/foo/test.css");
});
}
{
const text = "../../hoge/test.css";
await t.step(text, () => {
const url = detectURL(text, base);
assert(url instanceof URL);
assertEquals(url.href, "https://example.com/hoge/test.css");
});
}
{
const text = "/test.css";
await t.step(text, () => {
const url = detectURL(text, base);
assert(url instanceof URL);
assertEquals(url.href, "https://example.com/test.css");
});
}
{
const text = "//test.com/test.css";
await t.step(text, () => {
const url = detectURL(text, base);
assert(url instanceof URL);
assertEquals(url.href, "https://test.com/test.css");
});
}
});