node/test/parallel/test-http-invalidheaderfield.js
Brian White 2bc7841d0f
test: use random ports where possible
This helps to prevent issues where a failed test can keep a bound
socket open long enough to cause other tests to fail with EADDRINUSE
because the same port number is used.

PR-URL: https://github.com/nodejs/node/pull/7045
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
2016-06-10 22:30:55 -04:00

57 lines
1.1 KiB
JavaScript

'use strict';
require('../common');
const assert = require('assert');
const EventEmitter = require('events');
const http = require('http');
const ee = new EventEmitter();
var count = 3;
const server = http.createServer(function(req, res) {
assert.doesNotThrow(function() {
res.setHeader('testing_123', 123);
});
assert.throws(function() {
res.setHeader('testing 123', 123);
}, TypeError);
res.end('');
});
server.listen(0, function() {
http.get({port: this.address().port}, function() {
ee.emit('done');
});
assert.throws(
function() {
var options = {
port: server.address().port,
headers: {'testing 123': 123}
};
http.get(options, function() {});
},
function(err) {
ee.emit('done');
if (err instanceof TypeError) return true;
}
);
assert.doesNotThrow(
function() {
var options = {
port: server.address().port,
headers: {'testing_123': 123}
};
http.get(options, function() {
ee.emit('done');
});
}, TypeError
);
});
ee.on('done', function() {
if (--count === 0) {
server.close();
}
});