![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/magento/module-variable/Test/Unit/Model/Variable/ |
<?php /*** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Variable\Test\Unit\Model\Variable; use Magento\Backend\Model\UrlInterface; use Magento\Framework\DataObject; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; use Magento\Framework\View\Asset\Repository; use Magento\Variable\Model\ResourceModel\Variable\Collection; use Magento\Variable\Model\ResourceModel\Variable\CollectionFactory; use Magento\Variable\Model\Source\Variables; use Magento\Variable\Model\Variable\Config; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; class ConfigTest extends TestCase { /** * @var Config */ private $model; /** * @var Repository|MockObject */ private $assetRepoMock; /** * @var UrlInterface|MockObject */ private $urlMock; /** * @var string */ private $actionUrl = 'action-url'; /** * @var string */ private $jsPluginSourceUrl = 'js-plugin-source'; /** * @var Variables|MockObject */ private $storeVariablesMock; /** * @var CollectionFactory|MockObject */ private $customVarsCollectionFactoryMock; /** * @var Collection|MockObject */ private $customVarsCollectionMock; /** * Set up before tests */ protected function setUp(): void { $this->assetRepoMock = $this->getMockBuilder(Repository::class) ->disableOriginalConstructor() ->getMock(); $this->urlMock = $this->getMockBuilder(UrlInterface::class) ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->assetRepoMock->expects($this->any()) ->method('getUrl') ->willReturn($this->jsPluginSourceUrl); $this->urlMock->expects($this->any()) ->method('getUrl') ->willReturn($this->actionUrl); $this->storeVariablesMock = $this->getMockBuilder(Variables::class) ->disableOriginalConstructor() ->setMethods(['getData']) ->getMock(); $this->customVarsCollectionFactoryMock = $this->getMockBuilder(CollectionFactory::class) ->disableOriginalConstructor() ->setMethods(['create']) ->getMock(); $this->customVarsCollectionMock = $this->getMockBuilder(Collection::class) ->disableOriginalConstructor() ->setMethods(['getData']) ->getMock(); $this->customVarsCollectionFactoryMock->expects($this->any()) ->method('create') ->willReturn($this->customVarsCollectionMock); // Set up SUT $args = [ 'assetRepo' => $this->assetRepoMock, 'url' => $this->urlMock, 'collectionFactory' => $this->customVarsCollectionFactoryMock, 'storesVariables' => $this->storeVariablesMock, ]; $this->model = (new ObjectManager($this))->getObject(Config::class, $args); } /** * Test method getWysiwygPluginSettings */ public function testGetWysiwygPluginSettings() { $this->storeVariablesMock->expects($this->any()) ->method('getData') ->willReturn([]); $this->customVarsCollectionMock->expects($this->any()) ->method('getData') ->willReturn([]); $customKey = 'key'; $customVal = 'val'; $configObject = new DataObject(); $configObject->setPlugins([[$customKey => $customVal]]); $variablePluginConfig = $this->model->getWysiwygPluginSettings($configObject)['plugins']; $customPluginConfig = $variablePluginConfig[0]; $addedPluginConfig = $variablePluginConfig[1]; // Verify custom plugin config is present $this->assertSame($customVal, $customPluginConfig[$customKey]); // Verify added plugin config is present $this->assertStringContainsString($this->actionUrl, $addedPluginConfig['options']['onclick']['subject']); $this->assertStringContainsString($this->actionUrl, $addedPluginConfig['options']['url']); $this->assertStringContainsString($this->jsPluginSourceUrl, $addedPluginConfig['src']); } }