protected function processAutoresponderItemInQueue(AutoresponderItem $autoresponderItem) { $util = new AutoresponderItemsUtil(); $util->processDueItem($autoresponderItem); }
protected function processAutoresponderItemInQueue(AutoresponderItem $autoresponderItem) { AutoresponderItemsUtil::processDueItem($autoresponderItem); }
/** * @depends testProcessDueAutoresponderItemWithCustomFromAddressAndFromName */ public function testProcessDueAutoresponderItemWithValidMergeTags() { $email = new Email(); $email->emailAddress = '*****@*****.**'; $contact = ContactTestHelper::createContactByNameForOwner('contact 05', $this->user); $contact->primaryEmail = $email; $this->assertTrue($contact->save()); $marketingList = MarketingListTestHelper::createMarketingListByName('marketingList 05', 'description', 'CustomFromName', '*****@*****.**'); $autoresponder = AutoresponderTestHelper::createAutoresponder('autoresponder 05', 'subject 05', 'Dr. [[FIRST^NAME]] [[LAST^NAME]]', '<b>[[LAST^NAME]]</b>, [[FIRST^NAME]]', 1, Autoresponder::OPERATION_SUBSCRIBE, $marketingList); $processed = AutoresponderItem::NOT_PROCESSED; $processDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime(time()); $autoresponderItem = AutoresponderItemTestHelper::createAutoresponderItem($processed, $processDateTime, $autoresponder, $contact); AutoresponderItemsUtil::processDueAutoresponderItem($autoresponderItem); $this->assertEquals(AutoresponderItem::PROCESSED, $autoresponderItem->processed); $emailMessage = $autoresponderItem->emailMessage; $this->assertEquals($marketingList->owner, $emailMessage->owner); $this->assertEquals($autoresponder->subject, $emailMessage->subject); $this->assertNotEquals($autoresponder->textContent, $emailMessage->content->textContent); $this->assertNotEquals($autoresponder->htmlContent, $emailMessage->content->htmlContent); $this->assertEquals('Dr. contact 05 contact 05son', $emailMessage->content->textContent); $this->assertEquals('<b>contact 05son</b>, contact 05', $emailMessage->content->htmlContent); $this->assertEquals($marketingList->fromAddress, $emailMessage->sender->fromAddress); $this->assertEquals($marketingList->fromName, $emailMessage->sender->fromName); $this->assertEquals(1, $emailMessage->recipients->count()); $recipients = $emailMessage->recipients; $this->assertEquals(strval($contact), $recipients[0]->toName); $this->assertEquals($email->emailAddress, $recipients[0]->toAddress); $this->assertEquals(EmailMessageRecipient::TYPE_TO, $recipients[0]->type); $this->assertEquals($contact, $recipients[0]->personOrAccount); }
/** * @depends testProcessDueAutoresponderItemWithUnsubscribeAndManageSubscriptionsUrlMergeTags */ public function testProcessDueAutoresponderItemWithoutUnsubscribeAndManageSubscriptionsUrlMergeTags() { $email = new Email(); $email->emailAddress = '*****@*****.**'; $contact = ContactTestHelper::createContactByNameForOwner('contact 13', $this->user); $contact->primaryEmail = $email; $this->assertTrue($contact->save()); $marketingList = MarketingListTestHelper::createMarketingListByName('marketingList 13', 'description', 'CustomFromName', '*****@*****.**'); $autoresponder = AutoresponderTestHelper::createAutoresponder('subject 13', 'Plain Text', 'HTML', 1, Autoresponder::OPERATION_SUBSCRIBE, true, $marketingList); $processed = 0; $processDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime(time()); $autoresponderItem = AutoresponderItemTestHelper::createAutoresponderItem($processed, $processDateTime, $autoresponder, $contact); AutoresponderItemsUtil::processDueItem($autoresponderItem); $this->assertEquals(1, $autoresponderItem->processed); $textContent = $autoresponderItem->emailMessage->content->textContent; $htmlContent = $autoresponderItem->emailMessage->content->htmlContent; $this->assertNotEquals($autoresponder->textContent, $textContent); $this->assertNotEquals($autoresponder->htmlContent, $htmlContent); $this->assertTrue(strpos($textContent, 'Plain Text') !== false); $this->assertTrue(strpos($textContent, '/marketingLists/external/unsubscribe?hash=') !== false); $this->assertEquals(1, substr_count($textContent, '/marketingLists/external/unsubscribe?hash=')); $this->assertTrue(strpos($textContent, '/marketingLists/external/manageSubscriptions?hash=') !== false); $this->assertEquals(1, substr_count($textContent, '/marketingLists/external/manageSubscriptions?hash=')); $this->assertTrue(strpos($htmlContent, 'HTML<br /><img width="1" height="1" src="localhost') !== false); $this->assertTrue(strpos($htmlContent, '/tracking/default/track?id=') !== false); $this->assertEquals(1, substr_count($htmlContent, '/tracking/default/track?id=')); $this->assertTrue(strpos($htmlContent, '/marketingLists/external/unsubscribe?hash=') !== false); $this->assertEquals(1, substr_count($htmlContent, '/marketingLists/external/unsubscribe?hash=')); $this->assertTrue(strpos($htmlContent, '">Unsubscribe</a><br /><a href="localhost') !== false); $this->assertEquals(1, substr_count($htmlContent, '">Unsubscribe</a><br /><a href="localhost')); $this->assertTrue(strpos($htmlContent, '/marketingLists/external/manageSubscriptions?hash=') !== false); $this->assertEquals(1, substr_count($htmlContent, '/marketingLists/external/manageSubscriptions?hash=')); $this->assertTrue(strpos($htmlContent, '">Manage Subscriptions</a>') !== false); $this->assertEquals(1, substr_count($htmlContent, '">Manage Subscriptions</a>')); }
public function testSkipMessage() { // Tests with Autoresponder $contact = ContactTestHelper::createContactByNameForOwner('contact 15', $this->user); $email = new Email(); $email->emailAddress = '*****@*****.**'; $contact->primaryEmail = $email; $this->assertTrue($contact->save()); $marketingList = MarketingListTestHelper::createMarketingListByName('marketingList 15'); $autoresponder = AutoresponderTestHelper::createAutoresponder('subject 15', 'text content', 'html content', 1, Autoresponder::OPERATION_UNSUBSCRIBE, false, $marketingList); $autoresponderItemsUtil = new AutoresponderItemsUtil(); // Test when the contact isn't in the marketing list at all, same as it was deleted $this->assertTrue($autoresponderItemsUtil->skipMessage($contact, $autoresponder)); // Test when the contact is subscribed but the operation is OPERATION_UNSUBSCRIBE $marketingListMember = MarketingListMemberTestHelper::createMarketingListMember(0, $marketingList, $contact); $this->assertTrue($autoresponderItemsUtil->skipMessage($contact, $autoresponder)); // Test when the contact is unsubscribed, so skipMessage return false $marketingListMember->unsubscribed = true; $this->assertTrue($marketingListMember->unrestrictedSave()); $this->assertFalse($autoresponderItemsUtil->skipMessage($contact, $autoresponder)); $contact = ContactTestHelper::createContactByNameForOwner('contact 16', $this->user); $email = new Email(); $email->emailAddress = '*****@*****.**'; $contact->primaryEmail = $email; $this->assertTrue($contact->save()); $marketingList = MarketingListTestHelper::createMarketingListByName('marketingList 16'); $autoresponder = AutoresponderTestHelper::createAutoresponder('subject 16', 'text content', 'html content', 1, Autoresponder::OPERATION_SUBSCRIBE, false, $marketingList); // Test when the contact isn't in the marketing list at all, same as it was deleted $this->assertTrue($autoresponderItemsUtil->skipMessage($contact, $autoresponder)); // Test when the contact is unsubscribed but the operation is OPERATION_SUBSCRIBE $marketingListMember = MarketingListMemberTestHelper::createMarketingListMember(1, $marketingList, $contact); $this->assertTrue($autoresponderItemsUtil->skipMessage($contact, $autoresponder)); // Test when the contact is subscribed, so skipMessage return false $marketingListMember->unsubscribed = false; $this->assertTrue($marketingListMember->unrestrictedSave()); $this->assertFalse($autoresponderItemsUtil->skipMessage($contact, $autoresponder)); //Tests with Campaign $contact = ContactTestHelper::createContactByNameForOwner('contact 17', $this->user); $email = new Email(); $email->emailAddress = '*****@*****.**'; $contact->primaryEmail = $email; $this->assertTrue($contact->save()); $marketingList = MarketingListTestHelper::createMarketingListByName('marketingList 17'); $campaign = CampaignTestHelper::createCampaign('campaign 01', 'subject 01', 'text 01', 'html 01', null, null, null, null, null, null, $marketingList); $this->assertNotNull($campaign); // Test when the contact isn't in the marketing list at all, same as it was deleted $this->assertTrue($autoresponderItemsUtil->skipMessage($contact, $campaign)); // Test when the contact is unsubscribed $marketingListMember = MarketingListMemberTestHelper::createMarketingListMember(1, $marketingList, $contact); $this->assertTrue($autoresponderItemsUtil->skipMessage($contact, $campaign)); // Test when the contact is subscribed, so skipMessage return false $marketingListMember->unsubscribed = false; $this->assertTrue($marketingListMember->unrestrictedSave()); $this->assertFalse($autoresponderItemsUtil->skipMessage($contact, $campaign)); }