mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 21:58:48 +02:00
http: add new functions to OutgoingMessage
PR-URL: https://github.com/nodejs/node/pull/10805 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Roman Reiss <me@silverwind.io> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
This commit is contained in:
parent
52ddb41c60
commit
3e6f1032a4
3 changed files with 140 additions and 1 deletions
|
@ -21,6 +21,13 @@ const cookies = [
|
|||
const s = http.createServer(common.mustCall((req, res) => {
|
||||
switch (test) {
|
||||
case 'headers':
|
||||
// Check that header-related functions work before setting any headers
|
||||
// eslint-disable-next-line no-restricted-properties
|
||||
assert.deepEqual(res.getHeaders(), {});
|
||||
assert.deepStrictEqual(res.getHeaderNames(), []);
|
||||
assert.deepStrictEqual(res.hasHeader('Connection'), false);
|
||||
assert.deepStrictEqual(res.getHeader('Connection'), undefined);
|
||||
|
||||
assert.throws(() => {
|
||||
res.setHeader();
|
||||
}, /^TypeError: Header name must be a valid HTTP Token \["undefined"\]$/);
|
||||
|
@ -34,15 +41,52 @@ const s = http.createServer(common.mustCall((req, res) => {
|
|||
res.removeHeader();
|
||||
}, /^TypeError: "name" argument must be a string$/);
|
||||
|
||||
const arrayValues = [1, 2, 3];
|
||||
res.setHeader('x-test-header', 'testing');
|
||||
res.setHeader('X-TEST-HEADER2', 'testing');
|
||||
res.setHeader('set-cookie', cookies);
|
||||
res.setHeader('x-test-array-header', [1, 2, 3]);
|
||||
res.setHeader('x-test-array-header', arrayValues);
|
||||
|
||||
assert.strictEqual(res.getHeader('x-test-header'), 'testing');
|
||||
assert.strictEqual(res.getHeader('x-test-header2'), 'testing');
|
||||
|
||||
const headersCopy = res.getHeaders();
|
||||
// eslint-disable-next-line no-restricted-properties
|
||||
assert.deepEqual(headersCopy, {
|
||||
'x-test-header': 'testing',
|
||||
'x-test-header2': 'testing',
|
||||
'set-cookie': cookies,
|
||||
'x-test-array-header': arrayValues
|
||||
});
|
||||
// eslint-disable-next-line no-restricted-properties
|
||||
assert.deepEqual(headersCopy['set-cookie'], cookies);
|
||||
assert.strictEqual(headersCopy['x-test-array-header'], arrayValues);
|
||||
|
||||
assert.deepStrictEqual(res.getHeaderNames(),
|
||||
['x-test-header', 'x-test-header2',
|
||||
'set-cookie', 'x-test-array-header']);
|
||||
|
||||
assert.strictEqual(res.hasHeader('x-test-header2'), true);
|
||||
assert.strictEqual(res.hasHeader('X-TEST-HEADER2'), true);
|
||||
assert.strictEqual(res.hasHeader('X-Test-Header2'), true);
|
||||
assert.throws(() => {
|
||||
res.hasHeader();
|
||||
}, /^TypeError: "name" argument must be a string$/);
|
||||
assert.throws(() => {
|
||||
res.hasHeader(null);
|
||||
}, /^TypeError: "name" argument must be a string$/);
|
||||
assert.throws(() => {
|
||||
res.hasHeader(true);
|
||||
}, /^TypeError: "name" argument must be a string$/);
|
||||
assert.throws(() => {
|
||||
res.hasHeader({ toString: () => 'X-TEST-HEADER2' });
|
||||
}, /^TypeError: "name" argument must be a string$/);
|
||||
|
||||
res.removeHeader('x-test-header2');
|
||||
|
||||
assert.strictEqual(res.hasHeader('x-test-header2'), false);
|
||||
assert.strictEqual(res.hasHeader('X-TEST-HEADER2'), false);
|
||||
assert.strictEqual(res.hasHeader('X-Test-Header2'), false);
|
||||
break;
|
||||
|
||||
case 'contentLength':
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue