From a9b5d172e25e56a67b4d92516a388f3e5298ed2b Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Tue, 13 Nov 2018 23:28:47 -0500 Subject: [PATCH] Add unit test for CRM_Core_BAO_Navigation::checkPermission() --- tests/phpunit/CRM/Core/BAO/NavigationTest.php | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/phpunit/CRM/Core/BAO/NavigationTest.php b/tests/phpunit/CRM/Core/BAO/NavigationTest.php index 1d65155731..fab453d83e 100644 --- a/tests/phpunit/CRM/Core/BAO/NavigationTest.php +++ b/tests/phpunit/CRM/Core/BAO/NavigationTest.php @@ -284,4 +284,30 @@ class CRM_Core_BAO_NavigationTest extends CiviUnitTestCase { $this->assertEquals(100, $output[10]['child'][101]['child'][100]['attributes']['navID']); } + /** + * Tests that permissions and component status are checked with the correct operator. + */ + public function testCheckPermissions() { + $menuItem = [ + 'permission' => 'access CiviCRM, access CiviContribute', + 'operator' => 'AND' + ]; + CRM_Core_BAO_ConfigSetting::enableComponent('CiviContribute'); + CRM_Core_Config::singleton()->userPermissionClass->permissions = ['access CiviCRM', 'access CiviContribute']; + $this->assertTrue(CRM_Core_BAO_Navigation::checkPermission($menuItem)); + + CRM_Core_BAO_ConfigSetting::disableComponent('CiviContribute'); + $this->assertFalse(CRM_Core_BAO_Navigation::checkPermission($menuItem)); + + CRM_Core_BAO_ConfigSetting::enableComponent('CiviContribute'); + CRM_Core_Config::singleton()->userPermissionClass->permissions = ['access CiviContribute']; + $this->assertFalse(CRM_Core_BAO_Navigation::checkPermission($menuItem)); + + $menuItem['operator'] = 'OR'; + $this->assertTrue(CRM_Core_BAO_Navigation::checkPermission($menuItem)); + + CRM_Core_BAO_ConfigSetting::disableComponent('CiviContribute'); + $this->assertFalse(CRM_Core_BAO_Navigation::checkPermission($menuItem)); + } + } -- 2.25.1