-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest-util.js
232 lines (201 loc) · 8.97 KB
/
test-util.js
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
/* -*- Mode: js; js-indent-level: 2; -*- */
/*
* Copyright 2014 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*/
const libUtil = require("../lib/util");
exports["test normalize()"] = function (assert) {
assert.equal(libUtil.normalize("/.."), "/");
assert.equal(libUtil.normalize("/../"), "/");
assert.equal(libUtil.normalize("/../../../.."), "/");
assert.equal(libUtil.normalize("/../../../../a/b/c"), "/a/b/c");
assert.equal(libUtil.normalize("/a/b/c/../../../d/../../e"), "/e");
assert.equal(libUtil.normalize(".."), "../");
assert.equal(libUtil.normalize("../"), "../");
assert.equal(libUtil.normalize("../../a/"), "../../a/");
assert.equal(libUtil.normalize("a/.."), "");
assert.equal(libUtil.normalize("a/../../.."), "../../");
assert.equal(libUtil.normalize("/."), "/");
assert.equal(libUtil.normalize("/./"), "/");
assert.equal(libUtil.normalize("/./././."), "/");
assert.equal(libUtil.normalize("/././././a/b/c"), "/a/b/c");
assert.equal(libUtil.normalize("/a/b/c/./././d/././e"), "/a/b/c/d/e");
assert.equal(libUtil.normalize(""), "");
assert.equal(libUtil.normalize("."), "");
assert.equal(libUtil.normalize("./"), "");
assert.equal(libUtil.normalize("././a"), "a");
assert.equal(libUtil.normalize("a/./"), "a/");
assert.equal(libUtil.normalize("a/././."), "a/");
assert.equal(libUtil.normalize("/a/b//c////d/////"), "/a/b//c////d/////");
assert.equal(libUtil.normalize("///a/b//c////d/////"), "//a/b//c////d/////");
assert.equal(libUtil.normalize("a/b//c////d"), "a/b//c////d");
assert.equal(libUtil.normalize(".///.././../a/b//./.."), "a/b/");
assert.equal(
libUtil.normalize("http://www.example.com"),
"http://www.example.com/"
);
assert.equal(
libUtil.normalize("http://www.example.com/"),
"http://www.example.com/"
);
assert.equal(
libUtil.normalize("http://www.example.com/./..//a/b/c/.././d//"),
"http://www.example.com//a/b/d//"
);
};
exports["test join()"] = function (assert) {
assert.equal(libUtil.join("a", "b"), "a/b");
assert.equal(libUtil.join("a/", "b"), "a/b");
assert.equal(libUtil.join("a//", "b"), "a//b");
assert.equal(libUtil.join("a", "b/"), "a/b/");
assert.equal(libUtil.join("a", "b//"), "a/b//");
assert.equal(libUtil.join("a/", "/b"), "/b");
assert.equal(libUtil.join("a//", "//b"), "//b/");
assert.equal(libUtil.join("a", ".."), "");
assert.equal(libUtil.join("a", "../b"), "b");
assert.equal(libUtil.join("a/b", "../c"), "a/c");
assert.equal(libUtil.join("a", "."), "a/");
assert.equal(libUtil.join("a", "./b"), "a/b");
assert.equal(libUtil.join("a/b", "./c"), "a/b/c");
assert.equal(
libUtil.join("a", "http://www.example.com"),
"http://www.example.com/"
);
assert.equal(libUtil.join("a", "data:foo,bar"), "data:foo,bar");
assert.equal(libUtil.join("", "b"), "b");
assert.equal(libUtil.join(".", "b"), "b");
assert.equal(libUtil.join("", "b/"), "b/");
assert.equal(libUtil.join(".", "b/"), "b/");
assert.equal(libUtil.join("", "b//"), "b//");
assert.equal(libUtil.join(".", "b//"), "b//");
assert.equal(libUtil.join("", ".."), "../");
assert.equal(libUtil.join(".", ".."), "../");
assert.equal(libUtil.join("", "../b"), "../b");
assert.equal(libUtil.join(".", "../b"), "../b");
assert.equal(libUtil.join("", "."), "");
assert.equal(libUtil.join(".", "."), "");
assert.equal(libUtil.join("", "./b"), "b");
assert.equal(libUtil.join(".", "./b"), "b");
assert.equal(
libUtil.join("", "http://www.example.com"),
"http://www.example.com/"
);
assert.equal(
libUtil.join(".", "http://www.example.com"),
"http://www.example.com/"
);
assert.equal(libUtil.join("", "data:foo,bar"), "data:foo,bar");
assert.equal(libUtil.join(".", "data:foo,bar"), "data:foo,bar");
assert.equal(libUtil.join("..", "b"), "../b");
assert.equal(libUtil.join("..", "b/"), "../b/");
assert.equal(libUtil.join("..", "b//"), "../b//");
assert.equal(libUtil.join("..", ".."), "../../");
assert.equal(libUtil.join("..", "../b"), "../../b");
assert.equal(libUtil.join("..", "."), "../");
assert.equal(libUtil.join("..", "./b"), "../b");
assert.equal(
libUtil.join("..", "http://www.example.com"),
"http://www.example.com/"
);
assert.equal(libUtil.join("..", "data:foo,bar"), "data:foo,bar");
assert.equal(libUtil.join("a", ""), "a/");
assert.equal(libUtil.join("a", "."), "a/");
assert.equal(libUtil.join("a/", ""), "a/");
assert.equal(libUtil.join("a/", "."), "a/");
assert.equal(libUtil.join("a//", ""), "a//");
assert.equal(libUtil.join("a//", "."), "a//");
assert.equal(libUtil.join("/a", ""), "/a/");
assert.equal(libUtil.join("/a", "."), "/a/");
assert.equal(libUtil.join("", ""), "");
assert.equal(libUtil.join(".", ""), "");
assert.equal(libUtil.join(".", ""), "");
assert.equal(libUtil.join(".", "."), "");
assert.equal(libUtil.join("..", ""), "../");
assert.equal(libUtil.join("..", "."), "../");
assert.equal(libUtil.join("http://foo.org/a", ""), "http://foo.org/a/");
assert.equal(libUtil.join("http://foo.org/a", "."), "http://foo.org/a/");
assert.equal(libUtil.join("http://foo.org/a/", ""), "http://foo.org/a/");
assert.equal(libUtil.join("http://foo.org/a/", "."), "http://foo.org/a/");
assert.equal(libUtil.join("http://foo.org/a//", ""), "http://foo.org/a//");
assert.equal(libUtil.join("http://foo.org/a//", "."), "http://foo.org/a//");
assert.equal(libUtil.join("http://foo.org", ""), "http://foo.org/");
assert.equal(libUtil.join("http://foo.org", "."), "http://foo.org/");
assert.equal(libUtil.join("http://foo.org/", ""), "http://foo.org/");
assert.equal(libUtil.join("http://foo.org/", "."), "http://foo.org/");
assert.equal(libUtil.join("http://foo.org//", ""), "http://foo.org//");
assert.equal(libUtil.join("http://foo.org//", "."), "http://foo.org//");
assert.equal(libUtil.join("//www.example.com", ""), "//www.example.com/");
assert.equal(libUtil.join("//www.example.com", "."), "//www.example.com/");
assert.equal(libUtil.join("http://foo.org/a", "b"), "http://foo.org/a/b");
assert.equal(libUtil.join("http://foo.org/a/", "b"), "http://foo.org/a/b");
assert.equal(libUtil.join("http://foo.org/a//", "b"), "http://foo.org/a//b");
assert.equal(libUtil.join("http://foo.org/a", "b/"), "http://foo.org/a/b/");
assert.equal(libUtil.join("http://foo.org/a", "b//"), "http://foo.org/a/b//");
assert.equal(libUtil.join("http://foo.org/a/", "/b"), "http://foo.org/b");
assert.equal(libUtil.join("http://foo.org/a//", "//b"), "http://b/");
assert.equal(libUtil.join("http://foo.org/a", ".."), "http://foo.org/");
assert.equal(libUtil.join("http://foo.org/a", "../b"), "http://foo.org/b");
assert.equal(
libUtil.join("http://foo.org/a/b", "../c"),
"http://foo.org/a/c"
);
assert.equal(libUtil.join("http://foo.org/a", "."), "http://foo.org/a/");
assert.equal(libUtil.join("http://foo.org/a", "./b"), "http://foo.org/a/b");
assert.equal(
libUtil.join("http://foo.org/a/b", "./c"),
"http://foo.org/a/b/c"
);
assert.equal(
libUtil.join("http://foo.org/a", "http://www.example.com"),
"http://www.example.com/"
);
assert.equal(
libUtil.join("http://foo.org/a", "data:foo,bar"),
"data:foo,bar"
);
assert.equal(libUtil.join("http://foo.org", "a"), "http://foo.org/a");
assert.equal(libUtil.join("http://foo.org/", "a"), "http://foo.org/a");
assert.equal(libUtil.join("http://foo.org//", "a"), "http://foo.org//a");
assert.equal(libUtil.join("http://foo.org", "/a"), "http://foo.org/a");
assert.equal(libUtil.join("http://foo.org/", "/a"), "http://foo.org/a");
assert.equal(libUtil.join("http://foo.org//", "/a"), "http://foo.org/a");
assert.equal(
libUtil.join("http://www.example.com", "//foo.org/bar"),
"http://foo.org/bar"
);
assert.equal(
libUtil.join("//www.example.com", "//foo.org/bar"),
"//foo.org/bar"
);
};
// TODO Issue #128: Define and test this function properly.
exports["test relative()"] = function (assert) {
assert.equal(libUtil.relative("/the/root", "/the/root/one.js"), "one.js");
assert.equal(
libUtil.relative("http://the/root", "http://the/root/one.js"),
"one.js"
);
assert.equal(
libUtil.relative("/the/root", "/the/rootone.js"),
"../rootone.js"
);
assert.equal(
libUtil.relative("http://the/root", "http://the/rootone.js"),
"../rootone.js"
);
assert.equal(
libUtil.relative("/the/root", "/therootone.js"),
"../../therootone.js"
);
assert.equal(
libUtil.relative("http://the/root", "/therootone.js"),
"/therootone.js"
);
assert.equal(libUtil.relative("", "/the/root/one.js"), "/the/root/one.js");
assert.equal(libUtil.relative(".", "/the/root/one.js"), "/the/root/one.js");
assert.equal(libUtil.relative("", "the/root/one.js"), "the/root/one.js");
assert.equal(libUtil.relative(".", "the/root/one.js"), "the/root/one.js");
assert.equal(libUtil.relative("/", "/the/root/one.js"), "the/root/one.js");
assert.equal(libUtil.relative("/", "the/root/one.js"), "the/root/one.js");
};