This repository has been archived by the owner on Dec 14, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathtest.js
123 lines (91 loc) · 3.21 KB
/
test.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
var CacheBreaker = require('./');
var assert = require('assert');
var format = require('util').format;
var checksum = require('checksum');
const Vinyl = require('vinyl');
var fs = require('fs');
var path = require('path');
it('break the cache as is appropriate', function(done) {
var cb = new CacheBreaker();
var s = cb.gulpCbPath('fixture/');
var fixturePath = __dirname + '/fixture/fixture.html';
var cs = checksum(fs.readFileSync(__dirname + '/fixture/fixture.js')).substring(0, 10);
s.on('data', function(file) {
var fc = file.contents.toString();
assert(fc.indexOf(format('<script src="fixture.%s.js"></script>', cs)) !== -1);
assert(fc.indexOf(format('<script src="/fixture.%s.js"></script>', cs)) !== -1);
assert(fc.indexOf('<script src="/do/not/cache-break.js"></script>') !== -1);
assert.equal(file.relative, 'fixture.html');
});
s.on('end', done);
s.write(new Vinyl({
cwd: __dirname,
base: __dirname + '/fixture',
path: fixturePath,
contents: fs.readFileSync(fixturePath)
}));
s.end();
});
it('sets the CDN URI', function(done) {
var cb = new CacheBreaker();
var s = cb.gulpCdnUri('fixture/', 'foo.cloudfront.net');
var fixturePath = __dirname + '/fixture/fixture.html';
var cs = checksum(fs.readFileSync(__dirname + '/fixture/fixture.js')).substring(0, 10);
s.on('data', function(file) {
var fc = file.contents.toString();
assert(fc.indexOf(format('<script src="https://foo.cloudfront.net/fixture.%s.js"></script>', cs)) !== -1);
assert.equal(file.relative, 'fixture.html');
});
s.on('end', done);
s.write(new Vinyl({
cwd: __dirname,
base: __dirname + '/fixture',
path: fixturePath,
contents: fs.readFileSync(fixturePath)
}));
s.end();
});
it('sets the insecure CDN URI', function(done) {
var cb = new CacheBreaker();
var s = cb.gulpCdnUri('fixture/', 'foo.cloudfront.net', false);
var fixturePath = __dirname + '/fixture/fixture.html';
var cs = checksum(fs.readFileSync(__dirname + '/fixture/fixture.js')).substring(0, 10);
s.on('data', function(file) {
var fc = file.contents.toString();
assert(fc.indexOf(format('<script src="http://foo.cloudfront.net/fixture.%s.js"></script>', cs)) !== -1);
assert.equal(file.relative, 'fixture.html');
});
s.on('end', done);
s.write(new Vinyl({
cwd: __dirname,
base: __dirname + '/fixture',
path: fixturePath,
contents: fs.readFileSync(fixturePath)
}));
s.end();
});
it('symlinks', function(done) {
var cb = new CacheBreaker();
var s = cb.gulpCbPath('fixture/');
var fixturePath = __dirname + '/fixture/fixture.html';
var cs = checksum(fs.readFileSync(__dirname + '/fixture/fixture.js')).substring(0, 10);
s.on('data', function() {});
s.on('end', function() {
cb.symlinkCbPaths();
var symlink = path.resolve('fixture', format('fixture.%s.js', cs));
try {
var realpath = fs.realpathSync(symlink);
assert.equal(path.resolve('fixture', 'fixture.js'), realpath);
done();
} finally {
try { fs.unlinkSync(symlink); } catch (e) { }
}
});
s.write(new Vinyl({
cwd: __dirname,
base: __dirname + '/fixture',
path: fixturePath,
contents: fs.readFileSync(fixturePath)
}));
s.end();
});