1use strict; 2use warnings; 3 4use Test::More; 5use WebDriver::Tiny; 6 7my $drv = WebDriver::Tiny->new( 8 capabilities => { 'moz:firefoxOptions' => { args => ['-headless'] } }, 9 host => 'geckodriver', 10 port => 4444, 11); 12 13$drv->get('http://httpd'); 14 15is_deeply $drv->cookies, {}, 'No cookies'; 16 17my $expiry = time + 9; 18 19$drv->cookie( foo => 'bar', expiry => $expiry ); 20$drv->cookie( baz => 'qux', expiry => $expiry, path => '/' ); 21 22my $cookie = { 23 domain => 'httpd', 24 expiry => $expiry, 25 httpOnly => $JSON::PP::false, 26 name => 'foo', 27 path => '/', 28 sameSite => 'None', 29 secure => $JSON::PP::false, 30 value => 'bar', 31}; 32 33is_deeply $drv->cookie('foo'), $cookie, 'Cookie "foo" exists'; 34 35is_deeply $drv->cookies, { 36 foo => $cookie, 37 baz => { 38 sameSite => 'None', 39 domain => 'httpd', 40 expiry => $expiry, 41 httpOnly => $JSON::PP::false, 42 name => 'baz', 43 path => '/', 44 secure => $JSON::PP::false, 45 value => 'qux', 46 }, 47}, 'Cookies exists'; 48 49$drv->cookie_delete('foo'); 50 51is_deeply [ keys %{ $drv->cookies } ], ['baz'], 'Only "baz" left'; 52 53$drv->cookie_delete; 54 55is keys %{ $drv->cookies }, 0, 'No cookies left'; 56 57done_testing; 58