added hot sessions

This commit is contained in:
JT Smith 2009-09-28 15:06:12 -05:00
parent 1fe612ef8f
commit 26c3bdac70
7 changed files with 74 additions and 51 deletions

View file

@ -15,7 +15,7 @@ use lib "$FindBin::Bin/../lib";
use WebGUI::Test;
use WebGUI::Session;
use Test::More tests => 35; # increment this value for each test you create
use Test::More tests => 33; # increment this value for each test you create
my $session = WebGUI::Test->session;
@ -25,9 +25,6 @@ my $stow = $session->stow;
my $count = 0;
my $maxCount = 20;
my $disableCache = $session->config->get('disableCache');
$session->config->set('disableCache',0);
for (my $count = 1; $count <= $maxCount; $count++){
$stow->set("Test$count",$count);
}
@ -41,22 +38,8 @@ is($stow->get("Test1"), undef, "delete()");
$stow->deleteAll;
is($stow->get("Test2"), undef, "deleteAll()");
####################################################
#
# get, set with disableCache
#
####################################################
$session->config->set('disableCache', 1);
is($stow->get('Test2'), undef, 'get: when config->disableCache is set get returns undef');
WebGUI::Test->interceptLogging();
$stow->set('unavailableVariable', 'too bad');
is($WebGUI::Test::logger_debug, 'Stow->set() is being called but cache has been disabled', 'debug emitted by set when disableCache is true');
$session->config->set('disableCache', 0);
is($session->stow->set('', 'null string'), undef, 'set returns undef when name is empty string');
is($session->stow->set(0, 'zero'), undef, 'set returns undef when name is zero');
@ -99,6 +82,3 @@ is( $session->stow->get( 'possibilities', { noclone => 1 } ), $arr,
"With noclone returns same reference"
);
END {
$session->config->set('disableCache',$disableCache);
}

View file

@ -129,10 +129,16 @@ $var->end;
##by looking for admin status and userId
$var2 = WebGUI::Session::Var->new($session);
$var2->switchAdminOn;
# jury rig the database and the cache to expire
$session->db->write("update userSession set userId=? where sessionId=?",
[3, $var2->getId]);
$session->db->write("update userSession set expires=? where sessionId=?",
[$var2->get('lastPageView')-1, $var2->getId]);
my %copyOfVar2 = %{$var2->{_var}};
$copyOfVar2{expires} = $var2->get('lastPageView')-1;
$copyOfVar2{userId} = 3;
$session->cache->set(['session',$var2->getId], \%copyOfVar2);
my $var3 = WebGUI::Session::Var->new($session, $var2->getId);
is($var3->getId, $var2->getId, 'new Var object has correct id');