Use controller over service to get authorized emails
A preliminary step to enable caching authorized emails data from the API
This commit is contained in:
committed by
Aschepikov
parent
32cd4c36dd
commit
73e8ad717d
@@ -92,7 +92,7 @@ class Mailer extends APIEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function getAuthorizedEmailAddresses() {
|
public function getAuthorizedEmailAddresses() {
|
||||||
$authorizedEmails = $this->bridge->getAuthorizedEmailAddresses();
|
$authorizedEmails = $this->authorizedEmailsController->getAuthorizedEmailAddresses();
|
||||||
return $this->successResponse($authorizedEmails);
|
return $this->successResponse($authorizedEmails);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -12,6 +12,7 @@ use MailPoet\Config\ServicesChecker;
|
|||||||
use MailPoet\Cron\Workers\KeyCheck\PremiumKeyCheck;
|
use MailPoet\Cron\Workers\KeyCheck\PremiumKeyCheck;
|
||||||
use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck;
|
use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck;
|
||||||
use MailPoet\Mailer\MailerLog;
|
use MailPoet\Mailer\MailerLog;
|
||||||
|
use MailPoet\Services\AuthorizedEmailsController;
|
||||||
use MailPoet\Services\AuthorizedSenderDomainController;
|
use MailPoet\Services\AuthorizedSenderDomainController;
|
||||||
use MailPoet\Services\Bridge;
|
use MailPoet\Services\Bridge;
|
||||||
use MailPoet\Services\CongratulatoryMssEmailController;
|
use MailPoet\Services\CongratulatoryMssEmailController;
|
||||||
@@ -52,6 +53,9 @@ class Services extends APIEndpoint {
|
|||||||
/** @var AuthorizedSenderDomainController */
|
/** @var AuthorizedSenderDomainController */
|
||||||
private $senderDomainController;
|
private $senderDomainController;
|
||||||
|
|
||||||
|
/** @var AuthorizedEmailsController */
|
||||||
|
private $authorizedEmailsController;
|
||||||
|
|
||||||
/** @var SubscribersCountReporter */
|
/** @var SubscribersCountReporter */
|
||||||
private $subscribersCountReporter;
|
private $subscribersCountReporter;
|
||||||
|
|
||||||
@@ -70,7 +74,8 @@ class Services extends APIEndpoint {
|
|||||||
SubscribersCountReporter $subscribersCountReporter,
|
SubscribersCountReporter $subscribersCountReporter,
|
||||||
CongratulatoryMssEmailController $congratulatoryMssEmailController,
|
CongratulatoryMssEmailController $congratulatoryMssEmailController,
|
||||||
WPFunctions $wp,
|
WPFunctions $wp,
|
||||||
AuthorizedSenderDomainController $senderDomainController
|
AuthorizedSenderDomainController $senderDomainController,
|
||||||
|
AuthorizedEmailsController $authorizedEmailsController
|
||||||
) {
|
) {
|
||||||
$this->bridge = $bridge;
|
$this->bridge = $bridge;
|
||||||
$this->settings = $settings;
|
$this->settings = $settings;
|
||||||
@@ -83,6 +88,7 @@ class Services extends APIEndpoint {
|
|||||||
$this->congratulatoryMssEmailController = $congratulatoryMssEmailController;
|
$this->congratulatoryMssEmailController = $congratulatoryMssEmailController;
|
||||||
$this->wp = $wp;
|
$this->wp = $wp;
|
||||||
$this->senderDomainController = $senderDomainController;
|
$this->senderDomainController = $senderDomainController;
|
||||||
|
$this->authorizedEmailsController = $authorizedEmailsController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function checkMSSKey($data = []) {
|
public function checkMSSKey($data = []) {
|
||||||
@@ -266,7 +272,7 @@ class Services extends APIEndpoint {
|
|||||||
$emailDomain = Helpers::extractEmailDomain($fromEmail);
|
$emailDomain = Helpers::extractEmailDomain($fromEmail);
|
||||||
|
|
||||||
if (!$this->isItemInArray($emailDomain, $verifiedDomains)) {
|
if (!$this->isItemInArray($emailDomain, $verifiedDomains)) {
|
||||||
$authorizedEmails = $this->bridge->getAuthorizedEmailAddresses();
|
$authorizedEmails = $this->authorizedEmailsController->getAuthorizedEmailAddresses();
|
||||||
|
|
||||||
if (!$authorizedEmails) {
|
if (!$authorizedEmails) {
|
||||||
return $this->createBadRequest(__('No FROM email addresses are authorized.', 'mailpoet'));
|
return $this->createBadRequest(__('No FROM email addresses are authorized.', 'mailpoet'));
|
||||||
|
@@ -13,6 +13,7 @@ use MailPoet\Newsletter\NewslettersRepository;
|
|||||||
use MailPoet\NewsletterTemplates\NewsletterTemplatesRepository;
|
use MailPoet\NewsletterTemplates\NewsletterTemplatesRepository;
|
||||||
use MailPoet\Segments\SegmentsSimpleListRepository;
|
use MailPoet\Segments\SegmentsSimpleListRepository;
|
||||||
use MailPoet\Segments\WooCommerce;
|
use MailPoet\Segments\WooCommerce;
|
||||||
|
use MailPoet\Services\AuthorizedEmailsController;
|
||||||
use MailPoet\Services\AuthorizedSenderDomainController;
|
use MailPoet\Services\AuthorizedSenderDomainController;
|
||||||
use MailPoet\Services\Bridge;
|
use MailPoet\Services\Bridge;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
@@ -46,6 +47,8 @@ class Newsletters {
|
|||||||
|
|
||||||
private AuthorizedSenderDomainController $senderDomainController;
|
private AuthorizedSenderDomainController $senderDomainController;
|
||||||
|
|
||||||
|
private AuthorizedEmailsController $authorizedEmailsController;
|
||||||
|
|
||||||
private UserFlagsController $userFlagsController;
|
private UserFlagsController $userFlagsController;
|
||||||
|
|
||||||
private WooCommerce $wooCommerceSegment;
|
private WooCommerce $wooCommerceSegment;
|
||||||
@@ -64,6 +67,7 @@ class Newsletters {
|
|||||||
NewslettersRepository $newslettersRepository,
|
NewslettersRepository $newslettersRepository,
|
||||||
Bridge $bridge,
|
Bridge $bridge,
|
||||||
AuthorizedSenderDomainController $senderDomainController,
|
AuthorizedSenderDomainController $senderDomainController,
|
||||||
|
AuthorizedEmailsController $authorizedEmailsController,
|
||||||
UserFlagsController $userFlagsController,
|
UserFlagsController $userFlagsController,
|
||||||
WooCommerce $wooCommerceSegment,
|
WooCommerce $wooCommerceSegment,
|
||||||
CapabilitiesManager $capabilitiesManager
|
CapabilitiesManager $capabilitiesManager
|
||||||
@@ -79,6 +83,7 @@ class Newsletters {
|
|||||||
$this->newslettersRepository = $newslettersRepository;
|
$this->newslettersRepository = $newslettersRepository;
|
||||||
$this->bridge = $bridge;
|
$this->bridge = $bridge;
|
||||||
$this->senderDomainController = $senderDomainController;
|
$this->senderDomainController = $senderDomainController;
|
||||||
|
$this->authorizedEmailsController = $authorizedEmailsController;
|
||||||
$this->userFlagsController = $userFlagsController;
|
$this->userFlagsController = $userFlagsController;
|
||||||
$this->wooCommerceSegment = $wooCommerceSegment;
|
$this->wooCommerceSegment = $wooCommerceSegment;
|
||||||
$this->capabilitiesManager = $capabilitiesManager;
|
$this->capabilitiesManager = $capabilitiesManager;
|
||||||
@@ -136,7 +141,7 @@ class Newsletters {
|
|||||||
$data['sender_restrictions'] = [];
|
$data['sender_restrictions'] = [];
|
||||||
|
|
||||||
if ($this->bridge->isMailpoetSendingServiceEnabled()) {
|
if ($this->bridge->isMailpoetSendingServiceEnabled()) {
|
||||||
$data['authorized_emails'] = $this->bridge->getAuthorizedEmailAddresses();
|
$data['authorized_emails'] = $this->authorizedEmailsController->getAuthorizedEmailAddresses();
|
||||||
$data['verified_sender_domains'] = $this->senderDomainController->getFullyVerifiedSenderDomains(true);
|
$data['verified_sender_domains'] = $this->senderDomainController->getFullyVerifiedSenderDomains(true);
|
||||||
$data['partially_verified_sender_domains'] = $this->senderDomainController->getPartiallyVerifiedSenderDomains(true);
|
$data['partially_verified_sender_domains'] = $this->senderDomainController->getPartiallyVerifiedSenderDomains(true);
|
||||||
$data['all_sender_domains'] = $this->senderDomainController->getAllSenderDomains();
|
$data['all_sender_domains'] = $this->senderDomainController->getAllSenderDomains();
|
||||||
|
@@ -7,6 +7,7 @@ use MailPoet\AdminPages\PageRenderer;
|
|||||||
use MailPoet\Config\Installer;
|
use MailPoet\Config\Installer;
|
||||||
use MailPoet\Config\ServicesChecker;
|
use MailPoet\Config\ServicesChecker;
|
||||||
use MailPoet\Segments\SegmentsSimpleListRepository;
|
use MailPoet\Segments\SegmentsSimpleListRepository;
|
||||||
|
use MailPoet\Services\AuthorizedEmailsController;
|
||||||
use MailPoet\Services\AuthorizedSenderDomainController;
|
use MailPoet\Services\AuthorizedSenderDomainController;
|
||||||
use MailPoet\Services\Bridge;
|
use MailPoet\Services\Bridge;
|
||||||
use MailPoet\Settings\Hosts;
|
use MailPoet\Settings\Hosts;
|
||||||
@@ -41,6 +42,9 @@ class Settings {
|
|||||||
/** @var AuthorizedSenderDomainController */
|
/** @var AuthorizedSenderDomainController */
|
||||||
private $senderDomainController;
|
private $senderDomainController;
|
||||||
|
|
||||||
|
/** @var AuthorizedEmailsController */
|
||||||
|
private $authorizedEmailsController;
|
||||||
|
|
||||||
/** @var AssetsController */
|
/** @var AssetsController */
|
||||||
private $assetsController;
|
private $assetsController;
|
||||||
|
|
||||||
@@ -53,7 +57,8 @@ class Settings {
|
|||||||
CaptchaRenderer $captchaRenderer,
|
CaptchaRenderer $captchaRenderer,
|
||||||
SegmentsSimpleListRepository $segmentsListRepository,
|
SegmentsSimpleListRepository $segmentsListRepository,
|
||||||
Bridge $bridge,
|
Bridge $bridge,
|
||||||
AuthorizedSenderDomainController $senderDomainController
|
AuthorizedSenderDomainController $senderDomainController,
|
||||||
|
AuthorizedEmailsController $authorizedEmailsController
|
||||||
) {
|
) {
|
||||||
$this->assetsController = $assetsController;
|
$this->assetsController = $assetsController;
|
||||||
$this->pageRenderer = $pageRenderer;
|
$this->pageRenderer = $pageRenderer;
|
||||||
@@ -64,6 +69,7 @@ class Settings {
|
|||||||
$this->segmentsListRepository = $segmentsListRepository;
|
$this->segmentsListRepository = $segmentsListRepository;
|
||||||
$this->bridge = $bridge;
|
$this->bridge = $bridge;
|
||||||
$this->senderDomainController = $senderDomainController;
|
$this->senderDomainController = $senderDomainController;
|
||||||
|
$this->authorizedEmailsController = $authorizedEmailsController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render() {
|
public function render() {
|
||||||
@@ -100,7 +106,7 @@ class Settings {
|
|||||||
$data['sender_restrictions'] = [];
|
$data['sender_restrictions'] = [];
|
||||||
|
|
||||||
if ($this->bridge->isMailpoetSendingServiceEnabled()) {
|
if ($this->bridge->isMailpoetSendingServiceEnabled()) {
|
||||||
$data['authorized_emails'] = $this->bridge->getAuthorizedEmailAddresses();
|
$data['authorized_emails'] = $this->authorizedEmailsController->getAuthorizedEmailAddresses();
|
||||||
$data['verified_sender_domains'] = $this->senderDomainController->getFullyVerifiedSenderDomains(true);
|
$data['verified_sender_domains'] = $this->senderDomainController->getFullyVerifiedSenderDomains(true);
|
||||||
$data['partially_verified_sender_domains'] = $this->senderDomainController->getPartiallyVerifiedSenderDomains(true);
|
$data['partially_verified_sender_domains'] = $this->senderDomainController->getPartiallyVerifiedSenderDomains(true);
|
||||||
$data['all_sender_domains'] = $this->senderDomainController->getAllSenderDomains();
|
$data['all_sender_domains'] = $this->senderDomainController->getAllSenderDomains();
|
||||||
|
@@ -4,6 +4,7 @@ namespace MailPoet\Automation\Integrations\MailPoet;
|
|||||||
|
|
||||||
use MailPoet\Config\ServicesChecker;
|
use MailPoet\Config\ServicesChecker;
|
||||||
use MailPoet\Segments\SegmentsRepository;
|
use MailPoet\Segments\SegmentsRepository;
|
||||||
|
use MailPoet\Services\AuthorizedEmailsController;
|
||||||
use MailPoet\Services\AuthorizedSenderDomainController;
|
use MailPoet\Services\AuthorizedSenderDomainController;
|
||||||
use MailPoet\Services\Bridge;
|
use MailPoet\Services\Bridge;
|
||||||
|
|
||||||
@@ -20,16 +21,21 @@ class ContextFactory {
|
|||||||
/** @var AuthorizedSenderDomainController */
|
/** @var AuthorizedSenderDomainController */
|
||||||
private $authorizedSenderDomainController;
|
private $authorizedSenderDomainController;
|
||||||
|
|
||||||
|
/** @var AuthorizedEmailsController */
|
||||||
|
private $authorizedEmailsController;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
SegmentsRepository $segmentsRepository,
|
SegmentsRepository $segmentsRepository,
|
||||||
Bridge $bridge,
|
Bridge $bridge,
|
||||||
ServicesChecker $servicesChecker,
|
ServicesChecker $servicesChecker,
|
||||||
AuthorizedSenderDomainController $authorizedSenderDomainController
|
AuthorizedSenderDomainController $authorizedSenderDomainController,
|
||||||
|
AuthorizedEmailsController $authorizedEmailsController
|
||||||
) {
|
) {
|
||||||
$this->segmentsRepository = $segmentsRepository;
|
$this->segmentsRepository = $segmentsRepository;
|
||||||
$this->servicesChecker = $servicesChecker;
|
$this->servicesChecker = $servicesChecker;
|
||||||
$this->bridge = $bridge;
|
$this->bridge = $bridge;
|
||||||
$this->authorizedSenderDomainController = $authorizedSenderDomainController;
|
$this->authorizedSenderDomainController = $authorizedSenderDomainController;
|
||||||
|
$this->authorizedEmailsController = $authorizedEmailsController;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return mixed[] */
|
/** @return mixed[] */
|
||||||
@@ -48,7 +54,7 @@ class ContextFactory {
|
|||||||
|
|
||||||
private function getSenderDomainsConfig(): array {
|
private function getSenderDomainsConfig(): array {
|
||||||
$senderDomainsConfig = $this->authorizedSenderDomainController->getContextDataForAutomations();
|
$senderDomainsConfig = $this->authorizedSenderDomainController->getContextDataForAutomations();
|
||||||
$senderDomainsConfig['authorizedEmails'] = $this->bridge->getAuthorizedEmailAddresses();
|
$senderDomainsConfig['authorizedEmails'] = $this->authorizedEmailsController->getAuthorizedEmailAddresses();
|
||||||
return $senderDomainsConfig;
|
return $senderDomainsConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -12,6 +12,7 @@ use MailPoet\Cron\Workers\KeyCheck\PremiumKeyCheck;
|
|||||||
use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck;
|
use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck;
|
||||||
use MailPoet\Mailer\Mailer;
|
use MailPoet\Mailer\Mailer;
|
||||||
use MailPoet\Mailer\MailerLog;
|
use MailPoet\Mailer\MailerLog;
|
||||||
|
use MailPoet\Services\AuthorizedEmailsController;
|
||||||
use MailPoet\Services\AuthorizedSenderDomainController;
|
use MailPoet\Services\AuthorizedSenderDomainController;
|
||||||
use MailPoet\Services\Bridge;
|
use MailPoet\Services\Bridge;
|
||||||
use MailPoet\Services\CongratulatoryMssEmailController;
|
use MailPoet\Services\CongratulatoryMssEmailController;
|
||||||
@@ -460,7 +461,7 @@ class ServicesTest extends \MailPoetTest {
|
|||||||
public function testCongratulatoryEmailIsSent() {
|
public function testCongratulatoryEmailIsSent() {
|
||||||
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
||||||
$this->settings->set('sender.address', 'authorized@email.com');
|
$this->settings->set('sender.address', 'authorized@email.com');
|
||||||
$bridge = $this->make(Bridge::class, [
|
$authorizedEmailsController = $this->make(AuthorizedEmailsController::class, [
|
||||||
'getAuthorizedEmailAddresses' => ['authorized@email.com'],
|
'getAuthorizedEmailAddresses' => ['authorized@email.com'],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@@ -469,7 +470,7 @@ class ServicesTest extends \MailPoetTest {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$servicesEndpoint = $this->createServicesEndpointWithMocks([
|
$servicesEndpoint = $this->createServicesEndpointWithMocks([
|
||||||
'bridge' => $bridge,
|
'authorizedEmailsController' => $authorizedEmailsController,
|
||||||
'congratulatoryEmailController' => $congratulatoryEmailController,
|
'congratulatoryEmailController' => $congratulatoryEmailController,
|
||||||
]);
|
]);
|
||||||
$response = $servicesEndpoint->sendCongratulatoryMssEmail();
|
$response = $servicesEndpoint->sendCongratulatoryMssEmail();
|
||||||
@@ -488,11 +489,11 @@ class ServicesTest extends \MailPoetTest {
|
|||||||
public function testCongratulatoryEmailRespondsWithErrorWhenNoEmailAuthorized() {
|
public function testCongratulatoryEmailRespondsWithErrorWhenNoEmailAuthorized() {
|
||||||
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
||||||
$this->settings->set('sender.address', 'unauthorized@email.com');
|
$this->settings->set('sender.address', 'unauthorized@email.com');
|
||||||
$bridge = $this->make(Bridge::class, [
|
$authorizedEmailsController = $this->make(AuthorizedEmailsController::class, [
|
||||||
'getAuthorizedEmailAddresses' => [],
|
'getAuthorizedEmailAddresses' => [],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$servicesEndpoint = $this->createServicesEndpointWithMocks(['bridge' => $bridge]);
|
$servicesEndpoint = $this->createServicesEndpointWithMocks(['authorizedEmailsController' => $authorizedEmailsController]);
|
||||||
$response = $servicesEndpoint->sendCongratulatoryMssEmail();
|
$response = $servicesEndpoint->sendCongratulatoryMssEmail();
|
||||||
verify($response->status)->equals(APIResponse::STATUS_BAD_REQUEST);
|
verify($response->status)->equals(APIResponse::STATUS_BAD_REQUEST);
|
||||||
verify($response->errors[0]['message'])->equals('No FROM email addresses are authorized.');
|
verify($response->errors[0]['message'])->equals('No FROM email addresses are authorized.');
|
||||||
@@ -500,7 +501,7 @@ class ServicesTest extends \MailPoetTest {
|
|||||||
|
|
||||||
public function testCongratulatoryEmailRespondsWithDifferentErrorWhenNoEmailAuthorizedButDomainIsVerified() {
|
public function testCongratulatoryEmailRespondsWithDifferentErrorWhenNoEmailAuthorizedButDomainIsVerified() {
|
||||||
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
||||||
$bridge = $this->make(Bridge::class, [
|
$authorizedEmailsController = $this->make(AuthorizedEmailsController::class, [
|
||||||
'getAuthorizedEmailAddresses' => [],
|
'getAuthorizedEmailAddresses' => [],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@@ -510,7 +511,7 @@ class ServicesTest extends \MailPoetTest {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$servicesEndpoint = $this->createServicesEndpointWithMocks([
|
$servicesEndpoint = $this->createServicesEndpointWithMocks([
|
||||||
'bridge' => $bridge,
|
'authorizedEmailsController' => $authorizedEmailsController,
|
||||||
'senderDomain' => $senderDomainMock,
|
'senderDomain' => $senderDomainMock,
|
||||||
]);
|
]);
|
||||||
$response = $servicesEndpoint->sendCongratulatoryMssEmail();
|
$response = $servicesEndpoint->sendCongratulatoryMssEmail();
|
||||||
@@ -523,11 +524,11 @@ class ServicesTest extends \MailPoetTest {
|
|||||||
public function testCongratulatoryEmailRespondsWithErrorWhenNoSenderSet() {
|
public function testCongratulatoryEmailRespondsWithErrorWhenNoSenderSet() {
|
||||||
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
||||||
$this->settings->set('sender.address', null);
|
$this->settings->set('sender.address', null);
|
||||||
$bridge = $this->make(Bridge::class, [
|
$authorizedEmailsController = $this->make(AuthorizedEmailsController::class, [
|
||||||
'getAuthorizedEmailAddresses' => ['authorized@email.com'],
|
'getAuthorizedEmailAddresses' => ['authorized@email.com'],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$servicesEndpoint = $this->createServicesEndpointWithMocks(['bridge' => $bridge]);
|
$servicesEndpoint = $this->createServicesEndpointWithMocks(['authorizedEmailsController' => $authorizedEmailsController]);
|
||||||
$response = $servicesEndpoint->sendCongratulatoryMssEmail();
|
$response = $servicesEndpoint->sendCongratulatoryMssEmail();
|
||||||
verify($response->status)->equals(APIResponse::STATUS_BAD_REQUEST);
|
verify($response->status)->equals(APIResponse::STATUS_BAD_REQUEST);
|
||||||
verify($response->errors[0]['message'])->equals('Sender email address is not set.');
|
verify($response->errors[0]['message'])->equals('Sender email address is not set.');
|
||||||
@@ -536,11 +537,11 @@ class ServicesTest extends \MailPoetTest {
|
|||||||
public function testCongratulatoryEmailRespondsWithErrorWhenSenderNotAuthorized() {
|
public function testCongratulatoryEmailRespondsWithErrorWhenSenderNotAuthorized() {
|
||||||
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
||||||
$this->settings->set('sender.address', 'unauthorized@email.com');
|
$this->settings->set('sender.address', 'unauthorized@email.com');
|
||||||
$bridge = $this->make(Bridge::class, [
|
$authorizedEmailsController = $this->make(AuthorizedEmailsController::class, [
|
||||||
'getAuthorizedEmailAddresses' => ['authorized@email.com'],
|
'getAuthorizedEmailAddresses' => ['authorized@email.com'],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$servicesEndpoint = $this->createServicesEndpointWithMocks(['bridge' => $bridge]);
|
$servicesEndpoint = $this->createServicesEndpointWithMocks(['authorizedEmailsController' => $authorizedEmailsController]);
|
||||||
$response = $servicesEndpoint->sendCongratulatoryMssEmail();
|
$response = $servicesEndpoint->sendCongratulatoryMssEmail();
|
||||||
verify($response->status)->equals(APIResponse::STATUS_BAD_REQUEST);
|
verify($response->status)->equals(APIResponse::STATUS_BAD_REQUEST);
|
||||||
verify($response->errors[0]['message'])->equals("Sender email address 'unauthorized@email.com' is not authorized.");
|
verify($response->errors[0]['message'])->equals("Sender email address 'unauthorized@email.com' is not authorized.");
|
||||||
@@ -549,7 +550,7 @@ class ServicesTest extends \MailPoetTest {
|
|||||||
public function testCongratulatoryEmailRespondsWithSuccessWhenSenderNotAuthorizedButDomainIsVerified() {
|
public function testCongratulatoryEmailRespondsWithSuccessWhenSenderNotAuthorizedButDomainIsVerified() {
|
||||||
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
||||||
$this->settings->set('sender.address', 'unauthorized@email.com');
|
$this->settings->set('sender.address', 'unauthorized@email.com');
|
||||||
$bridge = $this->make(Bridge::class, [
|
$authorizedEmailsController = $this->make(AuthorizedEmailsController::class, [
|
||||||
'getAuthorizedEmailAddresses' => ['authorized@email.com'],
|
'getAuthorizedEmailAddresses' => ['authorized@email.com'],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@@ -563,7 +564,7 @@ class ServicesTest extends \MailPoetTest {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$servicesEndpoint = $this->createServicesEndpointWithMocks([
|
$servicesEndpoint = $this->createServicesEndpointWithMocks([
|
||||||
'bridge' => $bridge,
|
'authorizedEmailsController' => $authorizedEmailsController,
|
||||||
'congratulatoryEmailController' => $congratulatoryEmailController,
|
'congratulatoryEmailController' => $congratulatoryEmailController,
|
||||||
'senderDomain' => $senderDomainMock,
|
'senderDomain' => $senderDomainMock,
|
||||||
]);
|
]);
|
||||||
@@ -576,7 +577,7 @@ class ServicesTest extends \MailPoetTest {
|
|||||||
public function testCongratulatoryEmailRespondsWithErrorWhenSendingFails() {
|
public function testCongratulatoryEmailRespondsWithErrorWhenSendingFails() {
|
||||||
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
||||||
$this->settings->set('sender.address', 'authorized@email.com');
|
$this->settings->set('sender.address', 'authorized@email.com');
|
||||||
$bridge = $this->make(Bridge::class, [
|
$authorizedEmailsController = $this->make(AuthorizedEmailsController::class, [
|
||||||
'getAuthorizedEmailAddresses' => ['authorized@email.com'],
|
'getAuthorizedEmailAddresses' => ['authorized@email.com'],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@@ -587,7 +588,7 @@ class ServicesTest extends \MailPoetTest {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$servicesEndpoint = $this->createServicesEndpointWithMocks([
|
$servicesEndpoint = $this->createServicesEndpointWithMocks([
|
||||||
'bridge' => $bridge,
|
'authorizedEmailsController' => $authorizedEmailsController,
|
||||||
'congratulatoryEmailController' => $congratulatoryEmailController,
|
'congratulatoryEmailController' => $congratulatoryEmailController,
|
||||||
]);
|
]);
|
||||||
$response = $servicesEndpoint->sendCongratulatoryMssEmail();
|
$response = $servicesEndpoint->sendCongratulatoryMssEmail();
|
||||||
@@ -674,7 +675,8 @@ class ServicesTest extends \MailPoetTest {
|
|||||||
$this->diContainer->get(SubscribersCountReporter::class),
|
$this->diContainer->get(SubscribersCountReporter::class),
|
||||||
$mocks['congratulatoryEmailController'] ?? $this->diContainer->get(CongratulatoryMssEmailController::class),
|
$mocks['congratulatoryEmailController'] ?? $this->diContainer->get(CongratulatoryMssEmailController::class),
|
||||||
$this->diContainer->get(WPFunctions::class),
|
$this->diContainer->get(WPFunctions::class),
|
||||||
$mocks['senderDomain'] ?? $this->diContainer->get(AuthorizedSenderDomainController::class)
|
$mocks['senderDomain'] ?? $this->diContainer->get(AuthorizedSenderDomainController::class),
|
||||||
|
$mocks['authorizedEmailsController'] ?? $this->diContainer->get(AuthorizedEmailsController::class)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -30,6 +30,7 @@ use MailPoet\Statistics\StatisticsOpensRepository;
|
|||||||
use MailPoet\Subscribers\ConfirmationEmailCustomizer;
|
use MailPoet\Subscribers\ConfirmationEmailCustomizer;
|
||||||
use MailPoet\Subscribers\SubscribersCountsController;
|
use MailPoet\Subscribers\SubscribersCountsController;
|
||||||
use MailPoet\WooCommerce\TransactionalEmails;
|
use MailPoet\WooCommerce\TransactionalEmails;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use MailPoetVendor\Carbon\Carbon;
|
use MailPoetVendor\Carbon\Carbon;
|
||||||
use MailPoetVendor\Doctrine\ORM\EntityManager;
|
use MailPoetVendor\Doctrine\ORM\EntityManager;
|
||||||
|
|
||||||
@@ -133,10 +134,11 @@ class SettingsTest extends \MailPoetTest {
|
|||||||
public function testItSetsAuthorizedFromAddressAndResumesSending() {
|
public function testItSetsAuthorizedFromAddressAndResumesSending() {
|
||||||
$bridgeMock = $this->make(Bridge::class, ['getAuthorizedEmailAddresses' => Expected::once(['authorized' => ['authorized@email.com']])]);
|
$bridgeMock = $this->make(Bridge::class, ['getAuthorizedEmailAddresses' => Expected::once(['authorized' => ['authorized@email.com']])]);
|
||||||
$senderDomainController = $this->diContainer->get(AuthorizedSenderDomainController::class);
|
$senderDomainController = $this->diContainer->get(AuthorizedSenderDomainController::class);
|
||||||
|
$wp = $this->diContainer->get(WPFunctions::class);
|
||||||
$this->endpoint = new Settings(
|
$this->endpoint = new Settings(
|
||||||
$this->settings,
|
$this->settings,
|
||||||
$bridgeMock,
|
$bridgeMock,
|
||||||
new AuthorizedEmailsController($this->settings, $bridgeMock, $this->diContainer->get(NewslettersRepository::class), $senderDomainController),
|
new AuthorizedEmailsController($this->settings, $bridgeMock, $this->diContainer->get(NewslettersRepository::class), $senderDomainController, $wp),
|
||||||
$this->diContainer->get(AuthorizedSenderDomainController::class),
|
$this->diContainer->get(AuthorizedSenderDomainController::class),
|
||||||
$this->make(TransactionalEmails::class),
|
$this->make(TransactionalEmails::class),
|
||||||
$this->diContainer->get(EntityManager::class),
|
$this->diContainer->get(EntityManager::class),
|
||||||
@@ -164,10 +166,11 @@ class SettingsTest extends \MailPoetTest {
|
|||||||
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
$this->settings->set(Mailer::MAILER_CONFIG_SETTING_NAME, ['method' => Mailer::METHOD_MAILPOET]);
|
||||||
$bridgeMock = $this->make(Bridge::class, ['getAuthorizedEmailAddresses' => Expected::once(['authorized' => ['authorized@email.com']])]);
|
$bridgeMock = $this->make(Bridge::class, ['getAuthorizedEmailAddresses' => Expected::once(['authorized' => ['authorized@email.com']])]);
|
||||||
$senderDomainController = $this->diContainer->get(AuthorizedSenderDomainController::class);
|
$senderDomainController = $this->diContainer->get(AuthorizedSenderDomainController::class);
|
||||||
|
$wp = $this->diContainer->get(WPFunctions::class);
|
||||||
$this->endpoint = new Settings(
|
$this->endpoint = new Settings(
|
||||||
$this->settings,
|
$this->settings,
|
||||||
$bridgeMock,
|
$bridgeMock,
|
||||||
new AuthorizedEmailsController($this->settings, $bridgeMock, $this->diContainer->get(NewslettersRepository::class), $senderDomainController),
|
new AuthorizedEmailsController($this->settings, $bridgeMock, $this->diContainer->get(NewslettersRepository::class), $senderDomainController, $wp),
|
||||||
$this->diContainer->get(AuthorizedSenderDomainController::class),
|
$this->diContainer->get(AuthorizedSenderDomainController::class),
|
||||||
$this->make(TransactionalEmails::class),
|
$this->make(TransactionalEmails::class),
|
||||||
$this->diContainer->get(EntityManager::class),
|
$this->diContainer->get(EntityManager::class),
|
||||||
@@ -197,10 +200,11 @@ class SettingsTest extends \MailPoetTest {
|
|||||||
public function testItRejectsUnauthorizedFromAddress() {
|
public function testItRejectsUnauthorizedFromAddress() {
|
||||||
$bridgeMock = $this->make(Bridge::class, ['getAuthorizedEmailAddresses' => Expected::once(['authorized' => ['authorized@email.com']])]);
|
$bridgeMock = $this->make(Bridge::class, ['getAuthorizedEmailAddresses' => Expected::once(['authorized' => ['authorized@email.com']])]);
|
||||||
$senderDomainController = $this->diContainer->get(AuthorizedSenderDomainController::class);
|
$senderDomainController = $this->diContainer->get(AuthorizedSenderDomainController::class);
|
||||||
|
$wp = $this->diContainer->get(WPFunctions::class);
|
||||||
$this->endpoint = new Settings(
|
$this->endpoint = new Settings(
|
||||||
$this->settings,
|
$this->settings,
|
||||||
$bridgeMock,
|
$bridgeMock,
|
||||||
new AuthorizedEmailsController($this->settings, $bridgeMock, $this->diContainer->get(NewslettersRepository::class), $senderDomainController),
|
new AuthorizedEmailsController($this->settings, $bridgeMock, $this->diContainer->get(NewslettersRepository::class), $senderDomainController, $wp),
|
||||||
$this->diContainer->get(AuthorizedSenderDomainController::class),
|
$this->diContainer->get(AuthorizedSenderDomainController::class),
|
||||||
$this->make(TransactionalEmails::class),
|
$this->make(TransactionalEmails::class),
|
||||||
$this->diContainer->get(EntityManager::class),
|
$this->diContainer->get(EntityManager::class),
|
||||||
|
Reference in New Issue
Block a user