Skip to content

Commit

Permalink
CRM-19353 unit test for mailing dedupe
Browse files Browse the repository at this point in the history
  • Loading branch information
aydun committed Oct 11, 2016
1 parent 574afd1 commit b20e742
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions tests/phpunit/api/v3/MailingTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,53 @@ public function testMailerPreviewRecipients() {
$this->assertTrue((bool) preg_match('/Includer Person/', $previewNames[0]), "Name 'Includer Person' should appear in '" . $previewNames[0] . '"');
}

public function testMailerPreviewRecipientsDeduplicate() {
// BEGIN SAMPLE DATA
$groupIDs['grp'] = $this->groupCreate(array('name' => 'Example group', 'title' => 'Example group'));
$contactIDs['include_me'] = $this->individualCreate(array(
'email' => 'include.me@example.org',
'first_name' => 'Includer',
'last_name' => 'Person',
));
$contactIDs['include_me_duplicate'] = $this->individualCreate(array(
'email' => 'include.me@example.org',
'first_name' => 'IncluderDuplicate',
'last_name' => 'Person',
));
$this->callAPISuccess('GroupContact', 'create', array(
'group_id' => $groupIDs['grp'],
'contact_id' => $contactIDs['include_me'],
));
$this->callAPISuccess('GroupContact', 'create', array(
'group_id' => $groupIDs['grp'],
'contact_id' => $contactIDs['include_me_duplicate'],
));

$params = $this->_params;
$params['groups']['include'] = array($groupIDs['grp']);
$params['mailings']['include'] = array();
$params['options']['force_rollback'] = 1;
$params['dedupe_email'] = 1;
$params['api.mailing_job.create'] = 1;
$params['api.MailingRecipients.get'] = array(
'mailing_id' => '$value.id',
'api.contact.getvalue' => array(
'return' => 'display_name',
),
'api.email.getvalue' => array(
'return' => 'email',
),
);
// END SAMPLE DATA

$create = $this->callAPIAndDocument('Mailing', 'create', $params, __FUNCTION__, __FILE__);

$preview = $create['values'][$create['id']]['api.MailingRecipients.get'];
$this->assertEquals(1, $preview['count']);
$previewEmails = array_values(CRM_Utils_Array::collect('api.email.getvalue', $preview['values']));
$this->assertEquals(array('include.me@example.org'), $previewEmails);
}

/**
*
*/
Expand Down

0 comments on commit b20e742

Please sign in to comment.