add unit test, fix jenkin warning and remove unused array variable
authorjitendrapurohit <jitendra.purohit@webaccessglobal.com>
Mon, 28 Nov 2016 12:57:06 +0000 (18:27 +0530)
committerjitendrapurohit <jitendra.purohit@webaccessglobal.com>
Mon, 28 Nov 2016 12:59:25 +0000 (18:29 +0530)
CRM/Core/BAO/Dashboard.php
tests/phpunit/api/v3/DashboardTest.php

index eaa4e2f9ec3c7e7ec4829edac0c339c0bbda506b..7fbfa07c70f45d0b9ddb1aabcef232042a41a628 100644 (file)
@@ -450,9 +450,8 @@ class CRM_Core_BAO_Dashboard extends CRM_Core_DAO_Dashboard {
     $query = "SELECT distinct( contact_id )
               FROM civicrm_dashboard_contact WHERE dashboard_id = {$dashlet->id}";
     $dao = CRM_Core_DAO::executeQuery($query);
-    $skipContactIDs = array();
     while ($dao->fetch()) {
-      if(array_key_exists($dao->contact_id, $contactIDs)) {
+      if (array_key_exists($dao->contact_id, $contactIDs)) {
         unset($contactIDs[$dao->contact_id]);
       }
     }
index bbc33cbb424ee7151918c71827288b954061c2c9..e9f5169fa24edd09a68a9e9cef3003c9990a1b69 100644 (file)
@@ -61,6 +61,28 @@ class api_v3_DashboardTest extends CiviUnitTestCase {
     $this->assertEquals($dashboard['values'][$dashboard['id']]['is_active'], 1);
   }
 
+  /**
+   * CRM-19534.
+   *
+   * Ensure that Dashboard create works fine for non admins
+   */
+  public function testDashboardCreateByNonAdmins() {
+    $loggedInContactID = $this->createLoggedInUser();
+    CRM_Core_Config::singleton()->userPermissionClass->permissions = array();
+    $params = array(
+      'label' => 'New Dashlet element',
+      'name' => 'New Dashlet element',
+      'url' => 'civicrm/report/list&reset=1&compid=99',
+      'fullscreen_url' => 'civicrm/report/list&compid=99&reset=1&context=dashletFullscreen',
+    );
+    $dashboard = $this->callAPISuccess('dashboard', 'create', $params);
+    $this->assertTrue(is_numeric($dashboard['id']), "In line " . __LINE__);
+    $this->assertTrue($dashboard['id'] > 0, "In line " . __LINE__);
+
+    $this->callAPISuccess('dashboard', 'create', $params);
+    $this->assertEquals($dashboard['values'][$dashboard['id']]['is_active'], 1);
+  }
+
   /**
    * CRM-19217.
    *