From: demeritcowboy Date: Sat, 3 Oct 2020 16:46:15 +0000 (-0400) Subject: handle missing array member X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=146058dad1d0b7a4a791cba6cb09ebef797c3959;p=civicrm-core.git handle missing array member --- diff --git a/CRM/Activity/BAO/Activity.php b/CRM/Activity/BAO/Activity.php index 60ffb77aa5..8414c93660 100644 --- a/CRM/Activity/BAO/Activity.php +++ b/CRM/Activity/BAO/Activity.php @@ -2566,7 +2566,7 @@ INNER JOIN civicrm_option_group grp ON (grp.id = option_group_id AND grp.name = } } } - elseif (!$values['target_contact_name']) { + elseif (empty($values['target_contact_name'])) { $activity['target_contact_name'] = 'n/a'; } diff --git a/tests/phpunit/CRM/Activity/BAO/ActivityTest.php b/tests/phpunit/CRM/Activity/BAO/ActivityTest.php index 913728bc08..b6a39ba499 100644 --- a/tests/phpunit/CRM/Activity/BAO/ActivityTest.php +++ b/tests/phpunit/CRM/Activity/BAO/ActivityTest.php @@ -213,6 +213,35 @@ class CRM_Activity_BAO_ActivityTest extends CiviUnitTestCase { $this->cleanUpAfterACLs(); } + /** + * Check for errors when viewing a contact's activity tab when there + * is an activity that doesn't have a target (With Contact). + */ + public function testActivitySelectorNoTargets() { + $contact_id = $this->individualCreate([], 0, TRUE); + $activity = $this->callAPISuccess('activity', 'create', [ + 'source_contact_id' => $contact_id, + 'activity_type_id' => 'Meeting', + 'subject' => 'Lonely Meeting', + 'details' => 'Here at this meeting all by myself and no other contacts.', + ]); + $input = [ + '_raw_values' => [], + 'offset' => 0, + 'rp' => 25, + 'page' => 1, + 'context' => 'activity', + 'contact_id' => $contact_id, + ]; + $output = CRM_Activity_BAO_Activity::getContactActivitySelector($input); + $this->assertEquals($activity['id'], $output['data'][0]['DT_RowId']); + $this->assertEquals('n/a', $output['data'][0]['target_contact_name']); + $this->assertEquals('Lonely Meeting', $output['data'][0]['subject']); + + $this->callAPISuccess('activity', 'delete', ['id' => $activity['id']]); + $this->callAPISuccess('contact', 'delete', ['id' => $contact_id]); + } + /** * Test case for deleteActivity() method. *