GeezerVison is showing github.com — http2: cleanup of h2 compat layer, add tests · nodejs/node@9490be3
File treeExpand file treeCollapse file tree Open diff view settings Expand file treeCollapse file tree Open diff view settings Collapse file Copy file name to clipboardExpand all lines: lib/internal/http2/compat.js +111-127Lines changed: 111 additions & 127 deletions Large diffs are not rendered by default. Collapse file Copy file name to clipboardExpand all lines: test/parallel/test-http2-compat-serverrequest-headers.js +1-6Lines changed: 1 addition & 6 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -21,9 +21,9 @@ server.listen(0, common.mustCall(function() { | 21 | 21 | 'foo-bar': 'abc123' | 22 | 22 | }; | 23 | 23 |
| | 24 | + assert.strictEqual(request.path, undefined); | 24 | 25 | assert.strictEqual(request.method, expected[':method']); | 25 | 26 | assert.strictEqual(request.scheme, expected[':scheme']); | 26 | | - assert.strictEqual(request.path, expected[':path']); | 27 | 27 | assert.strictEqual(request.url, expected[':path']); | 28 | 28 | assert.strictEqual(request.authority, expected[':authority']); | 29 | 29 |
| @@ -41,11 +41,6 @@ server.listen(0, common.mustCall(function() { | 41 | 41 |
| 42 | 42 | request.url = '/one'; | 43 | 43 | assert.strictEqual(request.url, '/one'); | 44 | | - assert.strictEqual(request.path, '/one'); | 45 | | - | 46 | | - request.path = '/two'; | 47 | | - assert.strictEqual(request.url, '/two'); | 48 | | - assert.strictEqual(request.path, '/two'); | 49 | 44 |
| 50 | 45 | response.on('finish', common.mustCall(function() { | 51 | 46 | server.close(); | |
Collapse file Copy file name to clipboardExpand all lines: test/parallel/test-http2-compat-serverrequest.js -2Lines changed: 0 additions & 2 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -15,7 +15,6 @@ server.listen(0, common.mustCall(function() { | 15 | 15 | const port = server.address().port; | 16 | 16 | server.once('request', common.mustCall(function(request, response) { | 17 | 17 | const expected = { | 18 | | - statusCode: null, | 19 | 18 | version: '2.0', | 20 | 19 | httpVersionMajor: 2, | 21 | 20 | httpVersionMinor: 0 | @@ -24,7 +23,6 @@ server.listen(0, common.mustCall(function() { | 24 | 23 | assert.strictEqual(request.closed, false); | 25 | 24 | assert.strictEqual(request.code, h2.constants.NGHTTP2_NO_ERROR); | 26 | 25 |
| 27 | | - assert.strictEqual(request.statusCode, expected.statusCode); | 28 | 26 | assert.strictEqual(request.httpVersion, expected.version); | 29 | 27 | assert.strictEqual(request.httpVersionMajor, expected.httpVersionMajor); | 30 | 28 | assert.strictEqual(request.httpVersionMinor, expected.httpVersionMinor); | |
Collapse file Copy file name to clipboardExpand all lines: test/parallel/test-http2-compat-serverresponse-destroy.js +1-1Lines changed: 1 addition & 1 deletion | Original file line number | Diff line number | Diff line change |
|---|
@@ -26,7 +26,7 @@ const server = http2.createServer(common.mustCall((req, res) => { | 26 | 26 | assert.strictEqual(res.closed, true); | 27 | 27 | })); | 28 | 28 |
| 29 | | - if (req.path !== '/') { | | 29 | + if (req.url !== '/') { | 30 | 30 | nextError = errors.shift(); | 31 | 31 | } | 32 | 32 | res.destroy(nextError); | |
Collapse file Copy file name to clipboardExpand all lines: test/parallel/test-http2-compat-serverresponse-finished.js +6-1Lines changed: 6 additions & 1 deletion | Original file line number | Diff line number | Diff line change |
|---|
@@ -8,13 +8,18 @@ const assert = require('assert'); | 8 | 8 | const h2 = require('http2'); | 9 | 9 |
| 10 | 10 | // Http2ServerResponse.finished | 11 | | - | 12 | 11 | const server = h2.createServer(); | 13 | 12 | server.listen(0, common.mustCall(function() { | 14 | 13 | const port = server.address().port; | 15 | 14 | server.once('request', common.mustCall(function(request, response) { | 16 | 15 | response.on('finish', common.mustCall(function() { | | 16 | + assert.ok(request.stream !== undefined); | | 17 | + assert.ok(response.stream !== undefined); | 17 | 18 | server.close(); | | 19 | + process.nextTick(common.mustCall(() => { | | 20 | + assert.strictEqual(request.stream, undefined); | | 21 | + assert.strictEqual(response.stream, undefined); | | 22 | + })); | 18 | 23 | })); | 19 | 24 | assert.strictEqual(response.finished, false); | 20 | 25 | response.end(); | |
Collapse file Copy file name to clipboardExpand all lines: test/parallel/test-http2-compat-serverresponse-headers.js +33Lines changed: 33 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -42,6 +42,31 @@ server.listen(0, common.mustCall(function() { | 42 | 42 | response.removeHeader(denormalised); | 43 | 43 | assert.strictEqual(response.hasHeader(denormalised), false); | 44 | 44 |
| | 45 | + common.expectsError( | | 46 | + () => response.hasHeader(), | | 47 | + { | | 48 | + code: 'ERR_INVALID_ARG_TYPE', | | 49 | + type: TypeError, | | 50 | + message: 'The "name" argument must be of type string' | | 51 | + } | | 52 | + ); | | 53 | + common.expectsError( | | 54 | + () => response.getHeader(), | | 55 | + { | | 56 | + code: 'ERR_INVALID_ARG_TYPE', | | 57 | + type: TypeError, | | 58 | + message: 'The "name" argument must be of type string' | | 59 | + } | | 60 | + ); | | 61 | + common.expectsError( | | 62 | + () => response.removeHeader(), | | 63 | + { | | 64 | + code: 'ERR_INVALID_ARG_TYPE', | | 65 | + type: TypeError, | | 66 | + message: 'The "name" argument must be of type string' | | 67 | + } | | 68 | + ); | | 69 | + | 45 | 70 | [ | 46 | 71 | ':status', | 47 | 72 | ':method', | @@ -70,6 +95,14 @@ server.listen(0, common.mustCall(function() { | 70 | 95 | type: TypeError, | 71 | 96 | message: 'Value must not be undefined or null' | 72 | 97 | })); | | 98 | + common.expectsError( | | 99 | + () => response.setHeader(), // header name undefined | | 100 | + { | | 101 | + code: 'ERR_INVALID_ARG_TYPE', | | 102 | + type: TypeError, | | 103 | + message: 'The "name" argument must be of type string' | | 104 | + } | | 105 | + ); | 73 | 106 |
| 74 | 107 | response.setHeader(real, expectedValue); | 75 | 108 | const expectedHeaderNames = [real]; | |
Collapse file Copy file name to clipboardExpand all lines: test/parallel/test-http2-compat-serverresponse-writehead.js +5Lines changed: 5 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -22,6 +22,11 @@ server.listen(0, common.mustCall(function() { | 22 | 22 |
| 23 | 23 | response.on('finish', common.mustCall(function() { | 24 | 24 | server.close(); | | 25 | + process.nextTick(common.mustCall(() => { | | 26 | + common.expectsError(() => { response.writeHead(300); }, { | | 27 | + code: 'ERR_HTTP2_STREAM_CLOSED' | | 28 | + }); | | 29 | + })); | 25 | 30 | })); | 26 | 31 | response.end(); | 27 | 32 | })); | |
Collapse file Copy file name to clipboardExpand all lines: test/parallel/test-http2-createwritereq.js +1-1Lines changed: 1 addition & 1 deletion | Original file line number | Diff line number | Diff line change |
|---|
@@ -30,7 +30,7 @@ const testsToRun = Object.keys(encodings).length; | 30 | 30 | let testsFinished = 0; | 31 | 31 |
| 32 | 32 | const server = http2.createServer(common.mustCall((req, res) => { | 33 | | - const testEncoding = encodings[req.path.slice(1)]; | | 33 | + const testEncoding = encodings[req.url.slice(1)]; | 34 | 34 |
| 35 | 35 | req.on('data', common.mustCall((chunk) => assert.ok( | 36 | 36 | Buffer.from(testString, testEncoding).equals(chunk) | |
|