summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJames M Snell <jasnell@gmail.com>2018-09-13 09:31:48 -0700
committerAnna Henningsen <anna@addaleax.net>2018-09-17 16:57:23 +0200
commitefe0bbcd2fde5f60546fa2dc60295956ba440a3c (patch)
tree70526483e70a906d8b27062ba551c4d164ce695e /test
parenteee5adfab5af5f7eb672cbc3cbbad141c455c54d (diff)
downloadandroid-node-v8-efe0bbcd2fde5f60546fa2dc60295956ba440a3c.tar.gz
android-node-v8-efe0bbcd2fde5f60546fa2dc60295956ba440a3c.tar.bz2
android-node-v8-efe0bbcd2fde5f60546fa2dc60295956ba440a3c.zip
http2: add http2stream.endAfterHeaders property
Indicates is the END_STREAM flag was set on the received HEADERS frame PR-URL: https://github.com/nodejs/node/pull/22843 Fixes: https://github.com/nodejs/node/issues/22497 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/parallel/test-http2-endafterheaders.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/test/parallel/test-http2-endafterheaders.js b/test/parallel/test-http2-endafterheaders.js
new file mode 100644
index 0000000000..429ffc3188
--- /dev/null
+++ b/test/parallel/test-http2-endafterheaders.js
@@ -0,0 +1,50 @@
+'use strict';
+
+const common = require('../common');
+if (!common.hasCrypto)
+ common.skip('missing crypto');
+const assert = require('assert');
+const http2 = require('http2');
+const Countdown = require('../common/countdown');
+
+const server = http2.createServer();
+server.on('stream', common.mustCall((stream, headers) => {
+ const check = headers[':method'] === 'GET' ? true : false;
+ assert.strictEqual(stream.endAfterHeaders, check);
+ stream.on('data', common.mustNotCall());
+ stream.on('end', common.mustCall());
+ stream.respond();
+ stream.end('ok');
+}, 2));
+
+const countdown = new Countdown(2, () => server.close());
+
+server.listen(0, common.mustCall(() => {
+ {
+ const client = http2.connect(`http://localhost:${server.address().port}`);
+ const req = client.request();
+
+ req.resume();
+ req.on('response', common.mustCall(() => {
+ assert.strictEqual(req.endAfterHeaders, false);
+ }));
+ req.on('end', common.mustCall(() => {
+ client.close();
+ countdown.dec();
+ }));
+ }
+ {
+ const client = http2.connect(`http://localhost:${server.address().port}`);
+ const req = client.request({ ':method': 'POST' });
+
+ req.resume();
+ req.end();
+ req.on('response', common.mustCall(() => {
+ assert.strictEqual(req.endAfterHeaders, false);
+ }));
+ req.on('end', common.mustCall(() => {
+ client.close();
+ countdown.dec();
+ }));
+ }
+}));