ReaderTest.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /**
  3. * \Magento\Theme\Model\Layout\Config\Reader
  4. *
  5. * Copyright © Magento, Inc. All rights reserved.
  6. * See COPYING.txt for license details.
  7. */
  8. namespace Magento\Theme\Model\Layout\Config;
  9. class ReaderTest extends \PHPUnit\Framework\TestCase
  10. {
  11. /**
  12. * @var \Magento\Theme\Model\Layout\Config\Reader
  13. */
  14. protected $_model;
  15. /** @var \Magento\Framework\Config\FileResolverInterface/PHPUnit\Framework\MockObject_MockObject */
  16. protected $_fileResolverMock;
  17. public function setUp()
  18. {
  19. $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  20. /** @var $cache \Magento\Framework\App\Cache */
  21. $cache = $objectManager->create(\Magento\Framework\App\Cache::class);
  22. $cache->clean();
  23. $this->_fileResolverMock = $this->getMockBuilder(
  24. \Magento\Framework\Config\FileResolverInterface::class
  25. )->disableOriginalConstructor()->getMock();
  26. $this->_model = $objectManager->create(
  27. \Magento\Theme\Model\Layout\Config\Reader::class,
  28. ['fileResolver' => $this->_fileResolverMock]
  29. );
  30. }
  31. public function testRead()
  32. {
  33. $fileList = [file_get_contents(__DIR__ . '/../_files/page_layouts.xml')];
  34. $this->_fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($fileList));
  35. $result = $this->_model->read('global');
  36. $expected = [
  37. 'empty' => [
  38. 'label' => 'Empty',
  39. 'code' => 'empty',
  40. ],
  41. '1column' => [
  42. 'label' => '1 column',
  43. 'code' => '1column',
  44. ],
  45. ];
  46. $this->assertEquals($expected, $result);
  47. }
  48. public function testMergeCompleteAndPartial()
  49. {
  50. $fileList = [
  51. file_get_contents(__DIR__ . '/../_files/page_layouts.xml'),
  52. file_get_contents(__DIR__ . '/../_files/page_layouts2.xml'),
  53. ];
  54. $this->_fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($fileList));
  55. $result = $this->_model->read('global');
  56. $expected = [
  57. 'empty' => [
  58. 'label' => 'Empty',
  59. 'code' => 'empty',
  60. ],
  61. '1column' => [
  62. 'label' => '1 column modified',
  63. 'code' => '1column',
  64. ],
  65. '2columns-left' => [
  66. 'label' => '2 columns with left bar',
  67. 'code' => '2columns-left',
  68. ],
  69. ];
  70. $this->assertEquals($expected, $result);
  71. }
  72. }