use strict;
use warnings;
use lib 'tlive/lib';
use Test::More;
use AnyEvent;
use AnyEvent::Impl::Perl;
use AnyEvent::Socket;
use IO::Socket;
use App::TLSMe;
use FreePort;
my $host = '127.0.0.1';
my $port = FreePort->get_free_port();
my $backend_host = '127.0.0.1';
my $backend_port = FreePort->get_free_port();
tcp_server $backend_host, $backend_port, sub {
my ($fh, $host, $port) = @_;
syswrite $fh, "200 OK\015\012";
};
my $tlsme = App::TLSMe->new(
listen => "$host:$port",
backend => "$backend_host:$backend_port"
);
my $handle = AnyEvent::Handle->new(
connect => [$host, $port],
tls => "connect",
tls_ctx => {},
on_read => sub {
my ($handle) = @_;
$handle->push_read(
line => sub {
is($_[1], '200 OK');
}
);
},
on_eof => sub {
$tlsme->stop;
}
);
$handle->push_write(<<"EOF");
GET / HTTP/1.1
EOF
$tlsme->run;
done_testing;