ExtendedTest.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Backend\Block\Widget\Grid;
  7. /**
  8. * @magentoAppArea adminhtml
  9. */
  10. class ExtendedTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\Backend\Block\Widget\Grid\Extended
  14. */
  15. protected $_block;
  16. /**
  17. * @var \Magento\Framework\View\LayoutInterface
  18. */
  19. protected $_layoutMock;
  20. protected function setUp()
  21. {
  22. parent::setUp();
  23. $this->_layoutMock = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
  24. \Magento\Framework\View\LayoutInterface::class
  25. );
  26. $context = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  27. \Magento\Backend\Block\Template\Context::class,
  28. ['layout' => $this->_layoutMock]
  29. );
  30. $this->_block = $this->_layoutMock->createBlock(
  31. \Magento\Backend\Block\Widget\Grid\Extended::class,
  32. 'grid',
  33. ['context' => $context]
  34. );
  35. $this->_block->addColumn('column1', ['id' => 'columnId1']);
  36. $this->_block->addColumn('column2', ['id' => 'columnId2']);
  37. }
  38. /**
  39. * @magentoAppIsolation enabled
  40. */
  41. public function testAddColumnAddsChildToColumnSet()
  42. {
  43. $this->assertInstanceOf(
  44. \Magento\Backend\Block\Widget\Grid\Column::class,
  45. $this->_block->getColumnSet()->getChildBlock('column1')
  46. );
  47. $this->assertCount(2, $this->_block->getColumnSet()->getChildNames());
  48. }
  49. /**
  50. * @magentoAppIsolation enabled
  51. */
  52. public function testRemoveColumn()
  53. {
  54. $this->assertCount(2, $this->_block->getColumnSet()->getChildNames());
  55. $this->_block->removeColumn('column1');
  56. $this->assertCount(1, $this->_block->getColumnSet()->getChildNames());
  57. }
  58. /**
  59. * @magentoAppIsolation enabled
  60. */
  61. public function testSortColumnsByOrder()
  62. {
  63. $columnNames = $this->_block->getLayout()->getChildNames($this->_block->getColumnSet()->getNameInLayout());
  64. $this->assertEquals($this->_block->getColumn('column1')->getNameInLayout(), $columnNames[0]);
  65. $this->_block->addColumnsOrder('column1', 'column2');
  66. $this->_block->sortColumnsByOrder();
  67. $columnNames = $this->_block->getLayout()->getChildNames($this->_block->getColumnSet()->getNameInLayout());
  68. $this->assertEquals($this->_block->getColumn('column2')->getNameInLayout(), $columnNames[0]);
  69. }
  70. /**
  71. * @magentoAppIsolation enabled
  72. */
  73. public function testGetMainButtonsHtmlReturnsEmptyStringIfFiltersArentVisible()
  74. {
  75. $this->_block->setFilterVisibility(false);
  76. $this->assertEquals('', $this->_block->getMainButtonsHtml());
  77. }
  78. }