143 lines
3.0 KiB
JavaScript
143 lines
3.0 KiB
JavaScript
var assert = require('assert'),
|
|
spdy = require('../../'),
|
|
keys = require('../fixtures/keys'),
|
|
http = require('http'),
|
|
tls = require('tls'),
|
|
Buffer = require('buffer').Buffer,
|
|
PORT = 8081;
|
|
|
|
suite('A SPDY Server / Plain', function() {
|
|
var server;
|
|
setup(function(done) {
|
|
server = spdy.createServer({ plain: true, ssl: false }, function(req, res) {
|
|
res.end('ok');
|
|
});
|
|
|
|
server.listen(PORT, done);
|
|
});
|
|
|
|
teardown(function(done) {
|
|
server.close(done);
|
|
});
|
|
|
|
test('should respond on regular http requests', function(done) {
|
|
var req = http.request({
|
|
host: '127.0.0.1',
|
|
port: PORT,
|
|
path: '/',
|
|
method: 'GET',
|
|
agent: false,
|
|
rejectUnauthorized: false
|
|
}, function(res) {
|
|
res.on('data', function() {
|
|
// Ignore incoming data
|
|
});
|
|
assert.equal(res.statusCode, 200);
|
|
done();
|
|
});
|
|
req.end();
|
|
});
|
|
|
|
test('should respond on spdy requests', function(done) {
|
|
var agent = spdy.createAgent({
|
|
host: '127.0.0.1',
|
|
port: PORT,
|
|
spdy: {
|
|
ssl: false,
|
|
plain: true,
|
|
version: 3
|
|
}
|
|
});
|
|
|
|
var req = http.request({
|
|
path: '/',
|
|
method: 'GET',
|
|
agent: agent,
|
|
}, function(res) {
|
|
res.on('data', function() {
|
|
// Ignore incoming data
|
|
});
|
|
assert.equal(res.statusCode, 200);
|
|
agent.close();
|
|
done();
|
|
});
|
|
req.end();
|
|
});
|
|
|
|
test('should handle header values with colons', function(done) {
|
|
var agent = spdy.createAgent({
|
|
host: '127.0.0.1',
|
|
port: PORT,
|
|
spdy: {
|
|
ssl: false,
|
|
plain: true
|
|
}
|
|
});
|
|
|
|
var refererValue = 'http://127.0.0.1:' + PORT + '/header-with-colon';
|
|
|
|
server.on('request', function(req) {
|
|
assert.equal(req.headers.referer, refererValue);
|
|
});
|
|
|
|
http.request({
|
|
path: '/',
|
|
method: 'GET',
|
|
agent: agent,
|
|
headers: { 'referer': refererValue }
|
|
}, function(res) {
|
|
assert.equal(res.statusCode, 200);
|
|
agent.close();
|
|
done();
|
|
}).end();
|
|
});
|
|
|
|
test('should send date header as default', function(done) {
|
|
var agent = spdy.createAgent({
|
|
host: '127.0.0.1',
|
|
port: PORT,
|
|
spdy: {
|
|
ssl: false,
|
|
plain: true
|
|
}
|
|
});
|
|
|
|
http.request({
|
|
path: '/',
|
|
method: 'GET',
|
|
agent: agent
|
|
}, function(res) {
|
|
assert.equal(typeof res.headers.date, 'string');
|
|
agent.close();
|
|
done();
|
|
}).end();
|
|
});
|
|
|
|
test('should not send date header if res.sendDate is false', function(done) {
|
|
var agent = spdy.createAgent({
|
|
host: '127.0.0.1',
|
|
port: PORT,
|
|
spdy: {
|
|
ssl: false,
|
|
plain: true
|
|
}
|
|
});
|
|
|
|
server.removeAllListeners('request');
|
|
server.on('request', function(req, res) {
|
|
res.sendDate = false;
|
|
res.end('ok');
|
|
});
|
|
|
|
http.request({
|
|
path: '/',
|
|
method: 'GET',
|
|
agent: agent
|
|
}, function(res) {
|
|
assert.equal(typeof res.headers.date, 'undefined');
|
|
agent.close();
|
|
done();
|
|
}).end();
|
|
});
|
|
});
|