forked from senchalabs/connect
-
Notifications
You must be signed in to change notification settings - Fork 1
/
static.test.js
87 lines (76 loc) · 3.12 KB
/
static.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
/**
* Module dependencies.
*/
var connect = require('connect'),
helpers = require('./helpers'),
assert = require('assert'),
http = require('http');
/**
* Path to ./test/fixtures/
*/
var fixturesPath = __dirname + '/fixtures';
module.exports = {
'test valid file': function(){
var server = helpers.run(
connect.staticProvider(fixturesPath)
);
var req = server.request('GET', '/user.json');
req.buffer = true;
req.addListener('response', function(res){
res.addListener('end', function(){
var headers = res.headers,
body = '{\n "name": "tj",\n "email": "tj@sencha.com"\n}';
assert.equal(200, res.statusCode, 'Test static with valid file status code');
assert.equal(body, res.body, 'Test static with valid file response body');
assert.equal('application/json', headers['content-type'], 'Test static with valid file Content-Type');
assert.equal(body.length, headers['content-length'], 'Test static with valid file Content-Length');
assert.ok(headers['last-modified'], 'Test static with valid file Last-Modified');
assert.ok(headers['cache-control'] == 'public max-age=31536000', 'Test static with valid file Cache-Control');
});
});
req.end();
},
'test configurable cache-control': function(){
var server = helpers.run(
connect.staticProvider({ root: fixturesPath, maxAge: 60000 })
);
var req = server.request('GET', '/user.json');
req.buffer = true;
req.addListener('response', function(res){
res.addListener('end', function(){
assert.ok(res.headers['cache-control'] == 'public max-age=60000', 'Test configurable Cache-Control support');
});
});
req.end();
},
'test urlencoded': function(){
var server = helpers.run(
connect.staticProvider({ root: fixturesPath })
);
server.assertResponse('GET', '/some%20text.txt', 200, 'whoop', 'Test urlencoded path');
},
'test index.html support': function(){
var server = helpers.run(
connect.staticProvider({ root: fixturesPath })
);
server.assertResponse('GET', '/', 200, '<p>Wahoo!</p>', 'Test static index.html support.');
},
'test index.html support when missing': function(){
var server = helpers.run(
connect.staticProvider({ root: __dirname })
);
server.assertResponse('GET', '/', 404, 'Cannot GET /', 'Test static index.html support when missing.');
},
'test invalid file': function(){
var server = helpers.run(
connect.staticProvider({ root: fixturesPath })
);
server.assertResponse('GET', '/foo.json', 404, 'Cannot GET /foo.json', 'Test invalid static file.');
},
'test directory': function(){
var server = helpers.run(
connect.staticProvider({ root: __dirname })
);
server.assertResponse('GET', '/fixtures', 404, 'Cannot GET /fixtures');
}
}