diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/WidgetGrid.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/WidgetGrid.php index 50a5657a4783088eabef74ea56aed23cd8592835..3906631741beb282e4071996a1505b4544db021c 100644 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/WidgetGrid.php +++ b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/WidgetGrid.php @@ -36,5 +36,9 @@ class WidgetGrid extends AbstractGrid 'title' => [ 'selector' => 'input[name="title"]', ], + 'theme_id' => [ + 'selector' => 'select[name="theme_id"]', + 'input' => 'select', + ], ]; } diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetWithDifferentThemesArePresentedInGrid.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetWithDifferentThemesArePresentedInGrid.php new file mode 100644 index 0000000000000000000000000000000000000000..445357bd5f91409ed2104766f76bcfc55a9fcd12 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetWithDifferentThemesArePresentedInGrid.php @@ -0,0 +1,63 @@ +<?php +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Widget\Test\Constraint; + +use Magento\Widget\Test\Fixture\Widget; +use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex; +use Magento\Mtf\Constraint\AbstractConstraint; + +/** + * Class AssertWidgetInGrid + */ +class AssertWidgetWithDifferentThemesArePresentedInGrid extends AbstractConstraint +{ + /** + * Assert widgets with different themes availability in widget grid + * + * @param Widget $widget + * @param WidgetInstanceIndex $widgetInstanceIndex + * @param array $additionalWidgets + * @return void + */ + public function processAssert( + Widget $widget, + WidgetInstanceIndex $widgetInstanceIndex, + array $additionalWidgets = [] + ) { + $additionalWidgets[] = $widget; + $expectedData = []; + $actualData = []; + $widgetInstanceIndex->open(); + $widgetGrid = $widgetInstanceIndex->getWidgetGrid(); + + foreach ($additionalWidgets as $widget) { + $filter = [ + 'title' => $widget->getTitle(), + 'theme_id' => $widget->getThemeId(), + ]; + $widgetGrid->search($filter); + $expectedData[] = $filter; + $actualData[] = $widgetGrid->getRowsData(array_keys($filter))[0]; + } + + \PHPUnit_Framework_Assert::assertEquals( + $expectedData, + $actualData, + 'Not all expected widgets are present in grid.' + ); + } + + /** + * Returns a string representation of the object + * + * @return string + */ + public function toString() + { + return 'Widgets with different themes are present in widget grid.'; + } +} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Repository/Widget.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Repository/Widget.xml index dc39ed7fa1259a02da5eadbc84c38e22f64c71aa..81c6ea28f56c9cee5ce32957877949a79f5e92ab 100644 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Repository/Widget.xml +++ b/dev/tests/functional/tests/app/Magento/Widget/Test/Repository/Widget.xml @@ -25,5 +25,19 @@ <item name="dataset" xsi:type="string">cmsPageLink</item> </field> </dataset> + <dataset name="simple_widget"> + <field name="code" xsi:type="string">Recently Viewed Products</field> + <field name="title" xsi:type="string">Title_%isolation%</field> + <field name="theme_id" xsi:type="string">Magento Blank</field> + <field name="store_ids" xsi:type="array"> + <item name="dataset" xsi:type="string">all_store_views</item> + </field> + <field name="widget_instance" xsi:type="array"> + <item name="dataset" xsi:type="string">for_viewed_products</item> + </field> + <field name="parameters" xsi:type="array"> + <item name="dataset" xsi:type="string">recentlyViewedProducts</item> + </field> + </dataset> </repository> </config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/AbstractCreateWidgetEntityTest.php b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/AbstractCreateWidgetEntityTest.php index 235361aee8b7eea30618663ecf1067a6dbc303a0..c5f920a6c893bdb96a3d90f7143b64fef57eea83 100644 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/AbstractCreateWidgetEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/AbstractCreateWidgetEntityTest.php @@ -6,6 +6,7 @@ namespace Magento\Widget\Test\TestCase; +use Magento\Mtf\Fixture\FixtureFactory; use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceEdit; use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex; use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceNew; @@ -53,6 +54,11 @@ abstract class AbstractCreateWidgetEntityTest extends Injectable */ protected $cache; + /** + * @var FixtureFactory + */ + protected $fixtureFactory; + /** * Injection data. * @@ -61,20 +67,22 @@ abstract class AbstractCreateWidgetEntityTest extends Injectable * @param WidgetInstanceEdit $widgetInstanceEdit * @param CmsIndex $cmsIndex * @param Cache $cache - * @return void + * @param FixtureFactory $fixtureFactory */ public function __inject( WidgetInstanceIndex $widgetInstanceIndex, WidgetInstanceNew $widgetInstanceNew, WidgetInstanceEdit $widgetInstanceEdit, CmsIndex $cmsIndex, - Cache $cache + Cache $cache, + FixtureFactory $fixtureFactory ) { $this->widgetInstanceIndex = $widgetInstanceIndex; $this->widgetInstanceNew = $widgetInstanceNew; $this->widgetInstanceEdit = $widgetInstanceEdit; $this->cmsIndex = $cmsIndex; $this->cache = $cache; + $this->fixtureFactory = $fixtureFactory; } /** diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.php b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.php index 6358ac8821f26b621de3e83f7ef8380ffb7c3efc..a61bc7f060a016cf6c1bf45146e87ded22e86400 100644 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.php @@ -25,8 +25,7 @@ class CreateWidgetEntityTest extends AbstractCreateWidgetEntityTest { /* tags */ const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - const SEVERITY = 'S1'; + const SEVERITY = 'S3'; /* end tags */ /** @@ -40,20 +39,29 @@ class CreateWidgetEntityTest extends AbstractCreateWidgetEntityTest * Create for New Widget. * * @param Widget $widget + * @param array $additionalWidgets * @param array $caches [optional] - * @return void + * @return array */ - public function test(Widget $widget, array $caches = []) + public function test(Widget $widget, array $additionalWidgets = [], array $caches = []) { // Preconditions $this->caches = $caches; $this->adjustCacheSettings(); - + // Steps $this->widgetInstanceIndex->open(); $this->widgetInstanceIndex->getPageActionsBlock()->addNew(); $this->widgetInstanceNew->getWidgetForm()->fill($widget); $this->widgetInstanceEdit->getPageActionsBlock()->save(); + + foreach ($additionalWidgets as $key => $additionalWidget) { + $additionalWidget = $this->fixtureFactory->createByCode('widget', ['dataset' => $additionalWidget]); + $additionalWidget->persist(); + $additionalWidgets[$key] = $additionalWidget; + } + + return ['additionalWidgets' => $additionalWidgets]; } /** diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.xml index 225759df91f179dbd911fca662c05476c4830a69..15610625f3125f9c999c5d2e05110a10af54fb37 100644 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.xml +++ b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.xml @@ -118,5 +118,16 @@ <constraint name="Magento\Widget\Test\Constraint\AssertWidgetSuccessSaveMessage" /> <constraint name="Magento\Widget\Test\Constraint\AssertWidgetCatalogNewProductsList" /> </variation> + <variation name="CreateWidgetEntityTestWithDifferentThemes"> + <data name="tag" xsi:type="string">severity:S3</data> + <data name="widget/data/code" xsi:type="string">Recently Viewed Products</data> + <data name="widget/data/theme_id" xsi:type="string">Magento Blank</data> + <data name="widget/data/title" xsi:type="string">Title_%isolation%</data> + <data name="widget/data/store_ids/dataset" xsi:type="string">all_store_views</data> + <data name="widget/data/widget_instance/dataset" xsi:type="string">for_viewed_products</data> + <data name="widget/data/parameters/dataset" xsi:type="string">recentlyViewedProducts</data> + <data name="additionalWidgets/0" xsi:type="string">simple_widget</data> + <constraint name="Magento\Widget\Test\Constraint\AssertWidgetWithDifferentThemesArePresentedInGrid" /> + </variation> </testCase> </config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/etc/di.xml index 122a9659cf2b6be0706218e1f761870784179ea7..6fba66a3db3384a741c6932255316fb202c6a210 100644 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/etc/di.xml +++ b/dev/tests/functional/tests/app/Magento/Widget/Test/etc/di.xml @@ -66,4 +66,9 @@ <argument name="severity" xsi:type="string">S1</argument> </arguments> </type> + <type name="Magento\Widget\Test\Constraint\AssertWidgetWithDifferentThemesArePresentedInGrid"> + <arguments> + <argument name="severity" xsi:type="string">S3</argument> + </arguments> + </type> </config>