Skip to content

Commit d0fecac

Browse files
author
Natalia Momotenko
committed
Merge remote-tracking branch 'origin/develop' into PR-2
2 parents c552b81 + 82cd733 commit d0fecac

File tree

28 files changed

+403
-209
lines changed

28 files changed

+403
-209
lines changed

app/code/Magento/Config/Model/Config/Structure/AbstractElement.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,19 @@ abstract class AbstractElement implements ElementInterface
3131
*/
3232
protected $_storeManager;
3333

34+
/**
35+
* @var \Magento\Framework\Module\Manager
36+
*/
37+
protected $moduleManager;
38+
3439
/**
3540
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
41+
* @param \Magento\Framework\Module\Manager $moduleManager
3642
*/
37-
public function __construct(StoreManagerInterface $storeManager)
43+
public function __construct(StoreManagerInterface $storeManager, \Magento\Framework\Module\Manager $moduleManager)
3844
{
3945
$this->_storeManager = $storeManager;
46+
$this->moduleManager = $moduleManager;
4047
}
4148

4249
/**
@@ -134,6 +141,10 @@ public function getAttribute($key)
134141
*/
135142
public function isVisible()
136143
{
144+
if (isset($this->_data['if_module_enabled']) &&
145+
!$this->moduleManager->isOutputEnabled($this->_data['if_module_enabled'])) {
146+
return false;
147+
}
137148
$showInScope = [
138149
\Magento\Store\Model\ScopeInterface::SCOPE_STORE => $this->_hasVisibilityValue('showInStore'),
139150
\Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE => $this->_hasVisibilityValue('showInWebsite'),

app/code/Magento/Config/Model/Config/Structure/Element/AbstractComposite.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@ abstract class AbstractComposite extends \Magento\Config\Model\Config\Structure\
1616

1717
/**
1818
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
19+
* @param \Magento\Framework\Module\Manager $moduleManager
1920
* @param Iterator $childrenIterator
2021
*/
2122
public function __construct(
2223
\Magento\Store\Model\StoreManagerInterface $storeManager,
24+
\Magento\Framework\Module\Manager $moduleManager,
2325
Iterator $childrenIterator
2426
) {
25-
parent::__construct($storeManager);
27+
parent::__construct($storeManager, $moduleManager);
2628
$this->_childrenIterator = $childrenIterator;
2729
}
2830

app/code/Magento/Config/Model/Config/Structure/Element/Field.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,23 @@ class Field extends \Magento\Config\Model\Config\Structure\AbstractElement
5050

5151
/**
5252
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
53+
* @param \Magento\Framework\Module\Manager $moduleManager
5354
* @param \Magento\Config\Model\Config\BackendFactory $backendFactory
5455
* @param \Magento\Config\Model\Config\SourceFactory $sourceFactory
5556
* @param \Magento\Config\Model\Config\CommentFactory $commentFactory
5657
* @param \Magento\Framework\View\Element\BlockFactory $blockFactory
57-
* @param \Magento\Config\Model\Config\Structure\Element\Dependency\Mapper $dependencyMapper
58+
* @param Dependency\Mapper $dependencyMapper
5859
*/
5960
public function __construct(
6061
\Magento\Store\Model\StoreManagerInterface $storeManager,
62+
\Magento\Framework\Module\Manager $moduleManager,
6163
\Magento\Config\Model\Config\BackendFactory $backendFactory,
6264
\Magento\Config\Model\Config\SourceFactory $sourceFactory,
6365
\Magento\Config\Model\Config\CommentFactory $commentFactory,
6466
\Magento\Framework\View\Element\BlockFactory $blockFactory,
6567
\Magento\Config\Model\Config\Structure\Element\Dependency\Mapper $dependencyMapper
6668
) {
67-
parent::__construct($storeManager);
69+
parent::__construct($storeManager, $moduleManager);
6870
$this->_backendFactory = $backendFactory;
6971
$this->_sourceFactory = $sourceFactory;
7072
$this->_commentFactory = $commentFactory;

app/code/Magento/Config/Model/Config/Structure/Element/Group.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,19 @@ class Group extends AbstractComposite
2525

2626
/**
2727
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
28-
* @param \Magento\Config\Model\Config\Structure\Element\Iterator\Field $childrenIterator
28+
* @param \Magento\Framework\Module\Manager $moduleManager
29+
* @param Iterator\Field $childrenIterator
2930
* @param \Magento\Config\Model\Config\BackendClone\Factory $cloneModelFactory
30-
* @param \Magento\Config\Model\Config\Structure\Element\Dependency\Mapper $dependencyMapper
31+
* @param Dependency\Mapper $dependencyMapper
3132
*/
3233
public function __construct(
3334
\Magento\Store\Model\StoreManagerInterface $storeManager,
35+
\Magento\Framework\Module\Manager $moduleManager,
3436
\Magento\Config\Model\Config\Structure\Element\Iterator\Field $childrenIterator,
3537
\Magento\Config\Model\Config\BackendClone\Factory $cloneModelFactory,
3638
\Magento\Config\Model\Config\Structure\Element\Dependency\Mapper $dependencyMapper
3739
) {
38-
parent::__construct($storeManager, $childrenIterator);
40+
parent::__construct($storeManager, $moduleManager, $childrenIterator);
3941
$this->_cloneModelFactory = $cloneModelFactory;
4042
$this->_dependencyMapper = $dependencyMapper;
4143
}

app/code/Magento/Config/Model/Config/Structure/Element/Section.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,17 @@ class Section extends AbstractComposite
1616

1717
/**
1818
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
19+
* @param \Magento\Framework\Module\Manager $moduleManager
1920
* @param Iterator $childrenIterator
2021
* @param \Magento\Framework\AuthorizationInterface $authorization
2122
*/
2223
public function __construct(
2324
\Magento\Store\Model\StoreManagerInterface $storeManager,
25+
\Magento\Framework\Module\Manager $moduleManager,
2426
Iterator $childrenIterator,
2527
\Magento\Framework\AuthorizationInterface $authorization
2628
) {
27-
parent::__construct($storeManager, $childrenIterator);
29+
parent::__construct($storeManager, $moduleManager, $childrenIterator);
2830
$this->_authorization = $authorization;
2931
}
3032

app/code/Magento/Config/Test/Unit/Model/Config/Structure/AbstractElementTest.php

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,33 @@ class AbstractElementTest extends \PHPUnit_Framework_TestCase
1717
/**
1818
* @var \PHPUnit_Framework_MockObject_MockObject
1919
*/
20-
protected $_storeManager;
20+
protected $storeManagerMock;
21+
22+
/**
23+
* @var \Magento\Config\Model\Config\Structure\AbstractElement | \PHPUnit_Framework_MockObject_MockObject
24+
*/
25+
protected $moduleManagerMock;
2126

2227
protected function setUp()
2328
{
24-
$this->_storeManager = $this->getMock('Magento\Store\Model\StoreManager', [], [], '', false);
29+
$this->storeManagerMock = $this->getMock('Magento\Store\Model\StoreManager', [], [], '', false);
30+
$this->moduleManagerMock = $this->getMock(
31+
'Magento\Framework\Module\Manager',
32+
['isOutputEnabled'],
33+
[],
34+
'',
35+
false
36+
);
2537

2638
$this->_model = $this->getMockForAbstractClass(
2739
'Magento\Config\Model\Config\Structure\AbstractElement',
28-
[$this->_storeManager]
40+
[
41+
'storeManager' => $this->storeManagerMock,
42+
'moduleManager' => $this->moduleManagerMock,
43+
]
2944
);
3045
}
3146

32-
protected function tearDown()
33-
{
34-
unset($this->_model);
35-
unset($this->_storeManager);
36-
}
37-
3847
public function testGetId()
3948
{
4049
$this->assertEquals('', $this->_model->getId());
@@ -76,7 +85,7 @@ public function testGetAttribute()
7685

7786
public function testIsVisibleReturnsTrueInSingleStoreModeForNonHiddenElements()
7887
{
79-
$this->_storeManager->expects($this->once())->method('isSingleStoreMode')->will($this->returnValue(true));
88+
$this->storeManagerMock->expects($this->once())->method('isSingleStoreMode')->will($this->returnValue(true));
8089
$this->_model->setData(
8190
['showInDefault' => 1, 'showInStore' => 0, 'showInWebsite' => 0],
8291
ScopeConfigInterface::SCOPE_TYPE_DEFAULT
@@ -86,7 +95,7 @@ public function testIsVisibleReturnsTrueInSingleStoreModeForNonHiddenElements()
8695

8796
public function testIsVisibleReturnsFalseInSingleStoreModeForHiddenElements()
8897
{
89-
$this->_storeManager->expects($this->once())->method('isSingleStoreMode')->will($this->returnValue(true));
98+
$this->storeManagerMock->expects($this->once())->method('isSingleStoreMode')->will($this->returnValue(true));
9099
$this->_model->setData(
91100
['hide_in_single_store_mode' => 1, 'showInDefault' => 1, 'showInStore' => 0, 'showInWebsite' => 0],
92101
ScopeConfigInterface::SCOPE_TYPE_DEFAULT
@@ -99,7 +108,7 @@ public function testIsVisibleReturnsFalseInSingleStoreModeForHiddenElements()
99108
*/
100109
public function testIsVisibleReturnsFalseInSingleStoreModeForInvisibleElements()
101110
{
102-
$this->_storeManager->expects($this->once())->method('isSingleStoreMode')->will($this->returnValue(true));
111+
$this->storeManagerMock->expects($this->once())->method('isSingleStoreMode')->will($this->returnValue(true));
103112
$this->_model->setData(
104113
['showInDefault' => 0, 'showInStore' => 0, 'showInWebsite' => 0],
105114
ScopeConfigInterface::SCOPE_TYPE_DEFAULT
@@ -165,6 +174,25 @@ public function isVisibleReturnsFalseForNonProperScopesDataProvider()
165174
];
166175
}
167176

177+
public function testIsVisibleReturnFalseIfModuleNotEnabled()
178+
{
179+
$this->moduleManagerMock->expects($this->once())
180+
->method('isOutputEnabled')
181+
->with('test_module')
182+
->willReturn(false);
183+
$this->_model->setData(
184+
[
185+
'showInDefault' => 1,
186+
'showInStore' => 0,
187+
'showInWebsite' => 0,
188+
'if_module_enabled' => 'test_module',
189+
],
190+
'default'
191+
);
192+
$this->assertFalse($this->_model->isVisible());
193+
194+
}
195+
168196
public function testGetClass()
169197
{
170198
$this->assertEquals('', $this->_model->getClass());

app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/AbstractCompositeTest.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ class AbstractCompositeTest extends \PHPUnit_Framework_TestCase
2222
*/
2323
protected $_iteratorMock;
2424

25+
/**
26+
* @var \Magento\Framework\Module\Manager | \PHPUnit_Framework_MockObject_MockObject
27+
*/
28+
protected $moduleManagerMock;
29+
2530
/**
2631
* Test element data
2732
*
@@ -44,10 +49,10 @@ protected function setUp()
4449
false
4550
);
4651
$this->_storeManagerMock = $this->getMock('Magento\Store\Model\StoreManager', [], [], '', false);
47-
52+
$this->moduleManagerMock = $this->getMock('Magento\Framework\Module\Manager', [], [], '', false);
4853
$this->_model = $this->getMockForAbstractClass(
4954
'Magento\Config\Model\Config\Structure\Element\AbstractComposite',
50-
[$this->_storeManagerMock, $this->_iteratorMock]
55+
[$this->_storeManagerMock, $this->moduleManagerMock, $this->_iteratorMock]
5156
);
5257
}
5358

app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/FieldTest.php

Lines changed: 13 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010

1111
namespace Magento\Config\Test\Unit\Model\Config\Structure\Element;
1212

13+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
14+
1315
class FieldTest extends \PHPUnit_Framework_TestCase
1416
{
1517
const FIELD_TEST_CONSTANT = "field test constant";
@@ -19,11 +21,6 @@ class FieldTest extends \PHPUnit_Framework_TestCase
1921
*/
2022
protected $_model;
2123

22-
/**
23-
* @var \PHPUnit_Framework_MockObject_MockObject
24-
*/
25-
protected $_storeManagerMock;
26-
2724
/**
2825
* @var \PHPUnit_Framework_MockObject_MockObject
2926
*/
@@ -49,21 +46,10 @@ class FieldTest extends \PHPUnit_Framework_TestCase
4946
*/
5047
protected $_depMapperMock;
5148

52-
/**
53-
* @var \PHPUnit_Framework_MockObject_MockObject
54-
*/
55-
protected $_iteratorMock;
56-
5749
protected function setUp()
5850
{
59-
$this->_iteratorMock = $this->getMock(
60-
'Magento\Config\Model\Config\Structure\Element\Iterator',
61-
[],
62-
[],
63-
'',
64-
false
65-
);
66-
$this->_storeManagerMock = $this->getMock('Magento\Store\Model\StoreManager', [], [], '', false);
51+
$objectManager = new ObjectManager($this);
52+
6753
$this->_backendFactoryMock = $this->getMock(
6854
'Magento\Config\Model\Config\BackendFactory',
6955
[],
@@ -100,20 +86,20 @@ protected function setUp()
10086
false
10187
);
10288

103-
$this->_model = new \Magento\Config\Model\Config\Structure\Element\Field(
104-
$this->_storeManagerMock,
105-
$this->_backendFactoryMock,
106-
$this->_sourceFactoryMock,
107-
$this->_commentFactoryMock,
108-
$this->_blockFactoryMock,
109-
$this->_depMapperMock
89+
$this->_model = $objectManager->getObject(
90+
'Magento\Config\Model\Config\Structure\Element\Field',
91+
[
92+
'backendFactory' => $this->_backendFactoryMock,
93+
'sourceFactory' => $this->_sourceFactoryMock,
94+
'commentFactory' => $this->_commentFactoryMock,
95+
'blockFactory' => $this->_blockFactoryMock,
96+
'dependencyMapper' => $this->_depMapperMock,
97+
]
11098
);
11199
}
112100

113101
protected function tearDown()
114102
{
115-
unset($this->_iteratorMock);
116-
unset($this->_storeManagerMock);
117103
unset($this->_backendFactoryMock);
118104
unset($this->_sourceFactoryMock);
119105
unset($this->_commentFactoryMock);

app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/GroupTest.php

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,43 +5,28 @@
55
*/
66
namespace Magento\Config\Test\Unit\Model\Config\Structure\Element;
77

8+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
9+
810
class GroupTest extends \PHPUnit_Framework_TestCase
911
{
1012
/**
1113
* @var \Magento\Config\Model\Config\Structure\Element\Group
1214
*/
1315
protected $_model;
1416

15-
/**
16-
* @var \PHPUnit_Framework_MockObject_MockObject
17-
*/
18-
protected $_storeManagerMock;
19-
2017
/**
2118
* @var \PHPUnit_Framework_MockObject_MockObject
2219
*/
2320
protected $_cloneFactoryMock;
2421

25-
/**
26-
* @var \PHPUnit_Framework_MockObject_MockObject
27-
*/
28-
protected $_iteratorMock;
29-
3022
/**
3123
* @var \PHPUnit_Framework_MockObject_MockObject
3224
*/
3325
protected $_depMapperMock;
3426

3527
protected function setUp()
3628
{
37-
$this->_iteratorMock = $this->getMock(
38-
'Magento\Config\Model\Config\Structure\Element\Iterator\Field',
39-
[],
40-
[],
41-
'',
42-
false
43-
);
44-
$this->_storeManagerMock = $this->getMock('Magento\Store\Model\StoreManager', [], [], '', false);
29+
$objectManager = new ObjectManager($this);
4530
$this->_cloneFactoryMock = $this->getMock(
4631
'Magento\Config\Model\Config\BackendClone\Factory',
4732
[],
@@ -57,19 +42,18 @@ protected function setUp()
5742
false
5843
);
5944

60-
$this->_model = new \Magento\Config\Model\Config\Structure\Element\Group(
61-
$this->_storeManagerMock,
62-
$this->_iteratorMock,
63-
$this->_cloneFactoryMock,
64-
$this->_depMapperMock
45+
$this->_model = $objectManager->getObject(
46+
'Magento\Config\Model\Config\Structure\Element\Group',
47+
[
48+
'cloneModelFactory' => $this->_cloneFactoryMock,
49+
'dependencyMapper' => $this->_depMapperMock,
50+
]
6551
);
6652
}
6753

6854
protected function tearDown()
6955
{
7056
unset($this->_model);
71-
unset($this->_iteratorMock);
72-
unset($this->_storeManagerMock);
7357
unset($this->_cloneFactoryMock);
7458
unset($this->_depMapperMock);
7559
}

0 commit comments

Comments
 (0)