From e5f048efddb4f66595a026825e05a72fae3f1c57 Mon Sep 17 00:00:00 2001 From: Seamus Lee Date: Fri, 14 Jul 2023 16:54:49 +1000 Subject: [PATCH] Add unit test to verify patch fixes dynmaically permissable entity actions --- .../phpunit/api/v4/Action/GetActionsTest.php | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 tests/phpunit/api/v4/Action/GetActionsTest.php diff --git a/tests/phpunit/api/v4/Action/GetActionsTest.php b/tests/phpunit/api/v4/Action/GetActionsTest.php new file mode 100644 index 0000000000..f251aa65b7 --- /dev/null +++ b/tests/phpunit/api/v4/Action/GetActionsTest.php @@ -0,0 +1,68 @@ +getApiRequest(); + if ($apiRequest['version'] == 4 && $apiRequest->getEntityName() === 'Membership' && $apiRequest->getActionName() === 'get') { + $e->authorize(); + $e->stopPropagation(); + } + } + + public function testContactIconAutocomplete(): void { + $contact = $this->createTestRecord('Contact', [ + 'first_name' => 'GetActions', + 'last_name' => 'testContact', + 'contact_type' => 'Individual', + ]); + $membershipType = $this->createTestRecord('MembershipType', [ + 'label' => 'Student', + ]); + $this->createTestRecord('Membership', [ + 'contact_id' => $contact['id'], + 'membership_type_id' => $membershipType['id'], + 'start_date' => date('Y-m-d'), + 'join_date' => date('Y-m-d'), + ]); + $this->createLoggedInUser(); + \CRM_Core_Config::singleton()->userPermissionClass->permissions = ['access CiviCRM']; + $actions = Membership::getActions()->setSelect(['name'])->execute()->column('name'); + $this->assertTrue(in_array('get', $actions)); + $this->assertFalse(in_array('create', $actions)); + } + +} -- 2.25.1