Cleaned up _redirect_uri() - replaced manual query param processing with manipulation...
[catagits/Catalyst-Plugin-RequireSSL.git] / t / 04ssl.t
index a120471..818bb9d 100644 (file)
--- a/t/04ssl.t
+++ b/t/04ssl.t
@@ -6,7 +6,7 @@ use warnings;
 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
@@ -17,9 +17,13 @@ is( $res->header('location'), 'https://localhost/ssl/secured', 'redirect uri ok'
 isnt( $res->content, 'Secured', 'no content displayed on secure page, ok' );\r
 \r
 # test redirection params\r
-ok( $res = request('http://localhost/ssl/secured?a=2&a=1&b=3&c=4'), 'request ok' );\r
+ok( $res = request('http://localhost/ssl/secured?a=1&a=2&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
@@ -43,7 +47,11 @@ SKIP:
     is( $res->header('location'), 'http://localhost/ssl/unsecured', 'redirect uri 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
+    ok( $res = request('https://localhost/ssl/unsecured?a=1&a=2&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