1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
#!/usr/bin/env perl
# Copyright (C) 2008-2010, Sebastian Riedel.
use strict;
use warnings;
use Test::More tests => 43;
# What good is money if it can't inspire terror in your fellow man?
use_ok('Mojo::Cookie::Request');
use_ok('Mojo::Cookie::Response');
# Request cookie as string
my $cookie = Mojo::Cookie::Request->new;
$cookie->name('foo');
$cookie->value('ba =r');
$cookie->path('/test');
$cookie->version(1);
is("$cookie", 'foo=ba =r; $Path=/test', 'right format');
is( $cookie->to_string_with_prefix,
'$Version=1; foo=ba =r; $Path=/test',
'right format'
);
# Empty cookie
$cookie = Mojo::Cookie::Request->new;
my $cookies = $cookie->parse();
# Parse normal request cookie
$cookie = Mojo::Cookie::Request->new;
$cookies = $cookie->parse('$Version=1; foo=bar; $Path="/test"');
is($cookies->[0]->name, 'foo', 'right name');
is($cookies->[0]->value, 'bar', 'right value');
is($cookies->[0]->path, '/test', 'right path');
is($cookies->[0]->version, '1', 'right version');
# Parse quoted request cookie
$cookie = Mojo::Cookie::Request->new;
$cookies = $cookie->parse('$Version=1; foo="b a\" r\"\\"; $Path="/test"');
is($cookies->[0]->name, 'foo', 'right name');
is($cookies->[0]->value, 'b a" r"\\', 'right value');
is($cookies->[0]->path, '/test', 'right path');
is($cookies->[0]->version, '1', 'right version');
# Parse multiple cookie request
$cookies = Mojo::Cookie::Request->parse(
'$Version=1; foo=bar; $Path=/test; baz=la la; $Path=/tset');
is($cookies->[0]->name, 'foo', 'right name');
is($cookies->[0]->value, 'bar', 'right value');
is($cookies->[0]->path, '/test', 'right path');
is($cookies->[0]->version, '1', 'right version');
is($cookies->[1]->name, 'baz', 'right name');
is($cookies->[1]->value, 'la la', 'right value');
is($cookies->[1]->path, '/tset', 'right path');
is($cookies->[1]->version, '1', 'right version');
# Response cookie as string
$cookie = Mojo::Cookie::Response->new;
$cookie->name('foo');
$cookie->value('ba r');
$cookie->path('/test');
$cookie->version(1);
is("$cookie", 'foo=ba r; Version=1; Path=/test', 'right format');
# Full response cookie as string
$cookie = Mojo::Cookie::Response->new;
$cookie->name('foo');
$cookie->value('ba r');
$cookie->domain('kraih.com');
$cookie->path('/test');
$cookie->max_age(60);
$cookie->expires(1218092879);
$cookie->port('80 8080');
$cookie->secure(1);
$cookie->httponly(1);
$cookie->comment('lalalala');
$cookie->version(1);
is( "$cookie",
'foo=ba r; Version=1; Domain=kraih.com; Path=/test;'
. ' Max-Age=60; expires=Thu, 07 Aug 2008 07:07:59 GMT;'
. ' Port="80 8080"; Secure; HttpOnly; Comment=lalalala',
'right format'
);
# Parse response cookie
$cookies = Mojo::Cookie::Response->parse(
'foo=ba r; Version=1; Domain=kraih.com; Path=/test; Max-Age=60;'
. ' expires=Thu, 07 Aug 2008 07:07:59 GMT; Port="80 8080"; Secure;'
. ' Comment=lalalala');
is($cookies->[0]->name, 'foo', 'right name');
is($cookies->[0]->value, 'ba r', 'right value');
is($cookies->[0]->domain, 'kraih.com', 'right domain');
is($cookies->[0]->path, '/test', 'right path');
is($cookies->[0]->max_age, 60, 'right max age value');
is( $cookies->[0]->expires,
'Thu, 07 Aug 2008 07:07:59 GMT',
'right expires value'
);
is($cookies->[0]->port, '80 8080', 'right port');
is($cookies->[0]->secure, '1', 'right secure flag');
is($cookies->[0]->comment, 'lalalala', 'right comment');
is($cookies->[0]->version, '1', 'right version');
# Cookie with Max-Age 0 and expires 0
$cookie = Mojo::Cookie::Response->new;
$cookie->name('foo');
$cookie->value('bar');
$cookie->path('/');
$cookie->max_age(0);
$cookie->expires(0);
$cookie->version(1);
is( "$cookie",
'foo=bar; Version=1; Path=/; Max-Age=0;'
. ' expires=Thu, 01 Jan 1970 00:00:00 GMT',
'right format'
);
# Parse response cookie with Max-Age 0 and expires 0
$cookies = Mojo::Cookie::Response->parse(
'foo=bar; Version=1; Domain=kraih.com; Path=/; Max-Age=0;'
. ' expires=Thu, 01 Jan 1970 00:00:00 GMT; Secure; Comment=lalalala');
is($cookies->[0]->name, 'foo', 'right name');
is($cookies->[0]->value, 'bar', 'right value');
is($cookies->[0]->domain, 'kraih.com', 'right domain');
is($cookies->[0]->path, '/', 'right path');
is($cookies->[0]->max_age, 0, 'right max age value');
is( $cookies->[0]->expires,
'Thu, 01 Jan 1970 00:00:00 GMT',
'right expires value'
);
is($cookies->[0]->expires->epoch, 0, 'right expires epoch value');
is($cookies->[0]->secure, '1', 'right secure flag');
is($cookies->[0]->comment, 'lalalala', 'right comment');
is($cookies->[0]->version, '1', 'right version');
|