fixed #12129: AdminBar calls canAdd as an object method

This commit is contained in:
Paul Driver 2011-05-16 16:10:18 -05:00
parent 0df9fb747a
commit c1a29182ca
4 changed files with 31 additions and 3 deletions

View file

@ -23,6 +23,7 @@ use WebGUI::Asset::Sku;
use WebGUI::Asset::Sku::Product;
use WebGUI::AssetVersioning;
use WebGUI::VersionTag;
use Monkey::Patch;
use Test::More;
use Test::Deep;
@ -172,7 +173,7 @@ sub definition {
package main;
plan tests => 137
plan tests => 138
+ scalar(@fixIdTests)
+ scalar(@fixTitleTests)
+ 2*scalar(@getTitleTests) #same tests used for getTitle and getMenuTitle
@ -1212,4 +1213,25 @@ sub getTitleTests {
);
}
subtest 'canAdd tolerates being called as an object method', sub {
my $class = 'WebGUI::Asset::Snippet';
my $snip = $tempNode->addChild({className => $class});
# Make a test user who's just in Turn Admin On
my $u = WebGUI::User->create($session);
WebGUI::Test->addToCleanup($u);
$u->addToGroups(['12']);
$session->user({ user => $u });
# default addGroup is Turn Admin On
ok $class->canAdd($session), 'can add when called as a class method';
ok $snip->canAdd($session), '...or an object method';
my $key = "assets/$class/addGroup";
WebGUI::Test->originalConfig($key);
$session->config->set($key, 3);
# now only admins can add snippets, so canAdd should return false
ok !$class->canAdd($session), 'Cannot add when called as a class method';
ok !$snip->canAdd($session), '...or an object method';
};