4 * Class CRM_Core_Permission_BaseTest
7 class CRM_Core_Permission_BaseTest
extends CiviUnitTestCase
{
9 use CRMTraits_ACL_PermissionTrait
;
13 * (0 => input to translatePermission, 1 => expected output from translatePermission)
15 public function translateData() {
18 $cases[] = ['administer CiviCRM', 'administer CiviCRM'];
19 $cases[] = ['cms:universal name', 'local name'];
20 $cases[] = ['cms:universal name2', 'local name2'];
21 $cases[] = ['cms:unknown universal name', CRM_Core_Permission
::ALWAYS_DENY_PERMISSION
];
22 $cases[] = ['myruntime:foo', 'foo'];
23 $cases[] = ['otherruntime:foo', CRM_Core_Permission
::ALWAYS_DENY_PERMISSION
];
24 $cases[] = ['otherruntime:foo:bar', CRM_Core_Permission
::ALWAYS_DENY_PERMISSION
];
25 $cases[] = [CRM_Core_Permission
::ALWAYS_ALLOW_PERMISSION
, CRM_Core_Permission
::ALWAYS_ALLOW_PERMISSION
];
31 * @dataProvider translateData
33 * @param string $input
34 * The name of a permission which should be translated.
35 * @param string $expected
36 * The name of an actual permission (based on translation matrix for "runtime").
38 public function testTranslate($input, $expected) {
39 $perm = new CRM_Core_Permission_Base();
40 $actual = $perm->translatePermission($input, 'myruntime', [
41 'universal name' => 'local name',
42 'universal name2' => 'local name2',
45 $this->assertEquals($expected, $actual);
49 * Test that the user has the implied permission of administer CiviCRM data by virtue of having administer CiviCRM.
51 public function testImpliedPermission() {
52 $this->createLoggedInUser();
53 CRM_Core_Config
::singleton()->userPermissionClass
->permissions
= [
56 $this->assertTrue(CRM_Core_Permission
::check('administer CiviCRM data'));