[ true ], 'hide menu' => [ false ], ]; } /** * @dataProvider IsAllowedProvider * test used to make sure backward compatibility is ensured */ public function testIsAllowed($bExpectedIsAllowed = true) { \MetaModel::GetConfig()->Set('navigation_menu.show_organization_filter', $bExpectedIsAllowed); $oNavigationMenu = new NavigationMenu( $this->createMock(ApplicationContext::class), $this->createMock(PopoverMenu::class) ); $isAllowed = $oNavigationMenu->IsSiloSelectionEnabled(); $this->assertEquals($bExpectedIsAllowed, $isAllowed); } public function testIsAllowed_BackwardCompatibility_NoVariableInConfFile() { \MetaModel::GetConfig()->Set('navigation_menu.show_organization_filter', false); $sTmpFilePath = tempnam(sys_get_temp_dir(), 'test_'); $oInitConfig = \MetaModel::GetConfig(); $oInitConfig->WriteToFile($sTmpFilePath); //remove variable for the test $aLines = file($sTmpFilePath); $aRows = []; foreach ($aLines as $key => $sLine) { if (!preg_match('/navigation_menu.show_organization_filter/', $sLine)) { $aRows[] = $sLine; } } file_put_contents($sTmpFilePath, implode("\n", $aRows)); $oTempConfig = new \Config($sTmpFilePath); $isAllowed = $oTempConfig->Get('navigation_menu.show_organization_filter'); $this->assertEquals(true, $isAllowed); unlink($sTmpFilePath); } /** * test GetHyperlink return empty for TemplateMenuNode and ShortcutContainerMenuNode only */ public function testGetHyperlink() { ApplicationMenu::LoadAdditionalMenus(); foreach (ApplicationMenu::$aMenusIndex as $sMenuId => $aMenu) { //echo ' **** '. get_class($aMenu['node']); if (in_array(get_class($aMenu['node']), ['TemplateMenuNode','ShortcutContainerMenuNode'])) { $this->assertEquals('', $aMenu['node']->GetHyperlink([]), 'Menu node '.$sMenuId.' is a TemplateMenuNode. It should have empty hyperlink'); } else { $this->assertNotEquals('', $aMenu['node']->GetHyperlink([]), 'Menu node '.$sMenuId.' is a '.get_class($aMenu['node']).'. It should have not empty hyperlink'); } } } }