function testDeleteSettings()
 {
     $existing_mailchimp_sync_setting = self::createTestGroupAndSyncSettings('Test group testDeleteSettings');
     $mailchimp_sync_setting = CRM_CiviMailchimp_BAO_SyncSettings::deleteSettings($existing_mailchimp_sync_setting);
     $deleted_mailchimp_sync_setting = CRM_CiviMailchimp_BAO_SyncSettings::findByListId($mailchimp_sync_setting->mailchimp_list_id, FALSE);
     $this->assertEquals($existing_mailchimp_sync_setting->id, $mailchimp_sync_setting->id);
     $this->assertNull($deleted_mailchimp_sync_setting);
 }
/**
 * Implementation of hook_civicrm_postProcess for the Group Edit form.
 */
function civimailchimp_civicrm_postProcess($formName, &$form)
{
    // If the Mailchimp API call fails, the mailchimp_list field will not be
    // added to the form, so we want to retain the existing Mailchimp List
    // sync settings for the group, if the group is edited.
    if ($formName === "CRM_Group_Form_Edit" && isset($form->_elementIndex['mailchimp_list'])) {
        $params['civicrm_group_id'] = $form->getVar('_id');
        // When creating a new group, the group ID is only accessible from the
        // 'amtgID' session variable.
        if (empty($params['civicrm_group_id'])) {
            $params['civicrm_group_id'] = $form->get('amtgID');
        }
        if ($form->_submitValues['mailchimp_list']) {
            $params['mailchimp_list_id'] = $form->_submitValues['mailchimp_list'];
            if (isset($form->_submitValues['mailchimp_interest_groups'])) {
                $params['mailchimp_interest_groups'] = $form->_submitValues['mailchimp_interest_groups'];
            }
            CRM_CiviMailchimp_BAO_SyncSettings::saveSettings($params);
        } else {
            $mailchimp_sync_setting = CRM_CiviMailchimp_BAO_SyncSettings::findByGroupId($params['civicrm_group_id']);
            if ($mailchimp_sync_setting) {
                CRM_CiviMailchimp_BAO_SyncSettings::deleteSettings($mailchimp_sync_setting);
            }
        }
    }
}