mirror of
https://github.com/bodyrep/DemoApp.git
synced 2026-01-27 07:31:38 +00:00
little css
This commit is contained in:
203
node_modules/gzippo/test/test-static.js
generated
vendored
Normal file
203
node_modules/gzippo/test/test-static.js
generated
vendored
Normal file
@@ -0,0 +1,203 @@
|
||||
var assert = require('assert')
|
||||
, fs = require('fs')
|
||||
, express = require('express')
|
||||
, join = require('path').join
|
||||
, gzippo = require('../')
|
||||
;
|
||||
|
||||
var fixtures = join(__dirname, 'fixtures')
|
||||
, port = 32123
|
||||
, app
|
||||
, request = require('./request')({ port: port })
|
||||
;
|
||||
|
||||
// builds a `request` callback which asserts that the response's statusCode is
|
||||
// what we expect
|
||||
function statusCode(expected, callback) {
|
||||
return function(err, res, data) {
|
||||
if (err) throw err;
|
||||
assert.equal(res.statusCode, expected);
|
||||
|
||||
callback();
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
// read a fixture file synchronously
|
||||
function file(name) {
|
||||
return fs.readFileSync(join(fixtures, name));
|
||||
}
|
||||
|
||||
|
||||
describe('gzippo.staticGzip', function() {
|
||||
|
||||
app = express();
|
||||
app.use(gzippo.staticGzip(fixtures));
|
||||
app.use(app.router);
|
||||
app.listen(port);
|
||||
|
||||
// set up a new server for each test
|
||||
// beforeEach(function(done) {
|
||||
// });
|
||||
|
||||
// afterEach(function() {
|
||||
// app.exit();
|
||||
// });
|
||||
|
||||
|
||||
it('should gzip static .json file', function(done) {
|
||||
request('/user.json', { 'Accept-Encoding': 'gzip' },
|
||||
function(err, res, data) {
|
||||
if (err) throw err;
|
||||
assert.equal(res.statusCode, 200);
|
||||
assert.equal(res.headers['content-type'], 'application/json; charset=UTF-8');
|
||||
assert.equal(data.length, '69');
|
||||
assert.equal(res.headers['content-encoding'], 'gzip');
|
||||
|
||||
assert.deepEqual(data, file('user.gzip'));
|
||||
|
||||
done();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
// it('should get a route', function(done) {
|
||||
// request('/', { },
|
||||
// function(err, res, data) {
|
||||
// console.log(data.toString());
|
||||
// if (err) throw err;
|
||||
// assert.equal(res.statusCode, 200);
|
||||
|
||||
// assert.deepEqual(data, 'ok');
|
||||
|
||||
// done();
|
||||
// }
|
||||
// );
|
||||
// });
|
||||
|
||||
it('should gzip static .js file', function(done) {
|
||||
request('/test.js', { 'Accept-Encoding': 'gzip' },
|
||||
function(err, res, data) {
|
||||
if (err) throw err;
|
||||
assert.equal(res.statusCode, 200);
|
||||
|
||||
assert.equal(res.headers['content-type'], 'application/javascript; charset=UTF-8');
|
||||
assert.equal(data.length, '35');
|
||||
assert.equal(res.headers['content-encoding'], 'gzip');
|
||||
|
||||
assert.deepEqual(data, file('test.js.gzip'));
|
||||
|
||||
done();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
it('should serve a .js file uncompressed when the accept-encoding header has not been set', function(done) {
|
||||
request('/test.js', {}, function(err, res, data) {
|
||||
if (err) throw err;
|
||||
assert.equal(res.statusCode, 200);
|
||||
assert.equal(data.length, '15');
|
||||
assert.deepEqual(data, file('test.js'));
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
it('should successfully gzip a utf-8 file', function(done) {
|
||||
request('/utf8.txt', { 'Accept-Encoding': 'gzip' },
|
||||
function(err, res, data) {
|
||||
if (err) throw err;
|
||||
assert.equal(res.statusCode, 200);
|
||||
|
||||
assert.equal(res.headers['content-type'], 'text/plain; charset=UTF-8');
|
||||
assert.equal(data.length, '2031');
|
||||
assert.equal(res.headers['content-encoding'], 'gzip');
|
||||
|
||||
assert.deepEqual(data, file('utf8.txt.gz'));
|
||||
|
||||
done();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
it('should cache a previously gzipped utf-8 file (and respond with a 304 Not Modified)', function(done) {
|
||||
request('/utf8.txt', { 'Accept-Encoding': 'gzip' },
|
||||
function(err, res, data) {
|
||||
if (err) throw err;
|
||||
assert.equal(res.statusCode, 200);
|
||||
|
||||
var headers = {
|
||||
'Accept-Encoding': 'gzip',
|
||||
'If-Modified-Since': res.headers['last-modified']
|
||||
};
|
||||
|
||||
request('/utf8.txt', headers, statusCode(304, done));
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
it('should set max age resources which are passed to the default static content provider', function(done) {
|
||||
request('/tomg.co.png', {},
|
||||
function(err, res, data) {
|
||||
if (err) throw err;
|
||||
assert.equal(res.statusCode, 200);
|
||||
assert.notEqual(res.headers['cache-control'].indexOf('max-age=604800'), -1);
|
||||
|
||||
done();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
it('should allow normal traversal', function(done) {
|
||||
request('/nom/../tomg.co.png', {},
|
||||
function(err, res, data) {
|
||||
if (err) throw err;
|
||||
assert.equal(res.statusCode, 200);
|
||||
assert.deepEqual(data, file('tomg.co.png'));
|
||||
|
||||
done();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
it('should redirect on directories', function(done) {
|
||||
request('/js', {}, statusCode(301, done));
|
||||
});
|
||||
|
||||
it('should work for paths containing URI-encoded spaces', function(done) {
|
||||
request('/space%20the%20final%20frontier/tomg.co.png', { 'Accept-Encoding': 'gzip' }, statusCode(200, done));
|
||||
});
|
||||
|
||||
|
||||
it('should not let the user access files outside of the static directory (urlencoded)', function(done) {
|
||||
request('/../test-static.js', { 'Accept-Encoding': 'gzip' }, statusCode(403, done));
|
||||
});
|
||||
|
||||
|
||||
it('should not let the user access files outside of the static directory', function(done) {
|
||||
request('/%2e%2e/test-static.js', { 'Accept-Encoding': 'gzip' }, statusCode(403, done));
|
||||
});
|
||||
|
||||
it('should not let the user access files from root of file system', function(done) {
|
||||
request('/etc/password', { 'Accept-Encoding': 'gzip' }, statusCode(404, done));
|
||||
});
|
||||
|
||||
|
||||
it('should serve index.html for directories (if found)', function(done) {
|
||||
request('/index_test/', { 'Accept-Encoding': 'gzip' },
|
||||
function(err, res, data) {
|
||||
if (err) throw err;
|
||||
assert.equal(res.statusCode, 200);
|
||||
// assert.equal(res.headers['content-length'], '616');
|
||||
|
||||
done();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user