use strict;
use WWW::Mechanize::Firefox;
use Time::HiRes;
use Test::More;
use lib '../inc', 'inc';
require Test::HTTP::LocalServer;
use t::helper;
my $err = t::helper::default_unavailable();
if ($err) {
plan skip_all => "Couldn't connect to MozRepl: $err";
exit
} else {
plan tests => 8;
};
my $mech=
WWW::Mechanize::Firefox->new(
autodie => 0,
#log => [qw[debug]],
);
my @cleanup;
my $magic = "$0-shazam";
my $server = Test::HTTP::LocalServer->spawn(
#debug => 1,
);
$mech->get($server->url);
is $mech->status, 200, "We got the local page";
unlike $server->get_log, qr/$magic/, "We sent no magic cookie";
my $cookies = $mech->cookies;
$cookies->set_cookie(
1,
'www_mechanize_firefox_test',
$magic,
"/",
$server->url->host,
$server->url->port,
undef,
undef,
5, # 5 seconds expiry
);
my $count;
$cookies->load;
$mech->get($server->url);
is $mech->status, 200, "We got the local page";
my $log = $server->get_log;
like $log, qr/^Cookie:.*? \Qwww_mechanize_firefox_test=$magic\E/m, "We sent the magic cookie";
like $log, qr/^Cookie:.*? \Qlog-server\E/m, "We sent the webserver cookie";
push @cleanup, "$0.tmp";
END { unlink $_ for @cleanup };
$mech->save_url($server->url . "save_url_test" => $cleanup[-1]);
$log = $server->get_log;
(my $cookie) = ($log =~ /^(Cookie:.*?)$/m);
like $log, qr/^Cookie:.*? \Qwww_mechanize_firefox_test=$magic\E/m, "We sent the magic cookie"
or diag $cookie;
like $log, qr/^Cookie:.*? \Qlog-server\E/m, "We sent the webserver cookie"
or diag $cookie;
# Scan for HTTPOnly cookie
$cookies->scan(sub{ $count++ if $_[1] eq 'log-server-httponly' and $_[2] eq 'supersecret' });
is $count, 1, "We found the HTTPOnly cookie";
$server->stop;