}
$groupContact = civicrm_api3('GroupContact', 'get', $checkParams);
if ($groupContact['count'] == 0 && !empty($params['skip_undelete'])) {
- $checkParams['status'] = 'removed';
+ $checkParams['status'] = array('IN' => array('Removed', 'Pending'));
}
$groupContact2 = civicrm_api3('GroupContact', 'get', $checkParams);
if ($groupContact['count'] == 0 && $groupContact2['count'] == 0) {
$groupContact = $this->callAPISuccess('groupContact', 'create', $groupContactCreateParams);
$groupGetContact = $this->CallAPISuccess('groupContact', 'get', $groupContactCreateParams);
$this->callAPISuccess('groupContact', 'delete', array('id' => $groupGetContact['id'], 'status' => 'Removed'));
+ $this->callAPISuccess('groupContact', 'delete', array('id' => $groupGetContact['id'], 'skip_undelete' => TRUE));
+ $this->callAPISuccess('group', 'delete', array('id' => $groupId3));
+ }
+
+ /**
+ * CRM-19979 test that group cotnact delete action works when contact is in status of pendin and is a permanent delete.
+ */
+ public function testPermanentDeleteWithPending() {
+ $groupId3 = $this->groupCreate(array(
+ 'name' => 'Test Group 3',
+ 'domain_id' => 1,
+ 'title' => 'New Test Group3 Created',
+ 'description' => 'New Test Group3 Created',
+ 'is_active' => 1,
+ 'visibility' => 'User and User Admin Only',
+ ));
+ $groupContactCreateParams = array(
+ 'contact_id' => $this->_contactId,
+ 'group_id' => $groupId3,
+ 'status' => 'Pending',
+ );
+ $groupContact = $this->callAPISuccess('groupContact', 'create', $groupContactCreateParams);
+ $groupGetContact = $this->CallAPISuccess('groupContact', 'get', $groupContactCreateParams);
+ $this->callAPISuccess('groupContact', 'delete', array('id' => $groupGetContact['id'], 'skip_undelete' => TRUE));
+ $this->callAPISuccess('group', 'delete', array('id' => $groupId3));
}
/**