Skip to content

Commit

Permalink
more Mojo::IOLoop::TLS tests
Browse files Browse the repository at this point in the history
  • Loading branch information
kraih committed Jan 14, 2017
1 parent 28ac3be commit f598fcb
Showing 1 changed file with 26 additions and 4 deletions.
30 changes: 26 additions & 4 deletions t/mojo/tls.t
Expand Up @@ -13,17 +13,16 @@ use Mojo::IOLoop;
use Socket;

# Built-in certificate
my $loop = Mojo::IOLoop->new;
socketpair(my $client_sock, my $server_sock, AF_UNIX, SOCK_STREAM, PF_UNSPEC)
or die "Couldn't create socket pair: $!";
$client_sock->blocking(0);
$server_sock->blocking(0);
my $delay = $loop->delay;
my $server = Mojo::IOLoop::TLS->new($server_sock)->reactor($loop->reactor);
my $delay = Mojo::IOLoop->delay;
my $server = Mojo::IOLoop::TLS->new($server_sock);
$server->once(upgrade => $delay->begin);
$server->once(error => sub { warn pop });
$server->negotiate(server => 1);
my $client = Mojo::IOLoop::TLS->new($client_sock)->reactor($loop->reactor);
my $client = Mojo::IOLoop::TLS->new($client_sock);
$client->once(upgrade => $delay->begin);
$client->once(error => sub { warn pop });
$client->negotiate;
Expand All @@ -33,4 +32,27 @@ $delay->wait;
is ref $client_result, 'IO::Socket::SSL', 'right class';
is ref $server_result, 'IO::Socket::SSL', 'right class';

# Built-in certificate (custom event loop and cipher)
my $loop = Mojo::IOLoop->new;
socketpair($client_sock, $server_sock, AF_UNIX, SOCK_STREAM, PF_UNSPEC)
or die "Couldn't create socket pair: $!";
$client_sock->blocking(0);
$server_sock->blocking(0);
$delay = $loop->delay;
$server = Mojo::IOLoop::TLS->new($server_sock)->reactor($loop->reactor);
$server->once(upgrade => $delay->begin);
$server->once(error => sub { warn pop });
$server->negotiate(server => 1, tls_ciphers => 'AES256-SHA:ALL');
$client = Mojo::IOLoop::TLS->new($client_sock)->reactor($loop->reactor);
$client->once(upgrade => $delay->begin);
$client->once(error => sub { warn pop });
$client->negotiate;
$client_result = $server_result = undef;
$delay->on(finish => sub { (undef, $server_result, $client_result) = @_ });
$delay->wait;
is ref $client_result, 'IO::Socket::SSL', 'right class';
is $client_result->get_cipher, 'AES256-SHA', 'AES256-SHA has been negotiatied';
is ref $server_result, 'IO::Socket::SSL', 'right class';
is $server_result->get_cipher, 'AES256-SHA', 'AES256-SHA has been negotiatied';

done_testing;

0 comments on commit f598fcb

Please sign in to comment.