Skip to content

Commit fcb1512

Browse files
committed
MAGETWO-60381: Disable fields functionality doesn't work for theme configuration
1 parent 8468dc3 commit fcb1512

File tree

2 files changed

+22
-49
lines changed

2 files changed

+22
-49
lines changed

app/code/Magento/Theme/Model/Design/Config/DataProvider.php

Lines changed: 10 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
*/
66
namespace Magento\Theme\Model\Design\Config;
77

8+
use Magento\Framework\App\Config\ScopeCodeResolver;
89
use Magento\Framework\App\ObjectManager;
9-
use Magento\Store\Model\StoreManagerInterface;
1010
use Magento\Theme\Model\ResourceModel\Design\Config\Collection;
1111
use Magento\Theme\Model\ResourceModel\Design\Config\CollectionFactory;
1212
use Magento\Ui\DataProvider\AbstractDataProvider;
@@ -46,9 +46,9 @@ class DataProvider extends AbstractDataProvider
4646
private $request;
4747

4848
/**
49-
* @var StoreManagerInterface
49+
* @var ScopeCodeResolver
5050
*/
51-
private $storeManager;
51+
private $scopeCodeResolver;
5252

5353
/**
5454
* @param string $name
@@ -114,7 +114,7 @@ public function getMeta()
114114
}
115115

116116
$scope = $request['scope'];
117-
$scopeCode = $this->getStringScopeCode(
117+
$scopeCode = $this->getScopeCodeResolver()->resolve(
118118
$scope,
119119
isset($request['scope_id']) ? $request['scope_id'] : null
120120
);
@@ -143,23 +143,15 @@ public function getMeta()
143143
}
144144

145145
/**
146-
* Retrieve Scope string code
147-
*
148-
* @param string $scope
149-
* @param integer $scopeId
150-
* @return string
146+
* @deprecated
147+
* @return ScopeCodeResolver
151148
*/
152-
private function getStringScopeCode($scope, $scopeId = null)
149+
private function getScopeCodeResolver()
153150
{
154-
$scopeCode = '';
155-
156-
if ($scope == 'stores') {
157-
$scopeCode = $this->getStoreManager()->getStore($scopeId)->getCode();
158-
} elseif ($scope == 'websites') {
159-
$scopeCode = $this->getStoreManager()->getWebsite($scopeId)->getCode();
151+
if ($this->scopeCodeResolver === null) {
152+
$this->scopeCodeResolver = ObjectManager::getInstance()->get(ScopeCodeResolver::class);
160153
}
161-
162-
return $scopeCode;
154+
return $this->scopeCodeResolver;
163155
}
164156

165157
/**
@@ -185,16 +177,4 @@ private function getRequest()
185177
}
186178
return $this->request;
187179
}
188-
189-
/**
190-
* @deprecated
191-
* @return StoreManagerInterface
192-
*/
193-
private function getStoreManager()
194-
{
195-
if ($this->storeManager === null) {
196-
$this->storeManager = ObjectManager::getInstance()->get(StoreManagerInterface::class);
197-
}
198-
return $this->storeManager;
199-
}
200180
}

app/code/Magento/Theme/Test/Unit/Model/Design/Config/DataProviderTest.php

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,9 @@
66
namespace Magento\Theme\Test\Unit\Model\Design\Config;
77

88
use Magento\Config\Model\Config\Reader\Source\Deployed\SettingChecker;
9+
use Magento\Framework\App\Config\ScopeCodeResolver;
910
use Magento\Framework\App\RequestInterface;
1011
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
11-
use Magento\Store\Api\Data\StoreInterface;
12-
use Magento\Store\Model\StoreManagerInterface;
1312
use Magento\Theme\Model\Design\Config\DataLoader;
1413
use Magento\Theme\Model\Design\Config\DataProvider;
1514
use Magento\Theme\Model\Design\Config\MetadataLoader;
@@ -48,9 +47,9 @@ class DataProviderTest extends \PHPUnit_Framework_TestCase
4847
private $requestMock;
4948

5049
/**
51-
* @var StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject
50+
* @var ScopeCodeResolver|\PHPUnit_Framework_MockObject_MockObject
5251
*/
53-
private $storeManagerMock;
52+
private $scopeCodeResolverMock;
5453

5554
/**
5655
* @var SettingChecker|\PHPUnit_Framework_MockObject_MockObject
@@ -86,7 +85,7 @@ protected function setUp()
8685
$this->requestMock = $this->getMockBuilder(RequestInterface::class)
8786
->disableOriginalConstructor()
8887
->getMock();
89-
$this->storeManagerMock = $this->getMockBuilder(StoreManagerInterface::class)
88+
$this->scopeCodeResolverMock = $this->getMockBuilder(ScopeCodeResolver::class)
9089
->disableOriginalConstructor()
9190
->getMock();
9291
$this->settingCheckerMock = $this->getMockBuilder(SettingChecker::class)
@@ -108,8 +107,8 @@ protected function setUp()
108107
);
109108
$this->objectManager->setBackwardCompatibleProperty(
110109
$this->model,
111-
'storeManager',
112-
$this->storeManagerMock
110+
'scopeCodeResolver',
111+
$this->scopeCodeResolverMock
113112
);
114113
$this->objectManager->setBackwardCompatibleProperty(
115114
$this->model,
@@ -139,24 +138,18 @@ public function testGetData()
139138
*/
140139
public function testGetMeta(array $inputMeta, array $expectedMeta, array $request)
141140
{
142-
$store = $this->getMockBuilder(StoreInterface::class)
143-
->disableOriginalConstructor()
144-
->getMock();
145-
$store->expects($this->any())
146-
->method('getCode')
147-
->willReturn('store1');
148141
$this->requestMock->expects($this->any())
149142
->method('getParams')
150143
->willReturn($request);
151-
$this->storeManagerMock->expects($this->any())
152-
->method('getStore')
153-
->with(1)
154-
->willReturn($store);
144+
$this->scopeCodeResolverMock->expects($this->any())
145+
->method('resolve')
146+
->with('stores', 1)
147+
->willReturn('default');
155148
$this->settingCheckerMock->expects($this->any())
156149
->method('isReadOnly')
157150
->withConsecutive(
158-
['design/head/welcome', 'stores', 'store1'],
159-
['design/head/logo', 'stores', 'store1']
151+
['design/head/welcome', 'stores', 'default'],
152+
['design/head/logo', 'stores', 'default']
160153
)
161154
->willReturnOnConsecutiveCalls(
162155
true,

0 commit comments

Comments
 (0)