summaryrefslogtreecommitdiff
path: root/test/parallel/test-tls-generic-stream.js
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2017-12-11 04:37:47 +0100
committerRuben Bridgewater <ruben@bridgewater.de>2017-12-12 12:46:21 -0200
commit93656f4366bcb6084cae63aeb97a63d3634bac2b (patch)
tree2e78c87c6aa9b55f2ac4a0045692038654d024f3 /test/parallel/test-tls-generic-stream.js
parentdd2200ecf831cae5f57b69e3ee8a934efbe20af8 (diff)
downloadandroid-node-v8-93656f4366bcb6084cae63aeb97a63d3634bac2b.tar.gz
android-node-v8-93656f4366bcb6084cae63aeb97a63d3634bac2b.tar.bz2
android-node-v8-93656f4366bcb6084cae63aeb97a63d3634bac2b.zip
doc,test: mention Duplex support for TLS
Document and test the existing support for generic Duplex streams in the TLS module. PR-URL: https://github.com/nodejs/node/pull/17599 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Diffstat (limited to 'test/parallel/test-tls-generic-stream.js')
-rw-r--r--test/parallel/test-tls-generic-stream.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/test/parallel/test-tls-generic-stream.js b/test/parallel/test-tls-generic-stream.js
new file mode 100644
index 0000000000..d4e5427aca
--- /dev/null
+++ b/test/parallel/test-tls-generic-stream.js
@@ -0,0 +1,38 @@
+'use strict';
+const common = require('../common');
+if (!common.hasCrypto)
+ common.skip('missing crypto');
+
+const fixtures = require('../common/fixtures');
+const makeDuplexPair = require('../common/duplexpair');
+const assert = require('assert');
+const { TLSSocket, connect } = require('tls');
+
+const key = fixtures.readKey('agent1-key.pem');
+const cert = fixtures.readKey('agent1-cert.pem');
+const ca = fixtures.readKey('ca1-cert.pem');
+
+const { clientSide, serverSide } = makeDuplexPair();
+
+const clientTLS = connect({
+ socket: clientSide,
+ ca,
+ host: 'agent1' // Hostname from certificate
+});
+const serverTLS = new TLSSocket(serverSide, {
+ isServer: true,
+ key,
+ cert,
+ ca
+});
+
+assert.strictEqual(clientTLS.connecting, false);
+assert.strictEqual(serverTLS.connecting, false);
+
+clientTLS.on('secureConnect', common.mustCall(() => {
+ clientTLS.write('foobar', common.mustCall(() => {
+ assert.strictEqual(serverTLS.read().toString(), 'foobar');
+ assert.strictEqual(clientTLS._handle.writeQueueSize, 0);
+ }));
+ assert.ok(clientTLS._handle.writeQueueSize > 0);
+}));