false(); $result = Menu::isOnMailPoetAdminPage(null, 'mailpoet-newsletters'); expect($result)->true(); } function testItRespectsExclusionsWhenCheckingMPPages() { $exclude = ['mailpoet-welcome']; $result = Menu::isOnMailPoetAdminPage($exclude, 'mailpoet-welcome'); expect($result)->false(); $result = Menu::isOnMailPoetAdminPage($exclude, 'mailpoet-newsletters'); expect($result)->true(); } function testItWorksWithRequestDataWhenCheckingMPPages() { $_REQUEST['page'] = 'mailpoet-newsletters'; $result = Menu::isOnMailPoetAdminPage(); expect($result)->true(); $_REQUEST['page'] = 'blah'; $result = Menu::isOnMailPoetAdminPage(); expect($result)->false(); unset($_REQUEST['page']); $result = Menu::isOnMailPoetAdminPage(); expect($result)->false(); } function testItChecksMailpoetAPIKey() { $renderer = Stub::make(PageRenderer::class); $menu = $this->getMenu($renderer); $_REQUEST['page'] = 'mailpoet-newsletters'; $checker = Stub::make( new ServicesChecker(), ['isMailPoetAPIKeyValid' => true], $this ); $menu->checkMailPoetAPIKey($checker); expect($menu->mp_api_key_valid)->true(); $checker = Stub::make( new ServicesChecker(), ['isMailPoetAPIKeyValid' => false], $this ); $menu->checkMailPoetAPIKey($checker); expect($menu->mp_api_key_valid)->false(); } function testItChecksPremiumKey() { $renderer = Stub::make(PageRenderer::class); $menu = $this->getMenu($renderer); $_REQUEST['page'] = 'mailpoet-newsletters'; $checker = Stub::make( new ServicesChecker(), ['isPremiumKeyValid' => true], $this ); $menu->checkPremiumKey($checker); expect($menu->premium_key_valid)->true(); $checker = Stub::make( new ServicesChecker(), ['isPremiumKeyValid' => false], $this ); $menu->checkPremiumKey($checker); expect($menu->premium_key_valid)->false(); } private function getMenu(PageRenderer $renderer) { $wp = new WPFunctions; return new Menu( new AccessControl(), new SettingsController(), new FeaturesController(), $wp, new WooCommerceHelper($wp), new ServicesChecker, new UserFlagsController, $renderer, new PageLimit($wp) ); } }