public function setUp() { parent::setUp(); // Menus are cached... so this static class // messes with our tests... so we do this little forget hack MenuCache::forgetMenu('Name'); $this->DvsMenu = new \DvsMenu(); $this->DvsMenuItem = new \DvsMenuItem(); $this->DvsLanguage = new \DvsLanguage(); $this->LanguageDetector = m::mock('Devise\\Languages\\LanguageDetector'); $this->LanguageDetector->shouldReceive('current')->andReturn($this->DvsLanguage); $this->LanguageDetector->shouldReceive('primaryLanguageId')->andReturn(45); $this->UserHelper = m::mock('Devise\\Users\\UserHelper'); $this->Input = m::mock('Illuminate\\Http\\Request'); $Framework = m::mock('\\Devise\\Support\\Framework'); $Framework->Input = $this->Input; $this->MenusRepository = new MenusRepository($this->DvsMenu, $this->DvsMenuItem, $this->LanguageDetector, $this->UserHelper, $Framework); }
/** * Traverses the menu recursively finding sub menus * * @param $depth * @param $page * @param $menu * @return mixed */ private function traverseMenu($menu, $depth, $page) { $cache = MenuCache::loadMenu($menu->name); if (!$cache) { $lazyLoadString = $this->getLazyLoadByDepth('items', $depth); $menu->load($lazyLoadString); $menu->allowedMenuItems = $this->getAllowedMenuItemsFromMenu($menu); if ($page !== null) { $this->activeItemSiblings = array(); $this->activeItemChildren = array(); $this->locateCurrentMenuItem($page->id, $menu->allowedMenuItems); } MenuCache::saveMenu($menu, $this->activeItemChildren, $this->activeItemSiblings); } else { $menu = $cache['menu']; } return $menu->allowedMenuItems; }