_layoutMock = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Framework\View\LayoutInterface::class ); $context = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( \Magento\Backend\Block\Template\Context::class, ['layout' => $this->_layoutMock] ); $this->_block = $this->_layoutMock->createBlock( \Magento\Backend\Block\Widget\Grid\Extended::class, 'grid', ['context' => $context] ); $this->_block->addColumn('column1', ['id' => 'columnId1']); $this->_block->addColumn('column2', ['id' => 'columnId2']); } /** * @magentoAppIsolation enabled */ public function testAddColumnAddsChildToColumnSet() { $this->assertInstanceOf( \Magento\Backend\Block\Widget\Grid\Column::class, $this->_block->getColumnSet()->getChildBlock('column1') ); $this->assertCount(2, $this->_block->getColumnSet()->getChildNames()); } /** * @magentoAppIsolation enabled */ public function testRemoveColumn() { $this->assertCount(2, $this->_block->getColumnSet()->getChildNames()); $this->_block->removeColumn('column1'); $this->assertCount(1, $this->_block->getColumnSet()->getChildNames()); } /** * @magentoAppIsolation enabled */ public function testSortColumnsByOrder() { $columnNames = $this->_block->getLayout()->getChildNames($this->_block->getColumnSet()->getNameInLayout()); $this->assertEquals($this->_block->getColumn('column1')->getNameInLayout(), $columnNames[0]); $this->_block->addColumnsOrder('column1', 'column2'); $this->_block->sortColumnsByOrder(); $columnNames = $this->_block->getLayout()->getChildNames($this->_block->getColumnSet()->getNameInLayout()); $this->assertEquals($this->_block->getColumn('column2')->getNameInLayout(), $columnNames[0]); } /** * @magentoAppIsolation enabled */ public function testGetMainButtonsHtmlReturnsEmptyStringIfFiltersArentVisible() { $this->_block->setFilterVisibility(false); $this->assertEquals('', $this->_block->getMainButtonsHtml()); } }