RequireSSL 0.05, skipped tests will now run if Catalyst >= 5.5
[catagits/Catalyst-Plugin-RequireSSL.git] / t / 04ssl.t
CommitLineData
4585dfb1 1#!perl\r
2\r
3use strict;\r
4use warnings;\r
5\r
6use FindBin;\r
7use lib "$FindBin::Bin/lib";\r
8\r
9use Test::More tests => 15;\r
10use Catalyst::Test 'TestApp';\r
11use HTTP::Request::Common;\r
12\r
13# test an SSL redirect\r
14ok( my $res = request('http://localhost/ssl/secured'), 'request ok' );\r
15is( $res->code, 302, 'redirect code ok' );\r
16is( $res->header('location'), 'https://localhost/ssl/secured', 'redirect uri ok' );\r
17isnt( $res->content, 'Secured', 'no content displayed on secure page, ok' );\r
18\r
19# test redirection params\r
20ok( $res = request('http://localhost/ssl/secured?a=2&a=1&b=3&c=4'), 'request ok' );\r
21is( $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
24my $request = POST( 'http://localhost/ssl/secured', \r
25 'Content' => '',\r
26 'Content-Type' => 'application/x-www-form-urlencoded'\r
27);\r
28ok( $res = request($request), 'request ok' );\r
29is( $res->code, 200, 'POST ok' );\r
30\r
31# test that it doesn't redirect if already in SSL mode\r
32SKIP:\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