use strict; use warnings; use Plack::Test; use HTTP::Request::Common; use Data::Dumper; my $app = ...; test_psgi app => $app, client => sub { my ($cb) = @_; my $jar = HTTP::Cookies->new; my $res = $cb->(GET '/'); $jar->extract_cookies($res); my $req = POST '/post'; warn Dumper $req; # Set-Cookieなし $jar->add_cookie_header($req); warn Dumper $req; # Set-Cookieありになってほしいけど、なし $res = $cb->($req); };
headerにSet-Cookieが付いてほしいのに付かない!!ってなった。
HTTP::Cookiesのadd_cookie_headerを見ると
my $url = $request->uri; my $scheme = $url->scheme; unless ($scheme =~ /^https?\z/) { return; }
と書かれていたので、
my $req = POST '/post';
の部分を
my $req = POST 'http://localhost/post';
にしたら付いてくれた。ハッピー!