TemplateTest.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\View\Element;
  7. use Magento\Framework\App\Area;
  8. class TemplateTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /**
  11. * @var \Magento\Framework\View\Element\Template
  12. */
  13. protected $_block;
  14. /**
  15. * @var \Magento\TestFramework\ObjectManager
  16. */
  17. protected $objectManager;
  18. /**
  19. * @var string
  20. */
  21. private $origMode;
  22. protected function setUp()
  23. {
  24. $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  25. $params = ['layout' => $this->objectManager->create(\Magento\Framework\View\Layout::class, [])];
  26. $context = $this->objectManager->create(\Magento\Framework\View\Element\Template\Context::class, $params);
  27. $this->_block = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
  28. \Magento\Framework\View\LayoutInterface::class
  29. )->createBlock(
  30. \Magento\Framework\View\Element\Template::class,
  31. '',
  32. ['context' => $context]
  33. );
  34. /** @var \Magento\TestFramework\App\State $appState */
  35. $appState = $this->objectManager->get(\Magento\TestFramework\App\State::class);
  36. $this->origMode = $appState->getMode();
  37. }
  38. /**
  39. * {@inheritDoc}
  40. */
  41. protected function tearDown()
  42. {
  43. /** @var \Magento\TestFramework\App\State $appState */
  44. $appState = $this->objectManager->get(\Magento\TestFramework\App\State::class);
  45. $appState->setMode($this->origMode);
  46. parent::tearDown();
  47. }
  48. public function testConstruct()
  49. {
  50. $block = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
  51. \Magento\Framework\View\LayoutInterface::class
  52. )->createBlock(
  53. \Magento\Framework\View\Element\Template::class,
  54. '',
  55. ['data' => ['template' => 'value']]
  56. );
  57. $this->assertEquals('value', $block->getTemplate());
  58. }
  59. public function testSetGetTemplate()
  60. {
  61. $this->assertEmpty($this->_block->getTemplate());
  62. $this->_block->setTemplate('value');
  63. $this->assertEquals('value', $this->_block->getTemplate());
  64. }
  65. public function testGetArea()
  66. {
  67. \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(\Magento\Framework\App\State::class)
  68. ->setAreaCode('frontend');
  69. $this->assertEquals('frontend', $this->_block->getArea());
  70. \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
  71. \Magento\Framework\App\State::class
  72. )->setAreaCode(Area::AREA_ADMINHTML);
  73. $this->assertEquals(Area::AREA_ADMINHTML, $this->_block->getArea());
  74. \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
  75. \Magento\Framework\App\State::class
  76. )->setAreaCode(Area::AREA_GLOBAL);
  77. $this->assertEquals(Area::AREA_GLOBAL, $this->_block->getArea());
  78. }
  79. /**
  80. * @covers \Magento\Framework\View\Element\AbstractBlock::toHtml
  81. * @see testAssign()
  82. */
  83. public function testToHtml()
  84. {
  85. \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(\Magento\Framework\App\State::class)
  86. ->setAreaCode(Area::AREA_GLOBAL);
  87. /** @var \Magento\TestFramework\App\State $appState */
  88. $appState = $this->objectManager->get(\Magento\TestFramework\App\State::class);
  89. $appState->setMode(\Magento\TestFramework\App\State::MODE_DEFAULT);
  90. $this->assertEmpty($this->_block->toHtml());
  91. $this->_block->setTemplate(uniqid('invalid_filename.phtml'));
  92. $this->assertEmpty($this->_block->toHtml());
  93. }
  94. public function testGetBaseUrl()
  95. {
  96. $this->assertEquals('http://localhost/index.php/', $this->_block->getBaseUrl());
  97. }
  98. public function testGetObjectData()
  99. {
  100. $object = new \Magento\Framework\DataObject(['key' => 'value']);
  101. $this->assertEquals('value', $this->_block->getObjectData($object, 'key'));
  102. }
  103. public function testGetCacheKeyInfo()
  104. {
  105. $this->assertArrayHasKey('template', $this->_block->getCacheKeyInfo());
  106. }
  107. }