use FindBin;\r
use lib "$FindBin::Bin/lib";\r
\r
-use Test::More tests => 15;\r
+use Test::More tests => 19;\r
use Catalyst::Test 'TestApp';\r
use HTTP::Request::Common;\r
\r
ok( $res = request('http://localhost/ssl/secured?a=2&a=1&b=3&c=4'), 'request ok' );\r
is( $res->header('location'), 'https://localhost/ssl/secured?a=1&a=2&b=3&c=4', 'redirect with params ok' );\r
\r
+# test that it does not redirect for actions where SSL mode is optional\r
+ok( $res = request('http://localhost/ssl/maybe_secured'), 'request ok' );\r
+is( $res->code, 200, 'no redirect for optional SSL action' );\r
+\r
# test that it doesn't redirect on POST\r
my $request = POST( 'http://localhost/ssl/secured', \r
'Content' => '',\r
# test that it doesn't redirect if already in SSL mode\r
SKIP:\r
{\r
- skip "These tests require a patch to Catalyst", 7;\r
- # patch is to Catalyst::Engine::HTTP::Base in 5.3x\r
- # Catalyst::Engine::Test in 5.5\r
+ if ( Catalyst->VERSION < 5.5 ) {\r
+ skip "These tests require Catalyst >= 5.5", 7;\r
+ }\r
ok( $res = request('https://localhost/ssl/secured'), 'request ok' );\r
is( $res->code, 200, 'SSL request, ok' );\r
\r
# test redirection params\r
ok( $res = request('https://localhost/ssl/unsecured?a=2&a=1&b=3&c=4'), 'request ok' );\r
is( $res->header('location'), 'http://localhost/ssl/unsecured?a=1&a=2&b=3&c=4', 'redirect with params ok' );\r
+\r
+ # test that it does not redirect for actions where SSL mode is optional\r
+ ok( $res = request('https://localhost/ssl/maybe_secured'), 'request ok' );\r
+ is( $res->code, 200, 'no redirect for optional SSL action' );\r
}\r
\r