From bdb32d739ad7a5a2f8a204cb511591966a020ca0 Mon Sep 17 00:00:00 2001
From: sdzhepa <sdzhepa@magento.com>
Date: Tue, 8 Nov 2016 17:55:19 +0200
Subject: [PATCH] MAGETWO-59308: Design theme dropdown does not display all
 themes in Widgets

- fix-rewrite test after CR
---
 .../Block/Adminhtml/Widget/WidgetGrid.php     | 27 ++++++++
 .../AssertThemeFilterValuesOnWidgetGrid.php   | 48 ++++++++++++++
 .../Test/Constraint/AssertWidgetInGrid.php    | 11 ++--
 ...tWithDifferentThemesArePresentedInGrid.php | 63 -------------------
 .../Test/Constraint/AssertWidgetsInGrid.php   | 48 ++++++++++++++
 .../Widget/Test/Handler/Widget/Curl.php       |  1 +
 .../Magento/Widget/Test/Repository/Widget.xml |  3 +-
 .../AbstractCreateWidgetEntityTest.php        | 12 +---
 .../Test/TestCase/CreateWidgetEntityTest.php  | 16 ++---
 .../Test/TestCase/CreateWidgetEntityTest.xml  | 11 ----
 .../Test/TestCase/CreateWidgetsEntityTest.php | 57 +++++++++++++++++
 .../Test/TestCase/CreateWidgetsEntityTest.xml | 18 ++++++
 .../tests/app/Magento/Widget/Test/etc/di.xml  |  7 ++-
 13 files changed, 220 insertions(+), 102 deletions(-)
 create mode 100644 dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertThemeFilterValuesOnWidgetGrid.php
 delete mode 100644 dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetWithDifferentThemesArePresentedInGrid.php
 create mode 100644 dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetsInGrid.php
 create mode 100644 dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetsEntityTest.php
 create mode 100644 dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetsEntityTest.xml

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 3906631741b..2a03872f4be 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
@@ -7,12 +7,20 @@
 namespace Magento\Widget\Test\Block\Adminhtml\Widget;
 
 use Magento\Backend\Test\Block\Widget\Grid as AbstractGrid;
+use Magento\Mtf\Client\Locator;
 
 /**
  * Widget grid on the Widget Instance Index page.
  */
 class WidgetGrid extends AbstractGrid
 {
+    /**
+     * Selector for not empty options at select element.
+     *
+     * @var string
+     */
+    private $notEmptyOptionsSelector = 'option:not([value=""])';
+
     /**
      * Locator value for link in action column.
      *
@@ -41,4 +49,23 @@ class WidgetGrid extends AbstractGrid
             'input' => 'select',
         ],
     ];
+
+    /**
+     * Returns values of theme_id filter.
+     *
+     * @return array
+     */
+    public function getThemeIdValues()
+    {
+        $values = [];
+        $themeFilter = $this->filters['theme_id'];
+        $strategy = empty($themeFilter['strategy']) ? Locator::SELECTOR_CSS : $themeFilter['strategy'];
+        $element = $this->_rootElement->find($themeFilter['selector'], $strategy, $themeFilter['input']);
+        $options = $element->getElements($this->notEmptyOptionsSelector);
+        foreach ($options as $option) {
+            $values[] = $option->getText();
+        }
+
+        return $values;
+    }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertThemeFilterValuesOnWidgetGrid.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertThemeFilterValuesOnWidgetGrid.php
new file mode 100644
index 00000000000..31ebfd87c25
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertThemeFilterValuesOnWidgetGrid.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Copyright © 2016 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Widget\Test\Constraint;
+
+use Magento\Mtf\Constraint\AbstractConstraint;
+use Magento\Widget\Test\Fixture\Widget;
+use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex;
+
+/**
+ * Assert theme filter contains all possible values from created widgets.
+ */
+class AssertThemeFilterValuesOnWidgetGrid extends AbstractConstraint
+{
+    /**
+     * Assert theme filter contains all possible values from created widgets.
+     *
+     * @param Widget[] $widgets
+     * @param WidgetInstanceIndex $widgetInstanceIndex
+     * @return void
+     */
+    public function processAssert(array $widgets, WidgetInstanceIndex $widgetInstanceIndex)
+    {
+        $expectedValues = [];
+        foreach ($widgets as $widget) {
+            $expectedValues[] = $widget->getThemeId();
+        }
+        $widgetInstanceIndex->open();
+        $actualValues = $widgetInstanceIndex->getWidgetGrid()->getThemeIdValues();
+        \PHPUnit_Framework_Assert::assertEmpty(
+            array_diff($expectedValues, $actualValues),
+            'Widget grid theme filter doesn\'t contain all possible values from created widgets.'
+        );
+    }
+
+    /**
+     * Returns a string representation of the object.
+     *
+     * @return string
+     */
+    public function toString()
+    {
+        return 'Widget grid theme filter contains all possible values from created widgets.';
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetInGrid.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetInGrid.php
index 5382d544a94..2cc675f79fb 100644
--- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetInGrid.php
+++ b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetInGrid.php
@@ -11,7 +11,7 @@ use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex;
 use Magento\Mtf\Constraint\AbstractConstraint;
 
 /**
- * Class AssertWidgetInGrid
+ * Assert widget is present in widget grid.
  */
 class AssertWidgetInGrid extends AbstractConstraint
 {
@@ -20,7 +20,10 @@ class AssertWidgetInGrid extends AbstractConstraint
     /* end tags */
 
     /**
-     * Assert widget availability in widget grid
+     * Assert widget availability in widget grid.
+     * Verifying such fields as:
+     * - title
+     * - theme_id
      *
      * @param Widget $widget
      * @param WidgetInstanceIndex $widgetInstanceIndex
@@ -28,7 +31,7 @@ class AssertWidgetInGrid extends AbstractConstraint
      */
     public function processAssert(Widget $widget, WidgetInstanceIndex $widgetInstanceIndex)
     {
-        $filter = ['title' => $widget->getTitle()];
+        $filter = ['title' => $widget->getTitle(), 'theme_id' => $widget->getThemeId()];
         $widgetInstanceIndex->open();
         \PHPUnit_Framework_Assert::assertTrue(
             $widgetInstanceIndex->getWidgetGrid()->isRowVisible($filter),
@@ -37,7 +40,7 @@ class AssertWidgetInGrid extends AbstractConstraint
     }
 
     /**
-     * Returns a string representation of the object
+     * Returns a string representation of the object.
      *
      * @return string
      */
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
deleted file mode 100644
index 445357bd5f9..00000000000
--- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetWithDifferentThemesArePresentedInGrid.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?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/Constraint/AssertWidgetsInGrid.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetsInGrid.php
new file mode 100644
index 00000000000..bc61b3ef66f
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetsInGrid.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Copyright © 2016 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Widget\Test\Constraint;
+
+use Magento\Mtf\Constraint\AbstractConstraint;
+use Magento\Widget\Test\Fixture\Widget;
+use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex;
+
+/**
+ * Assert widgets are present in widget grid.
+ */
+class AssertWidgetsInGrid extends AbstractConstraint
+{
+    /**
+     * Assert widgets are present in widget grid.
+     * Verifying such fields as:
+     * - title
+     * - theme_id
+     *
+     * @param Widget[] $widgets
+     * @param WidgetInstanceIndex $widgetInstanceIndex
+     * @param AssertWidgetInGrid $assertWidgetInGrid
+     * @return void
+     */
+    public function processAssert(
+        array $widgets,
+        WidgetInstanceIndex $widgetInstanceIndex,
+        AssertWidgetInGrid $assertWidgetInGrid
+    ) {
+        foreach ($widgets as $widget) {
+            $assertWidgetInGrid->processAssert($widget, $widgetInstanceIndex);
+        }
+    }
+
+    /**
+     * Returns a string representation of the object.
+     *
+     * @return string
+     */
+    public function toString()
+    {
+        return 'Widgets are present in widget grid.';
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Handler/Widget/Curl.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Handler/Widget/Curl.php
index 4c9e61cdb87..54520d0786a 100644
--- a/dev/tests/functional/tests/app/Magento/Widget/Test/Handler/Widget/Curl.php
+++ b/dev/tests/functional/tests/app/Magento/Widget/Test/Handler/Widget/Curl.php
@@ -27,6 +27,7 @@ class Curl extends AbstractCurl
     protected $mappingData = [
         'code' => [
             'CMS Page Link' => 'cms_page_link',
+            'Recently Viewed Products' => 'recently_viewed',
         ],
         'block' => [
             'Main Content Area' => 'content',
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 81c6ea28f56..4a8972bfd8d 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,7 +25,8 @@
                 <item name="dataset" xsi:type="string">cmsPageLink</item>
             </field>
         </dataset>
-        <dataset name="simple_widget">
+
+        <dataset name="recently_viewed_products_on_blank_theme">
             <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>
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 c5f920a6c89..235361aee8b 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,7 +6,6 @@
 
 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;
@@ -54,11 +53,6 @@ abstract class AbstractCreateWidgetEntityTest extends Injectable
      */
     protected $cache;
 
-    /**
-     * @var FixtureFactory
-     */
-    protected $fixtureFactory;
-
     /**
      * Injection data.
      *
@@ -67,22 +61,20 @@ abstract class AbstractCreateWidgetEntityTest extends Injectable
      * @param WidgetInstanceEdit $widgetInstanceEdit
      * @param CmsIndex $cmsIndex
      * @param Cache $cache
-     * @param FixtureFactory $fixtureFactory
+     * @return void
      */
     public function __inject(
         WidgetInstanceIndex $widgetInstanceIndex,
         WidgetInstanceNew $widgetInstanceNew,
         WidgetInstanceEdit $widgetInstanceEdit,
         CmsIndex $cmsIndex,
-        Cache $cache,
-        FixtureFactory $fixtureFactory
+        Cache $cache
     ) {
         $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 a61bc7f060a..cc02293ff8f 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,7 +25,8 @@ class CreateWidgetEntityTest extends AbstractCreateWidgetEntityTest
 {
     /* tags */
     const MVP = 'yes';
-    const SEVERITY = 'S3';
+    const TEST_TYPE = 'extended_acceptance_test';
+    const SEVERITY = 'S1';
     /* end tags */
 
     /**
@@ -39,11 +40,10 @@ class CreateWidgetEntityTest extends AbstractCreateWidgetEntityTest
      * Create for New Widget.
      *
      * @param Widget $widget
-     * @param array $additionalWidgets
      * @param array $caches [optional]
-     * @return array
+     * @return void
      */
-    public function test(Widget $widget, array $additionalWidgets = [], array $caches = [])
+    public function test(Widget $widget, array $caches = [])
     {
         // Preconditions
         $this->caches = $caches;
@@ -54,14 +54,6 @@ class CreateWidgetEntityTest extends AbstractCreateWidgetEntityTest
         $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 15610625f31..225759df91f 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,16 +118,5 @@
             <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/TestCase/CreateWidgetsEntityTest.php b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetsEntityTest.php
new file mode 100644
index 00000000000..5269c315f78
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetsEntityTest.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Copyright © 2016 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Widget\Test\TestCase;
+
+use Magento\Mtf\Fixture\FixtureFactory;
+use \Magento\Mtf\TestCase\Injectable;
+use Magento\Widget\Test\Fixture\Widget;
+
+/**
+ * Steps:
+ * 1. Create widgets.
+ * 2. Perform all assertions.
+ *
+ * @group Widget
+ * @ZephyrId MAGETWO-60672
+ */
+class CreateWidgetsEntityTest extends Injectable
+{
+    /* tags */
+    const SEVERITY = 'S3';
+    /* end tags */
+
+    /**
+     * Create multiple widgets.
+     *
+     * @param array $widgets
+     * @param FixtureFactory $fixtureFactory
+     * @return array
+     */
+    public function test(array $widgets, FixtureFactory $fixtureFactory)
+    {
+        /** @var Widget[] $widgetInstances */
+        $widgetInstances = [];
+        // Preconditions
+        foreach ($widgets as $widget) {
+            $widget = $fixtureFactory->createByCode('widget', ['dataset' => $widget]);
+            $widget->persist();
+            $widgetInstances[] = $widget;
+        }
+
+        return ['widgets' => $widgetInstances];
+    }
+
+    /**
+     * Delete all widgets.
+     *
+     * @return void
+     */
+    public function tearDown()
+    {
+        $this->objectManager->create(\Magento\Widget\Test\TestStep\DeleteAllWidgetsStep::class)->run();
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetsEntityTest.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetsEntityTest.xml
new file mode 100644
index 00000000000..484ea26cf52
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetsEntityTest.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright © 2016 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+ -->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
+    <testCase name="Magento\Widget\Test\TestCase\CreateWidgetsEntityTest" summary="Create Widget" ticketId="MAGETWO-60672">
+        <variation name="CreateWidgetEntityTestWithDifferentThemes" summary="Widgets with different themes is presented in grid/filter">
+            <data name="tag" xsi:type="string">severity:S3</data>
+            <data name="widgets/0" xsi:type="string">default</data>
+            <data name="widgets/1" xsi:type="string">recently_viewed_products_on_blank_theme</data>
+            <constraint name="Magento\Widget\Test\Constraint\AssertThemeFilterValuesOnWidgetGrid" />
+            <constraint name="Magento\Widget\Test\Constraint\AssertWidgetsInGrid" />
+        </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 6fba66a3db3..c1595838b4f 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,7 +66,12 @@
             <argument name="severity" xsi:type="string">S1</argument>
         </arguments>
     </type>
-    <type name="Magento\Widget\Test\Constraint\AssertWidgetWithDifferentThemesArePresentedInGrid">
+    <type name="Magento\Widget\Test\Constraint\AssertWidgetsInGrid">
+        <arguments>
+            <argument name="severity" xsi:type="string">S3</argument>
+        </arguments>
+    </type>
+    <type name="Magento\Widget\Test\Constraint\AssertThemeFilterValuesOnWidgetGrid">
         <arguments>
             <argument name="severity" xsi:type="string">S3</argument>
         </arguments>
-- 
GitLab