mirror of https://github.com/lukechilds/node.git
Browse Source
PR-URL: https://github.com/nodejs/node/pull/6291 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>process-exit-stdio-flushing
Brian White
9 years ago
committed by
James M Snell
2 changed files with 96 additions and 0 deletions
@ -0,0 +1,92 @@ |
|||||
|
'use strict'; |
||||
|
const common = require('../common'); |
||||
|
const assert = require('assert'); |
||||
|
const http = require('http'); |
||||
|
|
||||
|
const MAX_REQUESTS = 12; |
||||
|
var reqNum = 0; |
||||
|
|
||||
|
const server = http.Server(common.mustCall(function(req, res) { |
||||
|
switch (reqNum) { |
||||
|
case 0: |
||||
|
assert.throws(common.mustCall(() => { |
||||
|
res.writeHead(-1); |
||||
|
}, /invalid status code/i)); |
||||
|
break; |
||||
|
case 1: |
||||
|
assert.throws(common.mustCall(() => { |
||||
|
res.writeHead(Infinity); |
||||
|
}, /invalid status code/i)); |
||||
|
break; |
||||
|
case 2: |
||||
|
assert.throws(common.mustCall(() => { |
||||
|
res.writeHead(NaN); |
||||
|
}, /invalid status code/i)); |
||||
|
break; |
||||
|
case 3: |
||||
|
assert.throws(common.mustCall(() => { |
||||
|
res.writeHead({}); |
||||
|
}, /invalid status code/i)); |
||||
|
break; |
||||
|
case 4: |
||||
|
assert.throws(common.mustCall(() => { |
||||
|
res.writeHead(99); |
||||
|
}, /invalid status code/i)); |
||||
|
break; |
||||
|
case 5: |
||||
|
assert.throws(common.mustCall(() => { |
||||
|
res.writeHead(1000); |
||||
|
}, /invalid status code/i)); |
||||
|
break; |
||||
|
case 6: |
||||
|
assert.throws(common.mustCall(() => { |
||||
|
res.writeHead('1000'); |
||||
|
}, /invalid status code/i)); |
||||
|
break; |
||||
|
case 7: |
||||
|
assert.throws(common.mustCall(() => { |
||||
|
res.writeHead(null); |
||||
|
}, /invalid status code/i)); |
||||
|
break; |
||||
|
case 8: |
||||
|
assert.throws(common.mustCall(() => { |
||||
|
res.writeHead(true); |
||||
|
}, /invalid status code/i)); |
||||
|
break; |
||||
|
case 9: |
||||
|
assert.throws(common.mustCall(() => { |
||||
|
res.writeHead([]); |
||||
|
}, /invalid status code/i)); |
||||
|
break; |
||||
|
case 10: |
||||
|
assert.throws(common.mustCall(() => { |
||||
|
res.writeHead('this is not valid'); |
||||
|
}, /invalid status code/i)); |
||||
|
break; |
||||
|
case 11: |
||||
|
assert.throws(common.mustCall(() => { |
||||
|
res.writeHead('404 this is not valid either'); |
||||
|
}, /invalid status code/i)); |
||||
|
this.close(); |
||||
|
break; |
||||
|
default: |
||||
|
throw new Error('Unexpected request'); |
||||
|
} |
||||
|
res.statusCode = 200; |
||||
|
res.end(); |
||||
|
}, MAX_REQUESTS)); |
||||
|
server.listen(); |
||||
|
|
||||
|
server.on('listening', function makeRequest() { |
||||
|
http.get({ |
||||
|
port: this.address().port |
||||
|
}, (res) => { |
||||
|
assert.strictEqual(res.statusCode, 200); |
||||
|
res.on('end', () => { |
||||
|
if (++reqNum < MAX_REQUESTS) |
||||
|
makeRequest.call(this); |
||||
|
}); |
||||
|
res.resume(); |
||||
|
}); |
||||
|
}); |
||||
|
|
Loading…
Reference in new issue