mirror of
https://github.com/cnodejs/nodeclub.git
synced 2025-12-08 19:55:55 +00:00
97 lines
2.6 KiB
JavaScript
97 lines
2.6 KiB
JavaScript
/*!
|
|
* nodeclub - onehost plugins unit tests.
|
|
* Copyright(c) 2012 fengmk2 <fengmk2@gmail.com>
|
|
* MIT Licensed
|
|
*/
|
|
|
|
/**
|
|
* Module dependencies.
|
|
*/
|
|
|
|
var onehost = require('../../plugins/onehost');
|
|
var express = require('express');
|
|
var should = require('should');
|
|
|
|
|
|
describe('plugins/onehost.js', function () {
|
|
|
|
var bindHost = 'test.localhost.onehost.com';
|
|
var app = express.createServer();
|
|
app.use(onehost({
|
|
host: bindHost
|
|
}));
|
|
app.use(function (req, res) {
|
|
res.send(req.method + ' ' + req.url);
|
|
});
|
|
before(function (done) {
|
|
app.listen(0, done);
|
|
});
|
|
after(function () {
|
|
app.close();
|
|
});
|
|
|
|
it('should 301 redirect all `GET` to ' + bindHost, function (done) {
|
|
app.request().get('/foo/bar').end(function (res) {
|
|
res.should.status(301);
|
|
res.headers.location.should.equal('http://' + bindHost + '/foo/bar');
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should 301 when GET request 127.0.0.1:port', function (done) {
|
|
app.request({ address: '127.0.0.1', port: app.address().port }).get('/foo/bar').end(function (res) {
|
|
res.should.status(301);
|
|
res.headers.location.should.equal('http://' + bindHost + '/foo/bar');
|
|
done();
|
|
});
|
|
});
|
|
|
|
[ 'post', 'put', 'delete', 'head' ].forEach(function (method) {
|
|
it('should no redirect for `' + method + '`', function (done) {
|
|
app.request()[method]('/foo/bar').end(function (res) {
|
|
res.should.status(200);
|
|
res.headers.should.not.have.property('location');
|
|
if (method === 'head') {
|
|
res.body.should.length(0);
|
|
} else {
|
|
res.body.toString().should.equal(method.toUpperCase() + ' /foo/bar');
|
|
}
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('exclude options', function () {
|
|
var app2 = express.createServer();
|
|
app2.use(onehost({
|
|
host: bindHost,
|
|
exclude: '127.0.0.1:58964'
|
|
}));
|
|
app2.use(function (req, res) {
|
|
res.send(req.method + ' ' + req.url);
|
|
});
|
|
before(function (done) {
|
|
app2.listen(58964, done);
|
|
});
|
|
after(function () {
|
|
app2.close();
|
|
});
|
|
|
|
it('should 301 redirect all `GET` to ' + bindHost, function (done) {
|
|
app.request().get('/foo/bar').end(function (res) {
|
|
res.should.status(301);
|
|
res.headers.location.should.equal('http://' + bindHost + '/foo/bar');
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should 200 when request GET exclude host', function (done) {
|
|
app2.request({ address: '127.0.0.1', port: 58964 }).get('/foo/bar').end(function (res) {
|
|
res.should.status(200);
|
|
res.body.toString().should.equal('GET /foo/bar');
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|