| 'use strict'; |
| |
| // Test that TLSSocket can take arrays of strings for ALPNProtocols. |
| |
| const common = require('../common'); |
| |
| if (!common.hasCrypto) |
| common.skip('missing crypto'); |
| |
| const tls = require('tls'); |
| |
| new tls.TLSSocket(null, { |
| ALPNProtocols: ['http/1.1'], |
| }); |
| |
| const assert = require('assert'); |
| const net = require('net'); |
| const fixtures = require('../common/fixtures'); |
| |
| const key = fixtures.readKey('agent1-key.pem'); |
| const cert = fixtures.readKey('agent1-cert.pem'); |
| |
| const server = net.createServer(common.mustCall((s) => { |
| const tlsSocket = new tls.TLSSocket(s, { |
| isServer: true, |
| server, |
| key, |
| cert, |
| ALPNProtocols: ['http/1.1'], |
| }); |
| |
| tlsSocket.on('secure', common.mustCall(() => { |
| assert.strictEqual(tlsSocket.alpnProtocol, 'http/1.1'); |
| tlsSocket.end(); |
| server.close(); |
| })); |
| })); |
| |
| server.listen(0, common.mustCall(() => { |
| const alpnOpts = { |
| port: server.address().port, |
| rejectUnauthorized: false, |
| ALPNProtocols: ['h2', 'http/1.1'] |
| }; |
| |
| tls.connect(alpnOpts, common.mustCall(function() { |
| this.end(); |
| })); |
| })); |