Commit | Line | Data |
4585dfb1 |
1 | #!perl\r |
2 | \r |
3 | use strict;\r |
4 | use warnings;\r |
5 | \r |
6 | use FindBin;\r |
7 | use lib "$FindBin::Bin/lib";\r |
8 | \r |
9 | use Test::More tests => 15;\r |
10 | use Catalyst::Test 'TestApp';\r |
11 | use HTTP::Request::Common;\r |
12 | \r |
13 | # test an SSL redirect\r |
14 | ok( my $res = request('http://localhost/ssl/secured'), 'request ok' );\r |
15 | is( $res->code, 302, 'redirect code ok' );\r |
16 | is( $res->header('location'), 'https://localhost/ssl/secured', 'redirect uri ok' );\r |
17 | isnt( $res->content, 'Secured', 'no content displayed on secure page, ok' );\r |
18 | \r |
19 | # test redirection params\r |
20 | ok( $res = request('http://localhost/ssl/secured?a=2&a=1&b=3&c=4'), 'request ok' );\r |
21 | is( $res->header('location'), 'https://localhost/ssl/secured?a=1&a=2&b=3&c=4', 'redirect with params ok' );\r |
22 | \r |
23 | # test that it doesn't redirect on POST\r |
24 | my $request = POST( 'http://localhost/ssl/secured', \r |
25 | 'Content' => '',\r |
26 | 'Content-Type' => 'application/x-www-form-urlencoded'\r |
27 | );\r |
28 | ok( $res = request($request), 'request ok' );\r |
29 | is( $res->code, 200, 'POST ok' );\r |
30 | \r |
31 | # test that it doesn't redirect if already in SSL mode\r |
32 | SKIP:\r |
33 | {\r |
cc4f2717 |
34 | if ( Catalyst->VERSION < 5.5 ) {\r |
35 | skip "These tests require Catalyst >= 5.5", 7;\r |
36 | }\r |
4585dfb1 |
37 | ok( $res = request('https://localhost/ssl/secured'), 'request ok' );\r |
38 | is( $res->code, 200, 'SSL request, ok' );\r |
39 | \r |
40 | # test redirect back to http mode\r |
41 | ok( $res = request('https://localhost/ssl/unsecured'), 'request ok' );\r |
42 | is( $res->code, 302, 'redirect back to http ok' );\r |
43 | is( $res->header('location'), 'http://localhost/ssl/unsecured', 'redirect uri ok' );\r |
44 | \r |
45 | # test redirection params\r |
46 | ok( $res = request('https://localhost/ssl/unsecured?a=2&a=1&b=3&c=4'), 'request ok' );\r |
47 | is( $res->header('location'), 'http://localhost/ssl/unsecured?a=1&a=2&b=3&c=4', 'redirect with params ok' );\r |
48 | }\r |
49 | \r |