test: add http upgrade header regression test

Add a regression test for https://github.com/iojs/io.js/issues/627.

Before the http_parser rollback to 2.3.0, the request callback was
called but an 'upgrade' event was not emitted, even though there is
an Upgrade header present in the request.

PR-URL: https://github.com/iojs/io.js/pull/628
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
This commit is contained in:
Ben Noordhuis 2015-01-27 23:02:40 +01:00
Родитель 660509694c
Коммит 24bd4e0555
1 изменённых файлов: 22 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,22 @@
'use strict';
var assert = require('assert');
var http = require('http');
var net = require('net');
var upgrades = 0;
process.on('exit', function() { assert.equal(upgrades, 1); });
http.createServer(assert.fail).listen(0, '127.0.0.1', function() {
this.on('upgrade', function(req, conn, head) {
conn.destroy();
this.close();
upgrades += 1;
});
var options = { host: this.address().address, port: this.address().port };
net.connect(options, function() {
this.write('GET / HTTP/1.1\r\n' +
'Upgrade: Yes, please.\r\n' +
'\r\n');
});
});