WGBP indent Asset::canView.

Add coverage tests for canView.
This commit is contained in:
Colin Kuskie 2007-12-27 06:36:04 +00:00
parent ed177c614e
commit cf968818b4
2 changed files with 61 additions and 18 deletions

View file

@ -262,23 +262,23 @@ Unique hash identifier for a user. If not specified, uses current userId.
sub canView { sub canView {
my $self = shift; my $self = shift;
my $eh = $self->session->errorHandler; my $userId = shift;
my $userId = shift; my $user;
my $user; if (defined $userId) {
if (defined $userId) { $user = WebGUI::User->new($self->session, $userId);
$user = WebGUI::User->new($self->session, $userId); }
} else {
else { $user = $self->session->user;
$user = $self->session->user; $userId = $user->userId();
$userId = $user->userId(); }
} if ($userId eq $self->get("ownerUserId")) {
if ($userId eq $self->get("ownerUserId")) { return 1;
return 1; }
} elsif ($user->isInGroup($self->get("groupIdView"))) { elsif ($user->isInGroup($self->get("groupIdView"))) {
return 1; return 1;
} }
return $self->canEdit($userId); return $self->canEdit($userId);
} }

View file

@ -77,6 +77,7 @@ $properties = {
className => 'WebGUI::Asset', className => 'WebGUI::Asset',
ownerUserId => $testUsers{'owner'}->userId, ownerUserId => $testUsers{'owner'}->userId,
groupIdEdit => $testGroups{'canEdit asset'}->getId, groupIdEdit => $testGroups{'canEdit asset'}->getId,
groupIdView => 7,
}; };
my $versionTag2 = WebGUI::VersionTag->getWorking($session); my $versionTag2 = WebGUI::VersionTag->getWorking($session);
@ -94,11 +95,45 @@ $canEditMaker->prepare({
'fail' => [1, $testUsers{'regular user'}, ], 'fail' => [1, $testUsers{'regular user'}, ],
}); });
my $versionTag3 = WebGUI::VersionTag->getWorking($session);
$properties = {
# '1234567890123456789012'
id => 'canViewAsset0000000010',
title => 'canView Asset Test',
url => 'canViewAsset1',
className => 'WebGUI::Asset',
ownerUserId => $testUsers{'owner'}->userId,
groupIdEdit => $testGroups{'canEdit asset'}->getId,
groupIdView => $testGroups{'canEdit asset'}->getId,
};
my $canViewAsset = $rootAsset->addChild($properties, $properties->{id});
$versionTag3->commit;
$properties = {}; ##Clear out the hash so that it doesn't leak later by accident.
my $canViewMaker = WebGUI::Test::Maker::Permission->new();
$canViewMaker->prepare(
{
'object' => $canEditAsset,
'method' => 'canView',
'pass' => [1, 3, $testUsers{'owner'}, $testUsers{'canEdit group user'}, $testUsers{'regular user'},],
},
{
'object' => $canViewAsset,
'method' => 'canView',
'pass' => [3, $testUsers{'owner'}, $testUsers{'canEdit group user'}, ],
'fail' => [1, $testUsers{'regular user'}, ],
},
);
plan tests => 56 plan tests => 56
+ scalar(@fixIdTests) + scalar(@fixIdTests)
+ scalar(@fixTitleTests) + scalar(@fixTitleTests)
+ $canAddMaker->plan + $canAddMaker->plan
+ $canEditMaker->plan + $canEditMaker->plan
+ $canViewMaker->plan
; ;
# Test the default constructor # Test the default constructor
@ -406,12 +441,20 @@ $session->config->set('assetAddPrivilege', $origAssetAddPrivileges);
$canEditMaker->run; $canEditMaker->run;
################################################################
#
# canView
#
################################################################
$canViewMaker->run;
END: { END: {
$session->config->set('extrasURL', $origExtras); $session->config->set('extrasURL', $origExtras);
$session->config->set('uploadsURL', $origUploads); $session->config->set('uploadsURL', $origUploads);
$session->setting->set('urlExtension', $origUrlExtension); $session->setting->set('urlExtension', $origUrlExtension);
$session->config->set('assetAddPrivilege', $origAssetAddPrivileges); $session->config->set('assetAddPrivilege', $origAssetAddPrivileges);
foreach my $vTag ($versionTag, $versionTag2) { foreach my $vTag ($versionTag, $versionTag2, $versionTag3, ) {
$vTag->rollback; $vTag->rollback;
} }
foreach my $user (values %testUsers) { foreach my $user (values %testUsers) {