73 lines
2.5 KiB
Perl
73 lines
2.5 KiB
Perl
#-------------------------------------------------------------------
|
|
# WebGUI is Copyright 2001-2006 Plain Black Corporation.
|
|
#-------------------------------------------------------------------
|
|
# Please read the legal notices (docs/legal.txt) and the license
|
|
# (docs/license.txt) that came with this distribution before using
|
|
# this software.
|
|
#-------------------------------------------------------------------
|
|
# http://www.plainblack.com info@plainblack.com
|
|
#-------------------------------------------------------------------
|
|
|
|
use FindBin;
|
|
use strict;
|
|
use lib "$FindBin::Bin/../lib";
|
|
|
|
use WebGUI::Test;
|
|
use WebGUI::Session;
|
|
|
|
use Test::More tests => 37; # increment this value for each test you create
|
|
|
|
my $session = WebGUI::Test->session;
|
|
|
|
my $scratch = $session->scratch;
|
|
my $maxCount = 10;
|
|
|
|
$scratch->deleteAll();
|
|
|
|
|
|
for (my $count = 1; $count <= $maxCount; $count++){
|
|
$scratch->set("Test$count",$count);
|
|
}
|
|
|
|
|
|
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()");
|
|
|
|
$scratch->deleteName("Test10");
|
|
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;
|