summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorZYSzys <zyszys98@gmail.com>2019-10-03 01:19:05 +0800
committerZYSzys <zyszys98@gmail.com>2019-10-07 16:31:21 +0800
commit95266db2bc4d1cf1ab7d63aeed1a728124ead298 (patch)
tree05ac5d556a0bbd7806cc760e9f83fe9286d5eef6 /test
parent80f2b6736724e0a3b90731deb9503013edc7d85e (diff)
downloadandroid-node-v8-95266db2bc4d1cf1ab7d63aeed1a728124ead298.tar.gz
android-node-v8-95266db2bc4d1cf1ab7d63aeed1a728124ead298.tar.bz2
android-node-v8-95266db2bc4d1cf1ab7d63aeed1a728124ead298.zip
http2: support passing options of http2.connect to net.connect
PR-URL: https://github.com/nodejs/node/pull/29816 Fixes: https://github.com/nodejs/node/issues/29811 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/parallel/test-http2-client-port-80.js2
-rw-r--r--test/parallel/test-http2-connect-options.js42
2 files changed, 43 insertions, 1 deletions
diff --git a/test/parallel/test-http2-client-port-80.js b/test/parallel/test-http2-client-port-80.js
index fc82e231f6..a286dbf6a7 100644
--- a/test/parallel/test-http2-client-port-80.js
+++ b/test/parallel/test-http2-client-port-80.js
@@ -11,7 +11,7 @@ const net = require('net');
const connect = net.connect;
net.connect = common.mustCall((...args) => {
- assert.strictEqual(args[0], '80');
+ assert.strictEqual(args[0].port, '80');
return connect(...args);
});
diff --git a/test/parallel/test-http2-connect-options.js b/test/parallel/test-http2-connect-options.js
new file mode 100644
index 0000000000..1a7987621a
--- /dev/null
+++ b/test/parallel/test-http2-connect-options.js
@@ -0,0 +1,42 @@
+// Flags: --expose-internals
+'use strict';
+const common = require('../common');
+if (!common.hasCrypto)
+ common.skip('missing crypto');
+
+if (!common.hasMultiLocalhost())
+ common.skip('platform-specific test.');
+
+const http2 = require('http2');
+const assert = require('assert');
+
+const server = http2.createServer((req, res) => {
+ console.log(`Connect from: ${req.connection.remoteAddress}`);
+ assert.strictEqual(req.connection.remoteAddress, '127.0.0.2');
+
+ req.on('end', common.mustCall(() => {
+ res.writeHead(200, { 'Content-Type': 'text/plain' });
+ res.end(`You are from: ${req.connection.remoteAddress}`);
+ }));
+ req.resume();
+});
+
+server.listen(0, '127.0.0.1', common.mustCall(() => {
+ const options = { localAddress: '127.0.0.2' };
+
+ const client = http2.connect(
+ 'http://localhost:' + server.address().port,
+ options
+ );
+ const req = client.request({
+ ':path': '/'
+ });
+ req.on('data', () => req.resume());
+ req.on('end', common.mustCall(function() {
+ client.close();
+ req.close();
+ server.close();
+ process.exit();
+ }));
+ req.end();
+}));