private function ActivitySubmissionTest::verifyActivityValues in Webform CiviCRM Integration 8.5
Verify activity values in civicrm.
2 calls to ActivitySubmissionTest::verifyActivityValues()
- ActivitySubmissionTest::testMultipleAssignees in tests/
src/ FunctionalJavascript/ ActivitySubmissionTest.php - Test activity on multiple assignees
- ActivitySubmissionTest::testSubmitWebform in tests/
src/ FunctionalJavascript/ ActivitySubmissionTest.php - Test submitting an activity
File
- tests/
src/ FunctionalJavascript/ ActivitySubmissionTest.php, line 119
Class
- ActivitySubmissionTest
- Tests submitting a Webform with CiviCRM: Contact with Activity
Namespace
Drupal\Tests\webform_civicrm\FunctionalJavascriptCode
private function verifyActivityValues($num = 1) {
$api_result = $this->utils
->wf_civicrm_api('activity', 'get', [
'sequential' => 1,
]);
$this
->assertEquals(1, $api_result['count']);
$activity = reset($api_result['values']);
$this
->assertEquals('Awesome Activity', $activity['subject']);
$this
->assertEquals('Lorem ipsum dolor sit amet.', $activity['details']);
// CiviCRM Activity Type 1 -> Meeting (default)
$this
->assertEquals('1', $activity['activity_type_id']);
$today = date('Y-m-d H:i:s');
$this
->assertTrue(strtotime($today) - strtotime($activity['activity_date_time']) < 120);
$this
->assertEquals(90, $activity['duration']);
$api_result = $this->utils
->wf_civicrm_api('ActivityContact', 'get', [
'sequential' => 1,
'return' => [
"contact_id",
],
'record_type_id' => "Activity Assignees",
'activity_id' => $activity['id'],
]);
$activityContacts = array_column($api_result['values'], 'contact_id');
for ($i = 1; $i <= $num; $i++) {
// In this test: contact_id 1 = Default Organization; contact_id 2 = Drupal User; contact_id 3 = Frederick
$contact = $this->utils
->wf_civicrm_api('Contact', 'get', [
'first_name' => $this->_contacts[$i]['first_name'],
'last_name' => $this->_contacts[$i]['last_name'],
]);
$this
->assertEquals(1, $contact['count']);
$this
->assertTrue(in_array($contact['id'], $activityContacts));
}
// Ok now let's log back in and retrieve the Activity we just stored - so that we can update it.
$this
->drupalLogin($this->adminUser);
$this
->drupalGet($this->webform
->toUrl('canonical', [
'query' => [
'cid1' => $contact['id'],
'aid' => $activity['id'],
],
]));
$this
->assertPageNoErrorMessages();
$this
->assertSession()
->waitForField('Activity Duration');
$this
->htmlOutput();
$this
->getSession()
->getPage()
->fillField('Activity Duration', '120');
$this
->getSession()
->getPage()
->pressButton('Submit');
$this
->htmlOutput();
// All we've updated is the Activity Duration
$api_result = $this->utils
->wf_civicrm_api('activity', 'get', [
'sequential' => 1,
]);
$this
->assertEquals(1, $api_result['count']);
$activity = reset($api_result['values']);
$this
->assertEquals(120, $activity['duration']);
// Everything else should have remained the same:
$this
->assertEquals('Awesome Activity', $activity['subject']);
$this
->assertEquals('1', $activity['activity_type_id']);
$this
->assertTrue(strtotime($today) - strtotime($activity['activity_date_time']) < 120);
}