Use DI for ServicesChecker

[MAILPOET-1787]
This commit is contained in:
Ján Mikláš
2019-02-22 10:14:22 +01:00
committed by M. Shull
parent fc55e5f7ec
commit af39ae89c4
2 changed files with 11 additions and 8 deletions

View File

@@ -51,6 +51,8 @@ class Menu {
private $settings;
/** @var WPFunctions */
private $wp;
/** @var ServicesChecker */
private $servicesChecker;
private $subscribers_over_limit;
@@ -59,13 +61,15 @@ class Menu {
AccessControl $access_control,
SettingsController $settings,
WPFunctions $wp,
WooCommerceHelper $woocommerce_helper
WooCommerceHelper $woocommerce_helper,
ServicesChecker $servicesChecker
) {
$this->renderer = $renderer;
$this->access_control = $access_control;
$this->wp = $wp;
$this->settings = $settings;
$this->woocommerce_helper = $woocommerce_helper;
$this->servicesChecker = $servicesChecker;
}
function init() {
@@ -445,8 +449,7 @@ class Menu {
$flags = $this->_getFlags();
// force MSS key check even if the method isn't active
$checker = new ServicesChecker();
$mp_api_key_valid = $checker->isMailPoetAPIKeyValid(false, true);
$mp_api_key_valid = $this->servicesChecker->isMailPoetAPIKeyValid(false, true);
$data = array(
'settings' => $settings,
@@ -825,7 +828,7 @@ class Menu {
if (self::isOnMailPoetAdminPage()) {
$show_notices = isset($_REQUEST['page'])
&& stripos($_REQUEST['page'], self::MAIN_PAGE_SLUG) === false;
$checker = $checker ?: new ServicesChecker();
$checker = $checker ?: $this->servicesChecker;
$this->mp_api_key_valid = $checker->isMailPoetAPIKeyValid($show_notices);
}
}
@@ -833,13 +836,13 @@ class Menu {
function checkPremiumKey(ServicesChecker $checker = null) {
$show_notices = isset($_SERVER['SCRIPT_NAME'])
&& stripos($_SERVER['SCRIPT_NAME'], 'plugins.php') !== false;
$checker = $checker ?: new ServicesChecker();
$checker = $checker ?: $this->servicesChecker;
$this->premium_key_valid = $checker->isPremiumKeyValid($show_notices);
}
private function checkFromEmailAuthorization() {
if (self::isOnMailPoetAdminPage()) {
$checker = new ServicesChecker();
$checker = $this->servicesChecker;
$checker->isFromEmailAuthorized();
}
}

View File

@@ -43,7 +43,7 @@ class MenuTest extends \MailPoetTest {
function testItChecksMailpoetAPIKey() {
$renderer = Stub::make(new Renderer());
$menu = new Menu($renderer, new AccessControl(new Functions()), new SettingsController(), new Functions(), new WooCommerceHelper);
$menu = new Menu($renderer, new AccessControl(new Functions()), new SettingsController(), new Functions(), new WooCommerceHelper, new ServicesChecker);
$_REQUEST['page'] = 'mailpoet-newsletters';
$checker = Stub::make(
@@ -65,7 +65,7 @@ class MenuTest extends \MailPoetTest {
function testItChecksPremiumKey() {
$renderer = Stub::make(new Renderer());
$menu = new Menu($renderer, new AccessControl(new Functions()), new SettingsController(), new Functions(), new WooCommerceHelper);
$menu = new Menu($renderer, new AccessControl(new Functions()), new SettingsController(), new Functions(), new WooCommerceHelper, new ServicesChecker);
$_REQUEST['page'] = 'mailpoet-newsletters';
$checker = Stub::make(