$self->response_cb($res, sub {
my $res = Plack::Response->new(@{$_[0]});
$env->{'plack.session'}->finalize( $res );
- @{$_[0]} = @{$res->finalize};
+ $res = $res->finalize;
+ $_[0]->[0] = $res->[0];
+ $_[0]->[1] = $res->[1];
});
}
--- /dev/null
+use strict;
+use Test::More;
+use Test::Requires qw(Plack::Server::AnyEvent);
+use Plack::Test;
+use Plack::Middleware::Session;
+use HTTP::Request::Common;
+
+$Plack::Test::Impl = 'Server';
+$ENV{PLACK_SERVER} = 'AnyEvent';
+
+my $app = sub {
+ return sub {
+ my $respond = shift;
+ my $w = $respond->([ 200, [ 'Content-Type' => 'text/html' ] ]);
+ $w->write("Hello");
+ $w->close;
+ };
+};
+
+$app = Plack::Middleware::Session->wrap($app);
+
+test_psgi $app, sub {
+ my $cb = shift;
+
+ my $res = $cb->(GET "/");
+ is $res->content, "Hello";
+ like $res->header('Set-Cookie'), qr/plack_session/;
+};
+
+done_testing;