use strict;
use warnings FATAL => 'all';
use Test::More (
eval { require HTTP::Request::AsCGI }
? 'no_plan'
: (skip_all => 'No HTTP::Request::AsCGI')
);
use HTTP::Request::Common qw(GET POST);
my $app = StreamTest->new;
ok run_request( $app, GET 'http://localhost/' )->is_success;
is run_request( $app, GET 'http://localhost/' )->content, "foo";
sub run_request {
my ( $app, $request ) = @_;
my $c = HTTP::Request::AsCGI->new( $request )->setup;
$app->run;
$c->restore;
return $c->response;
}
{
package StreamTest;
use Web::Simple;
sub dispatch_request {
sub (GET) {
[
sub {
my $respond = shift;
my $writer = $respond->( [ 200, [ "Content-type" => "text/plain" ] ] );
$writer->write( 'f' );
$writer->write( 'o' );
$writer->write( 'o' );
}
];
},;
}
}