HTTP-State
view release on metacpan or search on metacpan
t/04-storage-model.t view on Meta::CPAN
use strict;
use warnings;
use feature ":all";
##################################
# use Data::Dumper; #
# use Log::ger::Output "Screen"; #
# #
# use Log::OK { #
# lvl=>"info", #
# opt=>"verbose" #
# }; #
##################################
use Test::More;
use HTTP::State;
use HTTP::State::Cookie ":all";
# Tests for RFC6265bis Section 5.6 and storage processing steps
{
my $jar=HTTP::State->new;
my $string="name=value; Secure";
my $request_host="hello.com.au";
my $request_scheme="https";
my $request_path="/path/to/file.pdf";
my $url="$request_scheme://$request_host$request_path";
$jar->store_cookies($url, undef, 0xFF, $string);
my @dump=$jar->dump_cookies;
#say STDERR " COOKIE VALUE IS: ",join ", ", @dump;
ok @dump == 1, "Cookie added";
#Test default values
my $c=$dump[0];
# Default domain should be set to request host
ok $c=~/Domain=$request_host/, "Default domain set";
# Default path set to 'dirname' of path if not ending with a slash
use File::Basename qw<dirname>;
my $p=dirname $request_path;
ok $c=~m|Path=$p|, "Default path set";
# Default samesite is none
ok $c=~m|SameSite=Default|, "Default samesite";
# Default persistent is faule. No Max-Age or Expiry
ok $c!~m|Persistent|, "Default not persistent";
}
{
# Reject cookie as domain mismatch to url
my $jar=HTTP::State->new;
my $domain="some.com.au; Secure";
my $string="name=value; Domain=$domain";
my $request_host="www.hello.com.au";
my $request_scheme="https";
my $request_path="/path/to/file.pdf";
( run in 1.782 second using v1.01-cache-2.11-cpan-39bf76dae61 )