7 use lib "$FindBin::Bin/lib";
\r
9 use Test::More tests => 15;
\r
10 use Catalyst::Test 'TestApp';
\r
11 use HTTP::Request::Common;
\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
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
23 # test that it doesn't redirect on POST
\r
24 my $request = POST( 'http://localhost/ssl/secured',
\r
26 'Content-Type' => 'application/x-www-form-urlencoded'
\r
28 ok( $res = request($request), 'request ok' );
\r
29 is( $res->code, 200, 'POST ok' );
\r
31 # test that it doesn't redirect if already in SSL mode
\r
34 skip "These tests require a patch to Catalyst", 7;
\r
35 # patch is to Catalyst::Engine::HTTP::Base in 5.3x
\r
36 # Catalyst::Engine::Test in 5.5
\r
37 ok( $res = request('https://localhost/ssl/secured'), 'request ok' );
\r
38 is( $res->code, 200, 'SSL request, ok' );
\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
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