Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorBrian White <mscdex@mscdex.net>2017-01-14 17:39:58 +0300
committerItalo A. Casas <me@italoacasas.com>2017-02-28 05:50:31 +0300
commit3e8d43d165ef9d363d18d1d6585582fc2742fb64 (patch)
treee1165d0d93e9c2d47502ce7253400f7964de80ed /test
parentfedf26b23551d5a5a8e871df22f4a355793effbf (diff)
http: add new functions to OutgoingMessage
PR-URL: https://github.com/nodejs/node/pull/11562 Backport-of: 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>
Diffstat (limited to 'test')
-rw-r--r--test/parallel/test-http-mutable-headers.js46
1 files changed, 45 insertions, 1 deletions
diff --git a/test/parallel/test-http-mutable-headers.js b/test/parallel/test-http-mutable-headers.js
index 072dd97076f..f2e6a1f2808 100644
--- a/test/parallel/test-http-mutable-headers.js
+++ b/test/parallel/test-http-mutable-headers.js
@@ -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();
}, /^Error: "name" argument is required for removeHeader\(name\)$/);
+ 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':