123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Theme\Test\Unit\Model\Design\Config;
- use Magento\Config\Model\Config\Reader\Source\Deployed\SettingChecker;
- use Magento\Framework\App\Config\ScopeCodeResolver;
- use Magento\Framework\App\RequestInterface;
- use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
- use Magento\Theme\Model\Design\Config\DataLoader;
- use Magento\Theme\Model\Design\Config\DataProvider;
- use Magento\Theme\Model\Design\Config\MetadataLoader;
- use Magento\Theme\Model\ResourceModel\Design\Config\Collection;
- /**
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- */
- class DataProviderTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var DataProvider
- */
- protected $model;
- /**
- * @var DataProvider\DataLoader|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $dataLoader;
- /**
- * @var DataProvider\MetadataLoader|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $metadataLoader;
- /**
- * @var Collection|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $collection;
- /**
- * @var ObjectManager
- */
- private $objectManager;
- /**
- * @var RequestInterface|\PHPUnit_Framework_MockObject_MockObject
- */
- private $requestMock;
- /**
- * @var ScopeCodeResolver|\PHPUnit_Framework_MockObject_MockObject
- */
- private $scopeCodeResolverMock;
- /**
- * @var SettingChecker|\PHPUnit_Framework_MockObject_MockObject
- */
- private $settingCheckerMock;
- protected function setUp()
- {
- $this->objectManager = new ObjectManager($this);
- $this->dataLoader = $this->getMockBuilder(\Magento\Theme\Model\Design\Config\DataProvider\DataLoader::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->metadataLoader = $this->getMockBuilder(
- \Magento\Theme\Model\Design\Config\DataProvider\MetadataLoader::class
- )->disableOriginalConstructor()->getMock();
- $this->metadataLoader->expects($this->once())
- ->method('getData')
- ->willReturn([]);
- $this->collection = $this->getMockBuilder(\Magento\Theme\Model\ResourceModel\Design\Config\Collection::class)
- ->disableOriginalConstructor()
- ->getMock();
- $collectionFactory = $this->getMockBuilder(
- \Magento\Theme\Model\ResourceModel\Design\Config\CollectionFactory::class
- )->disableOriginalConstructor()->setMethods(['create'])->getMock();
- $collectionFactory->expects($this->once())
- ->method('create')
- ->willReturn($this->collection);
- $this->requestMock = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->scopeCodeResolverMock = $this->getMockBuilder(ScopeCodeResolver::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->settingCheckerMock = $this->getMockBuilder(SettingChecker::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->model = new DataProvider(
- 'scope',
- 'scope',
- 'scope',
- $this->dataLoader,
- $this->metadataLoader,
- $collectionFactory
- );
- $this->objectManager->setBackwardCompatibleProperty(
- $this->model,
- 'request',
- $this->requestMock
- );
- $this->objectManager->setBackwardCompatibleProperty(
- $this->model,
- 'scopeCodeResolver',
- $this->scopeCodeResolverMock
- );
- $this->objectManager->setBackwardCompatibleProperty(
- $this->model,
- 'settingChecker',
- $this->settingCheckerMock
- );
- }
- public function testGetData()
- {
- $data = [
- 'test_key' => 'test_value',
- ];
- $this->dataLoader->expects($this->once())
- ->method('getData')
- ->willReturn($data);
- $this->assertEquals($data, $this->model->getData());
- }
- /**
- * @param array $inputMeta
- * @param array $expectedMeta
- * @param array $request
- * @dataProvider getMetaDataProvider
- */
- public function testGetMeta(array $inputMeta, array $expectedMeta, array $request)
- {
- $this->requestMock->expects($this->any())
- ->method('getParams')
- ->willReturn($request);
- $this->scopeCodeResolverMock->expects($this->any())
- ->method('resolve')
- ->with('stores', 1)
- ->willReturn('default');
- $this->settingCheckerMock->expects($this->any())
- ->method('isReadOnly')
- ->withConsecutive(
- ['design/head/welcome', 'stores', 'default'],
- ['design/head/logo', 'stores', 'default'],
- ['design/head/head', 'stores', 'default']
- )
- ->willReturnOnConsecutiveCalls(
- true,
- false,
- true
- );
- $this->objectManager->setBackwardCompatibleProperty(
- $this->model,
- 'meta',
- $inputMeta
- );
- $this->assertSame($expectedMeta, $this->model->getMeta());
- }
- /**
- * @return array
- */
- public function getMetaDataProvider()
- {
- return [
- [
- [
- 'option1'
- ],
- [
- 'option1'
- ],
- [
- 'scope' => 'default'
- ]
- ],
- [
- [
- 'other_settings' => [
- 'children' => [
- 'head' => [
- 'children' => [
- 'head_welcome' => [
- ],
- 'head_logo' => [
- ],
- 'head_head' => [
- ]
- ]
- ]
- ]
- ]
- ],
- [
- 'other_settings' => [
- 'children' => [
- 'head' => [
- 'children' => [
- 'head_welcome' => [
- 'arguments' => [
- 'data' => [
- 'config' => [
- 'disabled' => true,
- 'is_disable_inheritance' => true,
- ]
- ]
- ]
- ],
- 'head_logo' => [
- ],
- 'head_head' => [
- 'arguments' => [
- 'data' => [
- 'config' => [
- 'disabled' => true,
- 'is_disable_inheritance' => true,
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ]
- ],
- [
- 'scope' => 'stores',
- 'scope_id' => 1
- ]
- ]
- ];
- }
- }
|