From defa756683c10f88c0c06ed4b72417e86062037d Mon Sep 17 00:00:00 2001 From: Yoseph Maguire Date: Fri, 21 Feb 2020 10:27:14 -0800 Subject: [PATCH] feat: add tests for SNI --- test/secure_client.js | 29 +++++++++++++++++++++++++++++ test/server.js | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/test/secure_client.js b/test/secure_client.js index 378924861..0acb12810 100644 --- a/test/secure_client.js +++ b/test/secure_client.js @@ -153,5 +153,34 @@ describe('MqttSecureClient', function () { done() }) }) + + it.only('should support SNI on the TLS connection', function (done) { + var hostname, client + server.removeAllListeners('secureConnection') // clear eventHandler + server.once('secureConnection', function (tlsSocket) { // one time eventHandler + assert(tlsSocket.servername) // validate SNI set + server.on('secureConnection', Server.setupConnection) // reset eventHandler + + var that = this + var connection = new Connection(tlsSocket, function () { + that.emit('client', connection) + }) + }) + + client = mqtt.connect({ + protocol: 'mqtts', + port: port, + ca: [fs.readFileSync(CERT)], + rejectUnauthorized: true, + }) + + client.on('error', function (err) { + done(err) + }) + + server.once('connect', function () { + done() + }) + }) }) }) diff --git a/test/server.js b/test/server.js index 3baf7f16b..f3091c370 100644 --- a/test/server.js +++ b/test/server.js @@ -8,7 +8,7 @@ var MqttServer var FastMqttServer var MqttSecureServer -function setupConnection (duplex) { +var setupConnection = module.exports.setupConnection = function setupConnection (duplex) { var that = this var connection = new Connection(duplex, function () { that.emit('client', connection)