/** * @test * @return void * @covers \Magento\Theme\Model\Layout\Config::getPageLayouts * @covers \Magento\Theme\Model\Layout\Config::getPageLayout * @covers \Magento\Theme\Model\Layout\Config::getPageLayoutHandles * @covers \Magento\Theme\Model\Layout\Config::_initPageLayouts * @covers \Magento\Theme\Model\Layout\Config::__construct */ public function testGetPageLayout() { $data = ['code' => ['label' => 'Test Label', 'code' => 'testCode']]; $expectedResult = ['code' => new DataObject(['label' => __('Test Label'), 'code' => 'testCode'])]; $this->dataStorage->expects($this->once())->method('get')->with(null, null)->willReturn($data); $this->assertEquals($expectedResult, $this->_model->getPageLayouts()); $this->assertEquals($expectedResult['code'], $this->_model->getPageLayout('code')); $this->assertFalse($this->_model->getPageLayout('wrong_code')); $this->assertEquals([$expectedResult['code']['code'] => $expectedResult['code']['code']], $this->_model->getPageLayoutHandles()); }
/** * Retrieve current applied page layout * * @return \Magento\Framework\Object|boolean */ public function getCurrentPageLayout() { if ($this->_layout->getBlock('root') && $this->_layout->getBlock('root')->getLayoutCode()) { return $this->_config->getPageLayout($this->_layout->getBlock('root')->getLayoutCode()); } // All loaded handles $handles = $this->_layout->getUpdate()->getHandles(); // Handles used in page layouts $pageLayoutHandles = $this->_config->getPageLayoutHandles(); // Applied page layout handles $appliedHandles = array_intersect($handles, $pageLayoutHandles); if (empty($appliedHandles)) { return false; } $currentHandle = array_pop($appliedHandles); $layoutCode = array_search($currentHandle, $pageLayoutHandles, true); return $this->_config->getPageLayout($layoutCode); }
public function testGetPageLayoutHandles() { $expected = ['empty' => 'empty', '1column' => '1column']; $this->assertEquals($expected, $this->_model->getPageLayoutHandles()); }
public function testGetPageLayoutHandles() { $expected = array('empty' => 'page_empty', 'one_column' => 'page_one_column'); $this->assertEquals($expected, $this->_model->getPageLayoutHandles()); }