fc6401c2418c7cf8d4ab7d2b9ea350b53fc528f5
[catagits/Catalyst-Runtime.git] / t / engine / request / cookies.t
1 #!perl
2
3 use strict;
4 use warnings;
5
6 use FindBin;
7 use lib "$FindBin::Bin/../../lib";
8
9 use Test::More tests => 13;
10 use Catalyst::Test 'TestApp';
11
12 use Catalyst::Request;
13 use CGI::Cookie;
14 use HTTP::Headers;
15 use HTTP::Request::Common;
16 use URI;
17
18 {
19     my $creq;
20
21     my $request = GET( 'http://localhost/dump/request', 
22         'Cookie' => 'Catalyst=Cool; Cool=Catalyst',
23     );
24    
25     ok( my $response = request($request), 'Request' );
26     ok( $response->is_success, 'Response Successful 2xx' );
27     is( $response->content_type, 'text/plain', 'Response Content-Type' );
28     like( $response->content, qr/^bless\( .* 'Catalyst::Request' \)$/s, 'Content is a serialized Catalyst::Request' );
29     ok( eval '$creq = ' . $response->content, 'Unserialize Catalyst::Request' );
30     isa_ok( $creq, 'Catalyst::Request' );
31     isa_ok( $creq->cookies->{Catalyst}, 'CGI::Cookie', 'Cookie Catalyst' );
32     is( $creq->cookies->{Catalyst}->name, 'Catalyst', 'Cookie Catalyst name' );
33     is( $creq->cookies->{Catalyst}->value, 'Cool', 'Cookie Catalyst value' );
34     isa_ok( $creq->cookies->{Cool}, 'CGI::Cookie', 'Cookie Cool' );
35     is( $creq->cookies->{Cool}->name, 'Cool', 'Cookie Cool name' );
36     is( $creq->cookies->{Cool}->value, 'Catalyst', 'Cookie Cool value' );
37
38
39     my $cookies = { 
40         Catalyst => $creq->cookies->{Catalyst},
41         Cool     => $creq->cookies->{Cool}
42     };
43
44     is_deeply( $creq->cookies, $cookies, 'Cookies' );
45 }