/**
  * @param PageModel $currentPage
  *
  * @return NavigationItem[]
  *
  * @throws \RuntimeException
  */
 public function findNavigationItems(PageModel $currentPage)
 {
     $rootPages = $this->pageFinder->findRootPagesForPage($currentPage, false, false);
     $navigationItems = $this->createNavigationItemsForRootPages($rootPages);
     $this->setTargetPageForNavigationItems($navigationItems, $rootPages, $this->pageFinder->findAssociatedForPage($currentPage));
     foreach ($navigationItems as $k => $item) {
         if (!$item->hasTargetPage()) {
             $item->setTargetPage($this->pageFinder->findAssociatedParentForLanguage($currentPage, $item->getLanguageTag()), false);
         }
     }
     $this->languageText->orderNavigationItems($navigationItems);
     return array_values($navigationItems);
 }
 public function testKeyEqualsPageId()
 {
     $master = $this->createRootPage('foo.com', 'en');
     $this->createRootPage('foo.com', 'de', false);
     $this->createRootPage('bar.com', 'fr', true, $master);
     $this->createRootPage('bar.com', 'it', false);
     $pageModel = new PageModel();
     $pageModel->id = $master;
     $pageModel->domain = 'foo.com';
     $roots = $this->pageFinder->findRootPagesForPage($pageModel);
     $this->assertPageCount($roots, 4);
     foreach ($roots as $id => $page) {
         $this->assertEquals($page->id, $id);
     }
 }