'use strict';
const common = require('../common');

if (!common.hasCrypto)
  common.skip('missing crypto');

const tls = require('tls');
const net = require('net');
const assert = require('assert');

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


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

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

    server.close();
  }));
