diff --git a/lib/Config/Menu.php b/lib/Config/Menu.php index 32ef8abd5e..94c0e0357f 100644 --- a/lib/Config/Menu.php +++ b/lib/Config/Menu.php @@ -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(); } } diff --git a/tests/integration/Config/MenuTest.php b/tests/integration/Config/MenuTest.php index 6d2fa1b1cd..e04148c851 100644 --- a/tests/integration/Config/MenuTest.php +++ b/tests/integration/Config/MenuTest.php @@ -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(