WebGUI::Test::Maker::Permission will now use usernames instead of userIds in comments

if they are available.
Move the getLanguage test out of the SKIP block dependent on install the PigLatin
language pack.
Update Maker users with usernames in Asset.t
Add tests for assetAddPrivileges.  These tests currently cause the Turn On Admin
checks to fail.  A bug has been filed for this, and the tests may be rewritten
based on the resolution of the bug.
This commit is contained in:
Colin Kuskie 2007-12-27 06:06:32 +00:00
parent 0cfe03726a
commit ed177c614e
3 changed files with 38 additions and 13 deletions

View file

@ -35,27 +35,37 @@ my $rootAsset = WebGUI::Asset->getRoot($session);
my %testUsers = ();
##Just a regular user
$testUsers{'regular user'} = WebGUI::User->new($session, 'new');
$testUsers{'regular user'}->username('regular user');
##Users in group 12 can add Assets
$testUsers{'canAdd turnOnAdmin'} = WebGUI::User->new($session, 'new');
$testUsers{'canAdd turnOnAdmin'}->addToGroups(['12']);
$testUsers{'canAdd turnOnAdmin'}->username('Turn On Admin user');
##Just a user for owning assets
$testUsers{'owner'} = WebGUI::User->new($session, 'new');
$testUsers{'owner'}->username('Asset Owner');
##Test Groups
my %testGroups = ();
##A group and user for groupIdEdit
$testGroups{'canEdit asset'} = WebGUI::Group->new($session, 'new');
$testUsers{'canEdit group user'} = WebGUI::User->new($session, 'new');
$testUsers{'canEdit group user'}->addToGroups([$testGroups{'canEdit asset'}->getId]);
$testUsers{'canEdit group user'}->username('Edit Group User');
##A group and user for groupIdEdit
$testGroups{'canAdd asset'} = WebGUI::Group->new($session, 'new');
$testUsers{'canAdd group user'} = WebGUI::User->new($session, 'new');
$testUsers{'canAdd group user'}->addToGroups([$testGroups{'canAdd asset'}->getId]);
$testUsers{'canEdit group user'}->username('Can Add Group User');
my $canAddMaker = WebGUI::Test::Maker::Permission->new();
$canAddMaker->prepare({
'className' => 'WebGUI::Asset',
'session' => $session,
'method' => 'canAdd',
'pass' => [3, $testUsers{'canAdd turnOnAdmin'}, ],
'fail' => [1, $testUsers{'regular user'}, ],
'pass' => [3, $testUsers{'canAdd turnOnAdmin'}, $testUsers{'canAdd group user'} ],
'fail' => [1, $testUsers{'regular user'}, ],
});
my $properties;
@ -381,8 +391,13 @@ TODO: {
#
################################################################
my $origAssetAddPrivileges = $session->config->get('assetAddPrivilege');
$session->config->set('assetAddPrivilege', { 'WebGUI::Asset' => $testGroups{'canAdd asset'}->getId } );
$canAddMaker->run;
$session->config->set('assetAddPrivilege', $origAssetAddPrivileges);
################################################################
#
# canEdit
@ -395,6 +410,7 @@ END: {
$session->config->set('extrasURL', $origExtras);
$session->config->set('uploadsURL', $origUploads);
$session->setting->set('urlExtension', $origUrlExtension);
$session->config->set('assetAddPrivilege', $origAssetAddPrivileges);
foreach my $vTag ($versionTag, $versionTag2) {
$vTag->rollback;
}

View file

@ -67,10 +67,10 @@ SKIP: {
'Language check: existing key returns native language key'
);
is($i18n->getLanguage('English', 'label'), 'English', 'getLanguage, specific property');
}
is($i18n->getLanguage('English', 'label'), 'English', 'getLanguage, specific property');
}
sub installPigLatin {

View file

@ -122,12 +122,15 @@ The permissions method to test
=item pass
An array reference of userIds or WebGUI::User objects that should pass the
permissions test.
permissions test. If each user has a username, it will be used in the
test comment output instead of the userId.
=item fail
An array reference of userIds or WebGUI::User objects that should fail the
permissions test.
permissions test. If each user has a username, it will be used in the
test comment output instead of the userId.
=back
@ -209,14 +212,17 @@ sub run {
# Test the default session user
my $oldUser = $session->user;
$session->user( { userId => $userId } );
ok( $o->$m(@args), "userId $userId passes $m check using default user for " . $comment );
$session->user( { user => $oldUser });
$session->user( { userId => $userId } );
my $role = $session->user->username
? "user ".$session->user->username
: "userId ".$userId;
ok( $o->$m(@args), "$role passes $m check using default user for " . $comment );
$session->user( { user => $oldUser } );
# Test the specified userId
push @args, $userId;
# Test the userId parameter
ok( $o->$m(@args), "userId $userId passes $m check for " . $comment );
ok( $o->$m(@args), "$role passes $m check for " . $comment );
}
}
@ -227,12 +233,15 @@ sub run {
# Test the default session user
my $oldUser = $session->user;
$session->user( { userId => $userId } );
ok( !($o->$m(@args)), "userId $userId fails $m check using default user for " . $comment );
my $role = $session->user->username
? "user ".$session->user->username
: "userId ".$userId;
ok( !($o->$m(@args)), "$role fails $m check using default user for " . $comment );
$session->user( { user => $oldUser });
# Test the userId parameter
push @args, $userId;
ok( !($o->$m(@args)), "userId $userId fails $m check for " . $comment );
ok( !($o->$m(@args)), "$role fails $m check for " . $comment );
}
}