File: cookie.t

package info (click to toggle)
libmojolicious-perl 0.999926-1%2Bsqueeze2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 1,672 kB
  • ctags: 949
  • sloc: perl: 17,391; makefile: 4
file content (135 lines) | stat: -rw-r--r-- 4,802 bytes parent folder | download
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');