From 361542bb14bd71c2df8ab29c5d14f40568288ee3 Mon Sep 17 00:00:00 2001 From: Niklas Ingholt Date: Tue, 20 Sep 2016 15:22:16 +0200 Subject: [PATCH 1/5] test: Add tests for add/remove header after sent. This change adds tests to make sure an Error is thrown if a header is added or removed after they are sent. --- ...est-http-response-add-header-after-sent.js | 21 +++++++++++++++++++ ...-http-response-remove-header-after-sent.js | 21 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 test/parallel/test-http-response-add-header-after-sent.js create mode 100644 test/parallel/test-http-response-remove-header-after-sent.js diff --git a/test/parallel/test-http-response-add-header-after-sent.js b/test/parallel/test-http-response-add-header-after-sent.js new file mode 100644 index 00000000000000..17676bbb2025d7 --- /dev/null +++ b/test/parallel/test-http-response-add-header-after-sent.js @@ -0,0 +1,21 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const http = require('http'); + +const server = http.createServer((req, res) => { + assert.doesNotThrow(() => { + res.setHeader('header1', 1); + }); + res.write('abc') + assert.throws(() => { + res.setHeader('header2', 2); + }, Error, 'setHeader after write should throw'); + res.end() +}); + +server.listen(common.PORT, () => { + http.get({port: server.address().port}, () => { + server.close() + }); +}); diff --git a/test/parallel/test-http-response-remove-header-after-sent.js b/test/parallel/test-http-response-remove-header-after-sent.js new file mode 100644 index 00000000000000..02b6d9bc4e4956 --- /dev/null +++ b/test/parallel/test-http-response-remove-header-after-sent.js @@ -0,0 +1,21 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const http = require('http'); + +const server = http.createServer((req, res) => { + assert.doesNotThrow(() => { + res.removeHeader('header1', 1); + }); + res.write('abc') + assert.throws(() => { + res.removeHeader('header2', 2); + }, Error, 'removeHeader after write should throw'); + res.end() +}); + +server.listen(common.PORT, () => { + http.get({port: server.address().port}, () => { + server.close() + }); +}); From 8787d21dd2c8efa43456824af4b7ec0631558745 Mon Sep 17 00:00:00 2001 From: Niklas Ingholt Date: Wed, 21 Sep 2016 12:47:22 +0200 Subject: [PATCH 2/5] Use port 0 instead of common.PORT. --- test/parallel/test-http-response-add-header-after-sent.js | 4 ++-- test/parallel/test-http-response-remove-header-after-sent.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/parallel/test-http-response-add-header-after-sent.js b/test/parallel/test-http-response-add-header-after-sent.js index 17676bbb2025d7..b9eece0d7d5e3c 100644 --- a/test/parallel/test-http-response-add-header-after-sent.js +++ b/test/parallel/test-http-response-add-header-after-sent.js @@ -1,5 +1,5 @@ 'use strict'; -const common = require('../common'); +require('../common'); const assert = require('assert'); const http = require('http'); @@ -14,7 +14,7 @@ const server = http.createServer((req, res) => { res.end() }); -server.listen(common.PORT, () => { +server.listen(0, () => { http.get({port: server.address().port}, () => { server.close() }); diff --git a/test/parallel/test-http-response-remove-header-after-sent.js b/test/parallel/test-http-response-remove-header-after-sent.js index 02b6d9bc4e4956..ba97bc3e358cd2 100644 --- a/test/parallel/test-http-response-remove-header-after-sent.js +++ b/test/parallel/test-http-response-remove-header-after-sent.js @@ -1,5 +1,5 @@ 'use strict'; -const common = require('../common'); +require('../common'); const assert = require('assert'); const http = require('http'); @@ -14,7 +14,7 @@ const server = http.createServer((req, res) => { res.end() }); -server.listen(common.PORT, () => { +server.listen(0, () => { http.get({port: server.address().port}, () => { server.close() }); From b8ed5ee67281434959399841a42eb79d63dc71c2 Mon Sep 17 00:00:00 2001 From: Niklas Ingholt Date: Wed, 21 Sep 2016 15:44:44 +0200 Subject: [PATCH 3/5] Check error messages. --- test/parallel/test-http-response-add-header-after-sent.js | 2 +- test/parallel/test-http-response-remove-header-after-sent.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-http-response-add-header-after-sent.js b/test/parallel/test-http-response-add-header-after-sent.js index b9eece0d7d5e3c..c41f203e52d0be 100644 --- a/test/parallel/test-http-response-add-header-after-sent.js +++ b/test/parallel/test-http-response-add-header-after-sent.js @@ -10,7 +10,7 @@ const server = http.createServer((req, res) => { res.write('abc') assert.throws(() => { res.setHeader('header2', 2); - }, Error, 'setHeader after write should throw'); + }, /Can't set headers after they are sent./) res.end() }); diff --git a/test/parallel/test-http-response-remove-header-after-sent.js b/test/parallel/test-http-response-remove-header-after-sent.js index ba97bc3e358cd2..ec8cbebfc8c2a5 100644 --- a/test/parallel/test-http-response-remove-header-after-sent.js +++ b/test/parallel/test-http-response-remove-header-after-sent.js @@ -10,7 +10,7 @@ const server = http.createServer((req, res) => { res.write('abc') assert.throws(() => { res.removeHeader('header2', 2); - }, Error, 'removeHeader after write should throw'); + }, /Can't remove headers after they are sent/) res.end() }); From a72b6fc05d0bd6bdd42b351d5753ad50a29cd117 Mon Sep 17 00:00:00 2001 From: Niklas Ingholt Date: Wed, 21 Sep 2016 15:59:49 +0200 Subject: [PATCH 4/5] Fix missing semicolon. --- test/parallel/test-http-response-add-header-after-sent.js | 8 ++++---- .../test-http-response-remove-header-after-sent.js | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/test/parallel/test-http-response-add-header-after-sent.js b/test/parallel/test-http-response-add-header-after-sent.js index c41f203e52d0be..fa950a0e38eecb 100644 --- a/test/parallel/test-http-response-add-header-after-sent.js +++ b/test/parallel/test-http-response-add-header-after-sent.js @@ -7,15 +7,15 @@ const server = http.createServer((req, res) => { assert.doesNotThrow(() => { res.setHeader('header1', 1); }); - res.write('abc') + res.write('abc'); assert.throws(() => { res.setHeader('header2', 2); - }, /Can't set headers after they are sent./) - res.end() + }, /Can't set headers after they are sent./); + res.end(); }); server.listen(0, () => { http.get({port: server.address().port}, () => { - server.close() + server.close(); }); }); diff --git a/test/parallel/test-http-response-remove-header-after-sent.js b/test/parallel/test-http-response-remove-header-after-sent.js index ec8cbebfc8c2a5..972ccfeb8c70cc 100644 --- a/test/parallel/test-http-response-remove-header-after-sent.js +++ b/test/parallel/test-http-response-remove-header-after-sent.js @@ -7,15 +7,15 @@ const server = http.createServer((req, res) => { assert.doesNotThrow(() => { res.removeHeader('header1', 1); }); - res.write('abc') + res.write('abc'); assert.throws(() => { res.removeHeader('header2', 2); - }, /Can't remove headers after they are sent/) - res.end() + }, /Can't remove headers after they are sent/); + res.end(); }); server.listen(0, () => { http.get({port: server.address().port}, () => { - server.close() + server.close(); }); }); From 60a1081d595d08d71c2a93c4748eda9c17499321 Mon Sep 17 00:00:00 2001 From: Niklas Ingholt Date: Wed, 21 Sep 2016 20:45:15 +0200 Subject: [PATCH 5/5] Escape '.' when checking error message. --- test/parallel/test-http-response-add-header-after-sent.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/parallel/test-http-response-add-header-after-sent.js b/test/parallel/test-http-response-add-header-after-sent.js index fa950a0e38eecb..4261bb61ec2957 100644 --- a/test/parallel/test-http-response-add-header-after-sent.js +++ b/test/parallel/test-http-response-add-header-after-sent.js @@ -10,7 +10,7 @@ const server = http.createServer((req, res) => { res.write('abc'); assert.throws(() => { res.setHeader('header2', 2); - }, /Can't set headers after they are sent./); + }, /Can't set headers after they are sent\./); res.end(); });