Skip to content

Commit 2b07c12

Browse files
author
Dmytro Poperechnyy
committed
MAGETWO-17690: 'Orders & Returns' widget type contain unnecessary tab
- Method isHidden and _addField modified; - Added method setUp and dataProviders to unit test;
1 parent d5c815c commit 2b07c12

File tree

2 files changed

+61
-26
lines changed
  • app/code/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Tab
  • dev/tests/unit/testsuite/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Tab

2 files changed

+61
-26
lines changed

app/code/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Tab/Properties.php

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,13 @@ class Properties extends \Magento\Widget\Block\Adminhtml\Widget\Options implemen
1414
\Magento\Backend\Block\Widget\Tab\TabInterface
1515
{
1616
/**
17-
* Widget config parameter
17+
* Widget config parameters
18+
*
19+
* @var array
1820
*/
19-
const WIDGET_TEMPLATE_PARAMETER = 'template';
21+
protected $hiddenParameters = [
22+
'template'
23+
];
2024

2125
/**
2226
* Prepare label for tab
@@ -57,9 +61,9 @@ public function isHidden()
5761
{
5862
$widgetConfig = $this->getWidgetInstance()->getWidgetConfigAsArray();
5963

60-
if (in_array('parameters', array_keys($widgetConfig))) {
64+
if (isset($widgetConfig['parameters'])) {
6165
foreach ($widgetConfig['parameters'] as $key => $parameter) {
62-
if ($parameter['visible'] == 1 && $key != self::WIDGET_TEMPLATE_PARAMETER) {
66+
if ($parameter['visible'] == 1 && !in_array($key, $this->hiddenParameters)) {
6367
return false;
6468
}
6569
}
@@ -102,7 +106,7 @@ protected function _preparelayout()
102106
*/
103107
protected function _addField($parameter)
104108
{
105-
if ($parameter->getKey() != 'template') {
109+
if (!in_array($parameter->getKey(), $this->hiddenParameters)) {
106110
return parent::_addField($parameter);
107111
}
108112
return false;

dev/tests/unit/testsuite/Magento/Widget/Block/Adminhtml/Widget/Instance/Edit/Tab/PropertiesTest.php

Lines changed: 52 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,34 +7,50 @@
77
class PropertiesTest extends \PHPUnit_Framework_TestCase
88
{
99
/**
10-
* @param array $widgetConfig
11-
* @param boolean $expected
12-
*
13-
* @dataProvider isHiddenDataProvider
10+
* @var \PHPUnit_Framework_MockObject_MockObject
1411
*/
15-
public function testIsHidden($widgetConfig, $expected)
16-
{
17-
/** @var \Magento\Widget\Model\Widget\Instance|\PHPUnit_Framework_MockObject_MockObject $widget */
18-
$widget = $this->getMock('Magento\Widget\Model\Widget\Instance', [], [], '', false);
19-
$widget->expects($this->atLeastOnce())->method('getWidgetConfigAsArray')->willReturn($widgetConfig);
12+
protected $widget;
2013

21-
/** @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject $registry */
22-
$registry = $this->getMock('Magento\Framework\Registry', [], [], '', false);
23-
$registry->expects($this->atLeastOnce())
24-
->method('registry')
25-
->with('current_widget_instance')
26-
->willReturn($widget);
14+
/**
15+
* @var \PHPUnit_Framework_MockObject_MockObject
16+
*/
17+
protected $registry;
18+
19+
/**
20+
* @var \Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Tab\Properties
21+
*/
22+
protected $propertiesBlock;
23+
24+
protected function setUp()
25+
{
26+
$this->widget = $this->getMock('Magento\Widget\Model\Widget\Instance', [], [], '', false);
27+
$this->registry = $this->getMock('Magento\Framework\Registry', [], [], '', false);
2728

2829
$objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
29-
/** @var \Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Tab\Properties $propertiesBlock */
30-
$propertiesBlock = $objectManager->getObject(
30+
$this->propertiesBlock = $objectManager->getObject(
3131
'Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Tab\Properties',
3232
[
33-
'registry' => $registry
33+
'registry' => $this->registry
3434
]
3535
);
36+
}
37+
38+
/**
39+
* @param array $widgetConfig
40+
* @param boolean $isHidden
41+
*
42+
* @dataProvider isHiddenDataProvider
43+
*/
44+
public function testIsHidden($widgetConfig, $isHidden)
45+
{
46+
$this->widget->expects($this->atLeastOnce())->method('getWidgetConfigAsArray')->willReturn($widgetConfig);
3647

37-
$this->assertEquals($expected, $propertiesBlock->isHidden());
48+
$this->registry->expects($this->atLeastOnce())
49+
->method('registry')
50+
->with('current_widget_instance')
51+
->willReturn($this->widget);
52+
53+
$this->assertEquals($isHidden, $this->propertiesBlock->isHidden());
3854
}
3955

4056
/**
@@ -56,7 +72,7 @@ public function isHiddenDataProvider()
5672
],
5773
]
5874
],
59-
'expected' => true
75+
'isHidden' => true
6076
],
6177
[
6278
'widgetConfig' => [
@@ -71,7 +87,22 @@ public function isHiddenDataProvider()
7187
],
7288
]
7389
],
74-
'expected' => false
90+
'isHidden' => false
91+
],
92+
[
93+
'widgetConfig' => [],
94+
'isHidden' => true
95+
],
96+
[
97+
'widgetConfig' => [
98+
'parameters' => [
99+
'template' => [
100+
'type' => 'select',
101+
'visible' => '0',
102+
],
103+
]
104+
],
105+
'isHidden' => true
75106
]
76107
];
77108
}

0 commit comments

Comments
 (0)