Add note about failing tests on remote servers because of LWP bug
[catagits/Catalyst-Runtime.git] / t / aggregate / live_engine_response_cookies.t
CommitLineData
dd4e6fd2 1#!perl
2
3use strict;
4use warnings;
5
6use FindBin;
42da66a9 7use lib "$FindBin::Bin/../lib";
dd4e6fd2 8
2832cb5d 9use Test::More tests => 15;
dd4e6fd2 10use Catalyst::Test 'TestApp';
dd4e6fd2 11use HTTP::Headers::Util 'split_header_words';
12
fbcc39ad 13my $expected = {
29d278fd 14 catalyst => [qw|catalyst cool path /bah|],
15 cool => [qw|cool catalyst path /|]
dd4e6fd2 16};
17
18{
fbcc39ad 19 ok( my $response = request('http://localhost/engine/response/cookies/one'),
20 'Request' );
dd4e6fd2 21 ok( $response->is_success, 'Response Successful 2xx' );
22 is( $response->content_type, 'text/plain', 'Response Content-Type' );
fbcc39ad 23 is( $response->header('X-Catalyst-Action'),
24 'engine/response/cookies/one', 'Test Action' );
dd4e6fd2 25
26 my $cookies = {};
27
b39840da 28 for my $string ( $response->header('Set-Cookie') ) {
29 my $cookie = [ split_header_words $string];
30 $cookies->{ $cookie->[0]->[0] } = $cookie->[0];
dd4e6fd2 31 }
32
33 is_deeply( $cookies, $expected, 'Response Cookies' );
34}
35
86c71af0 36# XXX: these fail on remote servers due to LWP max_redirect 0 bug:
37# http://rt.cpan.org/Ticket/Display.html?id=40260
dd4e6fd2 38{
fbcc39ad 39 ok( my $response = request('http://localhost/engine/response/cookies/two'),
40 'Request' );
dd4e6fd2 41 ok( $response->is_redirect, 'Response Redirection 3xx' );
f1bbebac 42 is( $response->code, 302, 'Response Code' );
fbcc39ad 43 is( $response->header('X-Catalyst-Action'),
44 'engine/response/cookies/two', 'Test Action' );
dd4e6fd2 45
46 my $cookies = {};
47
b39840da 48 for my $string ( $response->header('Set-Cookie') ) {
49 my $cookie = [ split_header_words $string];
50 $cookies->{ $cookie->[0]->[0] } = $cookie->[0];
dd4e6fd2 51 }
52
53 is_deeply( $cookies, $expected, 'Response Cookies' );
54}
2832cb5d 55
56{
57 ok( my $response = request('http://localhost/engine/response/cookies/three'),
58 'Request' );
59 ok( $response->is_success, 'Response Successful 2xx' );
60 is( $response->content_type, 'text/plain', 'Response Content-Type' );
61 is( $response->header('X-Catalyst-Action'),
62 'engine/response/cookies/three', 'Test Action' );
63
64 my $cookies = {};
65
66 for my $string ( $response->header('Set-Cookie') ) {
67 my $cookie = [ split_header_words $string];
68 $cookies->{ $cookie->[0]->[0] } = $cookie->[0];
69 }
70
71 is_deeply( $cookies, {
72 hash => [ qw(hash a&b&c path /) ],
73 this_is_the_real_name => [ qw(this_is_the_real_name foo&bar path /) ], # not "object"
74 }, 'Response Cookies' );
75}