-
Notifications
You must be signed in to change notification settings - Fork 5.2k
/
routepolicy_tests.js
71 lines (59 loc) · 2.03 KB
/
routepolicy_tests.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
Tinytest.add("routepolicy - declare", function (test) {
var policy = new Meteor.__RoutePolicyConstructor();
policy.declare('/sockjs/', 'network');
policy.declare('/bigphoto.jpg', 'static-online');
policy.declare('/anotherphoto.png', 'static-online');
test.equal(policy.classify('/'), null);
test.equal(policy.classify('/foo'), null);
test.equal(policy.classify('/sockjs'), null);
test.equal(policy.classify('/sockjs/'), 'network');
test.equal(policy.classify('/sockjs/foo'), 'network');
test.equal(policy.classify('/bigphoto.jpg'), 'static-online');
test.equal(policy.classify('/bigphoto.jpg.orig'), 'static-online');
test.equal(policy.urlPrefixesFor('network'), ['/sockjs/']);
test.equal(
policy.urlPrefixesFor('static-online'),
['/anotherphoto.png', '/bigphoto.jpg']
);
});
Tinytest.add("routepolicy - static conflicts", function (test) {
var manifest = [
{
"path": "static/sockjs/socks-are-comfy.jpg",
"type": "static",
"where": "client",
"url": "/sockjs/socks-are-comfy.jpg"
},
{
"path": "static/bigphoto.jpg",
"type": "static",
"where": "client",
"url": "/bigphoto.jpg"
}
];
var policy = new Meteor.__RoutePolicyConstructor();
test.equal(
policy.checkForConflictWithStatic('/sockjs/', 'network', manifest),
"static resource /sockjs/socks-are-comfy.jpg conflicts with network route /sockjs/"
);
test.equal(
policy.checkForConflictWithStatic('/bigphoto.jpg', 'static-online', manifest),
null
);
});
Tinytest.add("routepolicy - checkUrlPrefix", function (test) {
var policy = new Meteor.__RoutePolicyConstructor();
policy.declare('/sockjs/', 'network');
test.equal(
policy.checkUrlPrefix('foo/bar', 'network'),
"a route URL prefix must begin with a slash"
);
test.equal(
policy.checkUrlPrefix('/', 'network'),
"a route URL prefix cannot be /"
);
test.equal(
policy.checkUrlPrefix('/sockjs/', 'static-online'),
"the route URL prefix /sockjs/ has already been declared to be of type network"
);
});