# $Id$ use Test::More tests => 15; use HTTP::Cookies::Mozilla; use Data::Dumper; use lib 't'; use TestSqliteCmd; my %Domains = qw( .ebay.com 2 .usatoday.com 3 ); check('t/cookies.txt', 'plain text'); SKIP: { # FF3, using DBI eval { require DBI; require DBD::SQLite; } or skip('DBI/DBD::SQLite not installed', 5); check('t/cookies.sqlite', 'DBI/DBD::SQLite'); } ## end SKIP: SKIP: { # FF3, using sqlite executable my ($prg, $error) = TestSqliteCmd::which_sqlite(); skip($error, 5) unless $prg; $HTTP::Cookies::Mozilla::SQLITE = $prg; { # force complaining from DBI no warnings; *DBI::connect = sub { die 'oops!' }; } check('t/cookies.sqlite', "external program $prg"); } ## end SKIP: sub check { my ($file, $condition) = @_; my $jar = HTTP::Cookies::Mozilla->new(File => $file); isa_ok($jar, 'HTTP::Cookies::Mozilla'); my $hash = $jar->{COOKIES}; my $domain_count = keys %$hash; is($domain_count, 2, "Count of cookies ($condition)"); foreach my $domain (keys %Domains) { my $domain_hash = $hash->{$domain}{'/'}; my $count = keys %$domain_hash; is($count, $Domains{$domain}, "$domain has $count cookies ($condition)"); } is($hash->{'.ebay.com'}{'/'}{'lucky9'}[1], '88341', "Cookie has right value ($condition)"); } ## end sub check