X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Plugin-Session-State-Cookie.git;a=blobdiff_plain;f=t%2Fbasic.t;h=66711dda38ec089c4deae75d2e8ce46c640a0a5b;hp=ea32870c4c02d0a65057bf089c7c51d36edd2402;hb=ae33e13f7358be30696b7b24bc396982efc94040;hpb=1a776a0c28d878c0faad12f6cf35b72bfe87991d diff --git a/t/basic.t b/t/basic.t index ea32870..66711dd 100644 --- a/t/basic.t +++ b/t/basic.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 13; +use Test::More tests => 15; use Test::MockObject; use Test::MockObject::Extends; @@ -24,12 +24,21 @@ $res->set_always( cookies => \%res_cookies ); my $cxt = Test::MockObject::Extends->new("Catalyst::Plugin::Session::State::Cookie"); +$cxt->set_always( config => {} ); $cxt->set_always( request => $req ); $cxt->set_always( response => $res ); +$cxt->set_always( session => { __expires => 123 } ); $cxt->set_false("debug"); my $sessionid; $cxt->mock( sessionid => sub { shift; $sessionid = shift if @_; $sessionid } ); +can_ok( $m, "setup_session" ); + +$cxt->setup_session; + +is( $cxt->config->{session}{cookie_name}, + "session", "default cookie name is set" ); + can_ok( $m, "prepare_cookies" ); $cxt->prepare_cookies; @@ -47,16 +56,20 @@ is( $cxt->sessionid, "the session id", "session ID was restored from cookie" ); $cxt->clear; $res->clear; -can_ok( $m, "finalize" ); -$cxt->finalize; -ok( !$res->called("cookies"), - "response cookie was not set since res cookie is already there" ); +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" ); +} $cxt->clear; $sessionid = undef; $res->clear; -$cxt->finalize; +$cxt->finalize_cookies; ok( !$res->called("cookies"), "response cookie was not set when sessionid was deleted, even if req cookie is still there" ); @@ -65,11 +78,11 @@ $sessionid = "some other ID"; $cxt->clear; $res->clear; -$cxt->finalize; +$cxt->finalize_cookies; $res->called_ok( "cookies", "response cookie was set when sessionid changed" ); is_deeply( \%res_cookies, - { session => { value => $sessionid } }, + { session => { value => $sessionid, expires => 123 } }, "cookie was set correctly" ); @@ -79,7 +92,7 @@ $res->clear; %res_cookies = (); $sessionid = undef; -$cxt->finalize; +$cxt->finalize_cookies; ok( !$res->called("cookies"), "response cookie was not set when there is no sessionid or request cookie" ); @@ -89,13 +102,13 @@ $sessionid = "123"; %res_cookies = (); $res->clear; -$cxt->finalize; +$cxt->finalize_cookies; $res->called_ok( "cookies", "response cookie was set when session was created" ); is_deeply( \%res_cookies, - { session => { value => $sessionid } }, + { session => { value => $sessionid, expires => 123 } }, "cookie was set correctly" );