DesignTest.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. /**
  7. * Test class for \Magento\Catalog\Model\Design.
  8. */
  9. namespace Magento\Catalog\Model;
  10. class DesignTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\Catalog\Model\Design
  14. */
  15. protected $_model;
  16. protected function setUp()
  17. {
  18. $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  19. \Magento\Catalog\Model\Design::class
  20. );
  21. }
  22. /**
  23. * @dataProvider getThemeModel
  24. */
  25. public function testApplyCustomDesign($theme)
  26. {
  27. $this->_model->applyCustomDesign($theme);
  28. $design = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
  29. \Magento\Framework\View\DesignInterface::class
  30. );
  31. $translate = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
  32. \Magento\Framework\TranslateInterface::class
  33. );
  34. $this->assertEquals('package', $design->getDesignTheme()->getPackageCode());
  35. $this->assertEquals('theme', $design->getDesignTheme()->getThemeCode());
  36. $this->assertEquals('themepackage/theme', $translate->getTheme());
  37. }
  38. /**
  39. * @return \Magento\Theme\Model\Theme
  40. */
  41. public function getThemeModel()
  42. {
  43. $theme = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  44. \Magento\Framework\View\Design\ThemeInterface::class
  45. );
  46. $theme->setData($this->_getThemeData());
  47. return [[$theme]];
  48. }
  49. /**
  50. * @return array
  51. */
  52. protected function _getThemeData()
  53. {
  54. return [
  55. 'theme_title' => 'Magento Theme',
  56. 'theme_code' => 'theme',
  57. 'package_code' => 'package',
  58. 'theme_path' => 'package/theme',
  59. 'parent_theme' => null,
  60. 'is_featured' => true,
  61. 'preview_image' => '',
  62. 'theme_directory' => __DIR__ . '_files/design/frontend/default/default'
  63. ];
  64. }
  65. }