From ed177c614e14ec3a6ae688fb6ff94eb43f1042fb Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Thu, 27 Dec 2007 06:06:32 +0000 Subject: [PATCH] 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. --- t/Asset/Asset.t | 22 +++++++++++++++++++--- t/International.t | 4 ++-- t/lib/WebGUI/Test/Maker/Permission.pm | 25 +++++++++++++++++-------- 3 files changed, 38 insertions(+), 13 deletions(-) diff --git a/t/Asset/Asset.t b/t/Asset/Asset.t index 90427a376..3eb603722 100644 --- a/t/Asset/Asset.t +++ b/t/Asset/Asset.t @@ -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; } diff --git a/t/International.t b/t/International.t index cb528afd7..254a081a0 100644 --- a/t/International.t +++ b/t/International.t @@ -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 { diff --git a/t/lib/WebGUI/Test/Maker/Permission.pm b/t/lib/WebGUI/Test/Maker/Permission.pm index 5eeebe7e9..98aa4333b 100644 --- a/t/lib/WebGUI/Test/Maker/Permission.pm +++ b/t/lib/WebGUI/Test/Maker/Permission.pm @@ -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 ); } }