WidgetTest.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Widget\Model;
  7. class WidgetTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Widget\Model\Widget
  11. */
  12. protected $_model = null;
  13. protected function setUp()
  14. {
  15. $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  16. \Magento\Widget\Model\Widget::class
  17. );
  18. }
  19. public function testGetWidgetsArray()
  20. {
  21. $declaredWidgets = $this->_model->getWidgetsArray();
  22. $this->assertNotEmpty($declaredWidgets);
  23. $this->assertInternalType('array', $declaredWidgets);
  24. foreach ($declaredWidgets as $row) {
  25. $this->assertArrayHasKey('name', $row);
  26. $this->assertArrayHasKey('code', $row);
  27. $this->assertArrayHasKey('type', $row);
  28. $this->assertArrayHasKey('description', $row);
  29. }
  30. }
  31. /**
  32. * @param string $type
  33. * @param string $expectedFile
  34. * @return string
  35. *
  36. * @dataProvider getPlaceholderImageUrlDataProvider
  37. * @magentoAppIsolation enabled
  38. */
  39. public function testGetPlaceholderImageUrl($type, $expectedFile)
  40. {
  41. $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  42. \Magento\TestFramework\Helper\Bootstrap::getInstance()
  43. ->loadArea(\Magento\Backend\App\Area\FrontNameResolver::AREA_CODE);
  44. $objectManager->get(\Magento\Framework\View\DesignInterface::class)->setDesignTheme('Magento/backend');
  45. $expectedFilePath = "/adminhtml/Magento/backend/en_US/{$expectedFile}";
  46. $url = $this->_model->getPlaceholderImageUrl($type);
  47. $this->assertStringEndsWith($expectedFilePath, $url);
  48. }
  49. /**
  50. * @return array
  51. */
  52. public function getPlaceholderImageUrlDataProvider()
  53. {
  54. return [
  55. 'custom image' => [\Magento\Catalog\Block\Product\Widget\NewWidget::class,
  56. 'Magento_Catalog/images/product_widget_new.png',
  57. ],
  58. 'default image' => ['non_existing_widget_type', 'Magento_Widget/placeholder.png']
  59. ];
  60. }
  61. }