From bc44d94e5a29ac735be8c880e3b61990245b434d Mon Sep 17 00:00:00 2001 From: Seamus Lee Date: Wed, 17 Oct 2018 07:01:41 +1100 Subject: [PATCH] dev/core#448 Add in a Unit test to demonstrate the problem with smart groups and contats removed from smart groups not being properly checked --- tests/phpunit/CRM/Mailing/BAO/MailingTest.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/phpunit/CRM/Mailing/BAO/MailingTest.php b/tests/phpunit/CRM/Mailing/BAO/MailingTest.php index 937babbf02..0d00874b44 100644 --- a/tests/phpunit/CRM/Mailing/BAO/MailingTest.php +++ b/tests/phpunit/CRM/Mailing/BAO/MailingTest.php @@ -397,6 +397,21 @@ class CRM_Mailing_BAO_MailingTest extends CiviUnitTestCase { unset($expected[0], $expected[4], $expected[8]); $this->assertRecipientsCorrect($mailing['id'], $expected); + // Tear down: delete mailing, groups, contacts + $this->deleteMailing($mailing['id']); + + // Create a New mailing, Testing contacts removed from smart group. + // In this case groupIDs6 will only pick up contacts[0] amd contacts[8] with it's + // criteria. However we are deliberly going to remove contactIds[8] from the group + // Which should mean the mainling only finds 1 contact that is contactIds[0] + $mailing = $this->callAPISuccess('Mailing', 'create', array()); + $this->callAPISuccess('GroupContact', 'Create', array( + 'group_id' => $groupIDs[6], + 'contact_id' => $contactIDs[8], + 'status' => 'Removed', + )); + $this->createMailingGroup($mailing['id'], $groupIDs[6]); + $this->assertRecipientsCorrect($mailing['id'], [$contactIDs[0]]); // Tear down: delete mailing, groups, contacts $this->deleteMailing($mailing['id']); foreach ($groupIDs as $groupID) { -- 2.25.1