summaryrefslogtreecommitdiff
path: root/test/parallel/test-tls-server-failed-handshake-emits-clienterror.js
blob: a404dc904ba7b73d6a919398eed14227c2327878 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
'use strict';
const common = require('../common');

if (!common.hasCrypto) {
  common.skip('missing crypto');
  return;
}
const tls = require('tls');
const net = require('net');
const assert = require('assert');

const bonkers = Buffer.alloc(1024, 42);

let tlsClientErrorEmited = false;

const server = tls.createServer({})
  .listen(0, function() {
    const c = net.connect({ port: this.address().port }, function() {
      c.write(bonkers);
    });

  }).on('tlsClientError', function(e) {
    tlsClientErrorEmited = true;
    assert.ok(e instanceof Error,
              'Instance of Error should be passed to error handler');
    assert.ok(e.message.match(
      /SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol/),
      'Expecting SSL unknown protocol');
  });

setTimeout(function() {
  server.close();

  assert.ok(tlsClientErrorEmited,
            'tlsClientError should be emited');

}, common.platformTimeout(200));