Add tests [MAILPOET-2176]
This commit is contained in:
@ -4,6 +4,7 @@ namespace MailPoet\Test\Mailer\Methods;
|
|||||||
use MailPoet\Mailer\MailerError;
|
use MailPoet\Mailer\MailerError;
|
||||||
use MailPoet\Mailer\Methods\AmazonSES;
|
use MailPoet\Mailer\Methods\AmazonSES;
|
||||||
use MailPoet\Mailer\Methods\ErrorMappers\AmazonSESMapper;
|
use MailPoet\Mailer\Methods\ErrorMappers\AmazonSESMapper;
|
||||||
|
use MailPoet\Subscription\Blacklist;
|
||||||
|
|
||||||
class AmazonSESTest extends \MailPoetTest {
|
class AmazonSESTest extends \MailPoetTest {
|
||||||
function _before() {
|
function _before() {
|
||||||
@ -233,6 +234,20 @@ class AmazonSESTest extends \MailPoetTest {
|
|||||||
expect($result['error']->getMessage())->contains('does not comply with RFC 2822');
|
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() {
|
function testItCanSend() {
|
||||||
if (getenv('WP_TEST_MAILER_ENABLE_SENDING') !== 'true') return;
|
if (getenv('WP_TEST_MAILER_ENABLE_SENDING') !== 'true') return;
|
||||||
$result = $this->mailer->send(
|
$result = $this->mailer->send(
|
||||||
|
@ -9,6 +9,7 @@ use MailPoet\Mailer\Methods\ErrorMappers\MailPoetMapper;
|
|||||||
use MailPoet\Mailer\Methods\MailPoet;
|
use MailPoet\Mailer\Methods\MailPoet;
|
||||||
use MailPoet\Services\AuthorizedEmailsController;
|
use MailPoet\Services\AuthorizedEmailsController;
|
||||||
use MailPoet\Services\Bridge\API;
|
use MailPoet\Services\Bridge\API;
|
||||||
|
use MailPoet\Subscription\Blacklist;
|
||||||
|
|
||||||
class MailPoetAPITest extends \MailPoetTest {
|
class MailPoetAPITest extends \MailPoetTest {
|
||||||
function _before() {
|
function _before() {
|
||||||
@ -255,4 +256,34 @@ class MailPoetAPITest extends \MailPoetTest {
|
|||||||
);
|
);
|
||||||
$mailer->send([$this->newsletter], [$this->subscriber]);
|
$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.');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace MailPoet\Test\Mailer\Methods;
|
namespace MailPoet\Test\Mailer\Methods;
|
||||||
|
|
||||||
|
use MailPoet\Mailer\MailerError;
|
||||||
use MailPoet\Mailer\Methods\ErrorMappers\PHPMailMapper;
|
use MailPoet\Mailer\Methods\ErrorMappers\PHPMailMapper;
|
||||||
use MailPoet\Mailer\Methods\PHPMail;
|
use MailPoet\Mailer\Methods\PHPMail;
|
||||||
|
use MailPoet\Subscription\Blacklist;
|
||||||
|
|
||||||
class PHPMailTest extends \MailPoetTest {
|
class PHPMailTest extends \MailPoetTest {
|
||||||
function _before() {
|
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() {
|
function testItCanSend() {
|
||||||
if (getenv('WP_TEST_MAILER_ENABLE_SENDING') !== 'true') return;
|
if (getenv('WP_TEST_MAILER_ENABLE_SENDING') !== 'true') return;
|
||||||
$result = $this->mailer->send(
|
$result = $this->mailer->send(
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace MailPoet\Test\Mailer\Methods;
|
namespace MailPoet\Test\Mailer\Methods;
|
||||||
|
|
||||||
|
use MailPoet\Mailer\MailerError;
|
||||||
use MailPoet\Mailer\Methods\ErrorMappers\SMTPMapper;
|
use MailPoet\Mailer\Methods\ErrorMappers\SMTPMapper;
|
||||||
use MailPoet\Mailer\Methods\SMTP;
|
use MailPoet\Mailer\Methods\SMTP;
|
||||||
|
use MailPoet\Subscription\Blacklist;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class SMTPTest extends \MailPoetTest {
|
class SMTPTest extends \MailPoetTest {
|
||||||
@ -171,6 +173,20 @@ class SMTPTest extends \MailPoetTest {
|
|||||||
expect($mailer->getTransport()->getTimeout())->equals(20);
|
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() {
|
function testItCanSend() {
|
||||||
if (getenv('WP_TEST_MAILER_ENABLE_SENDING') !== 'true') return;
|
if (getenv('WP_TEST_MAILER_ENABLE_SENDING') !== 'true') return;
|
||||||
$result = $this->mailer->send(
|
$result = $this->mailer->send(
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace MailPoet\Test\Mailer\Methods;
|
namespace MailPoet\Test\Mailer\Methods;
|
||||||
|
|
||||||
|
use MailPoet\Mailer\MailerError;
|
||||||
use MailPoet\Mailer\Methods\ErrorMappers\SendGridMapper;
|
use MailPoet\Mailer\Methods\ErrorMappers\SendGridMapper;
|
||||||
use MailPoet\Mailer\Methods\SendGrid;
|
use MailPoet\Mailer\Methods\SendGrid;
|
||||||
|
use MailPoet\Subscription\Blacklist;
|
||||||
|
|
||||||
class SendGridTest extends \MailPoetTest {
|
class SendGridTest extends \MailPoetTest {
|
||||||
function _before() {
|
function _before() {
|
||||||
@ -82,6 +84,20 @@ class SendGridTest extends \MailPoetTest {
|
|||||||
expect($result['response'])->false();
|
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() {
|
function testItCanSend() {
|
||||||
if (getenv('WP_TEST_MAILER_ENABLE_SENDING') !== 'true') return;
|
if (getenv('WP_TEST_MAILER_ENABLE_SENDING') !== 'true') return;
|
||||||
$result = $this->mailer->send(
|
$result = $this->mailer->send(
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
__halt_compiler();
|
|
||||||
namespace MailPoet\Test\Mailer\Methods\ErrorMappers;
|
namespace MailPoet\Test\Mailer\Methods\ErrorMappers;
|
||||||
|
|
||||||
use MailPoet\Mailer\MailerError;
|
use MailPoet\Mailer\MailerError;
|
||||||
@ -20,6 +20,15 @@ class MailPoetMapperTest extends \MailPoetUnitTest {
|
|||||||
$this->subscribers = ['a@example.com', 'c d <b@example.com>'];
|
$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() {
|
function testCreateConnectionError() {
|
||||||
$error = $this->mapper->getConnectionError('connection error');
|
$error = $this->mapper->getConnectionError('connection error');
|
||||||
expect($error)->isInstanceOf(MailerError::class);
|
expect($error)->isInstanceOf(MailerError::class);
|
||||||
@ -53,14 +62,7 @@ class MailPoetMapperTest extends \MailPoetUnitTest {
|
|||||||
expect($error)->isInstanceOf(MailerError::class);
|
expect($error)->isInstanceOf(MailerError::class);
|
||||||
expect($error->getOperation())->equals(MailerError::OPERATION_SEND);
|
expect($error->getOperation())->equals(MailerError::OPERATION_SEND);
|
||||||
expect($error->getLevel())->equals(MailerError::LEVEL_HARD);
|
expect($error->getLevel())->equals(MailerError::LEVEL_HARD);
|
||||||
expect($error->getMessage())->equals(Helpers::replaceLinkTags(
|
expect($error->getMessage())->contains('The MailPoet Sending Service has stopped sending your emails for one of the following reasons');
|
||||||
__('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',
|
|
||||||
)
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function testGetErrorUnauthorizedEmail() {
|
function testGetErrorUnauthorizedEmail() {
|
||||||
@ -107,7 +109,7 @@ class MailPoetMapperTest extends \MailPoetUnitTest {
|
|||||||
$api_result = [
|
$api_result = [
|
||||||
'code' => API::RESPONSE_CODE_PAYLOAD_ERROR,
|
'code' => API::RESPONSE_CODE_PAYLOAD_ERROR,
|
||||||
'status' => API::SENDING_STATUS_SEND_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);
|
$error = $this->mapper->getErrorForResult($api_result, $this->subscribers);
|
||||||
expect($error)->isInstanceOf(MailerError::class);
|
expect($error)->isInstanceOf(MailerError::class);
|
||||||
@ -125,7 +127,7 @@ class MailPoetMapperTest extends \MailPoetUnitTest {
|
|||||||
$api_result = [
|
$api_result = [
|
||||||
'code' => API::RESPONSE_CODE_PAYLOAD_ERROR,
|
'code' => API::RESPONSE_CODE_PAYLOAD_ERROR,
|
||||||
'status' => API::SENDING_STATUS_SEND_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);
|
$error = $this->mapper->getErrorForResult($api_result, $this->subscribers);
|
||||||
expect($error)->isInstanceOf(MailerError::class);
|
expect($error)->isInstanceOf(MailerError::class);
|
||||||
|
14
tests/unit/Subscription/BlacklistTest.php
Normal file
14
tests/unit/Subscription/BlacklistTest.php
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user