public function testGetBlock() { $this->assertFalse($this->_layout->getBlock('test')); $block = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\View\\Layout')->createBlock('Magento\\Framework\\View\\Element\\Text'); $this->_layout->setBlock('test', $block); $this->assertSame($block, $this->_layout->getBlock('test')); }
public function testRenameElement() { $oldName = 'old_name'; $newName = 'new_name'; $blockMock = $this->getMockBuilder('Magento\\Framework\\View\\Element\\AbstractBlock')->disableOriginalConstructor()->getMockForAbstractClass(); $this->structureMock->expects($this->once())->method('renameElement')->with($this->equalTo($oldName), $this->equalTo($newName))->will($this->returnSelf()); $this->assertSame($this->model, $this->model->setBlock($oldName, $blockMock)); $this->assertSame($this->model, $this->model->renameElement($oldName, $newName)); $this->assertSame([$newName => $blockMock], $this->model->getAllBlocks()); }
/** * @param mixed $displayValue * @dataProvider renderElementDisplayDataProvider */ public function testRenderElementDisplay($displayValue) { $name = 'test_container'; $child = 'child_block'; $children = [$child => true]; $blockHtml = '<html/>'; $this->structureMock->expects($this->atLeastOnce())->method('getAttribute')->willReturnMap([[$name, 'display', $displayValue], [$child, 'display', $displayValue], [$child, 'type', \Magento\Framework\View\Layout\Element::TYPE_BLOCK]]); $this->structureMock->expects($this->atLeastOnce())->method('hasElement')->willReturnMap([[$child, true]]); $this->structureMock->expects($this->once())->method('getChildren')->with($name)->willReturn($children); $block = $this->getMock('Magento\\Framework\\View\\Element\\AbstractBlock', [], [], '', false); $block->expects($this->once())->method('toHtml')->willReturn($blockHtml); $renderingOutput = new \Magento\Framework\DataObject(); $renderingOutput->setData('output', $blockHtml); $this->eventManagerMock->expects($this->at(0))->method('dispatch')->with('core_layout_render_element', ['element_name' => $child, 'layout' => $this->model, 'transport' => $renderingOutput]); $this->eventManagerMock->expects($this->at(1))->method('dispatch')->with('core_layout_render_element', ['element_name' => $name, 'layout' => $this->model, 'transport' => $renderingOutput]); $this->model->setBlock($child, $block); $this->assertEquals($blockHtml, $this->model->renderElement($name, false)); }
/** * {@inheritdoc} */ public function setBlock($name, $block) { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'setBlock'); if (!$pluginInfo) { return parent::setBlock($name, $block); } else { return $this->___callPlugins('setBlock', func_get_args(), $pluginInfo); } }