#!perl
use strict;
use constant P=>'Plack::App::CGIBin::Streaming';
BEGIN {
unless (defined $ENV{PLACK_TEST_IMPL}) {
unshift @INC, 't';
@ENV{qw/PLACK_TEST_IMPL PLACK_SERVER/}=qw/Server TestServer/;
}
}
(my $root=__FILE__)=~s![^/]*$!cgi-bin!;
test_psgi
app=>P->new(
root=>$root,
request_params=>
[
parse_headers=>1,
content_type=>'text/html; charset=UTF8',
on_flush=>sub {
my $r=shift;
$r->notes->{flushed}++;
},
on_finalize=>sub {
my $r=shift;
$r->print_content("\nflushed: ",
($r->notes->{flushed}+0),
"\n");
},
suppress_flush=>1,
max_buffer=>10,
],
)->to_app,
client=>sub {
my $cb=shift;
my $res;
note '/simple.cgi';
$res=$cb->(GET '/simple.cgi');
is $res->code, 200, 'status';
is $res->content, "huhu\n\nflushed: 0\n", 'content';
note '/simple.cgi?3';
$res=$cb->(GET '/simple.cgi?3');
is $res->code, 200, 'status';
is $res->content, ("huhu\n" x 3)."\nflushed: 1\n", 'content';
note '/suppress_flush.cgi';
$res=$cb->(GET '/suppress_flush.cgi');
is $res->code, 200, 'status';
is $res->content, "xxx||xxx\nflushed: 1\n", 'content';
note '/suppress_flush.cgi?dont_suppress';
$res=$cb->(GET '/suppress_flush.cgi?dont_suppress');
is $res->code, 200, 'status';
is $res->content, "xxx||xxx\nflushed: 7\n", 'content';
};
done_testing;