Arriba
view release on metacpan or search on metacpan
t/suite-https.t view on Meta::CPAN
use warnings;
use strict;
use HTTP::Request::Common;
use Plack::LWPish;
use Plack::Test::Suite;
use Test::More;
# Redefine Plack::LWPish::request to change protocol to HTTPS
# (yes, this is a dirty hack)
{
no strict 'refs';
no warnings 'redefine';
my $_Plack_LWPish_request = \&Plack::LWPish::request;
*{'Plack::LWPish::request'} = sub {
my ($self, $req) = @_;
my $url = $req->uri;
$url =~ s{^http://}{https://};
$req->uri($url);
return &$_Plack_LWPish_request($self, $req);
};
}
# Test subroutine to replace the original "psgi.url_scheme" test and accept
# "https" as a correct response
my $url_scheme_test = sub {
my $cb = shift;
my $res = $cb->(POST "http://127.0.0.1/");
is $res->code, 200;
is $res->message, 'OK';
is $res->header('content_type'), 'text/plain';
is $res->content, 'https';
};
@Plack::Test::Suite::TEST = map { $_->[0] eq 'psgi.url_scheme' ?
[ $_->[0], $url_scheme_test, $_->[2] ] : $_ } @Plack::Test::Suite::TEST;
Plack::Test::Suite->run_server_tests('Arriba', undef, undef, ssl => 1,
ssl_cert => 'certs/server-cert.pem', ssl_key => 'certs/server-key.pem');
done_testing();
( run in 1.484 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )