Skip to content
Snippets Groups Projects
Commit a413c3db authored by eileen's avatar eileen
Browse files

Use PrematureExit exception instead of weird hack in tests

Passing is_unit_test to a function to avoid the civiExit routine has been superceded by catching
PrematureExitExceptions
parent 54625e27
Branches
Tags
No related merge requests found
......@@ -379,7 +379,7 @@ class CRM_Activity_Page_AJAX {
/**
* Get activities for the contact.
*
* @return array
* @throws \CRM_Core_Exception
*/
public static function getContactActivity() {
$requiredParameters = [
......@@ -420,10 +420,10 @@ class CRM_Activity_Page_AJAX {
unset($optionalParameters['context']);
foreach ($optionalParameters as $searchField => $dataType) {
$formSearchField = $searchField;
if ($searchField == 'activity_type_id') {
if ($searchField === 'activity_type_id') {
$formSearchField = 'activity_type_filter_id';
}
elseif ($searchField == 'activity_type_exclude_id') {
elseif ($searchField === 'activity_type_exclude_id') {
$formSearchField = 'activity_type_exclude_filter_id';
}
if (!empty($params[$searchField])) {
......@@ -431,7 +431,7 @@ class CRM_Activity_Page_AJAX {
if (in_array($searchField, ['activity_date_time_low', 'activity_date_time_high'])) {
$activityFilter['activity_date_time_relative'] = 0;
}
elseif ($searchField == 'activity_status_id') {
elseif ($searchField === 'activity_status_id') {
$activityFilter['status_id'] = explode(',', $activityFilter[$searchField]);
}
}
......@@ -439,9 +439,6 @@ class CRM_Activity_Page_AJAX {
Civi::contactSettings()->set('activity_tab_filter', $activityFilter);
}
if (!empty($_GET['is_unit_test'])) {
return [$activities, $activityFilter];
}
CRM_Utils_JSON::output($activities);
}
......
......@@ -93,7 +93,6 @@ class CRM_Custom_Page_AJAX {
/**
* Get list of Multi Record Fields.
*
*/
public static function getMultiRecordFieldList() {
......@@ -139,10 +138,6 @@ class CRM_Custom_Page_AJAX {
$multiRecordFields['recordsTotal'] = $totalRecords;
$multiRecordFields['recordsFiltered'] = $totalRecords;
if (!empty($_GET['is_unit_test'])) {
return $multiRecordFields;
}
CRM_Utils_JSON::output($multiRecordFields);
}
......
......@@ -13,7 +13,6 @@
*
* @package CRM
* @copyright CiviCRM LLC https://civicrm.org/licensing
*
*/
/**
......@@ -64,10 +63,6 @@ class CRM_Group_Page_AJAX {
}
}
if (!empty($_GET['is_unit_test'])) {
return $groups;
}
CRM_Utils_JSON::output($groups);
}
......
......@@ -463,13 +463,18 @@ class CRM_Activity_BAO_ActivityTest extends CiviUnitTestCase {
'cid' => 9,
'context' => 'activity',
'activity_type_id' => 1,
'is_unit_test' => 1,
];
$expectedFilters = [
'activity_type_filter_id' => 1,
];
list($activities, $activityFilter) = CRM_Activity_Page_AJAX::getContactActivity();
try {
CRM_Activity_Page_AJAX::getContactActivity();
}
catch (CRM_Core_Exception_PrematureExitException $e) {
$activityFilter = Civi::contactSettings()->get('activity_tab_filter');
$activities = $e->errorData;
}
//Assert whether filters are correctly set.
$this->checkArrayEquals($expectedFilters, $activityFilter);
// This should include activities of type Meeting only.
......@@ -479,7 +484,13 @@ class CRM_Activity_BAO_ActivityTest extends CiviUnitTestCase {
unset($_GET['activity_type_id']);
$_GET['activity_type_exclude_id'] = $expectedFilters['activity_type_exclude_filter_id'] = 1;
list($activities, $activityFilter) = CRM_Activity_Page_AJAX::getContactActivity();
try {
CRM_Activity_Page_AJAX::getContactActivity();
}
catch (CRM_Core_Exception_PrematureExitException $e) {
$activityFilter = Civi::contactSettings()->get('activity_tab_filter');
$activities = $e->errorData;
}
$this->assertEquals(['activity_type_exclude_filter_id' => 1], $activityFilter);
// None of the activities should be of type Meeting.
foreach ($activities['data'] as $value) {
......@@ -525,7 +536,7 @@ class CRM_Activity_BAO_ActivityTest extends CiviUnitTestCase {
// with no contact ID and there should be 8 schedule activities shown on dashboard
$count = 8;
foreach ([$activitiesNew] as $activities) {
$this->assertEquals($count, count($activities));
$this->assertCount($count, $activities);
foreach ($activities as $key => $value) {
$this->assertEquals($value['subject'], "subject {$key}", 'Verify activity subject is correct.');
......@@ -537,10 +548,9 @@ class CRM_Activity_BAO_ActivityTest extends CiviUnitTestCase {
// Now check that we get the scheduled meeting, if civicaseShowCaseActivities is set.
$this->setShowCaseActivitiesInCore(TRUE);
$activitiesNew = CRM_Activity_BAO_Activity::getActivities($this->_params);
$this->assertEquals(9, count($activitiesNew));
$this->assertCount(9, $activitiesNew);
// Scan through to find the meeting.
$this->assertTrue(in_array('test meeting activity', array_column($activitiesNew, 'subject')),
"failed to find scheduled case Meeting activity");
$this->assertContains('test meeting activity', array_column($activitiesNew, 'subject'), "failed to find scheduled case Meeting activity");
// Reset to default
$this->setShowCaseActivitiesInCore(FALSE);
}
......@@ -553,7 +563,7 @@ class CRM_Activity_BAO_ActivityTest extends CiviUnitTestCase {
$this->setUpForActivityDashboardTests();
foreach ([CRM_Activity_BAO_Activity::getActivities($this->_params)] as $activities) {
// Skipped until we get back to the upgraded version properly.
$this->assertEquals(0, count($activities));
$this->assertCount(0, $activities);
}
}
......
......@@ -54,9 +54,13 @@ class CRM_Custom_Page_AJAXTest extends CiviUnitTestCase {
$_GET = [
'cid' => $contactId,
'cgid' => $ids['custom_group_id'],
'is_unit_test' => TRUE,
];
$multiRecordFields = CRM_Custom_Page_AJAX::getMultiRecordFieldList();
try {
CRM_Custom_Page_AJAX::getMultiRecordFieldList();
}
catch (CRM_Core_Exception_PrematureExitException $e) {
$multiRecordFields = $e->errorData;
}
//check sorting
foreach ($customFields as $fieldId) {
......@@ -72,7 +76,12 @@ class CRM_Custom_Page_AJAXTest extends CiviUnitTestCase {
'dir' => 'desc',
],
];
$sortedRecords = CRM_Custom_Page_AJAX::getMultiRecordFieldList();
try {
CRM_Custom_Page_AJAX::getMultiRecordFieldList();
}
catch (CRM_Core_Exception_PrematureExitException $e) {
$sortedRecords = $e->errorData;
}
$this->assertEquals(3, $sortedRecords['recordsTotal']);
$this->assertEquals(3, $multiRecordFields['recordsTotal']);
......
......@@ -34,7 +34,6 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
'rowCount' => 50,
'sort' => NULL,
'parentsOnly' => FALSE,
'is_unit_test' => TRUE,
];
$this->hookClass = CRM_Utils_Hook::singleton();
$this->createLoggedInUser();
......@@ -90,15 +89,25 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
$obj = new CRM_Group_Page_AJAX();
//filter with title
$_GET['title'] = "not-me-active";
$groups = $obj->getGroupList();
$_GET['title'] = 'not-me-active';
try {
CRM_Group_Page_AJAX::getGroupList();
}
catch (CRM_Core_Exception_PrematureExitException $e) {
$groups = $e->errorData;
}
$this->assertEquals(1, $groups['recordsTotal']);
$this->assertEquals('not-me-active', $groups['data'][0]['title']);
unset($_GET['title']);
// check on status
$_GET['status'] = 2;
$groups = $obj->getGroupList();
try {
CRM_Group_Page_AJAX::getGroupList();
}
catch (CRM_Core_Exception_PrematureExitException $e) {
$groups = $e->errorData;
}
foreach ($groups['data'] as $key => $val) {
$this->assertEquals('crm-entity disabled', $val['DT_RowClass']);
}
......@@ -544,8 +553,12 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
// Load the Manage Group page code and we should get a count from our
// group because the cache is fresh.
$_GET = $this->_params;
$obj = new CRM_Group_Page_AJAX();
$groups = $obj->getGroupList();
try {
CRM_Group_Page_AJAX::getGroupList();
}
catch (CRM_Core_Exception_PrematureExitException $e) {
$groups = $e->errorData;
}
// Make sure we returned our smart group and ensure the count is accurate.
$found = FALSE;
......@@ -566,8 +579,12 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
// Load the Manage Group page code.
$_GET = $this->_params;
$obj = new CRM_Group_Page_AJAX();
$groups = $obj->getGroupList();
try {
CRM_Group_Page_AJAX::getGroupList();
}
catch (CRM_Core_Exception_PrematureExitException $e) {
$groups = $e->errorData;
}
// Make sure the smart group reports unknown count.
$count_is_unknown = FALSE;
......@@ -607,8 +624,12 @@ class CRM_Group_Page_AjaxTest extends CiviUnitTestCase {
// Load the Manage Group page code.
$_GET = $this->_params;
$obj = new CRM_Group_Page_AJAX();
$groups = $obj->getGroupList();
try {
CRM_Group_Page_AJAX::getGroupList();
}
catch (CRM_Core_Exception_PrematureExitException $e) {
// Perhaps this was just testing valid sql...
}
// Ensure we did not regenerate the cache.
$sql = 'SELECT DATE_FORMAT(cache_date, "%Y%m%d%H%i%s") AS cache_date ' .
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment