aboutsummaryrefslogtreecommitdiff
path: root/test/parallel/test-tls-generic-stream.js
diff options
context:
space:
mode:
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);
+}));