%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; const common = require('../common'); const assert = require('assert'); const http = require('http'); const Countdown = require('../common/countdown'); const MAX_REQUESTS = 13; let reqNum = 0; function test(res, header, code) { assert.throws(() => { res.writeHead(header); }, { code: 'ERR_HTTP_INVALID_STATUS_CODE', name: 'RangeError', message: `Invalid status code: ${code}` }); } const server = http.Server(common.mustCall(function(req, res) { switch (reqNum) { case 0: test(res, -1, '-1'); break; case 1: test(res, Infinity, 'Infinity'); break; case 2: test(res, NaN, 'NaN'); break; case 3: test(res, {}, '{}'); break; case 4: test(res, 99, '99'); break; case 5: test(res, 1000, '1000'); break; case 6: test(res, '1000', '1000'); break; case 7: test(res, null, 'null'); break; case 8: test(res, true, 'true'); break; case 9: test(res, [], '[]'); break; case 10: test(res, 'this is not valid', 'this is not valid'); break; case 11: test(res, '404 this is not valid either', '404 this is not valid either'); break; case 12: assert.throws(() => { res.writeHead(); }, { code: 'ERR_HTTP_INVALID_STATUS_CODE', name: 'RangeError', message: 'Invalid status code: undefined' }); this.close(); break; default: throw new Error('Unexpected request'); } res.statusCode = 200; res.end(); }, MAX_REQUESTS)); server.listen(); const countdown = new Countdown(MAX_REQUESTS, () => server.close()); server.on('listening', function makeRequest() { http.get({ port: this.address().port }, (res) => { assert.strictEqual(res.statusCode, 200); res.on('end', () => { countdown.dec(); reqNum = MAX_REQUESTS - countdown.remaining; if (countdown.remaining > 0) makeRequest.call(this); }); res.resume(); }); });