From: Dimitar Petrov Date: Mon, 8 Aug 2011 07:58:42 +0000 (+0000) Subject: fix extend_session_expires to extend the current session (RT#59595) X-Git-Tag: v0.32~1 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Plugin-Session.git;a=commitdiff_plain;h=d32c2b5a296ba28892d19b3dae499630ae89e630 fix extend_session_expires to extend the current session (RT#59595) --- diff --git a/lib/Catalyst/Plugin/Session.pm b/lib/Catalyst/Plugin/Session.pm index cf7522a..69607fa 100644 --- a/lib/Catalyst/Plugin/Session.pm +++ b/lib/Catalyst/Plugin/Session.pm @@ -348,7 +348,7 @@ sub session_expires { if ( defined( my $expires = $c->_extended_session_expires ) ) { return $expires; } elsif ( defined( $expires = $c->_load_session_expires ) ) { - return $c->extend_session_expires( $expires ); + return $c->calculate_initial_session_expires; } else { return 0; } @@ -368,7 +368,7 @@ sub calculate_initial_session_expires { sub calculate_extended_session_expires { my ( $c, $prev ) = @_; - $c->calculate_initial_session_expires; + return ( time() + $prev ); } sub reset_session_expires { diff --git a/t/lib/SessionTestApp/Controller/Root.pm b/t/lib/SessionTestApp/Controller/Root.pm index 34070b9..59559b9 100644 --- a/t/lib/SessionTestApp/Controller/Root.pm +++ b/t/lib/SessionTestApp/Controller/Root.pm @@ -108,4 +108,10 @@ sub dump_these_loads_session : Global { } } +sub extend_session_expires : Global { + my ($self, $c) = @_; + $c->extend_session_expires(31536000); + $c->res->output($c->session_expires); +} + 1; diff --git a/t/live_app.t b/t/live_app.t index cbc7cc5..9b0280f 100644 --- a/t/live_app.t +++ b/t/live_app.t @@ -86,6 +86,19 @@ $ua3->get_ok( "http://localhost/login", "log ua3 in" ); $ua3->get_ok( "http://localhost/dump_these_loads_session"); $ua3->content_contains('NOT'); +my $ua4 = Test::WWW::Mechanize::Catalyst->new; +$ua4->get_ok( "http://localhost/page", "initial get" ); +$ua4->content_contains( "please login", "ua4 not logged in" ); + +$ua4->get_ok( "http://localhost/login", "log ua4 in" ); +$ua4->content_contains( "logged in", "ua4 logged in" ); + +$ua4->get_ok( "http://localhost/extend_session_expires", "ua4 extend expire session" ); + +my ( $ua4_expires ) = ($ua4->content =~ /(\d+)$/); + +ok( ($ua4_expires-time()-86400) >= 0, 'extend_session_expires with really long value' ); + diag("Testing against Catalyst $Catalyst::VERSION"); diag("Testing Catalyst::Plugin::Session $Catalyst::Plugin::Session::VERSION");