diff options
author | James M Snell <jasnell@gmail.com> | 2018-09-13 09:31:48 -0700 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2018-09-17 16:57:23 +0200 |
commit | efe0bbcd2fde5f60546fa2dc60295956ba440a3c (patch) | |
tree | 70526483e70a906d8b27062ba551c4d164ce695e /test | |
parent | eee5adfab5af5f7eb672cbc3cbbad141c455c54d (diff) | |
download | android-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.js | 50 |
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(); + })); + } +})); |