summaryrefslogtreecommitdiff
path: root/test/parallel/test-http2-server-stream-session-destroy.js
diff options
context:
space:
mode:
authorTrivikram Kamat <trivikr.dev@gmail.com>2017-10-03 00:44:09 -0700
committerJames M Snell <jasnell@gmail.com>2017-10-15 15:24:45 -0700
commitabbdcaa6e833864905ded87c3c6b26eefaf7deda (patch)
tree275cc98021d7596e75295e2c9dee1bd78824814e /test/parallel/test-http2-server-stream-session-destroy.js
parent68df587b1ee6b28f6abf5efffbd2475cf54508e2 (diff)
downloadandroid-node-v8-abbdcaa6e833864905ded87c3c6b26eefaf7deda.tar.gz
android-node-v8-abbdcaa6e833864905ded87c3c6b26eefaf7deda.tar.bz2
android-node-v8-abbdcaa6e833864905ded87c3c6b26eefaf7deda.zip
test: http2 session operations after destroy
Refs #14985 PR-URL: https://github.com/nodejs/node/pull/15758 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Minwoo Jung <minwoo@nodesource.com>
Diffstat (limited to 'test/parallel/test-http2-server-stream-session-destroy.js')
-rw-r--r--test/parallel/test-http2-server-stream-session-destroy.js42
1 files changed, 31 insertions, 11 deletions
diff --git a/test/parallel/test-http2-server-stream-session-destroy.js b/test/parallel/test-http2-server-stream-session-destroy.js
index 2426216580..f2cc4a1f77 100644
--- a/test/parallel/test-http2-server-stream-session-destroy.js
+++ b/test/parallel/test-http2-server-stream-session-destroy.js
@@ -11,11 +11,6 @@ const server = h2.createServer();
server.on(
'stream',
common.mustCall((stream) => {
- const errorObj = {
- type: Error,
- code: 'ERR_HTTP2_INVALID_STREAM',
- message: 'The stream has been destroyed'
- };
stream.session.destroy();
// Test that stream.state getter returns an empty object
@@ -24,15 +19,40 @@ server.on(
// Test that ERR_HTTP2_INVALID_STREAM is thrown while calling
// stream operations after the stream session has been destroyed
- common.expectsError(() => stream.additionalHeaders(), errorObj);
- common.expectsError(() => stream.priority(), errorObj);
+ const invalidStreamError = {
+ type: Error,
+ code: 'ERR_HTTP2_INVALID_STREAM',
+ message: 'The stream has been destroyed'
+ };
+ common.expectsError(() => stream.additionalHeaders(), invalidStreamError);
+ common.expectsError(() => stream.priority(), invalidStreamError);
common.expectsError(
() => stream.pushStream({}, common.mustNotCall()),
- errorObj
+ invalidStreamError
);
- common.expectsError(() => stream.respond(), errorObj);
- common.expectsError(() => stream.rstStream(), errorObj);
- common.expectsError(() => stream.write('data'), errorObj);
+ common.expectsError(() => stream.respond(), invalidStreamError);
+ common.expectsError(() => stream.rstStream(), invalidStreamError);
+ common.expectsError(() => stream.write('data'), invalidStreamError);
+
+ // Test that ERR_HTTP2_INVALID_SESSION is thrown while calling
+ // session operations after the stream session has been destroyed
+ const invalidSessionError = {
+ type: Error,
+ code: 'ERR_HTTP2_INVALID_SESSION',
+ message: 'The session has been destroyed'
+ };
+ common.expectsError(() => stream.session.priority(), invalidSessionError);
+ common.expectsError(() => stream.session.settings(), invalidSessionError);
+ common.expectsError(() => stream.session.shutdown(), invalidSessionError);
+
+ // Wait for setImmediate call from destroy() to complete
+ // so that state.destroyed is set to true
+ setImmediate((session) => {
+ common.expectsError(() => session.priority(), invalidSessionError);
+ common.expectsError(() => session.settings(), invalidSessionError);
+ common.expectsError(() => session.shutdown(), invalidSessionError);
+ common.expectsError(() => session.rstStream(), invalidSessionError);
+ }, stream.session);
})
);