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
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);
|
|
|
|
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;
|