diff options
author | Anna Henningsen <anna@addaleax.net> | 2017-12-11 04:37:47 +0100 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2017-12-12 12:46:21 -0200 |
commit | 93656f4366bcb6084cae63aeb97a63d3634bac2b (patch) | |
tree | 2e78c87c6aa9b55f2ac4a0045692038654d024f3 /test/parallel/test-tls-generic-stream.js | |
parent | dd2200ecf831cae5f57b69e3ee8a934efbe20af8 (diff) | |
download | android-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.js | 38 |
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); +})); |