/** * @test * @return void * @covers \Magento\Theme\Model\Layout\Source\Layout::toOptionArray * @covers \Magento\Theme\Model\Layout\Source\Layout::getOptions * @covers \Magento\Theme\Model\Layout\Source\Layout::getDefaultValue * @covers \Magento\Theme\Model\Layout\Source\Layout::__construct */ public function testToOptionArray() { $data = ['code' => 'testCode', 'label' => 'testLabel', 'is_default' => true]; $expectedResult = [['value' => '', 'label' => __('-- Please Select --')], ['value' => 'testCode', 'label' => 'testLabel']]; $this->config->expects($this->once())->method('getPageLayouts')->willReturn([new Object($data)]); $this->assertEquals($expectedResult, $this->_model->toOptionArray(true)); $this->assertEquals('testCode', $this->_model->getDefaultValue()); }
/** * @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 page layout options * * @return array */ public function getOptions() { if ($this->_options === null) { $this->_options = array(); foreach ($this->_config->getPageLayouts() as $layout) { $this->_options[$layout->getCode()] = $layout->getLabel(); if ($layout->getIsDefault()) { $this->_defaultValue = $layout->getCode(); } } } return $this->_options; }
/** * 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()); }