Skip to content

Commit 79d4531

Browse files
author
Bohdan Korablov
committed
Merge remote-tracking branch 'tangoc/MAGETWO-43394' into new_pr_bugs
2 parents b081474 + 4123777 commit 79d4531

File tree

13 files changed

+436
-8
lines changed

13 files changed

+436
-8
lines changed

app/code/Magento/Cms/Model/Page/Source/IsActive.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ public function __construct(\Magento\Cms\Model\Page $cmsPage)
3434
*/
3535
public function toOptionArray()
3636
{
37-
$options[] = ['label' => '', 'value' => ''];
3837
$availableOptions = $this->cmsPage->getAvailableStatuses();
38+
$options = [];
3939
foreach ($availableOptions as $key => $value) {
4040
$options[] = [
4141
'label' => $value,
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Cms\Model\Page\Source;
7+
8+
/**
9+
* Is active filter source
10+
*/
11+
class IsActiveFilter extends IsActive
12+
{
13+
/**
14+
* {@inheritdoc}
15+
*/
16+
public function toOptionArray()
17+
{
18+
return array_merge([['label' => '', 'value' => '']], parent::toOptionArray());
19+
}
20+
}

app/code/Magento/Cms/Model/Page/Source/PageLayout.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,9 @@ public function toOptionArray()
4343
if ($this->options !== null) {
4444
return $this->options;
4545
}
46-
$options[] = ['label' => '', 'value' => ''];
46+
4747
$configOptions = $this->pageLayoutBuilder->getPageLayoutsConfig()->getOptions();
48+
$options = [];
4849
foreach ($configOptions as $key => $value) {
4950
$options[] = [
5051
'label' => $value,
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Cms\Model\Page\Source;
7+
8+
/**
9+
* Page layout filter source
10+
*/
11+
class PageLayoutFilter extends PageLayout
12+
{
13+
/**
14+
* {@inheritdoc}
15+
*/
16+
public function toOptionArray()
17+
{
18+
return array_merge([['label' => '', 'value' => '']], parent::toOptionArray());
19+
}
20+
}

app/code/Magento/Cms/Model/Page/Source/Theme.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ public function __construct(ListInterface $themeList)
3535
*/
3636
public function toOptionArray()
3737
{
38-
$options[] = ['label' => '', 'value' => ''];
39-
return $options + $this->themeList->getLabels();
40-
38+
return $this->themeList->getLabels();
4139
}
4240
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Cms\Model\Page\Source;
7+
8+
/**
9+
* Theme filter source
10+
*/
11+
class ThemeFilter extends Theme
12+
{
13+
/**
14+
* {@inheritdoc}
15+
*/
16+
public function toOptionArray()
17+
{
18+
return array_merge([['label' => '', 'value' => '']], parent::toOptionArray());
19+
}
20+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Cms\Test\Unit\Model\Page\Source;
7+
8+
class IsActiveFilterTest extends IsActiveTest
9+
{
10+
/**
11+
* {@inheritdoc}
12+
*/
13+
protected function getSourceClassName()
14+
{
15+
return 'Magento\Cms\Model\Page\Source\IsActiveFilter';
16+
}
17+
18+
/**
19+
* {@inheritdoc}
20+
*/
21+
public function getAvailableStatusesDataProvider()
22+
{
23+
return [
24+
[
25+
[],
26+
[['label' => '', 'value' => '']],
27+
],
28+
[
29+
['testStatus' => 'testValue'],
30+
[['label' => '', 'value' => ''], ['label' => 'testValue', 'value' => 'testStatus']],
31+
],
32+
];
33+
}
34+
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Cms\Test\Unit\Model\Page\Source;
7+
8+
use Magento\Cms\Model\Page;
9+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
10+
11+
class IsActiveTest extends \PHPUnit_Framework_TestCase
12+
{
13+
/**
14+
* @var Page|\PHPUnit_Framework_MockObject_MockObject
15+
*/
16+
protected $cmsPageMock;
17+
18+
/**
19+
* @var ObjectManager
20+
*/
21+
protected $objectManagerHelper;
22+
23+
/**
24+
* @var Page\Source\IsActive
25+
*/
26+
protected $object;
27+
28+
/**
29+
* {@inheritdoc}
30+
*/
31+
protected function setUp()
32+
{
33+
$this->objectManagerHelper = new ObjectManager($this);
34+
$this->cmsPageMock = $this->getMockBuilder('Magento\Cms\Model\Page')
35+
->disableOriginalConstructor()
36+
->setMethods(['getAvailableStatuses'])
37+
->getMock();
38+
39+
$this->object = $this->objectManagerHelper->getObject($this->getSourceClassName(), [
40+
'cmsPage' => $this->cmsPageMock,
41+
]);
42+
}
43+
44+
/**
45+
* @return string
46+
*/
47+
protected function getSourceClassName()
48+
{
49+
return 'Magento\Cms\Model\Page\Source\IsActive';
50+
}
51+
52+
/**
53+
* @param array $availableStatuses
54+
* @param array $expected
55+
* @return void
56+
* @dataProvider getAvailableStatusesDataProvider
57+
*/
58+
public function testToOptionArray(array $availableStatuses, array $expected)
59+
{
60+
$this->cmsPageMock->expects($this->once())
61+
->method('getAvailableStatuses')
62+
->willReturn($availableStatuses);
63+
64+
$this->assertSame($expected, $this->object->toOptionArray());
65+
}
66+
67+
/**
68+
* @return array
69+
*/
70+
public function getAvailableStatusesDataProvider()
71+
{
72+
return [
73+
[
74+
[],
75+
[],
76+
],
77+
[
78+
['testStatus' => 'testValue'],
79+
[['label' => 'testValue', 'value' => 'testStatus']],
80+
],
81+
];
82+
}
83+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Cms\Test\Unit\Model\Page\Source;
7+
8+
class PageLayoutFilterTest extends PageLayoutTest
9+
{
10+
/**
11+
* @return string
12+
*/
13+
protected function getSourceClassName()
14+
{
15+
return 'Magento\Cms\Model\Page\Source\PageLayoutFilter';
16+
}
17+
18+
/**
19+
* {@inheritdoc}
20+
*/
21+
public function getOptionsDataProvider()
22+
{
23+
return [
24+
[
25+
[],
26+
[['label' => '', 'value' => '']],
27+
],
28+
[
29+
['testStatus' => 'testValue'],
30+
[['label' => '', 'value' => ''], ['label' => 'testValue', 'value' => 'testStatus']],
31+
],
32+
];
33+
}
34+
}
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Cms\Test\Unit\Model\Page\Source;
7+
8+
use Magento\Cms\Model\Page\Source\PageLayout;
9+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
10+
use Magento\Framework\View\Model\PageLayout\Config\BuilderInterface;
11+
use Magento\Framework\View\PageLayout\Config;
12+
13+
class PageLayoutTest extends \PHPUnit_Framework_TestCase
14+
{
15+
/**
16+
* @var BuilderInterface|\PHPUnit_Framework_MockObject_MockObject
17+
*/
18+
protected $builderMock;
19+
20+
/**
21+
* @var Config|\PHPUnit_Framework_MockObject_MockObject
22+
*/
23+
protected $pageLayoutConfigMock;
24+
25+
/**
26+
* @var ObjectManager
27+
*/
28+
protected $objectManagerHelper;
29+
30+
/**
31+
* @var PageLayout
32+
*/
33+
protected $object;
34+
35+
/**
36+
* {@inheritdoc}
37+
*/
38+
protected function setUp()
39+
{
40+
$this->objectManagerHelper = new ObjectManager($this);
41+
$this->builderMock = $this->getMockBuilder('Magento\Framework\View\Model\PageLayout\Config\BuilderInterface')
42+
->disableOriginalConstructor()
43+
->setMethods(['getPageLayoutsConfig'])
44+
->getMock();
45+
$this->pageLayoutConfigMock = $this->getMockBuilder('Magento\Framework\View\PageLayout\Config')
46+
->disableOriginalConstructor()
47+
->setMethods(['getOptions'])
48+
->getMock();
49+
50+
$this->builderMock->expects($this->any())
51+
->method('getPageLayoutsConfig')
52+
->willReturn($this->pageLayoutConfigMock);
53+
54+
$this->object = $this->objectManagerHelper->getObject($this->getSourceClassName(), [
55+
'pageLayoutBuilder' => $this->builderMock,
56+
]);
57+
}
58+
59+
/**
60+
* @return string
61+
*/
62+
protected function getSourceClassName()
63+
{
64+
return 'Magento\Cms\Model\Page\Source\PageLayout';
65+
}
66+
67+
/**
68+
* @param array $options
69+
* @param array $expected
70+
* @return void
71+
* @dataProvider getOptionsDataProvider
72+
*/
73+
public function testToOptionArray(array $options, array $expected)
74+
{
75+
$this->pageLayoutConfigMock->expects($this->once())
76+
->method('getOptions')
77+
->willReturn($options);
78+
79+
$this->assertSame($expected, $this->object->toOptionArray());
80+
}
81+
82+
/**
83+
* @return array
84+
*/
85+
public function getOptionsDataProvider()
86+
{
87+
return [
88+
[
89+
[],
90+
[],
91+
],
92+
[
93+
['testStatus' => 'testValue'],
94+
[['label' => 'testValue', 'value' => 'testStatus']],
95+
],
96+
97+
];
98+
}
99+
}

0 commit comments

Comments
 (0)