1use strict; 2use warnings; 3 4use Test::More tests => 4; 5use HTTP::Request; 6use HTTP::Cookies; 7use HTTP::Async; 8 9use FindBin; 10use lib "$FindBin::Bin"; 11require TestServer; 12 13my $s = TestServer->new(); 14my $url_root = $s->started_ok("starting a test server"); 15 16my $q = HTTP::Async->new; 17 18my $cookie_jar = HTTP::Cookies->new({}); 19$q->cookie_jar($cookie_jar); 20 21# Receive a cookie and store it in a cookie jar 22{ 23 my $url = "$url_root/foo/bar?cookie=1"; 24 25 my $req = HTTP::Request->new('GET', $url); 26 ok $q->add($req), "Added request to the queue"; 27 $q->poke while !$q->to_return_count; 28 29 my $res = $q->next_response; 30 my $response_cookie = $res->header('Set-Cookie'); 31 ok $response_cookie =~ m/x=test/, "Got cookie in response '$response_cookie'"; 32 33 my $jar_cookie = $cookie_jar->as_string(); 34 ok $jar_cookie =~ m/x=test/, "Got cookie from cookie jar '$jar_cookie'"; 35} 36