Files
tubestation/testing/xpcshell/node-spdy/test/unit/plain-test.js

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();
});
});