Add tests for database defined groups to Group.t

Clear cache on set of databaseLinkId or dbQuery in WebGUI::Group.pm.
Fix typos, missing module use lines and extra variables in WebGUI::User.pm.
This commit is contained in:
Colin Kuskie 2006-04-03 18:07:09 +00:00
parent 03c79ce1d0
commit c802e4ddad
3 changed files with 28 additions and 6 deletions

View file

@ -18,7 +18,7 @@ use WebGUI::Utility;
use WebGUI::User;
use WebGUI::Group;
use Test::More tests => 68; # increment this value for each test you create
use Test::More tests => 78; # increment this value for each test you create
use Test::Deep;
my $session = WebGUI::Test->session;
@ -161,7 +161,7 @@ ok($gX->userIsAdmin($user->userId), "userIsAdmin: Dude set to be group admin for
sleep 5;
$expireTime = time() + $expireOffset - $gX->userGroupExpireDate($user->userId) ;
ok( ($expireTime < 6 && $expireTime > 0), 'userGroupExpireDate: Default expire time ages');
ok( ($expireTime < 7 && $expireTime > 0), 'userGroupExpireDate: Default expire time ages');
$gX->addUsers([$user->userId]);
my $expireTime = abs($gX->userGroupExpireDate($user->userId) - $expireOffset - time());
@ -216,10 +216,27 @@ foreach my $mob (@mob) {
$sth->execute([ $mob->userId ]);
}
ok( !$mob[0]->isInGroup($gY->getId), 'mob[0] is not in group Z');
my $mobUsers = $session->db->buildArrayRef('select userId from myUserTable');
cmp_bag($mobUsers, [map {$_->userId} @mob], 'verify SQL table built correctly');
is( $gY->databaseLinkId, 0, "Group Y's databaseLinkId is set to WebGUI");
$gY->dbQuery(q!select 1 from myUserTable where userId='^#();'!);
is( $session->stow->get('isInGroup'), undef, 'setting dbQuery clears cached isInGroup');
$session->user({userId => $mob[0]->userId});
is( $session->user->userId, $mob[0]->userId, 'mob[0] set to be current user');
is( $session->stow->get('isInGroup'), undef, 'isInGroup cache still cleared');
is( $gY->session->stow->get('isInGroup'), undef, 'group Y copy of isInGroup cache cleared, too');
is( $mob[0]->session->stow->get('isInGroup'), undef, 'mob[0] copy of isInGroup cache cleared, too');
$session->errorHandler->warn('checking mob[0] group membership');
is( $mob[0]->isInGroup($gY->getId), 1, 'mob[0] is in group Y after setting dbQuery');
$session->user({userId => $mob[1]->userId});
is( $mob[0]->isInGroup($gZ->getId), 1, 'mob[0] is not in group Z');
is( $mob[0]->isInGroup($gZ->getId,1), 1, 'mob[0] is in group Z');
END {
(defined $gX and ref $gX eq 'WebGUI::Group') and $gX->delete;
(defined $gY and ref $gY eq 'WebGUI::Group') and $gY->delete;