Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80765 views
1
/* -*- Mode: js; js-indent-level: 2; -*- */
2
/*
3
* Copyright 2014 Mozilla Foundation and contributors
4
* Licensed under the New BSD license. See LICENSE or:
5
* http://opensource.org/licenses/BSD-3-Clause
6
*/
7
if (typeof define !== 'function') {
8
var define = require('amdefine')(module, require);
9
}
10
define(function (require, exports, module) {
11
12
var libUtil = require('../../lib/source-map/util');
13
14
exports['test urls'] = function (assert, util) {
15
var assertUrl = function (url) {
16
assert.equal(url, libUtil.urlGenerate(libUtil.urlParse(url)));
17
};
18
assertUrl('http://');
19
assertUrl('http://www.example.com');
20
assertUrl('http://user:[email protected]');
21
assertUrl('http://www.example.com:80');
22
assertUrl('http://www.example.com/');
23
assertUrl('http://www.example.com/foo/bar');
24
assertUrl('http://www.example.com/foo/bar/');
25
assertUrl('http://user:[email protected]:80/foo/bar/');
26
27
assertUrl('//');
28
assertUrl('//www.example.com');
29
assertUrl('file:///www.example.com');
30
31
assert.equal(libUtil.urlParse('a//b'), null);
32
};
33
34
exports['test normalize()'] = function (assert, util) {
35
assert.equal(libUtil.normalize('/..'), '/');
36
assert.equal(libUtil.normalize('/../'), '/');
37
assert.equal(libUtil.normalize('/../../../..'), '/');
38
assert.equal(libUtil.normalize('/../../../../a/b/c'), '/a/b/c');
39
assert.equal(libUtil.normalize('/a/b/c/../../../d/../../e'), '/e');
40
41
assert.equal(libUtil.normalize('..'), '..');
42
assert.equal(libUtil.normalize('../'), '../');
43
assert.equal(libUtil.normalize('../../a/'), '../../a/');
44
assert.equal(libUtil.normalize('a/..'), '.');
45
assert.equal(libUtil.normalize('a/../../..'), '../..');
46
47
assert.equal(libUtil.normalize('/.'), '/');
48
assert.equal(libUtil.normalize('/./'), '/');
49
assert.equal(libUtil.normalize('/./././.'), '/');
50
assert.equal(libUtil.normalize('/././././a/b/c'), '/a/b/c');
51
assert.equal(libUtil.normalize('/a/b/c/./././d/././e'), '/a/b/c/d/e');
52
53
assert.equal(libUtil.normalize('.'), '.');
54
assert.equal(libUtil.normalize('./'), '.');
55
assert.equal(libUtil.normalize('././a'), 'a');
56
assert.equal(libUtil.normalize('a/./'), 'a/');
57
assert.equal(libUtil.normalize('a/././.'), 'a');
58
59
assert.equal(libUtil.normalize('/a/b//c////d/////'), '/a/b/c/d/');
60
assert.equal(libUtil.normalize('///a/b//c////d/////'), '///a/b/c/d/');
61
assert.equal(libUtil.normalize('a/b//c////d'), 'a/b/c/d');
62
63
assert.equal(libUtil.normalize('.///.././../a/b//./..'), '../../a')
64
65
assert.equal(libUtil.normalize('http://www.example.com'), 'http://www.example.com');
66
assert.equal(libUtil.normalize('http://www.example.com/'), 'http://www.example.com/');
67
assert.equal(libUtil.normalize('http://www.example.com/./..//a/b/c/.././d//'), 'http://www.example.com/a/b/d/');
68
};
69
70
exports['test join()'] = function (assert, util) {
71
assert.equal(libUtil.join('a', 'b'), 'a/b');
72
assert.equal(libUtil.join('a/', 'b'), 'a/b');
73
assert.equal(libUtil.join('a//', 'b'), 'a/b');
74
assert.equal(libUtil.join('a', 'b/'), 'a/b/');
75
assert.equal(libUtil.join('a', 'b//'), 'a/b/');
76
assert.equal(libUtil.join('a/', '/b'), '/b');
77
assert.equal(libUtil.join('a//', '//b'), '//b');
78
79
assert.equal(libUtil.join('a', '..'), '.');
80
assert.equal(libUtil.join('a', '../b'), 'b');
81
assert.equal(libUtil.join('a/b', '../c'), 'a/c');
82
83
assert.equal(libUtil.join('a', '.'), 'a');
84
assert.equal(libUtil.join('a', './b'), 'a/b');
85
assert.equal(libUtil.join('a/b', './c'), 'a/b/c');
86
87
assert.equal(libUtil.join('a', 'http://www.example.com'), 'http://www.example.com');
88
assert.equal(libUtil.join('a', 'data:foo,bar'), 'data:foo,bar');
89
90
91
assert.equal(libUtil.join('http://foo.org/a', 'b'), 'http://foo.org/a/b');
92
assert.equal(libUtil.join('http://foo.org/a/', 'b'), 'http://foo.org/a/b');
93
assert.equal(libUtil.join('http://foo.org/a//', 'b'), 'http://foo.org/a/b');
94
assert.equal(libUtil.join('http://foo.org/a', 'b/'), 'http://foo.org/a/b/');
95
assert.equal(libUtil.join('http://foo.org/a', 'b//'), 'http://foo.org/a/b/');
96
assert.equal(libUtil.join('http://foo.org/a/', '/b'), 'http://foo.org/b');
97
assert.equal(libUtil.join('http://foo.org/a//', '//b'), 'http://b');
98
99
assert.equal(libUtil.join('http://foo.org/a', '..'), 'http://foo.org/');
100
assert.equal(libUtil.join('http://foo.org/a', '../b'), 'http://foo.org/b');
101
assert.equal(libUtil.join('http://foo.org/a/b', '../c'), 'http://foo.org/a/c');
102
103
assert.equal(libUtil.join('http://foo.org/a', '.'), 'http://foo.org/a');
104
assert.equal(libUtil.join('http://foo.org/a', './b'), 'http://foo.org/a/b');
105
assert.equal(libUtil.join('http://foo.org/a/b', './c'), 'http://foo.org/a/b/c');
106
107
assert.equal(libUtil.join('http://foo.org/a', 'http://www.example.com'), 'http://www.example.com');
108
assert.equal(libUtil.join('http://foo.org/a', 'data:foo,bar'), 'data:foo,bar');
109
110
111
assert.equal(libUtil.join('http://foo.org', 'a'), 'http://foo.org/a');
112
assert.equal(libUtil.join('http://foo.org/', 'a'), 'http://foo.org/a');
113
assert.equal(libUtil.join('http://foo.org//', 'a'), 'http://foo.org/a');
114
assert.equal(libUtil.join('http://foo.org', '/a'), 'http://foo.org/a');
115
assert.equal(libUtil.join('http://foo.org/', '/a'), 'http://foo.org/a');
116
assert.equal(libUtil.join('http://foo.org//', '/a'), 'http://foo.org/a');
117
118
119
assert.equal(libUtil.join('http://', 'www.example.com'), 'http://www.example.com');
120
assert.equal(libUtil.join('file:///', 'www.example.com'), 'file:///www.example.com');
121
assert.equal(libUtil.join('http://', 'ftp://example.com'), 'ftp://example.com');
122
123
assert.equal(libUtil.join('http://www.example.com', '//foo.org/bar'), 'http://foo.org/bar');
124
assert.equal(libUtil.join('//www.example.com', '//foo.org/bar'), '//foo.org/bar');
125
};
126
127
});
128
129