diff --git a/mailpoet/lib/Services/AuthorizedSenderDomainController.php b/mailpoet/lib/Services/AuthorizedSenderDomainController.php index f7dad23f5d..4778d2759d 100644 --- a/mailpoet/lib/Services/AuthorizedSenderDomainController.php +++ b/mailpoet/lib/Services/AuthorizedSenderDomainController.php @@ -160,24 +160,29 @@ class AuthorizedSenderDomainController { return $response; } - public function getSenderDomainsByStatus(string $status): array { + public function getSenderDomainsByStatus(array $status): array { return array_filter($this->getAllRawData(), function(array $senderDomainData) use ($status) { - return ($senderDomainData['domain_status'] ?? null) === $status; + return in_array($senderDomainData['domain_status'] ?? null, $status); }); } public function getFullyVerifiedSenderDomains($domainsOnly = false): array { - $domainData = $this->getSenderDomainsByStatus(self::OVERALL_STATUS_VERIFIED); + $domainData = $this->getSenderDomainsByStatus([self::OVERALL_STATUS_VERIFIED]); return $domainsOnly ? $this->extractDomains($domainData) : $domainData; } public function getPartiallyVerifiedSenderDomains($domainsOnly = false): array { - $domainData = $this->getSenderDomainsByStatus(self::OVERALL_STATUS_PARTIALLY_VERIFIED); + $domainData = $this->getSenderDomainsByStatus([self::OVERALL_STATUS_PARTIALLY_VERIFIED]); return $domainsOnly ? $this->extractDomains($domainData) : $domainData; } public function getUnverifiedSenderDomains($domainsOnly = false): array { - $domainData = $this->getSenderDomainsByStatus(self::OVERALL_STATUS_UNVERIFIED); + $domainData = $this->getSenderDomainsByStatus([self::OVERALL_STATUS_UNVERIFIED]); + return $domainsOnly ? $this->extractDomains($domainData) : $domainData; + } + + public function getFullyOrPartiallyVerifiedSenderDomains($domainsOnly = false): array { + $domainData = $this->getSenderDomainsByStatus([self::OVERALL_STATUS_PARTIALLY_VERIFIED,self::OVERALL_STATUS_VERIFIED]); return $domainsOnly ? $this->extractDomains($domainData) : $domainData; } diff --git a/mailpoet/tests/integration/Services/AuthorizedSenderDomainControllerTest.php b/mailpoet/tests/integration/Services/AuthorizedSenderDomainControllerTest.php index 5d01664fa4..9b9438e4ad 100644 --- a/mailpoet/tests/integration/Services/AuthorizedSenderDomainControllerTest.php +++ b/mailpoet/tests/integration/Services/AuthorizedSenderDomainControllerTest.php @@ -227,13 +227,13 @@ class AuthorizedSenderDomainControllerTest extends \MailPoetTest { $controller = $this->getController($bridgeMock); - $domainsByStatus = $controller->getSenderDomainsByStatus('verified'); + $domainsByStatus = $controller->getSenderDomainsByStatus(['verified']); $this->assertEqualsCanonicalizing([$verifiedDomain], $domainsByStatus); - $domainsByStatus = $controller->getSenderDomainsByStatus('partially-verified'); + $domainsByStatus = $controller->getSenderDomainsByStatus(['partially-verified']); $this->assertEqualsCanonicalizing([$partiallyVerifiedDomain], $domainsByStatus); - $domainsByStatus = $controller->getSenderDomainsByStatus('unverified'); + $domainsByStatus = $controller->getSenderDomainsByStatus(['unverified']); $this->assertEqualsCanonicalizing([$unverifiedDomain], $domainsByStatus); $grouped = $controller->getSenderDomainsGroupedByStatus(); @@ -249,6 +249,9 @@ class AuthorizedSenderDomainControllerTest extends \MailPoetTest { $domains = $controller->getPartiallyVerifiedSenderDomains(true); $this->assertEqualsCanonicalizing(['example2.com'], $domains); + $domains = $controller->getFullyOrPartiallyVerifiedSenderDomains(true); + $this->assertEqualsCanonicalizing(['example1.com', 'example2.com'], $domains); + $domains = $controller->getUnverifiedSenderDomains(true); $this->assertEqualsCanonicalizing(['example3.com'], $domains); }