use strict; use warnings; use utf8; use Test::Requires 'Test::WWW::Mechanize::PSGI', 'HTTP::Server::PSGI', 'Test::TCP'; use Test::More; use Moxy; use FindBin; use File::Spec::Functions qw/catfile/; use Test::TCP; binmode Test::More->builder->$_, ":utf8" for qw/output failure_output todo_output/; my $moxy = Moxy->new(); my $app = $moxy->to_app(); # ------------------------------------------------------------------------- my $server = Test::TCP->new( code => sub { my $port = shift; my $server = HTTP::Server::PSGI->new( host => '127.0.0.1', port => $port, timeout => 10, ); $server->run(sub { no utf8; my $content = 'お気軽メッセージングハブ'; return [200, [ 'Content-Type' => 'text/html; charset=utf-8', 'Content-Length' => length($content) ], [$content]]; }); }, ); my $port = $server->port; # ------------------------------------------------------------------------- my $mech = Test::WWW::Mechanize::PSGI->new(app => $app); $mech->get('/'); is $mech->res->code(), 401; $mech->credentials('oh', 'my god'); $mech->get_ok('/'); $mech->content_contains('http%3A%2F%2Fuaswitcher.moxy%2F', "user agent switcher's url is converted"); $mech->get_ok("/http://127.0.0.1:$port/"); $mech->content_contains('お気軽'); done_testing;