use strict; use Test::More; use Plack::Builder; my @tests = ( { app => sub { return sub { $_[0]->([ 200, [ 'Content-Type' => 'text/plain' ], [ 'OK' ] ]); }, }, env => { REQUEST_METHOD => 'GET' }, headers => [ 'Content-Type' => 'text/plain' ], body => 'OK', }, { app => sub { return sub { my $writer = $_[0]->([ 200, [ 'Content-Type' => 'text/plain' ]]); $writer->write("O"); $writer->write("K"); $writer->close(); }, }, env => { REQUEST_METHOD => 'GET' }, headers => [ 'Content-Type', 'text/plain' ], body => 'OK', }, ); plan tests => 2 * @tests; for my $block (@tests) { my $handler = builder { enable "BufferedStreaming"; $block->{app}; }; my $res = $handler->($block->{env}); is_deeply $res->[1], $block->{headers}, "headers passed through"; is join("", @{ $res->[2] }), $block->{body}, "body accumulated"; };