Add sending queue tests
[MAILPOET-5033]
This commit is contained in:
committed by
Aschepikov
parent
fc8436ba74
commit
1a04b05e0d
@@ -366,11 +366,9 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
expect(isset($extraParams['unsubscribe_url']))->true();
|
expect(isset($extraParams['unsubscribe_url']))->true();
|
||||||
expect($extraParams['unsubscribe_url'])->equals($directUnsubscribeURL);
|
expect($extraParams['unsubscribe_url'])->equals($directUnsubscribeURL);
|
||||||
expect(isset($extraParams['meta']))->true();
|
expect(isset($extraParams['meta']))->true();
|
||||||
expect($extraParams['meta'])->equals([
|
expect($extraParams['meta']['email_type'])->equals('newsletter');
|
||||||
'email_type' => 'newsletter',
|
expect($extraParams['meta']['subscriber_status'])->equals('subscribed');
|
||||||
'subscriber_status' => 'subscribed',
|
expect($extraParams['meta']['subscriber_source'])->equals('administrator');
|
||||||
'subscriber_source' => 'administrator',
|
|
||||||
]);
|
|
||||||
return $this->mailerTaskDummyResponse;
|
return $this->mailerTaskDummyResponse;
|
||||||
}),
|
}),
|
||||||
]
|
]
|
||||||
@@ -391,11 +389,9 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
expect(isset($extraParams['unsubscribe_url']))->true();
|
expect(isset($extraParams['unsubscribe_url']))->true();
|
||||||
expect($extraParams['unsubscribe_url'])->equals($trackedUnsubscribeURL);
|
expect($extraParams['unsubscribe_url'])->equals($trackedUnsubscribeURL);
|
||||||
expect(isset($extraParams['meta']))->true();
|
expect(isset($extraParams['meta']))->true();
|
||||||
expect($extraParams['meta'])->equals([
|
expect($extraParams['meta']['email_type'])->equals('newsletter');
|
||||||
'email_type' => 'newsletter',
|
expect($extraParams['meta']['subscriber_status'])->equals('subscribed');
|
||||||
'subscriber_status' => 'subscribed',
|
expect($extraParams['meta']['subscriber_source'])->equals('administrator');
|
||||||
'subscriber_source' => 'administrator',
|
|
||||||
]);
|
|
||||||
return $this->mailerTaskDummyResponse;
|
return $this->mailerTaskDummyResponse;
|
||||||
}),
|
}),
|
||||||
]
|
]
|
||||||
@@ -1196,6 +1192,87 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
expect($this->wp->getTransient(SendingQueueWorker::EMAIL_WITH_INVALID_SEGMENT_OPTION))->equals('Subject With Deleted');
|
expect($this->wp->getTransient(SendingQueueWorker::EMAIL_WITH_INVALID_SEGMENT_OPTION))->equals('Subject With Deleted');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testItGeneratesPartOfAnMD5CampaignIdStoredAsSendingQueueMeta() {
|
||||||
|
$sendingQueueWorker = $this->getSendingQueueWorker(
|
||||||
|
$this->construct(
|
||||||
|
MailerTask::class,
|
||||||
|
[$this->diContainer->get(MailerFactory::class)],
|
||||||
|
[
|
||||||
|
'send' => Expected::exactly(1, function($newsletter, $subscriber) {
|
||||||
|
// newsletter body should not be empty
|
||||||
|
expect(!empty($newsletter['body']['html']))->true();
|
||||||
|
expect(!empty($newsletter['body']['text']))->true();
|
||||||
|
return $this->mailerTaskDummyResponse;
|
||||||
|
}),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$sendingQueueWorker->process();
|
||||||
|
$meta = $this->queue->getSendingQueueEntity()->getMeta();
|
||||||
|
expect(isset($meta['campaignId']))->true();
|
||||||
|
$campaignId = $meta['campaignId'];
|
||||||
|
expect(strlen($campaignId))->equals(16);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testItPassesCampaignIdToMailerViaExtraParamsMeta() {
|
||||||
|
$mailerTaskExtraParams = [];
|
||||||
|
$sendingQueueWorker = $this->getSendingQueueWorker(
|
||||||
|
$this->construct(
|
||||||
|
MailerTask::class,
|
||||||
|
[$this->diContainer->get(MailerFactory::class)],
|
||||||
|
[
|
||||||
|
'send' => Expected::exactly(1, function($newsletter, $subscriber, $extraParams = []) use (&$mailerTaskExtraParams) {
|
||||||
|
// newsletter body should not be empty
|
||||||
|
expect(!empty($newsletter['body']['html']))->true();
|
||||||
|
expect(!empty($newsletter['body']['text']))->true();
|
||||||
|
$mailerTaskExtraParams = $extraParams;
|
||||||
|
return $this->mailerTaskDummyResponse;
|
||||||
|
}),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$sendingQueueWorker->process();
|
||||||
|
$meta = $this->queue->getSendingQueueEntity()->getMeta();
|
||||||
|
expect(isset($meta['campaignId']))->true();
|
||||||
|
$campaignId = $meta['campaignId'];
|
||||||
|
expect($mailerTaskExtraParams['meta']['campaign_id'])->equals($campaignId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCampaignIdsAreTheSameForDifferentSubscribers() {
|
||||||
|
$mailerTaskCampaignIds = [];
|
||||||
|
$secondSubscriber = $this->createSubscriber('sub2@example.com', 'Subscriber', 'Two');
|
||||||
|
$segment2 = SubscriberSegment::create();
|
||||||
|
$segment2->subscriberId = (int)$secondSubscriber->getId();
|
||||||
|
$segment2->segmentId = (int)$this->segment->id;
|
||||||
|
$segment2->save();
|
||||||
|
$this->queue->setSubscribers([$this->subscriber->getId(), $secondSubscriber->getId()]);
|
||||||
|
$this->queue->countTotal = 2;
|
||||||
|
$this->queue->save();
|
||||||
|
$sendingQueueWorker = $this->getSendingQueueWorker(
|
||||||
|
$this->construct(
|
||||||
|
MailerTask::class,
|
||||||
|
[$this->diContainer->get(MailerFactory::class)],
|
||||||
|
[
|
||||||
|
'send' => Expected::exactly(2, function($newsletter, $subscriber, $extraParams = []) use (&$mailerTaskCampaignIds) {
|
||||||
|
// newsletter body should not be empty
|
||||||
|
expect(!empty($newsletter['body']['html']))->true();
|
||||||
|
expect(!empty($newsletter['body']['text']))->true();
|
||||||
|
$mailerTaskCampaignIds[$subscriber] = $extraParams['meta']['campaign_id'];
|
||||||
|
return $this->mailerTaskDummyResponse;
|
||||||
|
}),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$sendingQueueWorker->process();
|
||||||
|
$meta = $this->queue->getSendingQueueEntity()->getMeta();
|
||||||
|
expect(isset($meta['campaignId']))->true();
|
||||||
|
$campaignId = $meta['campaignId'];
|
||||||
|
expect(count($mailerTaskCampaignIds))->equals(2);
|
||||||
|
foreach (array_values($mailerTaskCampaignIds) as $mailerTaskCampaignId) {
|
||||||
|
expect($mailerTaskCampaignId)->equals($campaignId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function _after() {
|
public function _after() {
|
||||||
$this->truncateEntity(SubscriberEntity::class);
|
$this->truncateEntity(SubscriberEntity::class);
|
||||||
$this->truncateEntity(SubscriberSegmentEntity::class);
|
$this->truncateEntity(SubscriberSegmentEntity::class);
|
||||||
|
Reference in New Issue
Block a user