From cc4988aefea8a9472b7a97b8df6c0f15f531b74d Mon Sep 17 00:00:00 2001 From: jitendrapurohit Date: Mon, 28 Nov 2016 18:27:06 +0530 Subject: [PATCH] add unit test, fix jenkin warning and remove unused array variable --- CRM/Core/BAO/Dashboard.php | 3 +-- tests/phpunit/api/v3/DashboardTest.php | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/CRM/Core/BAO/Dashboard.php b/CRM/Core/BAO/Dashboard.php index eaa4e2f9ec..7fbfa07c70 100644 --- a/CRM/Core/BAO/Dashboard.php +++ b/CRM/Core/BAO/Dashboard.php @@ -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]); } } diff --git a/tests/phpunit/api/v3/DashboardTest.php b/tests/phpunit/api/v3/DashboardTest.php index bbc33cbb42..e9f5169fa2 100644 --- a/tests/phpunit/api/v3/DashboardTest.php +++ b/tests/phpunit/api/v3/DashboardTest.php @@ -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. * -- 2.25.1