Add tests [MAILPOET-2176]

This commit is contained in:
wxa
2019-07-10 13:14:15 +03:00
committed by M. Shull
parent 57b13c8896
commit b9b16dc13f
7 changed files with 122 additions and 11 deletions

View File

@ -4,6 +4,7 @@ namespace MailPoet\Test\Mailer\Methods;
use MailPoet\Mailer\MailerError;
use MailPoet\Mailer\Methods\AmazonSES;
use MailPoet\Mailer\Methods\ErrorMappers\AmazonSESMapper;
use MailPoet\Subscription\Blacklist;
class AmazonSESTest extends \MailPoetTest {
function _before() {
@ -233,6 +234,20 @@ class AmazonSESTest extends \MailPoetTest {
expect($result['error']->getMessage())->contains('does not comply with RFC 2822');
}
function testItChecksBlacklistBeforeSending() {
$blacklisted_subscriber = 'blacklist_test@example.com';
$blacklist = new Blacklist();
$blacklist->addEmail($blacklisted_subscriber);
$this->mailer->setBlacklist($blacklist);
$result = $this->mailer->send(
$this->newsletter,
$blacklisted_subscriber
);
expect($result['response'])->false();
expect($result['error'])->isInstanceOf(MailerError::class);
expect($result['error']->getMessage())->contains('AmazonSES has returned an unknown error.');
}
function testItCanSend() {
if (getenv('WP_TEST_MAILER_ENABLE_SENDING') !== 'true') return;
$result = $this->mailer->send(

View File

@ -9,6 +9,7 @@ use MailPoet\Mailer\Methods\ErrorMappers\MailPoetMapper;
use MailPoet\Mailer\Methods\MailPoet;
use MailPoet\Services\AuthorizedEmailsController;
use MailPoet\Services\Bridge\API;
use MailPoet\Subscription\Blacklist;
class MailPoetAPITest extends \MailPoetTest {
function _before() {
@ -255,4 +256,34 @@ class MailPoetAPITest extends \MailPoetTest {
);
$mailer->send([$this->newsletter], [$this->subscriber]);
}
function testItChecksBlacklistBeforeSendingToASingleSubscriber() {
$blacklisted_subscriber = 'blacklist_test@example.com';
$blacklist = new Blacklist();
$blacklist->addEmail($blacklisted_subscriber);
$this->mailer->setBlacklist($blacklist);
$result = $this->mailer->send(
$this->newsletter,
$blacklisted_subscriber
);
expect($result['response'])->false();
expect($result['error'])->isInstanceOf(MailerError::class);
expect($result['error']->getMessage())->contains('unknown error');
expect($result['error']->getMessage())->contains('MailPoet has returned an unknown error.');
}
function testItChecksBlacklistBeforeSendingToMultipleSubscribers() {
$blacklisted_subscriber = 'blacklist_test@example.com';
$blacklist = new Blacklist();
$blacklist->addEmail($blacklisted_subscriber);
$this->mailer->setBlacklist($blacklist);
$result = $this->mailer->send(
$this->newsletter,
['good@example.com', $blacklisted_subscriber, 'good2@example.com']
);
expect($result['response'])->false();
expect($result['error'])->isInstanceOf(MailerError::class);
expect($result['error']->getMessage())->contains('unknown error');
expect($result['error']->getMessage())->contains('MailPoet has returned an unknown error.');
}
}

View File

@ -1,8 +1,10 @@
<?php
namespace MailPoet\Test\Mailer\Methods;
use MailPoet\Mailer\MailerError;
use MailPoet\Mailer\Methods\ErrorMappers\PHPMailMapper;
use MailPoet\Mailer\Methods\PHPMail;
use MailPoet\Subscription\Blacklist;
class PHPMailTest extends \MailPoetTest {
function _before() {
@ -112,6 +114,21 @@ class PHPMailTest extends \MailPoetTest {
]);
}
function testItChecksBlacklistBeforeSending() {
$blacklisted_subscriber = 'blacklist_test@example.com';
$blacklist = new Blacklist();
$blacklist->addEmail($blacklisted_subscriber);
$this->mailer->setBlacklist($blacklist);
$result = $this->mailer->send(
$this->newsletter,
$blacklisted_subscriber
);
expect($result['response'])->false();
expect($result['error'])->isInstanceOf(MailerError::class);
expect($result['error']->getMessage())->contains('unknown error');
expect($result['error']->getMessage())->contains('PHPMail has returned an unknown error.');
}
function testItCanSend() {
if (getenv('WP_TEST_MAILER_ENABLE_SENDING') !== 'true') return;
$result = $this->mailer->send(

View File

@ -1,8 +1,10 @@
<?php
namespace MailPoet\Test\Mailer\Methods;
use MailPoet\Mailer\MailerError;
use MailPoet\Mailer\Methods\ErrorMappers\SMTPMapper;
use MailPoet\Mailer\Methods\SMTP;
use MailPoet\Subscription\Blacklist;
use MailPoet\WP\Functions as WPFunctions;
class SMTPTest extends \MailPoetTest {
@ -171,6 +173,20 @@ class SMTPTest extends \MailPoetTest {
expect($mailer->getTransport()->getTimeout())->equals(20);
}
function testItChecksBlacklistBeforeSending() {
$blacklisted_subscriber = 'blacklist_test@example.com';
$blacklist = new Blacklist();
$blacklist->addEmail($blacklisted_subscriber);
$this->mailer->setBlacklist($blacklist);
$result = $this->mailer->send(
$this->newsletter,
$blacklisted_subscriber
);
expect($result['response'])->false();
expect($result['error'])->isInstanceOf(MailerError::class);
expect($result['error']->getMessage())->contains('SMTP has returned an unknown error.');
}
function testItCanSend() {
if (getenv('WP_TEST_MAILER_ENABLE_SENDING') !== 'true') return;
$result = $this->mailer->send(

View File

@ -1,8 +1,10 @@
<?php
namespace MailPoet\Test\Mailer\Methods;
use MailPoet\Mailer\MailerError;
use MailPoet\Mailer\Methods\ErrorMappers\SendGridMapper;
use MailPoet\Mailer\Methods\SendGrid;
use MailPoet\Subscription\Blacklist;
class SendGridTest extends \MailPoetTest {
function _before() {
@ -82,6 +84,20 @@ class SendGridTest extends \MailPoetTest {
expect($result['response'])->false();
}
function testItChecksBlacklistBeforeSending() {
$blacklisted_subscriber = 'blacklist_test@example.com';
$blacklist = new Blacklist();
$blacklist->addEmail($blacklisted_subscriber);
$this->mailer->setBlacklist($blacklist);
$result = $this->mailer->send(
$this->newsletter,
$blacklisted_subscriber
);
expect($result['response'])->false();
expect($result['error'])->isInstanceOf(MailerError::class);
expect($result['error']->getMessage())->contains('SendGrid has returned an unknown error.');
}
function testItCanSend() {
if (getenv('WP_TEST_MAILER_ENABLE_SENDING') !== 'true') return;
$result = $this->mailer->send(

View File

@ -1,5 +1,5 @@
<?php
__halt_compiler();
namespace MailPoet\Test\Mailer\Methods\ErrorMappers;
use MailPoet\Mailer\MailerError;
@ -20,6 +20,15 @@ class MailPoetMapperTest extends \MailPoetUnitTest {
$this->subscribers = ['a@example.com', 'c d <b@example.com>'];
}
function testCreateBlacklistError() {
$error = $this->mapper->getBlacklistError($this->subscribers[1]);
expect($error)->isInstanceOf(MailerError::class);
expect($error->getOperation())->equals(MailerError::OPERATION_SEND);
expect($error->getLevel())->equals(MailerError::LEVEL_SOFT);
expect($error->getMessage())->contains('unknown error');
expect($error->getMessage())->contains('MailPoet');
}
function testCreateConnectionError() {
$error = $this->mapper->getConnectionError('connection error');
expect($error)->isInstanceOf(MailerError::class);
@ -53,14 +62,7 @@ class MailPoetMapperTest extends \MailPoetUnitTest {
expect($error)->isInstanceOf(MailerError::class);
expect($error->getOperation())->equals(MailerError::OPERATION_SEND);
expect($error->getLevel())->equals(MailerError::LEVEL_HARD);
expect($error->getMessage())->equals(Helpers::replaceLinkTags(
__('You currently are not permitted to send any emails with MailPoet Sending Service, which may have happened due to poor deliverability. Please [link]contact our support team[/link] to resolve the issue.', 'mailpoet'),
'https://www.mailpoet.com/support/',
array(
'target' => '_blank',
'rel' => 'noopener noreferrer',
)
));
expect($error->getMessage())->contains('The MailPoet Sending Service has stopped sending your emails for one of the following reasons');
}
function testGetErrorUnauthorizedEmail() {
@ -107,7 +109,7 @@ class MailPoetMapperTest extends \MailPoetUnitTest {
$api_result = [
'code' => API::RESPONSE_CODE_PAYLOAD_ERROR,
'status' => API::SENDING_STATUS_SEND_ERROR,
'message' => '[{"index":0,"errors":{"subject":"subject is missing"}},{"index":1,"errors":{"subject":"subject is missing"}}]'
'message' => '[{"index":0,"errors":{"subject":"subject is missing"}},{"index":1,"errors":{"subject":"subject is missing"}}]',
];
$error = $this->mapper->getErrorForResult($api_result, $this->subscribers);
expect($error)->isInstanceOf(MailerError::class);
@ -125,7 +127,7 @@ class MailPoetMapperTest extends \MailPoetUnitTest {
$api_result = [
'code' => API::RESPONSE_CODE_PAYLOAD_ERROR,
'status' => API::SENDING_STATUS_SEND_ERROR,
'message' => '[{"errors":{"subject":"subject is missing"}},{"errors":{"subject":"subject is missing"}}]'
'message' => '[{"errors":{"subject":"subject is missing"}},{"errors":{"subject":"subject is missing"}}]',
];
$error = $this->mapper->getErrorForResult($api_result, $this->subscribers);
expect($error)->isInstanceOf(MailerError::class);

View File

@ -0,0 +1,14 @@
<?php
namespace MailPoet\Subscription;
class BlacklistTest extends \MailPoetUnitTest {
function testItChecksBlacklistedEmails() {
$email = 'test@example.com';
$blacklist = new Blacklist();
$result = $blacklist->isBlacklisted($email);
expect($result)->equals(false);
$blacklist->addEmail($email);
$result = $blacklist->isBlacklisted($email);
expect($result)->equals(true);
}
}