use strict;
use warnings;
-use Test::More tests => 15;
+use Test::More tests => 13;
use Test::MockObject;
use Test::MockObject::Extends;
$cxt->config->{session}{cookie_name} = "session";
-can_ok( $m, "prepare_cookies" );
+can_ok( $m, "get_session_id" );
-$cxt->prepare_cookies;
-ok( !$cxt->called("sessionid"),
- "didn't try setting session ID when there was nothing to set it by" );
+ok( !$cxt->get_session_id, "no session id yet");
$cxt->clear;
%req_cookies = ( session => $cookie );
-ok( !$cxt->sessionid, "no session ID yet" );
-$cxt->prepare_cookies;
-is( $cxt->sessionid, "the session id", "session ID was restored from cookie" );
+is( $cxt->get_session_id, "the session id", "session ID was restored from cookie" );
$cxt->clear;
$res->clear;
-can_ok( $m, "finalize_cookies" );
-$cxt->finalize_cookies;
-{
- local $TODO =
- "This check is a pain to write, should be done by catalyst itself";
- ok( !$res->called("cookies"),
- "response cookie was not set since res cookie is already there" );
-}
+can_ok( $m, "set_session_id" );
+$cxt->set_session_id("moose");
-$cxt->clear;
-$sessionid = undef;
-$res->clear;
+$res->called_ok( "cookies", "created a cookie on set" );
-$cxt->finalize_cookies;
-ok( !$res->called("cookies"),
-"response cookie was not set when sessionid was deleted, even if req cookie is still there"
-);
-
-$sessionid = "some other ID";
$cxt->clear;
$res->clear;
-$cxt->finalize_cookies;
+$cxt->set_session_id($sessionid);
+
$res->called_ok( "cookies", "response cookie was set when sessionid changed" );
is_deeply(
\%res_cookies,
);
$cxt->clear;
-$res->clear;
-%req_cookies = ();
-%res_cookies = ();
-$sessionid = undef;
-
-$cxt->finalize_cookies;
-ok( !$res->called("cookies"),
- "response cookie was not set when there is no sessionid or request cookie"
-);
+$req->clear;
-$cxt->clear;
-$sessionid = "123";
-%res_cookies = ();
-$res->clear;
-
-$cxt->finalize_cookies;
-
-$res->called_ok( "cookies",
- "response cookie was set when session was created" );
-is_deeply(
- \%res_cookies,
- { session => { value => $sessionid, expires => 123 } },
- "cookie was set correctly"
-);
+can_ok( $m, "cookie_is_rejecting" );
+%req_cookies = ( path => '/foo' );
+$req->set_always( path => '/' );
+ok( $cxt->cookie_is_rejecting(\%req_cookies), "cookie is rejecting" );
+$req->set_always( path => '/foo/bar' );
+ok( !$cxt->cookie_is_rejecting(\%req_cookies), "cookie is not rejecting" );