diff --git a/t/Session/Scratch.t b/t/Session/Scratch.t index 15fc69166..6e12e0e70 100644 --- a/t/Session/Scratch.t +++ b/t/Session/Scratch.t @@ -15,7 +15,7 @@ use lib "$FindBin::Bin/../lib"; use WebGUI::Test; use WebGUI::Session; -use Test::More tests => 14; # increment this value for each test you create +use Test::More tests => 37; # increment this value for each test you create my $session = WebGUI::Test->session; @@ -34,7 +34,6 @@ for (my $count = 1; $count <= $maxCount; $count++){ is($scratch->get("Test$count"), $count, "Passed set/get $count"); } - $scratch->delete("Test1"); is($scratch->get("Test1"), undef, "delete()"); @@ -44,7 +43,31 @@ is($scratch->get("Test10"), undef, "deleteName()"); $scratch->deleteAll; is($scratch->get("Test2"), undef, "deleteAll()"); - my $testScratchSession = $scratch->session(); is($testScratchSession, $session, "session()"); + +##Build some variables to test database persistency + +for (my $count = 1; $count <= $maxCount; $count++){ + $scratch->set("dBase$count",$count); + my ($setValue) = $session->db->quickArray("select value from userSessionScratch where sessionId=? and name=?",[$session->getId, "dBase$count"]); + is($setValue, $count, "database store for set on $count"); +} + +##Creating a new session with the previous session's Id should clone the scratch data +my $newSession = WebGUI::Session->open(WebGUI::Test->root, WebGUI::Test->file, undef, undef, $session->getId); + +ok($newSession->getId eq $session->getId, "Successful session duplication"); + +for (my $count = 1; $count <= $maxCount; $count++){ + is($newSession->scratch->get("dBase$count"), $count, "Passed set/get $count"); +} + +$scratch->set("dBase5", 15); + +my ($changedValue) = $session->db->quickArray("select value from userSessionScratch where sessionId=? and name=?",[$session->getId, "dBase5"]); +is($changedValue, 15, "changing stored scratch value"); +is($scratch->get("dBase5"), 15, "checking cached scratch value"); + +$newSession->close;