/** * Preparing layout * * @return \Magento\Catalog\Block\Breadcrumbs */ protected function _prepareLayout() { if ($breadcrumbsBlock = $this->getLayout()->getBlock('breadcrumbs')) { $breadcrumbsBlock->addCrumb('home', ['label' => __('Home'), 'title' => __('Go to Home Page'), 'link' => $this->_storeManager->getStore()->getBaseUrl()]); $title = []; $path = $this->_catalogData->getBreadcrumbPath(); foreach ($path as $name => $breadcrumb) { $breadcrumbsBlock->addCrumb($name, $breadcrumb); $title[] = $breadcrumb['label']; } $this->pageConfig->getTitle()->set(join($this->getTitleSeparator(), array_reverse($title))); } return parent::_prepareLayout(); }
/** * @magentoDataFixture Magento/Catalog/_files/categories.php */ public function testGetBreadcrumbPath() { $category = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Catalog\\Model\\Category'); $category->load(5); /** @var $objectManager \Magento\TestFramework\ObjectManager */ $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $objectManager->get('Magento\\Framework\\Registry')->register('current_category', $category); try { $path = $this->helper->getBreadcrumbPath(); $this->assertInternalType('array', $path); $this->assertEquals(['category3', 'category4', 'category5'], array_keys($path)); $this->assertArrayHasKey('label', $path['category3']); $this->assertArrayHasKey('link', $path['category3']); $objectManager->get('Magento\\Framework\\Registry')->unregister('current_category'); } catch (\Exception $e) { $objectManager->get('Magento\\Framework\\Registry')->unregister('current_category'); throw $e; } }