use strict;
use Test::More;
use Plack::Test;
use HTTP::Request::Common;
use Plack::Middleware::Recursive;
my $app = sub {
my $env = shift;
if ($env->{PATH_INFO} eq '/forwarded') {
is_deeply $env->{'plack.recursive.old_path_info'}, [ '/' ];
return sub { $_[0]->([ 200, [ 'Content-Type', 'text/plain' ], [ "Hello $env->{QUERY_STRING}" ] ]) };
}
return sub {
my $respond = shift;
my $r = $env->{'plack.recursive.include'}->("/forwarded?q=bar");
ref $r eq 'CODE' ? $r->($respond) : $respond->($r);
};
};
$app = Plack::Middleware::Recursive->wrap($app);
test_psgi $app, sub {
my $cb = shift;
my $res = $cb->(GET "/");
is $res->code, 200;
is $res->content, "Hello q=bar";
};
done_testing;