diff --git a/dev/tests/functional/lib/Magento/Mtf/App/State/State1.php b/dev/tests/functional/lib/Magento/Mtf/App/State/State1.php
index a5422ee0884ce75233a85e3a1d7132a09f56f659..2f76f37abb1fdccc2523b5137834dc458867da88 100644
--- a/dev/tests/functional/lib/Magento/Mtf/App/State/State1.php
+++ b/dev/tests/functional/lib/Magento/Mtf/App/State/State1.php
@@ -7,61 +7,55 @@
 namespace Magento\Mtf\App\State;
 
 use Magento\Mtf\ObjectManager;
-use Magento\Mtf\Fixture\FixtureFactory;
-use Magento\Core\Test\Fixture\ConfigData;
 
 /**
- * Class State1
- * Example Application State class
+ * Example Application State class.
  */
 class State1 extends AbstractState
 {
-    // TODO: Move data set to ConfigData fixture after implement merging fixture xml
     /**
-     * Data set for configuration state
+     * Object Manager.
      *
-     * @var array
+     * @var ObjectManager
      */
-    protected $configDataSet = [
-        'section' => [
-            [
-                'path' => 'cms/wysiwyg/enabled',
-                'scope' => 'default',
-                'scope_id' => 1,
-                'value' => 'disabled',
-            ],
-        ]
-    ];
+    protected $objectManager;
 
     /**
-     * Configuration fixture
+     * Data for configuration state.
      *
-     * @var ConfigData
+     * @var string
      */
-    protected $config;
+    protected $config ='admin_session_lifetime_1_hour, wysiwyg_disabled';
 
     /**
      * @construct
-     * @param FixtureFactory $fixtureFactory
+     * @param ObjectManager $objectManager
      */
-    public function __construct(FixtureFactory $fixtureFactory)
+    public function __construct(ObjectManager $objectManager)
     {
-        $this->config = $fixtureFactory->createByCode('configData', ['data' => $this->configDataSet]);
+        $this->objectManager = $objectManager;
     }
 
     /**
-     * @inheritdoc
+     * Apply set up configuration profile.
+     *
+     * @return void
      */
     public function apply()
     {
         parent::apply();
         if (file_exists(dirname(dirname(dirname(MTF_BP))) . '/app/etc/config.php')) {
-            $this->config->persist();
+            $this->objectManager->create(
+                '\Magento\Config\Test\TestStep\SetupConfigurationStep',
+                ['configData' => $this->config]
+            )->run();
         }
     }
 
     /**
-     * @inheritdoc
+     * Get name of the Application State Profile.
+     *
+     * @return string
      */
     public function getName()
     {
diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/DatepickerElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/DatepickerElement.php
index 06e569057153cfa433bf399daf28b93ecec41f9f..28baaf4ffee6a34e8232aa7c9e0e7634a009ad4e 100644
--- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/DatepickerElement.php
+++ b/dev/tests/functional/lib/Magento/Mtf/Client/Element/DatepickerElement.php
@@ -18,7 +18,7 @@ class DatepickerElement extends SimpleElement
      *
      * @var string
      */
-    protected $datePickerButton = './../img[contains(@class,"ui-datepicker-trigger")]';
+    protected $datePickerButton = './../button[contains(@class,"ui-datepicker-trigger")]';
 
     /**
      * DatePicker block.
diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/GlobalsearchElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/GlobalsearchElement.php
index 9d074a65d2c4a9b92458149c1854af30b7957bb4..e1bcbd54580d6daa2bd2eac1a39657b8dd7c8f24 100644
--- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/GlobalsearchElement.php
+++ b/dev/tests/functional/lib/Magento/Mtf/Client/Element/GlobalsearchElement.php
@@ -97,7 +97,7 @@ class GlobalsearchElement extends SimpleElement
      */
     protected function selectWindow()
     {
-        $this->driver->closeWindow();
+        $this->driver->selectWindow();
     }
 
     /**
diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SuggestElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/SuggestElement.php
index 08ab8d2ce0b4dd59b1cc7af4cc5b950c01cf6e79..c45d902c1bd33858055fea1ae1976a0e8d62b25a 100644
--- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SuggestElement.php
+++ b/dev/tests/functional/lib/Magento/Mtf/Client/Element/SuggestElement.php
@@ -6,6 +6,7 @@
 
 namespace Magento\Mtf\Client\Element;
 
+use Magento\Framework\Webapi\Exception;
 use Magento\Mtf\Client\Locator;
 
 /**
@@ -69,8 +70,13 @@ class SuggestElement extends SimpleElement
             $this->waitResult();
             $searchedItem = $this->find(sprintf($this->resultItem, $value), Locator::SELECTOR_XPATH);
             if ($searchedItem->isVisible()) {
-                $searchedItem->click();
-                break;
+                try {
+                    $searchedItem->click();
+                    break;
+                } catch (\Exception $e) {
+                    // In parallel run on windows change the focus is lost on element
+                    // that causes disappearing of category suggest list.
+                }
             }
         }
     }
diff --git a/dev/tests/functional/tests/app/Magento/AdminNotification/Test/Block/System/Messages.php b/dev/tests/functional/tests/app/Magento/AdminNotification/Test/Block/System/Messages.php
new file mode 100644
index 0000000000000000000000000000000000000000..7faeebb0bcddcfc3f675edfca99b9c507fa4dfae
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/AdminNotification/Test/Block/System/Messages.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\AdminNotification\Test\Block\System;
+
+use Magento\Mtf\Block\Block;
+
+/**
+ * Global messages block.
+ */
+class Messages extends Block
+{
+    /**
+     * Locator for close message block.
+     *
+     * @var string
+     */
+    protected $closePopup = '.ui-dialog-titlebar-close';
+
+    /**
+     * Close popup block.
+     *
+     * @return void
+     */
+    public function closePopup()
+    {
+        if ($this->_rootElement->isVisible()) {
+            $this->_rootElement->find($this->closePopup)->click();
+        }
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Cache.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Cache.php
index c25eac6454d23fcb9ef9b754ce91b03a5a185219..988614620e01b51334c734ea0a2e594487d8611f 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Cache.php
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Cache.php
@@ -8,38 +8,35 @@ namespace Magento\Backend\Test\Block;
 
 use Magento\Mtf\Block\Block;
 use Magento\Mtf\Client\Locator;
-use Magento\Mtf\Factory\Factory;
 
 /**
- * Class Actions
- * Cache actions block
- *
+ * Cache actions block.
  */
 class Cache extends Block
 {
     /**
-     * 'Flush Magento Cache' button
+     * 'Flush Magento Cache' button.
      *
      * @var string
      */
     protected $flushMagentoCacheButton = '[data-ui-id="adminhtml-cache-container-flush-magento-button"]';
 
     /**
-     * 'Flush Cache Storage' button
+     * 'Flush Cache Storage' button.
      *
      * @var string
      */
     protected $flushCacheStorageButton = '[data-ui-id="adminhtml-cache-container-flush-system-button"]';
 
     /**
-     * Selector for messages block
+     * Selector for messages block.
      *
      * @var string
      */
     protected $messagesSelector = '//ancestor::div//div[@id="messages"]';
 
     /**
-     * Messages texts
+     * Messages texts.
      *
      * @var array
      */
@@ -49,7 +46,7 @@ class Cache extends Block
     ];
 
     /**
-     * Flush magento cache
+     * Flush magento cache.
      */
     public function flushMagentoCache()
     {
@@ -57,7 +54,7 @@ class Cache extends Block
     }
 
     /**
-     * Flush cache storage
+     * Flush cache storage.
      */
     public function flushCacheStorage()
     {
@@ -66,7 +63,7 @@ class Cache extends Block
     }
 
     /**
-     * Is storage cache flushed successfully
+     * Is storage cache flushed successfully.
      *
      * @return bool
      */
@@ -76,7 +73,7 @@ class Cache extends Block
     }
 
     /**
-     * Is magento cache flushed successfully
+     * Is magento cache flushed successfully.
      *
      * @return bool
      */
@@ -86,14 +83,15 @@ class Cache extends Block
     }
 
     /**
-     * Get messages block
+     * Get messages block.
      *
-     * @return \Magento\Core\Test\Block\Messages
+     * @return \Magento\Backend\Test\Block\Messages
      */
     protected function getMessagesBlock()
     {
-        return Factory::getBlockFactory()->getMagentoCoreMessages(
-            $this->_rootElement->find($this->messagesSelector, Locator::SELECTOR_XPATH)
+        return $this->blockFactory->create(
+            'Magento\Backend\Test\Block\Messages',
+            ['element' => $this->_rootElement->find($this->messagesSelector, Locator::SELECTOR_XPATH)]
         );
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Menu.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Menu.php
index 1d683f1ef9034e74cf2a979ee795bce1186b2232..efc576650288fa3d288416494047832226fb9d09 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Menu.php
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Menu.php
@@ -3,6 +3,7 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+
 namespace Magento\Backend\Test\Block;
 
 use Magento\Mtf\Block\Block;
@@ -18,21 +19,21 @@ class Menu extends Block
      *
      * @var string
      */
-    protected $mainMenu = './/li/a[span="%s"]';
+    protected $mainMenu = './/li[@role="menu-item"]/a[span="%s"]';
 
     /**
      * Submenu selector.
      *
      * @var string
      */
-    protected $subMenu = './/li[a[span="%s"]]/div[@class="submenu" and @style="display: block;"]';
+    protected $subMenu = './/li[@role="menu-item" and a[span="%s"]]/div[@class="submenu"]';
 
     /**
      * Submenu item selector.
      *
      * @var string
      */
-    protected $subMenuItem = './/a[span="%s"]';
+    protected $subMenuItem = '//li[@role="menu-item"]//a[span="%s"]';
 
     /**
      * Parent menu item.
@@ -89,12 +90,9 @@ class Menu extends Block
         }
         $subMenuSelector = sprintf($this->subMenu, $mainMenu);
         $this->waitForElementVisible($subMenuSelector, Locator::SELECTOR_XPATH);
-        $subMenuItem = $this->_rootElement->find($subMenuSelector, Locator::SELECTOR_XPATH)
-            ->find(sprintf($this->subMenuItem, $subMenu), Locator::SELECTOR_XPATH);
-        if (!$subMenuItem->isVisible()) {
-            throw new \Exception('Submenu item "' . $subMenu . '" is not visible in "' . $mainMenu . '"');
-        }
-        $subMenuItem->click();
+        $subMenuItem = $subMenuSelector . sprintf($this->subMenuItem, $subMenu);
+        $this->waitForElementVisible($subMenuItem, Locator::SELECTOR_XPATH);
+        $this->_rootElement->find($subMenuItem, Locator::SELECTOR_XPATH)->click();
         $this->waitForElementNotVisible($subMenuSelector, Locator::SELECTOR_XPATH);
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Block/Messages.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Messages.php
similarity index 87%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Block/Messages.php
rename to dev/tests/functional/tests/app/Magento/Backend/Test/Block/Messages.php
index c90426413c9254fe321c1ef6adb43ce78cb6b946..043937e8dddf1ed692787b6a1c582afc126ddc1a 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Block/Messages.php
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Messages.php
@@ -4,14 +4,13 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Core\Test\Block;
+namespace Magento\Backend\Test\Block;
 
 use Magento\Mtf\Block\Block;
 use Magento\Mtf\Client\Locator;
 
 /**
- * Global messages block
- *
+ * Global messages block.
  */
 class Messages extends Block
 {
@@ -23,7 +22,7 @@ class Messages extends Block
     protected $successMessage = '[data-ui-id$=message-success]';
 
     /**
-     * Message link
+     * Message link.
      *
      * @var string
      */
@@ -37,7 +36,7 @@ class Messages extends Block
     protected $errorMessage = '[data-ui-id$=message-error]';
 
     /**
-     * Notice message selector
+     * Notice message selector.
      *
      * @var string
      */
@@ -51,7 +50,7 @@ class Messages extends Block
     protected $warningMessage = '[data-ui-id$=message-warning]';
 
     /**
-     * Wait for success message
+     * Wait for success message.
      *
      * @return bool
      */
@@ -61,7 +60,7 @@ class Messages extends Block
     }
 
     /**
-     * Get all success messages which are present on the page
+     * Get all success messages which are present on the page.
      *
      * @return string|array
      */
@@ -79,7 +78,7 @@ class Messages extends Block
     }
 
     /**
-     * Wait for element is visible in the page
+     * Wait for element is visible in the page.
      *
      * @param string $selector
      * @param string $strategy
@@ -97,7 +96,7 @@ class Messages extends Block
     }
 
     /**
-     * Get all error messages which are present on the page
+     * Get all error messages which are present on the page.
      *
      * @return string
      */
@@ -109,7 +108,7 @@ class Messages extends Block
     }
 
     /**
-     * Click on link in the messages which are present on the page
+     * Click on link in the messages which are present on the page.
      *
      * @param string $messageType
      * @param string $linkText
@@ -126,7 +125,7 @@ class Messages extends Block
     }
 
     /**
-     * Check is visible messages
+     * Check is visible messages.
      *
      * @param string $messageType
      * @return bool
@@ -139,7 +138,7 @@ class Messages extends Block
     }
 
     /**
-     * Check for error message
+     * Check for error message.
      *
      * @return bool
      */
@@ -149,7 +148,7 @@ class Messages extends Block
     }
 
     /**
-     * Check for notice message
+     * Check for notice message.
      *
      * @return bool
      */
@@ -159,7 +158,7 @@ class Messages extends Block
     }
 
     /**
-     * Get notice message which is present on the page
+     * Get notice message which is present on the page.
      *
      * @return string
      */
@@ -170,7 +169,7 @@ class Messages extends Block
     }
 
     /**
-     * Get warning message which is present on the page
+     * Get warning message which is present on the page.
      *
      * @return string
      */
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php
index c8d22ae1aae76d807cfee729e2914da97e8eeaca..59a11f436051b6e190f286e7c9f1feb12fa2e50b 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php
@@ -226,7 +226,7 @@ abstract class Grid extends Block
                     : null;
                 $this->_rootElement->find($selector, $strategy, $typifiedElement)->setValue($value);
             } else {
-                throw new \Exception('Such column is absent in the grid or not described yet.');
+                throw new \Exception("Column $key is absent in the grid or not described yet.");
             }
         }
     }
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertStoreCanBeLocalized.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertStoreCanBeLocalized.php
index 754278899b0b42a8e7b1ba59858910351031a8b0..5f4d1fcb73707ea879152f03f20ab4092e9cff67 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertStoreCanBeLocalized.php
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertStoreCanBeLocalized.php
@@ -39,6 +39,12 @@ class AssertStoreCanBeLocalized extends AbstractConstraint
 
         // Check presents income text on index page
         $cmsIndex->open();
+        if ($cmsIndex->getFooterBlock()->isStoreGroupSwitcherVisible()
+            && $cmsIndex->getFooterBlock()->isStoreGroupVisible($store)
+        ) {
+            $cmsIndex->getFooterBlock()->selectStoreGroup($store);
+        }
+
         $cmsIndex->getStoreSwitcherBlock()->selectStoreView($store->getName());
 
         \PHPUnit_Framework_Assert::assertTrue(
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/AdminAuthLogin.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/AdminAuthLogin.php
index 3c258a22f9d864ecfb636d2ebe46c65262f56740..19ee690cba1cf208e20885459ea8fd11e32ffbf6 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/AdminAuthLogin.php
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/AdminAuthLogin.php
@@ -11,7 +11,6 @@ use Magento\Mtf\Page\Page;
 
 /**
  * Login page for backend.
- *
  */
 class AdminAuthLogin extends Page
 {
@@ -76,11 +75,11 @@ class AdminAuthLogin extends Page
     /**
      * Get global messages block.
      *
-     * @return \Magento\Core\Test\Block\Messages
+     * @return \Magento\Backend\Test\Block\Messages
      */
     public function getMessagesBlock()
     {
-        return Factory::getBlockFactory()->getMagentoCoreMessages($this->_browser->find($this->messagesBlock));
+        return Factory::getBlockFactory()->getMagentoBackendMessages($this->_browser->find($this->messagesBlock));
     }
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/AdminCache.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/AdminCache.xml
index 296c0e0183dc7468372fd43b0d5be210501d9459..5db150ec298d51e049428d2fa215ce071eac1287 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/AdminCache.xml
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/AdminCache.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="AdminCache" area="Adminhtml" mca="admin/cache/" module="Magento_Backend">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
     <block name="actionsBlock" class="Magento\Backend\Test\Block\Cache" locator="div.page-actions" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/EditStore.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/EditStore.xml
index c886d07518be0f2f32d43c3d3967c9db2e40233a..19ce0a2e0491d4f5ee532b553110244074dc8942 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/EditStore.xml
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/EditStore.xml
@@ -9,6 +9,6 @@
   <page name="EditStore" area="Adminhtml" mca="admin/system_store/editStore" module="Magento_Backend">
     <block name="formPageActions" class="Magento\Backend\Test\Block\System\Store\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="storeForm" class="Magento\Backend\Test\Block\System\Store\Edit\Form\StoreForm" locator="[id='page:main-container']" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreDelete.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreDelete.xml
index 30718dc11b7c938fe738555946ec2909e73524ff..8de8ea3bc68e61767164763611fb665ed2d0e7e0 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreDelete.xml
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreDelete.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="StoreDelete" area="Adminhtml" mca="admin/system_store/deleteStore" module="Magento_Backend">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="storeForm" class="Magento\Backend\Test\Block\System\Store\Delete\Form" locator="#edit_form" strategy="css selector"/>
     <block name="formPageActions" class="Magento\Backend\Test\Block\System\Store\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreIndex.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreIndex.xml
index f5ced5274cf8274bb7458bb8b0bd8754b6928fa5..09c66219123612b243e9a2910bb43bf24d6a5dc2 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreIndex.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="StoreIndex" area="Adminhtml" mca="admin/system_store" module="Magento_Backend">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="gridPageActions" class="Magento\Backend\Test\Block\System\Store\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="storeGrid" class="Magento\Backend\Test\Block\System\Store\StoreGrid" locator="[id='page:main-container']" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreNew.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreNew.xml
index 85c9b50adec88070ea88d7d5a57888006f847a5b..39d3b9be7c083db91c3f8e1bdf6b112ab42d64a8 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreNew.xml
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreNew.xml
@@ -9,6 +9,6 @@
   <page name="StoreNew" area="Adminhtml" mca="admin/system_store/newStore" module="Magento_Backend">
     <block name="formPageActions" class="Magento\Backend\Test\Block\System\Store\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="storeForm" class="Magento\Backend\Test\Block\System\Store\Edit\Form\StoreForm" locator="[id='page:main-container']" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfig.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfig.xml
index be9dea93665872a526fa05dc2f139f4a29e75c84..9b9a0f3a3093c1bded062e441827c8a43733fc94 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfig.xml
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfig.xml
@@ -9,6 +9,6 @@
   <page name="SystemConfig" area="Adminhtml" mca="admin/system_config" module="Magento_Backend">
     <block name="pageActions" class="Magento\Backend\Test\Block\System\Config\PageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="form" class="Magento\Backend\Test\Block\System\Config\Form" locator="#config-edit-form" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Repository/ConfigData.xml
index b39360695469dc1c64f5274ca2944c50135e4d35..e15167c85b4c67555a17dae5a8170ffc10f6e03c 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="store_information">
             <field path="general/store_information/name" scope="general" scope_id="1" label="" xsi:type="string">Store 1</field>
             <field path="general/store_information/phone" scope="general" scope_id="1" label="" xsi:type="string">1234-123-123</field>
@@ -17,5 +17,9 @@
             <field path="general/store_information/street_line1" scope="general" scope_id="1" label="" xsi:type="string">10441 Jefferson Blvd</field>
             <field path="general/store_information/street_line2" scope="general" scope_id="1" label="" xsi:type="string">Suite 200</field>
         </dataset>
+
+        <dataset name="admin_session_lifetime_1_hour">
+            <field path="admin/security/session_lifetime" scope="default" scope_id="0" label="3600" xsi:type="string">3600</field>
+        </dataset>
     </repository>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleInCategory.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleInCategory.php
index b8229da2cdf165b31effa96e1b5bb21ed56c68f8..30a4b7747c40e86c69e215b9e6fd56e8ec041f02 100644
--- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleInCategory.php
+++ b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleInCategory.php
@@ -29,14 +29,14 @@ class AssertBundleInCategory extends AssertProductInCategory
         /** @var BundleProduct $bundle */
         $priceData = $bundle->getDataFieldConfig('price')['source']->getPreset();
         //Price from/to verification
-        $priceBlock = $catalogCategoryView->getListProductBlock()->getProductPriceBlock($bundle->getName());
+        $priceBlock = $catalogCategoryView->getListProductBlock()->getProductItem($bundle)->getPriceBlock();
 
         if ($bundle->hasData('special_price') || $bundle->hasData('group_price')) {
-            $priceLow = $priceBlock->getFinalPrice();
+            $priceLow = $priceBlock->getPrice();
         } else {
             $priceLow = ($bundle->getPriceView() == 'Price Range')
                 ? $priceBlock->getPriceFrom()
-                : $priceBlock->getRegularPrice();
+                : $priceBlock->getPrice();
         }
 
         \PHPUnit_Framework_Assert::assertEquals(
diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundlePriceView.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundlePriceView.php
index 0e21f45ab6dae7b53210214deeccd15a67b4d2ee..e5323013d26b59b083e9d921919975575b534b71 100644
--- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundlePriceView.php
+++ b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundlePriceView.php
@@ -50,9 +50,9 @@ class AssertBundlePriceView extends AbstractConstraint
         $priceBlock = $catalogProductView->getViewBlock()->getPriceBlock();
 
         if ($product->hasData('special_price') || $product->hasData('group_price')) {
-            $priceLow = $priceBlock->getFinalPrice();
+            $priceLow = $priceBlock->getPrice();
         } else {
-            $priceLow = ($priceView == 'Price Range') ? $priceBlock->getPriceFrom() : $priceBlock->getRegularPrice();
+            $priceLow = ($priceView == 'Price Range') ? $priceBlock->getPriceFrom() : $priceBlock->getPrice();
         }
 
         \PHPUnit_Framework_Assert::assertEquals(
diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductPage.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductPage.php
index 4f17013b8b4c9dcddc0ba2f9bb6ac455c9fa163a..e6d1d24ff1e6989b8d6f44c83752a176d0358ecf 100644
--- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductPage.php
+++ b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductPage.php
@@ -27,9 +27,9 @@ class AssertBundleProductPage extends AssertProductPage
         $priceBlock = $this->productView->getPriceBlock();
 
         if ($this->product->hasData('special_price') || $this->product->hasData('group_price')) {
-            $priceLow = $priceBlock->getFinalPrice();
+            $priceLow = $priceBlock->getPrice();
         } else {
-            $priceLow = ($priceView == 'Price Range') ? $priceBlock->getPriceFrom() : $priceBlock->getRegularPrice();
+            $priceLow = ($priceView == 'Price Range') ? $priceBlock->getPriceFrom() : $priceBlock->getPrice();
         }
 
         $errors = [];
diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Fixture/BundleProduct/Price.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Fixture/BundleProduct/Price.php
index 1738c4cad0a2cb226ee1f853aa377063e8561555..a30b316e1e8901d96241ba11f3a7547a5f4b184e 100644
--- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Fixture/BundleProduct/Price.php
+++ b/dev/tests/functional/tests/app/Magento/Bundle/Test/Fixture/BundleProduct/Price.php
@@ -119,9 +119,9 @@ class Price implements FixtureInterface
                 'cart_price' => '80.00',
             ],
             // Bundle fixed
-            'fixed-1' => [
-                'price_from' => '1.00',
-                'price_to' => '10.00',
+            'fixed-10' => [
+                'price_from' => '10.00',
+                'price_to' => '100.00',
                 'cart_price' => '80.00',
             ],
             'fixed-15' => [
diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml
index e1a8b92644875b5ba5f8e9b55398037f616751ae..51d270f4d41e0230b4b54570806b8faa5e0080f3 100644
--- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml
@@ -6,625 +6,343 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Bundle\Test\TestCase\CreateBundleProductEntityTest">
-    <variation name="CreateBundleProductEntityTestVariation1" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create default bundle with dynamic options</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">BundleProduct %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">-</data>
-      <data name="product/data/sku" xsi:type="string">bundle_sku_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <data name="product/data/price_type" xsi:type="string">-</data>
-      <data name="product/data/price/value" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">-</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/weight_type" xsi:type="string">-</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/description" xsi:type="string">Bundle Product Dynamic Required</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">No</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">No</data>
-      <data name="product/data/shipment_type" xsi:type="string">-</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">default_dynamic</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">-</data>
-      <data name="product/data/gift_message_available" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleItemsOnProductPage"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation2" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create offline dynamic bundle with dynamic price and out of stock</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">BundleProduct %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">Fixed</data>
-      <data name="product/data/sku" xsi:type="string">bundle_sku_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">Product offline</data>
-      <data name="product/data/price_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/price/value" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">-</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
-      <data name="product/data/weight_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">category_%isolation%</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/shipment_type" xsi:type="string">Separately</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">default_dynamic</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">No</data>
-      <data name="product/data/gift_message_available" xsi:type="string">Yes</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductNotSearchableBySku"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation3" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create dynamic bundle with price randle and all types options</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">BundleProduct %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/sku" xsi:type="string">bundle_sku_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">Product online</data>
-      <data name="product/data/price_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/price/value" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">dynamic-200</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/weight_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">category_%isolation%</data>
-      <data name="product/data/description" xsi:type="string">Bundle Product Dynamic</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">Price Range</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/shipment_type" xsi:type="string">Together</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">all_types_dynamic</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">all_types_bundle_options</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">No</data>
-      <data name="product/data/gift_message_available" xsi:type="string">Yes</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleItemsOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceView"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceType"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation4" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create fixed bundle</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">BundleProduct %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">Fixed</data>
-      <data name="product/data/sku" xsi:type="string">bundle_sku_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <data name="product/data/price_type" xsi:type="string">Fixed</data>
-      <data name="product/data/price/value" xsi:type="string">10</data>
-      <data name="product/data/price/preset" xsi:type="string">fixed-15</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/weight_type" xsi:type="string">Fixed</data>
-      <data name="product/data/weight" xsi:type="string">10</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/description" xsi:type="string">Bundle Product Fixed Required</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/shipment_type" xsi:type="string">-</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">default_fixed</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">-</data>
-      <data name="product/data/gift_message_available" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductPage"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleItemsOnProductPage"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation5" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create fixed bundle with all types options</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">BundleProduct %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">Fixed</data>
-      <data name="product/data/sku" xsi:type="string">bundle_sku_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">Product online</data>
-      <data name="product/data/price_type" xsi:type="string">Fixed</data>
-      <data name="product/data/price/value" xsi:type="string">100</data>
-      <data name="product/data/price/preset" xsi:type="string">fixed-24</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/weight_type" xsi:type="string">Fixed</data>
-      <data name="product/data/weight" xsi:type="string">10</data>
-      <data name="product/data/category" xsi:type="string">category_%isolation%</data>
-      <data name="product/data/description" xsi:type="string">Bundle Product Fixed</data>
-      <data name="product/data/group_price/preset" xsi:type="string">default</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">As Low as</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/shipment_type" xsi:type="string">Separately</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">all_types_fixed</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">all_types_bundle_fixed_and_custom_options</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">all_types</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">No</data>
-      <data name="product/data/gift_message_available" xsi:type="string">No</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertGroupedPriceOnBundleProductPage"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleItemsOnProductPage"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceView"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceType"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation6" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="issue" xsi:type="string">Bug: MAGETWO-33071</data>
-      <data name="description" xsi:type="string">Create fixed bundle which is out of stock</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">BundleProduct %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">Fixed</data>
-      <data name="product/data/sku" xsi:type="string">bundle_sku_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">Product online</data>
-      <data name="product/data/price_type" xsi:type="string">Fixed</data>
-      <data name="product/data/price/value" xsi:type="string">10</data>
-      <data name="product/data/price/preset" xsi:type="string">fixed-1</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
-      <data name="product/data/weight_type" xsi:type="string">Fixed</data>
-      <data name="product/data/weight" xsi:type="string">10</data>
-      <data name="product/data/category" xsi:type="string">category_%isolation%</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">10</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">m/d/Y</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">m/d/Y +3 days</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">Price Range</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">No</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">Yes</data>
-      <data name="product/data/shipment_type" xsi:type="string">Together</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">with_not_required_options</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">with_not_required_options</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">No</data>
-      <data name="product/data/gift_message_available" xsi:type="string">No</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductForm"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceView"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation7" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">BundleProduct %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/sku" xsi:type="string">bundle_sku_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <data name="product/data/price_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/price/value" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">dynamic-50</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/weight_type" xsi:type="string">Fixed</data>
-      <data name="product/data/weight" xsi:type="string">10</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">default</data>
-      <data name="product/data/price_view" xsi:type="string">As Low as</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">No</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">No</data>
-      <data name="product/data/shipment_type" xsi:type="string">Together</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">default_dynamic</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Search</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">-</data>
-      <data name="product/data/gift_message_available" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductPage"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleItemsOnProductPage"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertTierPriceOnBundleProductPage"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation8" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create dynamic bundle with special price</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">Bundle Dynamic %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/sku" xsi:type="string">sku_bundle_dynamic_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <data name="product/data/price_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/price/value" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">dynamic-8</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/weight_type" xsi:type="string">-</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">20</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/shipment_type" xsi:type="string">-</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">default_dynamic</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">-</data>
-      <data name="product/data/gift_message_available" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleInCategory"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation9" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create dynamic bundle with group price</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">Bundle Dynamic %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/sku" xsi:type="string">sku_bundle_dynamic_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <data name="product/data/price_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/price/value" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">dynamic-32</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/weight_type" xsi:type="string">-</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">MAGETWO-23061</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/shipment_type" xsi:type="string">-</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">default_dynamic</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">-</data>
-      <data name="product/data/gift_message_available" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleInCategory"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceView"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceType"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation10" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create dynamic bundle</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">Bundle Dynamic %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/sku" xsi:type="string">sku_bundle_dynamic_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <data name="product/data/price_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/price/value" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">dynamic-40</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/weight_type" xsi:type="string">-</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/shipment_type" xsi:type="string">-</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">default_dynamic</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">-</data>
-      <data name="product/data/gift_message_available" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleInCategory"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceView"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceType"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation11" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create fixed product with checkout first option</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">Bundle Fixed %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">Fixed</data>
-      <data name="product/data/sku" xsi:type="string">sku_bundle_fixed_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <data name="product/data/price_type" xsi:type="string">Fixed</data>
-      <data name="product/data/price/value" xsi:type="string">110</data>
-      <data name="product/data/price/preset" xsi:type="string">fixed-115</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/weight_type" xsi:type="string">-</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/shipment_type" xsi:type="string">-</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">second</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">with_custom_options_1</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">drop_down_with_one_option_fixed_price</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">catalogProductSimple::with_two_custom_option,catalogProductSimple::with_all_custom_option</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">-</data>
-      <data name="product/data/gift_message_available" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleInCategory"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceView"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceType"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertProductCustomOptionsOnBundleProductPage"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation12" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create fixed product with checkout second option</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">Bundle Fixed %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">Fixed</data>
-      <data name="product/data/sku" xsi:type="string">sku_bundle_fixed_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <data name="product/data/price_type" xsi:type="string">Fixed</data>
-      <data name="product/data/price/value" xsi:type="string">110</data>
-      <data name="product/data/price/preset" xsi:type="string">fixed-159</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/weight_type" xsi:type="string">-</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/shipment_type" xsi:type="string">-</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">second</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">with_custom_options_2</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">drop_down_with_one_option_percent_price</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">-</data>
-      <data name="product/data/gift_message_available" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleInCategory"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceView"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceType"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation13" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create default dynamic bundle</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">Bundle Dynamic %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/sku" xsi:type="string">sku_bundle_dynamic_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <data name="product/data/price_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/price/value" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">-</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/weight_type" xsi:type="string">-</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/shipment_type" xsi:type="string">-</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">default_dynamic</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">-</data>
-      <data name="product/data/gift_message_available" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation14" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create default fixed bundle</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">Bundle Fixed %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">Fixed</data>
-      <data name="product/data/sku" xsi:type="string">sku_bundle_fixed_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <data name="product/data/price_type" xsi:type="string">Fixed</data>
-      <data name="product/data/price/value" xsi:type="string">10</data>
-      <data name="product/data/price/preset" xsi:type="string">-</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/weight_type" xsi:type="string">-</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/shipment_type" xsi:type="string">-</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">second</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">-</data>
-      <data name="product/data/gift_message_available" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation15" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">MAGETWO-12622: Create Bundle (fixed) Product and Assign it to Category</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">Bundle Fixed %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">Fixed</data>
-      <data name="product/data/sku" xsi:type="string">sku_bundle_fixed_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <data name="product/data/price_type" xsi:type="string">Fixed</data>
-      <data name="product/data/price/value" xsi:type="string">100</data>
-      <data name="product/data/price/preset" xsi:type="string">fixed-100</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/weight_type" xsi:type="string">Fixed</data>
-      <data name="product/data/weight" xsi:type="string">1</data>
-      <data name="product/data/category" xsi:type="string">category_%isolation%</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/shipment_type" xsi:type="string">Together</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">two_options_with_fixed_and_percent_prices</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">-</data>
-      <data name="product/data/gift_message_available" xsi:type="string">-</data>
-      <data name="tag" xsi:type="string">test_type:acceptance_test</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" next="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" next="Magento\Bundle\Test\Constraint\AssertBundleInCategory" prev="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleInCategory" next="Magento\Bundle\Test\Constraint\AssertBundleProductPage" prev="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductPage" prev="Magento\Bundle\Test\Constraint\AssertBundleInCategory"/>
-    </variation>
-    <variation name="CreateBundleProductEntityTestVariation16" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">MAGETWO-12702: Create Bundle (dynamic) Product and Assign it to the Category</data>
-      <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">Bundle Dynamic %isolation%</data>
-      <data name="product/data/sku_type" xsi:type="string">-</data>
-      <data name="product/data/sku" xsi:type="string">sku_bundle_dynamic_%isolation%</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <data name="product/data/price_type" xsi:type="string">Dynamic</data>
-      <data name="product/data/price/value" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">dynamic-560</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/weight_type" xsi:type="string">-</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">category_%isolation%</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/special_from_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/special_to_date/pattern" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price_view" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/shipment_type" xsi:type="string">Together</data>
-      <data name="product/data/bundle_selections/preset" xsi:type="string">one_options_assigned_simple_big_qty</data>
-      <data name="product/data/bundle_selections/products" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/use_config_gift_message_available" xsi:type="string">-</data>
-      <data name="product/data/gift_message_available" xsi:type="string">-</data>
-      <data name="tag" xsi:type="string">test_type:acceptance_test</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" next="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" next="Magento\Bundle\Test\Constraint\AssertBundleInCategory" prev="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleInCategory" next="Magento\Bundle\Test\Constraint\AssertBundleProductPage" prev="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductPage" prev="Magento\Bundle\Test\Constraint\AssertBundleInCategory"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Bundle\Test\TestCase\CreateBundleProductEntityTest">
+        <variation name="CreateBundleProductEntityTestVariation1">
+            <data name="description" xsi:type="string">Create default bundle with dynamic options</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">BundleProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">bundle_sku_%isolation%</data>
+            <data name="product/data/description" xsi:type="string">Bundle Product Dynamic Required</data>
+            <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">No</data>
+            <data name="product/data/stock_data/manage_stock" xsi:type="string">No</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">default_dynamic</data>
+            <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleItemsOnProductPage" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation2">
+            <data name="description" xsi:type="string">Create offline dynamic bundle with dynamic price and out of stock</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">BundleProduct %isolation%</data>
+            <data name="product/data/sku_type" xsi:type="string">Fixed</data>
+            <data name="product/data/sku" xsi:type="string">bundle_sku_%isolation%</data>
+            <data name="product/data/status" xsi:type="string">Product offline</data>
+            <data name="product/data/price_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
+            <data name="product/data/weight_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/category" xsi:type="string">category_%isolation%</data>
+            <data name="product/data/shipment_type" xsi:type="string">Separately</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">default_dynamic</data>
+            <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
+            <data name="product/data/use_config_gift_message_available" xsi:type="string">No</data>
+            <data name="product/data/gift_message_available" xsi:type="string">Yes</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductNotSearchableBySku" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation3">
+            <data name="description" xsi:type="string">Create dynamic bundle with price randle and all types options</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">BundleProduct %isolation%</data>
+            <data name="product/data/sku_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/sku" xsi:type="string">bundle_sku_%isolation%</data>
+            <data name="product/data/status" xsi:type="string">Product online</data>
+            <data name="product/data/price_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/price/preset" xsi:type="string">dynamic-200</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/weight_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/category" xsi:type="string">category_%isolation%</data>
+            <data name="product/data/description" xsi:type="string">Bundle Product Dynamic</data>
+            <data name="product/data/price_view" xsi:type="string">Price Range</data>
+            <data name="product/data/shipment_type" xsi:type="string">Together</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">all_types_dynamic</data>
+            <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">all_types_bundle_options</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
+            <data name="product/data/use_config_gift_message_available" xsi:type="string">No</data>
+            <data name="product/data/gift_message_available" xsi:type="string">Yes</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleItemsOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceView" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceType" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation4">
+            <data name="description" xsi:type="string">Create fixed bundle</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">BundleProduct %isolation%</data>
+            <data name="product/data/sku_type" xsi:type="string">Fixed</data>
+            <data name="product/data/sku" xsi:type="string">bundle_sku_%isolation%</data>
+            <data name="product/data/price_type" xsi:type="string">Fixed</data>
+            <data name="product/data/price/value" xsi:type="string">10</data>
+            <data name="product/data/price/preset" xsi:type="string">fixed-15</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
+            <data name="product/data/weight_type" xsi:type="string">Fixed</data>
+            <data name="product/data/weight" xsi:type="string">10</data>
+            <data name="product/data/description" xsi:type="string">Bundle Product Fixed Required</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">default_fixed</data>
+            <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductPage" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleItemsOnProductPage" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation5">
+            <data name="issue" xsi:type="string">Bug: MAGETWO-35342</data>
+            <data name="description" xsi:type="string">Create fixed bundle with all types options</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">BundleProduct %isolation%</data>
+            <data name="product/data/sku_type" xsi:type="string">Fixed</data>
+            <data name="product/data/sku" xsi:type="string">bundle_sku_%isolation%</data>
+            <data name="product/data/status" xsi:type="string">Product online</data>
+            <data name="product/data/price_type" xsi:type="string">Fixed</data>
+            <data name="product/data/price/value" xsi:type="string">100</data>
+            <data name="product/data/price/preset" xsi:type="string">fixed-24</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/weight_type" xsi:type="string">Fixed</data>
+            <data name="product/data/weight" xsi:type="string">10</data>
+            <data name="product/data/category" xsi:type="string">category_%isolation%</data>
+            <data name="product/data/description" xsi:type="string">Bundle Product Fixed</data>
+            <data name="product/data/group_price/preset" xsi:type="string">default</data>
+            <data name="product/data/price_view" xsi:type="string">As Low as</data>
+            <data name="product/data/shipment_type" xsi:type="string">Separately</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">all_types_fixed</data>
+            <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">all_types_bundle_fixed_and_custom_options</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">all_types</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
+            <data name="product/data/use_config_gift_message_available" xsi:type="string">No</data>
+            <data name="product/data/gift_message_available" xsi:type="string">No</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertGroupedPriceOnBundleProductPage" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleItemsOnProductPage" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceView" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceType" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation6">
+            <data name="description" xsi:type="string">Create fixed bundle which is out of stock</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">BundleProduct %isolation%</data>
+            <data name="product/data/sku_type" xsi:type="string">Fixed</data>
+            <data name="product/data/sku" xsi:type="string">bundle_sku_%isolation%</data>
+            <data name="product/data/status" xsi:type="string">Product online</data>
+            <data name="product/data/price_type" xsi:type="string">Fixed</data>
+            <data name="product/data/price/value" xsi:type="string">10</data>
+            <data name="product/data/price/preset" xsi:type="string">fixed-10</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
+            <data name="product/data/weight_type" xsi:type="string">Fixed</data>
+            <data name="product/data/weight" xsi:type="string">10</data>
+            <data name="product/data/category" xsi:type="string">category_%isolation%</data>
+            <data name="product/data/price_view" xsi:type="string">Price Range</data>
+            <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">No</data>
+            <data name="product/data/stock_data/manage_stock" xsi:type="string">Yes</data>
+            <data name="product/data/shipment_type" xsi:type="string">Together</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">with_not_required_options</data>
+            <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">with_not_required_options</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog</data>
+            <data name="product/data/use_config_gift_message_available" xsi:type="string">No</data>
+            <data name="product/data/gift_message_available" xsi:type="string">No</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceView" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation7">
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">BundleProduct %isolation%</data>
+            <data name="product/data/sku_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/sku" xsi:type="string">bundle_sku_%isolation%</data>
+            <data name="product/data/price_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/price/preset" xsi:type="string">dynamic-50</data>
+            <data name="product/data/weight_type" xsi:type="string">Fixed</data>
+            <data name="product/data/weight" xsi:type="string">10</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">default</data>
+            <data name="product/data/price_view" xsi:type="string">As Low as</data>
+            <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">No</data>
+            <data name="product/data/stock_data/manage_stock" xsi:type="string">No</data>
+            <data name="product/data/shipment_type" xsi:type="string">Together</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">default_dynamic</data>
+            <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
+            <data name="product/data/visibility" xsi:type="string">Search</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductPage" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleItemsOnProductPage" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertTierPriceOnBundleProductPage" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation8">
+            <data name="description" xsi:type="string">Create dynamic bundle with special price</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">Bundle Dynamic %isolation%</data>
+            <data name="product/data/sku_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/sku" xsi:type="string">sku_bundle_dynamic_%isolation%</data>
+            <data name="product/data/price_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/price/preset" xsi:type="string">dynamic-8</data>
+            <data name="product/data/special_price" xsi:type="string">20</data>
+            <data name="product/data/special_from_date/pattern" xsi:type="string">m/d/Y</data>
+            <data name="product/data/special_to_date/pattern" xsi:type="string">m/d/Y +3 days</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">default_dynamic</data>
+            <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleInCategory" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation9">
+            <data name="description" xsi:type="string">Create dynamic bundle with group price</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">Bundle Dynamic %isolation%</data>
+            <data name="product/data/sku_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/sku" xsi:type="string">sku_bundle_dynamic_%isolation%</data>
+            <data name="product/data/price_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/price/preset" xsi:type="string">dynamic-32</data>
+            <data name="product/data/group_price/preset" xsi:type="string">MAGETWO-23061</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">default_dynamic</data>
+            <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleInCategory" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceView" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceType" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation10">
+            <data name="tag" xsi:type="string">to_maintain:yes</data>
+            <data name="description" xsi:type="string">Create dynamic bundle</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">Bundle Dynamic %isolation%</data>
+            <data name="product/data/sku_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/sku" xsi:type="string">sku_bundle_dynamic_%isolation%</data>
+            <data name="product/data/price_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/price/preset" xsi:type="string">dynamic-40</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">default_dynamic</data>
+            <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleInCategory" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceView" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceType" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation11">
+            <data name="description" xsi:type="string">Create fixed product with checkout first option</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">Bundle Fixed %isolation%</data>
+            <data name="product/data/sku_type" xsi:type="string">Fixed</data>
+            <data name="product/data/sku" xsi:type="string">sku_bundle_fixed_%isolation%</data>
+            <data name="product/data/price_type" xsi:type="string">Fixed</data>
+            <data name="product/data/price/value" xsi:type="string">110</data>
+            <data name="product/data/price/preset" xsi:type="string">fixed-115</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">second</data>
+            <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">with_custom_options_1</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">drop_down_with_one_option_fixed_price</data>
+            <data name="product/data/custom_options/import_products" xsi:type="string">catalogProductSimple::with_two_custom_option,catalogProductSimple::with_all_custom_option</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleInCategory" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceView" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceType" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertProductCustomOptionsOnBundleProductPage" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation12">
+            <data name="description" xsi:type="string">Create fixed product with checkout second option</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">Bundle Fixed %isolation%</data>
+            <data name="product/data/sku_type" xsi:type="string">Fixed</data>
+            <data name="product/data/sku" xsi:type="string">sku_bundle_fixed_%isolation%</data>
+            <data name="product/data/price_type" xsi:type="string">Fixed</data>
+            <data name="product/data/price/value" xsi:type="string">110</data>
+            <data name="product/data/price/preset" xsi:type="string">fixed-159</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">second</data>
+            <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">with_custom_options_2</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">drop_down_with_one_option_percent_price</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleInCategory" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceView" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundlePriceType" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation13">
+            <data name="description" xsi:type="string">Create default dynamic bundle</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">Bundle Dynamic %isolation%</data>
+            <data name="product/data/sku_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/sku" xsi:type="string">sku_bundle_dynamic_%isolation%</data>
+            <data name="product/data/price_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">default_dynamic</data>
+            <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation14">
+            <data name="description" xsi:type="string">Create default fixed bundle</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">Bundle Fixed %isolation%</data>
+            <data name="product/data/sku_type" xsi:type="string">Fixed</data>
+            <data name="product/data/sku" xsi:type="string">sku_bundle_fixed_%isolation%</data>
+            <data name="product/data/price_type" xsi:type="string">Fixed</data>
+            <data name="product/data/price/value" xsi:type="string">10</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">second</data>
+            <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation15">
+            <data name="description" xsi:type="string">MAGETWO-12622: Create Bundle (fixed) Product and Assign it to Category</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">Bundle Fixed %isolation%</data>
+            <data name="product/data/sku_type" xsi:type="string">Fixed</data>
+            <data name="product/data/sku" xsi:type="string">sku_bundle_fixed_%isolation%</data>
+            <data name="product/data/price_type" xsi:type="string">Fixed</data>
+            <data name="product/data/price/value" xsi:type="string">100</data>
+            <data name="product/data/price/preset" xsi:type="string">fixed-100</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/weight_type" xsi:type="string">Fixed</data>
+            <data name="product/data/weight" xsi:type="string">1</data>
+            <data name="product/data/category" xsi:type="string">category_%isolation%</data>
+            <data name="product/data/shipment_type" xsi:type="string">Together</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">two_options_with_fixed_and_percent_prices</data>
+            <data name="tag" xsi:type="string">test_type:acceptance_test</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleInCategory" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductPage" />
+        </variation>
+        <variation name="CreateBundleProductEntityTestVariation16">
+            <data name="description" xsi:type="string">MAGETWO-12702: Create Bundle (dynamic) Product and Assign it to the Category</data>
+            <data name="product/data/url_key" xsi:type="string">bundle-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">Bundle Dynamic %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">sku_bundle_dynamic_%isolation%</data>
+            <data name="product/data/price_type" xsi:type="string">Dynamic</data>
+            <data name="product/data/price/preset" xsi:type="string">dynamic-560</data>
+            <data name="product/data/category" xsi:type="string">category_%isolation%</data>
+            <data name="product/data/shipment_type" xsi:type="string">Together</data>
+            <data name="product/data/bundle_selections/preset" xsi:type="string">one_options_assigned_simple_big_qty</data>
+            <data name="tag" xsi:type="string">test_type:acceptance_test</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleInCategory" />
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductPage" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/AbstractPriceBlock.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/AbstractPriceBlock.php
new file mode 100644
index 0000000000000000000000000000000000000000..31c1f6830e55a7c75864ae035acfd346bfd37d45
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/AbstractPriceBlock.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Catalog\Test\Block;
+
+use Magento\Mtf\Block\Block;
+use Magento\Mtf\Client\Locator;
+use Magento\Mtf\Client\Element\SimpleElement;
+
+/**
+ * Base Price Block.
+ */
+abstract class AbstractPriceBlock extends Block
+{
+    /**
+     * Mapping for different type of price.
+     *
+     * @var array
+     */
+    protected $mapTypePrices = [];
+
+    /**
+     * Get specify type price.
+     *
+     * @param string $type
+     * @param string $currency [optional]
+     * @return string|null
+     */
+    protected function getTypePrice($type, $currency = '$')
+    {
+        $typePriceElement = $this->getTypePriceElement($type);
+        return $typePriceElement->isVisible() ? $this->trimPrice($typePriceElement->getText(), $currency) : null;
+    }
+
+    /**
+     * Get specify type price element.
+     *
+     * @param string $type
+     * @return SimpleElement
+     */
+    protected function getTypePriceElement($type)
+    {
+        $mapTypePrice = $this->mapTypePrices[$type];
+        return $this->_rootElement->find(
+            $mapTypePrice['selector'],
+            isset($mapTypePrice['strategy']) ? $mapTypePrice['strategy'] : Locator::SELECTOR_CSS
+        );
+    }
+
+    /**
+     * Escape currency and separator for price.
+     *
+     * @param string $price
+     * @param string $currency
+     * @return string
+     */
+    protected function trimPrice($price, $currency = '$')
+    {
+        return str_replace([',', $currency], '', $price);
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/AttributeForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/AttributeForm.php
index edd4210f30c01b5f9cb0193f10535b1e3db55a6d..78e8c9965593fd9adc49af1d4885e8320472dab5 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/AttributeForm.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/AttributeForm.php
@@ -81,6 +81,7 @@ class AttributeForm extends FormTabs
             }
         );
         parent::fill($fixture, $element);
+        $this->browser->switchToFrame();
     }
 
     /**
@@ -112,5 +113,6 @@ class AttributeForm extends FormTabs
     public function saveAttributeForm()
     {
         $this->browser->find($this->saveButton)->click();
+        $this->browser->switchToFrame();
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Tab/Attributes/Search.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Tab/Attributes/Search.php
index fac0fe3f9fb44bf1fbd89011621b72ab44530555..408d81f180988082640513b174fab943989efa4e 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Tab/Attributes/Search.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Tab/Attributes/Search.php
@@ -8,36 +8,43 @@ namespace Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Tab\Attributes;
 
 use Magento\Mtf\Client\Element\SuggestElement;
 use Magento\Catalog\Test\Fixture\CatalogProductAttribute;
+use Magento\Mtf\Client\Locator;
 
 /**
- * Class FormAttributeSearch
- * Form Attribute Search on Product page
+ * Form Attribute Search on Product page.
  */
 class Search extends SuggestElement
 {
     /**
-     * Attribute Set locator
+     * Attributes locator.
      *
      * @var string
      */
     protected $value = '.action-toggle > span';
 
     /**
-     * Attribute Set button
+     * Attributes button.
      *
      * @var string
      */
     protected $actionToggle = '.action-toggle';
 
     /**
-     * Search attribute result locator
+     * Saerch result dropdown.
      *
      * @var string
      */
-    protected $searchResult = '.mage-suggest-dropdown .ui-corner-all';
+    protected $searchResult = '.mage-suggest-dropdown';
 
     /**
-     * Set value
+     * Searched attribute result locator.
+     *
+     * @var string
+     */
+    protected $searchArrtibute = './/a[text()="%s"]';
+
+    /**
+     * Set value.
      *
      * @param string $value
      * @return void
@@ -49,7 +56,7 @@ class Search extends SuggestElement
     }
 
     /**
-     * Get value
+     * Get value.
      *
      * @return string
      */
@@ -59,7 +66,7 @@ class Search extends SuggestElement
     }
 
     /**
-     * Checking not exist attribute in search result
+     * Checking not exist attribute in search result.
      *
      * @param CatalogProductAttribute $productAttribute
      * @return bool
@@ -69,10 +76,24 @@ class Search extends SuggestElement
         $this->find($this->actionToggle)->click();
         $this->find($this->suggest)->setValue($productAttribute->getFrontendLabel());
         $this->waitResult();
-        if ($this->find($this->searchResult)->getText() == $productAttribute->getFrontendLabel()) {
-            return true;
-        }
+        $attributeSelector = sprintf($this->searchArrtibute, $productAttribute->getFrontendLabel());
+        return $this->find($this->searchResult)->find($attributeSelector, Locator::SELECTOR_XPATH)->isVisible();
+    }
 
-        return false;
+    /**
+     * Wait for search result is visible.
+     *
+     * @return void
+     */
+    public function waitResult()
+    {
+        $browser = $this;
+        $selector = $this->searchResult;
+        $browser->waitUntil(
+            function () use ($browser, $selector) {
+                $element = $browser->find($selector);
+                return $element->isVisible() ? true : null;
+            }
+        );
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/ProductForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/ProductForm.php
index 699bc721e7d1ea84b21ebb145d548ad0e8eee2aa..988821e4ab89eb152ae29da2bc8b94b13c9af891 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/ProductForm.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/ProductForm.php
@@ -15,7 +15,6 @@ use Magento\Mtf\Client\Element\SimpleElement;
 use Magento\Catalog\Test\Block\Adminhtml\Product\Edit\ProductTab;
 use Magento\Mtf\Client\Element;
 use Magento\Mtf\Client\Locator;
-use Magento\Mtf\Fixture\DataFixture;
 use Magento\Mtf\Fixture\FixtureInterface;
 use Magento\Mtf\Fixture\InjectableFixture;
 use Magento\Catalog\Test\Fixture\Category;
@@ -100,6 +99,7 @@ class ProductForm extends FormTabs
      */
     public function fill(FixtureInterface $product, SimpleElement $element = null, FixtureInterface $category = null)
     {
+        $this->waitPageToLoad();
         $dataConfig = $product->getDataConfig();
         $typeId = isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null;
 
@@ -160,6 +160,18 @@ class ProductForm extends FormTabs
         return parent::getData($fixture, $element);
     }
 
+    /**
+     * Open tab.
+     *
+     * @param string $tabName
+     * @return Tab
+     */
+    public function openTab($tabName)
+    {
+        $this->showAdvancedSettings();
+        return parent::openTab($tabName);
+    }
+
     /**
      * Show Advanced Setting.
      *
@@ -175,15 +187,27 @@ class ProductForm extends FormTabs
     }
 
     /**
-     * Open tab.
+     * Wait page to load.
      *
-     * @param string $tabName
-     * @return Tab
+     * @return void
      */
-    public function openTab($tabName)
+    protected function waitPageToLoad()
     {
-        $this->showAdvancedSettings();
-        return parent::openTab($tabName);
+        $browser = $this->browser;
+        $element = $this->advancedSettingContent;
+        $advancedSettingTrigger = $this->advancedSettingTrigger;
+
+        $this->_rootElement->waitUntil(
+            function () use ($browser, $advancedSettingTrigger) {
+                return $browser->find($advancedSettingTrigger)->isVisible() == true ? true : null;
+            }
+        );
+
+        $this->_rootElement->waitUntil(
+            function () use ($browser, $element) {
+                return $browser->find($element)->isVisible() == false ? true : null;
+            }
+        );
     }
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/ListCompare.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/ListCompare.php
index 22c7b8213d29da77df1d519a31ef2cf599554d05..dd8cc1f6689c653f5bf5f8373593e002c056e095 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/ListCompare.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/ListCompare.php
@@ -199,9 +199,9 @@ class ListCompare extends Block
     public function removeAllProducts()
     {
         $this->waitForElementVisible(sprintf($this->removeButton, 1), Locator::SELECTOR_XPATH);
-        /** @var \Magento\Core\Test\Block\Messages $messageBlock */
+        /** @var \Magento\Backend\Test\Block\Messages $messageBlock */
         $messageBlock = $this->blockFactory->create(
-            'Magento\Core\Test\Block\Messages',
+            'Magento\Backend\Test\Block\Messages',
             ['element' => $this->browser->find($this->messageBlock)]
         );
 
@@ -236,17 +236,19 @@ class ListCompare extends Block
 
     /**
      * Get empty message on compare product block.
-     * Returns message absence of compared products or false, if the message isn't visible.
      *
-     * @return string|bool
+     * @return string
      */
     public function getEmptyMessage()
     {
-        $this->waitForElementVisible($this->isEmpty);
+        $rootElement = $this->_rootElement;
+        $selector = $this->isEmpty;
+        $this->_rootElement->waitUntil(
+            function () use ($rootElement, $selector) {
+                return $rootElement->find($selector)->isVisible() ? true : null;
+            }
+        );
         $isEmpty = $this->_rootElement->find($this->isEmpty);
-        if ($isEmpty->isVisible()) {
-            return $isEmpty->getText();
-        }
-        return false;
+        return $isEmpty->getText();
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/Sidebar.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/Sidebar.php
index 89d6ffe88b1ca4965507e43312608fc161f1c524..ea1a27a09e26292c9a81f23f6cb9f7f07e4c407e 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/Sidebar.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/Sidebar.php
@@ -71,6 +71,13 @@ class Sidebar extends ListCompare
      */
     public function clickClearAll()
     {
+        $rootElement = $this->_rootElement;
+        $selector = $this->clearAll;
+        $this->_rootElement->waitUntil(
+            function () use ($rootElement, $selector) {
+                return $rootElement->find($selector)->isVisible() ? true : null;
+            }
+        );
         $this->_rootElement->find($this->clearAll)->click();
         $this->browser->acceptAlert();
     }
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ListProduct.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ListProduct.php
index 08c75424ad8c707c1355f16833eaf8e28f17546f..535cc6ef859eaa1d2a01df74a95d2625b8025b21 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ListProduct.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ListProduct.php
@@ -9,8 +9,7 @@ namespace Magento\Catalog\Test\Block\Product;
 use Magento\Catalog\Test\Block\Product\ProductList\ProductItem;
 use Magento\Mtf\Block\Block;
 use Magento\Mtf\Client\Locator;
-use Magento\Mtf\Client\Element\SimpleElement;
-use Magento\Mtf\Fixture\InjectableFixture;
+use Magento\Mtf\Fixture\FixtureInterface;
 
 /**
  * Product list block.
@@ -22,63 +21,7 @@ class ListProduct extends Block
      *
      * @var string
      */
-    protected $productItem = './/*[contains(@class,"product-item-link") and .//*[text()="%s"]]/ancestor::li';
-
-    /**
-     * This member holds the class name of the regular price block.
-     *
-     * @var string
-     */
-    protected $regularPriceClass = ".regular-price";
-
-    /**
-     * This member holds the class name for the price block found inside the product details.
-     *
-     * @var string
-     */
-    protected $priceBlockClass = 'price-box';
-
-    /**
-     * This member contains the selector to find the product details for the named product.
-     *
-     * @var string
-     */
-    protected $productDetailsSelector = '//*[contains(@class, "product details") and .//*[contains(text(),"%s")]]';
-
-    /**
-     * Product name.
-     *
-     * @var string
-     */
-    protected $productTitle = './/*[@class="product name product-item-name"]/a[contains(text(),"%s")]';
-
-    /**
-     * Click for Price link on category page.
-     *
-     * @var string
-     */
-    protected $clickForPrice = "//div[contains(@class, 'product details') and ('%s')]//a[contains(@id, 'msrp-popup')]";
-
-    /**
-     * Minimum Advertised Price on category page.
-     *
-     * @var string
-     */
-    protected $oldPrice = ".old-price .price-container";
-
-    /**
-     * Price box CSS selector.
-     *
-     * @var string
-     */
-    protected $priceBox = '.price-box #product-price-%s .price';
-
-    /**
-     * Popup map price.
-     *
-     * @var string
-     */
-    protected $mapPopupPrice = '//ancestor::*[@id="map-popup-click-for-price"]';
+    protected $productItem = './/*[contains(@class,"product-item-link") and normalize-space(text())="%s"]/ancestor::li';
 
     /**
      * Sorter dropdown selector.
@@ -90,10 +33,10 @@ class ListProduct extends Block
     /**
      * Return product item block.
      *
-     * @param InjectableFixture $product
+     * @param FixtureInterface $product
      * @return ProductItem
      */
-    public function getProductItem(InjectableFixture $product)
+    public function getProductItem(FixtureInterface $product)
     {
         $locator = sprintf($this->productItem, $product->getName());
 
@@ -103,112 +46,6 @@ class ListProduct extends Block
         );
     }
 
-    /**
-     * This method returns the price box block for the named product.
-     *
-     * @param string $productName
-     * @return Price
-     */
-    public function getProductPriceBlock($productName)
-    {
-        $productDetails = $this->getProductDetailsElement($productName);
-
-        return $this->blockFactory->create(
-            'Magento\Catalog\Test\Block\Product\Price',
-            ['element' => $productDetails->find($this->priceBlockClass, Locator::SELECTOR_CLASS_NAME)]
-        );
-    }
-
-    /**
-     * Check if product with specified name is visible.
-     *
-     * @param string $productName
-     * @return bool
-     */
-    public function isProductVisible($productName)
-    {
-        return $this->getProductNameElement($productName)->isVisible();
-    }
-
-    /**
-     * Check if regular price is visible.
-     *
-     * @return bool
-     */
-    public function isRegularPriceVisible()
-    {
-        return $this->_rootElement->find($this->regularPriceClass)->isVisible();
-    }
-
-    /**
-     * Open product view page by clicking on product name.
-     *
-     * @param string $productName
-     * @return void
-     */
-    public function openProductViewPage($productName)
-    {
-        $this->getProductNameElement($productName)->click();
-    }
-
-    /**
-     * This method returns the element representing the product details for the named product.
-     *
-     * @param string $productName String containing the name of the product
-     * @return SimpleElement
-     */
-    protected function getProductDetailsElement($productName)
-    {
-        return $this->_rootElement->find(
-            sprintf($this->productDetailsSelector, $productName),
-            Locator::SELECTOR_XPATH
-        );
-    }
-
-    /**
-     * This method returns the element on the page associated with the product name.
-     *
-     * @param string $productName String containing the name of the product
-     * @return SimpleElement
-     */
-    protected function getProductNameElement($productName)
-    {
-        return $this->_rootElement->find(sprintf($this->productTitle, $productName), Locator::SELECTOR_XPATH);
-    }
-
-    /**
-     * Open MAP block on category page.
-     *
-     * @param string $productName
-     * @return void
-     */
-    public function openMapBlockOnCategoryPage($productName)
-    {
-        $this->_rootElement->find(sprintf($this->clickForPrice, $productName), Locator::SELECTOR_XPATH)->click();
-        $this->waitForElementVisible($this->mapPopupPrice, Locator::SELECTOR_XPATH);
-    }
-
-    /**
-     * Get Minimum Advertised Price on Category page.
-     *
-     * @return string
-     */
-    public function getOldPriceCategoryPage()
-    {
-        return $this->_rootElement->find($this->oldPrice, Locator::SELECTOR_CSS)->getText();
-    }
-
-    /**
-     * Retrieve product price by specified Id.
-     *
-     * @param int $productId
-     * @return string
-     */
-    public function getPrice($productId)
-    {
-        return $this->_rootElement->find(sprintf($this->priceBox, $productId), Locator::SELECTOR_CSS)->getText();
-    }
-
     /**
      * Get all terms used in sort.
      *
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Price.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Price.php
index 1457976a9fbdd76142de494fe6473dc0102cedec..20d3e9d4f7cac01adb7bbebe555fcee453fb25fa 100755
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Price.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Price.php
@@ -3,32 +3,22 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-namespace Magento\Catalog\Test\Block\Product;
 
-use Magento\Mtf\Block\Block;
-use Magento\Mtf\Client\Locator;
-use Magento\Mtf\Client\Element\SimpleElement;
+namespace Magento\Catalog\Test\Block\Product;
 
 /**
- * Class Price
- * This class is used to access the price related information from the storefront
+ * This class is used to access the price related information from the storefront.
  */
-class Price extends Block
+class Price extends \Magento\Catalog\Test\Block\AbstractPriceBlock
 {
     /**
-     * Mapping for different type of price
+     * Mapping for different type of price.
      *
      * @var array
      */
     protected $mapTypePrices = [
-        'price' => [
-            'selector' => '.price-container .price',
-        ],
-        'old_price' => [
-            'selector' => '.old-price .price-wrapper',
-        ],
-        'map_old_price' => [
-            'selector' => '.old-price .price',
+        'regular_price' => [
+            'selector' => '.price-final_price .price',
         ],
         'actual_price' => [
             'selector' => '.actual-price .price',
@@ -36,55 +26,40 @@ class Price extends Block
         'special_price' => [
             'selector' => '.special-price .price',
         ],
-        'final_price' => [
-            'selector' => '.price-final_price .price',
+        'old_price' => [
+            'selector' => '.old-price .price-wrapper',
         ],
         'price_from' => [
-            'selector' => 'p.price-from .price',
+            'selector' => '.price-from .price',
         ],
         'price_to' => [
-            'selector' => 'p.price-to .price',
+            'selector' => '.price-to .price',
+        ],
+        'price_excluding_tax' => [
+            'selector' => '.price-excluding-tax .price'
         ],
+        'price_including_tax' => [
+            'selector' => '.price-including-tax .price'
+        ]
     ];
 
     /**
-     * 'Add to Cart' button
-     *
-     * @var string
-     */
-    protected $addToCart = '.action.tocart';
-
-    /**
-     * Minimum Advertised Price
-     *
-     * @var string
-     */
-    protected $priceMap = '.old.price .price .price';
-
-    /**
-     * 'Close' button
-     *
-     * @var string
-     */
-    protected $closeMap = '..//div[@class="ui-dialog-buttonset"]//button';
-
-    /**
-     * This method returns the price represented by the block
+     * This method returns the price represented by the block.
      *
      * @param string $currency
-     * @return string
+     * @return string|null
      */
     public function getPrice($currency = '$')
     {
-        return $this->getTypePrice('price', $currency);
+        return $this->getTypePrice('regular_price', $currency);
     }
 
     /**
-     * Get actual Price value on frontend
+     * Get actual Price value on frontend.
      *
      * @param string $currency
      *
-     * @return array|float
+     * @return string|null
      */
     public function getActualPrice($currency = '$')
     {
@@ -92,68 +67,32 @@ class Price extends Block
     }
 
     /**
-     * This method returns the old price represented by the block
+     * This method returns the special price represented by the block.
      *
      * @param string $currency
-     * @return string
-     */
-    public function getOldPrice($currency = '$')
-    {
-        return $this->getTypePrice('old_price', $currency);
-    }
-
-    /**
-     * This method returns the final price represented by the block
-     *
-     * @param string $currency
-     * @return string
-     */
-    public function getFinalPrice($currency = '$')
-    {
-        return $this->getTypePrice('final_price', $currency);
-    }
-
-    /**
-     * This method returns the old price represented by the block
-     *
-     * @param string $currency
-     * @return string
+     * @return string|null
      */
-    public function getMapOldPrice($currency = '$')
+    public function getSpecialPrice($currency = '$')
     {
-        return $this->getTypePrice('map_old_price', $currency);
+        return $this->getTypePrice('special_price', $currency);
     }
 
     /**
-     * This method returns the special price represented by the block
+     * This method returns the old price represented by the block.
      *
      * @param string $currency
-     * @return string
+     * @return string|null
      */
-    public function getSpecialPrice($currency = '$')
+    public function getOldPrice($currency = '$')
     {
-        return $this->getTypePrice('special_price', $currency);
+        return $this->getTypePrice('old_price', $currency);
     }
 
     /**
-     * Price excluding tax
-     *
-     * @var string
-     */
-    protected $priceExcludingTax = '.price-excluding-tax span.price';
-
-    /**
-     * Price including tax
-     *
-     * @var string
-     */
-    protected $priceIncludingTax = '.price-including-tax span.price';
-
-    /**
-     * Get price from
+     * Get price from.
      *
      * @param string $currency
-     * @return string
+     * @return string|null
      */
     public function getPriceFrom($currency = '$')
     {
@@ -161,10 +100,10 @@ class Price extends Block
     }
 
     /**
-     * Get price to
+     * Get price to.
      *
      * @param string $currency
-     * @return string
+     * @return string|null
      */
     public function getPriceTo($currency = '$')
     {
@@ -172,41 +111,25 @@ class Price extends Block
     }
 
     /**
-     * This method returns the effective price represented by the block.
-     * If a special price is presented, it uses that.
-     * Otherwise, the regular price is used.
+     * Get price excluding tax.
      *
-     * @return string
+     * @param string $currency
+     * @return string|null
      */
-    public function getEffectivePrice()
+    public function getPriceExcludingTax($currency = '$')
     {
-        // if a special price is available, then return that
-        $priceElement = $this->getTypePriceElement('special_price');
-        if (!$priceElement->isVisible()) {
-            $priceElement = $this->getTypePriceElement('price');
-            if (!$priceElement->isVisible()) {
-                $priceElement = $this->getTypePriceElement('old_price');
-            }
-        }
-        // return the actual value of the price
-        return $this->escape($priceElement->getText());
+        return $this->getTypePrice('price_excluding_tax', $currency);
     }
 
     /**
-     * This method returns the regular price represented by the block.
+     * Get price including tax.
      *
-     * @return string
+     * @param string $currency
+     * @return string|null
      */
-    public function getRegularPrice()
+    public function getPriceIncludingTax($currency = '$')
     {
-        // either return the old price (implies special price display or a regular price
-        $priceElement = $this->getTypePriceElement('old_price');
-        if (!$priceElement->isVisible()) {
-            $priceElement = $this->getTypePriceElement('price');
-        }
-        // return the actual value of the price
-        $price = preg_replace('#[^\d\.\s]+#umis', '', $priceElement->getText());
-        return number_format(trim($price), 2);
+        return $this->getTypePrice('price_including_tax', $currency);
     }
 
     /**
@@ -216,7 +139,7 @@ class Price extends Block
      */
     public function isRegularPriceVisible()
     {
-        return $this->getTypePriceElement('price')->isVisible();
+        return $this->getTypePriceElement('regular_price')->isVisible();
     }
 
     /**
@@ -230,87 +153,12 @@ class Price extends Block
     }
 
     /**
-     * Add product to shopping cart from MAP Block
-     *
-     * @return void
-     */
-    public function addToCartFromMap()
-    {
-        $this->_rootElement->find($this->addToCart, Locator::SELECTOR_CSS)->click();
-    }
-
-    /**
-     * Close MAP Block
-     *
-     * @return void
-     */
-    public function closeMapBlock()
-    {
-        $this->_rootElement->find($this->closeMap, Locator::SELECTOR_XPATH)->click();
-        $this->waitForElementNotVisible($this->closeMap, Locator::SELECTOR_XPATH);
-    }
-
-    /**
-     * Get specify type price
+     * This method returns if the old price is visible.
      *
-     * @param string $type
-     * @param string $currency [optional]
-     * @return string|null
-     */
-    protected function getTypePrice($type, $currency = '$')
-    {
-        $typePriceElement = $this->getTypePriceElement($type);
-        return $typePriceElement->isVisible() ? $this->escape($typePriceElement->getText(), $currency) : null;
-    }
-
-    /**
-     * Get specify type price element
-     *
-     * @param string $type
-     * @return SimpleElement
-     */
-    protected function getTypePriceElement($type)
-    {
-        $mapTypePrice = $this->mapTypePrices[$type];
-        return $this->_rootElement->find(
-            $mapTypePrice['selector'],
-            isset($mapTypePrice['strategy']) ? $mapTypePrice['strategy'] : Locator::SELECTOR_CSS
-        );
-    }
-
-    /**
-     * Escape currency and separator for price
-     *
-     * @param string $price
-     * @param string $currency
-     * @return string
-     */
-    protected function escape($price, $currency = '$')
-    {
-        return str_replace([',', $currency], '', $price);
-    }
-
-    /**
-     * Get price excluding tax
-     *
-     * @param string $currency
-     * @return string|null
-     */
-    public function getPriceExcludingTax($currency = '$')
-    {
-        $priceElement = $this->_rootElement->find($this->priceExcludingTax);
-        return $priceElement->isVisible() ? trim($priceElement->getText(), $currency) : null;
-    }
-
-    /**
-     * Get price including tax
-     *
-     * @param string $currency
-     * @return string|null
+     * @return bool
      */
-    public function getPriceIncludingTax($currency = '$')
+    public function isOldPriceVisible()
     {
-        $priceElement = $this->_rootElement->find($this->priceIncludingTax);
-        return $priceElement->isVisible() ? trim($priceElement->getText(), $currency) : null;
+        return $this->getTypePriceElement('old_price')->isVisible();
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/ProductItem.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/ProductItem.php
index a3408fca5a689b1789a38cc2483eed130ff480a5..8df29917b326d593722086cc6b1c1be9f486cf64 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/ProductItem.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/ProductItem.php
@@ -6,6 +6,7 @@
 
 namespace Magento\Catalog\Test\Block\Product\ProductList;
 
+use Magento\Catalog\Test\Block\Product\Price;
 use Magento\Mtf\Block\Block;
 use Magento\Mtf\Client\Locator;
 
@@ -21,6 +22,13 @@ class ProductItem extends Block
      */
     protected $link = 'a.product-item-link';
 
+    /**
+     * Locator for price box.
+     *
+     * @var string
+     */
+    protected $priceBox = '.price-box';
+
     /**
      * 'Add to Card' button.
      *
@@ -59,7 +67,7 @@ class ProductItem extends Block
     }
 
     /**
-     * Checking that "Add to Card" button is visible
+     * Checking that "Add to Card" button is visible.
      *
      * @return bool
      */
@@ -77,4 +85,17 @@ class ProductItem extends Block
     {
         $this->_rootElement->find($this->addToCard, Locator::SELECTOR_CSS)->click();
     }
+
+    /**
+     * Return price block.
+     *
+     * @return Price
+     */
+    public function getPriceBlock()
+    {
+        return $this->blockFactory->create(
+            'Magento\Catalog\Test\Block\Product\Price',
+            ['element' => $this->_rootElement->find($this->priceBox)]
+        );
+    }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View.php
index 04486482d3b1262c46bc8172967f1b9c1f92a134..9adc6d0ffabe90c95c0a4e2051f2bcbabb07c76c 100755
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View.php
@@ -84,20 +84,6 @@ class View extends AbstractConfigureBlock
      */
     protected $productShortDescription = '.product.attibute.overview';
 
-    /**
-     * Click for Price link on Product page.
-     *
-     * @var string
-     */
-    protected $clickForPrice = '[id*=msrp-popup]';
-
-    /**
-     * MAP popup on Product page.
-     *
-     * @var string
-     */
-    protected $mapPopup = '#map-popup-click-for-price';
-
     /**
      * Stock Availability control.
      *
@@ -143,7 +129,7 @@ class View extends AbstractConfigureBlock
     /**
      * Get block price.
      *
-     * @return \Magento\Catalog\Test\Block\Product\Price
+     * @return Price
      */
     public function getPriceBlock()
     {
@@ -245,26 +231,6 @@ class View extends AbstractConfigureBlock
         return $this->_rootElement->find($this->productSku, Locator::SELECTOR_CSS)->getText();
     }
 
-    /**
-     * Return product price excluding tax displayed on page.
-     *
-     * @return string
-     */
-    public function getProductPriceExcludingTax()
-    {
-        return $this->getPriceBlock()->getPriceExcludingTax();
-    }
-
-    /**
-     * Return product price including tax displayed on page.
-     *
-     * @return string
-     */
-    public function getProductPriceIncludingTax()
-    {
-        return $this->getPriceBlock()->getPriceIncludingTax();
-    }
-
     /**
      * Return product short description on page.
      *
@@ -332,17 +298,6 @@ class View extends AbstractConfigureBlock
         $this->_rootElement->find($this->addToCart, Locator::SELECTOR_CSS)->click();
     }
 
-    /**
-     * Open MAP block on Product View page.
-     *
-     * @return void
-     */
-    public function openMapBlockOnProductPage()
-    {
-        $this->_rootElement->find($this->clickForPrice, Locator::SELECTOR_CSS)->click();
-        $this->waitForElementVisible($this->mapPopup, Locator::SELECTOR_CSS);
-    }
-
     /**
      * Check 'Add to card' button visible.
      *
@@ -370,9 +325,9 @@ class View extends AbstractConfigureBlock
      */
     public function clickAddToCompare()
     {
-        /** @var \Magento\Core\Test\Block\Messages $messageBlock */
+        /** @var \Magento\Backend\Test\Block\Messages $messageBlock */
         $messageBlock = $this->blockFactory->create(
-            'Magento\Core\Test\Block\Messages',
+            'Magento\Backend\Test\Block\Messages',
             ['element' => $this->browser->find($this->messageBlock)]
         );
         $this->_rootElement->find($this->clickAddToCompare, Locator::SELECTOR_CSS)->click();
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.php
index f2a452994babcc33f4aff383632bee5d9995ab20..9f5421ed86eadfc4812e8198fd8ace45a902cea5 100755
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.php
@@ -37,7 +37,7 @@ class CustomOptions extends Form
      *
      * @var string
      */
-    protected $title = './label/span[1]';
+    protected $title = './/span[1]';
 
     /**
      * Selector for required option
@@ -107,7 +107,7 @@ class CustomOptions extends Form
      *
      * @var string
      */
-    protected $optionByName = '//*[label[contains(.,"%s")]]';
+    protected $optionByName = '//*[label[contains(.,"%s")] or legend[contains(.,"%s")]]';
 
     /**
      * Get product options
@@ -463,7 +463,7 @@ class CustomOptions extends Form
     {
         foreach ($options as $option) {
             $optionBlock = $this->_rootElement->find(
-                sprintf($this->optionByName, $option['title']),
+                sprintf($this->optionByName, $option['title'], $option['title']),
                 Locator::SELECTOR_XPATH
             );
             $type = $this->getOptionType($option['type']);
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddToCartButtonAbsent.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddToCartButtonAbsent.php
index 476506b966c275fb6bc857bcfb6c3fc0c00208f3..5aece652c0260677760f6ca7ebfda1c06fb4362d 100755
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddToCartButtonAbsent.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddToCartButtonAbsent.php
@@ -40,9 +40,9 @@ class AssertAddToCartButtonAbsent extends AbstractConstraint
         $categoryName = $category === null ? $product->getCategoryIds()[0] : $category->getName();
         $cmsIndex->getTopmenu()->selectCategoryByName($categoryName);
 
-        $isProductVisible = $catalogCategoryView->getListProductBlock()->isProductVisible($product->getName());
+        $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible();
         while (!$isProductVisible && $catalogCategoryView->getBottomToolbar()->nextPage()) {
-            $isProductVisible = $catalogCategoryView->getListProductBlock()->isProductVisible($product->getName());
+            $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible();
         }
         \PHPUnit_Framework_Assert::assertTrue($isProductVisible, 'Product is absent on category page.');
 
@@ -51,7 +51,7 @@ class AssertAddToCartButtonAbsent extends AbstractConstraint
             "Button 'Add to Card' is present on Category page."
         );
 
-        $catalogCategoryView->getListProductBlock()->openProductViewPage($product->getName());
+        $catalogCategoryView->getListProductBlock()->getProductItem($product)->open();
         \PHPUnit_Framework_Assert::assertFalse(
             $catalogProductView->getViewBlock()->isVisibleAddToCardButton(),
             "Button 'Add to Card' is present on Product page."
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddToCartButtonPresent.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddToCartButtonPresent.php
index 65c686ce4d2ab5ef14c4b66dfdb496cd37a2a0ce..dc36447783f6541a4feb6e85e746f50a2747c92d 100755
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddToCartButtonPresent.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddToCartButtonPresent.php
@@ -40,9 +40,9 @@ class AssertAddToCartButtonPresent extends AbstractConstraint
         $categoryName = $category === null ? $product->getCategoryIds()[0] : $category->getName();
         $cmsIndex->getTopmenu()->selectCategoryByName($categoryName);
 
-        $isProductVisible = $catalogCategoryView->getListProductBlock()->isProductVisible($product->getName());
+        $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible();
         while (!$isProductVisible && $catalogCategoryView->getBottomToolbar()->nextPage()) {
-            $isProductVisible = $catalogCategoryView->getListProductBlock()->isProductVisible($product->getName());
+            $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible();
         }
         \PHPUnit_Framework_Assert::assertTrue($isProductVisible, 'Product is absent on category page.');
 
@@ -51,7 +51,7 @@ class AssertAddToCartButtonPresent extends AbstractConstraint
             "Button 'Add to Card' is absent on Category page."
         );
 
-        $catalogCategoryView->getListProductBlock()->openProductViewPage($product->getName());
+        $catalogCategoryView->getListProductBlock()->getProductItem($product)->open();
         \PHPUnit_Framework_Assert::assertTrue(
             $catalogProductView->getViewBlock()->isVisibleAddToCardButton(),
             "Button 'Add to Card' is absent on Product page."
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryForAssignedProducts.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryForAssignedProducts.php
index aefc304a9198e7d216b710857dd26bc12d383698..c80a46ca143e81fc608ae40186403e7e4962740b 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryForAssignedProducts.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryForAssignedProducts.php
@@ -39,7 +39,7 @@ class AssertCategoryForAssignedProducts extends AbstractConstraint
         $browser->open($_ENV['app_frontend_url'] . $categoryUrlKey . '.html');
         foreach ($products as $productFixture) {
             \PHPUnit_Framework_Assert::assertTrue(
-                $categoryView->getListProductBlock()->isProductVisible($productFixture->getName()),
+                $categoryView->getListProductBlock()->getProductItem($productFixture)->isVisible(),
                 "Products '{$productFixture->getName()}' not find."
             );
         }
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryIsNotIncludeInMenu.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryIsNotIncludeInMenu.php
index c489196f5825f8b0fce0f292c09c1066add22b57..d580889a348aa67221569aa4b193ff2114294a8c 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryIsNotIncludeInMenu.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryIsNotIncludeInMenu.php
@@ -49,7 +49,7 @@ class AssertCategoryIsNotIncludeInMenu extends AbstractConstraint
             $products = $category->getDataFieldConfig('category_products')['source']->getProducts();
             foreach ($products as $productFixture) {
                 \PHPUnit_Framework_Assert::assertTrue(
-                    $categoryView->getListProductBlock()->isProductVisible($productFixture->getName()),
+                    $categoryView->getListProductBlock()->getProductItem($productFixture)->isVisible(),
                     "Products '{$productFixture->getName()}' not find."
                 );
             }
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCategory.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCategory.php
index a3eedc87f4193d5a062ffee4071a885b6cdfa565..c9d766481e20b03145e28efca86f93ef03dde50f 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCategory.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCategory.php
@@ -13,12 +13,12 @@ use Magento\Mtf\Constraint\AbstractConstraint;
 use Magento\Mtf\Fixture\FixtureInterface;
 
 /**
- * Class AssertProductInCategory
+ * Checking the product in the page of its price.
  */
 class AssertProductInCategory extends AbstractConstraint
 {
     /**
-     * Checking the product in the page of its price
+     * Checking the product in the page of its price.
      *
      * @param CatalogCategoryView $catalogCategoryView
      * @param CmsIndex $cmsIndex
@@ -41,9 +41,9 @@ class AssertProductInCategory extends AbstractConstraint
         $cmsIndex->open();
         $cmsIndex->getTopmenu()->selectCategoryByName($categoryName);
 
-        $isProductVisible = $catalogCategoryView->getListProductBlock()->isProductVisible($product->getName());
+        $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible();
         while (!$isProductVisible && $catalogCategoryView->getBottomToolbar()->nextPage()) {
-            $isProductVisible = $catalogCategoryView->getListProductBlock()->isProductVisible($product->getName());
+            $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible();
         }
 
         \PHPUnit_Framework_Assert::assertTrue(
@@ -56,7 +56,7 @@ class AssertProductInCategory extends AbstractConstraint
     }
 
     /**
-     * Verify product price on category view page
+     * Verify product price on category view page.
      *
      * @param FixtureInterface $product
      * @param CatalogCategoryView $catalogCategoryView
@@ -64,18 +64,25 @@ class AssertProductInCategory extends AbstractConstraint
      */
     protected function assertPrice(FixtureInterface $product, CatalogCategoryView $catalogCategoryView)
     {
-        $price = $catalogCategoryView->getListProductBlock()->getProductPriceBlock($product->getName())
-            ->getRegularPrice();
+        $priceBlock = $catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock();
 
         \PHPUnit_Framework_Assert::assertEquals(
-            number_format($product->getPrice(), 2),
-            $price,
+            number_format($product->getPrice(), 2, '.', ''),
+            $priceBlock->isOldPriceVisible() ? $priceBlock->getOldPrice() : $priceBlock->getPrice(),
             'Product regular price on category page is not correct.'
         );
+
+        if ($product->hasData('special_price')) {
+            \PHPUnit_Framework_Assert::assertEquals(
+                number_format($product->getSpecialPrice(), 2, '.', ''),
+                $priceBlock->getSpecialPrice(),
+                'Product special price on category page is not correct.'
+            );
+        }
     }
 
     /**
-     * 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/Catalog/Test/Constraint/AssertProductIsNotDisplayingOnFrontend.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotDisplayingOnFrontend.php
index 0afbdc522e024c538f30cb39013c37d9a62cc9d9..0774c03169420cad0d99589e30078c3581360a7f 100755
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotDisplayingOnFrontend.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotDisplayingOnFrontend.php
@@ -126,7 +126,7 @@ class AssertProductIsNotDisplayingOnFrontend extends AbstractConstraint
 
         $this->cmsIndex->open();
         $this->cmsIndex->getSearchBlock()->search($product->getSku());
-        if ($this->catalogSearchResult->getListProductBlock()->isProductVisible($product->getName())) {
+        if ($this->catalogSearchResult->getListProductBlock()->getProductItem($product)->isVisible()) {
             $errors[] = '- successful product search.';
         }
 
@@ -135,10 +135,10 @@ class AssertProductIsNotDisplayingOnFrontend extends AbstractConstraint
             : $this->category->getName();
         $this->cmsIndex->open();
         $this->cmsIndex->getTopmenu()->selectCategoryByName($categoryName);
-        $isProductVisible = $this->catalogCategoryView->getListProductBlock()->isProductVisible($product->getName());
+        $isProductVisible = $this->catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible();
         while (!$isProductVisible && $this->catalogCategoryView->getBottomToolbar()->nextPage()) {
             $isProductVisible = $this->catalogCategoryView->getListProductBlock()
-                ->isProductVisible($product->getName());
+                ->getProductItem($product)->isVisible();
         }
 
         if ($isProductVisible) {
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotSearchableBySku.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotSearchableBySku.php
index e40409364245f4bd413fa533c6acc5496120f606..88dd6d47ae45738c4bb3b0feb23aa24db80fd17a 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotSearchableBySku.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotSearchableBySku.php
@@ -33,7 +33,7 @@ class AssertProductNotSearchableBySku extends AbstractConstraint
         $cmsIndex->open();
         $cmsIndex->getSearchBlock()->search($product->getSku());
         \PHPUnit_Framework_Assert::assertFalse(
-            $catalogSearchResult->getListProductBlock()->isProductVisible($product->getName()),
+            $catalogSearchResult->getListProductBlock()->getProductItem($product)->isVisible(),
             'Product was found by SKU.'
         );
     }
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotVisibleInCategory.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotVisibleInCategory.php
index cb885fcee6f3d46b47a64979e0fcae0f06147fd1..daab7ea7b1dd54bd5eee524540bdc8151942a3f0 100755
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotVisibleInCategory.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotVisibleInCategory.php
@@ -42,9 +42,9 @@ class AssertProductNotVisibleInCategory extends AbstractConstraint
         $cmsIndex->open();
         $cmsIndex->getTopmenu()->selectCategoryByName($categoryName);
 
-        $isProductVisible = $catalogCategoryView->getListProductBlock()->isProductVisible($product->getName());
+        $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible();
         while (!$isProductVisible && $catalogCategoryView->getBottomToolbar()->nextPage()) {
-            $isProductVisible = $catalogCategoryView->getListProductBlock()->isProductVisible($product->getName());
+            $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible();
         }
         \PHPUnit_Framework_Assert::assertFalse(
             $isProductVisible,
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductPage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductPage.php
index 6f86979ac0be59f5ab44a64a8572dbaa75384fa5..03e44bab0d5e083c62557aceef005826f5a0ae49 100755
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductPage.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductPage.php
@@ -110,14 +110,15 @@ class AssertProductPage extends AbstractAssertForm
             return null;
         }
 
-        $fixtureProductPrice = number_format($this->product->getPrice(), 2);
-        $formProductPrice = $this->productView->getPriceBlock()->getRegularPrice();
+        $priceBlock = $this->productView->getPriceBlock();
+        $formPrice = $priceBlock->isOldPriceVisible() ? $priceBlock->getOldPrice() : $priceBlock->getPrice();
+        $fixturePrice = number_format($this->product->getPrice(), 2, '.', '');
 
-        if ($fixtureProductPrice == $formProductPrice) {
-            return null;
+        if ($fixturePrice != $formPrice) {
+            return "Displayed product price on product page(front-end) not equals passed from fixture. "
+                . "Actual: {$fixturePrice}, expected: {$formPrice}.";
         }
-        return "Displayed product price on product page(front-end) not equals passed from fixture. "
-        . "Actual: {$formProductPrice}, expected: {$fixtureProductPrice}.";
+        return null;
     }
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSearchableBySku.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSearchableBySku.php
index 337aec58a57aad4aeebd121d61fa05e405ff6f3c..a28d5d3d165daaa83a169071a921461ba61ca7f2 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSearchableBySku.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSearchableBySku.php
@@ -58,9 +58,9 @@ class AssertProductSearchableBySku extends AbstractConstraint
             ? $quantityAndStockStatus['is_in_stock']
             : null;
 
-        $isVisible = $catalogSearchResult->getListProductBlock()->isProductVisible($product->getName());
+        $isVisible = $catalogSearchResult->getListProductBlock()->getProductItem($product)->isVisible();
         while (!$isVisible && $catalogSearchResult->getBottomToolbar()->nextPage()) {
-            $isVisible = $catalogSearchResult->getListProductBlock()->isProductVisible($product->getName());
+            $isVisible = $catalogSearchResult->getListProductBlock()->getProductItem($product)->isVisible();
         }
 
         if ($product->getVisibility() === 'Catalog' || $stockStatus === 'Out of Stock') {
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductVisibleInCategory.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductVisibleInCategory.php
index 178d03adefee14c1988b854f2a12422419aaf7f1..659783f1a9884462e04b32aeb827fbd3be3bf5ab 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductVisibleInCategory.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductVisibleInCategory.php
@@ -52,9 +52,9 @@ class AssertProductVisibleInCategory extends AbstractConstraint
         $cmsIndex->open();
         $cmsIndex->getTopmenu()->selectCategoryByName($categoryName);
 
-        $isProductVisible = $catalogCategoryView->getListProductBlock()->isProductVisible($product->getName());
+        $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible();
         while (!$isProductVisible && $catalogCategoryView->getBottomToolbar()->nextPage()) {
-            $isProductVisible = $catalogCategoryView->getListProductBlock()->isProductVisible($product->getName());
+            $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible();
         }
 
         if (($product->getVisibility() === 'Search') || ($this->getStockStatus($product) === 'Out of Stock')) {
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogCategoryEdit.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogCategoryEdit.xml
index 3e4cfc3eb007a8f96d4ec85b76434f40525a2e0d..6c94684f9931aa51bcd24d7ea2a59cd2a5201834 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogCategoryEdit.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogCategoryEdit.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CatalogCategoryEdit" area="Adminhtml" mca="catalog/category/edit" module="Magento_Catalog">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="formPageActions" class="Magento\Catalog\Test\Block\Adminhtml\Category\Edit\PageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="editForm" class="Magento\Catalog\Test\Block\Adminhtml\Category\Edit\CategoryForm" locator="#category-edit-container" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeIndex.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeIndex.xml
index ba9f0da1ab03d79edb77388726be9512e688ecd4..212e8bf91d1b8b6b81004997d837297ead80fc1a 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeIndex.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CatalogProductAttributeIndex" area="Adminhtml" mca="catalog/product_attribute/index" module="Magento_Catalog">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="pageActionsBlock" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="grid" class="Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Grid" locator="[id='page:main-container']" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeNew.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeNew.xml
index 24868b2d139236eeb2ef98aeb2f6820be8785de4..7340141c593ee3fd494b638beab71df8e12075c4 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeNew.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeNew.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CatalogProductAttributeNew" area="Adminhtml" mca="catalog/product_attribute/new" module="Magento_Catalog">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="pageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="attributeForm" class="Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Edit\AttributeForm" locator="[id='page:main-container']" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductEdit.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductEdit.xml
index a2355f9ebabb4ab90706ea78b63378ce91cbb28e..11aa32fc63417f9056c3cb45c1d93825b2f31728 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductEdit.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductEdit.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CatalogProductEdit" area="Adminhtml" mca="catalog/product/edit" module="Magento_Catalog">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
     <block name="formPageActions" class="Magento\Catalog\Test\Block\Adminhtml\Product\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="productForm" class="Magento\Catalog\Test\Block\Adminhtml\Product\ProductForm" locator="[id='page:main-container']" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductIndex.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductIndex.xml
index df6bf92efaf4d81667d63552871f5b21a4611a72..015c26c23b6ee3f0fcb233a3e574716b27164174 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductIndex.xml
@@ -8,7 +8,7 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
     <page name="CatalogProductIndex" area="Adminhtml" mca="catalog/product/index" module="Magento_Catalog">
         <block name="productGrid" class="Magento\Catalog\Test\Block\Adminhtml\Product\Grid" locator="#productGrid" strategy="css selector"/>
-        <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+        <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
         <block name="gridPageActionBlock" class="Magento\Catalog\Test\Block\Adminhtml\Product\GridPageAction" locator="#add_new_product" strategy="css selector"/>
     </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductNew.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductNew.xml
index 544a42dcf4d81197944e0555ce98db1e931e7981..25a0260fc4a58202a5c33dc092b1f8e77782adb8 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductNew.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductNew.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CatalogProductNew" area="Adminhtml" mca="catalog/product/new" module="Magento_Catalog">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
     <block name="formPageActions" class="Magento\Catalog\Test\Block\Adminhtml\Product\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="productForm" class="Magento\Catalog\Test\Block\Adminhtml\Product\ProductForm" locator="[id='page:main-container']" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetIndex.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetIndex.xml
index c5403a74e61aaaea7a58a3039da9c812350d8f2d..03729cf363b3fbaf1c5c5800c0c64be786946c0d 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetIndex.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CatalogProductSetIndex" area="Adminhtml" mca="catalog/product_set/index" module="Magento_Catalog">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="pageActionsBlock" class="Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Set\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="grid" class="Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Set\Grid" locator="#setGrid" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategory.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategory.php
index 43666299a1ab36c41ed8a986498c032cb0de8859..d79e8a0823236362443b37c1bec76d6cb4ccb094 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategory.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategory.php
@@ -11,46 +11,45 @@ use Magento\Mtf\Factory\Factory;
 use Magento\Mtf\Page\Page;
 
 /**
- * Class CatalogCategory
- * Manage categories page in backend
+ * Manage categories page in backend.
  */
 class CatalogCategory extends Page
 {
     /**
-     * URL for category page
+     * URL for category page.
      */
     const MCA = 'catalog/category';
 
     /**
-     * Category Edit Form on the Backend
+     * Category Edit Form on the Backend.
      *
      * @var string
      */
     protected $formBlock = '#category-edit-container';
 
     /**
-     * Categories tree block
+     * Categories tree block.
      *
      * @var string
      */
     protected $treeBlock = '.categories-side-col';
 
     /**
-     * Get messages block
+     * Get messages block.
      *
      * @var string
      */
     protected $messagesBlock = '#messages .messages';
 
     /**
-     * Backend abstract block
+     * Backend abstract block.
      *
      * @var string
      */
     protected $templateBlock = './ancestor::body';
 
     /**
-     * Init page. Set page url
+     * Init page. Set page url.
      */
     protected function _init()
     {
@@ -58,7 +57,7 @@ class CatalogCategory extends Page
     }
 
     /**
-     * Open page using browser and waiting until loader will be disappeared
+     * Open page using browser and waiting until loader will be disappeared.
      *
      * @param array $params
      * @return $this
@@ -72,7 +71,7 @@ class CatalogCategory extends Page
     }
 
     /**
-     * Get Category edit form
+     * Get Category edit form.
      *
      * @return \Magento\Catalog\Test\Block\Adminhtml\Category\Edit\CategoryForm
      */
@@ -84,7 +83,7 @@ class CatalogCategory extends Page
     }
 
     /**
-     * Category Tree container on the Backend
+     * Category Tree container on the Backend.
      *
      * @return \Magento\Catalog\Test\Block\Adminhtml\Category\Tree
      */
@@ -97,19 +96,19 @@ class CatalogCategory extends Page
     }
 
     /**
-     * Get messages block
+     * Get messages block.
      *
-     * @return \Magento\Core\Test\Block\Messages
+     * @return \Magento\Backend\Test\Block\Messages
      */
     public function getMessagesBlock()
     {
-        return Factory::getBlockFactory()->getMagentoCoreMessages(
+        return Factory::getBlockFactory()->getMagentoBackendMessages(
             $this->_browser->find($this->messagesBlock, Locator::SELECTOR_CSS)
         );
     }
 
     /**
-     * Get abstract block
+     * Get abstract block.
      *
      * @return \Magento\Backend\Test\Block\Template
      */
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryEdit.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryEdit.php
index f7bcf562cd9a529a41ec6dece9afaa3732654f76..110b175a7d09edbf55d2195cae3799342f59b441 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryEdit.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryEdit.php
@@ -12,53 +12,54 @@ use Magento\Mtf\Factory\Factory;
 use Magento\Mtf\Page\Page;
 
 /**
- * Class CatalogCategoryEdit
- * Edit category page in backend
+ * Edit category page in backend.
  */
 class CatalogCategoryEdit extends Page
 {
     /**
-     * URL for edit category page
+     * URL for edit category page.
      */
     const MCA = 'catalog/category/edit/id/';
 
     /**
-     * Category Edit Form on the Backend
+     * Category Edit Form on the Backend.
      *
      * @var string
      */
     protected $formBlock = '#category-edit-container';
 
     /**
-     * Categories tree block
+     * Categories tree block.
      *
      * @var string
      */
     protected $treeBlock = '.categories-side-col';
 
     /**
-     * Get messages block
+     * Get messages block.
      *
      * @var string
      */
     protected $messagesBlock = '#messages .messages';
 
     /**
-     * Backend abstract block
+     * Backend abstract block.
      *
      * @var string
      */
     protected $templateBlock = './ancestor::body';
 
     /**
-     * Form page actions block
+     * Form page actions block.
      *
      * @var string
      */
     protected $pageActionsBlock = '.page-main-actions';
 
     /**
-     * Init page. Set page url
+     * Init page. Set page url.
+     *
+     * @return void
      */
     protected function _init()
     {
@@ -66,7 +67,7 @@ class CatalogCategoryEdit extends Page
     }
 
     /**
-     * Open page using browser and waiting until loader will be disappeared
+     * Open page using browser and waiting until loader will be disappeared.
      *
      * @param array $params
      * @return $this
@@ -80,7 +81,7 @@ class CatalogCategoryEdit extends Page
     }
 
     /**
-     * Get Category edit form
+     * Get Category edit form.
      *
      * @return \Magento\Catalog\Test\Block\Adminhtml\Category\Edit\CategoryForm
      */
@@ -92,7 +93,7 @@ class CatalogCategoryEdit extends Page
     }
 
     /**
-     * Category Tree container on the Backend
+     * Category Tree container on the Backend.
      *
      * @return \Magento\Catalog\Test\Block\Adminhtml\Category\Tree
      */
@@ -105,19 +106,19 @@ class CatalogCategoryEdit extends Page
     }
 
     /**
-     * Get messages block
+     * Get messages block.
      *
-     * @return \Magento\Core\Test\Block\Messages
+     * @return \Magento\Backend\Test\Block\Messages
      */
     public function getMessagesBlock()
     {
-        return Factory::getBlockFactory()->getMagentoCoreMessages(
+        return Factory::getBlockFactory()->getMagentoBackendMessages(
             $this->_browser->find($this->messagesBlock, Locator::SELECTOR_CSS)
         );
     }
 
     /**
-     * Get abstract block
+     * Get abstract block.
      *
      * @return \Magento\Backend\Test\Block\Template
      */
@@ -129,7 +130,7 @@ class CatalogCategoryEdit extends Page
     }
 
     /**
-     * Get Form page actions block
+     * Get Form page actions block.
      *
      * @return FormPageActions
      */
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryView.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryView.xml
index 4639598b1adfe1f7c499195711f46f401a3dc43d..392a1ff131e7fbee4246d32285458c1c4d086030 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryView.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryView.xml
@@ -6,14 +6,13 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
-  <page name="CatalogCategoryView" area="Category" mca="catalog/category/view" module="Magento_Catalog">
-    <block name="listProductBlock" class="Magento\Catalog\Test\Block\Product\ListProduct" locator=".products.wrapper.grid" strategy="css selector"/>
-    <block name="mapBlock" class="Magento\Catalog\Test\Block\Product\Price" locator="#map-popup-content" strategy="css selector"/>
-    <block name="layeredNavigationBlock" class="Magento\LayeredNavigation\Test\Block\Navigation" locator=".block.filter" strategy="css selector"/>
-    <block name="topToolbar" class="Magento\Catalog\Test\Block\Product\ProductList\TopToolbar" locator=".//*[contains(@class,'toolbar-products')][1]" strategy="xpath"/>
-    <block name="bottomToolbar" class="Magento\Catalog\Test\Block\Product\ProductList\BottomToolbar" locator=".//*[contains(@class,'toolbar-products')][2]" strategy="xpath"/>
-    <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper h1.page-title .base" strategy="css selector"/>
-    <block name="viewBlock" class="Magento\Catalog\Test\Block\Category\View" locator="#maincontent" strategy="css selector"/>
-    <block name="widgetView" class="Magento\Widget\Test\Block\WidgetView" locator=".widget" strategy="css selector"/>
-  </page>
+    <page name="CatalogCategoryView" area="Category" mca="catalog/category/view" module="Magento_Catalog">
+        <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper h1.page-title .base" strategy="css selector"/>
+        <block name="layeredNavigationBlock" class="Magento\LayeredNavigation\Test\Block\Navigation" locator=".block.filter" strategy="css selector"/>
+        <block name="widgetView" class="Magento\Widget\Test\Block\WidgetView" locator=".widget" strategy="css selector"/>
+        <block name="viewBlock" class="Magento\Catalog\Test\Block\Category\View" locator="#maincontent" strategy="css selector"/>
+        <block name="listProductBlock" class="Magento\Catalog\Test\Block\Product\ListProduct" locator=".products.wrapper.grid" strategy="css selector"/>
+        <block name="topToolbar" class="Magento\Catalog\Test\Block\Product\ProductList\TopToolbar" locator=".//*[contains(@class,'toolbar-products')][1]" strategy="xpath"/>
+        <block name="bottomToolbar" class="Magento\Catalog\Test\Block\Product\ProductList\BottomToolbar" locator=".//*[contains(@class,'toolbar-products')][2]" strategy="xpath"/>
+    </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductCompare.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductCompare.xml
index bae2bffa5f38bca55468095508f304f0c11357ba..6bfeb6be2b3b4d28f8bffd68a97277d745072cdf 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductCompare.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductCompare.xml
@@ -8,7 +8,7 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CatalogProductCompare" area="Product" mca="catalog/product_compare/index" module="Magento_Catalog">
     <block name="compareProductsBlock" class="Magento\Catalog\Test\Block\Product\Compare\ListCompare" locator=".column.main" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator=".page.messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".page.messages .messages" strategy="css selector"/>
     <block name="widgetView" class="Magento\Widget\Test\Block\WidgetView" locator=".column.main .widget" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductView.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductView.xml
index 502265c5c7a3798f260836965806331a6761c889..2a4163d237a8b8ceb913303ba10463ca8a789db5 100755
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductView.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductView.xml
@@ -14,8 +14,7 @@
     <block name="upsellBlock" class="Magento\Catalog\Test\Block\Product\ProductList\Upsell" locator=".block.upsell" strategy="css selector"/>
     <block name="crosssellBlock" class="Magento\Catalog\Test\Block\Product\ProductList\Crosssell" locator=".block.crosssell" strategy="css selector"/>
     <block name="downloadableLinksBlock" class="Magento\Downloadable\Test\Block\Catalog\Product\View\Links" locator="[data-container-for=downloadable-links]" strategy="css selector"/>
-    <block name="mapBlock" class="Magento\Catalog\Test\Block\Product\Price" locator="#map-popup-click-for-price" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator=".page.messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".page.messages .messages" strategy="css selector"/>
     <block name="reviewSummary" class="Magento\Review\Test\Block\Product\View\Summary" locator=".product-reviews-summary" strategy="css selector"/>
     <block name="customerReviewBlock" class="Magento\Review\Test\Block\Product\View" locator="#customer-reviews" strategy="css selector"/>
     <block name="reviewFormBlock" class="Magento\Review\Test\Block\Form" locator="#review-form" strategy="css selector"/>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/CreateCategoryEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/CreateCategoryEntityTest.xml
index 590204f0d4d3b5ba1a99653f4642524428cbb5b7..b4b2da10a3d7350c0a210b8c9d4bdf3b67c8ec64 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/CreateCategoryEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/CreateCategoryEntityTest.xml
@@ -6,240 +6,154 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Catalog\Test\TestCase\Category\CreateCategoryEntityTest">
-    <variation name="CreateCategoryEntityTestVariation1">
-      <data name="description" xsi:type="string">Create root category with required fields</data>
-      <data name="addCategory" xsi:type="string">addRootCategory</data>
-      <data name="category/data/parent_id/dataSet" xsi:type="string">-</data>
-      <data name="category/data/name" xsi:type="string">RootCategory%isolation%</data>
-      <data name="category/data/url_key" xsi:type="string">RootCategory%isolation%</data>
-      <data name="category/data/is_active" xsi:type="string">Yes</data>
-      <data name="category/data/description" xsi:type="string">RootCategory Required </data>
-      <data name="category/data/meta_title" xsi:type="string">-</data>
-      <data name="category/data/include_in_menu" xsi:type="string">-</data>
-      <data name="category/data/display_mode" xsi:type="string">-</data>
-      <data name="category/data/is_anchor" xsi:type="string">-</data>
-      <data name="category/data/available_product_listing_config" xsi:type="string">No</data>
-      <data name="category/data/available_sort_by/sort_0" xsi:type="string">Position</data>
-      <data name="category/data/available_sort_by/sort_1" xsi:type="string">Name</data>
-      <data name="category/data/available_sort_by/sort_2" xsi:type="string">Price</data>
-      <data name="category/data/default_product_listing_config" xsi:type="string">-</data>
-      <data name="category/data/default_sort_by" xsi:type="string">-</data>
-      <data name="category/data/use_config_price_range" xsi:type="string">-</data>
-      <data name="category/data/layered_navigation_price_step" xsi:type="string">-</data>
-      <data name="category/data/category_products_data/preset" xsi:type="string">-</data>
-      <data name="category/data/category_products/dataSet" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm"/>
-    </variation>
-    <variation name="CreateCategoryEntityTestVariation2">
-      <data name="description" xsi:type="string">Create root category with all fields</data>
-      <data name="addCategory" xsi:type="string">addRootCategory</data>
-      <data name="category/data/parent_id/dataSet" xsi:type="string">-</data>
-      <data name="category/data/name" xsi:type="string">RootCategory%isolation%</data>
-      <data name="category/data/url_key" xsi:type="string">RootCategory%isolation%</data>
-      <data name="category/data/is_active" xsi:type="string">Yes</data>
-      <data name="category/data/description" xsi:type="string">RootCategory All Fields </data>
-      <data name="category/data/meta_title" xsi:type="string">RootCategory Page Title</data>
-      <data name="category/data/include_in_menu" xsi:type="string">Yes</data>
-      <data name="category/data/display_mode" xsi:type="string">Static block and products</data>
-      <data name="category/data/is_anchor" xsi:type="string">Yes</data>
-      <data name="category/data/available_product_listing_config" xsi:type="string">No</data>
-      <data name="category/data/available_sort_by/sort_0" xsi:type="string">Position</data>
-      <data name="category/data/available_sort_by/sort_1" xsi:type="string">Name</data>
-      <data name="category/data/available_sort_by/sort_2" xsi:type="string">Price</data>
-      <data name="category/data/default_product_listing_config" xsi:type="string">No</data>
-      <data name="category/data/default_sort_by" xsi:type="string">Name</data>
-      <data name="category/data/use_config_price_range" xsi:type="string">No</data>
-      <data name="category/data/layered_navigation_price_step" xsi:type="string">50</data>
-      <data name="category/data/category_products_data/preset" xsi:type="string">-</data>
-      <data name="category/data/category_products/dataSet" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm"/>
-    </variation>
-    <variation name="CreateCategoryEntityTestVariation3">
-      <data name="description" xsi:type="string">Create subcategory with required fields</data>
-      <data name="addCategory" xsi:type="string">addSubcategory</data>
-      <data name="category/data/parent_id/dataSet" xsi:type="string">default_category</data>
-      <data name="category/data/name" xsi:type="string">Subcategory%isolation%</data>
-      <data name="category/data/url_key" xsi:type="string">Subcategory%isolation%</data>
-      <data name="category/data/is_active" xsi:type="string">Yes</data>
-      <data name="category/data/description" xsi:type="string">Subcategory Required</data>
-      <data name="category/data/meta_title" xsi:type="string">-</data>
-      <data name="category/data/include_in_menu" xsi:type="string">-</data>
-      <data name="category/data/display_mode" xsi:type="string">-</data>
-      <data name="category/data/is_anchor" xsi:type="string">-</data>
-      <data name="category/data/available_product_listing_config" xsi:type="string">Yes</data>
-      <data name="category/data/available_sort_by/sort_0" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_1" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_2" xsi:type="string">-</data>
-      <data name="category/data/default_product_listing_config" xsi:type="string">-</data>
-      <data name="category/data/default_sort_by" xsi:type="string">-</data>
-      <data name="category/data/use_config_price_range" xsi:type="string">-</data>
-      <data name="category/data/layered_navigation_price_step" xsi:type="string">-</data>
-      <data name="category/data/category_products_data/preset" xsi:type="string">-</data>
-      <data name="category/data/category_products/dataSet" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryPage"/>
-    </variation>
-    <variation name="CreateCategoryEntityTestVariation4">
-      <data name="description" xsi:type="string">Create not anchor subcategory with required fields</data>
-      <data name="addCategory" xsi:type="string">addSubcategory</data>
-      <data name="category/data/parent_id/dataSet" xsi:type="string">default_category</data>
-      <data name="category/data/name" xsi:type="string">Subcategory%isolation%</data>
-      <data name="category/data/url_key" xsi:type="string">Subcategory%isolation%</data>
-      <data name="category/data/is_active" xsi:type="string">Yes</data>
-      <data name="category/data/description" xsi:type="string">Subcategory For Anchor Subcategory</data>
-      <data name="category/data/meta_title" xsi:type="string">-</data>
-      <data name="category/data/include_in_menu" xsi:type="string">Yes</data>
-      <data name="category/data/display_mode" xsi:type="string">-</data>
-      <data name="category/data/is_anchor" xsi:type="string">No</data>
-      <data name="category/data/available_product_listing_config" xsi:type="string">Yes</data>
-      <data name="category/data/available_sort_by/sort_0" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_1" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_2" xsi:type="string">-</data>
-      <data name="category/data/default_product_listing_config" xsi:type="string">Yes</data>
-      <data name="category/data/default_sort_by" xsi:type="string">-</data>
-      <data name="category/data/use_config_price_range" xsi:type="string">Yes</data>
-      <data name="category/data/layered_navigation_price_step" xsi:type="string">-</data>
-      <data name="category/data/category_products_data/preset" xsi:type="string">default</data>
-      <data name="category/data/category_products/dataSet" xsi:type="string">catalogProductSimple::default,catalogProductSimple::default</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForAssignedProducts"/>
-    </variation>
-    <variation name="CreateCategoryEntityTestVariation5">
-      <data name="description" xsi:type="string">Create anchor subcategory with all fields</data>
-      <data name="addCategory" xsi:type="string">addSubcategory</data>
-      <data name="category/data/parent_id/dataSet" xsi:type="string">default_category</data>
-      <data name="category/data/name" xsi:type="string">Subcategory%isolation%</data>
-      <data name="category/data/url_key" xsi:type="string">Subcategory%isolation%</data>
-      <data name="category/data/is_active" xsi:type="string">Yes</data>
-      <data name="category/data/description" xsi:type="string">Anchor Subcategory All Fields</data>
-      <data name="category/data/meta_title" xsi:type="string">Subcategory Page Title</data>
-      <data name="category/data/include_in_menu" xsi:type="string">Yes</data>
-      <data name="category/data/display_mode" xsi:type="string">Static block and products</data>
-      <data name="category/data/landing_page/preset" xsi:type="string">default</data>
-      <data name="category/data/is_anchor" xsi:type="string">Yes</data>
-      <data name="category/data/available_product_listing_config" xsi:type="string">No</data>
-      <data name="category/data/available_sort_by/sort_0" xsi:type="string">Position</data>
-      <data name="category/data/available_sort_by/sort_1" xsi:type="string">Name</data>
-      <data name="category/data/available_sort_by/sort_2" xsi:type="string">Price</data>
-      <data name="category/data/default_product_listing_config" xsi:type="string">No</data>
-      <data name="category/data/default_sort_by" xsi:type="string">Price</data>
-      <data name="category/data/use_config_price_range" xsi:type="string">No</data>
-      <data name="category/data/layered_navigation_price_step" xsi:type="string">50</data>
-      <data name="category/data/category_products_data/preset" xsi:type="string">default</data>
-      <data name="category/data/category_products/dataSet" xsi:type="string">catalogProductSimple::default,catalogProductSimple::default</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForAssignedProducts"/>
-    </variation>
-    <variation name="CreateCategoryEntityTestVariation6">
-      <data name="description" xsi:type="string">Create not active subcategory</data>
-      <data name="addCategory" xsi:type="string">addSubcategory</data>
-      <data name="category/data/parent_id/dataSet" xsi:type="string">default_category</data>
-      <data name="category/data/name" xsi:type="string">Subcategory%isolation%</data>
-      <data name="category/data/url_key" xsi:type="string">Subcategory%isolation%</data>
-      <data name="category/data/is_active" xsi:type="string">Yes</data>
-      <data name="category/data/description" xsi:type="string">Not active category</data>
-      <data name="category/data/meta_title" xsi:type="string">-</data>
-      <data name="category/data/include_in_menu" xsi:type="string">Yes</data>
-      <data name="category/data/display_mode" xsi:type="string">-</data>
-      <data name="category/data/is_anchor" xsi:type="string">-</data>
-      <data name="category/data/available_product_listing_config" xsi:type="string">Yes</data>
-      <data name="category/data/available_sort_by/sort_0" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_1" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_2" xsi:type="string">-</data>
-      <data name="category/data/default_product_listing_config" xsi:type="string">Yes</data>
-      <data name="category/data/default_sort_by" xsi:type="string">-</data>
-      <data name="category/data/use_config_price_range" xsi:type="string">Yes</data>
-      <data name="category/data/layered_navigation_price_step" xsi:type="string">-</data>
-      <data name="category/data/category_products_data/preset" xsi:type="string">-</data>
-      <data name="category/data/category_products/dataSet" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm"/>
-    </variation>
-    <variation name="CreateCategoryEntityTestVariation7">
-      <data name="description" xsi:type="string">Create not included in menu subcategory</data>
-      <data name="addCategory" xsi:type="string">addSubcategory</data>
-      <data name="category/data/parent_id/dataSet" xsi:type="string">default_category</data>
-      <data name="category/data/name" xsi:type="string">Subcategory%isolation%</data>
-      <data name="category/data/url_key" xsi:type="string">Subcategory%isolation%</data>
-      <data name="category/data/is_active" xsi:type="string">Yes</data>
-      <data name="category/data/description" xsi:type="string">Not included in menu</data>
-      <data name="category/data/meta_title" xsi:type="string">-</data>
-      <data name="category/data/include_in_menu" xsi:type="string">No</data>
-      <data name="category/data/display_mode" xsi:type="string">-</data>
-      <data name="category/data/is_anchor" xsi:type="string">-</data>
-      <data name="category/data/available_product_listing_config" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_0" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_1" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_2" xsi:type="string">-</data>
-      <data name="category/data/default_product_listing_config" xsi:type="string">-</data>
-      <data name="category/data/default_sort_by" xsi:type="string">-</data>
-      <data name="category/data/use_config_price_range" xsi:type="string">-</data>
-      <data name="category/data/layered_navigation_price_step" xsi:type="string">-</data>
-      <data name="category/data/category_products_data/preset" xsi:type="string">-</data>
-      <data name="category/data/category_products/dataSet" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm"/>
-    </variation>
-    <variation name="CreateCategoryEntityTestVariation8">
-      <data name="description" xsi:type="string">MAGETWO-12513: Create Category from Category page with Required Fields Only</data>
-      <data name="addCategory" xsi:type="string">addSubcategory</data>
-      <data name="category/data/parent_id/dataSet" xsi:type="string">default_category</data>
-      <data name="category/data/name" xsi:type="string">Subcategory%isolation%</data>
-      <data name="category/data/url_key" xsi:type="string">-</data>
-      <data name="category/data/is_active" xsi:type="string">Yes</data>
-      <data name="category/data/description" xsi:type="string">-</data>
-      <data name="category/data/meta_title" xsi:type="string">-</data>
-      <data name="category/data/include_in_menu" xsi:type="string">Yes</data>
-      <data name="category/data/display_mode" xsi:type="string">-</data>
-      <data name="category/data/is_anchor" xsi:type="string">-</data>
-      <data name="category/data/available_product_listing_config" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_0" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_1" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_2" xsi:type="string">-</data>
-      <data name="category/data/default_product_listing_config" xsi:type="string">-</data>
-      <data name="category/data/default_sort_by" xsi:type="string">-</data>
-      <data name="category/data/use_config_price_range" xsi:type="string">-</data>
-      <data name="category/data/layered_navigation_price_step" xsi:type="string">-</data>
-      <data name="category/data/category_products_data/preset" xsi:type="string">-</data>
-      <data name="category/data/category_products/dataSet" xsi:type="string">-</data>
-      <data name="tag" xsi:type="string">test_type:acceptance_test</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryPage"/>
-    </variation>
-    <variation name="CreateCategoryEntityTestVariation9">
-      <data name="description" xsi:type="string">MAGETWO-16351: Assign Products at the Category Level</data>
-      <data name="addCategory" xsi:type="string">addSubcategory</data>
-      <data name="category/data/parent_id/dataSet" xsi:type="string">default_category</data>
-      <data name="category/data/name" xsi:type="string">Subcategory%isolation%</data>
-      <data name="category/data/url_key" xsi:type="string">-</data>
-      <data name="category/data/is_active" xsi:type="string">Yes</data>
-      <data name="category/data/description" xsi:type="string">-</data>
-      <data name="category/data/meta_title" xsi:type="string">-</data>
-      <data name="category/data/include_in_menu" xsi:type="string">Yes</data>
-      <data name="category/data/display_mode" xsi:type="string">-</data>
-      <data name="category/data/is_anchor" xsi:type="string">-</data>
-      <data name="category/data/available_product_listing_config" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_0" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_1" xsi:type="string">-</data>
-      <data name="category/data/available_sort_by/sort_2" xsi:type="string">-</data>
-      <data name="category/data/default_product_listing_config" xsi:type="string">-</data>
-      <data name="category/data/default_sort_by" xsi:type="string">-</data>
-      <data name="category/data/use_config_price_range" xsi:type="string">-</data>
-      <data name="category/data/layered_navigation_price_step" xsi:type="string">-</data>
-      <data name="category/data/category_products_data/preset" xsi:type="string">-</data>
-      <data name="category/data/category_products/dataSet" xsi:type="string">catalogProductSimple::default, configurableProduct::default, bundleProduct::bundle_fixed_product</data>
-      <data name="tag" xsi:type="string">test_type:acceptance_test</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForAssignedProducts"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Catalog\Test\TestCase\Category\CreateCategoryEntityTest">
+        <variation name="CreateCategoryEntityTestVariation1">
+            <data name="description" xsi:type="string">Create root category with required fields</data>
+            <data name="addCategory" xsi:type="string">addRootCategory</data>
+            <data name="category/data/name" xsi:type="string">RootCategory%isolation%</data>
+            <data name="category/data/url_key" xsi:type="string">RootCategory%isolation%</data>
+            <data name="category/data/is_active" xsi:type="string">Yes</data>
+            <data name="category/data/description" xsi:type="string">RootCategory Required</data>
+            <data name="category/data/available_product_listing_config" xsi:type="string">No</data>
+            <data name="category/data/available_sort_by/sort_0" xsi:type="string">Position</data>
+            <data name="category/data/available_sort_by/sort_1" xsi:type="string">Name</data>
+            <data name="category/data/available_sort_by/sort_2" xsi:type="string">Price</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm" />
+        </variation>
+        <variation name="CreateCategoryEntityTestVariation2">
+            <data name="description" xsi:type="string">Create root category with all fields</data>
+            <data name="addCategory" xsi:type="string">addRootCategory</data>
+            <data name="category/data/name" xsi:type="string">RootCategory%isolation%</data>
+            <data name="category/data/url_key" xsi:type="string">RootCategory%isolation%</data>
+            <data name="category/data/is_active" xsi:type="string">Yes</data>
+            <data name="category/data/description" xsi:type="string">RootCategory All Fields</data>
+            <data name="category/data/meta_title" xsi:type="string">RootCategory Page Title</data>
+            <data name="category/data/include_in_menu" xsi:type="string">Yes</data>
+            <data name="category/data/display_mode" xsi:type="string">Static block and products</data>
+            <data name="category/data/is_anchor" xsi:type="string">Yes</data>
+            <data name="category/data/available_product_listing_config" xsi:type="string">No</data>
+            <data name="category/data/available_sort_by/sort_0" xsi:type="string">Position</data>
+            <data name="category/data/available_sort_by/sort_1" xsi:type="string">Name</data>
+            <data name="category/data/available_sort_by/sort_2" xsi:type="string">Price</data>
+            <data name="category/data/default_product_listing_config" xsi:type="string">No</data>
+            <data name="category/data/default_sort_by" xsi:type="string">Name</data>
+            <data name="category/data/use_config_price_range" xsi:type="string">No</data>
+            <data name="category/data/layered_navigation_price_step" xsi:type="string">50</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm" />
+        </variation>
+        <variation name="CreateCategoryEntityTestVariation3">
+            <data name="description" xsi:type="string">Create subcategory with required fields</data>
+            <data name="addCategory" xsi:type="string">addSubcategory</data>
+            <data name="category/data/parent_id/dataSet" xsi:type="string">default_category</data>
+            <data name="category/data/name" xsi:type="string">Subcategory%isolation%</data>
+            <data name="category/data/url_key" xsi:type="string">Subcategory%isolation%</data>
+            <data name="category/data/is_active" xsi:type="string">Yes</data>
+            <data name="category/data/description" xsi:type="string">Subcategory Required</data>
+            <data name="category/data/available_product_listing_config" xsi:type="string">Yes</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryPage" />
+        </variation>
+        <variation name="CreateCategoryEntityTestVariation4">
+            <data name="description" xsi:type="string">Create not anchor subcategory with required fields</data>
+            <data name="addCategory" xsi:type="string">addSubcategory</data>
+            <data name="category/data/parent_id/dataSet" xsi:type="string">default_category</data>
+            <data name="category/data/name" xsi:type="string">Subcategory%isolation%</data>
+            <data name="category/data/url_key" xsi:type="string">Subcategory%isolation%</data>
+            <data name="category/data/is_active" xsi:type="string">Yes</data>
+            <data name="category/data/description" xsi:type="string">Subcategory For Anchor Subcategory</data>
+            <data name="category/data/include_in_menu" xsi:type="string">Yes</data>
+            <data name="category/data/is_anchor" xsi:type="string">No</data>
+            <data name="category/data/available_product_listing_config" xsi:type="string">Yes</data>
+            <data name="category/data/default_product_listing_config" xsi:type="string">Yes</data>
+            <data name="category/data/use_config_price_range" xsi:type="string">Yes</data>
+            <data name="category/data/category_products_data/preset" xsi:type="string">default</data>
+            <data name="category/data/category_products/dataSet" xsi:type="string">catalogProductSimple::default,catalogProductSimple::default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForAssignedProducts" />
+        </variation>
+        <variation name="CreateCategoryEntityTestVariation5">
+            <data name="description" xsi:type="string">Create anchor subcategory with all fields</data>
+            <data name="addCategory" xsi:type="string">addSubcategory</data>
+            <data name="category/data/parent_id/dataSet" xsi:type="string">default_category</data>
+            <data name="category/data/name" xsi:type="string">Subcategory%isolation%</data>
+            <data name="category/data/url_key" xsi:type="string">Subcategory%isolation%</data>
+            <data name="category/data/is_active" xsi:type="string">Yes</data>
+            <data name="category/data/description" xsi:type="string">Anchor Subcategory All Fields</data>
+            <data name="category/data/meta_title" xsi:type="string">Subcategory Page Title</data>
+            <data name="category/data/include_in_menu" xsi:type="string">Yes</data>
+            <data name="category/data/display_mode" xsi:type="string">Static block and products</data>
+            <data name="category/data/landing_page/preset" xsi:type="string">default</data>
+            <data name="category/data/is_anchor" xsi:type="string">Yes</data>
+            <data name="category/data/available_product_listing_config" xsi:type="string">No</data>
+            <data name="category/data/available_sort_by/sort_0" xsi:type="string">Position</data>
+            <data name="category/data/available_sort_by/sort_1" xsi:type="string">Name</data>
+            <data name="category/data/available_sort_by/sort_2" xsi:type="string">Price</data>
+            <data name="category/data/default_product_listing_config" xsi:type="string">No</data>
+            <data name="category/data/default_sort_by" xsi:type="string">Price</data>
+            <data name="category/data/use_config_price_range" xsi:type="string">No</data>
+            <data name="category/data/layered_navigation_price_step" xsi:type="string">50</data>
+            <data name="category/data/category_products_data/preset" xsi:type="string">default</data>
+            <data name="category/data/category_products/dataSet" xsi:type="string">catalogProductSimple::default,catalogProductSimple::default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForAssignedProducts" />
+        </variation>
+        <variation name="CreateCategoryEntityTestVariation6">
+            <data name="description" xsi:type="string">Create not active subcategory</data>
+            <data name="addCategory" xsi:type="string">addSubcategory</data>
+            <data name="category/data/parent_id/dataSet" xsi:type="string">default_category</data>
+            <data name="category/data/name" xsi:type="string">Subcategory%isolation%</data>
+            <data name="category/data/url_key" xsi:type="string">Subcategory%isolation%</data>
+            <data name="category/data/is_active" xsi:type="string">Yes</data>
+            <data name="category/data/description" xsi:type="string">Not active category</data>
+            <data name="category/data/include_in_menu" xsi:type="string">Yes</data>
+            <data name="category/data/available_product_listing_config" xsi:type="string">Yes</data>
+            <data name="category/data/default_product_listing_config" xsi:type="string">Yes</data>
+            <data name="category/data/use_config_price_range" xsi:type="string">Yes</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm" />
+        </variation>
+        <variation name="CreateCategoryEntityTestVariation7">
+            <data name="description" xsi:type="string">Create not included in menu subcategory</data>
+            <data name="addCategory" xsi:type="string">addSubcategory</data>
+            <data name="category/data/parent_id/dataSet" xsi:type="string">default_category</data>
+            <data name="category/data/name" xsi:type="string">Subcategory%isolation%</data>
+            <data name="category/data/url_key" xsi:type="string">Subcategory%isolation%</data>
+            <data name="category/data/is_active" xsi:type="string">Yes</data>
+            <data name="category/data/description" xsi:type="string">Not included in menu</data>
+            <data name="category/data/include_in_menu" xsi:type="string">No</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm" />
+        </variation>
+        <variation name="CreateCategoryEntityTestVariation8">
+            <data name="description" xsi:type="string">MAGETWO-12513: Create Category from Category page with Required Fields Only</data>
+            <data name="addCategory" xsi:type="string">addSubcategory</data>
+            <data name="category/data/parent_id/dataSet" xsi:type="string">default_category</data>
+            <data name="category/data/name" xsi:type="string">Subcategory%isolation%</data>
+            <data name="category/data/is_active" xsi:type="string">Yes</data>
+            <data name="category/data/include_in_menu" xsi:type="string">Yes</data>
+            <data name="tag" xsi:type="string">test_type:acceptance_test</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryPage" />
+        </variation>
+        <variation name="CreateCategoryEntityTestVariation9">
+            <data name="description" xsi:type="string">MAGETWO-16351: Assign Products at the Category Level</data>
+            <data name="addCategory" xsi:type="string">addSubcategory</data>
+            <data name="category/data/parent_id/dataSet" xsi:type="string">default_category</data>
+            <data name="category/data/name" xsi:type="string">Subcategory%isolation%</data>
+            <data name="category/data/is_active" xsi:type="string">Yes</data>
+            <data name="category/data/include_in_menu" xsi:type="string">Yes</data>
+            <data name="category/data/category_products/dataSet" xsi:type="string">catalogProductSimple::default, configurableProduct::default, bundleProduct::bundle_fixed_product</data>
+            <data name="tag" xsi:type="string">test_type:acceptance_test</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategorySaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertCategoryForAssignedProducts" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.php
index bb262c886a5622c76b67fa03e8409c53e5f4f69b..735ffd33f2bfc1e61182d2444f4a9b09af0c5331 100755
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.php
@@ -75,7 +75,7 @@ class CreateSimpleProductEntityTest extends Injectable
 
         // Preconditions
         $this->objectManager->create(
-            'Magento\Core\Test\TestStep\SetupConfigurationStep',
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
             ['configData' => $this->configData]
         )->run();
 
@@ -96,7 +96,7 @@ class CreateSimpleProductEntityTest extends Injectable
     public function tearDown()
     {
         $this->objectManager->create(
-            'Magento\Core\Test\TestStep\SetupConfigurationStep',
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
             ['configData' => $this->configData, 'rollback' => true]
         )->run();
     }
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.xml
index 364854e6870bbf6a8b9aa15989b7ccececcb7cbc..e84f0409dada6c372eead7ef608a6adb8544f588 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.xml
@@ -257,6 +257,7 @@
             <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
         </variation>
         <variation name="CreateSimpleProductEntityTestVariation15">
+            <data name="tag" xsi:type="string">to_maintain:yes</data>
             <data name="description" xsi:type="string">Create product with tax class and group price</data>
             <data name="product/data/url_key" xsi:type="string">simple-product-%isolation%</data>
             <data name="product/data/name" xsi:type="string">Simple Product %isolation%</data>
@@ -316,6 +317,7 @@
             <constraint name="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage" />
         </variation>
         <variation name="CreateSimpleProductEntityTestVariation18">
+            <data name="issue" xsi:type="string">Bug: MAGETWO-35342</data>
             <data name="description" xsi:type="string">Create product wit suite of custom options</data>
             <data name="product/data/url_key" xsi:type="string">simple-product-%isolation%</data>
             <data name="product/data/name" xsi:type="string">Simple Product %isolation%</data>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateVirtualProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateVirtualProductEntityTest.xml
index 2ad6faa471320afa52be989431db9d517d41bc98..25aaa878701d8fac2096c44e351b65caee56d4da 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateVirtualProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateVirtualProductEntityTest.xml
@@ -6,189 +6,189 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Catalog\Test\TestCase\Product\CreateVirtualProductEntityTest">
-    <variation name="CreateVirtualProductEntityTestVariation1" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with required fields</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">10</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/inventory_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-    </variation>
-    <variation name="CreateVirtualProductEntityTestVariation2" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with tier price</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">10</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">category_%isolation%</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">MAGETWO-23002</data>
-      <data name="product/data/inventory_manage_stock" xsi:type="string">Yes</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="CreateVirtualProductEntityTestVariation3" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with out of stock</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">-</data>
-      <data name="product/data/price/value" xsi:type="string">10</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">MAGETWO-23030</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/inventory_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Search</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSkuAutoGenerated"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="CreateVirtualProductEntityTestVariation4" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with group price</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">10</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">category_%isolation%</data>
-      <data name="product/data/group_price/preset" xsi:type="string">MAGETWO-23055</data>
-      <data name="product/data/price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/inventory_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-    </variation>
-    <variation name="CreateVirtualProductEntityTestVariation5" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with custom options suite and import options</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">9000</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">MAGETWO-23055</data>
-      <data name="product/data/price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/inventory_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">options-suite</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">catalogProductSimple::with_two_custom_option,catalogProductSimple::with_all_custom_option</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductGroupedPriceOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage"/>
-    </variation>
-    <variation name="CreateVirtualProductEntityTestVariation6" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product without manage stock</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">10</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">MAGETWO-23030</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/inventory_manage_stock" xsi:type="string">No</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSpecialPriceOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-    </variation>
-    <variation name="CreateVirtualProductEntityTestVariation7" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product out of stock with tier price</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">9000</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">default</data>
-      <data name="product/data/inventory_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" next="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" next="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage" prev="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage" next="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" prev="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" prev="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage"/>
-    </variation>
-    <variation name="CreateVirtualProductEntityTestVariation8" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">MAGETWO-13593: Create Virtual Product with Required Fields Only and Assign It to the Category</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">10</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">category_%isolation%</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/inventory_manage_stock" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="tag" xsi:type="string">test_type:acceptance_test</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" next="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" next="Magento\Catalog\Test\Constraint\AssertProductInCategory" prev="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory" next="Magento\Catalog\Test\Constraint\AssertProductPage" prev="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" prev="Magento\Catalog\Test\Constraint\AssertProductInCategory"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Catalog\Test\TestCase\Product\CreateVirtualProductEntityTest">
+        <variation name="CreateVirtualProductEntityTestVariation1">
+            <data name="description" xsi:type="string">Create product with required fields</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">10</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">-</data>
+            <data name="product/data/group_price/preset" xsi:type="string">-</data>
+            <data name="product/data/price/preset" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">-</data>
+            <data name="product/data/inventory_manage_stock" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">-</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+        </variation>
+        <variation name="CreateVirtualProductEntityTestVariation2">
+            <data name="description" xsi:type="string">Create product with tier price</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">10</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">category_%isolation%</data>
+            <data name="product/data/group_price/preset" xsi:type="string">-</data>
+            <data name="product/data/price/preset" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">MAGETWO-23002</data>
+            <data name="product/data/inventory_manage_stock" xsi:type="string">Yes</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="CreateVirtualProductEntityTestVariation3">
+            <data name="description" xsi:type="string">Create product with out of stock</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">-</data>
+            <data name="product/data/price/value" xsi:type="string">10</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">-</data>
+            <data name="product/data/group_price/preset" xsi:type="string">-</data>
+            <data name="product/data/price/preset" xsi:type="string">MAGETWO-23030</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">-</data>
+            <data name="product/data/inventory_manage_stock" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">Search</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSkuAutoGenerated" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="CreateVirtualProductEntityTestVariation4">
+            <data name="description" xsi:type="string">Create product with group price</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">10</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">category_%isolation%</data>
+            <data name="product/data/group_price/preset" xsi:type="string">MAGETWO-23055</data>
+            <data name="product/data/price/preset" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">-</data>
+            <data name="product/data/inventory_manage_stock" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+        </variation>
+        <variation name="CreateVirtualProductEntityTestVariation5">
+            <data name="description" xsi:type="string">Create product with custom options suite and import options</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">9000</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">-</data>
+            <data name="product/data/group_price/preset" xsi:type="string">MAGETWO-23055</data>
+            <data name="product/data/price/preset" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">-</data>
+            <data name="product/data/inventory_manage_stock" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">options-suite</data>
+            <data name="product/data/custom_options/import_products" xsi:type="string">catalogProductSimple::with_two_custom_option,catalogProductSimple::with_all_custom_option</data>
+            <data name="product/data/visibility" xsi:type="string">-</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductGroupedPriceOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage" />
+        </variation>
+        <variation name="CreateVirtualProductEntityTestVariation6">
+            <data name="description" xsi:type="string">Create product without manage stock</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">10</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">-</data>
+            <data name="product/data/group_price/preset" xsi:type="string">-</data>
+            <data name="product/data/price/preset" xsi:type="string">MAGETWO-23030</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">-</data>
+            <data name="product/data/inventory_manage_stock" xsi:type="string">No</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">-</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSpecialPriceOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+        </variation>
+        <variation name="CreateVirtualProductEntityTestVariation7">
+            <data name="description" xsi:type="string">Create product out of stock with tier price</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">9000</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">-</data>
+            <data name="product/data/group_price/preset" xsi:type="string">-</data>
+            <data name="product/data/price/preset" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">default</data>
+            <data name="product/data/inventory_manage_stock" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">-</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
+        </variation>
+        <variation name="CreateVirtualProductEntityTestVariation8">
+            <data name="description" xsi:type="string">MAGETWO-13593: Create Virtual Product with Required Fields Only and Assign It to the Category</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">10</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">category_%isolation%</data>
+            <data name="product/data/group_price/preset" xsi:type="string">-</data>
+            <data name="product/data/price/preset" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">-</data>
+            <data name="product/data/inventory_manage_stock" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">-</data>
+            <data name="tag" xsi:type="string">test_type:acceptance_test</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" prev="Magento\Catalog\Test\Constraint\AssertProductInCategory" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.php
index 1cdff9dbf0ed156e55ea0d5bbc657f7628f7e02d..6c297ef596e1f08f89d4d4f578e4945d1a67caa9 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.php
@@ -30,6 +30,7 @@ class ProductTypeSwitchingOnCreationTest extends Injectable
     /* tags */
     const MVP = 'yes';
     const DOMAIN = 'MX';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.xml
index d0bd1c40c54cbaa745d4f50caaed7c5f86542b6b..af77d4f6fd3d4ea47bad0a0bb3cf512ada4ab3f1 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.xml
@@ -6,84 +6,81 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Catalog\Test\TestCase\Product\ProductTypeSwitchingOnCreationTest">
-    <variation name="ProductTypeSwitchingOnCreationTestVariation1">
-      <data name="issue" xsi:type="string">Bug: MAGETWO-34630</data>
-      <data name="createProduct" xsi:type="string">simple</data>
-      <data name="product" xsi:type="string">configurableProduct::default</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductsInGrid"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductIsNotDisplayedSeparately"/>
-    </variation>
-    <variation name="ProductTypeSwitchingOnCreationTestVariation2">
-      <data name="createProduct" xsi:type="string">simple</data>
-      <data name="product" xsi:type="string">catalogProductVirtual::default</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-    </variation>
-    <variation name="ProductTypeSwitchingOnCreationTestVariation3">
-      <data name="createProduct" xsi:type="string">configurable</data>
-      <data name="product" xsi:type="string">catalogProductSimple::default</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-    </variation>
-    <variation name="ProductTypeSwitchingOnCreationTestVariation4">
-      <data name="createProduct" xsi:type="string">configurable</data>
-      <data name="product" xsi:type="string">catalogProductVirtual::default</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-    </variation>
-    <variation name="ProductTypeSwitchingOnCreationTestVariation5">
-      <data name="createProduct" xsi:type="string">virtual</data>
-      <data name="product" xsi:type="string">catalogProductSimple::default</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-    </variation>
-    <variation name="ProductTypeSwitchingOnCreationTestVariation6">
-      <data name="issue" xsi:type="string">Bug: MAGETWO-34630</data>
-      <data name="createProduct" xsi:type="string">virtual</data>
-      <data name="product" xsi:type="string">configurableProduct::not_virtual_for_type_switching</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductsInGrid"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductIsNotDisplayedSeparately"/>
-    </variation>
-    <variation name="ProductTypeSwitchingOnCreationTestVariation7">
-      <data name="createProduct" xsi:type="string">virtual</data>
-      <data name="product" xsi:type="string">downloadableProduct::default</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-    </variation>
-    <variation name="ProductTypeSwitchingOnCreationTestVariation8">
-      <data name="createProduct" xsi:type="string">downloadable</data>
-      <data name="product" xsi:type="string">catalogProductSimple::default</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-    </variation>
-    <variation name="ProductTypeSwitchingOnCreationTestVariation9">
-      <data name="issue" xsi:type="string">Bug: MAGETWO-34630</data>
-      <data name="createProduct" xsi:type="string">downloadable</data>
-      <data name="product" xsi:type="string">configurableProduct::not_virtual_for_type_switching</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductsInGrid"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductIsNotDisplayedSeparately"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Catalog\Test\TestCase\Product\ProductTypeSwitchingOnCreationTest">
+        <variation name="ProductTypeSwitchingOnCreationTestVariation1">
+            <data name="createProduct" xsi:type="string">simple</data>
+            <data name="product" xsi:type="string">configurableProduct::default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductsInGrid" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductIsNotDisplayedSeparately" />
+        </variation>
+        <variation name="ProductTypeSwitchingOnCreationTestVariation2">
+            <data name="createProduct" xsi:type="string">simple</data>
+            <data name="product" xsi:type="string">catalogProductVirtual::default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+        </variation>
+        <variation name="ProductTypeSwitchingOnCreationTestVariation3">
+            <data name="createProduct" xsi:type="string">configurable</data>
+            <data name="product" xsi:type="string">catalogProductSimple::default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+        </variation>
+        <variation name="ProductTypeSwitchingOnCreationTestVariation4">
+            <data name="createProduct" xsi:type="string">configurable</data>
+            <data name="product" xsi:type="string">catalogProductVirtual::default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+        </variation>
+        <variation name="ProductTypeSwitchingOnCreationTestVariation5">
+            <data name="createProduct" xsi:type="string">virtual</data>
+            <data name="product" xsi:type="string">catalogProductSimple::default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+        </variation>
+        <variation name="ProductTypeSwitchingOnCreationTestVariation6">
+            <data name="createProduct" xsi:type="string">virtual</data>
+            <data name="product" xsi:type="string">configurableProduct::not_virtual_for_type_switching</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductsInGrid" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductIsNotDisplayedSeparately" />
+        </variation>
+        <variation name="ProductTypeSwitchingOnCreationTestVariation7">
+            <data name="createProduct" xsi:type="string">virtual</data>
+            <data name="product" xsi:type="string">downloadableProduct::default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+        </variation>
+        <variation name="ProductTypeSwitchingOnCreationTestVariation8">
+            <data name="createProduct" xsi:type="string">downloadable</data>
+            <data name="product" xsi:type="string">catalogProductSimple::default</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+        </variation>
+        <variation name="ProductTypeSwitchingOnCreationTestVariation9">
+            <data name="createProduct" xsi:type="string">downloadable</data>
+            <data name="product" xsi:type="string">configurableProduct::not_virtual_for_type_switching</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductsInGrid" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductIsNotDisplayedSeparately" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnUpdateTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnUpdateTest.xml
index b862b94987c5d39d5a27a2ae6d0a609c6eb0c38c..d477c119f14ec5c992f4f9285a47c94bac67effc 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnUpdateTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnUpdateTest.xml
@@ -8,7 +8,7 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/variations.xsd">
     <testCase name="Magento\Catalog\Test\TestCase\Product\ProductTypeSwitchingOnUpdateTest">
         <variation name="ProductTypeSwitchingOnUpdateTestVariation1">
-            <data name="issue" xsi:type="string">Bug: MAGETWO-34630</data>
+            <data name="tag" xsi:type="string">stable:no</data>
             <data name="productOrigin" xsi:type="string">catalogProductSimple::default</data>
             <data name="product" xsi:type="string">configurableProduct::default</data>
             <data name="actionName" xsi:type="string">-</data>
@@ -28,6 +28,7 @@
             <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
         </variation>
         <variation name="ProductTypeSwitchingOnUpdateTestVariation3">
+            <data name="tag" xsi:type="string">stable:no</data>
             <data name="productOrigin" xsi:type="string">configurableProduct::default</data>
             <data name="product" xsi:type="string">catalogProductSimple::default</data>
             <data name="actionName" xsi:type="string">deleteAttributes</data>
@@ -35,6 +36,7 @@
             <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
         </variation>
         <variation name="ProductTypeSwitchingOnUpdateTestVariation4">
+            <data name="tag" xsi:type="string">stable:no</data>
             <data name="productOrigin" xsi:type="string">configurableProduct::default</data>
             <data name="product" xsi:type="string">catalogProductVirtual::default</data>
             <data name="actionName" xsi:type="string">deleteAttributes</data>
@@ -49,6 +51,7 @@
             <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
         </variation>
         <variation name="ProductTypeSwitchingOnUpdateTestVariation6">
+            <data name="tag" xsi:type="string">stable:no</data>
             <data name="productOrigin" xsi:type="string">catalogProductVirtual::default</data>
             <data name="product" xsi:type="string">configurableProduct::not_virtual_for_type_switching</data>
             <data name="actionName" xsi:type="string">-</data>
@@ -79,6 +82,7 @@
             <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
         </variation>
         <variation name="ProductTypeSwitchingOnUpdateTestVariation9">
+            <data name="tag" xsi:type="string">stable:no</data>
             <data name="productOrigin" xsi:type="string">downloadableProduct::default</data>
             <data name="product" xsi:type="string">configurableProduct::not_virtual_for_type_switching</data>
             <data name="actionName" xsi:type="string">-</data>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateSimpleProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateSimpleProductEntityTest.xml
index 14af00785b51e83d090ef37b21deff4056e0acdf..8ce489042245b7e67f8f6c80c419f88aacd216d5 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateSimpleProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateSimpleProductEntityTest.xml
@@ -6,171 +6,137 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Catalog\Test\TestCase\Product\UpdateSimpleProductEntityTest">
-    <variation name="UpdateSimpleProductEntityTestVariation1" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Update visibility to Catalog, Search</data>
-      <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">-</data>
-      <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">245.00</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">200.0000</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
-      <data name="product/data/weight" xsi:type="string">120.0000</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-    </variation>
-    <variation name="UpdateSimpleProductEntityTestVariation2" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Update visibility to Not Visible Individually</data>
-      <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">-</data>
-      <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">325.00</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">123.0000</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
-      <data name="product/data/weight" xsi:type="string">129.0000</data>
-      <data name="product/data/visibility" xsi:type="string">Not Visible Individually</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductIsNotDisplayingOnFrontend"/>
-    </variation>
-    <variation name="UpdateSimpleProductEntityTestVariation3" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Update visibility to Catalog</data>
-      <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">-</data>
-      <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">325.01</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">125.0000</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
-      <data name="product/data/weight" xsi:type="string">25.0000</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-    </variation>
-    <variation name="UpdateSimpleProductEntityTestVariation4" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Update visibility to Search</data>
-      <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">-</data>
-      <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">325.02</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">89.0000</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
-      <data name="product/data/weight" xsi:type="string">89.0000</data>
-      <data name="product/data/visibility" xsi:type="string">Search</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-    </variation>
-    <variation name="UpdateSimpleProductEntityTestVariation5" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Update stock to Out of Stock</data>
-      <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">-</data>
-      <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">325.03</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">25.0000</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
-      <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
-      <data name="product/data/weight" xsi:type="string">125.0000</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="UpdateSimpleProductEntityTestVariation6" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Update product status to offline</data>
-      <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">-</data>
-      <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">74.00</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">87.0000</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
-      <data name="product/data/weight" xsi:type="string">333.0000</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/status" xsi:type="string">Product offline</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductIsNotDisplayingOnFrontend"/>
-    </variation>
-    <variation name="UpdateSimpleProductEntityTestVariation7" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Update category</data>
-      <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">default</data>
-      <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">74.00</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">87.0000</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
-      <data name="product/data/weight" xsi:type="string">333.0000</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" next="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" next="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteUpdatedProductInGrid" prev="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteUpdatedProductInGrid" next="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" prev="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" prev="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteUpdatedProductInGrid"/>
-    </variation>
-    <variation name="UpdateSimpleProductEntityTestVariation8" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">MAGETWO-12428: Edit Simple Product</data>
-      <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">default</data>
-      <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">133.00</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" next="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" prev="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-    </variation>
-    <variation name="UpdateSimpleProductEntityTestVariation9" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">MAGETWO-12417: Unassign Products from the Category</data>
-      <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
-      <data name="product/data/category_ids/presets" xsi:type="string"> -</data>
-      <data name="product/data/name" xsi:type="string">-</data>
-      <data name="product/data/sku" xsi:type="string">-</data>
-      <data name="product/data/price/value" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">-</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">-</data>
-      <data name="product/data/status" xsi:type="string">-</data>
-      <data name="tag" xsi:type="string">test_type:acceptance_test</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" next="Magento\Catalog\Test\Constraint\AssertProductNotVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductNotVisibleInCategory" prev="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Catalog\Test\TestCase\Product\UpdateSimpleProductEntityTest">
+        <variation name="UpdateSimpleProductEntityTestVariation1">
+            <data name="description" xsi:type="string">Update visibility to Catalog, Search</data>
+            <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
+            <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">245.00</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">200.0000</data>
+            <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
+            <data name="product/data/weight" xsi:type="string">120.0000</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+        </variation>
+        <variation name="UpdateSimpleProductEntityTestVariation2">
+            <data name="description" xsi:type="string">Update visibility to Not Visible Individually</data>
+            <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
+            <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">325.00</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">123.0000</data>
+            <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
+            <data name="product/data/weight" xsi:type="string">129.0000</data>
+            <data name="product/data/visibility" xsi:type="string">Not Visible Individually</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductIsNotDisplayingOnFrontend" />
+        </variation>
+        <variation name="UpdateSimpleProductEntityTestVariation3">
+            <data name="description" xsi:type="string">Update visibility to Catalog</data>
+            <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
+            <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">325.01</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">125.0000</data>
+            <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
+            <data name="product/data/weight" xsi:type="string">25.0000</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+        </variation>
+        <variation name="UpdateSimpleProductEntityTestVariation4">
+            <data name="description" xsi:type="string">Update visibility to Search</data>
+            <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
+            <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">325.02</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">89.0000</data>
+            <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
+            <data name="product/data/weight" xsi:type="string">89.0000</data>
+            <data name="product/data/visibility" xsi:type="string">Search</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+        </variation>
+        <variation name="UpdateSimpleProductEntityTestVariation5">
+            <data name="description" xsi:type="string">Update stock to Out of Stock</data>
+            <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
+            <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">325.03</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">25.0000</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
+            <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
+            <data name="product/data/weight" xsi:type="string">125.0000</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="UpdateSimpleProductEntityTestVariation6">
+            <data name="description" xsi:type="string">Update product status to offline</data>
+            <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
+            <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">74.00</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">87.0000</data>
+            <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
+            <data name="product/data/weight" xsi:type="string">333.0000</data>
+            <data name="product/data/status" xsi:type="string">Product offline</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductIsNotDisplayingOnFrontend" />
+        </variation>
+        <variation name="UpdateSimpleProductEntityTestVariation7">
+            <data name="tag" xsi:type="string">stable:no</data>
+            <data name="description" xsi:type="string">Update category</data>
+            <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
+            <data name="product/data/category_ids/presets" xsi:type="string">default</data>
+            <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">74.00</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">87.0000</data>
+            <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
+            <data name="product/data/weight" xsi:type="string">333.0000</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteUpdatedProductInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+        </variation>
+        <variation name="UpdateSimpleProductEntityTestVariation8">
+            <data name="description" xsi:type="string">MAGETWO-12428: Edit Simple Product</data>
+            <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
+            <data name="product/data/category_ids/presets" xsi:type="string">default</data>
+            <data name="product/data/name" xsi:type="string">Test simple product %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">test_simple_product_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">133.00</data>
+            <data name="product/data/url_key" xsi:type="string">test-simple-product-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+        </variation>
+        <variation name="UpdateSimpleProductEntityTestVariation9">
+            <data name="description" xsi:type="string">MAGETWO-12417: Unassign Products from the Category</data>
+            <data name="initialProduct/dataSet" xsi:type="string">product_with_category</data>
+            <data name="product/data/category_ids/presets" xsi:type="string"> -</data>
+            <data name="tag" xsi:type="string">test_type:acceptance_test</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductNotVisibleInCategory" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateVirtualProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateVirtualProductEntityTest.xml
index 35bf2f5fcd1082e2631f0f0dee8fbd5d730466ad..0346cc1467f5ee7cf386c0d0f304c5bef9625a62 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateVirtualProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateVirtualProductEntityTest.xml
@@ -6,264 +6,264 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Catalog\Test\TestCase\Product\UpdateVirtualProductEntityTest">
-    <variation name="UpdateVirtualProductEntityTestVariation1">
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">99.99</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">default_subcategory</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">MAGETWO-23002</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="UpdateVirtualProductEntityTestVariation2">
-      <data name="product/data/name" xsi:type="string">virtual_product_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">120.00</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">45</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSpecialPriceOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="UpdateVirtualProductEntityTestVariation3">
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">185.00</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">default_subcategory</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">MAGETWO-23002</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="UpdateVirtualProductEntityTestVariation4">
-      <data name="product/data/name" xsi:type="string">virtual_product_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">99.99</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Search</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="UpdateVirtualProductEntityTestVariation5">
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">5.00</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="UpdateVirtualProductEntityTestVariation6">
-      <data name="product/data/name" xsi:type="string">virtual_product_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">145.00</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">default_subcategory</data>
-      <data name="product/data/group_price/preset" xsi:type="string">MAGETWO-23055</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">MAGETWO-23002</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductGroupedPriceOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="UpdateVirtualProductEntityTestVariation7">
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">99.99</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">default_subcategory</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">45</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="UpdateVirtualProductEntityTestVariation8">
-      <data name="product/data/name" xsi:type="string">virtual_product_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">5.00</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">MAGETWO-23055</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Search</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="UpdateVirtualProductEntityTestVariation9">
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">120.00</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">default_subcategory</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">options-suite</data>
-      <data name="product/data/visibility" xsi:type="string">Search</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSpecialPriceOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="UpdateVirtualProductEntityTestVariation10">
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">99.99</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">MAGETWO-23055</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="UpdateVirtualProductEntityTestVariation11">
-      <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
-      <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">99.99</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category_ids/presets" xsi:type="string">default_subcategory</data>
-      <data name="product/data/group_price/preset" xsi:type="string">MAGETWO-23055</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">MAGETWO-23002</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/visibility" xsi:type="string">Catalog</data>
-      <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSpecialPriceOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductGroupedPriceOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Catalog\Test\TestCase\Product\UpdateVirtualProductEntityTest">
+        <variation name="UpdateVirtualProductEntityTestVariation1">
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">99.99</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category_ids/presets" xsi:type="string">default_subcategory</data>
+            <data name="product/data/group_price/preset" xsi:type="string">-</data>
+            <data name="product/data/special_price" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">MAGETWO-23002</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="UpdateVirtualProductEntityTestVariation2">
+            <data name="product/data/name" xsi:type="string">virtual_product_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">120.00</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category_ids/presets" xsi:type="string">-</data>
+            <data name="product/data/group_price/preset" xsi:type="string">-</data>
+            <data name="product/data/special_price" xsi:type="string">45</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSpecialPriceOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="UpdateVirtualProductEntityTestVariation3">
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">185.00</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category_ids/presets" xsi:type="string">default_subcategory</data>
+            <data name="product/data/group_price/preset" xsi:type="string">-</data>
+            <data name="product/data/special_price" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">MAGETWO-23002</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="UpdateVirtualProductEntityTestVariation4">
+            <data name="product/data/name" xsi:type="string">virtual_product_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">99.99</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category_ids/presets" xsi:type="string">-</data>
+            <data name="product/data/group_price/preset" xsi:type="string">-</data>
+            <data name="product/data/special_price" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">Search</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="UpdateVirtualProductEntityTestVariation5">
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">5.00</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category_ids/presets" xsi:type="string">-</data>
+            <data name="product/data/group_price/preset" xsi:type="string">-</data>
+            <data name="product/data/special_price" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="UpdateVirtualProductEntityTestVariation6">
+            <data name="product/data/name" xsi:type="string">virtual_product_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">145.00</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category_ids/presets" xsi:type="string">default_subcategory</data>
+            <data name="product/data/group_price/preset" xsi:type="string">MAGETWO-23055</data>
+            <data name="product/data/special_price" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">MAGETWO-23002</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductGroupedPriceOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="UpdateVirtualProductEntityTestVariation7">
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">99.99</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category_ids/presets" xsi:type="string">default_subcategory</data>
+            <data name="product/data/group_price/preset" xsi:type="string">-</data>
+            <data name="product/data/special_price" xsi:type="string">45</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="UpdateVirtualProductEntityTestVariation8">
+            <data name="product/data/name" xsi:type="string">virtual_product_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">5.00</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category_ids/presets" xsi:type="string">-</data>
+            <data name="product/data/group_price/preset" xsi:type="string">MAGETWO-23055</data>
+            <data name="product/data/special_price" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">Search</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="UpdateVirtualProductEntityTestVariation9">
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">120.00</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category_ids/presets" xsi:type="string">default_subcategory</data>
+            <data name="product/data/group_price/preset" xsi:type="string">-</data>
+            <data name="product/data/special_price" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">options-suite</data>
+            <data name="product/data/visibility" xsi:type="string">Search</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSpecialPriceOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="UpdateVirtualProductEntityTestVariation10">
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">99.99</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category_ids/presets" xsi:type="string">-</data>
+            <data name="product/data/group_price/preset" xsi:type="string">MAGETWO-23055</data>
+            <data name="product/data/special_price" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">-</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog, Search</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="UpdateVirtualProductEntityTestVariation11">
+            <data name="product/data/name" xsi:type="string">VirtualProduct %isolation%</data>
+            <data name="product/data/sku" xsi:type="string">virtual_sku_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">99.99</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">999</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category_ids/presets" xsi:type="string">default_subcategory</data>
+            <data name="product/data/group_price/preset" xsi:type="string">MAGETWO-23055</data>
+            <data name="product/data/special_price" xsi:type="string">-</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">MAGETWO-23002</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/visibility" xsi:type="string">Catalog</data>
+            <data name="product/data/url_key" xsi:type="string">virtual-product-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSpecialPriceOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductGroupedPriceOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityFromProductPageTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityFromProductPageTest.php
index d17441b09b1fce6815ac4fa4f70771fa8918b335..82611c683d5116f3bceb2a1f2c17011b9237a353 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityFromProductPageTest.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityFromProductPageTest.php
@@ -37,6 +37,7 @@ class CreateProductAttributeEntityFromProductPageTest extends Scenario
     /* tags */
     const MVP = 'yes';
     const DOMAIN = 'MX';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityTest.xml
index eccbf7a69b6157e8e0f8da6f779c24292f659a97..11c19fd14519b9b8fd6cb122f3214f981d06309a 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityTest.xml
@@ -6,285 +6,184 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Catalog\Test\TestCase\ProductAttribute\CreateProductAttributeEntityTest">
-    <variation name="CreateProductAttributeEntityTestVariation1">
-      <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
-      <data name="productAttribute/data/frontend_label" xsi:type="string">Text_Field_Admin_%isolation%</data>
-      <data name="productAttribute/data/frontend_input" xsi:type="string">Text Field</data>
-      <data name="productAttribute/data/options/preset" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_required" xsi:type="string">No</data>
-      <data name="productAttribute/data/attribute_code" xsi:type="string">attr_textfield_%isolation%</data>
-      <data name="productAttribute/data/is_global" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_text" xsi:type="string">default_value_text%isolation%</data>
-      <data name="productAttribute/data/default_value_textarea" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_date/pattern" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_yesno" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_unique" xsi:type="string">-</data>
-      <data name="productAttribute/data/manage_frontend_label" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_searchable" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_comparable" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_filterable" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_filterable_in_search" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_used_for_promo_rules" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_html_allowed_on_front" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_visible_on_front" xsi:type="string">-</data>
-      <data name="productAttribute/data/used_in_product_listing" xsi:type="string">-</data>
-      <data name="productAttribute/data/used_for_sort_by" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm"/>
-    </variation>
-    <variation name="CreateProductAttributeEntityTestVariation2">
-      <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
-      <data name="productAttribute/data/frontend_label" xsi:type="string">Text_Field_Admin_%isolation%</data>
-      <data name="productAttribute/data/frontend_input" xsi:type="string">Text Area</data>
-      <data name="productAttribute/data/options/preset" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_required" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/attribute_code" xsi:type="string">attr_textarea_%isolation%</data>
-      <data name="productAttribute/data/is_global" xsi:type="string">Store View</data>
-      <data name="productAttribute/data/default_value_text" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_textarea" xsi:type="string">default_value_textarea%isolation%</data>
-      <data name="productAttribute/data/default_value_date/pattern" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_yesno" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_unique" xsi:type="string">No</data>
-      <data name="productAttribute/data/manage_frontend_label" xsi:type="string">Area_Field%isolation%</data>
-      <data name="productAttribute/data/is_searchable" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_comparable" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_filterable" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_filterable_in_search" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_used_for_promo_rules" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_html_allowed_on_front" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_visible_on_front" xsi:type="string">-</data>
-      <data name="productAttribute/data/used_in_product_listing" xsi:type="string">-</data>
-      <data name="productAttribute/data/used_for_sort_by" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsRequired"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeSearchableByLabel"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeDisplayingOnSearchForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsComparable"/>
-    </variation>
-    <variation name="CreateProductAttributeEntityTestVariation3">
-      <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
-      <data name="productAttribute/data/frontend_label" xsi:type="string">Date_Admin_%isolation%</data>
-      <data name="productAttribute/data/frontend_input" xsi:type="string">Date</data>
-      <data name="productAttribute/data/options/preset" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_required" xsi:type="string">No</data>
-      <data name="productAttribute/data/attribute_code" xsi:type="string">attr_date_%isolation%</data>
-      <data name="productAttribute/data/is_global" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_text" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_textarea" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_date/pattern" xsi:type="string">n/j/y</data>
-      <data name="productAttribute/data/default_value_yesno" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_unique" xsi:type="string">No</data>
-      <data name="productAttribute/data/manage_frontend_label" xsi:type="string">Date_Store_View</data>
-      <data name="productAttribute/data/is_searchable" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_comparable" xsi:type="string">No</data>
-      <data name="productAttribute/data/is_filterable" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_filterable_in_search" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_used_for_promo_rules" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_html_allowed_on_front" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_visible_on_front" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/used_in_product_listing" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/used_for_sort_by" xsi:type="string">Yes</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsUsedInSortOnFrontend"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsUsedPromoRules"/>
-    </variation>
-    <variation name="CreateProductAttributeEntityTestVariation4">
-      <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
-      <data name="productAttribute/data/frontend_label" xsi:type="string">Yes/No_Admin_%isolation%</data>
-      <data name="productAttribute/data/frontend_input" xsi:type="string">Yes/No</data>
-      <data name="productAttribute/data/options/preset" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_required" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/attribute_code" xsi:type="string">attr_yesno_%isolation%</data>
-      <data name="productAttribute/data/is_global" xsi:type="string">Global</data>
-      <data name="productAttribute/data/default_value_text" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_textarea" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_date/pattern" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_yesno" xsi:type="string">No</data>
-      <data name="productAttribute/data/is_unique" xsi:type="string">-</data>
-      <data name="productAttribute/data/manage_frontend_label" xsi:type="string">Yes/No_Global</data>
-      <data name="productAttribute/data/is_searchable" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_comparable" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_filterable" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_filterable_in_search" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_used_for_promo_rules" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_html_allowed_on_front" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_visible_on_front" xsi:type="string">-</data>
-      <data name="productAttribute/data/used_in_product_listing" xsi:type="string">-</data>
-      <data name="productAttribute/data/used_for_sort_by" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm"/>
-    </variation>
-    <variation name="CreateProductAttributeEntityTestVariation5">
-      <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
-      <data name="productAttribute/data/frontend_label" xsi:type="string">Multiple_Select_Admin_%isolation%</data>
-      <data name="productAttribute/data/frontend_input" xsi:type="string">Multiple Select</data>
-      <data name="productAttribute/data/options/preset" xsi:type="string">default</data>
-      <data name="productAttribute/data/is_required" xsi:type="string">No</data>
-      <data name="productAttribute/data/attribute_code" xsi:type="string">attr_multiselect_%isolation%</data>
-      <data name="productAttribute/data/is_global" xsi:type="string">Website</data>
-      <data name="productAttribute/data/default_value_text" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_textarea" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_date/pattern" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_yesno" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_unique" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/manage_frontend_label" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_searchable" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_comparable" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_filterable" xsi:type="string">Filterable (with results)</data>
-      <data name="productAttribute/data/is_filterable_in_search" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_used_for_promo_rules" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_html_allowed_on_front" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_visible_on_front" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/used_in_product_listing" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/used_for_sort_by" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeDisplayingOnFrontend"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeDisplayingOnSearchForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsComparable"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsFilterable"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsFilterableInSearch"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeSearchableByLabel"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeOptionsOnProductForm"/>
-    </variation>
-    <variation name="CreateProductAttributeEntityTestVariation6">
-      <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
-      <data name="productAttribute/data/frontend_label" xsi:type="string">Dropdown_Admin_%isolation%</data>
-      <data name="productAttribute/data/frontend_input" xsi:type="string">Dropdown</data>
-      <data name="productAttribute/data/options/preset" xsi:type="string">default</data>
-      <data name="productAttribute/data/is_required" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/attribute_code" xsi:type="string">attr_dropdown_%isolation%</data>
-      <data name="productAttribute/data/is_global" xsi:type="string">Global</data>
-      <data name="productAttribute/data/default_value_text" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_textarea" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_date/pattern" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_yesno" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_unique" xsi:type="string">No</data>
-      <data name="productAttribute/data/manage_frontend_label" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_searchable" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_comparable" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_filterable" xsi:type="string">Filterable (with results)</data>
-      <data name="productAttribute/data/is_filterable_in_search" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_used_for_promo_rules" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_html_allowed_on_front" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_visible_on_front" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/used_in_product_listing" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/used_for_sort_by" xsi:type="string">Yes</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsRequired"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsGlobal"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeDisplayingOnFrontend"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeDisplayingOnSearchForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeSearchableByLabel"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsComparable"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsUsedInSortOnFrontend"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsFilterable"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertProductAttributeIsConfigurable"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsFilterableInSearch"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeOptionsOnProductForm"/>
-    </variation>
-    <variation name="CreateProductAttributeEntityTestVariation7">
-      <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
-      <data name="productAttribute/data/frontend_label" xsi:type="string">Price_Admin_%isolation%</data>
-      <data name="productAttribute/data/frontend_input" xsi:type="string">Price</data>
-      <data name="productAttribute/data/options/preset" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_required" xsi:type="string">No</data>
-      <data name="productAttribute/data/attribute_code" xsi:type="string">attr_price_%isolation%</data>
-      <data name="productAttribute/data/is_global" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_text" xsi:type="string">1000</data>
-      <data name="productAttribute/data/default_value_textarea" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_date/pattern" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_yesno" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_unique" xsi:type="string">No</data>
-      <data name="productAttribute/data/manage_frontend_label" xsi:type="string">Price_StoreView</data>
-      <data name="productAttribute/data/is_searchable" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_comparable" xsi:type="string">No</data>
-      <data name="productAttribute/data/is_filterable" xsi:type="string">Filterable (with results)</data>
-      <data name="productAttribute/data/is_filterable_in_search" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_used_for_promo_rules" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_html_allowed_on_front" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_visible_on_front" xsi:type="string">-</data>
-      <data name="productAttribute/data/used_in_product_listing" xsi:type="string">-</data>
-      <data name="productAttribute/data/used_for_sort_by" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeSearchableByLabel"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeDisplayingOnSearchForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsFilterable"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsFilterableInSearch"/>
-    </variation>
-    <variation name="CreateProductAttributeEntityTestVariation8">
-      <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
-      <data name="productAttribute/data/frontend_label" xsi:type="string">Fixed_Product_Tax_Admin_%isolation%</data>
-      <data name="productAttribute/data/frontend_input" xsi:type="string">Fixed Product Tax</data>
-      <data name="productAttribute/data/options/preset" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_required" xsi:type="string">-</data>
-      <data name="productAttribute/data/attribute_code" xsi:type="string">attr_fpt_code_%isolation%</data>
-      <data name="productAttribute/data/is_global" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_text" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_textarea" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_date/pattern" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_yesno" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_unique" xsi:type="string">-</data>
-      <data name="productAttribute/data/manage_frontend_label" xsi:type="string">Fixed_Product_Tax_Storeview</data>
-      <data name="productAttribute/data/is_searchable" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_comparable" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_filterable" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_filterable_in_search" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_used_for_promo_rules" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_html_allowed_on_front" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_visible_on_front" xsi:type="string">-</data>
-      <data name="productAttribute/data/used_in_product_listing" xsi:type="string">-</data>
-      <data name="productAttribute/data/used_for_sort_by" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm"/>
-    </variation>
-    <variation name="CreateProductAttributeEntityTestVariation9">
-      <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
-      <data name="productAttribute/data/frontend_label" xsi:type="string">Text_Field_Admin_%isolation%</data>
-      <data name="productAttribute/data/frontend_input" xsi:type="string">Text Field</data>
-      <data name="productAttribute/data/options/preset" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_required" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/attribute_code" xsi:type="string">attr_textfield_%isolation%</data>
-      <data name="productAttribute/data/is_global" xsi:type="string">Store View</data>
-      <data name="productAttribute/data/default_value_text" xsi:type="string">default_value_text%isolation%</data>
-      <data name="productAttribute/data/default_value_textarea" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_date/pattern" xsi:type="string">-</data>
-      <data name="productAttribute/data/default_value_yesno" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_unique" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/manage_frontend_label" xsi:type="string">Text_Field%isolation%</data>
-      <data name="productAttribute/data/is_searchable" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_comparable" xsi:type="string">Yes</data>
-      <data name="productAttribute/data/is_filterable" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_filterable_in_search" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_used_for_promo_rules" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_html_allowed_on_front" xsi:type="string">-</data>
-      <data name="productAttribute/data/is_visible_on_front" xsi:type="string">-</data>
-      <data name="productAttribute/data/used_in_product_listing" xsi:type="string">-</data>
-      <data name="productAttribute/data/used_for_sort_by" xsi:type="string">-</data>
-      <data name="issue" xsi:type="string">Bug: MAGETWO-33625</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsUnique"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Catalog\Test\TestCase\ProductAttribute\CreateProductAttributeEntityTest">
+        <variation name="CreateProductAttributeEntityTestVariation1">
+            <data name="tag" xsi:type="string">to_maintain:yes</data>
+            <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
+            <data name="productAttribute/data/frontend_label" xsi:type="string">Text_Field_Admin_%isolation%</data>
+            <data name="productAttribute/data/frontend_input" xsi:type="string">Text Field</data>
+            <data name="productAttribute/data/is_required" xsi:type="string">No</data>
+            <data name="productAttribute/data/attribute_code" xsi:type="string">attr_textfield_%isolation%</data>
+            <data name="productAttribute/data/default_value_text" xsi:type="string">default_value_text%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm" />
+        </variation>
+        <variation name="CreateProductAttributeEntityTestVariation2">
+            <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
+            <data name="productAttribute/data/frontend_label" xsi:type="string">Text_Field_Admin_%isolation%</data>
+            <data name="productAttribute/data/frontend_input" xsi:type="string">Text Area</data>
+            <data name="productAttribute/data/is_required" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/attribute_code" xsi:type="string">attr_textarea_%isolation%</data>
+            <data name="productAttribute/data/is_global" xsi:type="string">Store View</data>
+            <data name="productAttribute/data/default_value_text" xsi:type="string">-</data>
+            <data name="productAttribute/data/default_value_textarea" xsi:type="string">default_value_textarea%isolation%</data>
+            <data name="productAttribute/data/is_unique" xsi:type="string">No</data>
+            <data name="productAttribute/data/manage_frontend_label" xsi:type="string">Area_Field%isolation%</data>
+            <data name="productAttribute/data/is_searchable" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_comparable" xsi:type="string">Yes</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsRequired" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeSearchableByLabel" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeDisplayingOnSearchForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsComparable" />
+        </variation>
+        <variation name="CreateProductAttributeEntityTestVariation3">
+            <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
+            <data name="productAttribute/data/frontend_label" xsi:type="string">Date_Admin_%isolation%</data>
+            <data name="productAttribute/data/frontend_input" xsi:type="string">Date</data>
+            <data name="productAttribute/data/is_required" xsi:type="string">No</data>
+            <data name="productAttribute/data/attribute_code" xsi:type="string">attr_date_%isolation%</data>
+            <data name="productAttribute/data/default_value_date/pattern" xsi:type="string">n/j/y</data>
+            <data name="productAttribute/data/is_unique" xsi:type="string">No</data>
+            <data name="productAttribute/data/manage_frontend_label" xsi:type="string">Date_Store_View</data>
+            <data name="productAttribute/data/is_searchable" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_comparable" xsi:type="string">No</data>
+            <data name="productAttribute/data/is_visible_on_front" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/used_in_product_listing" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/used_for_sort_by" xsi:type="string">Yes</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsUsedInSortOnFrontend" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsUsedPromoRules" />
+        </variation>
+        <variation name="CreateProductAttributeEntityTestVariation4">
+            <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
+            <data name="productAttribute/data/frontend_label" xsi:type="string">Yes/No_Admin_%isolation%</data>
+            <data name="productAttribute/data/frontend_input" xsi:type="string">Yes/No</data>
+            <data name="productAttribute/data/is_required" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/attribute_code" xsi:type="string">attr_yesno_%isolation%</data>
+            <data name="productAttribute/data/is_global" xsi:type="string">Global</data>
+            <data name="productAttribute/data/default_value_yesno" xsi:type="string">No</data>
+            <data name="productAttribute/data/manage_frontend_label" xsi:type="string">Yes/No_Global</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm" />
+        </variation>
+        <variation name="CreateProductAttributeEntityTestVariation5">
+            <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
+            <data name="productAttribute/data/frontend_label" xsi:type="string">Multiple_Select_Admin_%isolation%</data>
+            <data name="productAttribute/data/frontend_input" xsi:type="string">Multiple Select</data>
+            <data name="productAttribute/data/options/preset" xsi:type="string">default</data>
+            <data name="productAttribute/data/is_required" xsi:type="string">No</data>
+            <data name="productAttribute/data/attribute_code" xsi:type="string">attr_multiselect_%isolation%</data>
+            <data name="productAttribute/data/is_global" xsi:type="string">Website</data>
+            <data name="productAttribute/data/is_unique" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_searchable" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_comparable" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_filterable" xsi:type="string">Filterable (with results)</data>
+            <data name="productAttribute/data/is_filterable_in_search" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_html_allowed_on_front" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_visible_on_front" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/used_in_product_listing" xsi:type="string">Yes</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeDisplayingOnFrontend" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeDisplayingOnSearchForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsComparable" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsFilterable" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsFilterableInSearch" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeSearchableByLabel" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeOptionsOnProductForm" />
+        </variation>
+        <variation name="CreateProductAttributeEntityTestVariation6">
+            <data name="tag" xsi:type="string">to_maintain:yes</data>
+            <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
+            <data name="productAttribute/data/frontend_label" xsi:type="string">Dropdown_Admin_%isolation%</data>
+            <data name="productAttribute/data/frontend_input" xsi:type="string">Dropdown</data>
+            <data name="productAttribute/data/options/preset" xsi:type="string">default</data>
+            <data name="productAttribute/data/is_required" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/attribute_code" xsi:type="string">attr_dropdown_%isolation%</data>
+            <data name="productAttribute/data/is_global" xsi:type="string">Global</data>
+            <data name="productAttribute/data/is_unique" xsi:type="string">No</data>
+            <data name="productAttribute/data/is_searchable" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_comparable" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_filterable" xsi:type="string">Filterable (with results)</data>
+            <data name="productAttribute/data/is_filterable_in_search" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_html_allowed_on_front" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_visible_on_front" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/used_in_product_listing" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/used_for_sort_by" xsi:type="string">Yes</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsRequired" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsGlobal" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeDisplayingOnFrontend" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeDisplayingOnSearchForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeSearchableByLabel" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsComparable" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsUsedInSortOnFrontend" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsFilterable" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertProductAttributeIsConfigurable" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsFilterableInSearch" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeOptionsOnProductForm" />
+        </variation>
+        <variation name="CreateProductAttributeEntityTestVariation7">
+            <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
+            <data name="productAttribute/data/frontend_label" xsi:type="string">Price_Admin_%isolation%</data>
+            <data name="productAttribute/data/frontend_input" xsi:type="string">Price</data>
+            <data name="productAttribute/data/is_required" xsi:type="string">No</data>
+            <data name="productAttribute/data/attribute_code" xsi:type="string">attr_price_%isolation%</data>
+            <data name="productAttribute/data/default_value_text" xsi:type="string">1000</data>
+            <data name="productAttribute/data/is_unique" xsi:type="string">No</data>
+            <data name="productAttribute/data/manage_frontend_label" xsi:type="string">Price_StoreView</data>
+            <data name="productAttribute/data/is_searchable" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_comparable" xsi:type="string">No</data>
+            <data name="productAttribute/data/is_filterable" xsi:type="string">Filterable (with results)</data>
+            <data name="productAttribute/data/is_filterable_in_search" xsi:type="string">Yes</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeSearchableByLabel" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeDisplayingOnSearchForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsFilterable" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsFilterableInSearch" />
+        </variation>
+        <variation name="CreateProductAttributeEntityTestVariation8">
+            <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
+            <data name="productAttribute/data/frontend_label" xsi:type="string">Fixed_Product_Tax_Admin_%isolation%</data>
+            <data name="productAttribute/data/frontend_input" xsi:type="string">Fixed Product Tax</data>
+            <data name="productAttribute/data/attribute_code" xsi:type="string">attr_fpt_code_%isolation%</data>
+            <data name="productAttribute/data/manage_frontend_label" xsi:type="string">Fixed_Product_Tax_Storeview</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAttributeForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertAddedProductAttributeOnProductForm" />
+        </variation>
+        <variation name="CreateProductAttributeEntityTestVariation9">
+            <data name="productTemplate/dataSet" xsi:type="string">custom_attribute_set</data>
+            <data name="productAttribute/data/frontend_label" xsi:type="string">Text_Field_Admin_%isolation%</data>
+            <data name="productAttribute/data/frontend_input" xsi:type="string">Text Field</data>
+            <data name="productAttribute/data/is_required" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/attribute_code" xsi:type="string">attr_textfield_%isolation%</data>
+            <data name="productAttribute/data/is_global" xsi:type="string">Store View</data>
+            <data name="productAttribute/data/default_value_text" xsi:type="string">default_value_text%isolation%</data>
+            <data name="productAttribute/data/is_unique" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/manage_frontend_label" xsi:type="string">Text_Field%isolation%</data>
+            <data name="productAttribute/data/is_searchable" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_visible_in_advanced_search" xsi:type="string">Yes</data>
+            <data name="productAttribute/data/is_comparable" xsi:type="string">Yes</data>
+            <data name="issue" xsi:type="string">Bug: MAGETWO-33625</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeIsUnique" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.php
index 7303aaf305c9708988254098508e4eba3ebc58a0..d037ce350d9bd8485be0c71e8021be587aaf5720 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.php
@@ -32,6 +32,7 @@ class DeleteProductAttributeEntityTest extends Injectable
     /* tags */
     const MVP = 'yes';
     const DOMAIN = 'MX';
+    const STABLE = 'no';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.xml
index 2535aabafab4c4bb9120d330cbe8ab391c1aec4b..9c1369bf8e710dd2ae17e039eb657392d6958381 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.xml
@@ -6,22 +6,22 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Catalog\Test\TestCase\ProductAttribute\DeleteProductAttributeEntityTest">
-    <variation name="DeleteProductAttributeEntityTestVariation1">
-      <data name="attribute/dataSet" xsi:type="string">attribute_type_text_field</data>
-      <data name="isRequired" xsi:type="string">Yes</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeSuccessDeleteMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeAbsenceInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeAbsenceInSearchOnProductForm"/>
-      <constraint name="Magento\ImportExport\Test\Constraint\AssertProductAttributeAbsenceForExport"/>
-    </variation>
-    <variation name="DeleteProductAttributeEntityTestVariation2">
-      <data name="attribute/dataSet" xsi:type="string">attribute_type_dropdown</data>
-      <data name="isRequired" xsi:type="string">No</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeSuccessDeleteMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeAbsenceInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeAbsenceInSearchOnProductForm"/>
-      <constraint name="Magento\ImportExport\Test\Constraint\AssertProductAttributeAbsenceForExport"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Catalog\Test\TestCase\ProductAttribute\DeleteProductAttributeEntityTest">
+        <variation name="DeleteProductAttributeEntityTestVariation1">
+            <data name="attribute/dataSet" xsi:type="string">attribute_type_text_field</data>
+            <data name="isRequired" xsi:type="string">Yes</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeSuccessDeleteMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeAbsenceInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeAbsenceInSearchOnProductForm" />
+            <constraint name="Magento\ImportExport\Test\Constraint\AssertProductAttributeAbsenceForExport" />
+        </variation>
+        <variation name="DeleteProductAttributeEntityTestVariation2">
+            <data name="attribute/dataSet" xsi:type="string">attribute_type_dropdown</data>
+            <data name="isRequired" xsi:type="string">No</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeSuccessDeleteMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeAbsenceInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductAttributeAbsenceInSearchOnProductForm" />
+            <constraint name="Magento\ImportExport\Test\Constraint\AssertProductAttributeAbsenceForExport" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/CatalogInventory/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/CatalogInventory/Test/Repository/ConfigData.xml
index 5773dfa1834a3d944777f3f339a23d3f646f007a..7ad8d687b34cb81975ac92ee8a6dc58bb7e25973 100644
--- a/dev/tests/functional/tests/app/Magento/CatalogInventory/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/CatalogInventory/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="display_out_of_stock">
             <field path="cataloginventory/options/show_out_of_stock" scope="cataloginventory" scope_id="1" label="Yes" xsi:type="string">1</field>
         </dataset>
diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedCatalogPage.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedCatalogPage.php
index 1eab3289e6597aa4939e1168848babfcdef38e6c..045029bca59a36e4f52a0d1f2523d43272397223 100755
--- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedCatalogPage.php
+++ b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedCatalogPage.php
@@ -44,11 +44,10 @@ class AssertCatalogPriceRuleAppliedCatalogPage extends AbstractConstraint
         $cmsIndexPage->open();
         foreach ($products as $key => $product) {
             $categoryName = $product->getCategoryIds()[0];
-            $productName = $product->getName();
             $cmsIndexPage->getTopmenu()->selectCategoryByName($categoryName);
-            $productPriceBlock = $catalogCategoryViewPage->getListProductBlock()->getProductPriceBlock($productName);
-            $actualPrice['regular'] = $productPriceBlock->getRegularPrice();
-            $actualPrice['special'] = $productPriceBlock->getSpecialPrice();
+            $priceBlock = $catalogCategoryViewPage->getListProductBlock()->getProductItem($product)->getPriceBlock();
+            $actualPrice['regular'] = $priceBlock->getOldPrice();
+            $actualPrice['special'] = $priceBlock->getSpecialPrice();
             $actualPrice['discount_amount'] = $actualPrice['regular'] - $actualPrice['special'];
             $diff = $this->verifyData($actualPrice, $productPrice[$key]);
             \PHPUnit_Framework_Assert::assertTrue(
diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedProductPage.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedProductPage.php
index 821f48e27730094befa699fd13199996e866defb..9b6fe9ffbafbbed143f91319ee8e8e4ae8f0d8a7 100755
--- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedProductPage.php
+++ b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedProductPage.php
@@ -45,11 +45,10 @@ class AssertCatalogPriceRuleAppliedProductPage extends AbstractConstraint
         $cmsIndexPage->open();
         foreach ($products as $key => $product) {
             $categoryName = $product->getCategoryIds()[0];
-            $productName = $product->getName();
             $cmsIndexPage->getTopmenu()->selectCategoryByName($categoryName);
-            $catalogCategoryViewPage->getListProductBlock()->openProductViewPage($productName);
+            $catalogCategoryViewPage->getListProductBlock()->getProductItem($product)->open();
             $productPriceBlock = $catalogProductViewPage->getViewBlock()->getPriceBlock();
-            $actualPrice['regular'] = $productPriceBlock->getRegularPrice();
+            $actualPrice['regular'] = $productPriceBlock->getOldPrice();
             $actualPrice['special'] = $productPriceBlock->getSpecialPrice();
             $actualPrice['discount_amount'] = $actualPrice['regular'] - $actualPrice['special'];
             $diff = $this->verifyData($actualPrice, $productPrice[$key]);
diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedCatalogPage.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedCatalogPage.php
index 4b6b244d48f3dffae669ea84dc296f1066f110be..519e1d5f17f55301b8d5f64f34696f5ad7d1704a 100644
--- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedCatalogPage.php
+++ b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedCatalogPage.php
@@ -31,11 +31,10 @@ class AssertCatalogPriceRuleNotAppliedCatalogPage extends AbstractConstraint
         $cmsIndexPage->open();
         foreach ($products as $product) {
             $categoryName = $product->getCategoryIds()[0];
-            $productName = $product->getName();
             $cmsIndexPage->getTopmenu()->selectCategoryByName($categoryName);
-            $productPriceBlock = $catalogCategoryViewPage->getListProductBlock()->getProductPriceBlock($productName);
+            $priceBlock = $catalogCategoryViewPage->getListProductBlock()->getProductItem($product)->getPriceBlock();
             \PHPUnit_Framework_Assert::assertFalse(
-                $productPriceBlock->isSpecialPriceVisible(),
+                $priceBlock->isSpecialPriceVisible(),
                 "Catalog price rule is applied!\n"
             );
         }
diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedProductPage.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedProductPage.php
index 8b5dc40eb97bf34e92138a7a8d98ddce649d3e7e..8d4e89105297f76db65fd4bc068235db6c0f2544 100644
--- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedProductPage.php
+++ b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedProductPage.php
@@ -34,9 +34,8 @@ class AssertCatalogPriceRuleNotAppliedProductPage extends AbstractConstraint
         $cmsIndexPage->open();
         foreach ($products as $product) {
             $categoryName = $product->getCategoryIds()[0];
-            $productName = $product->getName();
             $cmsIndexPage->getTopmenu()->selectCategoryByName($categoryName);
-            $catalogCategoryViewPage->getListProductBlock()->openProductViewPage($productName);
+            $catalogCategoryViewPage->getListProductBlock()->getProductItem($product)->open();
             $productPriceBlock = $catalogProductViewPage->getViewBlock()->getPriceBlock();
             \PHPUnit_Framework_Assert::assertFalse(
                 $productPriceBlock->isSpecialPriceVisible(),
diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Handler/CatalogRule/Curl.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Handler/CatalogRule/Curl.php
index 43089928c2c50da39f1c589cdb05a31ba4b6dc96..3425b84fc72e4455413eb35f7017f68380540c5c 100644
--- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Handler/CatalogRule/Curl.php
+++ b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Handler/CatalogRule/Curl.php
@@ -158,7 +158,7 @@ class Curl extends Conditions implements CatalogRuleInterface
         $response = $curl->read();
         $curl->close();
 
-        $pattern = '/col-rule_id\W*(\d+)<.td><[^<>]*?>' . $data['name'] . '/siu';
+        $pattern = '/col\-rule_id[\s\W]*(\d+).*?' . $data['name'] . '/siu';
         preg_match($pattern, $response, $matches);
         if (empty($matches)) {
             throw new \Exception('Cannot find Catalog Price Rule id! Response: ' . $response);
diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleIndex.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleIndex.xml
index 921eb6a296258a4400926162a2fb81753a5e4566..d4c00bbd47d4056ce08c155a636ad9363bc4809c 100644
--- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleIndex.xml
@@ -6,9 +6,10 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
-  <page name="CatalogRuleIndex" area="Adminhtml" mca="catalog_rule/promo_catalog/index" module="Magento_CatalogRule">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
-    <block name="gridPageActions" class="Magento\CatalogRule\Test\Block\Adminhtml\Promo\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
-    <block name="catalogRuleGrid" class="Magento\CatalogRule\Test\Block\Adminhtml\Promo\Catalog" locator="#promo_catalog_grid" strategy="css selector"/>
-  </page>
+    <page name="CatalogRuleIndex" area="Adminhtml" mca="catalog_rule/promo_catalog/index" module="Magento_CatalogRule">
+        <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector" />
+        <block name="gridPageActions" class="Magento\CatalogRule\Test\Block\Adminhtml\Promo\GridPageActions" locator=".page-main-actions" strategy="css selector" />
+        <block name="catalogRuleGrid" class="Magento\CatalogRule\Test\Block\Adminhtml\Promo\Catalog" locator="#promo_catalog_grid" strategy="css selector" />
+        <block name="systemMessageDialog" class="Magento\AdminNotification\Test\Block\System\Messages" locator='[role="dialog"].ui-popup-message' strategy="css selector" />
+    </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/AbstractCatalogRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/AbstractCatalogRuleEntityTest.php
index 5602c65632c81c6728e499ad361aaddc3d86e382..8c2ab9474a2c002767159584ba680781934ade83 100644
--- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/AbstractCatalogRuleEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/AbstractCatalogRuleEntityTest.php
@@ -7,54 +7,53 @@
 namespace Magento\CatalogRule\Test\TestCase;
 
 use Magento\Backend\Test\Page\Adminhtml\AdminCache;
-use Magento\CatalogRule\Test\Fixture\CatalogRule;
 use Magento\CatalogRule\Test\Page\Adminhtml\CatalogRuleIndex;
 use Magento\CatalogRule\Test\Page\Adminhtml\CatalogRuleNew;
 use Magento\Mtf\Fixture\FixtureFactory;
 use Magento\Mtf\TestCase\Injectable;
 
 /**
- * Parent class for CatalogRule tests
+ * Parent class for CatalogRule tests.
  */
 abstract class AbstractCatalogRuleEntityTest extends Injectable
 {
     /**
-     * Page CatalogRuleIndex
+     * Page CatalogRuleIndex.
      *
      * @var CatalogRuleIndex
      */
     protected $catalogRuleIndex;
 
     /**
-     * Page CatalogRuleNew
+     * Page CatalogRuleNew.
      *
      * @var CatalogRuleNew
      */
     protected $catalogRuleNew;
 
     /**
-     * Page AdminCache
+     * Page AdminCache.
      *
      * @var AdminCache
      */
     protected $adminCache;
 
     /**
-     * Fixture CatalogRule
+     * Fixture CatalogRule.
      *
      * @var array
      */
     protected $catalogRules = [];
 
     /**
-     * Fixture factory
+     * Fixture factory.
      *
      * @var FixtureFactory
      */
     protected $fixtureFactory;
 
     /**
-     * Injection data
+     * Injection data.
      *
      * @param CatalogRuleIndex $catalogRuleIndex
      * @param CatalogRuleNew $catalogRuleNew
@@ -75,7 +74,7 @@ abstract class AbstractCatalogRuleEntityTest extends Injectable
     }
 
     /**
-     * Clear data after test
+     * Clear data after test.
      *
      * @return void
      */
diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/CreateCatalogRuleTest.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/CreateCatalogRuleTest.php
index cff1f6ac7037a57dbf52be7545d425491f292b37..26135d5e646639ed286f07201c4272ae3b881fa1 100644
--- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/CreateCatalogRuleTest.php
+++ b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/CreateCatalogRuleTest.php
@@ -33,7 +33,7 @@ class CreateCatalogRuleTest extends AbstractCatalogRuleEntityTest
     const TEST_TYPE = 'acceptance_test';
     const MVP = 'yes';
     const DOMAIN = 'MX';
-    const STABLE = 'no';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/UpdateCatalogPriceRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/UpdateCatalogPriceRuleEntityTest.php
index 8178bd9dbbf3870367a3d7cc742ca6055ae8a31e..29339f794b99555a85bd92961ac02a638902d344 100755
--- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/UpdateCatalogPriceRuleEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/UpdateCatalogPriceRuleEntityTest.php
@@ -33,6 +33,7 @@ class UpdateCatalogPriceRuleEntityTest extends AbstractCatalogRuleEntityTest
     /* tags */
     const MVP = 'yes';
     const DOMAIN = 'MX';
+    const STABLE = 'no';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/UpdateCatalogPriceRuleEntityTest.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/UpdateCatalogPriceRuleEntityTest.xml
index 61f926a92b355a58598d741441c9347c10032a38..8ca777197b95712bb6cd7253f33d258120556b32 100644
--- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/UpdateCatalogPriceRuleEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/UpdateCatalogPriceRuleEntityTest.xml
@@ -6,44 +6,38 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\CatalogRule\Test\TestCase\UpdateCatalogPriceRuleEntityTest">
-    <variation name="UpdateCatalogPriceRuleEntityTestVariation1">
-      <data name="catalogPriceRuleOriginal/dataSet" xsi:type="string">active_catalog_price_rule_with_conditions</data>
-      <data name="catalogPriceRule/data/name" xsi:type="string">New Catalog Price Rule Name %isolation%</data>
-      <data name="catalogPriceRule/data/description" xsi:type="string">-</data>
-      <data name="catalogPriceRule/data/is_active" xsi:type="string">Inactive</data>
-      <data name="catalogPriceRule/data/conditions" xsi:type="string">-</data>
-      <data name="catalogPriceRule/data/simple_action" xsi:type="string">-</data>
-      <data name="catalogPriceRule/data/discount_amount" xsi:type="string">-</data>
-      <data name="saveAction" xsi:type="string">save</data>
-      <data name="price/sub_total" xsi:type="string">-</data>
-      <data name="price/grand_total" xsi:type="string">-</data>
-      <data name="price/discount_amount" xsi:type="string">-</data>
-      <data name="price/special" xsi:type="string">-</data>
-      <data name="price/regular" xsi:type="string">-</data>
-      <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleSuccessSaveMessage"/>
-      <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleNoticeMessage"/>
-      <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleForm"/>
-      <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleInGrid"/>
-    </variation>
-    <variation name="UpdateCatalogPriceRuleEntityTestVariation2">
-      <data name="catalogPriceRuleOriginal/dataSet" xsi:type="string">active_catalog_price_rule_with_conditions</data>
-      <data name="catalogPriceRule/data/name" xsi:type="string">New Catalog Price Rule Name %isolation%</data>
-      <data name="catalogPriceRule/data/description" xsi:type="string">New Catalog Price Rule Description %isolation%</data>
-      <data name="catalogPriceRule/data/is_active" xsi:type="string">Active</data>
-      <data name="catalogPriceRule/data/conditions" xsi:type="string">[Category|is|%category_1%]</data>
-      <data name="catalogPriceRule/data/simple_action" xsi:type="string">By Fixed Amount</data>
-      <data name="catalogPriceRule/data/discount_amount" xsi:type="string">35</data>
-      <data name="saveAction" xsi:type="string">saveAndApply</data>
-      <data name="price/sub_total" xsi:type="string">100</data>
-      <data name="price/grand_total" xsi:type="string">65</data>
-      <data name="price/discount_amount" xsi:type="string">35</data>
-      <data name="price/special" xsi:type="string">65</data>
-      <data name="price/regular" xsi:type="string">100</data>
-      <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleSuccessSaveMessage"/>
-      <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleAppliedProductPage"/>
-      <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleForm"/>
-      <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleInGrid"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\CatalogRule\Test\TestCase\UpdateCatalogPriceRuleEntityTest">
+        <variation name="UpdateCatalogPriceRuleEntityTestVariation1">
+            <data name="catalogPriceRuleOriginal/dataSet" xsi:type="string">active_catalog_price_rule_with_conditions</data>
+            <data name="catalogPriceRule/data/name" xsi:type="string">New Catalog Price Rule Name %isolation%</data>
+            <data name="catalogPriceRule/data/is_active" xsi:type="string">Inactive</data>
+            <data name="saveAction" xsi:type="string">save</data>
+            <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleSuccessSaveMessage" />
+            <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleNoticeMessage" />
+            <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleInGrid" />
+            <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleForm" />
+            <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleNotAppliedProductPage" />
+        </variation>
+        <variation name="UpdateCatalogPriceRuleEntityTestVariation2">
+            <data name="catalogPriceRuleOriginal/dataSet" xsi:type="string">active_catalog_price_rule_with_conditions</data>
+            <data name="catalogPriceRule/data/name" xsi:type="string">New Catalog Price Rule Name %isolation%</data>
+            <data name="catalogPriceRule/data/description" xsi:type="string">New Catalog Price Rule Description %isolation%</data>
+            <data name="catalogPriceRule/data/is_active" xsi:type="string">Active</data>
+            <data name="catalogPriceRule/data/conditions" xsi:type="string">[Category|is|%category_1%]</data>
+            <data name="catalogPriceRule/data/simple_action" xsi:type="string">By Fixed Amount</data>
+            <data name="catalogPriceRule/data/discount_amount" xsi:type="string">35</data>
+            <data name="saveAction" xsi:type="string">saveAndApply</data>
+            <data name="cartPrice/sub_total" xsi:type="string">65</data>
+            <data name="cartPrice/grand_total" xsi:type="string">65</data>
+            <data name="productPrice/0/discount_amount" xsi:type="string">35</data>
+            <data name="productPrice/0/special" xsi:type="string">65</data>
+            <data name="productPrice/0/sub_total" xsi:type="string">65</data>
+            <data name="productPrice/0/regular" xsi:type="string">100</data>
+            <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleSuccessSaveMessage" />
+            <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleInGrid" />
+            <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleForm" />
+            <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleAppliedProductPage" />
+            <constraint name="Magento\CatalogRule\Test\Constraint\AssertCatalogPriceRuleAppliedShoppingCart" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestStep/DeleteAllCatalogRulesStep.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestStep/DeleteAllCatalogRulesStep.php
index fd52826d9bc8181412dd2979f4147ffd91ececed..a30825ebf60af09f0a09ddd652c6d9c7af830cb5 100644
--- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestStep/DeleteAllCatalogRulesStep.php
+++ b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestStep/DeleteAllCatalogRulesStep.php
@@ -54,6 +54,7 @@ class DeleteAllCatalogRulesStep implements TestStepInterface
         while ($this->catalogRuleIndex->getCatalogRuleGrid()->isFirstRowVisible()) {
             $this->catalogRuleIndex->getCatalogRuleGrid()->openFirstRow();
             $this->catalogRuleNew->getFormPageActions()->delete();
+            $this->catalogRuleIndex->getSystemMessageDialog()->closePopup();
         }
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchProductsResult.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchProductsResult.php
index 8346b2695c1e6d373b3153515778fd7f4f0aaf67..fb9e01f128d7f076627a7f42f0c8cbecec02aaed 100644
--- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchProductsResult.php
+++ b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchProductsResult.php
@@ -69,9 +69,9 @@ class AssertAdvancedSearchProductsResult extends AbstractConstraint
         foreach ($searchResult as $sku => $product) {
             /** @var CatalogProductSimple $product */
             $name = $product->getName();
-            $isProductVisible = $resultPage->getListProductBlock()->isProductVisible($product->getName());
+            $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible();
             while (!$isProductVisible && $resultPage->getBottomToolbar()->nextPage()) {
-                $isProductVisible = $resultPage->getListProductBlock()->isProductVisible($product->getName());
+                $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible();
             }
             if (!$isProductVisible) {
                 $errors[] = '- failed to find the product (SKU - "'
diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchResult.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchResult.php
index 410a7134bae6ef66ba0a2e60acb2b7ae677e6aa0..50319ea4d9abaaabee5c6aaf15737ada281791c2 100644
--- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchResult.php
+++ b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchResult.php
@@ -29,13 +29,15 @@ class AssertCatalogSearchResult extends AbstractConstraint
     public function processAssert(CatalogSearchQuery $catalogSearch, AdvancedResult $resultPage)
     {
         $product = $catalogSearch->getDataFieldConfig('query_text')['source']->getProduct();
-        $name = $product->getName();
-        $isProductVisible = $resultPage->getListProductBlock()->isProductVisible($name);
+        $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible();
         while (!$isProductVisible && $resultPage->getBottomToolbar()->nextPage()) {
-            $isProductVisible = $resultPage->getListProductBlock()->isProductVisible($name);
+            $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible();
         }
 
-        \PHPUnit_Framework_Assert::assertTrue($isProductVisible, "A product with name '$name' was not found.");
+        \PHPUnit_Framework_Assert::assertTrue(
+            $isProductVisible,
+            "A product with name '" . $product->getName() . "' was not found."
+        );
     }
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertProductCanBeOpenedFromSearchResult.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertProductCanBeOpenedFromSearchResult.php
index 1682f12318c2783c8adf237d6eaf56a0a75c49aa..5e3fb731f2d5420f5b906a24836c4aabab835672 100644
--- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertProductCanBeOpenedFromSearchResult.php
+++ b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertProductCanBeOpenedFromSearchResult.php
@@ -30,14 +30,16 @@ class AssertProductCanBeOpenedFromSearchResult extends AbstractConstraint
         CatalogProductView $catalogProductViewPage
     ) {
         $product = $catalogSearch->getDataFieldConfig('query_text')['source']->getProduct();
-        $productName = $product->getName();
-        $isProductVisible = $resultPage->getListProductBlock()->isProductVisible($productName);
+
+        $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible();
         while (!$isProductVisible && $resultPage->getBottomToolbar()->nextPage()) {
-            $isProductVisible = $resultPage->getListProductBlock()->isProductVisible($productName);
+            $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible();
         }
+
+        $productName = $product->getName();
         \PHPUnit_Framework_Assert::assertTrue($isProductVisible, "A product with name $productName was not found.");
 
-        $resultPage->getListProductBlock()->openProductViewPage($productName);
+        $resultPage->getListProductBlock()->getProductItem($product)->open();
         \PHPUnit_Framework_Assert::assertEquals(
             $productName,
             $catalogProductViewPage->getViewBlock()->getProductName(),
diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/Adminhtml/CatalogSearchIndex.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/Adminhtml/CatalogSearchIndex.xml
index 7d2915299f7e2567b9efdcf56c3a356f40a05e4d..cfe3a1068fd91f9169de784ab9a663494f7dfec4 100644
--- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/Adminhtml/CatalogSearchIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/Adminhtml/CatalogSearchIndex.xml
@@ -9,6 +9,6 @@
   <page name="CatalogSearchIndex" area="Adminhtml" mca="search/term" module="Magento_CatalogSearch">
     <block name="grid" class="Magento\CatalogSearch\Test\Block\Adminhtml\Grid" locator="#search_term_grid" strategy="css selector"/>
     <block name="gridPageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Sidebar.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Sidebar.php
index 24b167d7d5881d0a66498a2f8d51ca204a8fa6e4..2cfdcb95eafcc3c2196dc11018f788c5f916729d 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Sidebar.php
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Sidebar.php
@@ -21,7 +21,7 @@ class Sidebar extends Block
      *
      * @var string
      */
-    protected $qty = '//*[@class="product"]/*[@title="%s"]/following-sibling::*//*[@class="item-qty cart-item-qty"]';
+    protected $qty = '//*[@class="product"]/*[@title="%s"]/following-sibling::*//*[contains(@class,"item-qty")]';
 
     /**
      * Mini cart link selector
@@ -37,12 +37,19 @@ class Sidebar extends Block
      */
     protected $cartContent = 'div.minicart';
 
+    /**
+     * Product list in mini shopping cart.
+     *
+     * @var string
+     */
+    protected $cartProductList = './/*[contains(@role, "dialog") and not(contains(@style,"display: none;"))]';
+
     /**
      * Selector for cart item block
      *
      * @var string
      */
-    protected $cartItemByProductName = './/*[contains(@class,"minicart-items")]//li[.//a[.="%s"]]';
+    protected $cartProductName = '//*[@id="mini-cart"]//li[.//a[normalize-space(text())="%s"]]';
 
     /**
      * Counter qty locator
@@ -110,7 +117,7 @@ class Sidebar extends Block
             $cartItem = $this->callRender($typeId, 'getCartItem', ['product' => $product]);
         } else {
             $cartItemBlock = $this->_rootElement->find(
-                sprintf($this->cartItemByProductName, $product->getName()),
+                sprintf($this->cartProductList . $this->cartProductName, $product->getName()),
                 Locator::SELECTOR_XPATH
             );
             $cartItem = $this->blockFactory->create(
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertEstimateShippingAndTax.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertEstimateShippingAndTax.php
index 77cedd92e53fa8604d9ffdc671cbd5d0abd867ef..35ac9e5d20b9f82fda8d1b39f9713fe1473d2cba 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertEstimateShippingAndTax.php
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertEstimateShippingAndTax.php
@@ -10,10 +10,6 @@ use Magento\Checkout\Test\Fixture\Cart;
 use Magento\Checkout\Test\Page\CheckoutCart;
 use Magento\Mtf\Constraint\AbstractConstraint;
 use Magento\Mtf\ObjectManager;
-use Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart;
-use Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart;
-use Magento\Checkout\Test\Constraint\AssertTaxInShoppingCart;
-use Magento\Checkout\Test\Constraint\AssertShippingInShoppingCart;
 
 /**
  * Assert that grand total is equal to expected.
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CheckoutCart.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CheckoutCart.xml
index 179fb5bfdb5abc6e7bae91992a5e690992a446f9..41c6ca7910406fe79761a8c1fcab416e25053da1 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CheckoutCart.xml
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CheckoutCart.xml
@@ -9,7 +9,7 @@
   <page name="CheckoutCart" mca="checkout/cart/index" module="Magento_Checkout">
     <block name="cartBlock" class="Magento\Checkout\Test\Block\Cart" locator="//div[contains(@class, 'column main')]" strategy="xpath"/>
     <block name="cartEmptyBlock" class="Magento\Checkout\Test\Block\Cart\CartEmpty" locator=".cart-empty" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator=".messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".messages .messages" strategy="css selector"/>
     <block name="shippingBlock" class="Magento\Checkout\Test\Block\Cart\Shipping" locator=".block.shipping" strategy="css selector"/>
     <block name="totalsBlock" class="Magento\Checkout\Test\Block\Cart\Totals" locator="#shopping-cart-totals-table" strategy="css selector"/>
     <block name="crosssellBlock" class="Magento\Catalog\Test\Block\Product\ProductList\Crosssell" locator="//div[contains(@class, 'block')][contains(@class, 'crosssell')]" strategy="xpath"/>
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/AddProductsToShoppingCartEntityTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/AddProductsToShoppingCartEntityTest.xml
index a3de5ca7c4ba66952c2c47527bc8ce69e4013f0a..a03da15b27b8200d6880c37f16305170489d6b16 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/AddProductsToShoppingCartEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/AddProductsToShoppingCartEntityTest.xml
@@ -6,80 +6,80 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Checkout\Test\TestCase\AddProductsToShoppingCartEntityTest">
-    <variation name="AddProductsToShoppingCartEntityTestVariation1">
-      <data name="productsData" xsi:type="string">bundleProduct::bundle_dynamic_product</data>
-      <data name="cart/data/grand_total" xsi:type="string">200</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart"/>
-    </variation>
-    <variation name="AddProductsToShoppingCartEntityTestVariation2">
-      <data name="productsData" xsi:type="string">bundleProduct::bundle_fixed_product</data>
-      <data name="cart/data/grand_total" xsi:type="string">756</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart"/>
-    </variation>
-    <variation name="AddProductsToShoppingCartEntityTestVariation3">
-      <data name="productsData" xsi:type="string">catalogProductSimple::with_two_custom_option</data>
-      <data name="cart/data/grand_total" xsi:type="string">340</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart"/>
-    </variation>
-    <variation name="AddProductsToShoppingCartEntityTestVariation4">
-      <data name="productsData" xsi:type="string">catalogProductVirtual::product_50_dollar</data>
-      <data name="cart/data/grand_total" xsi:type="string">50</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart"/>
-    </variation>
-    <variation name="AddProductsToShoppingCartEntityTestVariation5" firstConstraint="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" method="test">
-      <data name="productsData" xsi:type="string">configurableProduct::default</data>
-      <data name="cart/data/grand_total" xsi:type="string">516</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart"/>
-    </variation>
-    <variation name="AddProductsToShoppingCartEntityTestVariation6" firstConstraint="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" method="test">
-      <data name="productsData" xsi:type="string">downloadableProduct::with_two_separately_links</data>
-      <data name="cart/data/grand_total" xsi:type="string">46</data>
-      <data name="issue" xsi:type="string">Bug: MAGETWO-24195</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart"/>
-    </variation>
-    <variation name="AddProductsToShoppingCartEntityTestVariation7" firstConstraint="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" method="test">
-      <data name="productsData" xsi:type="string">groupedProduct::three_simple_products</data>
-      <data name="cart/data/grand_total" xsi:type="string">1920</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart"/>
-    </variation>
-    <variation name="AddProductsToShoppingCartEntityTestVariation8" firstConstraint="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" method="test">
-      <data name="productsData" xsi:type="string">catalogProductSimple::with_two_custom_option, catalogProductVirtual::product_50_dollar, downloadableProduct::with_two_separately_links, groupedProduct::three_simple_products, configurableProduct::default, bundleProduct::bundle_dynamic_product, bundleProduct::bundle_dynamic_product</data>
-      <data name="cart/data/grand_total" xsi:type="string">3249</data>
-      <data name="issue" xsi:type="string">Bug: MAGETWO-24195</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" next="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" next="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" prev="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" next="Magento\Checkout\Test\Constraint\AssertCartItemsOptions" prev="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions" next="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart" prev="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart" prev="Magento\Checkout\Test\Constraint\AssertCartItemsOptions"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Checkout\Test\TestCase\AddProductsToShoppingCartEntityTest">
+        <variation name="AddProductsToShoppingCartEntityTestVariation1">
+            <data name="productsData" xsi:type="string">bundleProduct::bundle_dynamic_product</data>
+            <data name="cart/data/grand_total" xsi:type="string">200</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart" />
+        </variation>
+        <variation name="AddProductsToShoppingCartEntityTestVariation2">
+            <data name="productsData" xsi:type="string">bundleProduct::bundle_fixed_product</data>
+            <data name="cart/data/grand_total" xsi:type="string">756</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart" />
+        </variation>
+        <variation name="AddProductsToShoppingCartEntityTestVariation3">
+            <data name="productsData" xsi:type="string">catalogProductSimple::with_two_custom_option</data>
+            <data name="cart/data/grand_total" xsi:type="string">340</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart" />
+        </variation>
+        <variation name="AddProductsToShoppingCartEntityTestVariation4">
+            <data name="productsData" xsi:type="string">catalogProductVirtual::product_50_dollar</data>
+            <data name="cart/data/grand_total" xsi:type="string">50</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart" />
+        </variation>
+        <variation name="AddProductsToShoppingCartEntityTestVariation5">
+            <data name="productsData" xsi:type="string">configurableProduct::default</data>
+            <data name="cart/data/grand_total" xsi:type="string">516</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart" />
+        </variation>
+        <variation name="AddProductsToShoppingCartEntityTestVariation6">
+            <data name="productsData" xsi:type="string">downloadableProduct::with_two_separately_links</data>
+            <data name="cart/data/grand_total" xsi:type="string">46</data>
+            <data name="issue" xsi:type="string">Bug: MAGETWO-24195</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart" />
+        </variation>
+        <variation name="AddProductsToShoppingCartEntityTestVariation7">
+            <data name="productsData" xsi:type="string">groupedProduct::three_simple_products</data>
+            <data name="cart/data/grand_total" xsi:type="string">1920</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart" />
+        </variation>
+        <variation name="AddProductsToShoppingCartEntityTestVariation8">
+            <data name="productsData" xsi:type="string">catalogProductSimple::with_two_custom_option, catalogProductVirtual::product_50_dollar, downloadableProduct::with_two_separately_links, groupedProduct::three_simple_products, configurableProduct::default, bundleProduct::bundle_dynamic_product, bundleProduct::bundle_dynamic_product</data>
+            <data name="cart/data/grand_total" xsi:type="string">3249</data>
+            <data name="issue" xsi:type="string">Bug: MAGETWO-24195</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartItemsOptions" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertGrandTotalInShoppingCart" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductsFromShoppingCartTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductsFromShoppingCartTest.xml
index d93ad4ce1e85f394990dfb770fd54e2e777dce99..fbd84eb13eef8bfa395178e3ff8ff517566588a6 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductsFromShoppingCartTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductsFromShoppingCartTest.xml
@@ -6,38 +6,38 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Checkout\Test\TestCase\DeleteProductsFromShoppingCartTest">
-    <variation name="DeleteProductsFromShoppingCartTestVariation1" firstConstraint="Magento\Checkout\Test\Constraint\AssertCartIsEmpty">
-      <data name="productsData" xsi:type="string">bundleProduct::bundle_dynamic_product</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty"/>
-    </variation>
-    <variation name="DeleteProductsFromShoppingCartTestVariation2" firstConstraint="Magento\Checkout\Test\Constraint\AssertCartIsEmpty">
-      <data name="productsData" xsi:type="string">bundleProduct::bundle_fixed_product</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty"/>
-    </variation>
-    <variation name="DeleteProductsFromShoppingCartTestVariation3" firstConstraint="Magento\Checkout\Test\Constraint\AssertCartIsEmpty">
-      <data name="productsData" xsi:type="string">catalogProductSimple::with_two_custom_option</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty"/>
-    </variation>
-    <variation name="DeleteProductsFromShoppingCartTestVariation4" firstConstraint="Magento\Checkout\Test\Constraint\AssertCartIsEmpty">
-      <data name="productsData" xsi:type="string">catalogProductVirtual::product_50_dollar</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty"/>
-    </variation>
-    <variation name="DeleteProductsFromShoppingCartTestVariation5" firstConstraint="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" method="test">
-      <data name="productsData" xsi:type="string">configurableProduct::default</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty"/>
-    </variation>
-    <variation name="DeleteProductsFromShoppingCartTestVariation6" firstConstraint="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" method="test">
-      <data name="productsData" xsi:type="string">downloadableProduct::with_two_separately_links</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty"/>
-    </variation>
-    <variation name="DeleteProductsFromShoppingCartTestVariation7" firstConstraint="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" method="test">
-      <data name="productsData" xsi:type="string">groupedProduct::three_simple_products</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty"/>
-    </variation>
-    <variation name="DeleteProductsFromShoppingCartTestVariation8" firstConstraint="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" method="test">
-      <data name="productsData" xsi:type="string">catalogProductSimple::with_two_custom_option, catalogProductVirtual::product_50_dollar, downloadableProduct::with_two_separately_links, groupedProduct::three_simple_products, configurableProduct::default, bundleProduct::bundle_dynamic_product, bundleProduct::bundle_dynamic_product</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Checkout\Test\TestCase\DeleteProductsFromShoppingCartTest">
+        <variation name="DeleteProductsFromShoppingCartTestVariation1">
+            <data name="productsData" xsi:type="string">bundleProduct::bundle_dynamic_product</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" />
+        </variation>
+        <variation name="DeleteProductsFromShoppingCartTestVariation2">
+            <data name="productsData" xsi:type="string">bundleProduct::bundle_fixed_product</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" />
+        </variation>
+        <variation name="DeleteProductsFromShoppingCartTestVariation3">
+            <data name="productsData" xsi:type="string">catalogProductSimple::with_two_custom_option</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" />
+        </variation>
+        <variation name="DeleteProductsFromShoppingCartTestVariation4">
+            <data name="productsData" xsi:type="string">catalogProductVirtual::product_50_dollar</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" />
+        </variation>
+        <variation name="DeleteProductsFromShoppingCartTestVariation5">
+            <data name="productsData" xsi:type="string">configurableProduct::default</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" />
+        </variation>
+        <variation name="DeleteProductsFromShoppingCartTestVariation6">
+            <data name="productsData" xsi:type="string">downloadableProduct::with_two_separately_links</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" />
+        </variation>
+        <variation name="DeleteProductsFromShoppingCartTestVariation7">
+            <data name="productsData" xsi:type="string">groupedProduct::three_simple_products</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" />
+        </variation>
+        <variation name="DeleteProductsFromShoppingCartTestVariation8">
+            <data name="productsData" xsi:type="string">catalogProductSimple::with_two_custom_option, catalogProductVirtual::product_50_dollar, downloadableProduct::with_two_separately_links, groupedProduct::three_simple_products, configurableProduct::default, bundleProduct::bundle_dynamic_product, bundleProduct::bundle_dynamic_product</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateShoppingCartTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateShoppingCartTest.php
index f30e937e0ace3a196c18a27a556aaf5888e8a1f4..39951aa818cde6da5d54b8735e6a16bf044357a7 100755
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateShoppingCartTest.php
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateShoppingCartTest.php
@@ -108,7 +108,7 @@ class UpdateShoppingCartTest extends Injectable
         $this->browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html');
         $productView = $this->catalogProductView->getViewBlock();
         $productView->fillOptions($product);
-        $productView->setQty(1);
+        $productView->setQty($product->getCheckoutData()['qty']);
         $productView->clickAddToCart();
         $this->catalogProductView->getMessagesBlock()->waitSuccessMessage();
 
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateShoppingCartTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateShoppingCartTest.xml
index b500ff5659019a761c7b877e9fe3277a0a0b22ad..3796dbef8a5445d87303c188eb9c0147512edf69 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateShoppingCartTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateShoppingCartTest.xml
@@ -6,28 +6,28 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Checkout\Test\TestCase\UpdateShoppingCartTest">
-    <variation name="UpdateShoppingCartTestVariation1">
-      <data name="product/dataSet" xsi:type="string">default</data>
-      <data name="product/data/price/value" xsi:type="string">100</data>
-      <data name="product/data/checkout_data/qty" xsi:type="string">3</data>
-      <data name="product/data/checkout_data/cartItem/price" xsi:type="string">100</data>
-      <data name="product/data/checkout_data/cartItem/subtotal" xsi:type="string">300</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInMiniShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart"/>
-    </variation>
-    <variation name="UpdateShoppingCartTestVariation2">
-      <data name="product/dataSet" xsi:type="string">with_two_custom_option</data>
-      <data name="product/data/price/value" xsi:type="string">50</data>
-      <data name="product/data/checkout_data/qty" xsi:type="string">11</data>
-      <data name="product/data/checkout_data/cartItem/price" xsi:type="string">65</data>
-      <data name="product/data/checkout_data/cartItem/subtotal" xsi:type="string">715</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInMiniShoppingCart"/>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Checkout\Test\TestCase\UpdateShoppingCartTest">
+        <variation name="UpdateShoppingCartTestVariation1">
+            <data name="product/dataSet" xsi:type="string">default</data>
+            <data name="product/data/price/value" xsi:type="string">100</data>
+            <data name="product/data/checkout_data/qty" xsi:type="string">3</data>
+            <data name="product/data/checkout_data/cartItem/price" xsi:type="string">100</data>
+            <data name="product/data/checkout_data/cartItem/subtotal" xsi:type="string">300</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInMiniShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
+        </variation>
+        <variation name="UpdateShoppingCartTestVariation2">
+            <data name="product/dataSet" xsi:type="string">with_two_custom_option</data>
+            <data name="product/data/price/value" xsi:type="string">50</data>
+            <data name="product/data/checkout_data/qty" xsi:type="string">11</data>
+            <data name="product/data/checkout_data/cartItem/price" xsi:type="string">65</data>
+            <data name="product/data/checkout_data/cartItem/subtotal" xsi:type="string">715</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInMiniShoppingCart" />
+            <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/testcase.xml
index fb527bf92455a5161ab0cb66ec23c15271a140f2..b9ae8cae61544ea2b6bd4676e6afc65c1eff50ef 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/testcase.xml
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/testcase.xml
@@ -7,7 +7,7 @@
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/TestCase/etc/testcase.xsd">
     <scenario name="OnePageCheckoutTest" firstStep="setupConfiguration">
-        <step name="setupConfiguration" module="Magento_Core" next="createProducts"/>
+        <step name="setupConfiguration" module="Magento_Config" next="createProducts"/>
         <step name="createProducts" module="Magento_Catalog" next="createTaxRule"/>
         <step name="createTaxRule" module="Magento_Tax" next="addProductsToTheCart"/>
         <step name="addProductsToTheCart" module="Magento_Checkout" next="estimateShippingAndTax"/>
diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/Adminhtml/CheckoutAgreementIndex.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/Adminhtml/CheckoutAgreementIndex.xml
index 891e9931a1e54253a5a09ae59107b57066e1264c..695aecfb463f7d89c471668c4cd06f25ecf24871 100644
--- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/Adminhtml/CheckoutAgreementIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/Adminhtml/CheckoutAgreementIndex.xml
@@ -7,7 +7,7 @@
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
     <page name="CheckoutAgreementIndex" area="Adminhtml" mca="checkout/agreement/index" module="Magento_CheckoutAgreements">
-        <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+        <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
         <block name="pageActionsBlock" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
         <block name="agreementGridBlock" class="Magento\CheckoutAgreements\Test\Block\Adminhtml\AgreementGrid" locator="#agreementGrid" strategy="css selector"/>
     </page>
diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Repository/ConfigData.xml
index d8701e58551e803f2a4da4e44243104565661184..cc48fe65a73639e2785f2a7b1246fc3b20d988fd 100644
--- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="checkout_term_condition">
             <field path="checkout/options/enable_agreements" scope="checkout" scope_id="1" label="Yes" xsi:type="string">1</field>
         </dataset>
diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/CreateTermEntityTest.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/CreateTermEntityTest.php
index 6ab07b7f9280d0cbac0247cd5d88b2a166a3a4c7..c0abdce3aeda49deb6c11229e5876d49111e4532 100644
--- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/CreateTermEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/CreateTermEntityTest.php
@@ -13,10 +13,6 @@ use Magento\Mtf\ObjectManager;
 use Magento\Mtf\TestCase\Injectable;
 
 /**
- * Test creation for CreateTermEntity.
- *
- * Test Flow:
- *
  * Preconditions:
  * 1. Enable "Terms and Conditions": Stores > Configuration > Sales > Checkout > Checkout Options
  *
@@ -46,7 +42,7 @@ class CreateTermEntityTest extends Injectable
     public function __inject()
     {
         $this->objectManager->create(
-            'Magento\Core\Test\TestStep\SetupConfigurationStep',
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
             ['configData' => 'checkout_term_condition']
         )->run();
     }
@@ -82,7 +78,7 @@ class CreateTermEntityTest extends Injectable
 
         // TODO: Move set default configuration to "tearDownAfterClass" method after fix bug MAGETWO-29331
         ObjectManager::getInstance()->create(
-            'Magento\Core\Test\TestStep\SetupConfigurationStep',
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
             ['configData' => 'checkout_term_condition', 'rollback' => true]
         )->run();
     }
diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/DeleteTermEntityTest.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/DeleteTermEntityTest.php
index ca9dbfda8de6e1691095841d3bdacccff1a0b7b7..3b20d91b19db8727f7afffd43b8e5e74366c122c 100644
--- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/DeleteTermEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/DeleteTermEntityTest.php
@@ -63,7 +63,7 @@ class DeleteTermEntityTest extends Injectable
 
         // TODO: Move set up configuration to "__prepare" method after fix bug MAGETWO-29331
         $this->objectManager->create(
-            'Magento\Core\Test\TestStep\SetupConfigurationStep',
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
             ['configData' => 'checkout_term_condition']
         )->run();
     }
@@ -93,7 +93,7 @@ class DeleteTermEntityTest extends Injectable
     public function tearDown()
     {
         $this->objectManager->create(
-            'Magento\Core\Test\TestStep\SetupConfigurationStep',
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
             ['configData' => 'checkout_term_condition', 'rollback' => true]
         )->run();
     }
diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/UpdateTermEntityTest.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/UpdateTermEntityTest.php
index 37a0f0d0dd2417a26400bd1b8cf0e298cf31a03e..50ef121fc19371645900d4366c9895d299bf9b21 100644
--- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/UpdateTermEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/UpdateTermEntityTest.php
@@ -13,10 +13,6 @@ use Magento\Mtf\ObjectManager;
 use Magento\Mtf\TestCase\Injectable;
 
 /**
- * Test creation for UpdateTermEntityTest.
- *
- * Test Flow:
- *
  * Preconditions:
  * 1. Enable "Terms and Conditions": Stores > Configuration > Sales > Checkout > Checkout Options
  * 2. Create term according to dataSet
@@ -47,7 +43,7 @@ class UpdateTermEntityTest extends Injectable
     public function __inject()
     {
         $this->objectManager->create(
-            'Magento\Core\Test\TestStep\SetupConfigurationStep',
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
             ['configData' => 'checkout_term_condition']
         )->run();
     }
@@ -88,7 +84,7 @@ class UpdateTermEntityTest extends Injectable
 
         // TODO: Move set default configuration to "tearDownAfterClass" method after fix bug MAGETWO-29331
         ObjectManager::getInstance()->create(
-            'Magento\Core\Test\TestStep\SetupConfigurationStep',
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
             ['configData' => 'checkout_term_condition', 'rollback' => true]
         )->run();
     }
diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Page.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Page.php
index 69b0d9aa409c6dc333e8a919980f37aefa86831c..6e456f1919fc5909e3e68b8d1070ab1ca52532c6 100644
--- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Page.php
+++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Page.php
@@ -15,11 +15,11 @@ use Magento\Mtf\Client\Locator;
 class Page extends Block
 {
     /**
-     * Selector for uninitialized page.
+     * Selector for initial script.
      *
      * @var string
      */
-    protected $uninitialized = '//body[(@data-mage-init) or (@aria-busy="true")]';
+    protected $initialScript = 'script[type="text/x-magento-init"]';
 
     /**
      * Cms page content class.
@@ -122,13 +122,7 @@ class Page extends Block
      */
     public function waitPageInit()
     {
-        $browser = $this->browser;
-        $uninitialized = $this->uninitialized;
-
-        $this->_rootElement->waitUntil(
-            function () use ($browser, $uninitialized) {
-                return $browser->find($uninitialized, Locator::SELECTOR_XPATH)->isVisible() == false ? true : null;
-            }
-        );
+        $this->waitForElementNotVisible($this->initialScript);
+        sleep(3); // TODO: remove after resolving an issue with ajax on Frontend.
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertUrlRewriteCmsPageRedirect.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertUrlRewriteCmsPageRedirect.php
index b237391de42379212caacd1d1a051be9faa0541f..b26b6b692fac12b933488613a32c4e8e4584ad92 100644
--- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertUrlRewriteCmsPageRedirect.php
+++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertUrlRewriteCmsPageRedirect.php
@@ -8,7 +8,7 @@ namespace Magento\Cms\Test\Constraint;
 
 use Magento\Cms\Test\Fixture\CmsPage;
 use Magento\UrlRewrite\Test\Fixture\UrlRewrite;
-use Magento\Core\Test\Page\Adminhtml\SystemVariableNew;
+use Magento\Variable\Test\Page\Adminhtml\SystemVariableNew;
 use Magento\Mtf\Client\BrowserInterface;
 use Magento\Mtf\Constraint\AbstractConstraint;
 
diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockIndex.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockIndex.xml
index f9b2d8c51e95c647f45a1c9b18557e7632ad4c1b..b62397be96d8a79f01c43bb426b4d8c9a521e79b 100644
--- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockIndex.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
     <page name="CmsBlockIndex" area="Adminhtml" mca="cms/block" module="Magento_Cms">
-        <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector" />
+        <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector" />
         <block name="gridPageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector" />
         <block name="cmsBlockGrid" class="Magento\Cms\Test\Block\Adminhtml\Block\CmsGrid" locator=".grid" strategy="css selector" />
     </page>
diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockNew.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockNew.xml
index 65693e9a94246600741fc5658bd4cd09413d72b6..d37d3e1420419a36bb1c134e900889c80c5ba50b 100644
--- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockNew.xml
+++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockNew.xml
@@ -9,6 +9,6 @@
     <page name="CmsBlockNew" area="Adminhtml" mca="cms/block/new" module="Magento_Cms">
         <block name="formPageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector" />
         <block name="cmsForm" class="Magento\Cms\Test\Block\Adminhtml\Block\Edit\CmsForm" locator="[id='page:main-container']" strategy="css selector" />
-        <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector" />
+        <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector" />
     </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageIndex.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageIndex.xml
index d622c917217dc1b6609fd65efddd157cda24da84..6c567cc3013ddba21ed268b8e4f537502a69fa06 100644
--- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageIndex.xml
@@ -9,6 +9,6 @@
     <page name="CmsPageIndex" area="Adminhtml" mca="cms/page/index" module="Magento_Cms">
         <block name="pageActionsBlock" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector" />
         <block name="cmsPageGridBlock" class="Magento\Cms\Test\Block\Adminhtml\Page\Grid" locator=".grid" strategy="css selector" />
-        <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator=".messages .message" strategy="css selector" />
+        <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".messages .message" strategy="css selector" />
     </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/ConfigData.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2cdd7028049702844a9d0bc395db65c29164c6b2
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/ConfigData.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" ?>
+<!--
+/**
+ * Copyright © 2015 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/Magento/Mtf/Repository/etc/repository.xsd">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
+        <dataset name="wysiwyg_disabled">
+            <field path="cms/wysiwyg/enabled" scope="default" scope_id="0" label="Disabled Completely" xsi:type="string">disabled</field>
+        </dataset>
+    </repository>
+</config>
diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsBlockEntityTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsBlockEntityTest.xml
index 05164514a1335b65b11c83edf68d391b646fcebf..2e1583ed1df208668de87b8fc5a3e62edd4b4628 100644
--- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsBlockEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsBlockEntityTest.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
     <testCase name="Magento\Cms\Test\TestCase\CreateCmsBlockEntityTest">
         <variation name="CreateCmsBlockEntityTestVariation1">
-            <data name="issue" xsi:type="string">Bug: MAGETWO-32125</data>
             <data name="cmsBlock/data/title" xsi:type="string">block_%isolation%</data>
             <data name="cmsBlock/data/identifier" xsi:type="string">identifier_%isolation%</data>
             <data name="cmsBlock/data/stores/dataSet/option_0" xsi:type="string">All Store Views</data>
@@ -19,7 +18,7 @@
             <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockOnCategoryPage" />
         </variation>
         <variation name="CreateCmsBlockEntityTestVariation2">
-            <data name="issue" xsi:type="string">Bug: MAGETWO-32125</data>
+            <data name="issue" xsi:type="string">Bug: MAGETWO-35059</data>
             <data name="cmsBlock/data/title" xsi:type="string">block_%isolation%</data>
             <data name="cmsBlock/data/identifier" xsi:type="string">identifier_%isolation%</data>
             <data name="cmsBlock/data/stores/dataSet/option_0" xsi:type="string">default</data>
diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityTest.php
index 35580f33bd3e58b8fb6a6ab68d0a911b7ccfd2fd..0dea51c1d46fe9fe47d697295b866ad36ce75b65 100644
--- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityTest.php
@@ -29,7 +29,7 @@ class CreateCmsPageEntityTest extends Injectable
     const MVP = 'yes';
     const DOMAIN = 'PS';
     const TEST_TYPE = 'acceptance_test';
-    const STABLE = 'no';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsBlockEntityTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsBlockEntityTest.xml
index 622b867cab4007ef1cbb9deb279df76f4aa686e7..a9f34cf2b17e106f35692b36fdf25730ed1279bc 100644
--- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsBlockEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsBlockEntityTest.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
     <testCase name="Magento\Cms\Test\TestCase\DeleteCmsBlockEntityTest">
         <variation name="DeleteCmsBlockEntityTestVariation1">
-            <data name="issue" xsi:type="string">Bug: MAGETWO-32125</data>
             <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockDeleteMessage" />
             <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockNotInGrid" />
             <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockNotOnCategoryPage" />
diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsBlockEntityTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsBlockEntityTest.xml
index 0b72bf77ef56654718f9c6ab6fc2bd6ac9b4025a..472e5a6558643e5ba71f676aa4811e555ff98515 100644
--- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsBlockEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsBlockEntityTest.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
     <testCase name="Magento\Cms\Test\TestCase\UpdateCmsBlockEntityTest">
         <variation name="UpdateCmsBlockEntityTestVariation1">
-            <data name="issue" xsi:type="string">Bug: MAGETWO-32125</data>
             <data name="cmsBlock/data/title" xsi:type="string">block_updated_%isolation%</data>
             <data name="cmsBlock/data/identifier" xsi:type="string">identifier_updated_%isolation%</data>
             <data name="cmsBlock/data/stores/dataSet/option_0" xsi:type="string">All Store Views</data>
@@ -19,7 +18,7 @@
             <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockOnCategoryPage" />
         </variation>
         <variation name="UpdateCmsBlockEntityTestVariation2">
-            <data name="issue" xsi:type="string">Bug: MAGETWO-32125</data>
+            <data name="issue" xsi:type="string">Bug: MAGETWO-35059</data>
             <data name="cmsBlock/data/title" xsi:type="string">block_updated_%isolation%</data>
             <data name="cmsBlock/data/identifier" xsi:type="string">identifier_updated_%isolation%</data>
             <data name="cmsBlock/data/stores/dataSet/option_0" xsi:type="string">default</data>
diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageEntityTest.php
index 4c8f8d1cf29e792b75501b2d16471d83671cb0cc..8da0baf1779dbb8f1509e4e74ad68bf8fe31d3ea 100644
--- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageEntityTest.php
@@ -32,6 +32,7 @@ class UpdateCmsPageEntityTest extends Injectable
     /* tags */
     const MVP = 'yes';
     const DOMAIN = 'PS';
+    const STABLE = 'no';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Fixture/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Config/Test/Fixture/ConfigData.xml
similarity index 75%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Fixture/ConfigData.xml
rename to dev/tests/functional/tests/app/Magento/Config/Test/Fixture/ConfigData.xml
index 6b95f1c29ea9eac1be055d42985aeb2434aaecef..6e7a87ccfda8d2cd94ec5488334ab8b8ffaeb62e 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Fixture/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/Config/Test/Fixture/ConfigData.xml
@@ -7,13 +7,13 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd">
   <fixture name="configData" 
-           module="Magento_Core" 
-           type="flat" 
-           entity_type="core_config_data" 
+           module="Magento_Config"
+           type="flat"
+           entity_type="core_config_data"
            collection="Magento\Config\Model\Resource\Config\Data\Collection"
-           repository_class="Magento\Core\Test\Repository\ConfigData" 
-           handler_interface="Magento\Core\Test\Handler\ConfigData\ConfigDataInterface" 
-           class="Magento\Core\Test\Fixture\ConfigData">
+           repository_class="Magento\Config\Test\Repository\ConfigData"
+           handler_interface="Magento\Config\Test\Handler\ConfigData\ConfigDataInterface"
+           class="Magento\Config\Test\Fixture\ConfigData">
     <field name="section"/>
     <field name="config_id" is_required="1">
       <default_value xsi:type="null"/>
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Handler/ConfigData/ConfigDataInterface.php b/dev/tests/functional/tests/app/Magento/Config/Test/Handler/ConfigData/ConfigDataInterface.php
similarity index 83%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Handler/ConfigData/ConfigDataInterface.php
rename to dev/tests/functional/tests/app/Magento/Config/Test/Handler/ConfigData/ConfigDataInterface.php
index 7189e812293c5c57bc88b57a542b68f4157ab533..ce6580d030ada40cbf7b2fabfd1e415e5aa763cd 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Handler/ConfigData/ConfigDataInterface.php
+++ b/dev/tests/functional/tests/app/Magento/Config/Test/Handler/ConfigData/ConfigDataInterface.php
@@ -4,7 +4,7 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Core\Test\Handler\ConfigData;
+namespace Magento\Config\Test\Handler\ConfigData;
 
 use Magento\Mtf\Handler\HandlerInterface;
 
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Handler/ConfigData/Curl.php b/dev/tests/functional/tests/app/Magento/Config/Test/Handler/ConfigData/Curl.php
similarity index 86%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Handler/ConfigData/Curl.php
rename to dev/tests/functional/tests/app/Magento/Config/Test/Handler/ConfigData/Curl.php
index 1a761f03046e6420cdef332767f73301ff55c0e5..1ac33d18a9970ccc34e91653b7494f6f248c6101 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Handler/ConfigData/Curl.php
+++ b/dev/tests/functional/tests/app/Magento/Config/Test/Handler/ConfigData/Curl.php
@@ -4,7 +4,7 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Core\Test\Handler\ConfigData;
+namespace Magento\Config\Test\Handler\ConfigData;
 
 use Magento\Mtf\Fixture\FixtureInterface;
 use Magento\Mtf\Handler\Curl as AbstractCurl;
@@ -13,8 +13,7 @@ use Magento\Mtf\Util\Protocol\CurlTransport;
 use Magento\Mtf\Util\Protocol\CurlTransport\BackendDecorator;
 
 /**
- * Class Curl
- * Setting config
+ * Setting config.
  */
 class Curl extends AbstractCurl implements ConfigDataInterface
 {
@@ -79,21 +78,24 @@ class Curl extends AbstractCurl implements ConfigDataInterface
         $path = explode('/', $input['path']);
         foreach ($path as $position => $subPath) {
             if ($position === 0) {
-                $resultArray.= $subPath;
+                $resultArray .= $subPath;
                 continue;
             } elseif ($position === (count($path) - 1)) {
-                $resultArray.= '[fields]';
+                $resultArray .= '[fields]';
             } else {
-                $resultArray.= '[groups]';
+                $resultArray .= '[groups]';
             }
-            $resultArray.= '[' . $subPath .']';
+            $resultArray .= '[' . $subPath . ']';
         }
-        $resultArray.= '[value]';
+        $resultArray .= '[value]';
         if (is_array($input['value'])) {
-            $resultArray.= '[' . key($input['value']) . ']';
-            $resultArray.= '=' . current($input['value']);
+            $values = [];
+            foreach ($input['value'] as $key => $value) {
+                $values[] = $resultArray . "[$key]=$value";
+            }
+            $resultArray = implode('&', $values);
         } else {
-            $resultArray.= '=' . $input['value'];
+            $resultArray .= '=' . $input['value'];
         }
         return $resultArray;
     }
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/TestStep/SetupConfigurationStep.php b/dev/tests/functional/tests/app/Magento/Config/Test/TestStep/SetupConfigurationStep.php
similarity index 96%
rename from dev/tests/functional/tests/app/Magento/Core/Test/TestStep/SetupConfigurationStep.php
rename to dev/tests/functional/tests/app/Magento/Config/Test/TestStep/SetupConfigurationStep.php
index b8905caf19f15b58ab20cfd1ef6efaca82c92b27..1a0137d106bb65c7d73a7bf466e074ae0e05b847 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/TestStep/SetupConfigurationStep.php
+++ b/dev/tests/functional/tests/app/Magento/Config/Test/TestStep/SetupConfigurationStep.php
@@ -4,13 +4,12 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Core\Test\TestStep;
+namespace Magento\Config\Test\TestStep;
 
 use Magento\Mtf\Fixture\FixtureFactory;
 use Magento\Mtf\TestStep\TestStepInterface;
 
 /**
- * Class SetupConfigurationStep
  * Setup configuration using handler.
  */
 class SetupConfigurationStep implements TestStepInterface
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Config/Test/etc/curl/di.xml
similarity index 53%
rename from dev/tests/functional/tests/app/Magento/Core/Test/etc/curl/di.xml
rename to dev/tests/functional/tests/app/Magento/Config/Test/etc/curl/di.xml
index fc2360583b4493119f8dccd822e7a57014d8c3bf..e965d7cd8e3849d956382799614a0abb97b8c409 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/etc/curl/di.xml
+++ b/dev/tests/functional/tests/app/Magento/Config/Test/etc/curl/di.xml
@@ -6,6 +6,5 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
-    <preference for="\Magento\Core\Test\Handler\SystemVariable\SystemVariableInterface" type="\Magento\Core\Test\Handler\SystemVariable\Curl" />
-    <preference for="\Magento\Core\Test\Handler\ConfigData\ConfigDataInterface" type="\Magento\Core\Test\Handler\ConfigData\Curl" />
+    <preference for="\Magento\Config\Test\Handler\ConfigData\ConfigDataInterface" type="\Magento\Config\Test\Handler\ConfigData\Curl" />
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config.php
index 8165f2a35c7b20fe853d0d966cf3333ba955d16b..8f778738a972d51fb88b8d0760e5e72962c061ee 100755
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config.php
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config.php
@@ -8,40 +8,39 @@ namespace Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Tab\Supe
 
 use Magento\Backend\Test\Block\Template;
 use Magento\Backend\Test\Block\Widget\Tab;
-use Magento\Catalog\Test\Fixture\CatalogCategory;
+use Magento\Catalog\Test\Fixture\Category;
 use Magento\Mtf\Client\Element\SimpleElement;
 use Magento\Mtf\Client\Element;
 use Magento\Mtf\Client\Locator;
 
 /**
- * Class Config
- * Adminhtml catalog super product configurable tab
+ * Adminhtml catalog super product configurable tab.
  */
 class Config extends Tab
 {
     /**
-     * Selector for trigger show/hide "Variations" tab
+     * Selector for trigger show/hide "Variations" tab.
      *
      * @var string
      */
     protected $variationsTabTrigger = '[data-panel="product-variations"] .title span';
 
     /**
-     * Selector for content "Variations" tab
+     * Selector for content "Variations" tab.
      *
      * @var string
      */
     protected $variationsTabContent = '#super_config-content';
 
     /**
-     * Selector for button "Generate Variations"
+     * Selector for button "Generate Variations".
      *
      * @var string
      */
     protected $generateVariations = '[data-ui-id="product-variations-generator-generate"]';
 
     /**
-     * Selector for variations matrix
+     * Selector for variations matrix.
      *
      * @var string
      */
@@ -55,35 +54,35 @@ class Config extends Tab
     protected $template = './ancestor::body';
 
     /**
-     * Selector for variations tab wrapper
+     * Selector for variations tab wrapper.
      *
      * @var string
      */
     protected $variationsTabWrapper = '#super_config-wrapper';
 
     /**
-     * Attribute element selector
+     * Attribute element selector.
      *
      * @var string
      */
     protected $attributeElement = '.entry-edit.have-price';
 
     /**
-     * Delete variation button selector
+     * Delete variation button selector.
      *
      * @var string
      */
     protected $deleteVariationButton = '.action-delete';
 
     /**
-     * Variations content selector
+     * Variations content selector.
      *
      * @var string
      */
     protected $variationsContent = '#product_info_tabs_super_config_content';
 
     /**
-     * Fill variations fieldset
+     * Fill variations fieldset.
      *
      * @param array $fields
      * @param SimpleElement|null $element
@@ -114,7 +113,7 @@ class Config extends Tab
     }
 
     /**
-     * Show "Variations" tab content
+     * Show "Variations" tab content.
      *
      * @return void
      */
@@ -129,7 +128,7 @@ class Config extends Tab
     }
 
     /**
-     * Generate variations
+     * Generate variations.
      *
      * @return void
      */
@@ -140,7 +139,7 @@ class Config extends Tab
     }
 
     /**
-     * Get block of attributes
+     * Get block of attributes.
      *
      * @return \Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Tab\Super\Config\Attribute
      */
@@ -153,7 +152,7 @@ class Config extends Tab
     }
 
     /**
-     * Get block of variations
+     * Get block of variations.
      *
      * @return \Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Tab\Super\Config\Matrix
      */
@@ -179,7 +178,7 @@ class Config extends Tab
     }
 
     /**
-     * Get data of tab
+     * Get data of tab.
      *
      * @param array|null $fields
      * @param SimpleElement|null $element
@@ -199,7 +198,7 @@ class Config extends Tab
     }
 
     /**
-     * Delete all attributes
+     * Delete all attributes.
      *
      * @return void
      */
diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
index 4677854bb813f38ef01a5eadadb546e03ab054e6..a86c1eb0631c39cff35f27f27b248496bf81b4ff 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
@@ -165,11 +165,8 @@ class Attribute extends Form
         );
 
         $this->_rootElement->find($this->createNewVariationSet)->click();
-        $newAttribute = $this->getEditAttributeForm();
-        $newAttribute->fill($attributeFixture);
-        $newAttribute->_rootElement->find($this->saveAttribute)->click();
-
-        $this->browser->switchToFrame();
+        $this->getEditAttributeForm()->fill($attributeFixture);
+        $this->getEditAttributeForm()->saveAttributeForm();
     }
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/ProductForm.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/ProductForm.php
index 80b0cdcbe7d3e5b7cf05213d92f5723b694f8202..1fbc66894cebacdfb377b9a2edc64a5e04fa17a1 100755
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/ProductForm.php
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/ProductForm.php
@@ -12,13 +12,12 @@ use Magento\Backend\Test\Block\Widget\FormTabs;
 use Magento\Mtf\Client\Element\SimpleElement;
 
 /**
- * Class ProductForm
- * Product creation form
+ * Product creation form.
  */
 class ProductForm extends \Magento\Catalog\Test\Block\Adminhtml\Product\ProductForm
 {
     /**
-     * Fill the product form
+     * Fill the product form.
      *
      * @param FixtureInterface $product
      * @param SimpleElement|null $element [optional]
@@ -37,63 +36,4 @@ class ProductForm extends \Magento\Catalog\Test\Block\Adminhtml\Product\ProductF
         $this->showAdvancedSettings();
         return $this->fillTabs($tabs, $element);
     }
-
-    /**
-     * Normalize data in DataFixture
-     *
-     * @param array $tabs
-     * @return array
-     */
-    protected function normalizeDeprecateData(array $tabs)
-    {
-        if (!isset($tabs['variations'])) {
-            return $tabs;
-        }
-
-        $variations = $tabs['variations'];
-
-        $attributesData = [];
-        if (isset($variations['configurable_attributes_data']['value'])) {
-            foreach ($variations['configurable_attributes_data']['value'] as $key => $attribute) {
-                $attributesData[$key] = [
-                    'frontend_label' => $attribute['label']['value'],
-                ];
-                unset($attribute['label']);
-
-                foreach ($attribute as $optionKey => $option) {
-                    foreach ($option as $name => $field) {
-                        $option[$name] = $field['value'];
-                    }
-
-                    $option['label'] = $option['option_label'];
-                    unset($option['option_label']);
-
-                    $attribute[$optionKey] = $option;
-                }
-
-                $attributesData[$key]['options'] = $attribute;
-            }
-        }
-
-        $matrix = [];
-        if (isset($variations['variations-matrix'])) {
-            foreach ($variations['variations-matrix']['value'] as $key => $variation) {
-                foreach ($variation['value'] as $name => $field) {
-                    $matrix[$key][$name] = $field['value'];
-                }
-            }
-        }
-
-        $tabs['variations'] = [
-            'configurable_attributes_data' => [
-                'value' => [
-                    'attributes_data' => $attributesData,
-                    'matrix' => $matrix,
-                ],
-            ],
-        ];
-        unset($tabs['variations']['variations-matrix']);
-
-        return $tabs;
-    }
 }
diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductIsNotDisplayedSeparately.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductIsNotDisplayedSeparately.php
index 21dba7044b98d8836a56a46004ed84b5096a7198..5ca426319ecf125ba01af000427935a738773444 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductIsNotDisplayedSeparately.php
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductIsNotDisplayedSeparately.php
@@ -39,11 +39,19 @@ class AssertChildProductIsNotDisplayedSeparately extends AbstractConstraint
 
         $cmsIndex->open();
         foreach ($configurableAttributesData['matrix'] as $variation) {
-            $cmsIndex->getSearchBlock()->search($variation['sku']);
+            $product = $this->objectManager->create(
+                'Magento\Catalog\Test\Fixture\CatalogProductSimple',
+                [
+                    'data' => [
+                        'name' => $variation['name']
+                    ]
+                ]
+            );
 
-            $isVisibleProduct = $catalogSearchResult->getListProductBlock()->isProductVisible($variation['name']);
+            $cmsIndex->getSearchBlock()->search($variation['sku']);
+            $isVisibleProduct = $catalogSearchResult->getListProductBlock()->getProductItem($product)->isVisible();
             while (!$isVisibleProduct && $catalogSearchResult->getBottomToolbar()->nextPage()) {
-                $isVisibleProduct = $catalogSearchResult->getListProductBlock()->isProductVisible($product->getName());
+                $isVisibleProduct = $catalogSearchResult->getListProductBlock()->getProductItem($product)->isVisible();
             }
             if ($isVisibleProduct) {
                 $errors[] = sprintf(
diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProduct/ConfigurableAttributesData.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProduct/ConfigurableAttributesData.php
index fe8b0dca7a593758f1b5ea59cf691ac080665e3e..3b3b3108c99a348e0a4e00c937e1b3e6d578f03d 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProduct/ConfigurableAttributesData.php
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProduct/ConfigurableAttributesData.php
@@ -204,6 +204,33 @@ class ConfigurableAttributesData implements FixtureInterface
             ],
         ],
 
+        'one_variation_one_dollar' => [
+            'attributes_data' => [
+                'attribute_key_0' => [
+                    'options' => [
+                        'option_key_0' => [
+                            'pricing_value' => 1.00,
+                            'include' => 'Yes',
+                            'is_percent' => 'No',
+                        ],
+                    ],
+                ],
+            ],
+            'products' => [],
+            'attributes' => [
+                'attribute_key_0' => 'catalogProductAttribute::attribute_type_dropdown_one_option',
+            ],
+            'matrix' => [
+                'attribute_key_0:option_key_0' => [
+                    'display' => 'Yes',
+                    'quantity_and_stock_status' => [
+                        'qty' => 10,
+                    ],
+                    'weight' => 1,
+                ],
+            ],
+        ],
+
         'two_options' => [
             'attributes_data' => [
                 'attribute_key_0' => [
diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.php
index d61b5f8eb8fd91f32705e9cbd5ea1ad6a448088e..653e73400811647f85057a945016e845c914b31d 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.php
@@ -40,9 +40,9 @@ class CreateConfigurableProductEntityTest extends Injectable
 {
     /* tags */
     const TEST_TYPE = 'acceptance_test';
-    const STABLE = 'yes';
     const MVP = 'yes';
     const DOMAIN = 'MX';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml
index f6eedd937f22e0c7e6a02c165d429454d0c21c01..c90775e494c64bc193492d008cb88ea41e1caed1 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml
@@ -113,7 +113,7 @@
             <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory" />
             <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" />
         </variation>
-        <variation name="CreateConfigurableProductEntityTestVariation6" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
+        <variation name="CreateConfigurableProductEntityTestVariation6">
             <data name="description" xsi:type="string">MAGETWO-13361: Create Configurable Product with Creating New Category and New Attribute (Required Fields Only)</data>
             <data name="product/data/configurable_attributes_data/preset" xsi:type="string">two_searchable_options</data>
             <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data>
diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.php
index e42c08cd992d2053585932d3020313b5a3f5048d..7aade5f419fff074751dd8aa90e310e080c00476 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.php
@@ -33,6 +33,7 @@ class UpdateConfigurableProductEntityTest extends Scenario
     /* tags */
     const MVP = 'yes';
     const DOMAIN = 'MX';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.xml
index 943de11174926b759bd97566f7d1b5b4a8cf80f5..02d24b92e564bffda20aee14adabdb195974b651 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.xml
@@ -6,123 +6,111 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\ConfigurableProduct\Test\TestCase\UpdateConfigurableProductEntityTest">
-    <variation name="UpdateConfigurableProductEntityTestVariation1">
-      <data name="description" xsi:type="string">Add new option to existed Attribute</data>
-      <data name="attributeTypeAction" xsi:type="string">addOptions</data>
-      <data name="product" xsi:type="string">configurableProduct::default</data>
-      <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data>
-      <data name="updatedProduct/data/configurable_attributes_data/preset" xsi:type="string">one_new_options</data>
-      <data name="updatedProduct/data/checkout_data/preset" xsi:type="string">two_attributes</data>
-      <data name="updatedProduct/data/checkout_data/cartItem/price" xsi:type="string">153</data>
-      <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
-      <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-      <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
-      <data name="updatedProduct/data/category_ids/presets" xsi:type="string">default_subcategory</data>
-      <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data>
-      <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data>
-      <data name="updatedProduct/data/weight" xsi:type="string">3</data>
-      <data name="updatedProduct/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="updatedProduct/data/affected_attribute_set" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductsInGrid"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductIsNotDisplayedSeparately"/>
-    </variation>
-    <variation name="UpdateConfigurableProductEntityTestVariation2">
-      <data name="description" xsi:type="string">Add new variations</data>
-      <data name="product" xsi:type="string">configurableProduct::default</data>
-      <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data>
-      <data name="updatedProduct/data/configurable_attributes_data/preset" xsi:type="string">two_new_options</data>
-      <data name="updatedProduct/data/checkout_data/preset" xsi:type="string">three_attributes</data>
-      <data name="updatedProduct/data/checkout_data/cartItem/price" xsi:type="string">154</data>
-      <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
-      <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-      <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
-      <data name="updatedProduct/data/category_ids/presets" xsi:type="string">-</data>
-      <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data>
-      <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data>
-      <data name="updatedProduct/data/weight" xsi:type="string">3</data>
-      <data name="updatedProduct/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="updatedProduct/data/affected_attribute_set" xsi:type="string">custom_attribute_set_%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart"/>
-    </variation>
-    <variation name="UpdateConfigurableProductEntityTestVariation3">
-      <data name="description" xsi:type="string">Delete one attribute and add another</data>
-      <data name="attributeTypeAction" xsi:type="string">deleteLast</data>
-      <data name="product" xsi:type="string">configurableProduct::default</data>
-      <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data>
-      <data name="updatedProduct/data/configurable_attributes_data/preset" xsi:type="string">two_new_options</data>
-      <data name="updatedProduct/data/checkout_data/preset" xsi:type="string">two_attributes</data>
-      <data name="updatedProduct/data/checkout_data/cartItem/price" xsi:type="string">112</data>
-      <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
-      <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-      <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
-      <data name="updatedProduct/data/category_ids/presets" xsi:type="string">default_subcategory</data>
-      <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data>
-      <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data>
-      <data name="updatedProduct/data/weight" xsi:type="string">3</data>
-      <data name="updatedProduct/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="updatedProduct/data/affected_attribute_set" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableAttributesAbsentOnProductPage"/>
-    </variation>
-    <variation name="UpdateConfigurableProductEntityTestVariation4">
-      <data name="description" xsi:type="string">Delete attribute and add another with products qty = 0</data>
-      <data name="attributeTypeAction" xsi:type="string">deleteAll</data>
-      <data name="product" xsi:type="string">configurableProduct::default</data>
-      <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data>
-      <data name="updatedProduct/data/configurable_attributes_data/preset" xsi:type="string">two_new_options_with_zero_products</data>
-      <data name="updatedProduct/data/checkout_data/preset" xsi:type="string">two_attributes</data>
-      <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
-      <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-      <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
-      <data name="updatedProduct/data/category_ids/presets" xsi:type="string">-</data>
-      <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data>
-      <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data>
-      <data name="updatedProduct/data/weight" xsi:type="string">3</data>
-      <data name="updatedProduct/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="updatedProduct/data/affected_attribute_set" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableAttributesBlockIsAbsentOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock"/>
-    </variation>
-    <variation name="UpdateConfigurableProductEntityTestVariation5" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">MAGETWO-12840: Edit Configurable Product</data>
-      <data name="attributeTypeAction" xsi:type="string">addOptions</data>
-      <data name="product" xsi:type="string">configurableProduct::two_options_with_fixed_price</data>
-      <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data>
-      <data name="updatedProduct/data/configurable_attributes_data/preset" xsi:type="string">one_new_options</data>
-      <data name="updatedProduct/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="updatedProduct/data/checkout_data/cartItem/price" xsi:type="string">-</data>
-      <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
-      <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-      <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
-      <data name="updatedProduct/data/category_ids/presets" xsi:type="string">-</data>
-      <data name="updatedProduct/data/short_description" xsi:type="string">-</data>
-      <data name="updatedProduct/data/description" xsi:type="string">-</data>
-      <data name="updatedProduct/data/weight" xsi:type="string">-</data>
-      <data name="updatedProduct/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="updatedProduct/data/affected_attribute_set" xsi:type="string">-</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" next="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage"/>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" prev="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\ConfigurableProduct\Test\TestCase\UpdateConfigurableProductEntityTest">
+        <variation name="UpdateConfigurableProductEntityTestVariation1">
+            <data name="description" xsi:type="string">Add new option to existed Attribute</data>
+            <data name="attributeTypeAction" xsi:type="string">addOptions</data>
+            <data name="product" xsi:type="string">configurableProduct::default</data>
+            <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data>
+            <data name="updatedProduct/data/configurable_attributes_data/preset" xsi:type="string">one_new_options</data>
+            <data name="updatedProduct/data/checkout_data/preset" xsi:type="string">two_attributes</data>
+            <data name="updatedProduct/data/checkout_data/cartItem/price" xsi:type="string">153</data>
+            <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
+            <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
+            <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
+            <data name="updatedProduct/data/category_ids/presets" xsi:type="string">default_subcategory</data>
+            <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data>
+            <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data>
+            <data name="updatedProduct/data/weight" xsi:type="string">3</data>
+            <data name="updatedProduct/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductsInGrid" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductIsNotDisplayedSeparately" />
+        </variation>
+        <variation name="UpdateConfigurableProductEntityTestVariation2">
+            <data name="description" xsi:type="string">Add new variations</data>
+            <data name="product" xsi:type="string">configurableProduct::default</data>
+            <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data>
+            <data name="updatedProduct/data/configurable_attributes_data/preset" xsi:type="string">two_new_options</data>
+            <data name="updatedProduct/data/checkout_data/preset" xsi:type="string">three_attributes</data>
+            <data name="updatedProduct/data/checkout_data/cartItem/price" xsi:type="string">154</data>
+            <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
+            <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
+            <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
+            <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data>
+            <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data>
+            <data name="updatedProduct/data/weight" xsi:type="string">3</data>
+            <data name="updatedProduct/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="updatedProduct/data/affected_attribute_set" xsi:type="string">custom_attribute_set_%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart" />
+        </variation>
+        <variation name="UpdateConfigurableProductEntityTestVariation3">
+            <data name="description" xsi:type="string">Delete one attribute and add another</data>
+            <data name="attributeTypeAction" xsi:type="string">deleteLast</data>
+            <data name="product" xsi:type="string">configurableProduct::default</data>
+            <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data>
+            <data name="updatedProduct/data/configurable_attributes_data/preset" xsi:type="string">two_new_options</data>
+            <data name="updatedProduct/data/checkout_data/preset" xsi:type="string">two_attributes</data>
+            <data name="updatedProduct/data/checkout_data/cartItem/price" xsi:type="string">112</data>
+            <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
+            <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
+            <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
+            <data name="updatedProduct/data/category_ids/presets" xsi:type="string">default_subcategory</data>
+            <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data>
+            <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data>
+            <data name="updatedProduct/data/weight" xsi:type="string">3</data>
+            <data name="updatedProduct/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableAttributesAbsentOnProductPage" />
+        </variation>
+        <variation name="UpdateConfigurableProductEntityTestVariation4">
+            <data name="issue" xsi:type="string">Bug: MAGETWO-34791</data>
+            <data name="description" xsi:type="string">Delete attribute and add another with products qty = 0</data>
+            <data name="attributeTypeAction" xsi:type="string">deleteAll</data>
+            <data name="product" xsi:type="string">configurableProduct::default</data>
+            <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data>
+            <data name="updatedProduct/data/configurable_attributes_data/preset" xsi:type="string">two_new_options_with_zero_products</data>
+            <data name="updatedProduct/data/checkout_data/preset" xsi:type="string">two_attributes</data>
+            <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
+            <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
+            <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
+            <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data>
+            <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data>
+            <data name="updatedProduct/data/weight" xsi:type="string">3</data>
+            <data name="updatedProduct/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableAttributesBlockIsAbsentOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
+        </variation>
+        <variation name="UpdateConfigurableProductEntityTestVariation5">
+            <data name="description" xsi:type="string">MAGETWO-12840: Edit Configurable Product</data>
+            <data name="attributeTypeAction" xsi:type="string">addOptions</data>
+            <data name="product" xsi:type="string">configurableProduct::two_options_with_fixed_price</data>
+            <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data>
+            <data name="updatedProduct/data/configurable_attributes_data/preset" xsi:type="string">one_new_options</data>
+            <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
+            <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
+            <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/Currency/GridPageActions.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/Currency/GridPageActions.php
index 0885f0a1e9006243d66a3d4bae567a11a83ee2fe..f50f9a58386a4aa4ccada29a5115324aad6e4e57 100644
--- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/Currency/GridPageActions.php
+++ b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/Currency/GridPageActions.php
@@ -7,7 +7,7 @@
 namespace Magento\CurrencySymbol\Test\Block\Adminhtml\System\Currency;
 
 use Magento\Backend\Test\Block\PageActions;
-use Magento\Core\Test\Block\Messages;
+use Magento\Backend\Test\Block\Messages;
 
 /**
  * Grid page actions on the SystemCurrencyIndex page.
@@ -60,7 +60,7 @@ class GridPageActions extends PageActions
     protected function getMessageBlock()
     {
         return $this->blockFactory->create(
-            'Magento\Core\Test\Block\Messages',
+            'Magento\Backend\Test\Block\Messages',
             ['element' => $this->_rootElement->find($this->message)]
         );
     }
diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnCatalogPage.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnCatalogPage.php
index 3748775faf3574de4269f66c91723e51fb34eef6..7ed3eeb4ef5e4ccc1fec4386be12f6e7696f75f2 100644
--- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnCatalogPage.php
+++ b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnCatalogPage.php
@@ -37,7 +37,7 @@ class AssertCurrencySymbolOnCatalogPage extends AbstractConstraint
         $cmsIndex->open();
         $cmsIndex->getCurrencyBlock()->switchCurrency($currencySymbol);
         $cmsIndex->getTopmenu()->selectCategoryByName($categoryName);
-        $price = $catalogCategoryView->getListProductBlock()->getPrice($product->getId());
+        $price = $catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock()->getPrice('');
         preg_match('`(.*?)\d`', $price, $matches);
 
         $symbolOnPage = isset($matches[1]) ? $matches[1] : null;
diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Page/Adminhtml/SystemCurrencySymbolIndex.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Page/Adminhtml/SystemCurrencySymbolIndex.xml
index 19d692b53728a6811dfc70bd444c95dd4dc1c1e4..6562b1799f18d847f50c9c4ac8d23a0b593b4cc2 100644
--- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Page/Adminhtml/SystemCurrencySymbolIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Page/Adminhtml/SystemCurrencySymbolIndex.xml
@@ -7,7 +7,7 @@
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
     <page name="SystemCurrencySymbolIndex" area="Adminhtml" mca="admin/system_currencysymbol/index" module="Magento_CurrencySymbol">
-        <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+        <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
         <block name="currencySymbolForm" class="Magento\CurrencySymbol\Test\Block\Adminhtml\System\CurrencySymbolForm" locator="#currency-symbols-form" strategy="css selector"/>
         <block name="pageActions" class="Magento\CurrencySymbol\Test\Block\Adminhtml\System\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     </page>
diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Repository/ConfigData.xml
similarity index 95%
rename from dev/tests/functional/tests/app/Magento/Directory/Test/Repository/ConfigData.xml
rename to dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Repository/ConfigData.xml
index 1afdae4142c3ca241c73666e9d8c9e310be9b530..46e7d3bd7fd8d163d777dcf9be8ab1a7f20e23be 100644
--- a/dev/tests/functional/tests/app/Magento/Directory/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="config_currency_symbols_usd_and_uah">
             <field path="currency/options/allow" scope="currency" scope_id="1" xsi:type="array">
                 <item name="US Dollar" xsi:type="string">USD</item>
diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencySymbolEntityTest.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencySymbolEntityTest.php
index 71d6d450faa759e3ecb645f547be5465697aeda7..5d2cc6badaa78bc22e0cec669393579f8e72e42f 100644
--- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencySymbolEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencySymbolEntityTest.php
@@ -14,7 +14,6 @@ use Magento\CurrencySymbol\Test\Page\Adminhtml\SystemCurrencyIndex;
 use Magento\CurrencySymbol\Test\Page\Adminhtml\SystemCurrencySymbolIndex;
 
 /**
- * Test Flow:
  * Preconditions:
  * 1. Create simple product
  *
@@ -36,7 +35,7 @@ class EditCurrencySymbolEntityTest extends Injectable
     /* end tags */
 
     /**
-     * System Currency Symbol grid page
+     * System Currency Symbol grid page.
      *
      * @var SystemCurrencySymbolIndex
      */
@@ -76,7 +75,7 @@ class EditCurrencySymbolEntityTest extends Injectable
     }
 
     /**
-     * Edit Currency Symbol Entity test
+     * Edit Currency Symbol Entity test.
      *
      * @param CurrencySymbolEntity $currencySymbol
      * @param string $configData
@@ -102,7 +101,7 @@ class EditCurrencySymbolEntityTest extends Injectable
     protected function importCurrencyRate($configData)
     {
         $this->objectManager->getInstance()->create(
-            'Magento\Core\Test\TestStep\SetupConfigurationStep',
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
             ['configData' => $configData]
         )->run();
 
@@ -120,7 +119,7 @@ class EditCurrencySymbolEntityTest extends Injectable
     public function tearDown()
     {
         $this->objectManager->getInstance()->create(
-            'Magento\Core\Test\TestStep\SetupConfigurationStep',
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
             ['configData' => 'config_currency_symbols_usd']
         )->run();
     }
diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencySymbolEntityTest.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencySymbolEntityTest.xml
index fd3f5a2bb66b359792af49bf7bfbcedc70ad6d96..9ca83af6d7ffc67382272ca15f4104c5f26178d0 100644
--- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencySymbolEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencySymbolEntityTest.xml
@@ -6,33 +6,33 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\CurrencySymbol\Test\TestCase\EditCurrencySymbolEntityTest">
-    <variation name="EditCurrencySymbolEntityTestVariation1" firstConstraint="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" method="test">
-      <data name="configData" xsi:type="string">config_currency_symbols_usd_and_uah</data>
-      <data name="currencySymbol/data/code" xsi:type="string">UAH</data>
-      <data name="currencySymbol/data/inherit_custom_currency_symbol" xsi:type="string">No</data>
-      <data name="currencySymbol/data/custom_currency_symbol" xsi:type="string">custom</data>
-      <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" next="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnCatalogPage"/>
-      <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnCatalogPage" next="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage"/>
-      <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage"/>
-    </variation>
-    <variation name="EditCurrencySymbolEntityTestVariation2" firstConstraint="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" method="test">
-      <data name="configData" xsi:type="string">config_currency_symbols_usd_and_uah</data>
-      <data name="currencySymbol/data/code" xsi:type="string">UAH</data>
-      <data name="currencySymbol/data/inherit_custom_currency_symbol" xsi:type="string">No</data>
-      <data name="currencySymbol/data/custom_currency_symbol" xsi:type="string">&amp;</data>
-      <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" next="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage"/>
-      <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage" next="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnCatalogPage" prev="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage"/>
-      <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnCatalogPage" prev="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage"/>
-    </variation>
-    <variation name="EditCurrencySymbolEntityTestVariation3" firstConstraint="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" method="test">
-      <data name="configData" xsi:type="string">config_currency_symbols_usd_and_uah</data>
-      <data name="currencySymbol/data/code" xsi:type="string">UAH</data>
-      <data name="currencySymbol/data/inherit_custom_currency_symbol" xsi:type="string">No</data>
-      <data name="currencySymbol/data/custom_currency_symbol" xsi:type="string">%</data>
-      <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" next="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage"/>
-      <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage" next="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnCatalogPage" prev="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage"/>
-      <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnCatalogPage" prev="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\CurrencySymbol\Test\TestCase\EditCurrencySymbolEntityTest">
+        <variation name="EditCurrencySymbolEntityTestVariation1">
+            <data name="configData" xsi:type="string">config_currency_symbols_usd_and_uah</data>
+            <data name="currencySymbol/data/code" xsi:type="string">UAH</data>
+            <data name="currencySymbol/data/inherit_custom_currency_symbol" xsi:type="string">No</data>
+            <data name="currencySymbol/data/custom_currency_symbol" xsi:type="string">custom</data>
+            <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" />
+            <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnCatalogPage" />
+            <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage" />
+        </variation>
+        <variation name="EditCurrencySymbolEntityTestVariation2">
+            <data name="configData" xsi:type="string">config_currency_symbols_usd_and_uah</data>
+            <data name="currencySymbol/data/code" xsi:type="string">UAH</data>
+            <data name="currencySymbol/data/inherit_custom_currency_symbol" xsi:type="string">No</data>
+            <data name="currencySymbol/data/custom_currency_symbol" xsi:type="string">&amp;</data>
+            <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" />
+            <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage" />
+            <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnCatalogPage" />
+        </variation>
+        <variation name="EditCurrencySymbolEntityTestVariation3">
+            <data name="configData" xsi:type="string">config_currency_symbols_usd_and_uah</data>
+            <data name="currencySymbol/data/code" xsi:type="string">UAH</data>
+            <data name="currencySymbol/data/inherit_custom_currency_symbol" xsi:type="string">No</data>
+            <data name="currencySymbol/data/custom_currency_symbol" xsi:type="string">%</data>
+            <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" />
+            <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage" />
+            <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnCatalogPage" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/ResetCurrencySymbolEntityTest.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/ResetCurrencySymbolEntityTest.php
index 1265bf2e1f5b38a1dd4d760d50ef849135bb4dc1..f64c407f6aefffb4f76ccf351282c38556b079ca 100644
--- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/ResetCurrencySymbolEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/ResetCurrencySymbolEntityTest.php
@@ -14,8 +14,6 @@ use Magento\CurrencySymbol\Test\Page\Adminhtml\SystemCurrencyIndex;
 use Magento\CurrencySymbol\Test\Page\Adminhtml\SystemCurrencySymbolIndex;
 
 /**
- * Test Flow:
- *
  * Preconditions:
  * 1. Create simple product
  * 2. Create custom Currency Symbol
@@ -147,7 +145,7 @@ class ResetCurrencySymbolEntityTest extends Injectable
     protected function importCurrencyRate($configData)
     {
         $this->objectManager->getInstance()->create(
-            'Magento\Core\Test\TestStep\SetupConfigurationStep',
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
             ['configData' => $configData]
         )->run();
 
@@ -165,7 +163,7 @@ class ResetCurrencySymbolEntityTest extends Injectable
     public function tearDown()
     {
         $this->objectManager->getInstance()->create(
-            'Magento\Core\Test\TestStep\SetupConfigurationStep',
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
             ['configData' => 'config_currency_symbols_usd']
         )->run();
     }
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Address/Edit.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Address/Edit.xml
index 5ffe1231b18992fdee33924dbd0573229a36b4c6..2bf2c3e77ea27d80ed4a5f674f017e471aaa7eff 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Address/Edit.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Address/Edit.xml
@@ -15,6 +15,10 @@
             <selector>#street_1</selector>
         </street>
         <city />
+        <country_id>
+            <selector>#country</selector>
+            <input>select</input>
+        </country_id>
         <region_id>
             <input>select</input>
         </region_id>
@@ -22,9 +26,5 @@
         <postcode>
             <selector>#zip</selector>
         </postcode>
-        <country_id>
-            <selector>#country</selector>
-            <input>select</input>
-        </country_id>
     </fields>
 </mapping>
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/CustomerForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/CustomerForm.php
index 6d7588a6e391434de23d2fbaab57b36354d8e5ce..c81f017f35223fbfba7aafb6fa478f166c93efa5 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/CustomerForm.php
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/CustomerForm.php
@@ -48,7 +48,7 @@ class CustomerForm extends Form
     }
 
     /**
-     * Fill the customer data
+     * Fill the customer data.
      *
      * @param FixtureInterface $customer
      * @param SimpleElement|null $element
@@ -58,8 +58,9 @@ class CustomerForm extends Form
     {
         /** @var Customer $customer */
         if ($customer->hasData()) {
-            return parent::fill($customer, $element);
+            parent::fill($customer, $element);
         }
+        return $this;
     }
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupIndex.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupIndex.xml
index ecef20f61dce32dad4568628601b61e0d7ae2814..f2a1d5b8e334e75aaaa9fb628c9103d0634b55d4 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupIndex.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CustomerGroupIndex" area="Adminhtml" mca="customer/group/index" module="Magento_Customer">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
     <block name="gridPageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="customerGroupGrid" class="Magento\Customer\Test\Block\Adminhtml\Group\CustomerGroupGrid" locator="#customerGroupGrid" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupNew.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupNew.xml
index 1226ca87adb67fdb30957ae6abf4bbc500b8bce9..69db394b4cd959a1ed6c295872385ba49c86b0cf 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupNew.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupNew.xml
@@ -9,6 +9,6 @@
   <page name="CustomerGroupNew" area="Adminhtml" mca="customer/group/new" module="Magento_Customer">
     <block name="pageMainActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="pageMainForm" class="Magento\Customer\Test\Block\Adminhtml\Group\Edit\Form" locator="[id='page:main-container']" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndex.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndex.xml
index 63249b4149c8ffa66f312ce1c3f8b9161f8eca49..f9ffc10bcee200ab1399206e93a0a89392fd4550 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndex.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CustomerIndex" area="Adminhtml" mca="customer/index" module="Magento_Customer">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="pageActionsBlock" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="customerGridBlock" class="Magento\Customer\Test\Block\Adminhtml\CustomerGrid" locator="#customerGrid" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml
index 749128e6d16fbf3636a6acd25207f6d434bd1349..80bd928de60acd6954d2f443840b73a548cd2c49 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml
@@ -8,7 +8,7 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CustomerIndexEdit" area="Adminhtml" mca="customer/index/edit" module="Magento_Customer">
     <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper .page-title" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="pageActionsBlock" class="Magento\Customer\Test\Block\Adminhtml\Edit\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="customerForm" class="Magento\Customer\Test\Block\Adminhtml\Edit\CustomerForm" locator="[id='page:main-container']" strategy="css selector"/>
     <block name="configureProductBlock" class="Magento\Catalog\Test\Block\Adminhtml\Product\Composite\Configure" locator="//*[@role='dialog' and ./*[@id='product_composite_configure'] and contains(@style,'display: block')]" strategy="xpath"/>
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexNew.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexNew.xml
index 72fddda39ee57db95ec842c1d42e322587cee29c..60e18da655c7c8dd490aac5259fb76ac88dac7e9 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexNew.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexNew.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CustomerIndexNew" area="Adminhtml" mca="customer/index/new" module="Magento_Customer">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="pageActionsBlock" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="customerForm" class="Magento\Customer\Test\Block\Adminhtml\Edit\CustomerForm" locator="[id='page:main-container']" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountCreate.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountCreate.xml
index 16e8758cf4371ee1db735c43cc4e3fc56c262863..783fa1ad4e1b476da685d85db7e08281163d7256 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountCreate.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountCreate.xml
@@ -8,6 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CustomerAccountCreate" mca="customer/account/create" module="Magento_Customer">
     <block name="registerForm" class="Magento\Customer\Test\Block\Form\Register" locator="#form-validate" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator=".page.messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".page.messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountEdit.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountEdit.xml
index c49afd72b57a3704363472ca18b8302b12150686..dafac8b656f8818972b77a4b6ca92e1fa36fa5a1 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountEdit.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountEdit.xml
@@ -8,6 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CustomerAccountEdit" mca="customer/account/edit" module="Magento_Customer">
     <block name="accountInfoForm" class="Magento\Customer\Test\Block\Form\CustomerForm" locator="#form-validate" strategy="css selector"/>
-    <block name="messages" class="Magento\Core\Test\Block\Messages" locator=".page.messages" strategy="css selector"/>
+    <block name="messages" class="Magento\Backend\Test\Block\Messages" locator=".page.messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountIndex.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountIndex.xml
index 9dc6c4dfd8882ecc94ca625f8d16f3a57eab5882..d56eee453ae650f1472cd6e0aaffe0dcda79a6f1 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountIndex.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CustomerAccountIndex" mca="customer/account/index" module="Magento_Customer">
-    <block name="messages" class="Magento\Core\Test\Block\Messages" locator=".page.messages" strategy="css selector"/>
+    <block name="messages" class="Magento\Backend\Test\Block\Messages" locator=".page.messages" strategy="css selector"/>
     <block name="dashboardAddress" class="Magento\Customer\Test\Block\Account\Dashboard\Address" locator=".block-dashboard-addresses" strategy="css selector"/>
     <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper" strategy="css selector"/>
     <block name="accountMenuBlock" class="Magento\Customer\Test\Block\Account\Links" locator=".nav.items" strategy="css selector"/>
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountLogin.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountLogin.xml
index 31ce3d0f773f51152426964a1254d6140723cdce..0c25bac8fe9c35eb400060a146fa86166a83a152 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountLogin.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountLogin.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CustomerAccountLogin" mca="customer/account/login" module="Magento_Customer">
-    <block name="messages" class="Magento\Core\Test\Block\Messages" locator=".page.messages" strategy="css selector"/>
+    <block name="messages" class="Magento\Backend\Test\Block\Messages" locator=".page.messages" strategy="css selector"/>
     <block name="loginBlock" class="Magento\Customer\Test\Block\Form\Login" locator="#login-form" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ChangeCustomerPasswordTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ChangeCustomerPasswordTest.php
index 0040ce3c12d65fdd7c767c257e756ce15368bdf6..086636b451771882b5924187857af2902e800fc5 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ChangeCustomerPasswordTest.php
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ChangeCustomerPasswordTest.php
@@ -34,6 +34,7 @@ class ChangeCustomerPasswordTest extends Injectable
     /* tags */
     const MVP = 'yes';
     const DOMAIN = 'CS';
+    const STABLE = 'no';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ChangeCustomerPasswordTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ChangeCustomerPasswordTest.xml
index e7cbecb8fea05d3e38adaa4765d4970a2cc2cda2..d60ae3776821335480626a24a409cd99c426af2f 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ChangeCustomerPasswordTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ChangeCustomerPasswordTest.xml
@@ -6,28 +6,28 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Customer\Test\TestCase\ChangeCustomerPasswordTest">
-    <variation name="ChangeCustomerPasswordTestVariation1" firstConstraint="Magento\Customer\Test\Constraint\AssertCustomerInfoSuccessSavedMessage" method="test">
-      <data name="initialCustomer/dataSet" xsi:type="string">default</data>
-      <data name="customer/data/current_password" xsi:type="string">123123q</data>
-      <data name="customer/data/password" xsi:type="string">123123a</data>
-      <data name="customer/data/password_confirmation" xsi:type="string">123123a</data>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInfoSuccessSavedMessage" next="Magento\Customer\Test\Constraint\AssertCustomerPasswordChanged"/>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerPasswordChanged" prev="Magento\Customer\Test\Constraint\AssertCustomerInfoSuccessSavedMessage"/>
-    </variation>
-    <variation name="ChangeCustomerPasswordTestVariation2" firstConstraint="Magento\Customer\Test\Constraint\AssertChangePasswordFailMessage" method="test">
-      <data name="initialCustomer/dataSet" xsi:type="string">default</data>
-      <data name="customer/data/current_password" xsi:type="string">123123</data>
-      <data name="customer/data/password" xsi:type="string">123123a</data>
-      <data name="customer/data/password_confirmation" xsi:type="string">123123a</data>
-      <constraint name="Magento\Customer\Test\Constraint\AssertChangePasswordFailMessage"/>
-    </variation>
-    <variation name="ChangeCustomerPasswordTestVariation3" firstConstraint="Magento\Customer\Test\Constraint\AssertWrongPassConfirmationMessage" method="test">
-      <data name="initialCustomer/dataSet" xsi:type="string">default</data>
-      <data name="customer/data/current_password" xsi:type="string">123123q</data>
-      <data name="customer/data/password" xsi:type="string">123123a</data>
-      <data name="customer/data/password_confirmation" xsi:type="string">123123</data>
-      <constraint name="Magento\Customer\Test\Constraint\AssertWrongPassConfirmationMessage"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Customer\Test\TestCase\ChangeCustomerPasswordTest">
+        <variation name="ChangeCustomerPasswordTestVariation1">
+            <data name="initialCustomer/dataSet" xsi:type="string">default</data>
+            <data name="customer/data/current_password" xsi:type="string">123123q</data>
+            <data name="customer/data/password" xsi:type="string">123123a</data>
+            <data name="customer/data/password_confirmation" xsi:type="string">123123a</data>
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInfoSuccessSavedMessage" />
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerPasswordChanged" />
+        </variation>
+        <variation name="ChangeCustomerPasswordTestVariation2">
+            <data name="initialCustomer/dataSet" xsi:type="string">default</data>
+            <data name="customer/data/current_password" xsi:type="string">123123</data>
+            <data name="customer/data/password" xsi:type="string">123123a</data>
+            <data name="customer/data/password_confirmation" xsi:type="string">123123a</data>
+            <constraint name="Magento\Customer\Test\Constraint\AssertChangePasswordFailMessage" />
+        </variation>
+        <variation name="ChangeCustomerPasswordTestVariation3">
+            <data name="initialCustomer/dataSet" xsi:type="string">default</data>
+            <data name="customer/data/current_password" xsi:type="string">123123q</data>
+            <data name="customer/data/password" xsi:type="string">123123a</data>
+            <data name="customer/data/password_confirmation" xsi:type="string">123123</data>
+            <constraint name="Magento\Customer\Test\Constraint\AssertWrongPassConfirmationMessage" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerBackendEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerBackendEntityTest.php
index e178cb7bcb48af4593d0d05bc2f1917dd439227a..d5e4eb857f2d3803b3e9829df79c8111f7010f05 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerBackendEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerBackendEntityTest.php
@@ -28,6 +28,7 @@ class CreateCustomerBackendEntityTest extends Injectable
     /* tags */
     const MVP = 'yes';
     const DOMAIN = 'CS';
+    const STABLE = 'no';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerGroupEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerGroupEntityTest.php
index 8ba1a89d841e71f50afa76ee752b859dfe359f1a..ac44139514246480093fc849c84b97cb0ed63491 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerGroupEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerGroupEntityTest.php
@@ -30,6 +30,7 @@ class CreateCustomerGroupEntityTest extends Injectable
     /* tags */
     const MVP = 'yes';
     const DOMAIN = 'CS';
+    const STABLE = 'no';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/RegisterCustomerFrontendEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/RegisterCustomerFrontendEntityTest.php
index 06bd850b3766ec9a6fd6b5ee560b726e3cc286e8..3a0bd675482325f24ee413150f251bc211cc182e 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/RegisterCustomerFrontendEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/RegisterCustomerFrontendEntityTest.php
@@ -29,6 +29,7 @@ class RegisterCustomerFrontendEntityTest extends Injectable
     const MVP = 'yes';
     const DOMAIN = 'CS';
     const TEST_TYPE = 'acceptance_test';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/RegisterCustomerFrontendEntityTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/RegisterCustomerFrontendEntityTest.xml
index 8390006cbb936544a0a5a0c16960f3dc561564ae..d4ecd6f24276d161cb040490a6f5404ee516faf2 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/RegisterCustomerFrontendEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/RegisterCustomerFrontendEntityTest.xml
@@ -6,42 +6,42 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Customer\Test\TestCase\RegisterCustomerFrontendEntityTest">
-    <variation name="RegisterCustomerFrontendEntityTestVariation1">
-      <data name="description" xsi:type="string">Register new customer</data>
-      <data name="customer/data/firstname" xsi:type="string">john</data>
-      <data name="customer/data/lastname" xsi:type="string">doe</data>
-      <data name="customer/data/email" xsi:type="string">johndoe%isolation%@example.com</data>
-      <data name="customer/data/is_subscribed" xsi:type="string">No</data>
-      <data name="customer/data/password" xsi:type="string">123123q</data>
-      <data name="customer/data/password_confirmation" xsi:type="string">123123q</data>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessRegisterMessage"/>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInGrid"/>
-    </variation>
-    <variation name="RegisterCustomerFrontendEntityTestVariation2">
-      <data name="description" xsi:type="string">Register new customer with subscribing</data>
-      <data name="customer/data/firstname" xsi:type="string">john</data>
-      <data name="customer/data/lastname" xsi:type="string">doe</data>
-      <data name="customer/data/email" xsi:type="string">johndoe%isolation%@example.com</data>
-      <data name="customer/data/is_subscribed" xsi:type="string">Yes</data>
-      <data name="customer/data/password" xsi:type="string">123123q</data>
-      <data name="customer/data/password_confirmation" xsi:type="string">123123q</data>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessRegisterMessage"/>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInGrid"/>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm"/>
-      <constraint name="Magento\Newsletter\Test\Constraint\AssertCustomerIsSubscribedToNewsletter"/>
-    </variation>
-    <variation name="RegisterCustomerFrontendEntityTestVariation3">
-      <data name="description" xsi:type="string">MAGETWO-12394: Register Customer</data>
-      <data name="customer/data/firstname" xsi:type="string">john</data>
-      <data name="customer/data/lastname" xsi:type="string">doe</data>
-      <data name="customer/data/email" xsi:type="string">johndoe%isolation%@example.com</data>
-      <data name="customer/data/is_subscribed" xsi:type="string">No</data>
-      <data name="customer/data/password" xsi:type="string">123123q</data>
-      <data name="customer/data/password_confirmation" xsi:type="string">123123q</data>
-      <data name="tag" xsi:type="string">test_type:acceptance_test</data>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessRegisterMessage"/>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerRedirectToDashboard"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Customer\Test\TestCase\RegisterCustomerFrontendEntityTest">
+        <variation name="RegisterCustomerFrontendEntityTestVariation1">
+            <data name="description" xsi:type="string">Register new customer</data>
+            <data name="customer/data/firstname" xsi:type="string">john</data>
+            <data name="customer/data/lastname" xsi:type="string">doe</data>
+            <data name="customer/data/email" xsi:type="string">johndoe%isolation%@example.com</data>
+            <data name="customer/data/is_subscribed" xsi:type="string">No</data>
+            <data name="customer/data/password" xsi:type="string">123123q</data>
+            <data name="customer/data/password_confirmation" xsi:type="string">123123q</data>
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessRegisterMessage" />
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInGrid" />
+        </variation>
+        <variation name="RegisterCustomerFrontendEntityTestVariation2">
+            <data name="description" xsi:type="string">Register new customer with subscribing</data>
+            <data name="customer/data/firstname" xsi:type="string">john</data>
+            <data name="customer/data/lastname" xsi:type="string">doe</data>
+            <data name="customer/data/email" xsi:type="string">johndoe%isolation%@example.com</data>
+            <data name="customer/data/is_subscribed" xsi:type="string">Yes</data>
+            <data name="customer/data/password" xsi:type="string">123123q</data>
+            <data name="customer/data/password_confirmation" xsi:type="string">123123q</data>
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessRegisterMessage" />
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInGrid" />
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" />
+            <constraint name="Magento\Newsletter\Test\Constraint\AssertCustomerIsSubscribedToNewsletter" />
+        </variation>
+        <variation name="RegisterCustomerFrontendEntityTestVariation3">
+            <data name="description" xsi:type="string">MAGETWO-12394: Register Customer</data>
+            <data name="customer/data/firstname" xsi:type="string">john</data>
+            <data name="customer/data/lastname" xsi:type="string">doe</data>
+            <data name="customer/data/email" xsi:type="string">johndoe%isolation%@example.com</data>
+            <data name="customer/data/is_subscribed" xsi:type="string">No</data>
+            <data name="customer/data/password" xsi:type="string">123123q</data>
+            <data name="customer/data/password_confirmation" xsi:type="string">123123q</data>
+            <data name="tag" xsi:type="string">test_type:acceptance_test</data>
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessRegisterMessage" />
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerRedirectToDashboard" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerBackendEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerBackendEntityTest.php
index f1fdd71ae8e92c9cb319abe9789a9dbf5e0f8fb9..1e2eebf2720782e74cc943280e3ce918d330846d 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerBackendEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerBackendEntityTest.php
@@ -30,6 +30,7 @@ class UpdateCustomerBackendEntityTest extends Injectable
     /* tags */
     const MVP = 'yes';
     const DOMAIN = 'CS';
+    const STABLE = 'no';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerFrontendEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerFrontendEntityTest.php
index 036c03c76f7e381b633155db19993757a37ceadd..2892af943fdd10dde6a8f51e40fa4580fe885047 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerFrontendEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerFrontendEntityTest.php
@@ -12,13 +12,11 @@ use Magento\Customer\Test\Fixture\Address;
 use Magento\Customer\Test\Fixture\Customer;
 use Magento\Customer\Test\Page\CustomerAccountEdit;
 use Magento\Customer\Test\Page\CustomerAccountIndex;
-use Magento\Customer\Test\Page\CustomerAccountLogin;
 use Magento\Customer\Test\Page\CustomerAddressEdit;
 use Magento\Mtf\Fixture\FixtureFactory;
 use Magento\Mtf\TestCase\Injectable;
 
 /**
- * Test Flow:
  * Preconditions:
  * 1. Default test customer is created
  *
@@ -58,13 +56,6 @@ class UpdateCustomerFrontendEntityTest extends Injectable
      */
     protected $cmsIndex;
 
-    /**
-     * CustomerAccountLogin page
-     *
-     * @var CustomerAccountLogin
-     */
-    protected $customerAccountLogin;
-
     /**
      * CustomerAccountIndex page
      *
@@ -91,7 +82,6 @@ class UpdateCustomerFrontendEntityTest extends Injectable
      *
      * @param CmsIndex $cmsIndex
      * @param FixtureFactory $fixtureFactory
-     * @param CustomerAccountLogin $customerAccountLogin
      * @param CustomerAccountIndex $customerAccountIndex
      * @param CustomerAccountEdit $customerAccountEdit
      * @param CustomerAddressEdit $customerAddressEdit
@@ -100,14 +90,12 @@ class UpdateCustomerFrontendEntityTest extends Injectable
     public function __inject(
         CmsIndex $cmsIndex,
         FixtureFactory $fixtureFactory,
-        CustomerAccountLogin $customerAccountLogin,
         CustomerAccountIndex $customerAccountIndex,
         CustomerAccountEdit $customerAccountEdit,
         CustomerAddressEdit $customerAddressEdit
     ) {
         $this->cmsIndex = $cmsIndex;
         $this->fixtureFactory = $fixtureFactory;
-        $this->customerAccountLogin = $customerAccountLogin;
         $this->customerAccountIndex = $customerAccountIndex;
         $this->customerAccountEdit = $customerAccountEdit;
         $this->customerAddressEdit = $customerAddressEdit;
@@ -132,18 +120,17 @@ class UpdateCustomerFrontendEntityTest extends Injectable
         $initialCustomer->persist();
 
         // Steps
-        $this->cmsIndex->open();
-        $this->cmsIndex->getLinksBlock()->openLink('Log In');
-        sleep(3);
-        $this->customerAccountLogin->getLoginBlock()->fill($initialCustomer);
-        $this->customerAccountLogin->getLoginBlock()->submit();
-
+        $this->objectManager->create(
+            'Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep',
+            ['customer' => $initialCustomer]
+        )->run();
         $this->customerAccountIndex->getInfoBlock()->openEditContactInfo();
         $this->customerAccountEdit->getAccountInfoForm()->fill($customer);
         $this->customerAccountEdit->getAccountInfoForm()->submit();
 
         \PHPUnit_Framework_Assert::assertThat($this->getName(), $assertCustomerInfoSuccessSavedMessage);
 
+        $this->cmsIndex->getCmsPageBlock()->waitPageInit();
         $this->customerAccountIndex->getDashboardAddress()->editBillingAddress();
         $this->customerAddressEdit->getEditForm()->fill($address);
         $this->customerAddressEdit->getEditForm()->saveAddress();
@@ -156,8 +143,6 @@ class UpdateCustomerFrontendEntityTest extends Injectable
      */
     public function tearDown()
     {
-        if ($this->cmsIndex->getLinksBlock()->isVisible()) {
-            $this->cmsIndex->getLinksBlock()->openLink('Log Out');
-        }
+        $this->objectManager->create('Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep')->run();
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerGroupEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerGroupEntityTest.php
index 1b544914dce25ec287a23798a134ebb4d29a8f40..4d96a298f3951f83747d971f2f102a35eeeed516 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerGroupEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerGroupEntityTest.php
@@ -33,6 +33,7 @@ class UpdateCustomerGroupEntityTest extends Injectable
     /* tags */
     const MVP = 'yes';
     const DOMAIN = 'CS';
+    const STABLE = 'no';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerGroupEntityTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerGroupEntityTest.xml
index 198270813fc12df42be6cae0e92cbdce385bd16b..84b8c3279a6c24eced069cf0dd761bde17cc8667 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerGroupEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerGroupEntityTest.xml
@@ -6,35 +6,36 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Customer\Test\TestCase\UpdateCustomerGroupEntityTest">
-    <variation name="UpdateCustomerGroupEntityTestVariation1">
-      <data name="customerGroup/data/tax_class_id/dataSet" xsi:type="string">retail_customer</data>
-      <data name="customerGroup/data/customer_group_code" xsi:type="string">GroupName%isolation%</data>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupSuccessSaveMessage"/>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupInGrid"/>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCustomerForm"/>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupForm"/>
-    </variation>
-    <variation name="UpdateCustomerGroupEntityTestVariation2">
-      <data name="customerGroup/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="customerGroup/data/customer_group_code" xsi:type="string">General </data>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupAlreadyExists"/>
-    </variation>
-    <variation name="UpdateCustomerGroupEntityTestVariation3">
-      <data name="customerGroup/data/tax_class_id/dataSet" xsi:type="string">customer_tax_class</data>
-      <data name="customerGroup/data/customer_group_code" xsi:type="string">Group Name %isolation%</data>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupSuccessSaveMessage"/>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupInGrid"/>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCustomerForm"/>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupForm"/>
-    </variation>
-    <variation name="UpdateCustomerGroupEntityTestVariation4">
-      <data name="customerGroup/data/tax_class_id/dataSet" xsi:type="string">customer_tax_class</data>
-      <data name="customerGroup/data/customer_group_code" xsi:type="string">Group#Name%isolation%</data>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupSuccessSaveMessage"/>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupInGrid"/>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCustomerForm"/>
-      <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupForm"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Customer\Test\TestCase\UpdateCustomerGroupEntityTest">
+        <variation name="UpdateCustomerGroupEntityTestVariation1">
+            <data name="tag" xsi:type="string">stable:no</data>
+            <data name="customerGroup/data/tax_class_id/dataSet" xsi:type="string">retail_customer</data>
+            <data name="customerGroup/data/customer_group_code" xsi:type="string">GroupName%isolation%</data>
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupSuccessSaveMessage" />
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupInGrid" />
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCustomerForm" />
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupForm" />
+        </variation>
+        <variation name="UpdateCustomerGroupEntityTestVariation2">
+            <data name="customerGroup/data/tax_class_id/dataSet" xsi:type="string">-</data>
+            <data name="customerGroup/data/customer_group_code" xsi:type="string">General</data>
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupAlreadyExists" />
+        </variation>
+        <variation name="UpdateCustomerGroupEntityTestVariation3">
+            <data name="customerGroup/data/tax_class_id/dataSet" xsi:type="string">customer_tax_class</data>
+            <data name="customerGroup/data/customer_group_code" xsi:type="string">Group Name %isolation%</data>
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupSuccessSaveMessage" />
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupInGrid" />
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCustomerForm" />
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupForm" />
+        </variation>
+        <variation name="UpdateCustomerGroupEntityTestVariation4">
+            <data name="customerGroup/data/tax_class_id/dataSet" xsi:type="string">customer_tax_class</data>
+            <data name="customerGroup/data/customer_group_code" xsi:type="string">Group#Name%isolation%</data>
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupSuccessSaveMessage" />
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupInGrid" />
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCustomerForm" />
+            <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupForm" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/LoginCustomerOnFrontendStep.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/LoginCustomerOnFrontendStep.php
index b305528390cf0b200c7d867450459f2af2e3d576..e3a0175611ca139f9ff40e2e3d958e25626eaadb 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/LoginCustomerOnFrontendStep.php
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/LoginCustomerOnFrontendStep.php
@@ -65,8 +65,10 @@ class LoginCustomerOnFrontendStep implements TestStepInterface
         if ($this->cmsIndex->getLinksBlock()->isLinkVisible("Log Out")) {
             $this->cmsIndex->getLinksBlock()->openLink("Log Out");
             $this->cmsIndex->getCmsPageBlock()->waitUntilTextIsVisible('Home Page');
+            $this->cmsIndex->getCmsPageBlock()->waitPageInit();
         }
         $this->cmsIndex->getLinksBlock()->openLink("Log In");
+        $this->cmsIndex->getCmsPageBlock()->waitPageInit();
         $this->customerAccountLogin->getLoginBlock()->login($this->customer);
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/LogoutCustomerOnFrontendStep.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/LogoutCustomerOnFrontendStep.php
index 8e3861485f44756cd873591898ba6a2aafc30b4f..c05e45a1fb094d57f26bc437f00cce1a7ffd253e 100644
--- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/LogoutCustomerOnFrontendStep.php
+++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/LogoutCustomerOnFrontendStep.php
@@ -43,6 +43,7 @@ class LogoutCustomerOnFrontendStep implements TestStepInterface
         if ($this->cmsIndex->getLinksBlock()->isLinkVisible("Log Out")) {
             $this->cmsIndex->getLinksBlock()->openLink("Log Out");
             $this->cmsIndex->getCmsPageBlock()->waitUntilTextIsVisible('Home Page');
+            $this->cmsIndex->getCmsPageBlock()->waitPageInit();
         }
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Dhl/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Dhl/Test/Repository/ConfigData.xml
index ba310160318f5fdd2d0879c0b7cdc8213a137589..ba7829d151c99fbe570452e8a8ea703441f1baae 100644
--- a/dev/tests/functional/tests/app/Magento/Dhl/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/Dhl/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="disable_shipping_all">
             <field path="carriers/dhl/active" scope="carriers" scope_id="1" label="No" xsi:type="string">0</field>
         </dataset>
diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/LinkRow.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/LinkRow.php
index 3cdd191ec083013eb612085cf0002bbd86fd71a1..64d1aab3f990b7d1a043a6cce9bd2bc7bd890403 100644
--- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/LinkRow.php
+++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/LinkRow.php
@@ -19,7 +19,7 @@ class LinkRow extends Form
      *
      * @var string
      */
-    protected $deleteButton = '.delete-link-item';
+    protected $deleteButton = '.action-remove';
 
     /**
      * Fill item link
diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPricesDownloadable.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPricesDownloadable.php
index eeb8d10cb5f83ac0d1bb0121fdbe53a3b4667c74..95e825d05f18ff4aa470723fe1d687021108d3dc 100644
--- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPricesDownloadable.php
+++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPricesDownloadable.php
@@ -57,14 +57,14 @@ abstract class AbstractAssertTaxRuleIsAppliedToAllPricesDownloadable extends Abs
         $this->checkoutCart = $checkoutCart;
         $actualPrices = [];
         //Assertion steps
-        $productName = $product->getName();
         $productCategory = $product->getCategoryIds()[0];
         $this->openCategory($productCategory);
-        $actualPrices = $this->getCategoryPrices($productName, $actualPrices);
-        $catalogCategoryView->getListProductBlock()->openProductViewPage($productName);
+        $actualPrices = $this->getCategoryPrices($product, $actualPrices);
+        $catalogCategoryView->getListProductBlock()->getProductItem($product)->open();
         $catalogProductView->getViewBlock()->fillOptions($product);
         $actualPrices = $this->getProductPagePrices($actualPrices);
         $catalogProductView->getViewBlock()->clickAddToCart();
+        $catalogProductView->getMessagesBlock()->waitSuccessMessage();
         $actualPrices = $this->getCartPrices($product, $actualPrices);
         $actualPrices = $this->getTotals($actualPrices);
         //Prices verification
diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingIncludingTax.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingIncludingTax.php
index 2ea9f0bc5bd24c4244a5a80e510bf907f67d3907..5b94356e21d511bc8996cc5f1e9df1cdbfe541a7 100644
--- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingIncludingTax.php
+++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingIncludingTax.php
@@ -6,6 +6,8 @@
 
 namespace Magento\Downloadable\Test\Constraint;
 
+use Magento\Mtf\Fixture\FixtureInterface;
+
 /**
  * Checks that prices excl tax on category, product and cart pages are equal to specified in dataset.
  */
@@ -22,13 +24,13 @@ class AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingIncludingTax extends
     /**
      * Get prices on category page.
      *
-     * @param $productName
+     * @param FixtureInterface $product
      * @param array $actualPrices
      * @return array
      */
-    public function getCategoryPrices($productName, $actualPrices)
+    public function getCategoryPrices(FixtureInterface $product, $actualPrices)
     {
-        $priceBlock = $this->catalogCategoryView->getListProductBlock()->getProductPriceBlock($productName);
+        $priceBlock = $this->catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock();
         $actualPrices['category_price_excl_tax'] = $priceBlock->getPriceExcludingTax();
         $actualPrices['category_price_incl_tax'] = $priceBlock->getPriceIncludingTax();
 
@@ -43,9 +45,9 @@ class AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingIncludingTax extends
      */
     public function getProductPagePrices($actualPrices)
     {
-        $viewBlock = $this->catalogProductView->getViewBlock();
-        $actualPrices['product_view_price_excl_tax'] = $viewBlock->getProductPriceExcludingTax();
-        $actualPrices['product_view_price_incl_tax'] = $viewBlock->getProductPriceIncludingTax();
+        $priceBlock = $this->catalogProductView->getViewBlock()->getPriceBlock();
+        $actualPrices['product_view_price_excl_tax'] = $priceBlock->getPriceExcludingTax();
+        $actualPrices['product_view_price_incl_tax'] = $priceBlock->getPriceIncludingTax();
 
         return $actualPrices;
     }
diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingTax.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingTax.php
index eaa5d5e115f5908ac9449ee4ed5a05e14d30383a..4c1e9f6c06bded72c5c7f16057dadb1e7ba1291c 100644
--- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingTax.php
+++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingTax.php
@@ -6,6 +6,8 @@
 
 namespace Magento\Downloadable\Test\Constraint;
 
+use Magento\Mtf\Fixture\FixtureInterface;
+
 /**
  * Checks that product prices excl tax on category, product and cart pages are equal to specified in dataset.
  */
@@ -23,14 +25,14 @@ class AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingTax extends
     /**
      * Get prices on category page.
      *
-     * @param $productName
+     * @param FixtureInterface $product
      * @param array $actualPrices
      * @return array
      */
-    public function getCategoryPrices($productName, $actualPrices)
+    public function getCategoryPrices(FixtureInterface $product, $actualPrices)
     {
-        $priceBlock = $this->catalogCategoryView->getListProductBlock()->getProductPriceBlock($productName);
-        $actualPrices['category_price_excl_tax'] = $priceBlock->getEffectivePrice();
+        $priceBlock = $this->catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock();
+        $actualPrices['category_price_excl_tax'] = $priceBlock->getPriceExcludingTax();
         $actualPrices['category_price_incl_tax'] = null;
 
         return $actualPrices;
@@ -45,7 +47,7 @@ class AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingTax extends
     public function getProductPagePrices($actualPrices)
     {
         $viewBlock = $this->catalogProductView->getViewBlock();
-        $actualPrices['product_view_price_excl_tax'] = $viewBlock->getPriceBlock()->getEffectivePrice();
+        $actualPrices['product_view_price_excl_tax'] = $viewBlock->getPriceBlock()->getPriceExcludingTax();
         $actualPrices['product_view_price_incl_tax'] = null;
 
         return $actualPrices;
diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableIncludingTax.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableIncludingTax.php
index 31fc3a1154b3d669e5e9e406251adda9953b3fd4..5818f5fcab0addd5510a9875c00e95821c8f5a90 100644
--- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableIncludingTax.php
+++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableIncludingTax.php
@@ -6,6 +6,8 @@
 
 namespace Magento\Downloadable\Test\Constraint;
 
+use Magento\Mtf\Fixture\FixtureInterface;
+
 /**
  * Checks that prices incl tax on category, product and cart pages are equal to specified in dataset.
  */
@@ -22,15 +24,15 @@ class AssertTaxRuleIsAppliedToAllPricesDownloadableIncludingTax extends
     /**
      * Get prices on category page.
      *
-     * @param string $productName
+     * @param FixtureInterface $product
      * @param array $actualPrices
      * @return array
      */
-    public function getCategoryPrices($productName, $actualPrices)
+    public function getCategoryPrices(FixtureInterface $product, $actualPrices)
     {
-        $priceBlock = $this->catalogCategoryView->getListProductBlock()->getProductPriceBlock($productName);
+        $priceBlock = $this->catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock();
         $actualPrices['category_price_excl_tax'] = null;
-        $actualPrices['category_price_incl_tax'] = $priceBlock->getEffectivePrice();
+        $actualPrices['category_price_incl_tax'] = $priceBlock->getPriceIncludingTax();
 
         return $actualPrices;
     }
@@ -45,7 +47,7 @@ class AssertTaxRuleIsAppliedToAllPricesDownloadableIncludingTax extends
     {
         $viewBlock = $this->catalogProductView->getViewBlock();
         $actualPrices['product_view_price_excl_tax'] = null;
-        $actualPrices['product_view_price_incl_tax'] = $viewBlock->getPriceBlock()->getEffectivePrice();
+        $actualPrices['product_view_price_incl_tax'] = $viewBlock->getPriceBlock()->getPriceIncludingTax();
 
         return $actualPrices;
     }
diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct.xml
index 898236fcb98b0c1d96e9a6a64d49e17c182a9fdb..13314c0ec5bd9ccca54db0319dcdd98e2ff0582d 100644
--- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct.xml
+++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct.xml
@@ -110,7 +110,7 @@
             </field>
             <field name="status" xsi:type="string">Product online</field>
             <field name="category_ids" xsi:type="array">
-                <item name="preset" xsi:type="string">default</item>
+                <item name="presets" xsi:type="string">default_subcategory</item>
             </field>
             <field name="visibility" xsi:type="string">Catalog, Search</field>
             <field name="is_virtual" xsi:type="string">Yes</field>
@@ -144,7 +144,7 @@
             </field>
             <field name="status" xsi:type="string">Product online</field>
             <field name="category_ids" xsi:type="array">
-                <item name="preset" xsi:type="string">default</item>
+                <item name="presets" xsi:type="string">default_subcategory</item>
             </field>
             <field name="visibility" xsi:type="string">Catalog, Search</field>
             <field name="is_virtual" xsi:type="string">Yes</field>
@@ -175,7 +175,7 @@
             </field>
             <field name="status" xsi:type="string">Product online</field>
             <field name="category_ids" xsi:type="array">
-                <item name="preset" xsi:type="string">default</item>
+                <item name="presets" xsi:type="string">default_subcategory</item>
             </field>
             <field name="visibility" xsi:type="string">Catalog, Search</field>
             <field name="is_virtual" xsi:type="string">Yes</field>
@@ -202,7 +202,7 @@
                 <item name="value" xsi:type="string">1</item>
             </field>
             <field name="category_ids" xsi:type="array">
-                <item name="preset" xsi:type="string">default</item>
+                <item name="presets" xsi:type="string">default_subcategory</item>
             </field>
             <field name="downloadable_links" xsi:type="array">
                 <item name="preset" xsi:type="string">one_no_separately_link</item>
diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest.xml
index a8c834a207ac519a55d1867afeb675335a8c10dc..c54301de79898f7c51f2ec79b822bdf89e8e7c68 100644
--- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest.xml
@@ -6,479 +6,300 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Downloadable\Test\TestCase\CreateDownloadableProductEntityTest">
-    <variation name="CreateDownloadableProductEntityTestVariation1" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">MAGETWO-13595: Create Downloadable Product with Required Fields Only and Assign it to the Category</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">1</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/is_virtual" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">category %isolation%</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">one_separately_link</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">one_dollar_product_with_separated_link</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <data name="tag" xsi:type="string">test_type:acceptance_test</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" next="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" next="Magento\Catalog\Test\Constraint\AssertProductPage" prev="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" next="Magento\Catalog\Test\Constraint\AssertProductInCart" prev="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCart" prev="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-    </variation>
-    <variation name="CreateDownloadableProductEntityTestVariation2" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with default set links</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">100</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">1</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">Default Category</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-    </variation>
-    <variation name="CreateDownloadableProductEntityTestVariation3" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with default sets samples and links</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">1</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">category %isolation%</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">default</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableSamplesData"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData"/>
-    </variation>
-    <variation name="CreateDownloadableProductEntityTestVariation4" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with custom options</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">33</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">category %isolation%</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData"/>
-    </variation>
-    <variation name="CreateDownloadableProductEntityTestVariation5" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product without category</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">55</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">with_three_samples</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">with_three_links</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">two_options</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="CreateDownloadableProductEntityTestVariation6" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with out of stock status</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">100</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">50</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">Default Category</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-    </variation>
-    <variation name="CreateDownloadableProductEntityTestVariation7" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with manage stock</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">9999</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">Default Category</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">Yes</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">123</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">No</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">123</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock"/>
-    </variation>
-    <variation name="CreateDownloadableProductEntityTestVariation8" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product without tax class id</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">98</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">5</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">Default Category</data>
-      <data name="product/data/description" xsi:type="string">This is description for downloadable product</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-    </variation>
-    <variation name="CreateDownloadableProductEntityTestVariation9" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with import custom options</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">57</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">category %isolation%</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">This is short description for downloadable product</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">default</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">with_three_links</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">catalogProductSimple::with_two_custom_option,catalogProductSimple::with_all_custom_option</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableSamplesData"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData"/>
-    </variation>
-    <variation name="CreateDownloadableProductEntityTestVariation10" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with three links</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">65</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">11</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">category %isolation%</data>
-      <data name="product/data/description" xsi:type="string">This is description for downloadable product</data>
-      <data name="product/data/short_description" xsi:type="string">This is short description for downloadable product</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">default</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">with_three_links</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableSamplesData"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData"/>
-    </variation>
-    <variation name="CreateDownloadableProductEntityTestVariation11" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with three links without description</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">65</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">11</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">category %isolation%</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">default</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">with_three_links</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage"/>
-    </variation>
-    <variation name="CreateDownloadableProductEntityTestVariation12" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product without filling quantity and stock</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">100</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">-</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">Default Category</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-    </variation>
-    <variation name="CreateDownloadableProductEntityTestVariation13" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with special price</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">10</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">category %isolation%</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">5</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSpecialPriceOnProductPage"/>
-    </variation>
-    <variation name="CreateDownloadableProductEntityTestVariation14" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with group price</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">365</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">23</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">category %isolation%</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">default</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">-</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" next="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" next="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" prev="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" next="Magento\Catalog\Test\Constraint\AssertProductPage" prev="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" next="Magento\Catalog\Test\Constraint\AssertProductGroupedPriceOnProductPage" prev="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductGroupedPriceOnProductPage" prev="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-    </variation>
-    <variation name="CreateDownloadableProductEntityTestVariation15" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test">
-      <data name="description" xsi:type="string">Create product with tier price</data>
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">250</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">65</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/category" xsi:type="string">category %isolation%</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/import_products" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="product/data/group_price/preset" xsi:type="string">-</data>
-      <data name="product/data/tier_price/preset" xsi:type="string">default</data>
-      <data name="product/data/checkout_data/preset" xsi:type="string">-</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Downloadable\Test\TestCase\CreateDownloadableProductEntityTest">
+        <variation name="CreateDownloadableProductEntityTestVariation1">
+            <data name="description" xsi:type="string">MAGETWO-13595: Create Downloadable Product with Required Fields Only and Assign it to the Category</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">1</data>
+            <data name="product/data/category" xsi:type="string">category %isolation%</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">one_separately_link</data>
+            <data name="product/data/checkout_data/preset" xsi:type="string">one_dollar_product_with_separated_link</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <data name="tag" xsi:type="string">test_type:acceptance_test</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCart" />
+        </variation>
+        <variation name="CreateDownloadableProductEntityTestVariation2">
+            <data name="description" xsi:type="string">Create product with default set links</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">100</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">1</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">Default Category</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+        </variation>
+        <variation name="CreateDownloadableProductEntityTestVariation3">
+            <data name="description" xsi:type="string">Create product with default sets samples and links</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">1</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">category %isolation%</data>
+            <data name="product/data/downloadable_sample/preset" xsi:type="string">default</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableSamplesData" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData" />
+        </variation>
+        <variation name="CreateDownloadableProductEntityTestVariation4">
+            <data name="description" xsi:type="string">Create product with custom options</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">33</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">category %isolation%</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">default</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData" />
+        </variation>
+        <variation name="CreateDownloadableProductEntityTestVariation5">
+            <data name="description" xsi:type="string">Create product without category</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">55</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/downloadable_sample/preset" xsi:type="string">with_three_samples</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">with_three_links</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">two_options</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="CreateDownloadableProductEntityTestVariation6">
+            <data name="description" xsi:type="string">Create product with out of stock status</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">100</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">50</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">Default Category</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+        </variation>
+        <variation name="CreateDownloadableProductEntityTestVariation7">
+            <data name="tag" xsi:type="string">stable:no</data>
+            <data name="description" xsi:type="string">Create product with manage stock</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">9999</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">Default Category</data>
+            <data name="product/data/stock_data/manage_stock" xsi:type="string">Yes</data>
+            <data name="product/data/stock_data/qty" xsi:type="string">123</data>
+            <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">No</data>
+            <data name="product/data/stock_data/min_qty" xsi:type="string">123</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
+        </variation>
+        <variation name="CreateDownloadableProductEntityTestVariation8">
+            <data name="description" xsi:type="string">Create product without tax class id</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">98</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">5</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">Default Category</data>
+            <data name="product/data/description" xsi:type="string">This is description for downloadable product</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+        </variation>
+        <variation name="CreateDownloadableProductEntityTestVariation9">
+            <data name="issue" xsi:type="string">Bug: MAGETWO-35342</data>
+            <data name="description" xsi:type="string">Create product with import custom options</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">57</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">category %isolation%</data>
+            <data name="product/data/short_description" xsi:type="string">This is short description for downloadable product</data>
+            <data name="product/data/downloadable_sample/preset" xsi:type="string">default</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">with_three_links</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">default</data>
+            <data name="product/data/custom_options/import_products" xsi:type="string">catalogProductSimple::with_two_custom_option,catalogProductSimple::with_all_custom_option</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableSamplesData" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData" />
+        </variation>
+        <variation name="CreateDownloadableProductEntityTestVariation10">
+            <data name="description" xsi:type="string">Create product with three links</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">65</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">11</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">category %isolation%</data>
+            <data name="product/data/description" xsi:type="string">This is description for downloadable product</data>
+            <data name="product/data/short_description" xsi:type="string">This is short description for downloadable product</data>
+            <data name="product/data/downloadable_sample/preset" xsi:type="string">default</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">with_three_links</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">default</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableSamplesData" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData" />
+        </variation>
+        <variation name="CreateDownloadableProductEntityTestVariation11">
+            <data name="description" xsi:type="string">Create product with three links without description</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">65</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">11</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">category %isolation%</data>
+            <data name="product/data/downloadable_sample/preset" xsi:type="string">default</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">with_three_links</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">default</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage" />
+        </variation>
+        <variation name="CreateDownloadableProductEntityTestVariation12">
+            <data name="description" xsi:type="string">Create product without filling quantity and stock</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">100</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">Default Category</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+        </variation>
+        <variation name="CreateDownloadableProductEntityTestVariation13">
+            <data name="description" xsi:type="string">Create product with special price</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">10</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">category %isolation%</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
+            <data name="product/data/special_price" xsi:type="string">5</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSpecialPriceOnProductPage" />
+        </variation>
+        <variation name="CreateDownloadableProductEntityTestVariation14">
+            <data name="description" xsi:type="string">Create product with group price</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">365</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">23</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">category %isolation%</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
+            <data name="product/data/group_price/preset" xsi:type="string">default</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductGroupedPriceOnProductPage" />
+        </variation>
+        <variation name="CreateDownloadableProductEntityTestVariation15">
+            <data name="description" xsi:type="string">Create product with tier price</data>
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">250</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">65</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/category" xsi:type="string">category %isolation%</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
+            <data name="product/data/tier_price/preset" xsi:type="string">default</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest.xml
index 06350460fcfad51daab659568cbfd654ef88312e..a7697b5d62a60d863bf99a8b6c298cadb63b6f55 100644
--- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest.xml
@@ -6,176 +6,176 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Downloadable\Test\TestCase\UpdateDownloadableProductEntityTest">
-    <variation name="UpdateDownloadableProductEntityTestVariation1">
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">55</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">with_three_samples</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">with_three_links</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">two_options</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="isRequired" xsi:type="string">No</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku"/>
-    </variation>
-    <variation name="UpdateDownloadableProductEntityTestVariation2">
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">100</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">50</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">Default Category</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="isRequired" xsi:type="string">No</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-    </variation>
-    <variation name="UpdateDownloadableProductEntityTestVariation3">
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">9999</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">123</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">Default Category</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">Yes</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">No</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">123</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="isRequired" xsi:type="string">No</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock"/>
-    </variation>
-    <variation name="UpdateDownloadableProductEntityTestVariation4">
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">48</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">5</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">Default Category</data>
-      <data name="product/data/description" xsi:type="string">This is description for downloadable product</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="isRequired" xsi:type="string">No</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-    </variation>
-    <variation name="UpdateDownloadableProductEntityTestVariation5">
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">54</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/weight" xsi:type="string">-</data>
-      <data name="product/data/category" xsi:type="string">category %isolation%</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">This is short description for downloadable product</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">default</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">with_three_links</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">default</data>
-      <data name="product/data/special_price" xsi:type="string">-</data>
-      <data name="isRequired" xsi:type="string">Yes</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableSamplesData"/>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory"/>
-    </variation>
-    <variation name="UpdateDownloadableProductEntityTestVariation6">
-      <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
-      <data name="product/data/price/value" xsi:type="string">43</data>
-      <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
-      <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
-      <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
-      <data name="product/data/is_virtual" xsi:type="string">Yes</data>
-      <data name="product/data/weight" xsi:type="string">10</data>
-      <data name="product/data/category" xsi:type="string">-</data>
-      <data name="product/data/description" xsi:type="string">-</data>
-      <data name="product/data/short_description" xsi:type="string">-</data>
-      <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
-      <data name="product/data/stock_data/qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
-      <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
-      <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
-      <data name="product/data/downloadable_links/preset" xsi:type="string">-</data>
-      <data name="product/data/custom_options/preset" xsi:type="string">-</data>
-      <data name="product/data/special_price" xsi:type="string">40</data>
-      <data name="isRequired" xsi:type="string">No</data>
-      <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductSpecialPriceOnProductPage"/>
-      <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Downloadable\Test\TestCase\UpdateDownloadableProductEntityTest">
+        <variation name="UpdateDownloadableProductEntityTestVariation1">
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">55</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/weight" xsi:type="string">-</data>
+            <data name="product/data/category" xsi:type="string">-</data>
+            <data name="product/data/description" xsi:type="string">-</data>
+            <data name="product/data/short_description" xsi:type="string">-</data>
+            <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
+            <data name="product/data/stock_data/qty" xsi:type="string">-</data>
+            <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
+            <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
+            <data name="product/data/downloadable_sample/preset" xsi:type="string">with_three_samples</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">with_three_links</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">two_options</data>
+            <data name="product/data/special_price" xsi:type="string">-</data>
+            <data name="isRequired" xsi:type="string">No</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSearchableBySku" />
+        </variation>
+        <variation name="UpdateDownloadableProductEntityTestVariation2">
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">100</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">50</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">Out of Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/weight" xsi:type="string">-</data>
+            <data name="product/data/category" xsi:type="string">Default Category</data>
+            <data name="product/data/description" xsi:type="string">-</data>
+            <data name="product/data/short_description" xsi:type="string">-</data>
+            <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
+            <data name="product/data/stock_data/qty" xsi:type="string">-</data>
+            <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
+            <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
+            <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/special_price" xsi:type="string">-</data>
+            <data name="isRequired" xsi:type="string">No</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+        </variation>
+        <variation name="UpdateDownloadableProductEntityTestVariation3">
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">9999</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">123</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/weight" xsi:type="string">-</data>
+            <data name="product/data/category" xsi:type="string">Default Category</data>
+            <data name="product/data/description" xsi:type="string">-</data>
+            <data name="product/data/short_description" xsi:type="string">-</data>
+            <data name="product/data/stock_data/manage_stock" xsi:type="string">Yes</data>
+            <data name="product/data/stock_data/qty" xsi:type="string">-</data>
+            <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">No</data>
+            <data name="product/data/stock_data/min_qty" xsi:type="string">123</data>
+            <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">-</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/special_price" xsi:type="string">-</data>
+            <data name="isRequired" xsi:type="string">No</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" />
+        </variation>
+        <variation name="UpdateDownloadableProductEntityTestVariation4">
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">48</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">None</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">5</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/weight" xsi:type="string">-</data>
+            <data name="product/data/category" xsi:type="string">Default Category</data>
+            <data name="product/data/description" xsi:type="string">This is description for downloadable product</data>
+            <data name="product/data/short_description" xsi:type="string">-</data>
+            <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
+            <data name="product/data/stock_data/qty" xsi:type="string">-</data>
+            <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
+            <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
+            <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">default</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/special_price" xsi:type="string">-</data>
+            <data name="isRequired" xsi:type="string">No</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+        </variation>
+        <variation name="UpdateDownloadableProductEntityTestVariation5">
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">54</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/weight" xsi:type="string">-</data>
+            <data name="product/data/category" xsi:type="string">category %isolation%</data>
+            <data name="product/data/description" xsi:type="string">-</data>
+            <data name="product/data/short_description" xsi:type="string">This is short description for downloadable product</data>
+            <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
+            <data name="product/data/stock_data/qty" xsi:type="string">-</data>
+            <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
+            <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
+            <data name="product/data/downloadable_sample/preset" xsi:type="string">default</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">with_three_links</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">default</data>
+            <data name="product/data/special_price" xsi:type="string">-</data>
+            <data name="isRequired" xsi:type="string">Yes</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductForm" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductCustomOptionsOnProductPage" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableSamplesData" />
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableLinksData" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory" />
+        </variation>
+        <variation name="UpdateDownloadableProductEntityTestVariation6">
+            <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/price/value" xsi:type="string">43</data>
+            <data name="product/data/tax_class_id/dataSet" xsi:type="string">taxable_goods</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
+            <data name="product/data/is_virtual" xsi:type="string">Yes</data>
+            <data name="product/data/weight" xsi:type="string">10</data>
+            <data name="product/data/category" xsi:type="string">-</data>
+            <data name="product/data/description" xsi:type="string">-</data>
+            <data name="product/data/short_description" xsi:type="string">-</data>
+            <data name="product/data/stock_data/manage_stock" xsi:type="string">-</data>
+            <data name="product/data/stock_data/qty" xsi:type="string">-</data>
+            <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">-</data>
+            <data name="product/data/stock_data/min_qty" xsi:type="string">-</data>
+            <data name="product/data/downloadable_sample/preset" xsi:type="string">-</data>
+            <data name="product/data/downloadable_links/preset" xsi:type="string">-</data>
+            <data name="product/data/custom_options/preset" xsi:type="string">-</data>
+            <data name="product/data/special_price" xsi:type="string">40</data>
+            <data name="isRequired" xsi:type="string">No</data>
+            <data name="product/data/url_key" xsi:type="string">downloadableproduct-%isolation%</data>
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductSpecialPriceOnProductPage" />
+            <constraint name="Magento\Catalog\Test\Constraint\AssertProductPage" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Fedex/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Fedex/Test/Repository/ConfigData.xml
index cb8d2d0fc978c337afffba191691b9475a8b1342..f9e73dddcd2bae06dbf3d80caa5cdbb45d3b608e 100644
--- a/dev/tests/functional/tests/app/Magento/Fedex/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/Fedex/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="disable_shipping_all">
             <field path="carriers/fedex/active" scope="carriers" scope_id="1" label="No" xsi:type="string">0</field>
         </dataset>
diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Repository/ConfigData.xml
index fb34225df503f3a27a553fb254c329046a9af404..2808d830e70afa767445262184c1f1106a8068f0 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="enable_gift_messages">
             <field path="sales/gift_options/allow_order" scope="sales" scope_id="1" label="Yes" xsi:type="string">1</field>
             <field path="sales/gift_options/allow_items" scope="sales" scope_id="1" label="Yes" xsi:type="string">1</field>
diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml
index 2c0bc4991f65f564f86f8eb4b8d57b206e020823..18f90c0f3157a1fc6295e3647311913f2fcf3f84 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml
@@ -6,41 +6,40 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\GiftMessage\Test\TestCase\CheckoutWithGiftMessagesTest">
-    <variation name="CheckoutWithGiftMessagesTestVariation1" firstConstraint="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" method="test">
-      <data name="products" xsi:type="string">catalogProductSimple::default, catalogProductVirtual::default</data>
-      <data name="customer/dataSet" xsi:type="string">customer_US</data>
-      <data name="billingAddress/dataSet" xsi:type="string">customer_US</data>
-      <data name="checkoutMethod" xsi:type="string">login</data>
-      <data name="shipping/shipping_service" xsi:type="string">Flat Rate</data>
-      <data name="shipping/shipping_method" xsi:type="string">Fixed</data>
-      <data name="giftMessage/data/allow_gift_options" xsi:type="string">Yes</data>
-      <data name="giftMessage/data/allow_gift_messages_for_order" xsi:type="string">Yes</data>
-      <data name="giftMessage/data/allow_gift_options_for_items" xsi:type="string">-</data>
-      <data name="giftMessage/data/sender" xsi:type="string">John Doe</data>
-      <data name="giftMessage/data/recipient" xsi:type="string">Jane Doe</data>
-      <data name="giftMessage/data/message" xsi:type="string">text_gift_message</data>
-      <data name="payment/method" xsi:type="string">cashondelivery</data>
-      <data name="issue" xsi:type="string">Bug: MAGETWO-33079</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" next="Magento\GiftMessage\Test\Constraint\AssertGiftMessageInFrontendOrder"/>
-      <constraint name="Magento\GiftMessage\Test\Constraint\AssertGiftMessageInFrontendOrder" prev="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage"/>
-    </variation>
-    <variation name="CheckoutWithGiftMessagesTestVariation2" firstConstraint="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" method="test">
-      <data name="products" xsi:type="string">catalogProductSimple::default, catalogProductVirtual::default</data>
-      <data name="customer/dataSet" xsi:type="string">customer_US</data>
-      <data name="billingAddress/dataSet" xsi:type="string">customer_US</data>
-      <data name="checkoutMethod" xsi:type="string">login</data>
-      <data name="shipping/shipping_service" xsi:type="string">Flat Rate</data>
-      <data name="shipping/shipping_method" xsi:type="string">Fixed</data>
-      <data name="giftMessage/data/allow_gift_options" xsi:type="string">Yes</data>
-      <data name="giftMessage/data/allow_gift_messages_for_order" xsi:type="string">-</data>
-      <data name="giftMessage/data/allow_gift_options_for_items" xsi:type="string">Yes</data>
-      <data name="giftMessage/data/sender" xsi:type="string">John Doe</data>
-      <data name="giftMessage/data/recipient" xsi:type="string">Jane Doe</data>
-      <data name="giftMessage/data/message" xsi:type="string">text_gift_message</data>
-      <data name="payment/method" xsi:type="string">cashondelivery</data>
-      <constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" next="Magento\GiftMessage\Test\Constraint\AssertGiftMessageInFrontendOrderItems"/>
-      <constraint name="Magento\GiftMessage\Test\Constraint\AssertGiftMessageInFrontendOrderItems" prev="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\GiftMessage\Test\TestCase\CheckoutWithGiftMessagesTest">
+        <variation name="CheckoutWithGiftMessagesTestVariation1">
+            <data name="products" xsi:type="string">catalogProductSimple::default, catalogProductVirtual::default</data>
+            <data name="customer/dataSet" xsi:type="string">customer_US</data>
+            <data name="billingAddress/dataSet" xsi:type="string">customer_US</data>
+            <data name="checkoutMethod" xsi:type="string">login</data>
+            <data name="shipping/shipping_service" xsi:type="string">Flat Rate</data>
+            <data name="shipping/shipping_method" xsi:type="string">Fixed</data>
+            <data name="giftMessage/data/allow_gift_options" xsi:type="string">Yes</data>
+            <data name="giftMessage/data/allow_gift_messages_for_order" xsi:type="string">Yes</data>
+            <data name="giftMessage/data/allow_gift_options_for_items" xsi:type="string">-</data>
+            <data name="giftMessage/data/sender" xsi:type="string">John Doe</data>
+            <data name="giftMessage/data/recipient" xsi:type="string">Jane Doe</data>
+            <data name="giftMessage/data/message" xsi:type="string">text_gift_message</data>
+            <data name="payment/method" xsi:type="string">cashondelivery</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" />
+            <constraint name="Magento\GiftMessage\Test\Constraint\AssertGiftMessageInFrontendOrder" />
+        </variation>
+        <variation name="CheckoutWithGiftMessagesTestVariation2">
+            <data name="products" xsi:type="string">catalogProductSimple::default, catalogProductVirtual::default</data>
+            <data name="customer/dataSet" xsi:type="string">customer_US</data>
+            <data name="billingAddress/dataSet" xsi:type="string">customer_US</data>
+            <data name="checkoutMethod" xsi:type="string">login</data>
+            <data name="shipping/shipping_service" xsi:type="string">Flat Rate</data>
+            <data name="shipping/shipping_method" xsi:type="string">Fixed</data>
+            <data name="giftMessage/data/allow_gift_options" xsi:type="string">Yes</data>
+            <data name="giftMessage/data/allow_gift_messages_for_order" xsi:type="string">-</data>
+            <data name="giftMessage/data/allow_gift_options_for_items" xsi:type="string">Yes</data>
+            <data name="giftMessage/data/sender" xsi:type="string">John Doe</data>
+            <data name="giftMessage/data/recipient" xsi:type="string">Jane Doe</data>
+            <data name="giftMessage/data/message" xsi:type="string">text_gift_message</data>
+            <data name="payment/method" xsi:type="string">cashondelivery</data>
+            <constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" />
+            <constraint name="Magento\GiftMessage\Test\Constraint\AssertGiftMessageInFrontendOrderItems" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml
index 44be0fed9e25d120a412c63d54967587ab3d184a..3ce7af8e5be7e87a8a7173565d2b67e0740afa88 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml
@@ -7,7 +7,7 @@
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/TestCase/etc/testcase.xsd">
     <scenario name="CheckoutWithGiftMessagesTest" firstStep="setupConfiguration">
-        <step name="setupConfiguration" module="Magento_Core" next="createProducts">
+        <step name="setupConfiguration" module="Magento_Config" next="createProducts">
             <item name="configData" value="cashondelivery, enable_gift_messages" />
         </step>
         <step name="createProducts" module="Magento_Catalog" next="createCustomer" />
@@ -22,7 +22,7 @@
         <step name="placeOrder" module="Magento_Checkout" />
     </scenario>
     <scenario name="CreateGiftMessageOnBackendTest" firstStep="setupConfiguration">
-        <step name="setupConfiguration" module="Magento_Core" next="createProducts">
+        <step name="setupConfiguration" module="Magento_Config" next="createProducts">
             <item name="configData" value="cashondelivery, enable_gift_messages" />
         </step>
         <step name="createProducts" module="Magento_Catalog" next="createCustomer" />
diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/GroupedProduct/Price.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/GroupedProduct/Price.php
index d2ff084c6e0702179a3ab339371eddd3ad42775f..2204d6abae2e0ea8c5ebb32cfac2a168342f9fcb 100644
--- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/GroupedProduct/Price.php
+++ b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/GroupedProduct/Price.php
@@ -26,6 +26,11 @@ class Price extends ParentPrice implements FixtureInterface
     public function getPreset()
     {
         $presets = [
+            'starting-100' => [
+                'compare_price' => [
+                    'price_starting' => '100.00',
+                ],
+            ],
             'starting-560' => [
                 'compare_price' => [
                     'price_starting' => '560.00',
diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Handler/GroupedProduct/Curl.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Handler/GroupedProduct/Curl.php
index 0abdc62fea308666ea73f9d76413e60e3d2345cb..c34bd63b8b93e95236d288a00fdc9c8bb0c4bd78 100644
--- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Handler/GroupedProduct/Curl.php
+++ b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Handler/GroupedProduct/Curl.php
@@ -39,4 +39,25 @@ class Curl extends AbstractCurl implements GroupedProductInterface
 
         return $data;
     }
+
+    /**
+     * Preparation of stock data.
+     *
+     * @param array $fields
+     * @return array
+     *
+     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
+     * @SuppressWarnings(PHPMD.NPathComplexity)
+     */
+    protected function prepareStockData(array $fields)
+    {
+        $fields = parent::prepareStockData($fields);
+        if (
+            isset($fields['quantity_and_stock_status']['is_in_stock'])
+            && $fields['quantity_and_stock_status']['is_in_stock']
+        ) {
+            $fields['quantity_and_stock_status']['use_config_manage_stock'] = 1;
+        }
+        return $fields;
+    }
 }
diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct.xml
index b7773a1545881e7299ec64e326d9153b12d8c67f..cd0bc02b3df4ccab18c34b1876eef98e775af553 100644
--- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct.xml
+++ b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct.xml
@@ -64,7 +64,7 @@
             <field name="sku" xsi:type="string">sku_test_grouped_product_%isolation%</field>
             <field name="price" xsi:type="array">
                 <item name="value" xsi:type="string">-</item>
-                <item name="preset" xsi:type="string">starting-560</item>
+                <item name="preset" xsi:type="string">starting-100</item>
             </field>
             <field name="category_ids" xsi:type="array">
                 <item name="presets" xsi:type="string">default</item>
diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/CreateGroupedProductEntityTest.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/CreateGroupedProductEntityTest.php
index 3ec286bfe03e1b6688b8712829081064dea68f26..20d0121c1e56810afd199780c925a3545fc4a730 100755
--- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/CreateGroupedProductEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/CreateGroupedProductEntityTest.php
@@ -38,6 +38,7 @@ class CreateGroupedProductEntityTest extends Injectable
     const TEST_TYPE = 'acceptance_test';
     const MVP = 'no';
     const DOMAIN = 'MX';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/TokensPopup.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/TokensPopup.php
index 2c7c33b1db84c6183d34c7fd6783fccb25015f12..e7307befb7482bb4d7774ddc5857989d9731aadc 100644
--- a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/TokensPopup.php
+++ b/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/TokensPopup.php
@@ -9,20 +9,19 @@ namespace Magento\Integration\Test\Block\Adminhtml\Integration\IntegrationGrid;
 use Magento\Mtf\Block\Form;
 
 /**
- * Class TokensPopup
- * Integration tokens popup container
+ * Integration tokens popup container.
  */
 class TokensPopup extends Form
 {
     /**
-     * Selector for "Done" button
+     * Selector for "Done" button.
      *
      * @var string
      */
-    protected $doneButtonSelector = '.primary[role="button"]';
+    protected $doneButtonSelector = '.action-primary[role="button"]';
 
     /**
-     * Click Done button on Integration tokens popup window
+     * Click Done button on Integration tokens popup window.
      *
      * @return void
      */
diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Page/Adminhtml/IntegrationIndex.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/Page/Adminhtml/IntegrationIndex.xml
index 54790228e89eb17b59322c90df24c718f105e83e..c3268799aec48b17d90d35ded46344e6ed0499e9 100644
--- a/dev/tests/functional/tests/app/Magento/Integration/Test/Page/Adminhtml/IntegrationIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Integration/Test/Page/Adminhtml/IntegrationIndex.xml
@@ -9,6 +9,6 @@
   <page name="IntegrationIndex" area="Adminhtml" mca="admin/integration/index" module="Magento_Integration">
     <block name="gridPageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="integrationGrid" class="Magento\Integration\Test\Block\Adminhtml\Integration\IntegrationGrid" locator="#integrationGrid" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ActivateIntegrationEntityTest.php b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ActivateIntegrationEntityTest.php
index caf67686a3604ff01447238c7ed9fab3a68e3b60..1ab4ba94b341a23fab8d9636d167e3848652913a 100644
--- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ActivateIntegrationEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ActivateIntegrationEntityTest.php
@@ -31,6 +31,7 @@ class ActivateIntegrationEntityTest extends Injectable
     /* tags */
     const MVP = 'yes';
     const DOMAIN = 'PS';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/ListProduct.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/ListProduct.php
new file mode 100644
index 0000000000000000000000000000000000000000..dea47d67cfd0250e6896b66ede0c1f5fa02addad
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/ListProduct.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Msrp\Test\Block\Product;
+
+use Magento\Msrp\Test\Block\Product\ProductList\ProductItem;
+use Magento\Mtf\Client\Locator;
+use Magento\Mtf\Fixture\FixtureInterface;
+
+/**
+ * Product list block.
+ */
+class ListProduct extends \Magento\Catalog\Test\Block\Product\ListProduct
+{
+    /**
+     * Return product item block.
+     *
+     * @param FixtureInterface $product
+     * @return ProductItem
+     */
+    public function getProductItem(FixtureInterface $product)
+    {
+        $locator = sprintf($this->productItem, $product->getName());
+
+        return $this->blockFactory->create(
+            'Magento\Msrp\Test\Block\Product\ProductList\ProductItem',
+            ['element' => $this->_rootElement->find($locator, Locator::SELECTOR_XPATH)]
+        );
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/Map.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/Map.php
new file mode 100644
index 0000000000000000000000000000000000000000..7bbcc0ab71f972e5c89066aec9fdce57e6623363
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/Map.php
@@ -0,0 +1,84 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Msrp\Test\Block\Product;
+
+/**
+ * Minimum Advertised Price block.
+ */
+class Map extends \Magento\Catalog\Test\Block\AbstractPriceBlock
+{
+    /**
+     * Mapping for different type of price.
+     *
+     * @var array
+     */
+    protected $mapTypePrices = [
+        'actual_price' => [
+            'selector' => '.actual-price .price',
+        ],
+        'old_price' => [
+            'selector' => '.old-price .price-wrapper',
+        ]
+    ];
+
+    /**
+     * 'Add to Cart' button.
+     *
+     * @var string
+     */
+    protected $addToCart = '.action.tocart';
+
+    /**
+     * 'Close' button.
+     *
+     * @var string
+     */
+    protected $close = '.class="ui-dialog-buttonset .action.close';
+
+    /**
+     * Get actual Price value on frontend.
+     *
+     * @param string $currency
+     * @return string|null
+     */
+    public function getActualPrice($currency = '$')
+    {
+        return $this->getTypePrice('actual_price', $currency);
+    }
+
+    /**
+     * Get old Price value on frontend.
+     *
+     * @param string $currency
+     * @return string|null
+     */
+    public function getOldPrice($currency = '$')
+    {
+        return $this->getTypePrice('old_price', $currency);
+    }
+
+    /**
+     * Add product to shopping cart from MAP Block.
+     *
+     * @return void
+     */
+    public function addToCart()
+    {
+        $this->_rootElement->find($this->addToCart)->click();
+    }
+
+    /**
+     * Close MAP Block.
+     *
+     * @return void
+     */
+    public function close()
+    {
+        $this->_rootElement->find($this->close)->click();
+        $this->waitForElementNotVisible($this->close);
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/ProductList/ProductItem.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/ProductList/ProductItem.php
new file mode 100644
index 0000000000000000000000000000000000000000..210d6c7ed910a147bd7ed2fec8a135a483cedafb
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/ProductList/ProductItem.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Msrp\Test\Block\Product\ProductList;
+
+use Magento\Msrp\Test\Block\Product\Map;
+use Magento\Mtf\Client\Locator;
+
+/**
+ * Product item block on frontend category view.
+ */
+class ProductItem extends \Magento\Catalog\Test\Block\Product\ProductList\ProductItem
+{
+    /**
+     * Click for Price link.
+     *
+     * @var string
+     */
+    protected $mapLink = '.map-show-info';
+
+    /**
+     * Popup MAP Block.
+     *
+     * @var string
+     */
+    protected $mapPopupBlock = '//ancestor::*[@id="map-popup-click-for-price"]/..';
+
+    /**
+     * Open MAP block.
+     *
+     * @return void
+     */
+    public function openMapBlock()
+    {
+        $this->_rootElement->find($this->mapLink)->click();
+        $this->waitForElementVisible($this->mapPopupBlock, Locator::SELECTOR_XPATH);
+    }
+
+    /**
+     * Return MAP block.
+     *
+     * @return Map
+     */
+    public function getMapBlock()
+    {
+        return $this->blockFactory->create(
+            'Magento\Msrp\Test\Block\Product\Map',
+            ['element' => $this->_rootElement->find($this->mapPopupBlock, Locator::SELECTOR_XPATH)]
+        );
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/View.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/View.php
new file mode 100644
index 0000000000000000000000000000000000000000..6e0d207a006edd20529d2b42b8d615cc180dce35
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/View.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Msrp\Test\Block\Product;
+
+use Magento\Mtf\Client\Locator;
+
+/**
+ * Product view block on the product page.
+ */
+class View extends \Magento\Catalog\Test\Block\Product\View
+{
+    /**
+     * Click for Price link on Product page.
+     *
+     * @var string
+     */
+    protected $clickForPrice = '[id*=msrp-popup]';
+
+    /**
+     * MAP popup on Product page.
+     *
+     * @var string
+     */
+    protected $mapPopupBlock = '//ancestor::*[@id="map-popup-click-for-price"]/..';
+
+    /**
+     * Open MAP block on Product View page.
+     *
+     * @return void
+     */
+    public function openMapBlock()
+    {
+        $this->_rootElement->find($this->clickForPrice, Locator::SELECTOR_CSS)->click();
+        $this->waitForElementVisible($this->mapPopupBlock, Locator::SELECTOR_XPATH);
+    }
+
+    /**
+     * Return MAP block.
+     *
+     * @return Map
+     */
+    public function getMapBlock()
+    {
+        return $this->blockFactory->create(
+            'Magento\Msrp\Test\Block\Product\Map',
+            ['element' => $this->_rootElement->find($this->mapPopupBlock, Locator::SELECTOR_XPATH)]
+        );
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpInShoppingCart.php
new file mode 100644
index 0000000000000000000000000000000000000000..a21398e57ca6839c71d0c9b8170ff0ee33d01e9c
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpInShoppingCart.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Msrp\Test\Constraint;
+
+use Magento\Mtf\Constraint\AbstractConstraint;
+use Magento\Cms\Test\Page\CmsIndex;
+use Magento\Catalog\Test\Page\Category\CatalogCategoryView;
+use Magento\Catalog\Test\Page\Product\CatalogProductView;
+use Magento\Mtf\Fixture\InjectableFixture;
+use Magento\Catalog\Test\Fixture\CatalogProductSimple;
+use Magento\Checkout\Test\Page\CheckoutCart;
+
+/**
+ * Assert product MAP related data in Shopping Cart.
+ */
+class AssertMsrpInShoppingCart extends AbstractConstraint
+{
+    /**
+     * Assert product MAP related data in Shopping Cart.
+     *
+     * @param CmsIndex $cmsIndex
+     * @param CatalogCategoryView $catalogCategoryView
+     * @param CatalogProductView $catalogProductView
+     * @param CheckoutCart $checkoutCart
+     * @param InjectableFixture $product
+     * @return void
+     */
+    public function processAssert(
+        CmsIndex $cmsIndex,
+        CatalogCategoryView $catalogCategoryView,
+        CatalogProductView $catalogProductView,
+        CheckoutCart $checkoutCart,
+        InjectableFixture $product
+    ) {
+        /** @var CatalogProductSimple $product */
+        $cmsIndex->open();
+        $cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]);
+        $catalogCategoryView->getListProductBlock()->getProductItem($product)->open();
+
+        if ($product->hasData('checkout_data')) {
+            $catalogProductView->getViewBlock()->addToCart($product);
+        } else {
+            $catalogProductView->getMsrpViewBlock()->openMapBlock();
+            $catalogProductView->getMsrpViewBlock()->getMapBlock()->addToCart();
+        }
+        $catalogProductView->getMessagesBlock()->waitSuccessMessage();
+
+        $checkoutCart->open();
+        $productPrice = $product->hasData('checkout_data')
+            ? $product->getCheckoutData()['cartItem']['price']
+            : $product->getPrice();
+        $unitPrice = $checkoutCart->getCartBlock()->getCartItem($product)->getPrice();
+        \PHPUnit_Framework_Assert::assertEquals($productPrice, $unitPrice, 'Incorrect unit price is displayed in Cart');
+    }
+
+    /**
+     * Return string representation of object.
+     *
+     * @return string
+     */
+    public function toString()
+    {
+        return "Displayed Product MAP data in Shopping Cart is correct.";
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpOnCategoryPage.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpOnCategoryPage.php
new file mode 100644
index 0000000000000000000000000000000000000000..69e80bd07f82d71e8e43912913d86d4320982f12
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpOnCategoryPage.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Msrp\Test\Constraint;
+
+use Magento\Catalog\Test\Fixture\CatalogProductSimple;
+use Magento\Cms\Test\Page\CmsIndex;
+use Magento\Mtf\Constraint\AbstractConstraint;
+use Magento\Mtf\Fixture\InjectableFixture;
+use Magento\Catalog\Test\Page\Category\CatalogCategoryView;
+
+/**
+ * Assert product MAP related data on category page.
+ */
+class AssertMsrpOnCategoryPage extends AbstractConstraint
+{
+    /**
+     * Assert product MAP related data on category page.
+     *
+     * @param CmsIndex $cmsIndex
+     * @param CatalogCategoryView $catalogCategoryView
+     * @param InjectableFixture $product
+     * @return void
+     */
+    public function processAssert(
+        CmsIndex $cmsIndex,
+        CatalogCategoryView $catalogCategoryView,
+        InjectableFixture $product
+    ) {
+        /** @var CatalogProductSimple $product */
+        $cmsIndex->open();
+        $cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]);
+
+        $productBlock = $catalogCategoryView->getMsrpListProductBlock()->getProductItem($product);
+        \PHPUnit_Framework_Assert::assertTrue(
+            $productBlock->isVisible(),
+            'Product is invisible on Category page.'
+        );
+
+        $priceBlock = $productBlock->getPriceBlock();
+        \PHPUnit_Framework_Assert::assertEquals(
+            $product->getMsrp(),
+            $priceBlock->getOldPrice(),
+            'Displayed on Category page MAP is incorrect.'
+        );
+        \PHPUnit_Framework_Assert::assertFalse(
+            $priceBlock->isRegularPriceVisible(),
+            'Regular price on Category page is visible and not expected.'
+        );
+
+        $productBlock->openMapBlock();
+        $mapBlock = $productBlock->getMapBlock();
+        \PHPUnit_Framework_Assert::assertEquals(
+            $product->getMsrp(),
+            $mapBlock->getOldPrice(),
+            'Displayed on Category page MAP is incorrect.'
+        );
+        \PHPUnit_Framework_Assert::assertEquals(
+            $product->getPrice(),
+            $mapBlock->getActualPrice(),
+            'Displayed on Category page price is incorrect.'
+        );
+    }
+
+    /**
+     * Return string representation of object.
+     *
+     * @return string
+     */
+    public function toString()
+    {
+        return "Displayed Product MAP data on category page is correct.";
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpOnProductView.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpOnProductView.php
new file mode 100644
index 0000000000000000000000000000000000000000..ca8f89531e3464eac7ed3429332e6ee7dabc79dd
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpOnProductView.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Msrp\Test\Constraint;
+
+use Magento\Cms\Test\Page\CmsIndex;
+use Magento\Catalog\Test\Page\Category\CatalogCategoryView;
+use Magento\Mtf\Constraint\AbstractConstraint;
+use Magento\Mtf\Fixture\InjectableFixture;
+use Magento\Catalog\Test\Fixture\CatalogProductSimple;
+use Magento\Catalog\Test\Page\Product\CatalogProductView;
+
+/**
+ * Assert product MAP related data on product view page.
+ */
+class AssertMsrpOnProductView extends AbstractConstraint
+{
+    /**
+     * Assert product MAP related data on product view page.
+     *
+     * @param CmsIndex $cmsIndex
+     * @param CatalogCategoryView $catalogCategoryView
+     * @param CatalogProductView $catalogProductView
+     * @param InjectableFixture $product
+     * @return void
+     */
+    public function processAssert(
+        CmsIndex $cmsIndex,
+        CatalogCategoryView $catalogCategoryView,
+        CatalogProductView $catalogProductView,
+        InjectableFixture $product
+    ) {
+        /** @var CatalogProductSimple $product */
+        $cmsIndex->open();
+        $cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]);
+        $catalogCategoryView->getListProductBlock()->getProductItem($product)->open();
+
+        $viewBlock = $catalogProductView->getMsrpViewBlock();
+        $priceBlock = $viewBlock->getPriceBlock();
+        \PHPUnit_Framework_Assert::assertEquals(
+            $product->getMsrp(),
+            $priceBlock->getOldPrice(),
+            'Displayed on Product view page MAP is incorrect'
+        );
+        \PHPUnit_Framework_Assert::assertFalse(
+            $priceBlock->isRegularPriceVisible(),
+            'Regular price on Product view page is visible and not expected.'
+        );
+
+        $viewBlock->openMapBlock();
+        $mapBlock = $viewBlock->getMapBlock();
+        \PHPUnit_Framework_Assert::assertContains(
+            $product->getMsrp(),
+            $mapBlock->getOldPrice(),
+            'Displayed on Product view page MAP is incorrect.'
+        );
+        \PHPUnit_Framework_Assert::assertEquals(
+            $product->getPrice(),
+            $mapBlock->getActualPrice(),
+            'Displayed on Product view page price is incorrect.'
+        );
+    }
+
+    /**
+     * Return string representation of object.
+     *
+     * @return string
+     */
+    public function toString()
+    {
+        return "Displayed Product MAP data on product view page is correct.";
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Page/Category/CatalogCategoryView.xml b/dev/tests/functional/tests/app/Magento/Msrp/Test/Page/Category/CatalogCategoryView.xml
new file mode 100644
index 0000000000000000000000000000000000000000..075b9e021d65c703f21fb983e79cc7d2fddaa850
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Msrp/Test/Page/Category/CatalogCategoryView.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright © 2015 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/pages.xsd">
+    <page name="CatalogCategoryView" area="Category" mca="catalog/category/view" module="Magento_Catalog">
+        <block name="msrpListProductBlock" class="Magento\Msrp\Test\Block\Product\ListProduct" locator=".products.wrapper.grid" strategy="css selector"/>
+    </page>
+</config>
diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Page/Product/CatalogProductView.xml b/dev/tests/functional/tests/app/Magento/Msrp/Test/Page/Product/CatalogProductView.xml
new file mode 100644
index 0000000000000000000000000000000000000000..562fc9b7143d0e0548f83b1e69c09898159e4a01
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Msrp/Test/Page/Product/CatalogProductView.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright © 2015 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/pages.xsd">
+    <page name="CatalogProductView" area="Product" mca="catalog/product/view" module="Magento_Catalog">
+        <block name="msrpViewBlock" class="Magento\Msrp\Test\Block\Product\View" locator="#maincontent" strategy="css selector"/>
+    </page>
+</config>
diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/CatalogProductSimple.xml b/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/CatalogProductSimple.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b0a4b9350abbdbfcc880ae3a520eabf21e68a7b3
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/CatalogProductSimple.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" ?>
+<!--
+/**
+ * Copyright © 2015 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/Magento/Mtf/Repository/etc/repository.xsd">
+    <repository class="Magento\Catalog\Test\Repository\CatalogProductSimple">
+        <dataset name="msrp_before_order_confirmation">
+            <field name="attribute_set_id" xsi:type="array">
+                <item name="dataSet" xsi:type="string">default</item>
+            </field>
+            <field name="name" xsi:type="string">Simple Product with msrp %isolation%</field>
+            <field name="sku" xsi:type="string">sku_simple_product_with_msrp_%isolation%</field>
+            <field name="weight" xsi:type="string">1</field>
+            <field name="quantity_and_stock_status" xsi:type="array">
+                <item name="qty" xsi:type="string">25</item>
+                <item name="is_in_stock" xsi:type="string">In Stock</item>
+            </field>
+            <field name="price" xsi:type="array">
+                <item name="value" xsi:type="string">560</item>
+                <item name="preset" xsi:type="string">-</item>
+            </field>
+            <field name="tax_class_id" xsi:type="array">
+                <item name="dataSet" xsi:type="string">taxable_goods</item>
+            </field>
+            <field name="website_ids" xsi:type="array">
+                <item name="0" xsi:type="string">Main Website</item>
+            </field>
+            <field name="visibility" xsi:type="string">Catalog, Search</field>
+            <field name="checkout_data" xsi:type="array">
+                <item name="preset" xsi:type="string">order_default</item>
+            </field>
+            <field name="msrp" xsi:type="string">600</field>
+            <field name="msrp_display_actual_price_type" xsi:type="string">Before Order Confirmation</field>
+        </dataset>
+
+        <dataset name="msrp_on_gesture">
+            <field name="name" xsi:type="string">Simple Product with msrp %isolation%</field>
+            <field name="url_key" xsi:type="string">simple-product-with-msrp-%isolation%</field>
+            <field name="sku" xsi:type="string">sku_simple_product_with_msrp_%isolation%</field>
+            <field name="weight" xsi:type="string">1</field>
+            <field name="quantity_and_stock_status" xsi:type="array">
+                <item name="qty" xsi:type="string">1000</item>
+                <item name="is_in_stock" xsi:type="string">In Stock</item>
+            </field>
+            <field name="price" xsi:type="array">
+                <item name="value" xsi:type="string">10</item>
+                <item name="preset" xsi:type="string">-</item>
+            </field>
+            <field name="category_ids" xsi:type="array">
+                <item name="presets" xsi:type="string">default_subcategory</item>
+            </field>
+            <field name="tax_class_id" xsi:type="array">
+                <item name="dataSet" xsi:type="string">taxable_goods</item>
+            </field>
+            <field name="website_ids" xsi:type="array">
+                <item name="0" xsi:type="string">Main Website</item>
+            </field>
+            <field name="stock_data" xsi:type="array">
+                <item name="manage_stock" xsi:type="string">No</item>
+            </field>
+            <field name="msrp" xsi:type="string">15</field>
+            <field name="msrp_display_actual_price_type" xsi:type="string">On Gesture</field>
+        </dataset>
+    </repository>
+</config>
diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/ConfigData.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c9737f23ecf8e07b7c9ea02618881f08cca9ee11
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/ConfigData.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" ?>
+<!--
+/**
+ * Copyright © 2015 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/Magento/Mtf/Repository/etc/repository.xsd">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
+        <dataset name="msrp">
+            <field path="sales/msrp/enabled" scope="sales" scope_id="1" label="Yes" xsi:type="string">1</field>
+        </dataset>
+
+        <dataset name="msrp_rollback">
+            <field path="sales/msrp/enabled" scope="sales" scope_id="1" label="No" xsi:type="string">0</field>
+        </dataset>
+
+        <dataset name="msrp_before_order_confirmation">
+            <field path="sales/msrp/enabled" scope="sales" scope_id="1" label="Yes" xsi:type="string">1</field>
+            <field path="sales/msrp/display_price_type" scope="sales" scope_id="1" label="Before Order Confirmation" xsi:type="string">3</field>
+        </dataset>
+
+        <dataset name="msrp_before_order_confirmation_rollback">
+            <field path="sales/msrp/enabled" scope="sales" scope_id="1" label="No" xsi:type="string">0</field>
+            <field path="sales/msrp/display_price_type" scope="sales" scope_id="1" label="On Gesture" xsi:type="string">1</field>
+        </dataset>
+    </repository>
+</config>
diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/ConfigurableProduct.xml b/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/ConfigurableProduct.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ba737437dc71b592c29726604e7b22b304b6df44
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/ConfigurableProduct.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" ?>
+<!--
+/**
+ * Copyright © 2015 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/Magento/Mtf/Repository/etc/repository.xsd">
+    <repository class="Magento\ConfigurableProduct\Test\Repository\ConfigurableProduct">
+        <dataset name="msrp_on_gesture_one_variation">
+            <field name="name" xsi:type="string">Test configurable product %isolation%</field>
+            <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field>
+            <field name="price" xsi:type="array">
+                <item name="value" xsi:type="string">10</item>
+            </field>
+            <field name="weight" xsi:type="string">30</field>
+            <field name="tax_class_id" xsi:type="array">
+                <item name="dataSet" xsi:type="string">taxable_goods</item>
+            </field>
+            <field name="url_key" xsi:type="string">test-configurable-product-%isolation%</field>
+            <field name="category_ids" xsi:type="array">
+                <item name="presets" xsi:type="string">default_subcategory</item>
+            </field>
+            <field name="quantity_and_stock_status" xsi:type="array">
+                <item name="qty" xsi:type="string">1</item>
+                <item name="is_in_stock" xsi:type="string">In Stock</item>
+            </field>
+            <field name="configurable_attributes_data" xsi:type="array">
+                <item name="preset" xsi:type="string">one_variation_one_dollar</item>
+            </field>
+            <field name="website_ids" xsi:type="array">
+                <item name="0" xsi:type="string">Main Website</item>
+            </field>
+            <field name="attribute_set_id" xsi:type="array">
+                <item name="dataSet" xsi:type="string">custom_attribute_set</item>
+            </field>
+            <field name="checkout_data" xsi:type="array">
+                <item name="preset" xsi:type="string">with_one_option</item>
+            </field>
+            <field name="msrp" xsi:type="string">15</field>
+            <field name="msrp_display_actual_price_type" xsi:type="string">On Gesture</field>
+        </dataset>
+    </repository>
+</config>
diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/TestCase/ApplyMapTest.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/TestCase/ApplyMapTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..813a66b411498a40e30daac2864cd4a5623a550e
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Msrp/Test/TestCase/ApplyMapTest.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Msrp\Test\TestCase;
+
+use Magento\Mtf\TestCase\Injectable;
+
+/**
+ * Steps:
+ * 1. Create product.
+ * 2. Perform all assertions.
+ *
+ * @group MAP_(MX)
+ * @ZephyrId MAGETWO-12430, MAGETWO-12847
+ */
+class ApplyMapTest extends Injectable
+{
+    /* tags */
+    const DOMAIN = 'MX';
+    const MVP = 'yes';
+    const TEST_TYPE = 'acceptance_test';
+    /* end tags */
+
+    /**
+     * Apply minimum advertised price to product.
+     *
+     * @param string $product
+     * @return array
+     */
+    public function test($product)
+    {
+        // Preconditions
+        $this->objectManager->create(
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
+            ['configData' => 'msrp']
+        )->run();
+        $product = $this->objectManager->create(
+            'Magento\Catalog\Test\TestStep\CreateProductStep',
+            ['product' => $product]
+        )->run();
+
+        return $product;
+    }
+
+    /**
+     * Disable MAP on Config level.
+     *
+     * @return void
+     */
+    public function tearDown()
+    {
+        $this->objectManager->create(
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
+            ['configData' => 'msrp', 'rollback' => true]
+        )->run();
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/TestCase/ApplyMapTest.xml b/dev/tests/functional/tests/app/Magento/Msrp/Test/TestCase/ApplyMapTest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f31934270a1d738db9ef539a878ad581ba5eb8e2
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Msrp/Test/TestCase/ApplyMapTest.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright © 2015 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\Msrp\Test\TestCase\ApplyMapTest">
+        <variation name="ApplyMapTestVariation1">
+            <data name="description" xsi:type="string">MAGETWO-12430: Apply Minimum Advertised Price Setting to Simple Product</data>
+            <data name="product" xsi:type="string">catalogProductSimple::msrp_on_gesture</data>
+            <constraint name="Magento\Msrp\Test\Constraint\AssertMsrpOnCategoryPage" />
+            <constraint name="Magento\Msrp\Test\Constraint\AssertMsrpOnProductView" />
+            <constraint name="Magento\Msrp\Test\Constraint\AssertMsrpInShoppingCart" />
+        </variation>
+        <variation name="ApplyMapTestVariation2">
+            <data name="description" xsi:type="string">MAGETWO-12847: Apply Minimum Advertised Price to the Configurable Product</data>
+            <data name="product" xsi:type="string">configurableProduct::msrp_on_gesture_one_variation</data>
+            <data name="tag" xsi:type="string">test_type:acceptance_test</data>
+            <constraint name="Magento\Msrp\Test\Constraint\AssertMsrpOnCategoryPage" />
+            <constraint name="Magento\Msrp\Test\Constraint\AssertMsrpOnProductView" />
+            <constraint name="Magento\Msrp\Test\Constraint\AssertMsrpInShoppingCart" />
+        </variation>
+    </testCase>
+</config>
diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateEdit.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateEdit.xml
index 4ad53b7b2756c9c50e0ae082deed651fd3a03799..c17dbfb6ada9f96177f87d9d17223643041df640 100644
--- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateEdit.xml
+++ b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateEdit.xml
@@ -9,6 +9,6 @@
   <page name="TemplateEdit" area="Adminhtml" mca="newsletter/template/edit" module="Magento_Newsletter">
     <block name="formPageActions" class="Magento\Newsletter\Test\Block\Adminhtml\Template\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="editForm" class="Magento\Backend\Test\Block\Widget\Form" locator="[id='page:main-container']" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateIndex.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateIndex.xml
index 6364464ecaa4d94870576f248abc64f0ea9198a3..a1ccd0af82691ff923374e0efbab443cc9493fc4 100644
--- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateIndex.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="TemplateIndex" area="Adminhtml" mca="newsletter/template/index" module="Magento_Newsletter">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
     <block name="gridPageActions" class="Magento\Newsletter\Test\Block\Adminhtml\Template\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="newsletterTemplateGrid" class="Magento\Newsletter\Test\Block\Adminhtml\Template\Grid" locator="[id='page:main-container']" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateNewIndex.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateNewIndex.xml
index 00199dbc6d2de443fa1cd32c3623fa53ebb6ccfb..968920909e50d99c93a0f21dcc54c7f645a07ddf 100644
--- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateNewIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateNewIndex.xml
@@ -9,6 +9,6 @@
   <page name="TemplateNewIndex" area="Adminhtml" mca="newsletter/template/new/index" module="Magento_Newsletter">
     <block name="formPageActions" class="Magento\Newsletter\Test\Block\Adminhtml\Template\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="editForm" class="Magento\Backend\Test\Block\Widget\Form" locator="[id='page:main-container']" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateQueue.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateQueue.xml
index 64d9bfbd67b66e58fbe2a2af82faf9c2f8875aa1..8e17bfc6814b8ab37822b55279cb9dbffaaba742 100644
--- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateQueue.xml
+++ b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateQueue.xml
@@ -9,6 +9,6 @@
   <page name="TemplateQueue" area="Adminhtml" mca="newsletter/queue/edit" module="Magento_Newsletter">
     <block name="formPageActions" class="Magento\Newsletter\Test\Block\Adminhtml\Template\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="editForm" class="Magento\Backend\Test\Block\Widget\Form" locator="#queue_edit_form" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/OfflinePayments/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/OfflinePayments/Test/Repository/ConfigData.xml
index a6eb9d9e85ee49354c799e5b7d254786b5198c5c..4e462dd75db2fea835610064dae664b58d9529e2 100644
--- a/dev/tests/functional/tests/app/Magento/OfflinePayments/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/OfflinePayments/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="cashondelivery">
             <field path="payment/cashondelivery/active" scope="payment" scope_id="1" label="Yes" xsi:type="string">1</field>
         </dataset>
diff --git a/dev/tests/functional/tests/app/Magento/OfflineShipping/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/OfflineShipping/Test/Repository/ConfigData.xml
index ef519dd2a3c6f5c0802cedc434085612225101b5..981f0cc04fd6911b0f4e4f70552d4f529c0017f4 100644
--- a/dev/tests/functional/tests/app/Magento/OfflineShipping/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/OfflineShipping/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="freeshipping">
             <field path="carriers/freeshipping/active" scope="carriers" scope_id="1" label="Yes" xsi:type="string">1</field>
         </dataset>
diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/Block/Form/Cc.php b/dev/tests/functional/tests/app/Magento/Payment/Test/Block/Form/Cc.php
new file mode 100644
index 0000000000000000000000000000000000000000..5d4963c1c3a4b4ce4b3754e69fc043b0eeb4e8f5
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Payment/Test/Block/Form/Cc.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Payment\Test\Block\Form;
+
+use Magento\Mtf\Block\Form;
+
+/**
+ * Form for filling credit card data.
+ */
+class Cc extends Form
+{
+    //
+}
diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/Block/Form/Cc.xml b/dev/tests/functional/tests/app/Magento/Payment/Test/Block/Form/Cc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..338d574835d67b6605d1364ec507c0da20cd835a
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Payment/Test/Block/Form/Cc.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" ?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<mapping strict="1">
+    <wrapper>payment</wrapper>
+    <fields>
+        <cc_type>
+            <input>select</input>
+        </cc_type>
+        <cc_number />
+        <cc_exp_month>
+            <input>select</input>
+        </cc_exp_month>
+        <cc_exp_year>
+            <input>select</input>
+        </cc_exp_year>
+        <cc_cid />
+    </fields>
+</mapping>
diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/Fixture/CreditCard.xml b/dev/tests/functional/tests/app/Magento/Payment/Test/Fixture/CreditCard.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b77e94c4b0245d6ec0cf68f8d5d02c2d2e30b94e
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Payment/Test/Fixture/CreditCard.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright © 2015 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/fixture.xsd">
+    <fixture name="credit_card" module="Magento_Payment" type="virtual" entity_type="credit_card" repository_class="Magento\Payment\Test\Repository\CreditCard" class="Magento\Payment\Test\Fixture\CreditCard">
+        <field name="cc_type" />
+        <field name="cc_number" />
+        <field name="cc_exp_month" />
+        <field name="cc_exp_year" />
+        <field name="cc_cid" />
+    </fixture>
+</config>
diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/Repository/CreditCard.xml b/dev/tests/functional/tests/app/Magento/Payment/Test/Repository/CreditCard.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fffc9e5059bf9422b9ba69822eb1d59d32b36153
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Payment/Test/Repository/CreditCard.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" ?>
+<!--
+/**
+ * Copyright © 2015 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/Magento/Mtf/Repository/etc/repository.xsd">
+    <repository class="Magento\Payment\Test\Repository\CreditCard">
+        <dataset name="visa_default">
+            <field name="cc_type" xsi:type="string">Visa</field>
+            <field name="cc_number" xsi:type="string">4111111111111111</field>
+            <field name="cc_exp_month" xsi:type="string">01 - January</field>
+            <field name="cc_exp_year" xsi:type="string">2017</field>
+            <field name="cc_cid" xsi:type="string">123</field>
+        </dataset>
+
+        <dataset name="visa_direct">
+            <field name="cc_type" xsi:type="string">Visa</field>
+            <field name="cc_number" xsi:type="string">4617747819866651</field>
+            <field name="cc_exp_month" xsi:type="string">01 - January</field>
+            <field name="cc_exp_year" xsi:type="string">2017</field>
+            <field name="cc_cid" xsi:type="string">123</field>
+        </dataset>
+    </repository>
+</config>
diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/etc/fixture.xml b/dev/tests/functional/tests/app/Magento/Payment/Test/etc/fixture.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c13395a3bebf77802f331db68b1de520537e51ae
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Payment/Test/etc/fixture.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" ?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<fixture>
+    <creditCard module="Magento_Payment">
+        <type>virtual</type>
+        <entity_type>credit_card</entity_type>
+        <fields>
+            <cc_type>
+                <attribute_code>cc_type</attribute_code>
+            </cc_type>
+            <cc_number>
+                <attribute_code>cc_number</attribute_code>
+            </cc_number>
+            <cc_exp_month>
+                <attribute_code>cc_exp_month</attribute_code>
+            </cc_exp_month>
+            <cc_exp_year>
+                <attribute_code>cc_exp_year</attribute_code>
+            </cc_exp_year>
+            <cc_cid>
+                <attribute_code>cc_cid</attribute_code>
+            </cc_cid>
+        </fields>
+    </creditCard>
+</fixture>
diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/Bestsellers.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/Bestsellers.xml
index 3f689845548faea3658131fadaf438f9d2eb8281..8dc602074b43b1838d0d17806fc0444ff4504223 100644
--- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/Bestsellers.xml
+++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/Bestsellers.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="Bestsellers" area="Adminhtml" mca="reports/report_sales/bestsellers" module="Magento_Reports">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
     <block name="actionsBlock" class="Magento\Reports\Test\Block\Adminhtml\Viewed\Action" locator=".page-main-actions" strategy="css selector"/>
     <block name="filterBlock" class="Magento\Reports\Test\Block\Adminhtml\Product\Viewed\Filter" locator="#filter_form" strategy="css selector"/>
     <block name="gridBlock" class="Magento\Reports\Test\Block\Adminhtml\Product\Viewed\ProductGrid" locator=".grid" strategy="css selector"/>
diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ProductReportView.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ProductReportView.xml
index 5d480228440f15adc74b55a3015e31b7f57e8f46..6b09e1eea717dfcf5cc0a60a9a8cbfbc4c4df479 100644
--- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ProductReportView.xml
+++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ProductReportView.xml
@@ -10,6 +10,6 @@
     <block name="actionsBlock" class="Magento\Reports\Test\Block\Adminhtml\Viewed\Action" locator=".page-main-actions" strategy="css selector"/>
     <block name="gridBlock" class="Magento\Reports\Test\Block\Adminhtml\Review\Products\Viewed\ProductGrid" locator=".grid" strategy="css selector"/>
     <block name="filterBlock" class="Magento\Sales\Test\Block\Adminhtml\Report\Filter\Form" locator="#filter_form" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/RefundsReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/RefundsReport.xml
index 4c441dbcd15b4b9d75c79cb58c88f34cb312c8b4..d9178313fb69be35236b827a7d6dbd845326c96a 100644
--- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/RefundsReport.xml
+++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/RefundsReport.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="RefundsReport" area="Adminhtml" mca="reports/report_sales/refunded" module="Magento_Reports">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
     <block name="filterBlock" class="Magento\Sales\Test\Block\Adminhtml\Report\Filter\Form" locator="#filter_form" strategy="css selector"/>
     <block name="actionBlock" class="Magento\Reports\Test\Block\Adminhtml\Viewed\Action" locator=".page-main-actions" strategy="css selector"/>
     <block name="gridBlock" class="Magento\Reports\Test\Block\Adminhtml\Sales\Refunded\FilterGrid" locator=".grid" strategy="css selector"/>
diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesInvoiceReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesInvoiceReport.xml
index f2d085c9b2c93a31f2e71a642e9a1bd117d70b76..80d2d491cf977df5cc34bef2c178f39f1c0ae180 100644
--- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesInvoiceReport.xml
+++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesInvoiceReport.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="SalesInvoiceReport" area="Adminhtml" mca="reports/report_sales/invoiced" module="Magento_Reports">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
     <block name="filterForm" class="Magento\Sales\Test\Block\Adminhtml\Report\Filter\Form" locator="#filter_form" strategy="css selector"/>
     <block name="actionBlock" class="Magento\Reports\Test\Block\Adminhtml\Viewed\Action" locator=".page-main-actions" strategy="css selector"/>
     <block name="gridBlock" class="Magento\Reports\Test\Block\Adminhtml\Sales\Invoiced\Grid" locator=".grid" strategy="css selector"/>
diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesReport.xml
index 186a9d9f662fa1f5df4105348e4fb4e063fc0bf8..5ca316b71b4143e18d0b3204c7d10929863c5d83 100644
--- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesReport.xml
+++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesReport.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="SalesReport" area="Adminhtml" mca="reports/report_sales/sales/" module="Magento_Reports">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
     <block name="filterBlock" class="Magento\Sales\Test\Block\Adminhtml\Report\Filter\Form" locator="#filter_form" strategy="css selector"/>
     <block name="actionBlock" class="Magento\Reports\Test\Block\Adminhtml\Viewed\Action" locator=".page-main-actions" strategy="css selector"/>
     <block name="gridBlock" class="Magento\Reports\Test\Block\Adminhtml\Sales\Orders\Viewed\FilterGrid" locator=".grid" strategy="css selector"/>
diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Repository/ConfigData.xml
index 33c4b1693d50dd3ff49c4c848b62944df1bdf720..6dee26f7ffb41f53647edfaf690aaa0cf0160e50 100644
--- a/dev/tests/functional/tests/app/Magento/Reports/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="compare_products">
             <field path="catalog/recently_products/scope" scope="catalog" scope_id="1" label="Website" xsi:type="string">Website</field>
             <field path="catalog/recently_products/viewed_count" scope="catalog" scope_id="1" label="" xsi:type="string">5</field>
diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomerReviewReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomerReviewReportEntityTest.php
index 2b9801528d19e288fe4e4f383b26c3b42eb5fb5c..37e7727e7299cce0c0c020723104d0f0aeff79ee 100644
--- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomerReviewReportEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomerReviewReportEntityTest.php
@@ -11,7 +11,6 @@ use Magento\Catalog\Test\Page\Category\CatalogCategoryView;
 use Magento\Catalog\Test\Page\Product\CatalogProductView;
 use Magento\Cms\Test\Page\CmsIndex;
 use Magento\Customer\Test\Fixture\Customer;
-use Magento\Customer\Test\Page\CustomerAccountLogin;
 use Magento\Customer\Test\Page\CustomerAccountLogout;
 use Magento\Reports\Test\Page\Adminhtml\ProductReportReview;
 use Magento\Review\Test\Fixture\Review;
@@ -81,13 +80,6 @@ class CustomerReviewReportEntityTest extends Injectable
      */
     protected $catalogCategoryView;
 
-    /**
-     * Customer frontend login page
-     *
-     * @var CustomerAccountLogin
-     */
-    protected $customerAccountLogin;
-
     /**
      * Prepare data
      *
@@ -109,7 +101,6 @@ class CustomerReviewReportEntityTest extends Injectable
      * @param CatalogProductView $pageCatalogProductView
      * @param CmsIndex $cmsIndex
      * @param CatalogCategoryView $catalogCategoryView
-     * @param CustomerAccountLogin $customerAccountLogin
      * @param CustomerAccountLogout $customerAccountLogout
      * @return void
      */
@@ -118,14 +109,12 @@ class CustomerReviewReportEntityTest extends Injectable
         CatalogProductView $pageCatalogProductView,
         CmsIndex $cmsIndex,
         CatalogCategoryView $catalogCategoryView,
-        CustomerAccountLogin $customerAccountLogin,
         CustomerAccountLogout $customerAccountLogout
     ) {
         $this->productReportReview = $productReportReview;
         $this->pageCatalogProductView = $pageCatalogProductView;
         $this->cmsIndex = $cmsIndex;
         $this->catalogCategoryView = $catalogCategoryView;
-        $this->customerAccountLogin = $customerAccountLogin;
         $this->customerAccountLogout = $customerAccountLogout;
     }
 
@@ -152,8 +141,10 @@ class CustomerReviewReportEntityTest extends Injectable
         $product->persist();
         $this->cmsIndex->open();
         if ($customerLogin == 'Yes') {
-            $this->cmsIndex->getLinksBlock()->openLink("Log In");
-            $this->customerAccountLogin->getLoginBlock()->login($customer);
+            $this->objectManager->create(
+                'Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep',
+                ['customer' => $customer]
+            )->run();
         }
         // Steps
         $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html');
diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntity.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntityTest.php
similarity index 95%
rename from dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntity.php
rename to dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntityTest.php
index da35b1fd05a1345df1e170e65fd76996de363602..7b781541ab287a62628e7df33081f5bdd026d4ad 100644
--- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntity.php
+++ b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntityTest.php
@@ -30,7 +30,7 @@ use Magento\Mtf\TestCase\Injectable;
  * @group Reports_(MX)
  * @ZephyrId MAGETWO-27952
  */
-class ProductsInCartReportEntity extends Injectable
+class ProductsInCartReportEntityTest extends Injectable
 {
     /* tags */
     const MVP = 'no';
@@ -124,7 +124,7 @@ class ProductsInCartReportEntity extends Injectable
         $browser->open($productUrl);
         $this->catalogProductView->getViewBlock()->addToCart($product);
         if ($isGuest) {
-            $this->customerAccountLogout->open();
+            $this->objectManager->create('Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep')->run();
             $browser->open($productUrl);
             $this->catalogProductView->getViewBlock()->addToCart($product);
         }
diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntity.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntityTest.xml
similarity index 100%
rename from dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntity.xml
rename to dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntityTest.xml
diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ViewedProductsReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ViewedProductsReportEntityTest.php
index b260e667b7fd17172b5c57dcfe38cf95035b39b9..af35c7178b0a0fb24b832e7a13d167a22fe5d9b9 100644
--- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ViewedProductsReportEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ViewedProductsReportEntityTest.php
@@ -58,16 +58,11 @@ class ViewedProductsReportEntityTest extends Injectable
     protected $browser;
 
     /**
-     * Delete all products
+     * Catalog product index page
      *
-     * @param CatalogProductIndex $catalogProductIndexPage
-     * @return void
+     * @var CatalogProductIndex
      */
-    public function __prepare(CatalogProductIndex $catalogProductIndexPage)
-    {
-        $catalogProductIndexPage->open();
-        $catalogProductIndexPage->getProductGrid()->massaction([], 'Delete', true, 'Select All');
-    }
+    protected $catalogProductIndexPage;
 
     /**
      * Inject pages
@@ -75,16 +70,19 @@ class ViewedProductsReportEntityTest extends Injectable
      * @param ProductReportView $productReportView
      * @param FixtureFactory $fixtureFactory
      * @param BrowserInterface $browser
+     * @param CatalogProductIndex $catalogProductIndexPage
      * @return void
      */
     public function __inject(
         ProductReportView $productReportView,
         FixtureFactory $fixtureFactory,
-        BrowserInterface $browser
+        BrowserInterface $browser,
+        CatalogProductIndex $catalogProductIndexPage
     ) {
         $this->productReportView = $productReportView;
         $this->fixtureFactory = $fixtureFactory;
         $this->browser = $browser;
+        $this->catalogProductIndexPage = $catalogProductIndexPage;
     }
 
     /**
@@ -98,6 +96,8 @@ class ViewedProductsReportEntityTest extends Injectable
     public function test($products, array $viewsReport, $total)
     {
         // Preconditions
+        $this->catalogProductIndexPage->open();
+        $this->catalogProductIndexPage->getProductGrid()->massaction([], 'Delete', true, 'Select All');
         $productsList = $this->prepareProducts($products);
         $this->openProducts($productsList, $total);
         $this->productReportView->open();
diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/RatingIndex.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/RatingIndex.xml
index 24f923424f25de38e19641678ece0a3ad2cc3188..58bbc1733dcace6e2f3f8b24179c7b350a88fb7c 100755
--- a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/RatingIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/RatingIndex.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="RatingIndex" area="Adminhtml" mca="review/rating" module="Magento_Review">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="gridPageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="ratingGrid" class="Magento\Review\Test\Block\Adminhtml\Rating\Grid" locator="[id='page:main-container']" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/ReviewIndex.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/ReviewIndex.xml
index 2442a742690115fd9300913d35fe7f3a77eb077c..9187dc91e0b8ebdd081e439639d5bf3413f3789d 100755
--- a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/ReviewIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/ReviewIndex.xml
@@ -7,7 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="ReviewIndex" area="Adminhtml" mca="review/product/index" module="Magento_Review">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="reviewGrid" class="Magento\Review\Test\Block\Adminhtml\Grid" locator="#reviwGrid" strategy="css selector"/>
     <block name="reviewActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.php
index 014dd2a3c79d94f44928dd9fb879864fa259c101..4f3c18759ca8c7a0048b971abd63e814c0395845 100644
--- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.php
+++ b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.php
@@ -50,6 +50,7 @@ class ManageProductReviewFromCustomerPageTest extends Injectable
     /* tags */
     const MVP = 'no';
     const DOMAIN = 'MX';
+    const STABLE = 'no';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.xml b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.xml
index f2ada252745a683052c68023d1b98ca6cd6ccb5f..1a5e214f3cb7be3adaf3c23aff4a4adcd752f7dc 100644
--- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.xml
@@ -6,24 +6,24 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Review\Test\TestCase\ManageProductReviewFromCustomerPageTest">
-    <variation name="ManageProductReviewFromCustomerPageTestVariation1">
-      <data name="review/data/status_id" xsi:type="string">Approved</data>
-      <data name="review/data/nickname" xsi:type="string">name_upd_%isolation%</data>
-      <data name="review/data/title" xsi:type="string">title_upd_%isolation%</data>
-      <data name="review/data/detail" xsi:type="string">review_upd_%isolation%</data>
-      <constraint name="Magento\Review\Test\Constraint\AssertReviewSuccessSaveMessage"/>
-      <constraint name="Magento\Review\Test\Constraint\AssertProductReviewInGridOnCustomerPage"/>
-      <constraint name="Magento\Review\Test\Constraint\AssertProductReviewOnProductPage"/>
-    </variation>
-    <variation name="ManageProductReviewFromCustomerPageTestVariation2">
-      <data name="review/data/status_id" xsi:type="string">Not Approved</data>
-      <data name="review/data/nickname" xsi:type="string">name_upd_%isolation%</data>
-      <data name="review/data/title" xsi:type="string">title_upd_%isolation%</data>
-      <data name="review/data/detail" xsi:type="string">review_upd_%isolation%</data>
-      <constraint name="Magento\Review\Test\Constraint\AssertReviewSuccessSaveMessage"/>
-      <constraint name="Magento\Review\Test\Constraint\AssertProductReviewInGridOnCustomerPage"/>
-      <constraint name="Magento\Review\Test\Constraint\AssertProductRatingNotInProductPage"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Review\Test\TestCase\ManageProductReviewFromCustomerPageTest">
+        <variation name="ManageProductReviewFromCustomerPageTestVariation1">
+            <data name="review/data/status_id" xsi:type="string">Approved</data>
+            <data name="review/data/nickname" xsi:type="string">name_upd_%isolation%</data>
+            <data name="review/data/title" xsi:type="string">title_upd_%isolation%</data>
+            <data name="review/data/detail" xsi:type="string">review_upd_%isolation%</data>
+            <constraint name="Magento\Review\Test\Constraint\AssertReviewSuccessSaveMessage" />
+            <constraint name="Magento\Review\Test\Constraint\AssertProductReviewInGridOnCustomerPage" />
+            <constraint name="Magento\Review\Test\Constraint\AssertProductReviewOnProductPage" />
+        </variation>
+        <variation name="ManageProductReviewFromCustomerPageTestVariation2">
+            <data name="review/data/status_id" xsi:type="string">Not Approved</data>
+            <data name="review/data/nickname" xsi:type="string">name_upd_%isolation%</data>
+            <data name="review/data/title" xsi:type="string">title_upd_%isolation%</data>
+            <data name="review/data/detail" xsi:type="string">review_upd_%isolation%</data>
+            <constraint name="Magento\Review\Test\Constraint\AssertReviewSuccessSaveMessage" />
+            <constraint name="Magento\Review\Test\Constraint\AssertProductReviewInGridOnCustomerPage" />
+            <constraint name="Magento\Review\Test\Constraint\AssertProductRatingNotInProductPage" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php
index 08f69793f6f88c23e9d367ac6ae26726af94dbf9..ad745c1ae6cb41e7c4b8076a9c6ad26bb632583a 100644
--- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php
+++ b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php
@@ -6,9 +6,7 @@
 
 namespace Magento\Review\Test\TestCase;
 
-use Magento\Catalog\Test\Fixture\CatalogProductSimple;
 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit;
-use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex;
 use Magento\Review\Test\Fixture\Review;
 use Magento\Review\Test\Page\Adminhtml\RatingEdit;
 use Magento\Review\Test\Page\Adminhtml\RatingIndex;
@@ -42,15 +40,9 @@ class UpdateProductReviewEntityOnProductPageTest extends Injectable
     /* tags */
     const MVP = 'no';
     const DOMAIN = 'MX';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
-    /**
-     * Catalog product index page
-     *
-     * @var CatalogProductIndex
-     */
-    protected $catalogProductIndex;
-
     /**
      * Catalog product edit page
      *
@@ -114,7 +106,6 @@ class UpdateProductReviewEntityOnProductPageTest extends Injectable
      *
      * @param RatingIndex $ratingIndex
      * @param RatingEdit $ratingEdit
-     * @param CatalogProductIndex $catalogProductIndex
      * @param CatalogProductEdit $catalogProductEdit
      * @param ReviewEdit $reviewEdit
      * @return void
@@ -122,13 +113,11 @@ class UpdateProductReviewEntityOnProductPageTest extends Injectable
     public function __inject(
         RatingIndex $ratingIndex,
         RatingEdit $ratingEdit,
-        CatalogProductIndex $catalogProductIndex,
         CatalogProductEdit $catalogProductEdit,
         ReviewEdit $reviewEdit
     ) {
         $this->ratingIndex = $ratingIndex;
         $this->ratingEdit = $ratingEdit;
-        $this->catalogProductIndex = $catalogProductIndex;
         $this->catalogProductEdit = $catalogProductEdit;
         $this->reviewEdit = $reviewEdit;
     }
@@ -144,10 +133,12 @@ class UpdateProductReviewEntityOnProductPageTest extends Injectable
     {
         // Steps
         $review = $this->createReview($review, $rating);
-        $this->catalogProductIndex->open();
-        /** @var CatalogProductSimple $product */
         $product = $this->reviewInitial->getDataFieldConfig('entity_id')['source']->getEntity();
-        $this->catalogProductIndex->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]);
+        $this->objectManager->create(
+            'Magento\Catalog\Test\TestStep\OpenProductOnBackendStep',
+            ['product' => $product]
+        )->run();
+
         $this->catalogProductEdit->getProductForm()->openTab('product_reviews');
         $filter = [
             'title' => $this->reviewInitial->getTitle(),
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create.php
index 472cb5078252173609dff917f54c54355b039579..d0d39798fa7758bb328e90112924ffec098799ec 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create.php
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create.php
@@ -289,6 +289,8 @@ class Create extends Block
      */
     public function selectPaymentMethod(array $paymentCode)
     {
+        $this->getTemplateBlock()->waitLoader();
+        $this->_rootElement->click();
         $this->getBillingMethodBlock()->selectPaymentMethod($paymentCode);
         $this->getTemplateBlock()->waitLoader();
     }
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities.php
index d475f5d0e9799413ae9e59c74d4910fd46ebab17..123e38aa102dba7887f2ce35b9d0c088c58a82bf 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities.php
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities.php
@@ -26,7 +26,7 @@ class CustomerActivities extends Block
      *
      * @var string
      */
-    protected $updateChanges = '.actions .action-.scalable';
+    protected $updateChanges = '.actions .action-default.scalable';
 
     /**
      * Order sidebar reorder css selector
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/History.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/History.php
index b93056743ecc3f1b1ab802b55b748400e98deeff..bacbfe439e5591e8d9439d13d450d8a73fb6f504 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/History.php
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/History.php
@@ -11,47 +11,54 @@ use Magento\Mtf\Client\Locator;
 use Magento\Mtf\Client\Element\SimpleElement;
 
 /**
- * Class History
- * Order history block on My Order page
+ * Order history block on My Order page.
  */
 class History extends Block
 {
     /**
-     * Locator for order id and order status
+     * Locator for order id and order status.
      *
      * @var string
      */
     protected $customerOrders = '//tr[td[contains(.,"%d")] and td[contains(.,"%s")]]';
 
     /**
-     * Item order
+     * Item order.
      *
      * @var string
      */
     protected $itemOrder = '//tr[td[contains(@class, "id") and normalize-space(.)="%d"]]';
 
     /**
-     * Order total css selector
+     * Order total css selector.
      *
      * @var string
      */
     protected $total = '.total span.price';
 
     /**
-     * View button css selector
+     * View button css selector.
      *
      * @var string
      */
     protected $viewButton = '.action.view';
 
     /**
-     * Check if order is visible in customer orders on frontend
+     * Order history form selector.
+     *
+     * @var string
+     */
+    protected $formSelector = '#my-orders-table';
+
+    /**
+     * Check if order is visible in customer orders on frontend.
      *
      * @param array $order
      * @return bool
      */
     public function isOrderVisible($order)
     {
+        $this->waitFormToLoad();
         return $this->_rootElement->find(
             sprintf($this->customerOrders, $order['id'], $order['status']),
             Locator::SELECTOR_XPATH
@@ -59,18 +66,19 @@ class History extends Block
     }
 
     /**
-     * Get order total
+     * Get order total.
      *
      * @param string $id
      * @return string
      */
     public function getOrderTotalById($id)
     {
+        $this->waitFormToLoad();
         return $this->escapeCurrency($this->searchOrderById($id)->find($this->total)->getText());
     }
 
     /**
-     * Get item order block
+     * Get item order block.
      *
      * @param string $id
      * @return SimpleElement
@@ -81,18 +89,19 @@ class History extends Block
     }
 
     /**
-     * Open item order
+     * Open item order.
      *
      * @param string $id
      * @return void
      */
     public function openOrderById($id)
     {
+        $this->waitFormToLoad();
         $this->searchOrderById($id)->find($this->viewButton)->click();
     }
 
     /**
-     * Method that escapes currency symbols
+     * Method that escapes currency symbols.
      *
      * @param string $price
      * @return string|null
@@ -102,4 +111,21 @@ class History extends Block
         preg_match("/^\\D*\\s*([\\d,\\.]+)\\s*\\D*$/", $price, $matches);
         return (isset($matches[1])) ? $matches[1] : null;
     }
+
+    /**
+     * Wait order history form to load via ajax.
+     *
+     * @return void
+     */
+    protected function waitFormToLoad()
+    {
+        $browser = $this->browser;
+        $selector = $this->formSelector;
+        $browser->waitUntil(
+            function () use ($browser, $selector) {
+                $element = $browser->find($selector);
+                return $element->isVisible() ? true : null;
+            }
+        );
+    }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderInOrdersGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderInOrdersGrid.php
index 50f252f1de293b2ad42da4ee2cbd8e1b38f29025..291aebbec04ac2bb120cc53469da25c0bb0fa2fb 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderInOrdersGrid.php
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderInOrdersGrid.php
@@ -11,13 +11,12 @@ use Magento\Sales\Test\Page\Adminhtml\OrderIndex;
 use Magento\Mtf\Constraint\AbstractConstraint;
 
 /**
- * Class AssertOrderInOrdersGrid
- * Assert that order is present in Orders grid
+ * Assert that order is present in Orders grid.
  */
 class AssertOrderInOrdersGrid extends AbstractConstraint
 {
     /**
-     * Assert that order with fixture data is present in Sales -> Orders Grid
+     * Assert that order with fixture data is present in Sales -> Orders Grid.
      *
      * @param OrderInjectable $order
      * @param OrderIndex $orderIndex
@@ -32,7 +31,7 @@ class AssertOrderInOrdersGrid extends AbstractConstraint
     }
 
     /**
-     * Process assert
+     * Process assert.
      *
      * @param OrderInjectable $order
      * @param OrderIndex $orderIndex
@@ -40,7 +39,7 @@ class AssertOrderInOrdersGrid extends AbstractConstraint
      * @param string $orderId [optional]
      * @return void
      */
-    protected function assert(OrderInjectable $order, OrderIndex $orderIndex, $status, $orderId = '')
+    public function assert(OrderInjectable $order, OrderIndex $orderIndex, $status, $orderId = '')
     {
         $filter = [
             'id' => $order->hasData('id') ? $order->getId() : $orderId,
@@ -54,7 +53,7 @@ class AssertOrderInOrdersGrid 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/Sales/Test/Constraint/AssertOrderInOrdersGridOnFrontend.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderInOrdersGridOnFrontend.php
index 22cee3c20e2a726b4672f449482d4382878443de..810651a68c96419dabc5bfa8a3be972d27fd2dd8 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderInOrdersGridOnFrontend.php
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderInOrdersGridOnFrontend.php
@@ -14,8 +14,7 @@ use Magento\Mtf\Constraint\AbstractConstraint;
 use Magento\Mtf\ObjectManager;
 
 /**
- * Class AssertOrderInOrdersGridOnFrontend
- * Assert that order is present in Orders grid on frontend
+ * Assert that order is present in Orders grid on frontend.
  */
 class AssertOrderInOrdersGridOnFrontend extends AbstractConstraint
 {
@@ -24,7 +23,7 @@ class AssertOrderInOrdersGridOnFrontend extends AbstractConstraint
     /* end tags */
 
     /**
-     * Assert that order is present in Orders grid on frontend
+     * Assert that order is present in Orders grid on frontend.
      *
      * @param OrderInjectable $order
      * @param Customer $customer
@@ -64,7 +63,7 @@ class AssertOrderInOrdersGridOnFrontend 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/Sales/Test/Constraint/AssertOrdersInOrdersGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrdersInOrdersGrid.php
index 48e2165b6c4a580475fe5dae6b4d87d3a30d79fb..e43b2708220b33f57d05b4bcf8f8b2926265b464 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrdersInOrdersGrid.php
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrdersInOrdersGrid.php
@@ -21,19 +21,19 @@ class AssertOrdersInOrdersGrid extends AbstractConstraint
      *
      * @param OrderInjectable[] $orders
      * @param OrderIndex $orderIndex
-     * @param array $statuses
+     * @param array $orderStatuses
      * @param AssertOrderInOrdersGrid $assertOrderInOrdersGrid
      * @return void
      */
     public function processAssert(
         $orders,
         OrderIndex $orderIndex,
-        array $statuses,
+        array $orderStatuses,
         AssertOrderInOrdersGrid $assertOrderInOrdersGrid
     ) {
         $orderIndex->open();
         foreach ($orders as $key => $order) {
-            $assertOrderInOrdersGrid->assert($order, $orderIndex, $statuses[$key]);
+            $assertOrderInOrdersGrid->assert($order, $orderIndex, $orderStatuses[$key]);
         }
     }
 
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/CreditMemoIndex.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/CreditMemoIndex.xml
index d4fd850036a0fc052f5cf7b4f20beefdd5c6197d..f04c497109adecbfccdea5865bd97db17672e64f 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/CreditMemoIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/CreditMemoIndex.xml
@@ -8,6 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="CreditMemoIndex" area="Adminhtml" mca="sales/creditmemo" module="Magento_Sales">
     <block name="creditMemoGrid" class="Magento\Sales\Test\Block\Adminhtml\CreditMemo\Grid" locator="[data-grid-id='sales_creditmemo_grid']" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/InvoiceIndex.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/InvoiceIndex.xml
index 09031c3307c2f0c1ea4ac748d9f8b87978299171..7b83fbc7111c6e6fd78ce1f88aacc05d9674dfc6 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/InvoiceIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/InvoiceIndex.xml
@@ -8,6 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="InvoiceIndex" area="Adminhtml" mca="sales/invoice" module="Magento_Sales">
     <block name="invoicesGrid" class="Magento\Sales\Test\Block\Adminhtml\Invoice\Grid" locator="#sales_invoice_grid" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderIndex.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderIndex.xml
index 95487411b80a648730645082d17b42f9a91bf52e..cc43bf98007a00ce7a997de7e158816ae41c5a9c 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderIndex.xml
@@ -9,6 +9,6 @@
   <page name="OrderIndex" area="Adminhtml" mca="sales/order/index" module="Magento_Sales">
     <block name="gridPageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="salesOrderGrid" class="Magento\Sales\Test\Block\Adminhtml\Order\Grid" locator="#sales_order_grid" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusEdit.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusEdit.xml
index 10cdfe94c0f6b2aabd525cac5536cd42cfc72c0c..c1d712de6a2d0f33e4545ce3a3983a101dd96e11 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusEdit.xml
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusEdit.xml
@@ -9,6 +9,6 @@
   <page name="OrderStatusEdit" area="Adminhtml" mca="sales/order_status/edit" module="Magento_Sales">
     <block name="formPageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="orderStatusForm" class="Magento\Backend\Test\Block\Widget\Form" locator="#edit_form" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusIndex.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusIndex.xml
index 659e035c39d20ab50478e0e82f435401fb6f71ab..d36b03ac0349d7a438c9d05a2d8ee64a5802c471 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusIndex.xml
@@ -9,6 +9,6 @@
   <page name="OrderStatusIndex" area="Adminhtml" mca="sales/order_status/index" module="Magento_Sales">
     <block name="orderStatusGrid" class="Magento\Sales\Test\Block\Adminhtml\Order\StatusGrid" locator="#sales_order_status_grid" strategy="css selector"/>
     <block name="gridPageActions" class="Magento\Sales\Test\Block\Adminhtml\Order\Status\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusNew.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusNew.xml
index 2f18b2608355f4911ec01e174f9887c980787dbb..856880560d3ed1eaa69d6746666788ce166ce286 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusNew.xml
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusNew.xml
@@ -9,6 +9,6 @@
   <page name="OrderStatusNew" area="Adminhtml" mca="sales/order_status/new" module="Magento_Sales">
     <block name="formPageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="orderStatusForm" class="Magento\Backend\Test\Block\Widget\Form" locator="#edit_form" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesOrderView.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesOrderView.xml
index 3b1b7881e1580d823bcc1d4dcf321fb8adf42701..bf4d778894b7baebd2c7260cf016a7c500d78ec4 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesOrderView.xml
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesOrderView.xml
@@ -8,7 +8,7 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="SalesOrderView" area="Adminhtml" mca="sales/order/view" module="Magento_Sales">
     <block name="pageActions" class="Magento\Sales\Test\Block\Adminhtml\Order\Actions" locator=".page-actions" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="orderForm" class="Magento\Sales\Test\Block\Adminhtml\Order\View\OrderForm" locator="[id='page:main-container']" strategy="css selector"/>
     <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper" strategy="css selector"/>
     <block name="itemsOrderedBlock" class="Magento\Sales\Test\Block\Adminhtml\Order\View\Items" locator="#sales_order_view_tabs_order_info_content .grid" strategy="css selector"/>
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/etc/testcase.xml
index f42ed2705b6c7a931d9b687d7127bd38e5238e30..4e5838f04aecf4c22d2ccb9ab95d93a37ffd415e 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/testcase.xml
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/etc/testcase.xml
@@ -7,7 +7,7 @@
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/TestCase/etc/testcase.xsd">
     <scenario name="ReorderOrderEntityTest" firstStep="setupConfiguration">
-        <step name="setupConfiguration" module="Magento_Core" next="createOrder" />
+        <step name="setupConfiguration" module="Magento_Config" next="createOrder" />
         <step name="createOrder" module="Magento_Sales" next="openOrder" />
         <step name="openOrder" module="Magento_Sales" next="reorder" />
         <step name="reorder" module="Magento_Sales" next="fillBillingAddress" />
@@ -17,7 +17,7 @@
         <step name="submitOrder" module="Magento_Sales" />
     </scenario>
     <scenario name="CreateOrderBackendTest" firstStep="setupConfiguration">
-        <step name="setupConfiguration" module="Magento_Core" next="createProducts" />
+        <step name="setupConfiguration" module="Magento_Config" next="createProducts" />
         <step name="createProducts" module="Magento_Catalog" next="createTaxRule" />
         <step name="createTaxRule" module="Magento_Tax" next="createCustomer" />
         <step name="createCustomer" module="Magento_Customer" next="openSalesOrders" />
diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentInShipmentsGrid.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentInShipmentsGrid.php
index c2bf9f3d910e7efac16228d343b975a503b539da..3f18315baa9cfc1759989ca55de8734b0a18f918 100644
--- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentInShipmentsGrid.php
+++ b/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentInShipmentsGrid.php
@@ -32,12 +32,15 @@ class AssertShipmentInShipmentsGrid extends AbstractConstraint
         foreach ($ids['shipmentIds'] as $key => $shipmentIds) {
             $filter = [
                 'id' => $shipmentIds,
-                'order_id' => $orderId,
+                'order_id' => $orderId
+            ];
+            $filterQty = [
                 'total_qty_from' => $totalQty[$key],
                 'total_qty_to' => $totalQty[$key],
             ];
+            $shipmentIndex->getShipmentsGrid()->search($filter + $filterQty);
             \PHPUnit_Framework_Assert::assertTrue(
-                $shipmentIndex->getShipmentsGrid()->isRowVisible($filter),
+                $shipmentIndex->getShipmentsGrid()->isRowVisible($filter, false),
                 'Shipment is absent in shipment grid on shipment index page.'
             );
         }
diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/ShipmentIndex.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/ShipmentIndex.xml
index 7923b31b29a3f2d3e1f6f93f81dfd173996fb84e..43e5ae74b71e1d346f1d941212d8109f5801a029 100644
--- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/ShipmentIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/ShipmentIndex.xml
@@ -8,6 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="ShipmentIndex" area="Adminhtml" mca="sales/shipment" module="Magento_Shipping">
     <block name="shipmentsGrid" class="Magento\Shipping\Test\Block\Adminhtml\Shipment\Grid" locator="[data-grid-id='sales_shipment_grid']" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/Repository/ConfigData.xml
index 941063efb3fa87e999b3f927e0e13326ca4fff04..bc7b74da9b8a644e043a678d3282d71c92db8290 100644
--- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/Shipping/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="shipping_origin_US_CA">
             <field path="shipping/origin/country_id" scope="shipping" scope_id="1" label="United States" xsi:type="string">US</field>
             <field path="shipping/origin/region_id" scope="shipping" scope_id="1" label="California" xsi:type="string">12</field>
diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Handler/Sitemap/Curl.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Handler/Sitemap/Curl.php
index e78e858ded474e8669a7dc19f81afd22fe245ee8..f3388753a8d641a297aa7d1d21ebb6f787c39033 100644
--- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Handler/Sitemap/Curl.php
+++ b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Handler/Sitemap/Curl.php
@@ -61,7 +61,7 @@ class Curl extends AbstractCurl implements SitemapInterface
     {
         //Sort data in grid to define sitemap id if more than 20 items in grid
         $url = 'admin/sitemap/index/sort/sitemap_id/dir/desc';
-        $pattern = '/col-sitemap_id\W*(\d+)<.td><[^<>]*?>' . $data['sitemap_filename'] . '/siu';
+        $pattern = '/col\-sitemap_id[\s\W]*(\d+).*?' . $data['sitemap_filename'] . '/siu';
         $extractor = new Extractor($url, $pattern);
         $match = $extractor->getData();
 
diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Page/Adminhtml/SitemapIndex.xml b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Page/Adminhtml/SitemapIndex.xml
index 6d7269e0dd9d83ce996740cda663e70d897c17f8..bfa6197af32c18db04fc741380c68fb1d52153cb 100644
--- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Page/Adminhtml/SitemapIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Page/Adminhtml/SitemapIndex.xml
@@ -9,6 +9,6 @@
   <page name="SitemapIndex" area="Adminhtml" mca="admin/sitemap/index" module="Magento_Sitemap">
     <block name="gridPageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="sitemapGrid" class="Magento\Sitemap\Test\Block\Adminhtml\SitemapGrid" locator="#sitemapGrid" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Store.xml b/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Store.xml
index 3a95b594d8400494d3809ae19d53599b063821f8..35dce3f104254db6dadc6df1f3c2a677b729ee84 100644
--- a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Store.xml
+++ b/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Store.xml
@@ -6,38 +6,38 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd">
-  <fixture name="store" module="Magento_Store" type="flat" entity_type="store" collection="Magento\Store\Model\Resource\Store\Collection" repository_class="Magento\Store\Test\Repository\Store" handler_interface="Magento\Store\Test\Handler\Store\StoreInterface" class="Magento\Store\Test\Fixture\Store">
-    <dataset name="default">
-        <field name="group_id" xsi:type="array">
-            <item name="dataSet" xsi:type="string">default</item>
+    <fixture name="store" module="Magento_Store" type="flat" entity_type="store" collection="Magento\Store\Model\Resource\Store\Collection" repository_class="Magento\Store\Test\Repository\Store" handler_interface="Magento\Store\Test\Handler\Store\StoreInterface" class="Magento\Store\Test\Fixture\Store">
+        <dataset name="default">
+            <field name="group_id" xsi:type="array">
+                <item name="dataSet" xsi:type="string">default</item>
+            </field>
+            <field name="name" xsi:type="string">Default Store View</field>
+            <field name="code" xsi:type="string">default</field>
+            <field name="is_active" xsi:type="string">Enabled</field>
+            <field name="store_id" xsi:type="string">1</field>
+        </dataset>
+        <field name="store_id" is_required="1">
+            <default_value xsi:type="string">1</default_value>
+        </field>
+        <field name="code" is_required="">
+            <default_value xsi:type="string">default</default_value>
         </field>
-        <field name="name" xsi:type="string">Default Store View</field>
-        <field name="code" xsi:type="string">default</field>
-        <field name="is_active" xsi:type="string">Enabled</field>
-        <field name="store_id" xsi:type="string">1</field>
-    </dataset>
-    <field name="store_id" is_required="1">
-      <default_value xsi:type="string">1</default_value>
-    </field>
-    <field name="code" is_required="">
-      <default_value xsi:type="string">default</default_value>
-    </field>
-    <field name="website_id" is_required="">
-      <default_value xsi:type="number">0</default_value>
-    </field>
-    <field name="group_id" is_required="" source="Magento\Store\Test\Fixture\Store\GroupId">
-      <default_value xsi:type="array">
+        <field name="website_id" is_required="">
+            <default_value xsi:type="number">0</default_value>
+        </field>
+        <field name="group_id" is_required="" source="Magento\Store\Test\Fixture\Store\GroupId">
+            <default_value xsi:type="array">
                 <item name="dataSet" xsi:type="string">default</item>
             </default_value>
-    </field>
-    <field name="name" is_required="">
-      <default_value xsi:type="string">Default Store View</default_value>
-    </field>
-    <field name="sort_order" is_required="">
-      <default_value xsi:type="number">0</default_value>
-    </field>
-    <field name="is_active" is_required="">
-      <default_value xsi:type="string">Enabled</default_value>
-    </field>
-  </fixture>
+        </field>
+        <field name="name" is_required="">
+            <default_value xsi:type="string">Default Store View</default_value>
+        </field>
+        <field name="sort_order" is_required="">
+            <default_value xsi:type="number">0</default_value>
+        </field>
+        <field name="is_active" is_required="">
+            <default_value xsi:type="string">Enabled</default_value>
+        </field>
+    </fixture>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/StoreGroup.xml b/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/StoreGroup.xml
index 7b6a5ad692b1add59ad8803aa85e8832e8b6db9a..c64a13ab523e9a397ead7206552d704e33ba31b7 100644
--- a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/StoreGroup.xml
+++ b/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/StoreGroup.xml
@@ -6,34 +6,34 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd">
-  <fixture name="storeGroup" module="Magento_Store" type="flat" entity_type="store_group" collection="Magento\Store\Model\Resource\Group\Collection" identifier="" repository_class="Magento\Store\Test\Repository\StoreGroup" handler_interface="Magento\Store\Test\Handler\StoreGroup\StoreGroupInterface" class="Magento\Store\Test\Fixture\StoreGroup">
-    <dataset name="default">
-        <field name="website_id" xsi:type="array">
-            <item name="dataSet" xsi:type="string">main_website</item>
-        </field>
-        <field name="name" xsi:type="string">StoreGroup%isolation%</field>
-        <field name="root_category_id" xsi:type="array">
-            <item name="dataSet" xsi:type="string">default_category</item>
+    <fixture name="storeGroup" module="Magento_Store" type="flat" entity_type="store_group" collection="Magento\Store\Model\Resource\Group\Collection" identifier="" repository_class="Magento\Store\Test\Repository\StoreGroup" handler_interface="Magento\Store\Test\Handler\StoreGroup\StoreGroupInterface" class="Magento\Store\Test\Fixture\StoreGroup">
+        <dataset name="default">
+            <field name="website_id" xsi:type="array">
+                <item name="dataSet" xsi:type="string">main_website</item>
+            </field>
+            <field name="name" xsi:type="string">StoreGroup%isolation%</field>
+            <field name="root_category_id" xsi:type="array">
+                <item name="dataSet" xsi:type="string">default_category</item>
+            </field>
+        </dataset>
+        <field name="group_id" is_required="1">
+            <default_value xsi:type="null" />
         </field>
-    </dataset>
-    <field name="group_id" is_required="1">
-      <default_value xsi:type="null"/>
-    </field>
-    <field name="website_id" source="Magento\Store\Test\Fixture\StoreGroup\WebsiteId">
-      <default_value xsi:type="array">
+        <field name="website_id" source="Magento\Store\Test\Fixture\StoreGroup\WebsiteId">
+            <default_value xsi:type="array">
                 <item name="dataSet" xsi:type="string">main_website</item>
             </default_value>
-    </field>
-    <field name="name" is_required="">
-      <default_value xsi:type="string">StoreGroup%isolation%</default_value>
-    </field>
-    <field name="root_category_id" source="Magento\Store\Test\Fixture\StoreGroup\CategoryId">
-      <default_value xsi:type="array">
+        </field>
+        <field name="name" is_required="">
+            <default_value xsi:type="string">StoreGroup%isolation%</default_value>
+        </field>
+        <field name="root_category_id" source="Magento\Store\Test\Fixture\StoreGroup\CategoryId">
+            <default_value xsi:type="array">
                 <item name="dataSet" xsi:type="string">default_category</item>
             </default_value>
-    </field>
-    <field name="default_store_id" is_required="">
-      <default_value xsi:type="number">0</default_value>
-    </field>
-  </fixture>
+        </field>
+        <field name="default_store_id" is_required="">
+            <default_value xsi:type="number">0</default_value>
+        </field>
+    </fixture>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Website.xml b/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Website.xml
index 0878f90e302a1d1594eac5f1d8af895f8fd4e418..4614615109090b72d4e458a5162dd6b788fd0776 100644
--- a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Website.xml
+++ b/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Website.xml
@@ -6,29 +6,29 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd">
-  <fixture name="website" module="Magento_Store" type="flat" entity_type="store_website" collection="Magento\Store\Model\Resource\Website\Collection" identifier="code" repository_class="Magento\Store\Test\Repository\Website" handler_interface="Magento\Store\Test\Handler\Website\WebsiteInterface" class="Magento\Store\Test\Fixture\Website">
-    <dataset name="default">
-        <field name="name" xsi:type="string">Main Website</field>
-        <field name="code" xsi:type="string">base</field>
-        <field name="website_id" xsi:type="string">1</field>
-    </dataset>
-    <field name="website_id" is_required="1">
-      <default_value xsi:type="string">1</default_value>
-    </field>
-    <field name="code" is_required="">
-      <default_value xsi:type="string">base</default_value>
-    </field>
-    <field name="name" is_required="">
-      <default_value xsi:type="string">Main Website</default_value>
-    </field>
-    <field name="sort_order" is_required="">
-      <default_value xsi:type="number">0</default_value>
-    </field>
-    <field name="default_group_id" is_required="">
-      <default_value xsi:type="number">0</default_value>
-    </field>
-    <field name="is_default" is_required="">
-      <default_value xsi:type="number">0</default_value>
-    </field>
-  </fixture>
+    <fixture name="website" module="Magento_Store" type="flat" entity_type="store_website" collection="Magento\Store\Model\Resource\Website\Collection" identifier="code" repository_class="Magento\Store\Test\Repository\Website" handler_interface="Magento\Store\Test\Handler\Website\WebsiteInterface" class="Magento\Store\Test\Fixture\Website">
+        <dataset name="default">
+            <field name="name" xsi:type="string">Main Website</field>
+            <field name="code" xsi:type="string">base</field>
+            <field name="website_id" xsi:type="string">1</field>
+        </dataset>
+        <field name="website_id" is_required="1">
+            <default_value xsi:type="string">1</default_value>
+        </field>
+        <field name="code" is_required="">
+            <default_value xsi:type="string">base</default_value>
+        </field>
+        <field name="name" is_required="">
+            <default_value xsi:type="string">Main Website</default_value>
+        </field>
+        <field name="sort_order" is_required="">
+            <default_value xsi:type="number">0</default_value>
+        </field>
+        <field name="default_group_id" is_required="">
+            <default_value xsi:type="number">0</default_value>
+        </field>
+        <field name="is_default" is_required="">
+            <default_value xsi:type="number">0</default_value>
+        </field>
+    </fixture>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPrices.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPrices.php
index 4b2f2c08d20627c33b5478e7274f939621573f14..95ed90babd4f4d6a3177c53d2e607c3ec407b8ba 100644
--- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPrices.php
+++ b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPrices.php
@@ -13,6 +13,7 @@ use Magento\Catalog\Test\Page\Product\CatalogProductView;
 use Magento\Checkout\Test\Page\CheckoutCart;
 use Magento\Customer\Test\Fixture\Address;
 use Magento\Mtf\Fixture\FixtureFactory;
+use Magento\Mtf\Fixture\FixtureInterface;
 use Magento\Mtf\Fixture\InjectableFixture;
 
 /**
@@ -58,11 +59,11 @@ abstract class AbstractAssertTaxRuleIsAppliedToAllPrices extends AbstractConstra
     /**
      * Implementation for get category prices function
      *
-     * @param string $productName
+     * @param FixtureInterface $product
      * @param array $actualPrices
      * @return array
      */
-    abstract protected function getCategoryPrices($productName, $actualPrices);
+    abstract protected function getCategoryPrices(FixtureInterface $product, $actualPrices);
 
     /**
      * Implementation for get product page prices function
@@ -112,14 +113,15 @@ abstract class AbstractAssertTaxRuleIsAppliedToAllPrices extends AbstractConstra
         $shipping = ['shipping_service' => 'Flat Rate', 'shipping_method' => 'Fixed'];
         $actualPrices = [];
         //Assertion steps
-        $productName = $product->getName();
         $productCategory = $product->getCategoryIds()[0];
         $this->openCategory($productCategory);
-        $actualPrices = $this->getCategoryPrices($productName, $actualPrices);
-        $catalogCategoryView->getListProductBlock()->openProductViewPage($productName);
+        $actualPrices = $this->getCategoryPrices($product, $actualPrices);
+        $catalogCategoryView->getListProductBlock()->getProductItem($product)->open();
         $catalogProductView->getViewBlock()->fillOptions($product);
         $actualPrices = $this->getProductPagePrices($actualPrices);
         $catalogProductView->getViewBlock()->setQtyAndClickAddToCart($qty);
+        $catalogProductView->getMessagesBlock()->waitSuccessMessage();
+        $this->checkoutCart->open();
         $this->fillEstimateBlock($address, $shipping);
         $actualPrices = $this->getCartPrices($product, $actualPrices);
         $actualPrices = $this->getTotals($actualPrices);
@@ -150,6 +152,7 @@ abstract class AbstractAssertTaxRuleIsAppliedToAllPrices extends AbstractConstra
      */
     public function getCartPrices(InjectableFixture $product, $actualPrices)
     {
+        $this->checkoutCart->open();
         $actualPrices['cart_item_price_excl_tax'] =
             $this->checkoutCart->getCartBlock()->getCartItem($product)->getPrice();
         $actualPrices['cart_item_price_incl_tax'] =
diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxWithCrossBorderApplying.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxWithCrossBorderApplying.php
index 379a0361c5e63a12c39b2265855a77f67bbfb335..e0fedee9fc15813d00b24636fca26431e4e5ccb0 100644
--- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxWithCrossBorderApplying.php
+++ b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxWithCrossBorderApplying.php
@@ -12,6 +12,7 @@ use Magento\Catalog\Test\Page\Product\CatalogProductView;
 use Magento\Checkout\Test\Page\CheckoutCart;
 use Magento\Cms\Test\Page\CmsIndex;
 use Magento\Mtf\Constraint\AbstractConstraint;
+use Magento\Mtf\Fixture\FixtureInterface;
 
 /**
  * Class AbstractAssertTaxWithCrossBorderApplying
@@ -95,11 +96,10 @@ abstract class AbstractAssertTaxWithCrossBorderApplying extends AbstractConstrai
         $prices = [];
         foreach ($customers as $customer) {
             $this->loginCustomer($customer);
-            $productName = $product->getName();
             $this->openCategory($product);
             $actualPrices = [];
-            $actualPrices = $this->getCategoryPrice($productName, $actualPrices);
-            $this->catalogCategoryView->getListProductBlock()->openProductViewPage($productName);
+            $actualPrices = $this->getCategoryPrice($product, $actualPrices);
+            $this->catalogCategoryView->getListProductBlock()->getProductItem($product)->open();
             $actualPrices = $this->addToCart($product, $actualPrices);
             $actualPrices = $this->getCartPrice($product, $actualPrices);
             $prices[] = $actualPrices;
@@ -123,17 +123,18 @@ abstract class AbstractAssertTaxWithCrossBorderApplying extends AbstractConstrai
     /**
      * Get prices on category page
      *
-     * @param string $productName
+     * @param FixtureInterface $product
      * @param array $actualPrices
      * @return array
      */
-    protected function getCategoryPrice($productName, $actualPrices)
+    protected function getCategoryPrice(FixtureInterface $product, $actualPrices)
     {
         $actualPrices['category_price_incl_tax'] =
             $this->catalogCategoryView
                 ->getListProductBlock()
-                ->getProductPriceBlock($productName)
-                ->getEffectivePrice();
+                ->getProductItem($product)
+                ->getPriceBlock()
+                ->getPriceIncludingTax();
         return $actualPrices;
     }
 
@@ -148,7 +149,7 @@ abstract class AbstractAssertTaxWithCrossBorderApplying extends AbstractConstrai
     {
         $this->catalogProductView->getViewBlock()->fillOptions($product);
         $actualPrices['product_page_price'] =
-            $this->catalogProductView->getViewBlock()->getPriceBlock()->getEffectivePrice();
+            $this->catalogProductView->getViewBlock()->getPriceBlock()->getPrice();
         $this->catalogProductView->getViewBlock()->clickAddToCart();
         $this->catalogProductView->getMessagesBlock()->waitSuccessMessage();
         return $actualPrices;
diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesExcludingIncludingTax.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesExcludingIncludingTax.php
index b685b18e9608d4e40c42ed24f802d3cb4380892f..acf2b526b2b757cc72a00107e7a6ba81d1fe64cb 100644
--- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesExcludingIncludingTax.php
+++ b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesExcludingIncludingTax.php
@@ -7,6 +7,7 @@
 namespace Magento\Tax\Test\Constraint;
 
 use Magento\Catalog\Test\Fixture\CatalogProductSimple;
+use Magento\Mtf\Fixture\FixtureInterface;
 
 /**
  * Checks that prices excl and incl tax on category, product and cart pages are equal to specified in dataset
@@ -24,13 +25,13 @@ class AssertTaxRuleIsAppliedToAllPricesExcludingIncludingTax extends
     /**
      * Get prices on category page.
      *
-     * @param $productName
+     * @param FixtureInterface $product
      * @param array $actualPrices
      * @return array
      */
-    public function getCategoryPrices($productName, $actualPrices)
+    public function getCategoryPrices(FixtureInterface $product, $actualPrices)
     {
-        $priceBlock = $this->catalogCategoryView->getListProductBlock()->getProductPriceBlock($productName);
+        $priceBlock = $this->catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock();
         $actualPrices['category_price_excl_tax'] = $priceBlock->getPriceExcludingTax();
         $actualPrices['category_price_incl_tax'] = $priceBlock->getPriceIncludingTax();
 
@@ -45,9 +46,9 @@ class AssertTaxRuleIsAppliedToAllPricesExcludingIncludingTax extends
      */
     public function getProductPagePrices($actualPrices)
     {
-        $viewBlock = $this->catalogProductView->getViewBlock();
-        $actualPrices['product_view_price_excl_tax'] = $viewBlock->getProductPriceExcludingTax();
-        $actualPrices['product_view_price_incl_tax'] = $viewBlock->getProductPriceIncludingTax();
+        $priceBlock = $this->catalogProductView->getViewBlock()->getPriceBlock();
+        $actualPrices['product_view_price_excl_tax'] = $priceBlock->getPriceExcludingTax();
+        $actualPrices['product_view_price_incl_tax'] = $priceBlock->getPriceIncludingTax();
 
         return $actualPrices;
     }
diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesExcludingTax.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesExcludingTax.php
index 8088fe6e3da3a3154c6ed54a015258b5682e0c29..0d86143837bb696d6684ea1e891d4f0c854dbbdd 100644
--- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesExcludingTax.php
+++ b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesExcludingTax.php
@@ -7,6 +7,7 @@
 namespace Magento\Tax\Test\Constraint;
 
 use Magento\Catalog\Test\Fixture\CatalogProductSimple;
+use Magento\Mtf\Fixture\FixtureInterface;
 
 /**
  * Checks that prices incl tax on category, product and cart pages are equal to specified in dataset.
@@ -23,14 +24,14 @@ class AssertTaxRuleIsAppliedToAllPricesExcludingTax extends AbstractAssertTaxRul
     /**
      * Get prices on category page.
      *
-     * @param $productName
+     * @param FixtureInterface $product
      * @param array $actualPrices
      * @return array
      */
-    public function getCategoryPrices($productName, $actualPrices)
+    public function getCategoryPrices(FixtureInterface $product, $actualPrices)
     {
-        $priceBlock = $this->catalogCategoryView->getListProductBlock()->getProductPriceBlock($productName);
-        $actualPrices['category_price_excl_tax'] = $priceBlock->getEffectivePrice();
+        $priceBlock = $this->catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock();
+        $actualPrices['category_price_excl_tax'] = $priceBlock->getPriceExcludingTax();
         $actualPrices['category_price_incl_tax'] = null;
 
         return $actualPrices;
@@ -45,7 +46,7 @@ class AssertTaxRuleIsAppliedToAllPricesExcludingTax extends AbstractAssertTaxRul
     public function getProductPagePrices($actualPrices)
     {
         $viewBlock = $this->catalogProductView->getViewBlock();
-        $actualPrices['product_view_price_excl_tax'] = $viewBlock->getPriceBlock()->getEffectivePrice();
+        $actualPrices['product_view_price_excl_tax'] = $viewBlock->getPriceBlock()->getPriceExcludingTax();
         $actualPrices['product_view_price_incl_tax'] = null;
 
         return $actualPrices;
diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesIncludingTax.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesIncludingTax.php
index 9e7fbe7ef376fa91c137f71c50632362fee00993..2146248f7eba948ea97beb59ab5c63557a9a235d 100644
--- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesIncludingTax.php
+++ b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesIncludingTax.php
@@ -7,6 +7,7 @@
 namespace Magento\Tax\Test\Constraint;
 
 use Magento\Catalog\Test\Fixture\CatalogProductSimple;
+use Magento\Mtf\Fixture\FixtureInterface;
 
 /**
  * Checks that prices incl tax on category, product and cart pages are equal to specified in dataset.
@@ -23,15 +24,15 @@ class AssertTaxRuleIsAppliedToAllPricesIncludingTax extends AbstractAssertTaxRul
     /**
      * Get prices on category page.
      *
-     * @param $productName
+     * @param FixtureInterface $product
      * @param array $actualPrices
      * @return array
      */
-    public function getCategoryPrices($productName, $actualPrices)
+    public function getCategoryPrices(FixtureInterface $product, $actualPrices)
     {
-        $priceBlock = $this->catalogCategoryView->getListProductBlock()->getProductPriceBlock($productName);
+        $priceBlock = $this->catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock();
         $actualPrices['category_price_excl_tax'] = null;
-        $actualPrices['category_price_incl_tax'] = $priceBlock->getEffectivePrice();
+        $actualPrices['category_price_incl_tax'] = $priceBlock->getPriceIncludingTax();
 
         return $actualPrices;
     }
@@ -46,7 +47,7 @@ class AssertTaxRuleIsAppliedToAllPricesIncludingTax extends AbstractAssertTaxRul
     {
         $viewBlock = $this->catalogProductView->getViewBlock();
         $actualPrices['product_view_price_excl_tax'] = null;
-        $actualPrices['product_view_price_incl_tax'] = $viewBlock->getPriceBlock()->getEffectivePrice();
+        $actualPrices['product_view_price_incl_tax'] = $viewBlock->getPriceBlock()->getPriceIncludingTax();
 
         return $actualPrices;
     }
diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateIndex.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateIndex.xml
index dc474c7a7c79002b232d1607ab8ea19e8469c62e..ffe8fa7fc4612bca74e8938dba5fe1fda0710e69 100644
--- a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateIndex.xml
@@ -9,6 +9,6 @@
   <page name="TaxRateIndex" area="Adminhtml" mca="tax/rate/index" module="Magento_Tax">
     <block name="gridPageActions" class="Magento\Tax\Test\Block\Adminhtml\Rate\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="taxRateGrid" class="Magento\Tax\Test\Block\Adminhtml\Rate\Grid" locator="#tax_rate_grid" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateNew.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateNew.xml
index 190d097f4b2b40a968a04cd19302c6db91fd55c6..0237379975c22bc99ffe1e1be0f486821e03efc7 100644
--- a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateNew.xml
+++ b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateNew.xml
@@ -9,6 +9,6 @@
   <page name="TaxRateNew" area="Adminhtml" mca="tax/rate/add" module="Magento_Tax">
     <block name="formPageActions" class="Magento\Tax\Test\Block\Adminhtml\Rate\Edit\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="taxRateForm" class="Magento\Tax\Test\Block\Adminhtml\Rate\Edit\Form" locator="#rate-form" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleIndex.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleIndex.xml
index be5e415809d6936e4a991f0651995310a08f2009..778c645e4096d54455fc7ce6e554f9e14e837b63 100644
--- a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleIndex.xml
@@ -9,6 +9,6 @@
   <page name="TaxRuleIndex" area="Adminhtml" mca="tax/rule/index" module="Magento_Tax">
     <block name="gridPageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="taxRuleGrid" class="Magento\Tax\Test\Block\Adminhtml\Rule\Grid" locator="#taxRuleGrid" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleNew.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleNew.xml
index cacce8f186d2753a19dfe1544b7113607d0a623a..3396503e1d46f35179b27fe6f7f9e39274d3ac8a 100644
--- a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleNew.xml
+++ b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleNew.xml
@@ -9,6 +9,6 @@
   <page name="TaxRuleNew" area="Adminhtml" mca="tax/rule/new" module="Magento_Tax">
     <block name="formPageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="taxRuleForm" class="Magento\Tax\Test\Block\Adminhtml\Rule\Edit\Form" locator="#edit_form" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/ConfigData.xml
index 70ab262d76a7d3f7892c53ce2d1c3715a9134f42..80d59a361d73a63316f2a6c922da945991af09e5 100644
--- a/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="shipping_tax_class_taxable_goods">
             <field path="tax/classes/shipping_tax_class" scope="tax" scope_id="1" label="Taxable Goods" xsi:type="string">2</field>
         </dataset>
diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRuleEntityTest/testDeleteTaxRule.csv b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRuleEntityTest/testDeleteTaxRule.csv
deleted file mode 100644
index f31aa4951ea46d709bdc194cc98173fe78466f64..0000000000000000000000000000000000000000
--- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRuleEntityTest/testDeleteTaxRule.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-"taxRule/dataSet";"address/data/country_id";"address/data/region_id";"address/data/postcode";"shipping/shipping_service";"shipping/shipping_method";"shipping/price";"constraint"
-"tax_rule_with_custom_tax_classes";"United States";"California";90001;"Flat Rate";"Fixed";5;"assertTaxRuleSuccessDeleteMessage, assertTaxRuleNotInGrid, assertTaxRuleIsNotApplied"
\ No newline at end of file
diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRuleEntityTest.php
index 49c320262784e4852b4f02906693951218e40e2f..79d21703eb8718e9ad0d919759945f4b58460edf 100644
--- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRuleEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRuleEntityTest.php
@@ -33,6 +33,7 @@ class UpdateTaxRuleEntityTest extends Injectable
     /* tags */
     const MVP = 'yes';
     const DOMAIN = 'CS';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Ups/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Ups/Test/Repository/ConfigData.xml
index 6c8afa0db50de401e34b56f1bd04c938e74a9016..3d29ba87a2ae02d735e9334b125140e8752db3a2 100644
--- a/dev/tests/functional/tests/app/Magento/Ups/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/Ups/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="disable_shipping_all">
             <field path="carriers/ups/active" scope="carriers" scope_id="1" label="No" xsi:type="string">0</field>
         </dataset>
diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCustomSearchRedirect.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCustomSearchRedirect.php
index dcb5d3b087301a0d1f3accc17d3dd35168a55af0..da9c6c8b63a79f8a487721f9804f645a7e36c66d 100644
--- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCustomSearchRedirect.php
+++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCustomSearchRedirect.php
@@ -36,11 +36,11 @@ class AssertUrlRewriteCustomSearchRedirect extends AbstractConstraint
             ? $urlRewrite->getRequestPath()
             : $initialRewrite->getRequestPath();
         $browser->open($_ENV['app_frontend_url'] . $urlRequestPath);
-        $entity = $urlRewrite->getDataFieldConfig('target_path')['source']->getEntity()->getName();
+        $entity = $urlRewrite->getDataFieldConfig('target_path')['source']->getEntity();
 
         \PHPUnit_Framework_Assert::assertTrue(
-            $categoryView->getListProductBlock()->isProductVisible($entity),
-            "Created entity '{$entity}' isn't found."
+            $categoryView->getListProductBlock()->getProductItem($entity)->isVisible(),
+            "Created entity '{$entity->getName()}' isn't found."
         );
     }
 
diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteEdit.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteEdit.xml
index 9f7966e317c2e03471602cba1fdc7709ceab8c6b..77022c54f4f7354855acb5fc1515f866b899faa5 100644
--- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteEdit.xml
+++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteEdit.xml
@@ -9,7 +9,7 @@
   <page name="UrlRewriteEdit" area="Adminhtml" mca="admin/url_rewrite/edit" module="Magento_UrlRewrite">
     <block name="treeBlock" class="Magento\UrlRewrite\Test\Block\Adminhtml\Catalog\Category\Tree" locator="[id='page:main-container']" strategy="css selector"/>
     <block name="formBlock" class="Magento\UrlRewrite\Test\Block\Adminhtml\Catalog\Edit\UrlRewriteForm" locator="[id='page:main-container']" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/>
     <block name="pageMainActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="productGridBlock" class="Magento\UrlRewrite\Test\Block\Adminhtml\Catalog\Product\Grid" locator="[id='productGrid']" strategy="css selector"/>
     <block name="urlRewriteTypeSelectorBlock" class="Magento\UrlRewrite\Test\Block\Adminhtml\Selector" locator="[data-container-for='entity-type-selector']" strategy="css selector"/>
diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteIndex.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteIndex.xml
index f81391fa09a3f380de523e5ee529fb65b7b3ca0d..b56c0d06881020cd4c6e3ddf64ec64522d327d5f 100644
--- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteIndex.xml
@@ -9,6 +9,6 @@
   <page name="UrlRewriteIndex" area="Adminhtml" mca="admin/url_rewrite/index" module="Magento_UrlRewrite">
     <block name="pageActionsBlock" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="urlRedirectGrid" class="Magento\UrlRewrite\Test\Block\Adminhtml\Catalog\Category\Grid" locator="#urlrewriteGrid" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator=".messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserEdit.xml b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserEdit.xml
index 44f2f8179c068db032ca4bbe8611e344a2dc91ad..63f872991799bd133ff580c0ff246c5023fa420d 100644
--- a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserEdit.xml
+++ b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserEdit.xml
@@ -8,7 +8,7 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="UserEdit" area="Adminhtml" mca="admin/user/edit" module="Magento_User">
     <block name="pageActions" class="Magento\User\Test\Block\Adminhtml\User\Edit\PageActions" locator=".page-main-actions" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     <block name="userForm" class="Magento\User\Test\Block\Adminhtml\User\UserForm" locator="[id='page:main-container']" strategy="css selector"/>
     <block name="rolesGrid" class="Magento\User\Test\Block\Adminhtml\User\Tab\Role\Grid" locator="[id='permissionsUserRolesGrid']" strategy="css selector"/>
   </page>
diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserIndex.xml b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserIndex.xml
index 35e58ff38d2fa1e0033e3949f49e4474315019da..dedd1a68b44f5b8622ef3d1008506fce7454140b 100644
--- a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserIndex.xml
@@ -9,6 +9,6 @@
     <page name="UserIndex" area="Adminhtml" mca="admin/user" module="Magento_User">
         <block name="pageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
         <block name="userGrid" class="Magento\User\Test\Block\Adminhtml\UserGrid" locator="#permissionsUserGrid" strategy="css selector"/>
-        <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+        <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
     </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleEditRole.xml b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleEditRole.xml
index a12e23a791685cb6388ef0950ce18d5b854b78bd..739a150f8a4842f11ff4deeba75ae08e8fb6acc3 100644
--- a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleEditRole.xml
+++ b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleEditRole.xml
@@ -9,6 +9,6 @@
   <page name="UserRoleEditRole" area="Adminhtml" mca="admin/user_role/editrole" module="Magento_User">
     <block name="pageActions" class="Magento\User\Test\Block\Adminhtml\Role\PageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="roleFormTabs" class="Magento\User\Test\Block\Adminhtml\Role\RoleForm" locator="[id='page:main-container']" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleIndex.xml b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleIndex.xml
index d54e849192e88ed3ab8c8a163ac14d747f219c66..a9bea6dffa1119f97677d00aa29327af9ad6c40d 100644
--- a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleIndex.xml
@@ -9,6 +9,6 @@
   <page name="UserRoleIndex" area="Adminhtml" mca="admin/user_role/index" module="Magento_User">
     <block name="roleActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
     <block name="roleGrid" class="Magento\User\Test\Block\Adminhtml\RoleGrid" locator="#roleGrid" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserEntityTest.xml b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserEntityTest.xml
index c002a9df38696ef99b8112ca7282bdeef6203cfa..04daaffc3298480c1e3778a3d6ef7534ab0f4bb5 100644
--- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserEntityTest.xml
@@ -7,21 +7,6 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
   <testCase name="Magento\User\Test\TestCase\UpdateAdminUserEntityTest">
-      <variation name="UpdateAdminUserEntityTestVariation1">
-          <data name="initialUser/dataSet" xsi:type="string">custom_admin_with_default_role</data>
-          <data name="user/data/username" xsi:type="string">NewAdminUser%isolation%</data>
-          <data name="user/data/firstname" xsi:type="string">NewFirstName%isolation%</data>
-          <data name="user/data/lastname" xsi:type="string">NewLastName%isolation%</data>
-          <data name="user/data/email" xsi:type="string">NewEmail%isolation%@example.com</data>
-          <data name="user/data/password" xsi:type="string">123123qa</data>
-          <data name="user/data/password_confirmation" xsi:type="string">123123qa</data>
-          <data name="user/data/current_password" xsi:type="string">123123q</data>
-          <data name="loginAsDefaultAdmin" xsi:type="string">0</data>
-          <constraint name="Magento\User\Test\Constraint\AssertUserSuccessSaveMessage" />
-          <constraint name="Magento\User\Test\Constraint\AssertUserInGrid" />
-          <constraint name="Magento\User\Test\Constraint\AssertUserSuccessLogOut" />
-          <constraint name="Magento\User\Test\Constraint\AssertUserSuccessLogin" />
-      </variation>
       <variation name="UpdateAdminUserEntityTestVariation2">
           <data name="initialUser/dataSet" xsi:type="string">custom_admin_with_default_role</data>
           <data name="user/data/role_id/dataSet" xsi:type="string">role::role_sales</data>
@@ -37,29 +22,5 @@
           <constraint name="Magento\User\Test\Constraint\AssertUserSuccessLogin" />
           <constraint name="Magento\User\Test\Constraint\AssertUserRoleRestrictedAccess" />
       </variation>
-      <variation name="UpdateAdminUserEntityTestVariation3">
-          <data name="initialUser/dataSet" xsi:type="string">custom_admin_with_default_role</data>
-          <data name="user/data/is_active" xsi:type="string">Inactive</data>
-          <data name="user/data/current_password" xsi:type="string">123123q</data>
-          <data name="loginAsDefaultAdmin" xsi:type="string">1</data>
-          <constraint name="Magento\User\Test\Constraint\AssertUserSuccessSaveMessage" />
-          <constraint name="Magento\User\Test\Constraint\AssertUserInGrid" />
-          <constraint name="Magento\User\Test\Constraint\AssertUserSuccessLogOut" />
-          <constraint name="Magento\User\Test\Constraint\AssertUserWrongCredentialsMessage" />
-      </variation>
-      <variation name="UpdateAdminUserEntityTestVariation4">
-          <data name="description" xsi:type="string">MAGETWO-12375: Use ACL Role with Full GWS Scope (without Using Secret Key to URLs)</data>
-          <data name="loginAsDefaultAdmin" xsi:type="string">1</data>
-          <data name="initialUser/dataSet" xsi:type="string">custom_admin_with_default_role</data>
-          <data name="user/data/role_id/dataSet" xsi:type="string">role::role_sales</data>
-          <data name="user/data/current_password" xsi:type="string">123123q</data>
-          <data name="restrictedAccess" xsi:type="array">
-              <item name="0" xsi:type="string">sales</item>
-          </data>
-          <data name="denyUrl" xsi:type="string">catalog/product</data>
-          <data name="tag" xsi:type="string">test_type:acceptance_test</data>
-          <constraint name="Magento\User\Test\Constraint\AssertUserSuccessSaveMessage" />
-          <constraint name="Magento\User\Test\Constraint\AssertUserRoleRestrictedAccess" />
-      </variation>
   </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Usps/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Usps/Test/Repository/ConfigData.xml
index 7052fa3e3b5fb3a44d1821d373ca78c4a1adbb85..00deb1ffd60697cfd148df5648bd5bc9d3155107 100644
--- a/dev/tests/functional/tests/app/Magento/Usps/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/Usps/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="disable_shipping_all">
             <field path="carriers/usps/active" scope="carriers" scope_id="1" label="No" xsi:type="string">0</field>
         </dataset>
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Variable/Edit/VariableForm.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/Edit/VariableForm.php
similarity index 61%
rename from dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Variable/Edit/VariableForm.php
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/Edit/VariableForm.php
index 2b0c596f1f1e5e8541e5f8895f08b2fb1b6369e0..9e63553e80332a25be90bf6f849664aa2b676636 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Variable/Edit/VariableForm.php
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/Edit/VariableForm.php
@@ -4,13 +4,12 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Backend\Test\Block\System\Variable\Edit;
+namespace Magento\Variable\Test\Block\Adminhtml\System\Variable\Edit;
 
 use Magento\Mtf\Block\Form;
 
 /**
- * Class Form
- * Form for custom system variable creation
+ * Form for custom system variable creation.
  */
 class VariableForm extends Form
 {
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Variable/Edit/VariableForm.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/Edit/VariableForm.xml
similarity index 100%
rename from dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Variable/Edit/VariableForm.xml
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/Edit/VariableForm.xml
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Block/Adminhtml/System/Variable/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/FormPageActions.php
similarity index 71%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Block/Adminhtml/System/Variable/FormPageActions.php
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/FormPageActions.php
index 719bbdc16f03f16378ff08938e13ed34cd02de79..8fa7f1fc390d3a44fae5e75970962dec1d72711a 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Block/Adminhtml/System/Variable/FormPageActions.php
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/FormPageActions.php
@@ -4,40 +4,39 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Core\Test\Block\Adminhtml\System\Variable;
+namespace Magento\Variable\Test\Block\Adminhtml\System\Variable;
 
 use Magento\Backend\Test\Block\FormPageActions as AbstractFormPageActions;
 use Magento\Mtf\Client\Locator;
 
 /**
- * Class FormPageActions
- * Page Actions for Custom Variable
+ * Page Actions for Custom Variable.
  */
 class FormPageActions extends AbstractFormPageActions
 {
     /**
-     * "Save and Continue Edit" button
+     * "Save and Continue Edit" button.
      *
      * @var string
      */
     protected $saveAndContinueButton = '#save_and_edit';
 
     /**
-     * Store View button
+     * Store View button.
      *
      * @var string
      */
-    protected $storeViewButton = '.store-switcher .toggle';
+    protected $storeViewButton = '.store-switcher .actions button';
 
     /**
-     * Store View locator
+     * Store View locator.
      *
      * @var string
      */
     protected $storeView = './/*/a[contains(text(),"%s")]';
 
     /**
-     * Select Store View
+     * Select Store View.
      *
      * @param string $storeName
      * @throws \Exception
@@ -45,11 +44,11 @@ class FormPageActions extends AbstractFormPageActions
      */
     public function selectStoreView($storeName)
     {
-        $languageSwitcher = $this->_rootElement->find($this->storeViewButton);
-        if (!$languageSwitcher->isVisible()) {
+        $storeSwitcher = $this->_rootElement->find($this->storeViewButton);
+        if (!$storeSwitcher->isVisible()) {
             return false;
         }
-        $languageSwitcher->click();
+        $storeSwitcher->click();
         $selector = sprintf($this->storeView, $storeName);
         $storeView = $this->_rootElement->find($selector, Locator::SELECTOR_XPATH);
         if ($storeView->isVisible()) {
diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Variable/Grid.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/Grid.php
similarity index 74%
rename from dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Variable/Grid.php
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/Grid.php
index ea7210ae42a951f6faaad9fa62132e58163f0a8c..657c4131856bf3c1cb815a1eb03be1698991803b 100644
--- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Variable/Grid.php
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/Grid.php
@@ -4,25 +4,24 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Backend\Test\Block\System\Variable;
+namespace Magento\Variable\Test\Block\Adminhtml\System\Variable;
 
 use Magento\Backend\Test\Block\Widget\Grid as AbstractGrid;
 
 /**
- * Class Grid
- * System Variable management grid
+ * System Variable management grid.
  */
 class Grid extends AbstractGrid
 {
     /**
-     * Locator value for link in action column
+     * Locator value for link in action column.
      *
      * @var string
      */
     protected $editLink = 'td[class*=col-code]';
 
     /**
-     * Initialize block elements
+     * Initialize block elements.
      *
      * @var array
      */
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableForm.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableForm.php
similarity index 87%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableForm.php
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableForm.php
index 7ee2f2d204222df86b69a14c3ed17a789adaba2e..c25ef815e2b887f86919e098921918e8fe82d919 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableForm.php
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableForm.php
@@ -4,29 +4,28 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Core\Test\Constraint;
+namespace Magento\Variable\Test\Constraint;
 
-use Magento\Core\Test\Fixture\SystemVariable;
-use Magento\Core\Test\Page\Adminhtml\SystemVariableIndex;
-use Magento\Core\Test\Page\Adminhtml\SystemVariableNew;
+use Magento\Variable\Test\Fixture\SystemVariable;
+use Magento\Variable\Test\Page\Adminhtml\SystemVariableIndex;
+use Magento\Variable\Test\Page\Adminhtml\SystemVariableNew;
 use Magento\Store\Test\Fixture\Store;
 use Magento\Mtf\Constraint\AbstractAssertForm;
 
 /**
- * Class AssertCustomVariableForm
- * Check that data at the form corresponds to the fixture data
+ * Check that data at the form corresponds to the fixture data.
  */
 class AssertCustomVariableForm extends AbstractAssertForm
 {
     /**
-     * Skipped fields for verify data
+     * Skipped fields for verify data.
      *
      * @var array
      */
     protected $skippedFields = ['use_default_value', 'variable_id'];
 
     /**
-     * Assert that data at the form corresponds to the fixture data
+     * Assert that data at the form corresponds to the fixture data.
      *
      * @param SystemVariable $customVariable
      * @param SystemVariableIndex $systemVariableIndex
@@ -79,7 +78,7 @@ class AssertCustomVariableForm extends AbstractAssertForm
     }
 
     /**
-     * Text success verify Custom Variable
+     * Text success verify Custom Variable.
      *
      * @return string
      */
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableInGrid.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableInGrid.php
similarity index 82%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableInGrid.php
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableInGrid.php
index 399d1cf657923db16ec3becb8a128ffbb2dfaf2a..8d1a176861dff224719046f397c988ae38c64088 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableInGrid.php
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableInGrid.php
@@ -4,16 +4,15 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Core\Test\Constraint;
+namespace Magento\Variable\Test\Constraint;
 
-use Magento\Core\Test\Fixture\SystemVariable;
-use Magento\Core\Test\Page\Adminhtml\SystemVariableIndex;
+use Magento\Variable\Test\Fixture\SystemVariable;
+use Magento\Variable\Test\Page\Adminhtml\SystemVariableIndex;
 use Magento\Mtf\Constraint\AbstractConstraint;
 
 /**
- * Class AssertCustomVariableInGrid
  * Check that created custom variable is displayed on backend in custom variable grid and has correct data
- * according to dataset
+ * according to dataset.
  */
 class AssertCustomVariableInGrid extends AbstractConstraint
 {
@@ -22,7 +21,7 @@ class AssertCustomVariableInGrid extends AbstractConstraint
     /* end tags */
 
     /**
-     * Assert custom variable is displayed on backend in custom variable grid
+     * Assert custom variable is displayed on backend in custom variable grid.
      *
      * @param SystemVariableIndex $systemVariableIndexNew
      * @param SystemVariable $customVariable
@@ -45,7 +44,7 @@ class AssertCustomVariableInGrid extends AbstractConstraint
     }
 
     /**
-     * Returns a string representation of successful assertion
+     * Returns a string representation of successful assertion.
      *
      * @return string
      */
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableInPage.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableInPage.php
similarity index 92%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableInPage.php
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableInPage.php
index c89dffe67a63f0c3e782ac88fbc994b099fba9cc..31ae1eafecdbc18dc64002d69b4b8fd94c0c4ef1 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableInPage.php
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableInPage.php
@@ -4,17 +4,17 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Core\Test\Constraint;
+namespace Magento\Variable\Test\Constraint;
 
 use Magento\Cms\Test\Page\CmsIndex;
-use Magento\Core\Test\Fixture\SystemVariable;
+use Magento\Variable\Test\Fixture\SystemVariable;
 use Magento\Store\Test\Fixture\Store;
 use Magento\Mtf\Client\BrowserInterface;
 use Magento\Mtf\Constraint\AbstractConstraint;
 use Magento\Mtf\Fixture\FixtureFactory;
 
 /**
- * Class AssertCustomVariableInPage
+ * Add created variable to page and assert that Custom Variable is displayed on frontend page.
  */
 class AssertCustomVariableInPage extends AbstractConstraint
 {
@@ -74,7 +74,7 @@ class AssertCustomVariableInPage extends AbstractConstraint
     }
 
     /**
-     * Get html value
+     * Get html value.
      *
      * @param SystemVariable $customVariable
      * @param SystemVariable $customVariableOrigin
@@ -97,7 +97,7 @@ class AssertCustomVariableInPage extends AbstractConstraint
     }
 
     /**
-     * Check Variable on frontend page
+     * Check Variable on frontend page.
      *
      * @param string $htmlValue
      * @param string $pageContent
@@ -115,7 +115,7 @@ class AssertCustomVariableInPage extends AbstractConstraint
     }
 
     /**
-     * Returns a string representation of successful assertion
+     * Returns a string representation of successful assertion.
      *
      * @return string
      */
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableNotInCmsPageForm.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableNotInCmsPageForm.php
similarity index 79%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableNotInCmsPageForm.php
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableNotInCmsPageForm.php
index 0ef5674c7673dc84278a21ac6f1e8e44c4b80330..298b2a53e389d1c2a1c3a62d6686316cfbf1499f 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableNotInCmsPageForm.php
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableNotInCmsPageForm.php
@@ -4,19 +4,19 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Core\Test\Constraint;
+namespace Magento\Variable\Test\Constraint;
 
 use Magento\Cms\Test\Page\Adminhtml\CmsPageNew;
-use Magento\Core\Test\Fixture\SystemVariable;
+use Magento\Variable\Test\Fixture\SystemVariable;
 use Magento\Mtf\Constraint\AbstractConstraint;
 
 /**
- * Class AssertCustomVariableNotInCmsPageForm
+ * Assert that custom system variable not in cms page form.
  */
 class AssertCustomVariableNotInCmsPageForm extends AbstractConstraint
 {
     /**
-     * Assert that custom system variable not in cms page form
+     * Assert that custom system variable not in cms page form.
      *
      * @param CmsPageNew $cmsPageNew
      * @param SystemVariable $systemVariable
@@ -38,7 +38,7 @@ class AssertCustomVariableNotInCmsPageForm extends AbstractConstraint
     }
 
     /**
-     * Returns a string representation of successful assertion
+     * Returns a string representation of successful assertion.
      *
      * @return string
      */
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableNotInGrid.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableNotInGrid.php
similarity index 89%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableNotInGrid.php
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableNotInGrid.php
index 754b655aa23486eec7c21e22d3684ba783c08099..7e109d112754acff604bc8137d08c28ab6547af4 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableNotInGrid.php
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableNotInGrid.php
@@ -4,10 +4,10 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Core\Test\Constraint;
+namespace Magento\Variable\Test\Constraint;
 
-use Magento\Core\Test\Fixture\SystemVariable;
-use Magento\Core\Test\Page\Adminhtml\SystemVariableIndex;
+use Magento\Variable\Test\Fixture\SystemVariable;
+use Magento\Variable\Test\Page\Adminhtml\SystemVariableIndex;
 use Magento\Mtf\Constraint\AbstractConstraint;
 
 /**
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableSuccessDeleteMessage.php
similarity index 79%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableSuccessDeleteMessage.php
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableSuccessDeleteMessage.php
index 947a409272020bd2d45dcaf3dc6a63de53e3e2a0..596577190cab66e24fd31bac364975fdbcc263b2 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableSuccessDeleteMessage.php
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableSuccessDeleteMessage.php
@@ -4,20 +4,20 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Core\Test\Constraint;
+namespace Magento\Variable\Test\Constraint;
 
-use Magento\Core\Test\Page\Adminhtml\SystemVariableIndex;
+use Magento\Variable\Test\Page\Adminhtml\SystemVariableIndex;
 use Magento\Mtf\Constraint\AbstractConstraint;
 
 /**
- * Class AssertCustomVariableSuccessDeleteMessage
+ * Assert that success delete message is correct after Custom System Variable deleted.
  */
 class AssertCustomVariableSuccessDeleteMessage extends AbstractConstraint
 {
     const SUCCESS_DELETE_MESSAGE = 'You deleted the custom variable.';
 
     /**
-     * Assert that success delete message is correct after Custom System Variable deleted
+     * Assert that success delete message is correct after Custom System Variable deleted.
      *
      * @param SystemVariableIndex $systemVariableIndexPage
      * @return void
@@ -35,7 +35,7 @@ class AssertCustomVariableSuccessDeleteMessage extends AbstractConstraint
     }
 
     /**
-     * Returns a string representation of successful assertion
+     * Returns a string representation of successful assertion.
      *
      * @return string
      */
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableSuccessSaveMessage.php
similarity index 82%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableSuccessSaveMessage.php
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableSuccessSaveMessage.php
index c04f39321eea5d9d384967022164e8a820243737..dd723c012ab74497e12a3fcb10f853d8ed8e49f7 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Constraint/AssertCustomVariableSuccessSaveMessage.php
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableSuccessSaveMessage.php
@@ -4,21 +4,20 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Core\Test\Constraint;
+namespace Magento\Variable\Test\Constraint;
 
-use Magento\Core\Test\Page\Adminhtml\SystemVariableIndex;
+use Magento\Variable\Test\Page\Adminhtml\SystemVariableIndex;
 use Magento\Mtf\Constraint\AbstractConstraint;
 
 /**
- * Class AssertCustomVariableSuccessSaveMessage
- * Check success delete message is correct after Custom System Variable deleted
+ * Check success delete message is correct after Custom System Variable deleted.
  */
 class AssertCustomVariableSuccessSaveMessage extends AbstractConstraint
 {
     const SUCCESS_SAVE_MESSAGE = 'You saved the custom variable.';
 
     /**
-     * Assert that success delete message is correct after Custom System Variable deleted
+     * Assert that success delete message is correct after Custom System Variable deleted.
      *
      * @param SystemVariableIndex $systemVariableIndexPage
      * @return void
@@ -36,7 +35,7 @@ class AssertCustomVariableSuccessSaveMessage extends AbstractConstraint
     }
 
     /**
-     * Returns a string representation of successful assertion
+     * Returns a string representation of successful assertion.
      *
      * @return string
      */
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Fixture/SystemVariable.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/Fixture/SystemVariable.xml
similarity index 89%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Fixture/SystemVariable.xml
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Fixture/SystemVariable.xml
index ccb72344e985faaeb96b30a64cf2faa43c8cc27d..c288a4ac3a0e8659efcf0775f1c121d0d4acc1a8 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Fixture/SystemVariable.xml
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Fixture/SystemVariable.xml
@@ -7,11 +7,11 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd">
   <fixture name="systemVariable" 
-           module="Magento_Core" 
+           module="Magento_Variable"
            type="composite" 
            collection="Magento\Variable\Model\Resource\Variable\Collection"
-           handler_interface="Magento\Core\Test\Handler\SystemVariable\SystemVariableInterface" 
-           class="Magento\Core\Test\Fixture\SystemVariable">
+           handler_interface="Magento\Variable\Test\Handler\SystemVariable\SystemVariableInterface"
+           class="Magento\Variable\Test\Fixture\SystemVariable">
     <dataset name="default">
         <field name="code" xsi:type="string">variableCode%isolation%</field>
         <field name="name" xsi:type="string">variableName%isolation%</field>
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Handler/SystemVariable/Curl.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Handler/SystemVariable/Curl.php
similarity index 89%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Handler/SystemVariable/Curl.php
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Handler/SystemVariable/Curl.php
index 0ded2518a3b8ff6f98febb4e8f24d851d007a664..9de0d3c9e574f79c2603efa667adc597f313eb96 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Handler/SystemVariable/Curl.php
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Handler/SystemVariable/Curl.php
@@ -4,7 +4,7 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Core\Test\Handler\SystemVariable;
+namespace Magento\Variable\Test\Handler\SystemVariable;
 
 use Magento\Mtf\Fixture\FixtureInterface;
 use Magento\Mtf\Handler\Curl as AbstractCurl;
@@ -13,13 +13,12 @@ use Magento\Mtf\Util\Protocol\CurlTransport;
 use Magento\Mtf\Util\Protocol\CurlTransport\BackendDecorator;
 
 /**
- * Class Curl
- * Curl handler for creating custom system variable
+ * Curl handler for creating custom system variable.
  */
 class Curl extends AbstractCurl implements SystemVariableInterface
 {
     /**
-     * Post request for creating custom system variable
+     * Post request for creating custom system variable.
      *
      * @param FixtureInterface $fixture
      * @return array|mixed
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Handler/SystemVariable/SystemVariableInterface.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Handler/SystemVariable/SystemVariableInterface.php
similarity index 70%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Handler/SystemVariable/SystemVariableInterface.php
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Handler/SystemVariable/SystemVariableInterface.php
index 342213d9c6141b6082aaf07bbc8f35101186b0ac..612e5fe0bc95f12d4048c3e216f36b289743cccf 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Handler/SystemVariable/SystemVariableInterface.php
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Handler/SystemVariable/SystemVariableInterface.php
@@ -4,12 +4,12 @@
  * See COPYING.txt for license details.
  */
 
-namespace Magento\Core\Test\Handler\SystemVariable;
+namespace Magento\Variable\Test\Handler\SystemVariable;
 
 use Magento\Mtf\Handler\HandlerInterface;
 
 /**
- * Interface SystemVariableInterface
+ * Interface SystemVariableInterface.
  */
 interface SystemVariableInterface extends HandlerInterface
 {
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Page/Adminhtml/SystemVariableIndex.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/Page/Adminhtml/SystemVariableIndex.xml
similarity index 61%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Page/Adminhtml/SystemVariableIndex.xml
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Page/Adminhtml/SystemVariableIndex.xml
index 1b3e03cca87880072268c7fad776ffe08f705f94..ff3b65fdaf5da38aed085d1fefde799f9cdfc57e 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Page/Adminhtml/SystemVariableIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Page/Adminhtml/SystemVariableIndex.xml
@@ -6,9 +6,9 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
-  <page name="SystemVariableIndex" area="Adminhtml" mca="admin/system_variable/index" module="Magento_Core">
+  <page name="SystemVariableIndex" area="Adminhtml" mca="admin/system_variable/index" module="Magento_Variable">
     <block name="gridPageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/>
-    <block name="systemVariableGrid" class="Magento\Backend\Test\Block\System\Variable\Grid" locator="#customVariablesGrid" strategy="css selector"/>
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator="#messages" strategy="css selector"/>
+    <block name="systemVariableGrid" class="Magento\Variable\Test\Block\Adminhtml\System\Variable\Grid" locator="#customVariablesGrid" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Page/Adminhtml/SystemVariableNew.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/Page/Adminhtml/SystemVariableNew.xml
similarity index 50%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Page/Adminhtml/SystemVariableNew.xml
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Page/Adminhtml/SystemVariableNew.xml
index 1608a541980166112afe8db66a77c4a4f220146a..1ef12a76ebccb87e88c0a471733b5c256f06f123 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Page/Adminhtml/SystemVariableNew.xml
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Page/Adminhtml/SystemVariableNew.xml
@@ -6,8 +6,8 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
-  <page name="SystemVariableNew" area="Adminhtml" mca="admin/system_variable/new" module="Magento_Core">
-    <block name="formPageActions" class="Magento\Core\Test\Block\Adminhtml\System\Variable\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
-    <block name="systemVariableForm" class="Magento\Backend\Test\Block\System\Variable\Edit\VariableForm" locator="#edit_form" strategy="css selector"/>
+  <page name="SystemVariableNew" area="Adminhtml" mca="admin/system_variable/new" module="Magento_Variable">
+    <block name="formPageActions" class="Magento\Variable\Test\Block\Adminhtml\System\Variable\FormPageActions" locator=".page-main-actions" strategy="css selector"/>
+    <block name="systemVariableForm" class="Magento\Variable\Test\Block\Adminhtml\System\Variable\Edit\VariableForm" locator="#edit_form" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Repository/SystemVariable.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/Repository/SystemVariable.xml
similarity index 92%
rename from dev/tests/functional/tests/app/Magento/Core/Test/Repository/SystemVariable.xml
rename to dev/tests/functional/tests/app/Magento/Variable/Test/Repository/SystemVariable.xml
index 4564fbf05ba3c82a21d21bbb48bfe1aa726a931e..827a0fea14fdf3a62b7bb693fcb689cdeeb10c95 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Repository/SystemVariable.xml
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Repository/SystemVariable.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\SystemVariable">
+    <repository class="Magento\Variable\Test\Repository\SystemVariable">
         <dataset name="custom_variable">
             <field name="variable" xsi:type="array">
                 <item name="code" xsi:type="string">variableCode%isolation%</item>
diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CreateCustomVariableEntityTest.php b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CreateCustomVariableEntityTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..5b3c979cac34d8536c2e566219eedab9a288f136
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CreateCustomVariableEntityTest.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Variable\Test\TestCase;
+
+use Magento\Variable\Test\Fixture\SystemVariable;
+use Magento\Variable\Test\Page\Adminhtml\SystemVariableIndex;
+use Magento\Variable\Test\Page\Adminhtml\SystemVariableNew;
+use Magento\Mtf\TestCase\Injectable;
+
+/**
+ * Steps:
+ * 1. Login to backend.
+ * 2. Navigate to System->Other Settings->Custom Variables.
+ * 3. Click on 'Add new variable' button.
+ * 4. Fill in all data according to data set.
+ * 5. Click 'Save' button.
+ * 6. Perform all asserts.
+ *
+ * @group Variables_(PS)
+ * @ZephyrId MAGETWO-23293
+ */
+class CreateCustomVariableEntityTest extends Injectable
+{
+    /* tags */
+    const MVP = 'yes';
+    const DOMAIN = 'PS';
+    /* end tags */
+
+    /**
+     * Custom System Variable grid page.
+     *
+     * @var SystemVariableIndex
+     */
+    protected $systemVariableIndexPage;
+
+    /**
+     * Custom System Variable new and edit page.
+     *
+     * @var SystemVariableNew
+     */
+    protected $systemVariableNewPage;
+
+    /**
+     * Injection data.
+     *
+     * @param SystemVariableIndex $systemVariableIndex
+     * @param SystemVariableNew $systemVariableNew
+     * @return void
+     */
+    public function __inject(
+        SystemVariableIndex $systemVariableIndex,
+        SystemVariableNew $systemVariableNew
+    ) {
+        $this->systemVariableIndexPage = $systemVariableIndex;
+        $this->systemVariableNewPage = $systemVariableNew;
+    }
+
+    /**
+     * Delete Custom System Variable Entity test.
+     *
+     * @param SystemVariable $customVariable
+     * @return void
+     */
+    public function test(SystemVariable $customVariable)
+    {
+        // Steps
+        $this->systemVariableIndexPage->open();
+        $this->systemVariableIndexPage->getGridPageActions()->addNew();
+        $this->systemVariableNewPage->getSystemVariableForm()->fill($customVariable);
+        $this->systemVariableNewPage->getFormPageActions()->save();
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CreateCustomVariableEntityTest.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CreateCustomVariableEntityTest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1ab6be548ce32dbe35fa647d5d20e624324bf61e
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CreateCustomVariableEntityTest.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright © 2015 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\Variable\Test\TestCase\CreateCustomVariableEntityTest">
+    <variation name="CreateCustomVariableEntityTestVariation1">
+      <data name="customVariable/data/code" xsi:type="string">variableCode%isolation%</data>
+      <data name="customVariable/data/name" xsi:type="string">variableName%isolation%</data>
+      <data name="customVariable/data/html_value" xsi:type="string">&lt;h1&gt;variableName%isolation%&lt;/h1&gt;</data>
+      <data name="customVariable/data/plain_value" xsi:type="string">&lt;p&gt;variablePlainText%isolation%&lt;/p&gt;</data>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableSuccessSaveMessage"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableInGrid"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableForm"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableInPage"/>
+    </variation>
+    <variation name="CreateCustomVariableEntityTestVariation2">
+      <data name="customVariable/data/code" xsi:type="string">variableCode%isolation%</data>
+      <data name="customVariable/data/name" xsi:type="string">variableName%isolation%</data>
+      <data name="customVariable/data/html_value" xsi:type="string">&lt;p&gt;variableName%isolation%&lt;/p&gt;</data>
+      <data name="customVariable/data/plain_value" xsi:type="string">variablePlainText%isolation%</data>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableSuccessSaveMessage"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableInGrid"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableForm"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableInPage"/>
+    </variation>
+  </testCase>
+</config>
diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.php b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..48ae7608c568326d3cd3bcac38a21985d29bed1e
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.php
@@ -0,0 +1,84 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Variable\Test\TestCase;
+
+use Magento\Variable\Test\Fixture\SystemVariable;
+use Magento\Variable\Test\Page\Adminhtml\SystemVariableIndex;
+use Magento\Variable\Test\Page\Adminhtml\SystemVariableNew;
+use Magento\Mtf\TestCase\Injectable;
+
+/**
+ * Preconditions:
+ * 1. Custom Variable is created
+ *
+ * Steps:
+ * 1. Login to backend.
+ * 2. Navigate to System->Other Settings->Custom Variables.
+ * 3. Open Variable.
+ * 4. Click 'Delete' button.
+ * 5. Perform asserts.
+ *
+ * @group Variables_(PS)
+ * @ZephyrId MAGETWO-25535
+ */
+class DeleteCustomVariableEntityTest extends Injectable
+{
+    /* tags */
+    const MVP = 'yes';
+    const DOMAIN = 'PS';
+    /* end tags */
+
+    /**
+     * Custom System Variable grid page.
+     *
+     * @var SystemVariableIndex
+     */
+    protected $systemVariableIndexPage;
+
+    /**
+     * Custom System Variable new and edit page.
+     *
+     * @var SystemVariableNew
+     */
+    protected $systemVariableNewPage;
+
+    /**
+     * Injection data.
+     *
+     * @param SystemVariableIndex $systemVariableIndex
+     * @param SystemVariableNew $systemVariableNew
+     * @return void
+     */
+    public function __inject(
+        SystemVariableIndex $systemVariableIndex,
+        SystemVariableNew $systemVariableNew
+    ) {
+        $this->systemVariableIndexPage = $systemVariableIndex;
+        $this->systemVariableNewPage = $systemVariableNew;
+    }
+
+    /**
+     * Delete Custom System Variable Entity test.
+     *
+     * @param SystemVariable $systemVariable
+     * @return void
+     */
+    public function test(SystemVariable $systemVariable)
+    {
+        // Precondition
+        $systemVariable->persist();
+
+        // Steps
+        $filter = [
+            'code' => $systemVariable->getCode(),
+            'name' => $systemVariable->getName(),
+        ];
+        $this->systemVariableIndexPage->open();
+        $this->systemVariableIndexPage->getSystemVariableGrid()->searchAndOpen($filter);
+        $this->systemVariableNewPage->getFormPageActions()->delete();
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c96b314bf81d684296da8ef4a3a328b6b3c7683f
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright © 2015 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\Variable\Test\TestCase\DeleteCustomVariableEntityTest">
+    <variation name="DeleteCustomVariableEntityTestVariation1">
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableSuccessDeleteMessage"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableNotInGrid"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableNotInCmsPageForm"/>
+    </variation>
+  </testCase>
+</config>
diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/UpdateCustomVariableEntityTest.php b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/UpdateCustomVariableEntityTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..c3dc3c5c3a7acebfc487997f634329605bcaf2ce
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/UpdateCustomVariableEntityTest.php
@@ -0,0 +1,139 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Variable\Test\TestCase;
+
+use Magento\Variable\Test\Fixture\SystemVariable;
+use Magento\Variable\Test\Page\Adminhtml\SystemVariableIndex;
+use Magento\Variable\Test\Page\Adminhtml\SystemVariableNew;
+use Magento\Store\Test\Fixture\Store;
+use Magento\Mtf\Fixture\FixtureFactory;
+use Magento\Mtf\TestCase\Injectable;
+
+/**
+ * Preconditions:
+ * 1. Custom system variable is created.
+ * 2. Additional Non Default Storeview is created.
+ *
+ * Steps:
+ * 1. Login to backend.
+ * 2. Navigate to System->Other Settings->Custom Variables.
+ * 3. Open from grid created custom system variable.
+ * 4. Navigate to the Store Switcher.
+ * 5. Choose Appropriate Storeview (non default).
+ * 6. Set Use Default Variable Values.
+ * 7. Edit necessary fields.
+ * 8. Save Custom variable using correspond saveActions.
+ * 9. Perform all assertions.
+ *
+ * @group Variables_(PS)
+ * @ZephyrId MAGETWO-26104
+ */
+class UpdateCustomVariableEntityTest extends Injectable
+{
+    /* tags */
+    const MVP = 'yes';
+    const DOMAIN = 'PS';
+    /* end tags */
+
+    /**
+     * Custom System Variable grid page.
+     *
+     * @var SystemVariableIndex
+     */
+    protected $systemVariableIndexPage;
+
+    /**
+     * Custom System Variable new and edit page.
+     *
+     * @var SystemVariableNew
+     */
+    protected $systemVariableNewPage;
+
+    /**
+     * Store entity.
+     *
+     * @var Store
+     */
+    protected $store = null;
+
+    /**
+     * Injection data.
+     *
+     * @param SystemVariableIndex $systemVariableIndex
+     * @param SystemVariableNew $systemVariableNew
+     * @param SystemVariable $customVariableOrigin
+     * @param FixtureFactory $factory
+     * @return array
+     */
+    public function __inject(
+        SystemVariableIndex $systemVariableIndex,
+        SystemVariableNew $systemVariableNew,
+        SystemVariable $customVariableOrigin,
+        FixtureFactory $factory
+    ) {
+        $this->systemVariableIndexPage = $systemVariableIndex;
+        $this->systemVariableNewPage = $systemVariableNew;
+
+        $customVariableOrigin->persist();
+
+        // TODO: Move store creation to "__prepare" method after fix bug MAGETWO-29331
+        $storeOrigin = $factory->createByCode('store', ['dataSet' => 'custom']);
+        $storeOrigin->persist();
+        $this->store = $storeOrigin;
+
+        return [
+            'customVariableOrigin' => $customVariableOrigin,
+            'storeOrigin' => $storeOrigin
+        ];
+    }
+
+    /**
+     * Update Custom System Variable Entity test.
+     *
+     * @param SystemVariable $customVariable
+     * @param SystemVariable $customVariableOrigin
+     * @param Store $storeOrigin
+     * @param string $saveAction
+     * @return void
+     */
+    public function test(
+        SystemVariable $customVariable,
+        SystemVariable $customVariableOrigin,
+        Store $storeOrigin,
+        $saveAction
+    ) {
+        $filter = ['code' => $customVariableOrigin->getCode()];
+
+        // Steps
+        $this->systemVariableIndexPage->open();
+        $this->systemVariableIndexPage->getSystemVariableGrid()->searchAndOpen($filter);
+        $this->systemVariableNewPage->getFormPageActions()->selectStoreView($storeOrigin->getData('name'));
+        $this->systemVariableNewPage->getSystemVariableForm()->fill($customVariable);
+        $this->systemVariableNewPage->getFormPageActions()->$saveAction();
+    }
+
+    /**
+     * Delete Store after test.
+     *
+     * @return void
+     */
+    public function tearDown()
+    {
+        // TODO: Move store clean up to "tearDownAfterClass" method after fix bug MAGETWO-29331
+        if ($this->store !== null) {
+            $storeIndex = $this->objectManager->create('Magento\Backend\Test\Page\Adminhtml\StoreIndex');
+            $storeIndex->open();
+            $storeIndex->getStoreGrid()->searchAndOpen(['store_title' => $this->store->getName()]);
+            $storeNew = $this->objectManager->create('Magento\Backend\Test\Page\Adminhtml\StoreNew');
+            $storeNew->getFormPageActions()->delete();
+            $storeDelete = $this->objectManager->create('Magento\Backend\Test\Page\Adminhtml\StoreDelete');
+            $storeDelete->getStoreForm()->fillForm(['create_backup' => 'No']);
+            $storeDelete->getFormPageActions()->delete();
+        }
+        $this->store = null;
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/UpdateCustomVariableEntityTest.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/UpdateCustomVariableEntityTest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ff4b66e36407a81aa5777d51a07d27d800eb1e0e
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/UpdateCustomVariableEntityTest.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright © 2015 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\Variable\Test\TestCase\UpdateCustomVariableEntityTest">
+    <variation name="UpdateCustomVariableEntityTestVariation1">
+      <data name="customVariable/data/code" xsi:type="string">variableCode%isolation%</data>
+      <data name="customVariable/data/name" xsi:type="string">variableName%isolation%</data>
+      <data name="customVariable/data/use_default_value" xsi:type="string">No</data>
+      <data name="customVariable/data/html_value" xsi:type="string">&lt;h1&gt;variableName%isolation%&lt;/h1&gt;</data>
+      <data name="saveAction" xsi:type="string">save</data>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableSuccessSaveMessage"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableInGrid"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableForm"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableInPage"/>
+    </variation>
+    <variation name="UpdateCustomVariableEntityTestVariation2">
+      <data name="customVariable/data/code" xsi:type="string">variableCode%isolation%</data>
+      <data name="customVariable/data/name" xsi:type="string">variableName%isolation%</data>
+      <data name="customVariable/data/use_default_value" xsi:type="string">No</data>
+      <data name="customVariable/data/plain_value" xsi:type="string">&lt;p&gt;variablePlainText%isolation%&lt;/p&gt;</data>
+      <data name="saveAction" xsi:type="string">saveAndContinue</data>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableSuccessSaveMessage"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableInGrid"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableForm"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableInPage"/>
+    </variation>
+    <variation name="UpdateCustomVariableEntityTestVariation3">
+      <data name="customVariable/data/code" xsi:type="string">variableCode%isolation%</data>
+      <data name="customVariable/data/name" xsi:type="string">variableName%isolation%</data>
+      <data name="customVariable/data/use_default_value" xsi:type="string">No</data>
+      <data name="customVariable/data/html_value" xsi:type="string">&lt;h1&gt;variableName%isolation%&lt;/h1&gt;</data>
+      <data name="customVariable/data/plain_value" xsi:type="string">&lt;p&gt;variablePlainText%isolation%&lt;/p&gt;</data>
+      <data name="saveAction" xsi:type="string">saveAndContinue</data>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableSuccessSaveMessage"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableInGrid"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableForm"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableInPage"/>
+    </variation>
+    <variation name="UpdateCustomVariableEntityTestVariation4">
+      <data name="customVariable/data/code" xsi:type="string">variableCode%isolation%</data>
+      <data name="customVariable/data/name" xsi:type="string">variableName%isolation%</data>
+      <data name="customVariable/data/use_default_value" xsi:type="string">No</data>
+      <data name="customVariable/data/html_value" xsi:type="string">&lt;h1&gt;variableName%isolation%&lt;/h1&gt;</data>
+      <data name="customVariable/data/plain_value" xsi:type="string">&lt;p&gt;variablePlainText%isolation%&lt;/p&gt;</data>
+      <data name="saveAction" xsi:type="string">save</data>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableSuccessSaveMessage"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableInGrid"/>
+      <constraint name="Magento\Variable\Test\Constraint\AssertCustomVariableInPage"/>
+    </variation>
+  </testCase>
+</config>
diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/etc/curl/di.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b34ba436a54196b1b09b8735b82139b34c744b9e
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Variable/Test/etc/curl/di.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" ?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
+    <preference for="\Magento\Variable\Test\Handler\SystemVariable\SystemVariableInterface" type="\Magento\Variable\Test\Handler\SystemVariable\Curl" />
+</config>
diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/Fpt.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/Fpt.php
deleted file mode 100644
index 4bc5d318fab1eba35740e7518f46f96697f2ae97..0000000000000000000000000000000000000000
--- a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/Fpt.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Weee\Test\Block\Product;
-
-use Magento\Catalog\Test\Block\Product\Price;
-
-/**
- * This class is used to access the fpt price from the storefront
- */
-class Fpt extends Price
-{
-    /**
-     * Mapping for different type of price
-     *
-     * @var array
-     */
-    protected $mapTypePrices = [
-        'weee' => [
-            'selector' => '[class="weee"] .price',
-        ],
-        'weee_total' => [
-            'selector' => '[class="weee"] [data-label="Total"] .price',
-        ],
-    ];
-
-    /**
-     * Get fpt
-     *
-     * @param string $currency
-     * @return string
-     */
-    public function getFpt($currency = '$')
-    {
-        return $this->getTypePrice('weee', $currency);
-    }
-
-    /**
-     * Get fpt total
-     *
-     * @param string $currency
-     * @return string
-     */
-    public function getFptTotal($currency = '$')
-    {
-        return $this->getTypePrice('weee_total', $currency);
-    }
-}
diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/ListProduct.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/ListProduct.php
index bba6bbcdf6474a5dfb5f59a3d360fa123b265c88..bde8718469493da70f1e8b20bb254c0b7a2ba72f 100644
--- a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/ListProduct.php
+++ b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/ListProduct.php
@@ -6,34 +6,27 @@
 
 namespace Magento\Weee\Test\Block\Product;
 
+use Magento\Weee\Test\Block\Product\ProductList\ProductItem;
 use Magento\Mtf\Client\Locator;
+use Magento\Mtf\Fixture\FixtureInterface;
 
 /**
- * Product list
+ * Product list block.
  */
 class ListProduct extends \Magento\Catalog\Test\Block\Product\ListProduct
 {
     /**
-     * This member holds the class name for the fpt block found inside the product details.
+     * Return product item block.
      *
-     * @var string
+     * @param FixtureInterface $product
+     * @return ProductItem
      */
-    protected $fptBlockClass = '.price-box .weee [data-label="%s"]';
-
-    /**
-     * This method returns the fpt box block for the named product.
-     *
-     * @param string $productName
-     * @param string $fptLabel
-     * @return \Magento\Weee\Test\Block\Product\Fpt
-     */
-    public function getProductFptBlock($productName, $fptLabel)
+    public function getProductItem(FixtureInterface $product)
     {
-        $element = $this->getProductDetailsElement($productName)
-            ->find(sprintf($this->fptBlockClass, $fptLabel), Locator::SELECTOR_CSS);
+        $locator = sprintf($this->productItem, $product->getName());
         return $this->blockFactory->create(
-            'Magento\Weee\Test\Block\Product\Fpt',
-            ['element' => $element]
+            'Magento\Weee\Test\Block\Product\ProductList\ProductItem',
+            ['element' => $this->_rootElement->find($locator, Locator::SELECTOR_XPATH)]
         );
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/Price.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/Price.php
new file mode 100644
index 0000000000000000000000000000000000000000..0551b792554d41884a14d41903ecfd449c5b8d74
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/Price.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Weee\Test\Block\Product;
+
+/**
+ * This class is used to access the fpt price from the storefront.
+ */
+class Price extends \Magento\Catalog\Test\Block\AbstractPriceBlock
+{
+    /**
+     * Mapping for different type of price.
+     *
+     * @var array
+     */
+    protected $mapTypePrices = [
+        'regular_price' => [
+            'selector' => '[data-price-type="finalPrice"] .price'
+        ],
+        'fpt_price' => [
+            'selector' => '[data-price-type="weee"] .price',
+        ],
+        'final_price' => [
+            'selector' => '[data-label="Final Price"] .price',
+        ],
+    ];
+
+    /**
+     * Get regular price.
+     *
+     * @param string $currency
+     * @return string|null
+     */
+    public function getPrice($currency = '$')
+    {
+        return $this->getTypePrice('regular_price', $currency);
+    }
+
+    /**
+     * Get fpt.
+     *
+     * @param string $currency
+     * @return string|null
+     */
+    public function getFptPrice($currency = '$')
+    {
+        return $this->getTypePrice('fpt_price', $currency);
+    }
+
+    /**
+     * Get final price.
+     *
+     * @param string $currency
+     * @return string|null
+     */
+    public function getFinalPrice($currency = '$')
+    {
+        return $this->getTypePrice('final_price', $currency);
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/ProductList/ProductItem.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/ProductList/ProductItem.php
new file mode 100644
index 0000000000000000000000000000000000000000..e1a7aac020405bf53f52c653338ef9e90b347fae
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/ProductList/ProductItem.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Weee\Test\Block\Product\ProductList;
+
+use Magento\Weee\Test\Block\Product\Price;
+
+/**
+ * Product item block on frontend category view.
+ */
+class ProductItem extends \Magento\Catalog\Test\Block\Product\ProductList\ProductItem
+{
+    /**
+     * Return price block.
+     *
+     * @return Price
+     */
+    public function getPriceBlock()
+    {
+        return $this->blockFactory->create(
+            'Magento\Weee\Test\Block\Product\Price',
+            ['element' => $this->_rootElement->find($this->priceBox)]
+        );
+    }
+}
diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/View.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/View.php
index e2c66423d8e52bdc5bd5bf8a23cd378ef121699a..47c0372b2c85f91431d84aa71baca40f146fe3ca 100644
--- a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/View.php
+++ b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/View.php
@@ -6,31 +6,28 @@
 
 namespace Magento\Weee\Test\Block\Product;
 
-use Magento\Mtf\Client\Locator;
-
 /**
- * Product view block on the product page
+ * Product view block on the product page.
  */
-class View extends \Magento\Catalog\Test\Block\Product\View
+class View extends \Magento\Catalog\Test\Block\Category\View
 {
     /**
-     * Selector for fpt block
+     * Price block.
      *
      * @var string
      */
-    protected $fptBlock = '.price-box .weee [data-label="%s"]';
+    protected $priceBox = '.price-box';
 
     /**
-     * Get block fpt
+     * Return price block.
      *
-     * @param string $fptLabel
-     * @return \Magento\Weee\Test\Block\Product\Fpt
+     * @return Price
      */
-    public function getFptBlock($fptLabel)
+    public function getPriceBlock()
     {
         return $this->blockFactory->create(
-            'Magento\Weee\Test\Block\Product\Fpt',
-            ['element' => $this->_rootElement->find(sprintf($this->fptBlock, $fptLabel), Locator::SELECTOR_CSS)]
+            'Magento\Weee\Test\Block\Product\Price',
+            ['element' => $this->_rootElement->find($this->priceBox)]
         );
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Constraint/AssertFptApplied.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Constraint/AssertFptApplied.php
index 44d5c620b02d2873b9757f332defba7c2beeb0ce..6e58923b821a20c197462aff544cfff7706031be 100644
--- a/dev/tests/functional/tests/app/Magento/Weee/Test/Constraint/AssertFptApplied.php
+++ b/dev/tests/functional/tests/app/Magento/Weee/Test/Constraint/AssertFptApplied.php
@@ -12,6 +12,7 @@ use Magento\Catalog\Test\Page\Product\CatalogProductView;
 use Magento\Checkout\Test\Page\CheckoutCart;
 use Magento\Cms\Test\Page\CmsIndex;
 use Magento\Mtf\Constraint\AbstractConstraint;
+use Magento\Mtf\Fixture\FixtureInterface;
 
 /**
  * Checks that prices with fpt on category, product and cart pages are equal to specified in dataset.
@@ -109,13 +110,12 @@ class AssertFptApplied extends AbstractConstraint
     protected function getPrices(CatalogProductSimple $product)
     {
         $actualPrices = [];
-        $productName = $product->getName();
         // Get prices with fpt on category page
         $this->cmsIndex->open();
         $this->cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]);
-        $actualPrices = $this->getCategoryPrice($productName, $actualPrices);
+        $actualPrices = $this->getCategoryPrice($product, $actualPrices);
         // Get prices with fpt on product page
-        $this->catalogCategoryView->getListProductBlock()->openProductViewPage($productName);
+        $this->catalogCategoryView->getListProductBlock()->getProductItem($product)->open();
         $actualPrices = $this->addToCart($product, $actualPrices);
         // Get prices with fpt on cart page
         $actualPrices = $this->getCartPrice($product, $actualPrices);
@@ -126,18 +126,16 @@ class AssertFptApplied extends AbstractConstraint
     /**
      * Get prices on category page
      *
-     * @param string $productName
+     * @param FixtureInterface $product
      * @param array $actualPrices
      * @return array
      */
-    protected function getCategoryPrice($productName, $actualPrices)
+    protected function getCategoryPrice(FixtureInterface $product, $actualPrices)
     {
-        $productBlock = $this->catalogCategoryView->getListProductBlock();
-        $actualPrices['category_price'] = $productBlock->getProductPriceBlock($productName)->getEffectivePrice();
-        $productWeeeBlock = $this->catalogCategoryView->getWeeeListProductBlock();
-        $actualPrices['fpt_category'] = $productWeeeBlock->getProductFptBlock($productName, $this->fptLabel)->getFpt();
-        $actualPrices['fpt_total_category'] = $productWeeeBlock->getProductFptBlock($productName, $this->fptLabel)
-            ->getFptTotal();
+        $priceBlock = $this->catalogCategoryView->getWeeeListProductBlock()->getProductItem($product)->getPriceBlock();
+        $actualPrices['category_price'] = $priceBlock->getPrice();
+        $actualPrices['fpt_category'] = $priceBlock->getFptPrice();
+        $actualPrices['fpt_total_category'] = $priceBlock->getFinalPrice();
 
         return $actualPrices;
     }
@@ -152,14 +150,15 @@ class AssertFptApplied extends AbstractConstraint
     protected function addToCart(CatalogProductSimple $product, array $actualPrices)
     {
         $viewBlock = $this->catalogProductView->getViewBlock();
+        $priceBlock = $this->catalogProductView->getWeeeViewBlock()->getPriceBlock();
+
         $viewBlock->fillOptions($product);
-        $actualPrices['product_page_price'] = $viewBlock->getPriceBlock()->getEffectivePrice();
-        $viewWeeeBlock = $this->catalogProductView->getWeeeViewBlock();
-        $actualPrices['product_page_fpt'] = $viewWeeeBlock->getFptBlock($this->fptLabel)->getFpt();
-        $actualPrices['product_page_fpt_total'] = $viewWeeeBlock->getFptBlock($this->fptLabel)->getFptTotal();
+        $actualPrices['product_page_price'] = $priceBlock->getPrice();
+        $actualPrices['product_page_fpt'] = $priceBlock->getFptPrice();
+        $actualPrices['product_page_fpt_total'] = $priceBlock->getFinalPrice();
+
         $viewBlock->clickAddToCart();
         $this->catalogProductView->getMessagesBlock()->waitSuccessMessage();
-
         return $actualPrices;
     }
 
diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Weee/Test/Repository/ConfigData.xml
index fb895ffc6a543dc03d014f233c5de64de08ca7b0..754c0ceb95f0721ba00cd581a1f8be5e9a3a780c 100644
--- a/dev/tests/functional/tests/app/Magento/Weee/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/Weee/Test/Repository/ConfigData.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd">
-    <repository class="Magento\Core\Test\Repository\ConfigData">
+    <repository class="Magento\Config\Test\Repository\ConfigData">
         <dataset name="default_tax_configuration">
             <field path="tax/weee/enable" scope="tax" scope_id="1" label="No" xsi:type="string">0</field>
             <field path="tax/weee/display_list" scope="tax" scope_id="1" label="Including FPT and FPT description" xsi:type="string">1</field>
diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/TestCase/CreateTaxWithFptTest.php b/dev/tests/functional/tests/app/Magento/Weee/Test/TestCase/CreateTaxWithFptTest.php
index d0fa6ae59fe8059bf8d80a1a4ebe53ee1c09779c..8da91bdf5ddcdd4d98ea1c73fec73077c8773e98 100644
--- a/dev/tests/functional/tests/app/Magento/Weee/Test/TestCase/CreateTaxWithFptTest.php
+++ b/dev/tests/functional/tests/app/Magento/Weee/Test/TestCase/CreateTaxWithFptTest.php
@@ -14,8 +14,6 @@ use Magento\Mtf\ObjectManager;
 use Magento\Mtf\TestCase\Injectable;
 
 /**
- * Test Flow:
- *
  * Preconditions:
  * 1. Create customer
  * 2. Log in as default admin user.
@@ -119,7 +117,7 @@ class CreateTaxWithFptTest extends Injectable
         );
         $product->persist();
         $this->objectManager->create(
-            'Magento\Core\Test\TestStep\SetupConfigurationStep',
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
             ['configData' => $configData]
         )->run();
         $this->loginCustomer($customer);
@@ -135,7 +133,7 @@ class CreateTaxWithFptTest extends Injectable
     {
         $this->objectManager->create('\Magento\Tax\Test\TestStep\DeleteAllTaxRulesStep')->run();
         $this->objectManager->create(
-            'Magento\Core\Test\TestStep\SetupConfigurationStep',
+            'Magento\Config\Test\TestStep\SetupConfigurationStep',
             ['configData' => 'default_tax_configuration,shipping_tax_class_taxable_goods_rollback']
         )->run();
     }
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist.php
index 30e6dcd8dcca85ba922df43b610b552503fe2854..50a04377888b5e257ae4f99668e08a1eac7f54f4 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist.php
@@ -9,27 +9,26 @@ namespace Magento\Wishlist\Test\Block\Customer;
 use Magento\Mtf\Block\Block;
 
 /**
- * Class Wishlist
- * Wish list details block in "My Wish List" page
+ * Wish list details block in "My Wish List" page.
  */
 class Wishlist extends Block
 {
     /**
-     * "Share Wish List" button selector
+     * "Share Wish List" button selector.
      *
      * @var string
      */
     protected $shareWishList = '[name="save_and_share"]';
 
     /**
-     * Product items selector
+     * Product items selector.
      *
      * @var string
      */
     protected $productItems = '.product-items';
 
     /**
-     * Selector for 'Add to Cart' button
+     * Selector for 'Add to Cart' button.
      *
      * @var string
      */
@@ -43,29 +42,38 @@ class Wishlist extends Block
     protected $updateButton = '.action.update';
 
     /**
-     * Empty block css selector
+     * Empty block css selector.
      *
      * @var string
      */
     protected $empty = '.message.info.empty';
 
     /**
-     * Click button "Share Wish List"
+     * Wishlist form selector.
+     *
+     * @var string
+     */
+    protected $formSelector = '#wishlist-view-form';
+
+    /**
+     * Click button "Share Wish List".
      *
      * @return void
      */
     public function clickShareWishList()
     {
+        $this->waitFormToLoad();
         $this->_rootElement->find($this->shareWishList)->click();
     }
 
     /**
-     * Get items product block
+     * Get items product block.
      *
      * @return \Magento\Wishlist\Test\Block\Customer\Wishlist\Items
      */
     public function getProductItemsBlock()
     {
+        $this->waitFormToLoad();
         return $this->blockFactory->create(
             'Magento\Wishlist\Test\Block\Customer\Wishlist\Items',
             ['element' => $this->_rootElement->find($this->productItems)]
@@ -73,32 +81,52 @@ class Wishlist extends Block
     }
 
     /**
-     * Click button 'Add To Cart'
+     * Click button 'Add To Cart'.
      *
      * @return void
      */
     public function clickAddToCart()
     {
+        $this->waitFormToLoad();
         $this->_rootElement->find($this->addToCart)->click();
     }
 
     /**
-     * Click button 'Update Wish List'
+     * Click button 'Update Wish List'.
      *
      * @return void
      */
     public function clickUpdateWishlist()
     {
+        $this->waitFormToLoad();
         $this->_rootElement->find($this->updateButton)->click();
     }
 
     /**
-     * Check empty block visible
+     * Check empty block visible.
      *
      * @return bool
      */
     public function isEmptyBlockVisible()
     {
+        $this->waitFormToLoad();
         return $this->_rootElement->find($this->empty)->isVisible();
     }
+
+    /**
+     * Wait wishlist form to load via ajax.
+     *
+     * @return void
+     */
+    protected function waitFormToLoad()
+    {
+        $browser = $this->browser;
+        $selector = $this->formSelector;
+        $browser->waitUntil(
+            function () use ($browser, $selector) {
+                $element = $browser->find($selector);
+                return $element->isVisible() ? true : null;
+            }
+        );
+    }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items.php
index 153f40522c7601c316545fb72e8a62f3ca361612..2a9c8dcb62cdc4759ac58e6ec64e27d4d4c1f620 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items.php
@@ -12,27 +12,26 @@ use Magento\Mtf\Client\Locator;
 use Magento\Mtf\Fixture\FixtureInterface;
 
 /**
- * Class Items
- * Customer wishlist items block on frontend
+ * Customer wishlist items block on frontend.
  */
 class Items extends Block
 {
     /**
-     * Item product block
+     * Item product block.
      *
      * @var string
      */
     protected $itemBlock = '//li[.//a[contains(.,"%s")]]';
 
     /**
-     * Selector for 'Remove item' button
+     * Selector for 'Remove item' button.
      *
      * @var string
      */
     protected $remove = '[data-role="remove"]';
 
     /**
-     * Get item product block
+     * Get item product block.
      *
      * @param FixtureInterface $product
      * @return Product
@@ -45,16 +44,4 @@ class Items extends Block
             ['element' => $this->_rootElement->find($productBlock, Locator::SELECTOR_XPATH)]
         );
     }
-
-    /**
-     * Remove all products from wish list
-     *
-     * @return void
-     */
-    public function removeAllProducts()
-    {
-        while ($this->_rootElement->find($this->remove)->isVisible()) {
-            $this->_rootElement->find($this->remove)->click();
-        }
-    }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AbstractAssertWishlistProductDetails.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AbstractAssertWishlistProductDetails.php
index bb60457362c20cc97c78a5e1208e86e66b30319b..9119a7273c8c8640a6e64cc6e70cba2d2dbc61b5 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AbstractAssertWishlistProductDetails.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AbstractAssertWishlistProductDetails.php
@@ -29,7 +29,8 @@ abstract class AbstractAssertWishlistProductDetails extends AbstractAssertForm
         InjectableFixture $product,
         FixtureFactory $fixtureFactory
     ) {
-        $actualOptions = $wishlistIndex->getItemsBlock()->getItemProduct($product)->getOptions();
+        $productBlock = $wishlistIndex->getWishlistBlock()->getProductItemsBlock();
+        $actualOptions = $productBlock->getItemProduct($product)->getOptions();
         $cartFixture = $fixtureFactory->createByCode('cart', ['data' => ['items' => ['products' => [$product]]]]);
         $expectedOptions = $cartFixture->getItems()[0]->getData()['options'];
 
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductDetailsInWishlist.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductDetailsInWishlist.php
index 405852f2ee186bbbee71db6b088423988b582922..0748d08846e9c7729c6887129e42a2a97a628afb 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductDetailsInWishlist.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductDetailsInWishlist.php
@@ -8,7 +8,6 @@ namespace Magento\Wishlist\Test\Constraint;
 
 use Magento\Cms\Test\Page\CmsIndex;
 use Magento\Wishlist\Test\Page\WishlistIndex;
-use Magento\Mtf\Constraint\AbstractAssertForm;
 use Magento\Mtf\Fixture\FixtureFactory;
 use Magento\Mtf\Fixture\InjectableFixture;
 
@@ -33,7 +32,7 @@ class AssertProductDetailsInWishlist extends AbstractAssertWishlistProductDetail
         FixtureFactory $fixtureFactory
     ) {
         $cmsIndex->getLinksBlock()->openLink('My Wish List');
-        $this->assertProductDetails($wishlistIndex, $fixtureFactory, $product);
+        $this->assertProductDetails($wishlistIndex, $product, $fixtureFactory);
     }
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductIsPresentInWishlist.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductIsPresentInWishlist.php
index 70195720173bd537684ccff63046a84129d8ebe4..1b6b77bef669dd0296bdcd945cad5a63b1e0b044 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductIsPresentInWishlist.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductIsPresentInWishlist.php
@@ -13,13 +13,12 @@ use Magento\Mtf\Constraint\AbstractConstraint;
 use Magento\Mtf\Fixture\InjectableFixture;
 
 /**
- * Class AssertProductIsPresentInWishlist
- * Assert that product is present in default wishlist
+ * Assert that product is present in default wishlist.
  */
 class AssertProductIsPresentInWishlist extends AbstractConstraint
 {
     /**
-     * Assert that product is present in default wishlist
+     * Assert that product is present in default wishlist.
      *
      * @param CmsIndex $cmsIndex
      * @param CustomerAccountIndex $customerAccountIndex
@@ -37,13 +36,13 @@ class AssertProductIsPresentInWishlist extends AbstractConstraint
         $customerAccountIndex->getAccountMenuBlock()->openMenuItem('My Wish List');
 
         \PHPUnit_Framework_Assert::assertTrue(
-            $wishlistIndex->getItemsBlock()->getItemProduct($product)->isVisible(),
+            $wishlistIndex->getWishlistBlock()->getProductItemsBlock()->getItemProduct($product)->isVisible(),
             $product->getName() . ' is not visible on wishlist page.'
         );
     }
 
     /**
-     * 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/Wishlist/Test/Constraint/AssertProductsIsAbsentInWishlist.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductsIsAbsentInWishlist.php
index b3a9b29a58c68e6b829a41670d4d1a5b89308d58..caa27aff310a8854d696b7af5da1146fad85d57c 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductsIsAbsentInWishlist.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductsIsAbsentInWishlist.php
@@ -6,45 +6,36 @@
 
 namespace Magento\Wishlist\Test\Constraint;
 
-use Magento\Cms\Test\Page\CmsIndex;
 use Magento\Customer\Test\Fixture\Customer;
 use Magento\Customer\Test\Page\CustomerAccountIndex;
-use Magento\Customer\Test\Page\CustomerAccountLogin;
-use Magento\Customer\Test\Page\CustomerAccountLogout;
 use Magento\Wishlist\Test\Page\WishlistIndex;
 use Magento\Mtf\Constraint\AbstractConstraint;
 use Magento\Mtf\Fixture\InjectableFixture;
 
 /**
- * Class AssertProductsIsAbsentInWishlist
- * Assert products is absent in Wishlist on Frontend
+ * Assert products is absent in Wishlist on Frontend.
  */
 class AssertProductsIsAbsentInWishlist extends AbstractConstraint
 {
     /**
-     * Assert that product is not present in Wishlist on Frontend
+     * Assert that product is not present in Wishlist on Frontend.
      *
      * @param CustomerAccountIndex $customerAccountIndex
      * @param WishlistIndex $wishlistIndex
      * @param InjectableFixture[] $products
      * @param Customer $customer
-     * @param CmsIndex $cmsIndex
-     * @param CustomerAccountLogin $customerAccountLogin
-     * @param CustomerAccountLogout $customerAccountLogout
      * @return void
      */
     public function processAssert(
         CustomerAccountIndex $customerAccountIndex,
         WishlistIndex $wishlistIndex,
         $products,
-        Customer $customer,
-        CmsIndex $cmsIndex,
-        CustomerAccountLogin $customerAccountLogin,
-        CustomerAccountLogout $customerAccountLogout
+        Customer $customer
     ) {
-        $customerAccountLogout->open();
-        $cmsIndex->getLinksBlock()->openLink('Log In');
-        $customerAccountLogin->getLoginBlock()->login($customer);
+        $this->objectManager->create(
+            'Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep',
+            ['customer' => $customer]
+        )->run();
         $customerAccountIndex->open()->getAccountMenuBlock()->openMenuItem("My Wish List");
         $itemBlock = $wishlistIndex->getWishlistBlock()->getProductItemsBlock();
 
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertWishlistIsEmpty.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertWishlistIsEmpty.php
index 368a19a1270fd236422ea167083476875ce22ddb..dbaa793d77aee552e7b7ba3b0ccae015b3c1fa82 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertWishlistIsEmpty.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertWishlistIsEmpty.php
@@ -25,6 +25,7 @@ class AssertWishlistIsEmpty extends AbstractConstraint
      */
     public function processAssert(CmsIndex $cmsIndex, WishlistIndex $wishlistIndex)
     {
+        $cmsIndex->getCmsPageBlock()->waitPageInit();
         $cmsIndex->getLinksBlock()->openLink("My Wish List");
         \PHPUnit_Framework_Assert::assertTrue(
             $wishlistIndex->getWishlistBlock()->isEmptyBlockVisible(),
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Page/WishlistIndex.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Page/WishlistIndex.xml
index 3532f30dbd29355581bc42b56113b51eedcdbcfc..432768defdcd0476d9d5484e3db52b0b23a7310d 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Page/WishlistIndex.xml
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Page/WishlistIndex.xml
@@ -7,8 +7,7 @@
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd">
   <page name="WishlistIndex" mca="wishlist/index/index" module="Magento_Wishlist">
-    <block name="messagesBlock" class="Magento\Core\Test\Block\Messages" locator=".messages" strategy="css selector"/>
+    <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".messages" strategy="css selector"/>
     <block name="wishlistBlock" class="Magento\Wishlist\Test\Block\Customer\Wishlist" locator="#wishlist-view-form" strategy="css selector"/>
-    <block name="itemsBlock" class="Magento\Wishlist\Test\Block\Customer\Wishlist\Items" locator=".products-grid.wishlist" strategy="css selector"/>
   </page>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductToWishlistEntityTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductToWishlistEntityTest.php
index f64c8da3fa6d472013efd3c52dbc5cfc92edcd02..72e9ed8848e64bea6c6e7fcd3adbaf8f8d465140 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductToWishlistEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductToWishlistEntityTest.php
@@ -29,6 +29,7 @@ class AddProductToWishlistEntityTest extends AbstractWishlistTest
     /* tags */
     const MVP = 'no';
     const DOMAIN = 'CS';
+    const STABLE = 'no';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductToWishlistEntityTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductToWishlistEntityTest.xml
index f9e5c43acb695f35c3eca409b1d0c12b6b0bcf0d..7a8124b775f9ab3bc75758b5eae67d9170f9bd0b 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductToWishlistEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductToWishlistEntityTest.xml
@@ -6,48 +6,49 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Wishlist\Test\TestCase\AddProductToWishlistEntityTest">
-    <variation name="AddProductToWishlistEntityTestVariation1" firstConstraint="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" method="test">
-      <data name="product" xsi:type="string">catalogProductSimple::default</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" next="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" next="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" prev="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage"/>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" prev="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/>
-    </variation>
-    <variation name="AddProductToWishlistEntityTestVariation2" firstConstraint="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" method="test">
-      <data name="product" xsi:type="string">catalogProductVirtual::default</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" next="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" next="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" prev="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage"/>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" prev="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/>
-    </variation>
-    <variation name="AddProductToWishlistEntityTestVariation3" firstConstraint="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" method="test">
-      <data name="product" xsi:type="string">downloadableProduct::with_two_separately_links</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" next="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" next="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" prev="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage"/>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" prev="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/>
-    </variation>
-    <variation name="AddProductToWishlistEntityTestVariation4" firstConstraint="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" method="test">
-      <data name="product" xsi:type="string">groupedProduct::three_simple_products</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" next="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" next="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" prev="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage"/>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" prev="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/>
-    </variation>
-    <variation name="AddProductToWishlistEntityTestVariation5" firstConstraint="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" method="test">
-      <data name="product" xsi:type="string">configurableProduct::default</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" next="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" next="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" prev="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage"/>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" prev="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/>
-    </variation>
-    <variation name="AddProductToWishlistEntityTestVariation6" firstConstraint="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" method="test">
-      <data name="product" xsi:type="string">bundleProduct::bundle_dynamic_product</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" next="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist"/>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" next="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" prev="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage"/>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" prev="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist"/>
-    </variation>
-    <variation name="AddProductToWishlistEntityTestVariation7" firstConstraint="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" method="test">
-      <data name="product" xsi:type="string">bundleProduct::bundle_fixed_product</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" next="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist"/>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" next="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" prev="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage"/>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" prev="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Wishlist\Test\TestCase\AddProductToWishlistEntityTest">
+        <variation name="AddProductToWishlistEntityTestVariation1">
+            <data name="product" xsi:type="string">catalogProductSimple::default</data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" />
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" />
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" />
+        </variation>
+        <variation name="AddProductToWishlistEntityTestVariation2">
+            <data name="tag" xsi:type="string">to_maintain:yes</data>
+            <data name="product" xsi:type="string">catalogProductVirtual::default</data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" />
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" />
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" />
+        </variation>
+        <variation name="AddProductToWishlistEntityTestVariation3">
+            <data name="product" xsi:type="string">downloadableProduct::with_two_separately_links</data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" />
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" />
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" />
+        </variation>
+        <variation name="AddProductToWishlistEntityTestVariation4">
+            <data name="product" xsi:type="string">groupedProduct::three_simple_products</data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" />
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" />
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" />
+        </variation>
+        <variation name="AddProductToWishlistEntityTestVariation5">
+            <data name="product" xsi:type="string">configurableProduct::default</data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" />
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" />
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" />
+        </variation>
+        <variation name="AddProductToWishlistEntityTestVariation6">
+            <data name="product" xsi:type="string">bundleProduct::bundle_dynamic_product</data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" />
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" />
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" />
+        </variation>
+        <variation name="AddProductToWishlistEntityTestVariation7">
+            <data name="product" xsi:type="string">bundleProduct::bundle_fixed_product</data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" />
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" />
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.php
index 5c1d7416344989bff1c60c8dfae26978a2df2b35..64ec7938f66cdaa860638795869c3e55997f3b49 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.php
@@ -68,13 +68,14 @@ class AddProductsToCartFromCustomerWishlistOnFrontendTest extends AbstractWishli
      */
     protected function addToCart(array $products, $qty)
     {
+        $productBlock = $this->wishlistIndex->getWishlistBlock()->getProductItemsBlock();
         foreach ($products as $product) {
             $this->cmsIndex->getLinksBlock()->openLink("My Wish List");
             if ($qty != '-') {
-                $this->wishlistIndex->getItemsBlock()->getItemProduct($product)->fillProduct(['qty' => $qty]);
+                $productBlock->getItemProduct($product)->fillProduct(['qty' => $qty]);
                 $this->wishlistIndex->getWishlistBlock()->clickUpdateWishlist();
             }
-            $this->wishlistIndex->getItemsBlock()->getItemProduct($product)->clickAddToCart();
+            $productBlock->getItemProduct($product)->clickAddToCart();
             if (!$this->wishlistIndex->getWishlistBlock()->isVisible()) {
                 $this->catalogProductView->getViewBlock()->addToCart($product);
                 $this->catalogProductView->getMessagesBlock()->waitSuccessMessage();
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnFrontendTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnFrontendTest.php
index 875f3afe95a7cf2ca58c996d1f0dee2e2c85215e..f5d83130ce39ad2b866645cd38602e95d81bcb33 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnFrontendTest.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnFrontendTest.php
@@ -30,6 +30,7 @@ class ConfigureProductInCustomerWishlistOnFrontendTest extends AbstractWishlistT
     /* tags */
     const MVP = 'no';
     const DOMAIN = 'CS';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
     /**
@@ -61,7 +62,7 @@ class ConfigureProductInCustomerWishlistOnFrontendTest extends AbstractWishlistT
 
         // Steps
         $this->cmsIndex->getLinksBlock()->openLink('My Wish List');
-        $this->wishlistIndex->getItemsBlock()->getItemProduct($product)->clickEdit();
+        $this->wishlistIndex->getWishlistBlock()->getProductItemsBlock()->getItemProduct($product)->clickEdit();
         $this->catalogProductView->getViewBlock()->addToWishlist($product);
 
         return ['product' => $product];
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnFrontendTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnFrontendTest.xml
index c1ff8db58e314ce323563668344faa431e61e46e..4df49a5a0d7a296150b70ffbd12a0d60ddeeb5b5 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnFrontendTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnFrontendTest.xml
@@ -18,18 +18,17 @@
             <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" />
         </variation>
         <variation name="ConfigureProductInCustomerWishlistOnFrontendTestVariation3">
-            <data name="issue" xsi:type="string">Bug: MAGETWO-33952</data>
             <data name="product" xsi:type="string">bundleProduct::bundle_dynamic_product</data>
             <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" />
             <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" />
         </variation>
         <variation name="ConfigureProductInCustomerWishlistOnFrontendTestVariation4">
-            <data name="issue" xsi:type="string">Bug: MAGETWO-33952</data>
             <data name="product" xsi:type="string">downloadableProduct::with_two_separately_links</data>
             <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" />
             <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" />
         </variation>
         <variation name="ConfigureProductInCustomerWishlistOnFrontendTestVariation5">
+            <data name="issue" xsi:type="string">Bug: MAGETWO-35273</data>
             <data name="product" xsi:type="string">groupedProduct::three_simple_products</data>
             <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" />
             <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" />
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductFromCustomerWishlistOnBackendTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductFromCustomerWishlistOnBackendTest.php
index d139eec4e67c07d79a47324e606d5116f4b4b11c..cd22f6cbc2e7fee7f2635a4699dcf9db3c9fc387 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductFromCustomerWishlistOnBackendTest.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductFromCustomerWishlistOnBackendTest.php
@@ -35,6 +35,7 @@ class DeleteProductFromCustomerWishlistOnBackendTest extends AbstractWishlistTes
     /* tags */
     const MVP = 'no';
     const DOMAIN = 'CS';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductFromCustomerWishlistOnBackendTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductFromCustomerWishlistOnBackendTest.xml
index 81f6d49ce0416ef49b61dc6a382486bcb6be8ddc..f36241e81ab403c9eb8e161826ca33c3f5f38eba 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductFromCustomerWishlistOnBackendTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductFromCustomerWishlistOnBackendTest.xml
@@ -6,14 +6,14 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Wishlist\Test\TestCase\DeleteProductFromCustomerWishlistOnBackendTest">
-    <variation name="DeleteProductFromCustomerWishlistOnBackendTestVariation1" firstConstraint="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" method="test">
-      <data name="product" xsi:type="string">configurableProduct::default</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist"/>
-    </variation>
-    <variation name="DeleteProductFromCustomerWishlistOnBackendTestVariation2" firstConstraint="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" method="test">
-      <data name="product" xsi:type="string">catalogProductSimple::simple_for_composite_products</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Wishlist\Test\TestCase\DeleteProductFromCustomerWishlistOnBackendTest">
+        <variation name="DeleteProductFromCustomerWishlistOnBackendTestVariation1">
+            <data name="product" xsi:type="string">configurableProduct::default</data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" />
+        </variation>
+        <variation name="DeleteProductFromCustomerWishlistOnBackendTestVariation2">
+            <data name="product" xsi:type="string">catalogProductSimple::simple_for_composite_products</data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.php
index db05a089905339e86d2eed6a3396c9af40c18eed..3f88def731167b66f5bd2f1fc95becf157d86fe0 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.php
@@ -9,18 +9,16 @@ namespace Magento\Wishlist\Test\TestCase;
 use Magento\Customer\Test\Fixture\Customer;
 
 /**
- * Test Flow:
- *
  * Preconditions:
- * 1. Customer registered
- * 2. Products are created
+ * 1. Customer registered.
+ * 2. Products are created.
  *
  * Steps:
- * 1. Login as customer
- * 2. Add products to Wishlist
- * 3. Navigate to My Account -> My Wishlist
- * 4. Click "Remove item"
- * 5. Perform all assertions
+ * 1. Login as customer.
+ * 2. Add products to Wishlist.
+ * 3. Navigate to My Account > My Wishlist.
+ * 4. Click "Remove item".
+ * 5. Perform all assertions.
  *
  * @group Wishlist_(CS)
  * @ZephyrId MAGETWO-28874
@@ -33,14 +31,14 @@ class DeleteProductsFromWishlistOnFrontendTest extends AbstractWishlistTest
     /* end tags */
 
     /**
-     * Delete products form default wish list
+     * Delete products form default wish list.
      *
      * @param Customer $customer
      * @param string $products
-     * @param string $removedProductsIndex [optional]
+     * @param array $removedProductsIndex
      * @return array
      */
-    public function test(Customer $customer, $products, $removedProductsIndex = null)
+    public function test(Customer $customer, $products, array $removedProductsIndex)
     {
         // Preconditions
         $customer->persist();
@@ -56,26 +54,20 @@ class DeleteProductsFromWishlistOnFrontendTest extends AbstractWishlistTest
     }
 
     /**
-     * Remove products from wish list
+     * Remove products from wish list.
      *
      * @param array $products
-     * @param string $removedProductsIndex
+     * @param array $removedProductsIndex
      * @return array
      */
-    protected function removeProducts(array $products, $removedProductsIndex)
+    protected function removeProducts(array $products, array $removedProductsIndex)
     {
+        $productBlock = $this->wishlistIndex->getWishlistBlock()->getProductItemsBlock();
         $removeProducts = [];
-        if ($removedProductsIndex) {
-            $removedProductsIndex = explode(',', $removedProductsIndex);
-            foreach ($removedProductsIndex as $index) {
-                $this->wishlistIndex->getItemsBlock()->getItemProduct($products[--$index])->remove();
-                $removeProducts[] = $products[$index];
-            }
-        } else {
-            $this->wishlistIndex->getItemsBlock()->removeAllProducts();
-            $removeProducts = $products;
+        foreach ($removedProductsIndex as $index) {
+            $productBlock->getItemProduct($products[--$index])->remove();
+            $removeProducts[] = $products[$index];
         }
-
         return $removeProducts;
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.xml
index 7f9708fd47d0af3ac31af8114a3963fb093ccbb0..c3db15162274b6350698044ddc849debb4fbfa6e 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.xml
@@ -6,45 +6,65 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Wishlist\Test\TestCase\DeleteProductsFromWishlistOnFrontendTest">
-    <variation name="DeleteProductsFromWishlistOnFrontendTestVariation1" firstConstraint="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" method="test">
-      <data name="products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
-      <data name="removedProductsIndex" xsi:type="string">1</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist"/>
-    </variation>
-    <variation name="DeleteProductsFromWishlistOnFrontendTestVariation2" firstConstraint="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" method="test">
-      <data name="products" xsi:type="string">catalogProductVirtual::product_50_dollar</data>
-      <data name="removedProductsIndex" xsi:type="string">1</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty"/>
-    </variation>
-    <variation name="DeleteProductsFromWishlistOnFrontendTestVariation3" firstConstraint="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" method="test">
-      <data name="products" xsi:type="string">catalogProductSimple::default,catalogProductVirtual::product_50_dollar,catalogProductSimple::default,catalogProductVirtual::product_50_dollar</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty"/>
-    </variation>
-    <variation name="DeleteProductsFromWishlistOnFrontendTestVariation4" firstConstraint="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" method="test">
-      <data name="products" xsi:type="string">bundleProduct::bundle_dynamic_product</data>
-      <data name="removedProductsIndex" xsi:type="string">1</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty"/>
-    </variation>
-    <variation name="DeleteProductsFromWishlistOnFrontendTestVariation5" firstConstraint="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" method="test">
-      <data name="products" xsi:type="string">bundleProduct::bundle_fixed_product</data>
-      <data name="removedProductsIndex" xsi:type="string">1</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty"/>
-    </variation>
-    <variation name="DeleteProductsFromWishlistOnFrontendTestVariation6" firstConstraint="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" method="test">
-      <data name="products" xsi:type="string">configurableProduct::default</data>
-      <data name="removedProductsIndex" xsi:type="string">1</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty"/>
-    </variation>
-    <variation name="DeleteProductsFromWishlistOnFrontendTestVariation7" firstConstraint="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" method="test">
-      <data name="products" xsi:type="string">downloadableProduct::with_two_separately_links</data>
-      <data name="removedProductsIndex" xsi:type="string">1</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty"/>
-    </variation>
-    <variation name="DeleteProductsFromWishlistOnFrontendTestVariation8" firstConstraint="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" method="test">
-      <data name="products" xsi:type="string">groupedProduct::three_simple_products</data>
-      <data name="removedProductsIndex" xsi:type="string">1</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Wishlist\Test\TestCase\DeleteProductsFromWishlistOnFrontendTest">
+        <variation name="DeleteProductsFromWishlistOnFrontendTestVariation1">
+            <data name="products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
+            <data name="removedProductsIndex" xsi:type="array">
+                <item name="0" xsi:type="string">1</item>
+            </data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" />
+        </variation>
+        <variation name="DeleteProductsFromWishlistOnFrontendTestVariation2">
+            <data name="products" xsi:type="string">catalogProductVirtual::product_50_dollar</data>
+            <data name="removedProductsIndex" xsi:type="array">
+                <item name="0" xsi:type="string">1</item>
+            </data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" />
+        </variation>
+        <variation name="DeleteProductsFromWishlistOnFrontendTestVariation3">
+            <data name="products" xsi:type="string">catalogProductSimple::default,catalogProductVirtual::product_50_dollar,catalogProductSimple::default,catalogProductVirtual::product_50_dollar</data>
+            <data name="removedProductsIndex" xsi:type="array">
+                <item name="0" xsi:type="string">1</item>
+                <item name="1" xsi:type="string">2</item>
+                <item name="2" xsi:type="string">3</item>
+                <item name="3" xsi:type="string">4</item>
+            </data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" />
+        </variation>
+        <variation name="DeleteProductsFromWishlistOnFrontendTestVariation4">
+            <data name="products" xsi:type="string">bundleProduct::bundle_dynamic_product</data>
+            <data name="removedProductsIndex" xsi:type="array">
+                <item name="0" xsi:type="string">1</item>
+            </data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" />
+        </variation>
+        <variation name="DeleteProductsFromWishlistOnFrontendTestVariation5">
+            <data name="products" xsi:type="string">bundleProduct::bundle_fixed_product</data>
+            <data name="removedProductsIndex" xsi:type="array">
+                <item name="0" xsi:type="string">1</item>
+            </data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" />
+        </variation>
+        <variation name="DeleteProductsFromWishlistOnFrontendTestVariation6">
+            <data name="products" xsi:type="string">configurableProduct::default</data>
+            <data name="removedProductsIndex" xsi:type="array">
+                <item name="0" xsi:type="string">1</item>
+            </data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" />
+        </variation>
+        <variation name="DeleteProductsFromWishlistOnFrontendTestVariation7">
+            <data name="products" xsi:type="string">downloadableProduct::with_two_separately_links</data>
+            <data name="removedProductsIndex" xsi:type="array">
+                <item name="0" xsi:type="string">1</item>
+            </data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" />
+        </variation>
+        <variation name="DeleteProductsFromWishlistOnFrontendTestVariation8">
+            <data name="products" xsi:type="string">groupedProduct::three_simple_products</data>
+            <data name="removedProductsIndex" xsi:type="array">
+                <item name="0" xsi:type="string">1</item>
+            </data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/MoveProductFromShoppingCartToWishlistTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/MoveProductFromShoppingCartToWishlistTest.php
index d325e868b4e703ba7bfb19e1e5816da24c5bdb07..2bbe614e06bae4d88630c8aebb1e96cd470c2085 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/MoveProductFromShoppingCartToWishlistTest.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/MoveProductFromShoppingCartToWishlistTest.php
@@ -29,6 +29,7 @@ class MoveProductFromShoppingCartToWishlistTest extends AbstractWishlistTest
     /* tags */
     const MVP = 'no';
     const DOMAIN = 'CS';
+    const STABLE = 'no';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ShareWishlistEntityTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ShareWishlistEntityTest.php
index 47ffc259d718d459b218cdd4e7ab3988dc24135b..cce7949f993f63e0312573a558e50510fee1fc84 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ShareWishlistEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ShareWishlistEntityTest.php
@@ -45,6 +45,7 @@ class ShareWishlistEntityTest extends Injectable
     /* tags */
     const MVP = 'no';
     const DOMAIN = 'CS';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ViewProductInCustomerWishlistOnBackendTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ViewProductInCustomerWishlistOnBackendTest.php
index 0c2913116d0e28b0488f56f3d20f113e4ec6308f..862a0fe4b34b92aaed8a8ec3976ae8ec13137657 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ViewProductInCustomerWishlistOnBackendTest.php
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ViewProductInCustomerWishlistOnBackendTest.php
@@ -33,6 +33,7 @@ class ViewProductInCustomerWishlistOnBackendTest extends AbstractWishlistTest
     /* tags */
     const MVP = 'no';
     const DOMAIN = 'CS';
+    const TO_MAINTAIN = 'yes';
     /* end tags */
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ViewProductInCustomerWishlistOnBackendTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ViewProductInCustomerWishlistOnBackendTest.xml
index 1282b05826c506eb02f838064efd98658cebe579..dce22aaba1196bc1d33de68f6c5e9ff1af0a64c5 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ViewProductInCustomerWishlistOnBackendTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ViewProductInCustomerWishlistOnBackendTest.xml
@@ -6,28 +6,29 @@
  */
  -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
-  <testCase name="Magento\Wishlist\Test\TestCase\ViewProductInCustomerWishlistOnBackendTest">
-    <variation name="ViewProductInCustomerWishlistOnBackendTestVariation1" firstConstraint="Magento\Wishlist\Test\Constraint\AssertProductInCustomerWishlistOnBackendGrid" method="test">
-      <data name="product" xsi:type="string">catalogProductSimple::with_two_custom_option</data>
-      <constraint name="Magento\Wishlist\Test\Constraint\AssertProductInCustomerWishlistOnBackendGrid"/>
-    </variation>
-    <variation name="ViewProductInCustomerWishlistOnBackendTestVariation2" firstConstraint="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCustomerWishlistOnBackendGrid" method="test">
-      <data name="product" xsi:type="string">configurableProduct::default</data>
-      <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCustomerWishlistOnBackendGrid"/>
-    </variation>
-    <variation name="ViewProductInCustomerWishlistOnBackendTestVariation3" firstConstraint="Magento\Bundle\Test\Constraint\AssertBundleProductInCustomerWishlistOnBackendGrid" method="test">
-      <data name="issue" xsi:type="string">Bug: MAGETWO-33952</data>
-      <data name="product" xsi:type="string">bundleProduct::bundle_dynamic_product</data>
-      <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductInCustomerWishlistOnBackendGrid"/>
-    </variation>
-    <variation name="ViewProductInCustomerWishlistOnBackendTestVariation4" firstConstraint="Magento\Downloadable\Test\Constraint\AssertDownloadableProductInCustomerWishlistOnBackendGrid" method="test">
-      <data name="issue" xsi:type="string">Bug: MAGETWO-34633</data>
-      <data name="product" xsi:type="string">downloadableProduct::with_two_separately_links</data>
-      <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductInCustomerWishlistOnBackendGrid"/>
-    </variation>
-    <variation name="ViewProductInCustomerWishlistOnBackendTestVariation5" firstConstraint="Magento\GroupedProduct\Test\Constraint\AssertGroupedProductInCustomerWishlistOnBackendGrid" method="test">
-      <data name="product" xsi:type="string">groupedProduct::three_simple_products</data>
-      <constraint name="Magento\GroupedProduct\Test\Constraint\AssertGroupedProductInCustomerWishlistOnBackendGrid"/>
-    </variation>
-  </testCase>
+    <testCase name="Magento\Wishlist\Test\TestCase\ViewProductInCustomerWishlistOnBackendTest">
+        <variation name="ViewProductInCustomerWishlistOnBackendTestVariation1">
+            <data name="issue" xsi:type="string">Bug: MAGETWO-35274</data>
+            <data name="product" xsi:type="string">catalogProductSimple::with_two_custom_option</data>
+            <constraint name="Magento\Wishlist\Test\Constraint\AssertProductInCustomerWishlistOnBackendGrid" />
+        </variation>
+        <variation name="ViewProductInCustomerWishlistOnBackendTestVariation2">
+            <data name="product" xsi:type="string">configurableProduct::default</data>
+            <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCustomerWishlistOnBackendGrid" />
+        </variation>
+        <variation name="ViewProductInCustomerWishlistOnBackendTestVariation3">
+            <data name="product" xsi:type="string">bundleProduct::bundle_dynamic_product</data>
+            <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductInCustomerWishlistOnBackendGrid" />
+        </variation>
+        <variation name="ViewProductInCustomerWishlistOnBackendTestVariation4">
+            <data name="issue" xsi:type="string">Bug: MAGETWO-34633</data>
+            <data name="product" xsi:type="string">downloadableProduct::with_two_separately_links</data>
+            <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductInCustomerWishlistOnBackendGrid" />
+        </variation>
+        <variation name="ViewProductInCustomerWishlistOnBackendTestVariation5">
+            <data name="issue" xsi:type="string">Bug: MAGETWO-35273</data>
+            <data name="product" xsi:type="string">groupedProduct::three_simple_products</data>
+            <constraint name="Magento\GroupedProduct\Test\Constraint\AssertGroupedProductInCustomerWishlistOnBackendGrid" />
+        </variation>
+    </testCase>
 </config>
diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/domain_cs.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/domain_cs.xml
index 621c5d1e068d6973cc789079741265a1d1e734d0..e2868c61dd81e99a1fd5ab4a093197fa45795929 100644
--- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/domain_cs.xml
+++ b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/domain_cs.xml
@@ -11,5 +11,15 @@
         <allow>
             <tag group="domain" value="CS" />
         </allow>
+        <deny>
+            <tag group="stable" value="no" />
+            <tag group="to_maintain" value="yes" />
+        </deny>
+    </rule>
+    <rule scope="variation">
+        <deny>
+            <tag group="stable" value="no" />
+            <tag group="to_maintain" value="yes" />
+        </deny>
     </rule>
 </config>
diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/domain_mx.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/domain_mx.xml
index 12891acd39b81676cd6585614ba57dd8d1241364..a89cca04ba59d769c285d6f9c89e02362e57c770 100644
--- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/domain_mx.xml
+++ b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/domain_mx.xml
@@ -11,5 +11,15 @@
         <allow>
             <tag group="domain" value="MX" />
         </allow>
+        <deny>
+            <tag group="stable" value="no" />
+            <tag group="to_maintain" value="yes" />
+        </deny>
+    </rule>
+    <rule scope="variation">
+        <deny>
+            <tag group="stable" value="no" />
+            <tag group="to_maintain" value="yes" />
+        </deny>
     </rule>
 </config>
diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/domain_ps.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/domain_ps.xml
index fbbe25a921692250aa5df18ad2866ed1527115af..2a99294b46bad63b6b9d2a3388dd9ae2b19178b8 100644
--- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/domain_ps.xml
+++ b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/domain_ps.xml
@@ -11,5 +11,15 @@
         <allow>
             <tag group="domain" value="PS" />
         </allow>
+        <deny>
+            <tag group="stable" value="no" />
+            <tag group="to_maintain" value="yes" />
+        </deny>
+    </rule>
+    <rule scope="variation">
+        <deny>
+            <tag group="stable" value="no" />
+            <tag group="to_maintain" value="yes" />
+        </deny>
     </rule>
 </config>