Merge pull request #23619 from darrick/pull/23534
[civicrm-core.git] / tests / phpunit / CRM / Member / TaskTest.php
CommitLineData
61fad6d6
EM
1<?php
2/*
3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
5 | |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
10 */
11
12/**
13 * Class CRM_Member_BAO_MembershipTest
14 * @group headless
15 */
16class CRM_Member_TaskTest extends CiviUnitTestCase {
17
18 use Civi\Test\ACLPermissionTrait;
19
20 /**
21 * Test tiles are correctly filtered on permissions.
22 */
23 public function testPermissionedTiles(): void {
24 $this->createLoggedInUser();
25
26 CRM_Member_Task::tasks();
27 \CRM_Core_Config::singleton()->userPermissionClass->permissions = ['view memberships'];
28 $tasks = CRM_Member_Task::permissionedTaskTitles(CRM_Core_Permission::VIEW);
29 $this->assertEquals([8 => 'Export members', 5 => 'Print selected rows'], $tasks);
30
31 \CRM_Core_Config::singleton()->userPermissionClass->permissions = ['delete in CiviMember', 'view memberships'];
32 $tasks = CRM_Member_Task::permissionedTaskTitles(CRM_Core_Permission::VIEW);
33 $this->assertEquals([8 => 'Export members', 5 => 'Print selected rows', 4 => 'Delete memberships'], $tasks);
34
35 \CRM_Core_Config::singleton()->userPermissionClass->permissions = ['edit memberships'];
36 $tasks = CRM_Member_Task::permissionedTaskTitles(CRM_Core_Permission::VIEW);
37 $this->assertEquals([8 => 'Export members', 5 => 'Print selected rows'], $tasks);
38
39 \CRM_Core_Config::singleton()->userPermissionClass->permissions = ['edit memberships'];
40 $tasks = CRM_Member_Task::permissionedTaskTitles(CRM_Core_Permission::EDIT);
41 $this->assertEquals([
42 8 => 'Export members',
43 5 => 'Print selected rows',
44 9 => 'Email - send now (to 50 or less)',
45 201 => 'Mailing labels - print',
46 3 => 'Print/merge document for memberships',
47 6 => 'Update multiple memberships',
48 ], $tasks);
49
50 \CRM_Core_Config::singleton()->userPermissionClass->permissions = ['edit memberships', 'delete in CiviMember', 'edit groups'];
51 $tasks = CRM_Member_Task::permissionedTaskTitles(CRM_Core_Permission::EDIT);
52 $this->assertEquals([
53 8 => 'Export members',
54 5 => 'Print selected rows',
55 9 => 'Email - send now (to 50 or less)',
56 201 => 'Mailing labels - print',
57 3 => 'Print/merge document for memberships',
58 6 => 'Update multiple memberships',
59 4 => 'Delete memberships',
60 12 => 'Group - create smart group',
61 ], $tasks);
62 }
63
64}