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:
Mustapha Hadid
2024-09-27 13:44:45 +01:00
committed by Aschepikov
parent 32cd4c36dd
commit 73e8ad717d
7 changed files with 55 additions and 26 deletions

View File

@@ -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);
} }

View File

@@ -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'));

View File

@@ -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();

View File

@@ -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();

View File

@@ -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;
} }

View File

@@ -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)
); );
} }
} }

View File

@@ -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),