Skip to content

Commit 982731a

Browse files
author
Serhii Dzhepa
committed
MAGETWO-59308: Design theme dropdown does not display all themes in Widgets
1 parent 5cb9415 commit 982731a

File tree

7 files changed

+120
-7
lines changed

7 files changed

+120
-7
lines changed

dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/WidgetGrid.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,9 @@ class WidgetGrid extends AbstractGrid
3636
'title' => [
3737
'selector' => 'input[name="title"]',
3838
],
39+
'theme_id' => [
40+
'selector' => 'select[name="theme_id"]',
41+
'input' => 'select',
42+
],
3943
];
4044
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Widget\Test\Constraint;
8+
9+
use Magento\Widget\Test\Fixture\Widget;
10+
use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex;
11+
use Magento\Mtf\Constraint\AbstractConstraint;
12+
13+
/**
14+
* Class AssertWidgetInGrid
15+
*/
16+
class AssertWidgetWithDifferentThemesArePresentedInGrid extends AbstractConstraint
17+
{
18+
/**
19+
* Assert widgets with different themes availability in widget grid
20+
*
21+
* @param Widget $widget
22+
* @param WidgetInstanceIndex $widgetInstanceIndex
23+
* @param array $additionalWidgets
24+
* @return void
25+
*/
26+
public function processAssert(
27+
Widget $widget,
28+
WidgetInstanceIndex $widgetInstanceIndex,
29+
array $additionalWidgets = []
30+
) {
31+
$additionalWidgets[] = $widget;
32+
$expectedData = [];
33+
$actualData = [];
34+
$widgetInstanceIndex->open();
35+
$widgetGrid = $widgetInstanceIndex->getWidgetGrid();
36+
37+
foreach ($additionalWidgets as $widget) {
38+
$filter = [
39+
'title' => $widget->getTitle(),
40+
'theme_id' => $widget->getThemeId(),
41+
];
42+
$widgetGrid->search($filter);
43+
$expectedData[] = $filter;
44+
$actualData[] = $widgetGrid->getRowsData(array_keys($filter))[0];
45+
}
46+
47+
\PHPUnit_Framework_Assert::assertEquals(
48+
$expectedData,
49+
$actualData,
50+
'Not all expected widgets are present in grid.'
51+
);
52+
}
53+
54+
/**
55+
* Returns a string representation of the object
56+
*
57+
* @return string
58+
*/
59+
public function toString()
60+
{
61+
return 'Widgets with different themes are present in widget grid.';
62+
}
63+
}

dev/tests/functional/tests/app/Magento/Widget/Test/Repository/Widget.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,19 @@
2525
<item name="dataset" xsi:type="string">cmsPageLink</item>
2626
</field>
2727
</dataset>
28+
<dataset name="simple_widget">
29+
<field name="code" xsi:type="string">Recently Viewed Products</field>
30+
<field name="title" xsi:type="string">Title_%isolation%</field>
31+
<field name="theme_id" xsi:type="string">Magento Blank</field>
32+
<field name="store_ids" xsi:type="array">
33+
<item name="dataset" xsi:type="string">all_store_views</item>
34+
</field>
35+
<field name="widget_instance" xsi:type="array">
36+
<item name="dataset" xsi:type="string">for_viewed_products</item>
37+
</field>
38+
<field name="parameters" xsi:type="array">
39+
<item name="dataset" xsi:type="string">recentlyViewedProducts</item>
40+
</field>
41+
</dataset>
2842
</repository>
2943
</config>

dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/AbstractCreateWidgetEntityTest.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
namespace Magento\Widget\Test\TestCase;
88

9+
use Magento\Mtf\Fixture\FixtureFactory;
910
use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceEdit;
1011
use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex;
1112
use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceNew;
@@ -53,6 +54,11 @@ abstract class AbstractCreateWidgetEntityTest extends Injectable
5354
*/
5455
protected $cache;
5556

57+
/**
58+
* @var FixtureFactory
59+
*/
60+
protected $fixtureFactory;
61+
5662
/**
5763
* Injection data.
5864
*
@@ -61,20 +67,22 @@ abstract class AbstractCreateWidgetEntityTest extends Injectable
6167
* @param WidgetInstanceEdit $widgetInstanceEdit
6268
* @param CmsIndex $cmsIndex
6369
* @param Cache $cache
64-
* @return void
70+
* @param FixtureFactory $fixtureFactory
6571
*/
6672
public function __inject(
6773
WidgetInstanceIndex $widgetInstanceIndex,
6874
WidgetInstanceNew $widgetInstanceNew,
6975
WidgetInstanceEdit $widgetInstanceEdit,
7076
CmsIndex $cmsIndex,
71-
Cache $cache
77+
Cache $cache,
78+
FixtureFactory $fixtureFactory
7279
) {
7380
$this->widgetInstanceIndex = $widgetInstanceIndex;
7481
$this->widgetInstanceNew = $widgetInstanceNew;
7582
$this->widgetInstanceEdit = $widgetInstanceEdit;
7683
$this->cmsIndex = $cmsIndex;
7784
$this->cache = $cache;
85+
$this->fixtureFactory = $fixtureFactory;
7886
}
7987

8088
/**

dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.php

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ class CreateWidgetEntityTest extends AbstractCreateWidgetEntityTest
2525
{
2626
/* tags */
2727
const MVP = 'yes';
28-
const TEST_TYPE = 'extended_acceptance_test';
29-
const SEVERITY = 'S1';
28+
const SEVERITY = 'S3';
3029
/* end tags */
3130

3231
/**
@@ -40,20 +39,29 @@ class CreateWidgetEntityTest extends AbstractCreateWidgetEntityTest
4039
* Create for New Widget.
4140
*
4241
* @param Widget $widget
42+
* @param array $additionalWidgets
4343
* @param array $caches [optional]
44-
* @return void
44+
* @return array
4545
*/
46-
public function test(Widget $widget, array $caches = [])
46+
public function test(Widget $widget, array $additionalWidgets = [], array $caches = [])
4747
{
4848
// Preconditions
4949
$this->caches = $caches;
5050
$this->adjustCacheSettings();
51-
51+
5252
// Steps
5353
$this->widgetInstanceIndex->open();
5454
$this->widgetInstanceIndex->getPageActionsBlock()->addNew();
5555
$this->widgetInstanceNew->getWidgetForm()->fill($widget);
5656
$this->widgetInstanceEdit->getPageActionsBlock()->save();
57+
58+
foreach ($additionalWidgets as $key => $additionalWidget) {
59+
$additionalWidget = $this->fixtureFactory->createByCode('widget', ['dataset' => $additionalWidget]);
60+
$additionalWidget->persist();
61+
$additionalWidgets[$key] = $additionalWidget;
62+
}
63+
64+
return ['additionalWidgets' => $additionalWidgets];
5765
}
5866

5967
/**

dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,5 +118,16 @@
118118
<constraint name="Magento\Widget\Test\Constraint\AssertWidgetSuccessSaveMessage" />
119119
<constraint name="Magento\Widget\Test\Constraint\AssertWidgetCatalogNewProductsList" />
120120
</variation>
121+
<variation name="CreateWidgetEntityTestWithDifferentThemes">
122+
<data name="tag" xsi:type="string">severity:S3</data>
123+
<data name="widget/data/code" xsi:type="string">Recently Viewed Products</data>
124+
<data name="widget/data/theme_id" xsi:type="string">Magento Blank</data>
125+
<data name="widget/data/title" xsi:type="string">Title_%isolation%</data>
126+
<data name="widget/data/store_ids/dataset" xsi:type="string">all_store_views</data>
127+
<data name="widget/data/widget_instance/dataset" xsi:type="string">for_viewed_products</data>
128+
<data name="widget/data/parameters/dataset" xsi:type="string">recentlyViewedProducts</data>
129+
<data name="additionalWidgets/0" xsi:type="string">simple_widget</data>
130+
<constraint name="Magento\Widget\Test\Constraint\AssertWidgetWithDifferentThemesArePresentedInGrid" />
131+
</variation>
121132
</testCase>
122133
</config>

dev/tests/functional/tests/app/Magento/Widget/Test/etc/di.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,9 @@
6666
<argument name="severity" xsi:type="string">S1</argument>
6767
</arguments>
6868
</type>
69+
<type name="Magento\Widget\Test\Constraint\AssertWidgetWithDifferentThemesArePresentedInGrid">
70+
<arguments>
71+
<argument name="severity" xsi:type="string">S3</argument>
72+
</arguments>
73+
</type>
6974
</config>

0 commit comments

Comments
 (0)