%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'); function explicit(req, res) { assert.throws(() => { res.writeHead(200, 'OK\r\nContent-Type: text/html\r\n'); }, /Invalid character in statusMessage/); assert.throws(() => { res.writeHead(200, 'OK\u010D\u010AContent-Type: gotcha\r\n'); }, /Invalid character in statusMessage/); res.statusMessage = 'OK'; res.end(); } function implicit(req, res) { assert.throws(() => { res.statusMessage = 'OK\r\nContent-Type: text/html\r\n'; res.writeHead(200); }, /Invalid character in statusMessage/); res.statusMessage = 'OK'; res.end(); } const server = http.createServer((req, res) => { if (req.url === '/explicit') { explicit(req, res); } else { implicit(req, res); } }).listen(0, common.mustCall(() => { const hostname = 'localhost'; const countdown = new Countdown(2, () => server.close()); const url = `http://${hostname}:${server.address().port}`; const check = common.mustCall((res) => { assert.notStrictEqual(res.headers['content-type'], 'text/html'); assert.notStrictEqual(res.headers['content-type'], 'gotcha'); countdown.dec(); }, 2); http.get(`${url}/explicit`, check).end(); http.get(`${url}/implicit`, check).end(); }));