ElementTest.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. /**
  7. * Test class for \Magento\Framework\View\Layout\Element
  8. */
  9. namespace Magento\Framework\View\Test\Unit\Layout;
  10. class ElementTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @dataProvider elementNameDataProvider
  14. */
  15. public function testGetElementName($xml, $name)
  16. {
  17. $model = new \Magento\Framework\View\Layout\Element($xml);
  18. $this->assertEquals($name, $model->getElementName());
  19. }
  20. /**
  21. * @return array
  22. */
  23. public function elementNameDataProvider()
  24. {
  25. return [
  26. ['<block name="name" />', 'name'],
  27. ['<container name="name" />', 'name'],
  28. ['<referenceBlock name="name" />', 'name'],
  29. ['<invalid name="name" />', false],
  30. ['<block />', '']
  31. ];
  32. }
  33. /**
  34. * @return array
  35. */
  36. public function cacheableDataProvider()
  37. {
  38. return [
  39. ['<containter name="name" />', true],
  40. ['<block name="name" cacheable="false" />', false],
  41. ['<block name ="bl1"><block name="bl2" /></block>', true],
  42. ['<block name ="bl1"><block name="bl2" cacheable="false"/></block>', false],
  43. ['<block name="name" />', true],
  44. ['<renderer cacheable="false" />', true],
  45. ['<renderer name="name" />', true],
  46. ['<widget cacheable="false" />', true],
  47. ['<widget name="name" />', true]
  48. ];
  49. }
  50. /**
  51. * @dataProvider cacheableDataProvider
  52. */
  53. public function testIsCacheable($xml, $expected)
  54. {
  55. $model = new \Magento\Framework\View\Layout\Element($xml);
  56. $this->assertEquals($expected, $model->isCacheable());
  57. }
  58. }