1use strict;
2use warnings;
3
4use FindBin;
5use lib "$FindBin::Bin/../lib";
6
7use Test::More tests => 26;
8use Catalyst::Test 'TestApp';
9
10{
11    ok( my $response = request('http://localhost/engine/response/redirect/one'), 'Request' );
12    ok( $response->is_redirect, 'Response Redirection 3xx' );
13    is( $response->code, 302, 'Response Code' );
14    is( $response->header('X-Catalyst-Action'), 'engine/response/redirect/one', 'Test Action' );
15    is( $response->header('Location'), '/test/writing/is/boring', 'Response Header Location' );
16    ok( $response->header('Content-Length'), '302 Redirect contains Content-Length' );
17    ok( $response->content, '302 Redirect contains a response body' );
18}
19
20{
21    ok( my $response = request('http://localhost/engine/response/redirect/two'), 'Request' );
22    ok( $response->is_redirect, 'Response Redirection 3xx' );
23    is( $response->code, 302, 'Response Code' );
24    is( $response->header('X-Catalyst-Action'), 'engine/response/redirect/two', 'Test Action' );
25    is( $response->header('Location'), 'http://www.google.com/', 'Response Header Location' );
26}
27
28{
29    ok( my $response = request('http://localhost/engine/response/redirect/three'), 'Request' );
30    ok( $response->is_redirect, 'Response Redirection 3xx' );
31    is( $response->code, 301, 'Response Code' );
32    is( $response->header('X-Catalyst-Action'), 'engine/response/redirect/three', 'Test Action' );
33    is( $response->header('Location'), 'http://www.google.com/', 'Response Header Location' );
34    ok( $response->header('Content-Length'), '301 Redirect contains Content-Length' );
35    ok( $response->content, '301 Redirect contains a response body' );
36}
37
38{
39    ok( my $response = request('http://localhost/engine/response/redirect/four'), 'Request' );
40    ok( $response->is_redirect, 'Response Redirection 3xx' );
41    is( $response->code, 307, 'Response Code' );
42    is( $response->header('X-Catalyst-Action'), 'engine/response/redirect/four', 'Test Action' );
43    is( $response->header('Location'), 'http://www.google.com/', 'Response Header Location' );
44    ok( $response->header('Content-Length'), '307 Redirect contains Content-Length' );
45    ok( $response->content, '307 Redirect contains a response body' );
46}
47