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