ThemeTest.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Config\Test\Unit;
  7. class ThemeTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /** @var \Magento\Framework\Config\Dom\UrnResolver */
  10. protected $urnResolver;
  11. /** @var \Magento\Framework\Config\Dom\UrnResolver */
  12. protected $urnResolverMock;
  13. protected function setUp()
  14. {
  15. $this->urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
  16. $this->urnResolverMock = $this->createMock(\Magento\Framework\Config\Dom\UrnResolver::class);
  17. }
  18. public function testGetSchemaFile()
  19. {
  20. $config = new \Magento\Framework\Config\Theme($this->urnResolverMock, null);
  21. $this->urnResolverMock->expects($this->exactly(2))
  22. ->method('getRealPath')
  23. ->with('urn:magento:framework:Config/etc/theme.xsd')
  24. ->willReturn(
  25. $this->urnResolver->getRealPath('urn:magento:framework:Config/etc/theme.xsd')
  26. );
  27. $this->assertEquals(
  28. $this->urnResolver->getRealPath('urn:magento:framework:Config/etc/theme.xsd'),
  29. $config->getSchemaFile()
  30. );
  31. $this->assertFileExists($config->getSchemaFile());
  32. }
  33. /**
  34. * @param string $themePath
  35. * @param array $expected
  36. * @dataProvider dataGetterDataProvider
  37. */
  38. public function testDataGetter($themePath, $expected)
  39. {
  40. $expected = reset($expected);
  41. $config = new \Magento\Framework\Config\Theme(
  42. $this->urnResolverMock,
  43. file_get_contents(__DIR__ . '/_files/area/' . $themePath . '/theme.xml')
  44. );
  45. $this->assertSame($expected['media'], $config->getMedia());
  46. $this->assertSame($expected['title'], $config->getThemeTitle());
  47. $this->assertSame($expected['parent'], $config->getParentTheme());
  48. }
  49. /**
  50. * @return array
  51. */
  52. public function dataGetterDataProvider()
  53. {
  54. return [
  55. [
  56. 'default_default',
  57. [[
  58. 'media' => ['preview_image' => 'media/default_default.jpg'],
  59. 'title' => 'Default',
  60. 'parent' => null,
  61. ]], ],
  62. [
  63. 'default_test',
  64. [[
  65. 'media' => ['preview_image' => ''],
  66. 'title' => 'Test',
  67. 'parent' => ['default_default'],
  68. ]]],
  69. [
  70. 'default_test2',
  71. [[
  72. 'media' => ['preview_image' => ''],
  73. 'title' => 'Test2',
  74. 'parent' => ['default_test'],
  75. ]]],
  76. [
  77. 'test_default',
  78. [[
  79. 'media' => ['preview_image' => 'media/test_default.jpg'],
  80. 'title' => 'Default',
  81. 'parent' => null,
  82. ]]],
  83. [
  84. 'test_external_package_descendant',
  85. [[
  86. 'media' => ['preview_image' => ''],
  87. 'title' => 'Default',
  88. 'parent' => ['default_test2'],
  89. ]]],
  90. ];
  91. }
  92. }