• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3const common = require('../common');
4if (!common.hasCrypto)
5  common.skip('missing crypto');
6
7const assert = require('assert');
8const http2 = require('http2');
9
10const server = http2.createServer();
11server.on('stream', common.mustCall((stream) => {
12  stream.respond();
13  stream.end('ok');
14}));
15server.on('session', common.mustCall((session) => {
16  const windowSize = 2 ** 20;
17  const defaultSetting = http2.getDefaultSettings();
18  session.setLocalWindowSize(windowSize);
19
20  assert.strictEqual(session.state.effectiveLocalWindowSize, windowSize);
21  assert.strictEqual(session.state.localWindowSize, windowSize);
22  assert.strictEqual(
23    session.state.remoteWindowSize,
24    defaultSetting.initialWindowSize
25  );
26}));
27
28server.listen(0, common.mustCall(() => {
29  const client = http2.connect(`http://localhost:${server.address().port}`);
30
31  const req = client.request();
32  req.resume();
33  req.on('close', common.mustCall(() => {
34    client.close();
35    server.close();
36  }));
37}));
38