[REF] Move ACLPermission Trait into Civi Folder so that it can be accessed by Extensions
[civicrm-core.git] / tests / phpunit / CRM / Core / Permission / BaseTest.php
index 2095aba6861ac09b9fd3edd2ef4b8476f1dda1a1..63ddc5fee4533420ec45211747f8abaf4a8309c2 100644 (file)
@@ -6,13 +6,13 @@
  */
 class CRM_Core_Permission_BaseTest extends CiviUnitTestCase {
 
-  use CRMTraits_ACL_PermissionTrait;
+  use Civi\Test\ACLPermissionTrait;
 
   /**
    * @return array
    *   (0 => input to translatePermission, 1 => expected output from translatePermission)
    */
-  public function translateData() {
+  public function translateData(): array {
     $cases = [];
 
     $cases[] = ['administer CiviCRM', 'administer CiviCRM'];
@@ -35,7 +35,7 @@ class CRM_Core_Permission_BaseTest extends CiviUnitTestCase {
    * @param string $expected
    *   The name of an actual permission (based on translation matrix for "runtime").
    */
-  public function testTranslate($input, $expected) {
+  public function testTranslate(string $input, string $expected): void {
     $perm = new CRM_Core_Permission_Base();
     $actual = $perm->translatePermission($input, 'myruntime', [
       'universal name' => 'local name',
@@ -48,7 +48,7 @@ class CRM_Core_Permission_BaseTest extends CiviUnitTestCase {
   /**
    * Test that the user has the implied permission of administer CiviCRM data by virtue of having administer CiviCRM.
    */
-  public function testImpliedPermission() {
+  public function testImpliedPermission(): void {
     $this->createLoggedInUser();
     CRM_Core_Config::singleton()->userPermissionClass->permissions = [
       'administer CiviCRM',
@@ -56,4 +56,15 @@ class CRM_Core_Permission_BaseTest extends CiviUnitTestCase {
     $this->assertTrue(CRM_Core_Permission::check('administer CiviCRM data'));
   }
 
+  /**
+   * Test that the super permission gives the implied permission of the whole shebang.
+   */
+  public function testImpliedPermissionSuperDuper(): void {
+    $this->createLoggedInUser();
+    CRM_Core_Config::singleton()->userPermissionClass->permissions = [
+      'all CiviCRM permissions and ACLs',
+    ];
+    $this->assertTrue(CRM_Core_Permission::check('view all contacts'));
+  }
+
 }