Allow verification of partially verified Sender domains

[MAILPOET-5817]
This commit is contained in:
Brezo Cordero
2024-01-09 13:04:57 -06:00
committed by Aschepikov
parent 0eb531f675
commit ab296401b2
2 changed files with 56 additions and 2 deletions

View File

@@ -121,8 +121,6 @@ class AuthorizedSenderDomainController {
$records = $this->bridge->getAuthorizedSenderDomains();
$allDomains = $this->returnAllDomains($records);
$verifiedDomains = $this->returnVerifiedDomains($records);
$alreadyExist = in_array($domain, $allDomains);
if (!$alreadyExist) {
@@ -130,6 +128,7 @@ class AuthorizedSenderDomainController {
throw new \InvalidArgumentException(self::AUTHORIZED_SENDER_DOMAIN_ERROR_NOT_CREATED);
}
$verifiedDomains = $this->getFullyVerifiedSenderDomains(true);
$alreadyVerified = in_array($domain, $verifiedDomains);
if ($alreadyVerified) {

View File

@@ -134,12 +134,58 @@ class AuthorizedSenderDomainControllerTest extends \MailPoetTest {
['status' => 'valid'],
['status' => 'valid'],
['status' => 'valid'],
['status' => 'valid'],
]];
$domainsRawData = [
'testdomain.com' => [
'domain' => 'testdomain.com',
'domain_status' => 'verified',
'dns' => [],
],
];
$getSenderDomainsExpectation = Expected::once($domains);
$getSenderDomainsRawDataExpectation = Expected::once($domainsRawData);
$verifySenderDomainsExpectation = Expected::never();
$bridgeMock = $this->make(Bridge::class, [
'getAuthorizedSenderDomains' => $getSenderDomainsExpectation,
'getRawSenderDomainData' => $getSenderDomainsRawDataExpectation,
'verifyAuthorizedSenderDomain' => $verifySenderDomainsExpectation,
]);
$controller = $this->getController($bridgeMock);
$controller->verifyAuthorizedSenderDomain('testdomain.com');
}
public function testVerifyAuthorizedSenderDomainVerifiesPartiallyVerifiedDomains() {
$domains = ['testdomain.com' => [
['status' => 'valid'],
['status' => 'valid'],
['status' => 'valid'],
['status' => 'pending'],
]];
$domainsRawData = [
'testdomain.com' => [
'domain' => 'testdomain.com',
'domain_status' => 'partially_verified',
'dns' => [],
],
];
$response = [
'status' => API::RESPONSE_STATUS_OK,
'dns' => [],
];
$getSenderDomainsExpectation = Expected::once($domains);
$getSenderDomainsRawDataExpectation = Expected::once($domainsRawData);
$verifySenderDomainsExpectation = Expected::once($response);
$bridgeMock = $this->make(Bridge::class, [
'getAuthorizedSenderDomains' => $getSenderDomainsExpectation,
'getRawSenderDomainData' => $getSenderDomainsRawDataExpectation,
'verifyAuthorizedSenderDomain' => $verifySenderDomainsExpectation,
]);
$controller = $this->getController($bridgeMock);
@@ -209,7 +255,15 @@ class AuthorizedSenderDomainControllerTest extends \MailPoetTest {
$this->expectExceptionMessage($errorMessage);
$domains = ['testdomain.com' => []];
$domainsRawData = [
'testdomain.com' => [
'domain' => 'testdomain.com',
'domain_status' => 'unverified',
'dns' => [],
],
];
$getSenderDomainsExpectation = Expected::once($domains);
$getSenderDomainsRawDataExpectation = Expected::once($domainsRawData);
$verifySenderDomainsExpectation = Expected::once([
'error' => $errorMessage,
'message' => $errorMessage,
@@ -218,6 +272,7 @@ class AuthorizedSenderDomainControllerTest extends \MailPoetTest {
$bridgeMock = $this->make(Bridge::class, [
'getAuthorizedSenderDomains' => $getSenderDomainsExpectation,
'getRawSenderDomainData' => $getSenderDomainsRawDataExpectation,
'verifyAuthorizedSenderDomain' => $verifySenderDomainsExpectation,
]);
$controller = $this->getController($bridgeMock);