From 8a1627d55d92234bd71ecc49fc5784ad056e0d1b Mon Sep 17 00:00:00 2001 From: Jitendra Purohit Date: Wed, 21 Mar 2018 11:14:59 +0530 Subject: [PATCH] CRM-21848 - Add unit test for on_hold mailing recipients --- tests/phpunit/api/v3/MailingTest.php | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/tests/phpunit/api/v3/MailingTest.php b/tests/phpunit/api/v3/MailingTest.php index 36d970e7bdc..51d0b1fa43b 100644 --- a/tests/phpunit/api/v3/MailingTest.php +++ b/tests/phpunit/api/v3/MailingTest.php @@ -328,7 +328,10 @@ public function testMailerPreviewRecipients() { $this->assertTrue((bool) preg_match('/Includer Person/', $previewNames[0]), "Name 'Includer Person' should appear in '" . $previewNames[0] . '"'); } - public function testMailerPreviewRecipientsDeduplicate() { + /** + * Test if Mailing recipients include duplicate OR on_hold emails + */ + public function testMailerPreviewRecipientsDeduplicateAndOnholdEmails() { // BEGIN SAMPLE DATA $groupIDs['grp'] = $this->groupCreate(array('name' => 'Example group', 'title' => 'Example group')); $contactIDs['include_me'] = $this->individualCreate(array( @@ -341,6 +344,21 @@ public function testMailerPreviewRecipientsDeduplicate() { 'first_name' => 'IncluderDuplicate', 'last_name' => 'Person', )); + + $contactIDs['include_me_onhold'] = $this->individualCreate(array( + 'email' => 'onholdinclude.me@example.org', + 'first_name' => 'Onhold', + 'last_name' => 'Person', + )); + $emailId = $this->callAPISuccessGetValue('Email', array( + 'return' => 'id', + 'contact_id' => $contactIDs['include_me_onhold'], + )); + $this->callAPISuccess('Email', 'create', array( + 'id' => $emailId, + 'on_hold' => TRUE, + )); + $this->callAPISuccess('GroupContact', 'create', array( 'group_id' => $groupIDs['grp'], 'contact_id' => $contactIDs['include_me'], @@ -349,6 +367,10 @@ public function testMailerPreviewRecipientsDeduplicate() { 'group_id' => $groupIDs['grp'], 'contact_id' => $contactIDs['include_me_duplicate'], )); + $this->callAPISuccess('GroupContact', 'create', array( + 'group_id' => $groupIDs['grp'], + 'contact_id' => $contactIDs['include_me_onhold'], + )); $params = $this->_params; $params['groups']['include'] = array($groupIDs['grp']); @@ -368,6 +390,7 @@ public function testMailerPreviewRecipientsDeduplicate() { $create = $this->callAPISuccess('Mailing', 'create', $params); + //Recipient should not contain duplicate or on_hold emails. $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']));