webgui/t/Session/Scratch.t
Colin Kuskie f3a1f0f9f2 GroupText.t: fix number of tests
Session/Id.pm: add a method to validate GUIDs, change s/// to tr/// for efficiency.
Session.pm: change open to use new Id.pm validation method
Scratch.t: Change test from ok to is so that it tells you what the failing ID is.
Id.t: Add validation tests in addition to uniqueness tests.  Fix the uniqueness test so that it works.  Add tests to check the new validation method
2006-07-15 01:54:49 +00:00

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);
is($newSession->getId, $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;