Files
piratepoet/mailpoet/tests/integration/Services/AuthorizedSenderDomainControllerTest.php
Oluwaseun Olorunsola c961e0a363 Add AuthorizedSenderDomainController class and tests
MAILPOET-4302
2022-08-11 12:36:23 +02:00

73 lines
2.1 KiB
PHP

<?php
namespace MailPoet\Test\Services;
use MailPoet\Services\AuthorizedSenderDomainController;
use MailPoet\Util\DmarcPolicyChecker;
use MailPoet\Mailer\Mailer;
use MailPoet\Services\Bridge;
use MailPoet\Services\Bridge\API;
use MailPoet\Settings\SettingsController;
use MailPoet\WP\Functions as WPFunctions;
class AuthorizedSenderDomainControllerTest extends \MailPoetTest {
/** @var SettingsController */
private $settings;
/** @var Bridge */
private $bridge;
public function _before() {
parent::_before();
$apiKey = getenv('WP_TEST_MAILER_MAILPOET_API');
if (!$apiKey) {
$this->markTestSkipped("Skipping, 'WP_TEST_MAILER_MAILPOET_API' not set.");
}
$this->bridge = new Bridge();
$this->bridge->api = new API($apiKey, new WPFunctions());
$this->settings = SettingsController::getInstance();
$this->settings->set(
Mailer::MAILER_CONFIG_SETTING_NAME,
[
'method' => 'MailPoet',
'mailpoet_api_key' => $apiKey,
]
);
}
public function testItFetchSenderDomains() {
$domains = ['mailpoet.com', 'GOOD', 'testdomain.com'];
$controller = $this->getController();
$allDomains = $controller->getAllSenderDomains();
expect($allDomains)->same($domains);
}
public function testItReturnsVerifiedSenderDomains() {
$controller = $this->getController();
$verifiedDomains = $controller->getVerifiedSenderDomains();
expect($verifiedDomains)->same(['mailpoet.com']); // only this is Verified for now
}
public function testItReturnsTrueWhenDmarcIsEnabled() {
$controller = $this->getController();
$isRetricted = $controller->isDomainDmarcRetricted('mailpoet.com');
expect($isRetricted)->same(true);
}
public function testItReturnsFalseWhenDmarcIsNotEnabled() {
$controller = $this->getController();
$isRetricted = $controller->isDomainDmarcRetricted('example.com');
expect($isRetricted)->same(false);
}
private function getController(): AuthorizedSenderDomainController {
$dmarcPolicyChecker = $this->diContainer->get(DmarcPolicyChecker::class);
return new AuthorizedSenderDomainController($this->bridge, $dmarcPolicyChecker);
}
}