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 )