CRM-14109 fix group page acl tests
authorEileen McNaughton <eileen@fuzion.co.nz>
Sat, 3 May 2014 14:39:00 +0000 (07:39 -0700)
committerEileen McNaughton <eileen@fuzion.co.nz>
Sat, 3 May 2014 14:39:00 +0000 (07:39 -0700)
CRM/Contact/BAO/Group.php
tests/phpunit/CRM/Group/Page/AjaxTest.php
tests/phpunit/CiviTest/CiviUnitTestCase.php

index 21c5718bd51d3a21026616885faea64624c9de03..18c848ada4dc4cfef254369c42b77060caec79d0 100644 (file)
@@ -155,7 +155,7 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group {
    * Get the count of a members in a group with the specific status
    *
    * @param int $id group id
-   * @param \enum|string $status status of members in group
+   * @param enum|string $status status of members in group
    *
    * @param bool $countChildGroups
    *
@@ -615,18 +615,23 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group {
    *
    * @internal param $clauses
    *
+   * @param bool $force
+   *
    * @return array
    */
-  public static function getPermissionClause() {
-    static $clause;
+  public static function getPermissionClause($force = FALSE) {
+    static $clause = 1;
     static $retrieved = FALSE;
-    if (!$retrieved && !CRM_Core_Permission::check('view all contacts')) {
+    if ((!$retrieved || $force ) && !CRM_Core_Permission::check('view all contacts') && !CRM_Core_Permission::check('edit all contacts')) {
       //get the allowed groups for the current user
       $groups = CRM_ACL_API::group(CRM_ACL_API::VIEW);
       if (!empty($groups)) {
         $groupList = implode(', ', array_values($groups));
         $clause = "groups.id IN ( $groupList ) ";
       }
+      else {
+        $clause = '1 = 0';
+      }
     }
     $retrieved = TRUE;
     return $clause;
@@ -1194,9 +1199,7 @@ WHERE {$whereClause}";
       $clauses[] = 'groups.is_hidden = 0';
     }
     ;
-    if(($permissionClause = self::getPermissionClause($clauses)) == TRUE) {
-      $clauses[] = $permissionClause;
-    }
+    $clauses[] = self::getPermissionClause();
 
 
     return implode(' AND ', $clauses);
index 50ae334f1eaf93440cd6d9689ffa469d94b36d5b..67d0b42f001cd4d8887d272d328339b5452a80bd 100644 (file)
@@ -15,6 +15,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
 
   protected $hookClass;
 
+  protected $_params = array();
+
   function get_info() {
     return array(
       'name' => 'Contact BAOs',
@@ -51,12 +53,31 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
   }
 
   /**
-   * retrieve groups as 'view all contacts'
+   * @param $permission
    */
-  function testGroupListViewAllContacts() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts');
+  function setPermissionAndRequest($permission) {
+    CRM_Core_Config::singleton()->userPermissionClass->permissions = array($permission);
+    CRM_Contact_BAO_Group::getPermissionClause(TRUE);
+    global $_REQUEST;
+    $_REQUEST = $this->_params;
+  }
+
+  /**
+   * @param $permission
+   * @param $hook
+   */
+  function setHookAndRequest($permission, $hook) {
+    CRM_Core_Config::singleton()->userPermissionClass->permissions = array($permission);
+    $this->hookClass->setHook('civicrm_aclGroup', array($this, $hook));
+    CRM_Contact_BAO_Group::getPermissionClause(TRUE);
     global $_REQUEST;
     $_REQUEST = $this->_params;
+  }
+  /**
+   * retrieve groups as 'view all contacts'
+   */
+  function testGroupListViewAllContacts() {
+    $this->setPermissionAndRequest('view all contacts');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(2, $total);
     $this->assertEquals('pick-me-active', $groups[2]['group_name']);
@@ -69,10 +90,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * (if you do set default it is enabled only)
    */
   function testGroupListViewAllContactsFoundTitle() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts');
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['title'] = 'p';
+    $this->_params['title'] = 'p';
+    $this->setPermissionAndRequest('view all contacts');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(2, $total);
     $this->assertEquals('pick-me-active', $groups[2]['group_name']);
@@ -83,10 +102,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * retrieve groups as 'view all contacts'
    */
   function testGroupListViewAllContactsNotFoundTitle() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts');
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['title'] = 'z';
+    $this->_params['title'] = 'z';
+    $this->setPermissionAndRequest('view all contacts');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(0, $total);
   }
@@ -94,9 +111,7 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * retrieve groups as 'edit all contacts'
    */
   function testGroupListEditAllContacts() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts');
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
+    $this->setPermissionAndRequest('edit all contacts');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(2, $total);
     $this->assertEquals('pick-me-active', $groups[2]['group_name']);
@@ -107,10 +122,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * retrieve groups as 'view all contacts'
    */
   function testGroupListViewAllContactsEnabled() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts');
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 1;
+    $this->_params['status'] = 1;
+    $this->setPermissionAndRequest('view all contacts');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(2, $total);
     $this->assertEquals('pick-me-active', $groups[2]['group_name']);
@@ -121,10 +134,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * retrieve groups as 'view all contacts'
    */
   function testGroupListViewAllContactsDisabled() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts');
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 2;
+    $this->_params['status'] = 2;
+    $this->setPermissionAndRequest('view all contacts');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(2, $total);
     $this->assertEquals('pick-me-disabled', $groups[1]['group_name']);
@@ -135,11 +146,9 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * retrieve groups as 'view all contacts'
    */
   function testGroupListViewAllContactsDisabledNotFoundTitle() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts');
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 2;
-    $_REQUEST['title'] = 'n';
+    $this->_params['status'] = 2;
+    $this->_params['title'] = 'n';
+    $this->setPermissionAndRequest('view all contacts');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(1, $total);
     $this->assertEquals('not-me-disabled', $groups[3]['group_name']);
@@ -149,11 +158,9 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * retrieve groups as 'view all contacts'
    */
   function testGroupListViewAllContactsDisabledFoundTitle() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts');
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 2;
-    $_REQUEST['title'] = 'p';
+    $this->_params['status'] = 2;
+    $this->_params['title'] = 'p';
+    $this->setPermissionAndRequest('view all contacts');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(1, $total);
     $this->assertEquals('pick-me-disabled', $groups[1]['group_name']);
@@ -163,10 +170,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * retrieve groups as 'view all contacts'
    */
   function testGroupListViewAllContactsAll() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('view all contacts');
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 3;
+    $this->_params['status'] = 3;
+    $this->setPermissionAndRequest('view all contacts');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(4, $total);
     $this->assertEquals('pick-me-disabled', $groups[1]['group_name']);
@@ -180,9 +185,9 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * retrieve groups as 'view all contacts'
    */
   function testGroupListAccessCiviCRM() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
+    $this->setPermissionAndRequest('access CiviCRM');
+    $permissionClause = CRM_Contact_BAO_Group::getPermissionClause(TRUE);
+    $this->assertEquals('1 = 0', $permissionClause);
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(0, count($groups));
     $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions');
@@ -191,10 +196,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * retrieve groups as 'view all contacts'
    */
   function testGroupListAccessCiviCRMEnabled() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 1;
+    $this->_params['status'] = 1;
+    $this->setPermissionAndRequest('access CiviCRM');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(0, count($groups));
     $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions');
@@ -203,10 +206,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * retrieve groups as 'view all contacts'
    */
   function testGroupListAccessCiviCRMDisabled() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 2;
+    $this->_params['status'] = 2;
+    $this->setPermissionAndRequest('access CiviCRM');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(0, count($groups));
     $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions');
@@ -216,10 +217,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * retrieve groups as 'view all contacts'
    */
   function testGroupListAccessCiviCRMAll() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 2;
+    $this->_params['status'] = 2;
+    $this->setPermissionAndRequest('access CiviCRM');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(0, count($groups));
     $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions');
@@ -229,10 +228,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * retrieve groups as 'view all contacts'
    */
   function testGroupListAccessCiviCRMFound() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['title'] = 'p';
+    $this->_params['title'] = 'p';
+    $this->setPermissionAndRequest('access CiviCRM');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(0, count($groups));
     $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions');
@@ -242,10 +239,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * retrieve groups as 'view all contacts'
    */
   function testGroupListAccessCiviCRMNotFound() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['title'] = 'z';
+    $this->_params['title'] = 'z';
+    $this->setPermissionAndRequest('access CiviCRM');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(0, count($groups));
     $this->assertEquals(0, $total, 'Total returned should be accurate based on permissions');
@@ -253,8 +248,6 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
 
   function testTraditionalACL () {
     $this->setupACL();
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(1, $total, 'Total needs to be set correctly');
@@ -262,20 +255,16 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
   }
 
   function testTraditionalACLNotFoundTitle () {
+    $this->_params['title'] = 'n';
     $this->setupACL();
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['title'] = 'n';
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(0, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(0, $total, 'Total needs to be set correctly');
   }
 
   function testTraditionalACLFoundTitle () {
+    $this->_params['title'] = 'p';
     $this->setupACL();
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['title'] = 'p';
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(2, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(2, $total, 'Total needs to be set correctly');
@@ -284,10 +273,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
   }
 
   function testTraditionalACLDisabled () {
+    $this->_params['status'] = 2;
     $this->setupACL();
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 2;
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(1, $total, 'Total needs to be set correctly');
@@ -295,11 +282,9 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
   }
 
   function testTraditionalACLDisabledFoundTitle () {
+    $this->_params['status'] = 2;
+    $this->_params['title'] = 'p';
     $this->setupACL();
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 2;
-    $_REQUEST['title'] = 'p';
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(1, $total, 'Total needs to be set correctly');
@@ -307,21 +292,17 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
   }
 
   function testTraditionalACLDisabledNotFoundTitle () {
+    $this->_params['status'] = 2;
+    $this->_params['title'] = 'n';
     $this->setupACL();
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 2;
-    $_REQUEST['title'] = 'n';
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(0, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(0, $total, 'Total needs to be set correctly');
   }
 
   function testTraditionalACLEnabled () {
+    $this->_params['status'] = 1;
     $this->setupACL();
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 1;
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(1, $total, 'Total needs to be set correctly');
@@ -329,10 +310,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
   }
 
   function testTraditionalACLAll () {
+    $this->_params['status'] = 3;
     $this->setupACL();
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 3;
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(2, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(2, $total, 'Total needs to be set correctly');
@@ -344,11 +323,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * ACL Group hook
    */
   function testGroupListAclGroupHookDisabled() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
-    $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup'));
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 2;
+    $this->_params['status'] = 2;
+    $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(1, $total, 'Total needs to be set correctly');
@@ -359,12 +335,9 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * ACL Group hook
    */
   function testGroupListAclGroupHookDisabledFound() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
-    $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup'));
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 2;
-    $_REQUEST['title'] = 'p';
+    $this->_params['status'] = 2;
+    $this->_params['title'] = 'p';
+    $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(1, $total, 'Total needs to be set correctly');
@@ -375,12 +348,9 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * ACL Group hook
    */
   function testGroupListAclGroupHookDisabledNotFound() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
-    $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup'));
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 2;
-    $_REQUEST['title'] = 'n';
+    $this->_params['status'] = 2;
+    $this->_params['title'] = 'n';
+    $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(0, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(0, $total, 'Total needs to be set correctly');
@@ -391,10 +361,7 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * ACL Group hook
    */
   function testGroupListAclGroupHook() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
-    $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup'));
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
+    $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(1, $total, 'Total needs to be set correctly');
@@ -405,11 +372,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * ACL Group hook
    */
   function testGroupListAclGroupHookTitleNotFound() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
-    $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup'));
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['title'] = 'n';
+    $this->_params['title'] = 'n';
+    $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(0, $total, 'Total needs to be set correctly');
     $this->assertEquals(0, count($groups), 'Returned groups should exclude disabled by default');
@@ -419,11 +383,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * ACL Group hook
    */
   function testGroupListAclGroupHookTitleFound() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
-    $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup'));
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['title'] = 'p';
+    $this->_params['title'] = 'p';
+    $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(2, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(2, $total, 'Total needs to be set correctly');
@@ -435,11 +396,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * ACL Group hook
    */
   function testGroupListAclGroupHookAll() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
-    $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup'));
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 3;
+    $this->_params['status'] = 3;
+    $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(2, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(2, $total, 'Total needs to be set correctly');
@@ -451,11 +409,8 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
    * ACL Group hook
    */
   function testGroupListAclGroupHookEnabled() {
-    CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
-    $this->hookClass->setHook('civicrm_aclGroup', array($this, 'hook_civicrm_aclGroup'));
-    global $_REQUEST;
-    $_REQUEST = $this->_params;
-    $_REQUEST['status'] = 1;
+    $this->_params['status'] = 1;
+    $this->setHookAndRequest('access CiviCRM', 'hook_civicrm_aclGroup');
     list($groups, $total) = CRM_Group_Page_AJAX::getGroupList();
     $this->assertEquals(1, count($groups), 'Returned groups should exclude disabled by default');
     $this->assertEquals(1, $total, 'Total needs to be set correctly');
@@ -472,7 +427,7 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
   * @param array $currentGroups
   */
   function hook_civicrm_aclGroup($type, $contactID, $tableName, &$allGroups, &$currentGroups) {
-    //dont use api - you will get a loop
+    //don't use api - you will get a loop
     $sql = " SELECT * FROM civicrm_group WHERE name LIKE '%pick%'";
     $groups = array();
     $dao = CRM_Core_DAO::executeQuery($sql);
index 64680ad68246158cdcdab44f882729a95f20af1c..31e618722d34e2c968a68f16796f56fa599a7eef 100644 (file)
@@ -2585,6 +2585,8 @@ AND    ( TABLE_NAME LIKE 'civicrm_value_%' )
    *
    */
   function setupACL() {
+    global $_REQUEST;
+    $_REQUEST = $this->_params;
     CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
     $optionGroupID = $this->callAPISuccessGetValue('option_group', array('return' => 'id', 'name' => 'acl_role'));
     $optionValue = $this->callAPISuccess('option_value', 'create', array('option_group_id' => $optionGroupID,
@@ -2632,7 +2634,8 @@ AND    ( TABLE_NAME LIKE 'civicrm_value_%' )
     ));
     //flush cache
     CRM_ACL_BAO_Cache::resetCache();
-      CRM_ACL_API::groupPermission('whatever', 9999, NULL, 'civicrm_saved_search', NULL, NULL, TRUE);
+    CRM_Contact_BAO_Group::getPermissionClause(TRUE);
+    CRM_ACL_API::groupPermission('whatever', 9999, NULL, 'civicrm_saved_search', NULL, NULL, TRUE);
   }
 
 /**