diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/AdminNotification/LICENSE.txt b/app/code/Magento/AdminNotification/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/AdminNotification/LICENSE.txt
rename to app/code/Magento/AdminNotification/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/AdminNotification/LICENSE_AFL.txt b/app/code/Magento/AdminNotification/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/AdminNotification/LICENSE_AFL.txt
rename to app/code/Magento/AdminNotification/Test/Mftf/LICENSE_AFL.txt
diff --git a/app/code/Magento/AdminNotification/Test/Mftf/README.md b/app/code/Magento/AdminNotification/Test/Mftf/README.md
new file mode 100644
index 0000000000000..33f88ba74200a
--- /dev/null
+++ b/app/code/Magento/AdminNotification/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Admin Notification Functional Tests
+
+The Functional Test Module for **Magento Admin Notification** module.
diff --git a/app/code/Magento/AdminNotification/Test/Mftf/composer.json b/app/code/Magento/AdminNotification/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..6dcd053378c1b
--- /dev/null
+++ b/app/code/Magento/AdminNotification/Test/Mftf/composer.json
@@ -0,0 +1,20 @@
+{
+ "name": "magento/functional-test-module-admin-notification",
+ "description": "N/A",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "php": "~7.1.3||~7.2.0",
+ "magento/magento2-functional-testing-framework": "2.2.0",
+ "magento/functional-test-module-backend": "100.0.0-dev",
+ "magento/functional-test-module-media-storage": "100.0.0-dev",
+ "magento/functional-test-module-store": "100.0.0-dev",
+ "magento/functional-test-module-ui": "100.0.0-dev"
+ },
+ "type": "magento2-test",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ]
+}
diff --git a/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/CacheOutdatedTest.php b/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/CacheOutdatedTest.php
index 2fbfc43aa8775..f49911c3e7a93 100644
--- a/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/CacheOutdatedTest.php
+++ b/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/CacheOutdatedTest.php
@@ -62,6 +62,9 @@ public function testGetIdentity($expectedSum, $cacheTypes)
$this->assertEquals($expectedSum, $this->_messageModel->getIdentity());
}
+ /**
+ * @return array
+ */
public function getIdentityDataProvider()
{
$cacheTypeMock1 = $this->createPartialMock(\stdClass::class, ['getCacheType']);
@@ -95,6 +98,9 @@ public function testIsDisplayed($expected, $allowed, $cacheTypes)
$this->assertEquals($expected, $this->_messageModel->isDisplayed());
}
+ /**
+ * @return array
+ */
public function isDisplayedDataProvider()
{
$cacheTypesMock = $this->createPartialMock(\stdClass::class, ['getCacheType']);
diff --git a/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/Media/Synchronization/ErrorTest.php b/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/Media/Synchronization/ErrorTest.php
index 2c259db868851..b490efd8e9683 100644
--- a/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/Media/Synchronization/ErrorTest.php
+++ b/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/Media/Synchronization/ErrorTest.php
@@ -72,6 +72,9 @@ public function testIsDisplayed($expectedFirstRun, $data)
$this->assertEquals($expectedFirstRun, $model->isDisplayed());
}
+ /**
+ * @return array
+ */
public function isDisplayedDataProvider()
{
return [
diff --git a/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/SecurityTest.php b/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/SecurityTest.php
index 1e71570a5e30b..c6f61fee862ba 100644
--- a/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/SecurityTest.php
+++ b/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/SecurityTest.php
@@ -76,6 +76,9 @@ public function testIsDisplayed($expectedResult, $cached, $response)
$this->assertEquals($expectedResult, $this->_messageModel->isDisplayed());
}
+ /**
+ * @return array
+ */
public function isDisplayedDataProvider()
{
return [
diff --git a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml
index a97293547e132..d654504a41e5c 100644
--- a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml
+++ b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml
@@ -19,20 +19,12 @@
-
+
\ No newline at end of file
diff --git a/app/code/Magento/AdminNotification/view/adminhtml/web/js/system/messages/popup.js b/app/code/Magento/AdminNotification/view/adminhtml/web/js/system/messages/popup.js
new file mode 100644
index 0000000000000..f3f6a5fb1a123
--- /dev/null
+++ b/app/code/Magento/AdminNotification/view/adminhtml/web/js/system/messages/popup.js
@@ -0,0 +1,24 @@
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+*/
+
+define([
+ 'jquery',
+ 'Magento_Ui/js/modal/modal'
+], function ($) {
+ 'use strict';
+
+ return function (data, element) {
+ if (this.modal) {
+ this.modal.html($(element).html());
+ } else {
+ this.modal = $(element).modal({
+ modalClass: data.class,
+ type: 'popup',
+ buttons: []
+ });
+ }
+ this.modal.modal('openModal');
+ };
+});
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/AdvancedPricingImportExport/LICENSE.txt b/app/code/Magento/AdvancedPricingImportExport/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/AdvancedPricingImportExport/LICENSE.txt
rename to app/code/Magento/AdvancedPricingImportExport/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/AdvancedPricingImportExport/LICENSE_AFL.txt b/app/code/Magento/AdvancedPricingImportExport/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/AdvancedPricingImportExport/LICENSE_AFL.txt
rename to app/code/Magento/AdvancedPricingImportExport/Test/Mftf/LICENSE_AFL.txt
diff --git a/app/code/Magento/AdvancedPricingImportExport/Test/Mftf/README.md b/app/code/Magento/AdvancedPricingImportExport/Test/Mftf/README.md
new file mode 100644
index 0000000000000..7b4d0f3f0b12b
--- /dev/null
+++ b/app/code/Magento/AdvancedPricingImportExport/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Advanced Pricing Import Export Functional Tests
+
+The Functional Test Module for **Magento Advanced Pricing Import Export** module.
diff --git a/app/code/Magento/AdvancedPricingImportExport/Test/Mftf/composer.json b/app/code/Magento/AdvancedPricingImportExport/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..df2817ad6a52f
--- /dev/null
+++ b/app/code/Magento/AdvancedPricingImportExport/Test/Mftf/composer.json
@@ -0,0 +1,23 @@
+{
+ "name": "magento/functional-test-module-advanced-pricing-import-export",
+ "description": "N/A",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "php": "~7.1.3||~7.2.0",
+ "magento/magento2-functional-testing-framework": "2.2.0",
+ "magento/functional-test-module-catalog": "100.0.0-dev",
+ "magento/functional-test-module-catalog-import-export": "100.0.0-dev",
+ "magento/functional-test-module-catalog-inventory": "100.0.0-dev",
+ "magento/functional-test-module-customer": "100.0.0-dev",
+ "magento/functional-test-module-eav": "100.0.0-dev",
+ "magento/functional-test-module-import-export": "100.0.0-dev",
+ "magento/functional-test-module-store": "100.0.0-dev"
+ },
+ "type": "magento2-test",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ]
+}
diff --git a/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricing/Validator/TierPriceTest.php b/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricing/Validator/TierPriceTest.php
index bb64acb558320..7a81ccae6f0d0 100644
--- a/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricing/Validator/TierPriceTest.php
+++ b/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricing/Validator/TierPriceTest.php
@@ -181,6 +181,9 @@ public function testIsValidAddMessagesCall($value, $hasEmptyColumns, $customerGr
$this->tierPrice->isValid($value);
}
+ /**
+ * @return array
+ */
public function isValidResultFalseDataProvider()
{
return [
@@ -286,6 +289,9 @@ public function isValidResultFalseDataProvider()
];
}
+ /**
+ * @return array
+ */
public function isValidAddMessagesCallDataProvider()
{
return [
diff --git a/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricing/Validator/WebsiteTest.php b/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricing/Validator/WebsiteTest.php
index 9a380ff75da24..b46e286e75007 100644
--- a/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricing/Validator/WebsiteTest.php
+++ b/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricing/Validator/WebsiteTest.php
@@ -114,6 +114,9 @@ public function testGetAllWebsitesValue()
$this->assertEquals($expectedResult, $result);
}
+ /**
+ * @return array
+ */
public function isValidReturnDataProvider()
{
return [
diff --git a/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricing/ValidatorTest.php b/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricing/ValidatorTest.php
index d9fce98826105..5ca534284a48d 100644
--- a/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricing/ValidatorTest.php
+++ b/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricing/ValidatorTest.php
@@ -77,6 +77,9 @@ public function testInit()
$this->validator->init(null);
}
+ /**
+ * @return array
+ */
public function isValidDataProvider()
{
return [
diff --git a/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricingTest.php b/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricingTest.php
index 6d130d93ee6a5..08743b9fa7f2c 100644
--- a/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricingTest.php
+++ b/app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricingTest.php
@@ -768,6 +768,9 @@ public function testSaveProductPrices($priceData, $oldSkus, $priceIn, $callNum)
$this->invokeMethod($this->advancedPricing, 'saveProductPrices', [$priceData, 'table']);
}
+ /**
+ * @return array
+ */
public function saveProductPricesDataProvider()
{
return [
@@ -839,6 +842,9 @@ public function testDeleteProductTierPrices(
);
}
+ /**
+ * @return array
+ */
public function deleteProductTierPricesDataProvider()
{
return [
@@ -921,6 +927,9 @@ public function testProcessCountExistingPrices(
$this->invokeMethod($this->advancedPricing, 'processCountExistingPrices', [$prices, 'table']);
}
+ /**
+ * @return array
+ */
public function processCountExistingPricesDataProvider()
{
return [
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/AdvancedSearch/LICENSE.txt b/app/code/Magento/AdvancedSearch/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/AdvancedSearch/LICENSE.txt
rename to app/code/Magento/AdvancedSearch/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/AdvancedSearch/LICENSE_AFL.txt b/app/code/Magento/AdvancedSearch/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/AdvancedSearch/LICENSE_AFL.txt
rename to app/code/Magento/AdvancedSearch/Test/Mftf/LICENSE_AFL.txt
diff --git a/app/code/Magento/AdvancedSearch/Test/Mftf/README.md b/app/code/Magento/AdvancedSearch/Test/Mftf/README.md
new file mode 100644
index 0000000000000..8b4af0e626eb0
--- /dev/null
+++ b/app/code/Magento/AdvancedSearch/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Advanced Search Functional Tests
+
+The Functional Test Module for **Magento Advanced Search** module.
diff --git a/app/code/Magento/AdvancedSearch/Test/Mftf/composer.json b/app/code/Magento/AdvancedSearch/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..b5582c72a039a
--- /dev/null
+++ b/app/code/Magento/AdvancedSearch/Test/Mftf/composer.json
@@ -0,0 +1,22 @@
+{
+ "name": "magento/functional-test-module-advanced-search",
+ "description": "N/A",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "magento/magento2-functional-testing-framework": "2.2.0",
+ "magento/functional-test-module-backend": "100.0.0-dev",
+ "magento/functional-test-module-catalog": "100.0.0-dev",
+ "magento/functional-test-module-catalog-search": "100.0.0-dev",
+ "magento/functional-test-module-config": "100.0.0-dev",
+ "magento/functional-test-module-customer": "100.0.0-dev",
+ "magento/functional-test-module-search": "100.0.0-dev",
+ "magento/functional-test-module-store": "100.0.0-dev",
+ "php": "~7.1.3||~7.2.0"
+ },
+ "type": "magento2-test",
+ "license": [
+ "proprietary"
+ ]
+}
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Amqp/LICENSE.txt b/app/code/Magento/Amqp/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Amqp/LICENSE.txt
rename to app/code/Magento/Amqp/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Amqp/LICENSE_AFL.txt b/app/code/Magento/Amqp/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Amqp/LICENSE_AFL.txt
rename to app/code/Magento/Amqp/Test/Mftf/LICENSE_AFL.txt
diff --git a/app/code/Magento/Amqp/Test/Mftf/README.md b/app/code/Magento/Amqp/Test/Mftf/README.md
new file mode 100644
index 0000000000000..12d1bbc3a4890
--- /dev/null
+++ b/app/code/Magento/Amqp/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Amqp Functional Tests
+
+The Functional Test Module for **Magento Amqp** module.
diff --git a/app/code/Magento/Amqp/Test/Mftf/composer.json b/app/code/Magento/Amqp/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..348200c5d1cb4
--- /dev/null
+++ b/app/code/Magento/Amqp/Test/Mftf/composer.json
@@ -0,0 +1,17 @@
+{
+ "name": "magento/functional-test-module-amqp",
+ "description": "N/A",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "magento/magento2-functional-testing-framework": "2.2.0",
+ "magento/framework-amqp": "100.0.0-dev",
+ "magento/framework-message-queue": "100.0.0-dev",
+ "php": "~7.1.3||~7.2.0"
+ },
+ "type": "magento2-test",
+ "license": [
+ "proprietary"
+ ]
+}
diff --git a/app/code/Magento/Amqp/Test/Unit/Setup/ConfigOptionsListTest.php b/app/code/Magento/Amqp/Test/Unit/Setup/ConfigOptionsListTest.php
index 8db9ae73034a2..5b19ba055d059 100644
--- a/app/code/Magento/Amqp/Test/Unit/Setup/ConfigOptionsListTest.php
+++ b/app/code/Magento/Amqp/Test/Unit/Setup/ConfigOptionsListTest.php
@@ -163,6 +163,9 @@ public function testValidateNoOptions()
$this->assertEquals($expectedResult, $this->model->validate($options, $this->deploymentConfigMock));
}
+ /**
+ * @return array
+ */
public function getCreateConfigDataProvider()
{
return [
diff --git a/app/code/Magento/Analytics/Test/Mftf/Data/UserData.xml b/app/code/Magento/Analytics/Test/Mftf/Data/UserData.xml
new file mode 100644
index 0000000000000..8324ad5ba995a
--- /dev/null
+++ b/app/code/Magento/Analytics/Test/Mftf/Data/UserData.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ noreport
+ No
+ Report
+ noreport@example.com
+ 123123q
+ 123123q
+ en_US
+ true
+ 123123q
+
+
+ restrictedWebUser
+ restricted
+ webUser
+ restrictedWebUser@example.com
+ 123123q
+ 123123q
+ en_US
+ true
+ 123123q
+
+
diff --git a/app/code/Magento/Analytics/Test/Mftf/Data/UserRoleData.xml b/app/code/Magento/Analytics/Test/Mftf/Data/UserRoleData.xml
new file mode 100644
index 0000000000000..71d8bdcd5994b
--- /dev/null
+++ b/app/code/Magento/Analytics/Test/Mftf/Data/UserRoleData.xml
@@ -0,0 +1,171 @@
+
+
+
+
+
+ noreport
+ 123123q
+
+ - Magento_Backend::dashboard
+ - Magento_Sales::sales
+ - Magento_Sales::sales_operation
+ - Magento_Sales::sales_order
+ - Magento_Sales::actions
+ - Magento_Sales::create
+ - Magento_Sales::actions_view
+ - Magento_Sales::email
+ - Magento_Sales::reorder
+ - Magento_Sales::actions_edit
+ - Magento_Sales::cancel
+ - Magento_Sales::review_payment
+ - Magento_Sales::capture
+ - Magento_Sales::invoice
+ - Magento_Sales::creditmemo
+ - Magento_Sales::hold
+ - Magento_Sales::unhold
+ - Magento_Sales::ship
+ - Magento_Sales::comment
+ - Magento_Sales::emails
+ - Magento_Sales::sales_invoice
+ - Magento_Sales::shipment
+ - Magento_Sales::sales_creditmemo
+ - Magento_Paypal::billing_agreement
+ - Magento_Paypal::billing_agreement_actions
+ - Magento_Paypal::billing_agreement_actions_view
+ - Magento_Paypal::actions_manage
+ - Magento_Paypal::use
+ - Magento_Sales::transactions
+ - Magento_Sales::transactions_fetch
+ - Magento_Catalog::catalog
+ - Magento_Catalog::catalog_inventory
+ - Magento_Catalog::products
+ - Magento_Catalog::categories
+ - Magento_Customer::customer
+ - Magento_Customer::manage
+ - Magento_Customer::online
+ - Magento_Cart::cart
+ - Magento_Cart::manage
+ - Magento_Backend::myaccount
+ - Magento_Backend::marketing
+ - Magento_CatalogRule::promo
+ - Magento_CatalogRule::promo_catalog
+ - Magento_SalesRule::quote
+ - Magento_Backend::marketing_communications
+ - Magento_Email::template
+ - Magento_Newsletter::template
+ - Magento_Newsletter::queue
+ - Magento_Newsletter::subscriber
+ - Magento_Backend::marketing_seo
+ - Magento_Search::search
+ - Magento_Search::synonyms
+ - Magento_UrlRewrite::urlrewrite
+ - Magento_Sitemap::sitemap
+ - Magento_Backend::marketing_user_content
+ - Magento_Review::reviews_all
+ - Magento_Review::pending
+ - Magento_Backend::content
+ - Magento_Backend::content_elements
+ - Magento_Cms::page
+ - Magento_Cms::save
+ - Magento_Cms::page_delete
+ - Magento_Cms::block
+ - Magento_Widget::widget_instance
+ - Magento_Cms::media_gallery
+ - Magento_Backend::design
+ - Magento_Theme::theme
+ - Magento_Backend::schedule
+ - Magento_Backend::content_translation
+ - Magento_Backend::stores
+ - Magento_Backend::stores_settings
+ - Magento_Backend::store
+ - Magento_Config::config
+ - Magento_Payment::payment
+ - Magento_Cms::config_cms
+ - Magento_GoogleAnalytics::google
+ - Magento_Downloadable::downloadable
+ - Magento_Contact::contact
+ - Magento_CatalogInventory::cataloginventory
+ - Magento_Payment::payment_services
+ - Magento_Newsletter::newsletter
+ - Magento_Catalog::config_catalog
+ - Magento_CatalogSearch::config_catalog_search
+ - Magento_Shipping::config_shipping
+ - Magento_Shipping::shipping_policy
+ - Magento_Shipping::carriers
+ - Magento_Multishipping::config_multishipping
+ - Magento_Config::config_general
+ - Magento_Config::web
+ - Magento_Config::config_design
+ - Magento_Paypal::paypal
+ - Magento_Customer::config_customer
+ - Magento_Tax::config_tax
+ - Magento_Checkout::checkout
+ - Magento_Persistent::persistent
+ - Magento_Sales::config_sales
+ - Magento_Sales::sales_email
+ - Magento_Sales::sales_pdf
+ - Magento_Reports::reports
+ - Magento_Sitemap::config_sitemap
+ - Magento_Wishlist::config_wishlist
+ - Magento_Config::config_system
+ - Magento_SalesRule::config_promo
+ - Magento_Config::advanced
+ - Magento_Config::config_admin
+ - Magento_Config::trans_email
+ - Magento_Config::dev
+ - Magento_Config::currency
+ - Magento_Rss::rss
+ - Magento_Config::sendfriend
+ - Magento_NewRelicReporting::config_newrelicreporting
+ - Magento_CheckoutAgreements::checkoutagreement
+ - Magento_Sales::order_statuses
+ - Magento_Tax::manage_tax
+ - Magento_CurrencySymbol::system_currency
+ - Magento_CurrencySymbol::currency_rates
+ - Magento_CurrencySymbol::symbols
+ - Magento_Backend::stores_attributes
+ - Magento_Catalog::attributes_attributes
+ - Magento_Catalog::update_attributes
+ - Magento_Catalog::sets
+ - Magento_Review::ratings
+ - Magento_Swatches::iframe
+ - Magento_Backend::stores_other_settings
+ - Magento_Customer::group
+ - Magento_Backend::system
+ - Magento_Backend::convert
+ - Magento_ImportExport::import
+ - Magento_ImportExport::export
+ - Magento_TaxImportExport::import_export
+ - Magento_ImportExport::history
+ - Magento_Backend::extensions
+ - Magento_Backend::local
+ - Magento_Backend::custom
+ - Magento_Backend::tools
+ - Magento_Backend::cache
+ - Magento_Backend::setup_wizard
+ - Magento_Backup::backup
+ - Magento_Backup::rollback
+ - Magento_Indexer::index
+ - Magento_Indexer::changeMode
+ - Magento_User::acl
+ - Magento_User::acl_users
+ - Magento_User::locks
+ - Magento_User::acl_roles
+ - Magento_Backend::system_other_settings
+ - Magento_AdminNotification::adminnotification
+ - Magento_AdminNotification::show_toolbar
+ - Magento_AdminNotification::show_list
+ - Magento_AdminNotification::mark_as_read
+ - Magento_AdminNotification::adminnotification_remove
+ - Magento_Variable::variable
+ - Magento_EncryptionKey::crypt_key
+ - Magento_Backend::global_search
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/LICENSE.txt b/app/code/Magento/Analytics/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/LICENSE.txt
rename to app/code/Magento/Analytics/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/LICENSE_AFL.txt b/app/code/Magento/Analytics/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/LICENSE_AFL.txt
rename to app/code/Magento/Analytics/Test/Mftf/LICENSE_AFL.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Metadata/user-meta.xml b/app/code/Magento/Analytics/Test/Mftf/Metadata/user-meta.xml
similarity index 81%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Metadata/user-meta.xml
rename to app/code/Magento/Analytics/Test/Mftf/Metadata/user-meta.xml
index 7d62c37d914e5..06186d2d10402 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Metadata/user-meta.xml
+++ b/app/code/Magento/Analytics/Test/Mftf/Metadata/user-meta.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
application/x-www-form-urlencoded
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Metadata/user_role-meta.xml b/app/code/Magento/Analytics/Test/Mftf/Metadata/user_role-meta.xml
similarity index 77%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Metadata/user_role-meta.xml
rename to app/code/Magento/Analytics/Test/Mftf/Metadata/user_role-meta.xml
index 66c4ebab1aeed..f52468807928e 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Metadata/user_role-meta.xml
+++ b/app/code/Magento/Analytics/Test/Mftf/Metadata/user_role-meta.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
application/x-www-form-urlencoded
diff --git a/app/code/Magento/Analytics/Test/Mftf/README.md b/app/code/Magento/Analytics/Test/Mftf/README.md
new file mode 100644
index 0000000000000..cdeb48941e6a4
--- /dev/null
+++ b/app/code/Magento/Analytics/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Analytics Functional Tests
+
+The Functional Test Module for **Magento Analytics** module.
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationBlankIndustryTest.xml b/app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationBlankIndustryTest.xml
similarity index 89%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationBlankIndustryTest.xml
rename to app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationBlankIndustryTest.xml
index a266cdff269ab..8649eac484d94 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationBlankIndustryTest.xml
+++ b/app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationBlankIndustryTest.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationEnableDisableAnalyticsTest.xml b/app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationEnableDisableAnalyticsTest.xml
similarity index 94%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationEnableDisableAnalyticsTest.xml
rename to app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationEnableDisableAnalyticsTest.xml
index 8e371d24cbe4a..8b0714cd2ef65 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationEnableDisableAnalyticsTest.xml
+++ b/app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationEnableDisableAnalyticsTest.xml
@@ -6,7 +6,7 @@
*/
-->
-
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationIndustryTest.xml b/app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationIndustryTest.xml
similarity index 89%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationIndustryTest.xml
rename to app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationIndustryTest.xml
index 7a5c67095a50c..6b38bccf33dd5 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationIndustryTest.xml
+++ b/app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationIndustryTest.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationPermissionTest.xml b/app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationPermissionTest.xml
similarity index 95%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationPermissionTest.xml
rename to app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationPermissionTest.xml
index b28f269f9b9a6..501dba3dba23b 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationPermissionTest.xml
+++ b/app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationPermissionTest.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationTimeToSendDataTest.xml b/app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationTimeToSendDataTest.xml
similarity index 90%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationTimeToSendDataTest.xml
rename to app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationTimeToSendDataTest.xml
index ad3593e1828eb..e4630c1d5b5a1 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Analytics/Test/AdminConfigurationTimeToSendDataTest.xml
+++ b/app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationTimeToSendDataTest.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
diff --git a/app/code/Magento/Analytics/Test/Mftf/composer.json b/app/code/Magento/Analytics/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..cc288fbbb130d
--- /dev/null
+++ b/app/code/Magento/Analytics/Test/Mftf/composer.json
@@ -0,0 +1,20 @@
+{
+ "name": "magento/functional-test-module-analytics",
+ "description": "N/A",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "php": "~7.1.3||~7.2.0",
+ "magento/functional-test-module-backend": "100.0.0-dev",
+ "magento/functional-test-module-config": "100.0.0-dev",
+ "magento/functional-test-module-integration": "100.0.0-dev",
+ "magento/functional-test-module-store": "100.0.0-dev",
+ "magento/magento2-functional-testing-framework": "2.2.0"
+ },
+ "type": "magento2-test",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ]
+}
diff --git a/app/code/Magento/Analytics/Test/Unit/Model/Connector/Http/JsonConverterTest.php b/app/code/Magento/Analytics/Test/Unit/Model/Connector/Http/JsonConverterTest.php
index 5ad8eebfc7ad3..251f0d1474083 100644
--- a/app/code/Magento/Analytics/Test/Unit/Model/Connector/Http/JsonConverterTest.php
+++ b/app/code/Magento/Analytics/Test/Unit/Model/Connector/Http/JsonConverterTest.php
@@ -55,6 +55,9 @@ public function testConvertBody($unserializedResult, $expected)
$this->assertEquals($expected, $this->converter->fromBody('body'));
}
+ /**
+ * @return array
+ */
public function convertBodyDataProvider()
{
return [
diff --git a/app/code/Magento/Analytics/Test/Unit/ReportXml/DB/ReportValidatorTest.php b/app/code/Magento/Analytics/Test/Unit/ReportXml/DB/ReportValidatorTest.php
index d7dcf50620550..ac141fae4be66 100644
--- a/app/code/Magento/Analytics/Test/Unit/ReportXml/DB/ReportValidatorTest.php
+++ b/app/code/Magento/Analytics/Test/Unit/ReportXml/DB/ReportValidatorTest.php
@@ -79,9 +79,9 @@ protected function setUp()
* @dataProvider errorDataProvider
* @param string $reportName
* @param array $result
- * @param \PHPUnit_Framework_MockObject_Stub $queryReturnStub
+ * @param \PHPUnit\Framework\MockObject\Stub $queryReturnStub
*/
- public function testValidate($reportName, $result, \PHPUnit_Framework_MockObject_Stub $queryReturnStub)
+ public function testValidate($reportName, $result, \PHPUnit\Framework\MockObject\Stub $queryReturnStub)
{
$connectionName = 'testConnection';
$this->queryFactoryMock->expects($this->once())
diff --git a/app/code/Magento/AsynchronousOperations/Api/BulkStatusInterface.php b/app/code/Magento/AsynchronousOperations/Api/BulkStatusInterface.php
index 88db2d6d80141..76410794900e2 100644
--- a/app/code/Magento/AsynchronousOperations/Api/BulkStatusInterface.php
+++ b/app/code/Magento/AsynchronousOperations/Api/BulkStatusInterface.php
@@ -9,7 +9,8 @@
namespace Magento\AsynchronousOperations\Api;
/**
- * Interface BulkStatusInterface
+ * Interface BulkStatusInterface.
+ *
* Bulk summary data with list of operations items short data.
*
* @api
diff --git a/app/code/Magento/AsynchronousOperations/Api/Data/DetailedBulkOperationsStatusInterface.php b/app/code/Magento/AsynchronousOperations/Api/Data/DetailedBulkOperationsStatusInterface.php
index 3edc5167e0935..6e39177630857 100644
--- a/app/code/Magento/AsynchronousOperations/Api/Data/DetailedBulkOperationsStatusInterface.php
+++ b/app/code/Magento/AsynchronousOperations/Api/Data/DetailedBulkOperationsStatusInterface.php
@@ -23,14 +23,14 @@ interface DetailedBulkOperationsStatusInterface extends BulkSummaryInterface
/**
* Retrieve operations list.
*
- * @return \Magento\AsynchronousOperations\Api\Data\DetailedOperationStatusInterface[]
+ * @return \Magento\AsynchronousOperations\Api\Data\OperationInterface[]
*/
public function getOperationsList();
/**
* Set operations list.
*
- * @param \Magento\AsynchronousOperations\Api\Data\DetailedOperationStatusInterface[] $operationStatusList
+ * @param \Magento\AsynchronousOperations\Api\Data\OperationInterface[] $operationStatusList
* @return $this
*/
public function setOperationsList($operationStatusList);
diff --git a/app/code/Magento/AsynchronousOperations/Api/Data/DetailedOperationStatusInterface.php b/app/code/Magento/AsynchronousOperations/Api/Data/DetailedOperationStatusInterface.php
deleted file mode 100644
index 217d4ad9279b6..0000000000000
--- a/app/code/Magento/AsynchronousOperations/Api/Data/DetailedOperationStatusInterface.php
+++ /dev/null
@@ -1,30 +0,0 @@
-entityManager = $entityManager;
@@ -65,7 +65,6 @@ public function changeOperationStatus(
$operationEntity->setResultMessage($message);
$operationEntity->setSerializedData($data);
$operationEntity->setResultSerializedData($resultData);
- $operationEntity->setResultSerializedData($resultData);
$this->entityManager->save($operationEntity);
} catch (\Exception $exception) {
$this->logger->critical($exception->getMessage());
diff --git a/app/code/Magento/AsynchronousOperations/Model/OperationRepository.php b/app/code/Magento/AsynchronousOperations/Model/OperationRepository.php
new file mode 100644
index 0000000000000..ec76ff6519757
--- /dev/null
+++ b/app/code/Magento/AsynchronousOperations/Model/OperationRepository.php
@@ -0,0 +1,108 @@
+entityManager = $entityManager;
+ $this->collectionFactory = $collectionFactory;
+ $this->searchResultFactory = $searchResultFactory;
+ $this->joinProcessor = $joinProcessor;
+ $this->operationExtensionFactory = $operationExtension;
+ $this->collectionProcessor = $collectionProcessor;
+ $this->logger = $logger;
+ $this->collectionProcessor = $collectionProcessor;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)
+ {
+ /** @var \Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterface $searchResult */
+ $searchResult = $this->searchResultFactory->create();
+
+ /** @var \Magento\AsynchronousOperations\Model\ResourceModel\Operation\Collection $collection */
+ $collection = $this->collectionFactory->create();
+ $this->joinProcessor->process($collection, \Magento\AsynchronousOperations\Api\Data\OperationInterface::class);
+ $this->collectionProcessor->process($searchCriteria, $collection);
+ $searchResult->setSearchCriteria($searchCriteria);
+ $searchResult->setTotalCount($collection->getSize());
+ $searchResult->setItems($collection->getItems());
+
+ return $searchResult;
+ }
+}
diff --git a/app/code/Magento/AsynchronousOperations/Test/Mftf/README.md b/app/code/Magento/AsynchronousOperations/Test/Mftf/README.md
new file mode 100644
index 0000000000000..2f73e44149f2c
--- /dev/null
+++ b/app/code/Magento/AsynchronousOperations/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Asynchronous Operations Functional Tests
+
+The Functional Test Module for **Magento Asynchronous Operations** module.
diff --git a/app/code/Magento/AsynchronousOperations/Test/Mftf/composer.json b/app/code/Magento/AsynchronousOperations/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..baadc0d0d914a
--- /dev/null
+++ b/app/code/Magento/AsynchronousOperations/Test/Mftf/composer.json
@@ -0,0 +1,24 @@
+{
+ "name": "magento/functional-test-module-asynchronous-operations",
+ "description": "N/A",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "magento/magento2-functional-testing-framework": "2.2.0",
+ "magento/framework-bulk": "100.0.0-dev",
+ "magento/functional-test-module-authorization": "100.0.0-dev",
+ "magento/functional-test-module-backend": "100.0.0-dev",
+ "magento/functional-test-module-ui": "100.0.0-dev",
+ "magento/functional-test-module-user": "100.0.0-dev",
+ "php": "~7.1.3||~7.2.0"
+ },
+ "suggest": {
+ "magento/functional-test-module-admin-notification": "100.0.0-dev",
+ "magento/functional-test-module-logging": "100.0.0-dev"
+ },
+ "type": "magento2-test",
+ "license": [
+ "proprietary"
+ ]
+}
diff --git a/app/code/Magento/AsynchronousOperations/Test/Unit/Model/BulkStatusTest.php b/app/code/Magento/AsynchronousOperations/Test/Unit/Model/BulkStatusTest.php
index 7a2f7941f9c04..a5a75736d2441 100644
--- a/app/code/Magento/AsynchronousOperations/Test/Unit/Model/BulkStatusTest.php
+++ b/app/code/Magento/AsynchronousOperations/Test/Unit/Model/BulkStatusTest.php
@@ -174,6 +174,9 @@ public function testGetOperationsCountByBulkIdAndStatus()
$this->assertEquals($size, $this->model->getOperationsCountByBulkIdAndStatus($bulkUuid, $status));
}
+ /**
+ * @return array
+ */
public function getFailedOperationsByBulkIdDataProvider()
{
return [
diff --git a/app/code/Magento/AsynchronousOperations/Test/Unit/Model/Entity/BulkSummaryMapperTest.php b/app/code/Magento/AsynchronousOperations/Test/Unit/Model/Entity/BulkSummaryMapperTest.php
index 725eae3c01ea3..9543911c037d8 100644
--- a/app/code/Magento/AsynchronousOperations/Test/Unit/Model/Entity/BulkSummaryMapperTest.php
+++ b/app/code/Magento/AsynchronousOperations/Test/Unit/Model/Entity/BulkSummaryMapperTest.php
@@ -95,6 +95,9 @@ public function testEntityToDatabase($identifier, $result)
$this->assertEquals($result, $this->model->entityToDatabase($entityType, $data));
}
+ /**
+ * @return array
+ */
public function entityToDatabaseDataProvider()
{
return [
diff --git a/app/code/Magento/AsynchronousOperations/Test/Unit/Model/OperationManagementTest.php b/app/code/Magento/AsynchronousOperations/Test/Unit/Model/OperationManagementTest.php
index 0a4e5f2f3ecc3..4c3e240da2a8a 100644
--- a/app/code/Magento/AsynchronousOperations/Test/Unit/Model/OperationManagementTest.php
+++ b/app/code/Magento/AsynchronousOperations/Test/Unit/Model/OperationManagementTest.php
@@ -40,11 +40,11 @@ protected function setUp()
$this->entityManagerMock = $this->createMock(\Magento\Framework\EntityManager\EntityManager::class);
$this->metadataPoolMock = $this->createMock(\Magento\Framework\EntityManager\MetadataPool::class);
$this->operationFactoryMock = $this->createPartialMock(
- \Magento\AsynchronousOperations\Api\Data\DetailedOperationStatusInterfaceFactory::class,
+ \Magento\AsynchronousOperations\Api\Data\OperationInterfaceFactory::class,
['create']
);
$this->operationMock =
- $this->createMock(\Magento\AsynchronousOperations\Api\Data\DetailedOperationStatusInterface::class);
+ $this->createMock(\Magento\AsynchronousOperations\Api\Data\OperationInterface::class);
$this->loggerMock = $this->createMock(\Psr\Log\LoggerInterface::class);
$this->model = new \Magento\AsynchronousOperations\Model\OperationManagement(
$this->entityManagerMock,
diff --git a/app/code/Magento/AsynchronousOperations/Test/Unit/Model/ResourceModel/System/Message/Collection/Synchronized/PluginTest.php b/app/code/Magento/AsynchronousOperations/Test/Unit/Model/ResourceModel/System/Message/Collection/Synchronized/PluginTest.php
index 68864d12e7672..6a51258b34afc 100644
--- a/app/code/Magento/AsynchronousOperations/Test/Unit/Model/ResourceModel/System/Message/Collection/Synchronized/PluginTest.php
+++ b/app/code/Magento/AsynchronousOperations/Test/Unit/Model/ResourceModel/System/Message/Collection/Synchronized/PluginTest.php
@@ -153,6 +153,9 @@ public function testAfterTo($operationDetails)
$this->assertEquals(2, $result2['totalRecords']);
}
+ /**
+ * @return array
+ */
public function afterToDataProvider()
{
return [
diff --git a/app/code/Magento/AsynchronousOperations/etc/di.xml b/app/code/Magento/AsynchronousOperations/etc/di.xml
index c8fee29cd6838..42b62ff8ea374 100644
--- a/app/code/Magento/AsynchronousOperations/etc/di.xml
+++ b/app/code/Magento/AsynchronousOperations/etc/di.xml
@@ -8,7 +8,6 @@
-
@@ -17,10 +16,12 @@
+
+
- -
+
-
- magento_operation
- id
diff --git a/app/code/Magento/AsynchronousOperations/etc/extension_attributes.xml b/app/code/Magento/AsynchronousOperations/etc/extension_attributes.xml
new file mode 100644
index 0000000000000..6eeda62373f06
--- /dev/null
+++ b/app/code/Magento/AsynchronousOperations/etc/extension_attributes.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+ start_time
+
+
+
+
diff --git a/app/code/Magento/AsynchronousOperations/etc/webapi.xml b/app/code/Magento/AsynchronousOperations/etc/webapi.xml
index 253dedd1c7a0c..4c10a5756c8d6 100644
--- a/app/code/Magento/AsynchronousOperations/etc/webapi.xml
+++ b/app/code/Magento/AsynchronousOperations/etc/webapi.xml
@@ -29,4 +29,11 @@
+
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Authorization/LICENSE.txt b/app/code/Magento/Authorization/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Authorization/LICENSE.txt
rename to app/code/Magento/Authorization/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Authorization/LICENSE_AFL.txt b/app/code/Magento/Authorization/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Authorization/LICENSE_AFL.txt
rename to app/code/Magento/Authorization/Test/Mftf/LICENSE_AFL.txt
diff --git a/app/code/Magento/Authorization/Test/Mftf/README.md b/app/code/Magento/Authorization/Test/Mftf/README.md
new file mode 100644
index 0000000000000..1d44ab2e73052
--- /dev/null
+++ b/app/code/Magento/Authorization/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Authorization Functional Tests
+
+The Functional Test Module for **Magento Authorization** module.
diff --git a/app/code/Magento/Authorization/Test/Mftf/composer.json b/app/code/Magento/Authorization/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..fddc5acb034ed
--- /dev/null
+++ b/app/code/Magento/Authorization/Test/Mftf/composer.json
@@ -0,0 +1,17 @@
+{
+ "name": "magento/functional-test-module-authorization",
+ "description": "Authorization module provides access to Magento ACL functionality.",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "php": "~7.1.3||~7.2.0",
+ "magento/magento2-functional-testing-framework": "2.2.0",
+ "magento/functional-test-module-backend": "100.0.0-dev"
+ },
+ "type": "magento2-test",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ]
+}
diff --git a/app/code/Magento/Authorization/Test/Unit/Model/Acl/AclRetrieverTest.php b/app/code/Magento/Authorization/Test/Unit/Model/Acl/AclRetrieverTest.php
index c214cfc832597..cd51c0f9bc4b8 100644
--- a/app/code/Magento/Authorization/Test/Unit/Model/Acl/AclRetrieverTest.php
+++ b/app/code/Magento/Authorization/Test/Unit/Model/Acl/AclRetrieverTest.php
@@ -78,6 +78,9 @@ public function testGetAllowedResourcesByUser()
);
}
+ /**
+ * @return AclRetriever
+ */
protected function createAclRetriever()
{
$this->roleMock = $this->createPartialMock(\Magento\Authorization\Model\Role::class, ['getId', '__wakeup']);
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Authorizenet/LICENSE.txt b/app/code/Magento/Authorizenet/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Authorizenet/LICENSE.txt
rename to app/code/Magento/Authorizenet/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Authorizenet/LICENSE_AFL.txt b/app/code/Magento/Authorizenet/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Authorizenet/LICENSE_AFL.txt
rename to app/code/Magento/Authorizenet/Test/Mftf/LICENSE_AFL.txt
diff --git a/app/code/Magento/Authorizenet/Test/Mftf/README.md b/app/code/Magento/Authorizenet/Test/Mftf/README.md
new file mode 100644
index 0000000000000..9391126a85c94
--- /dev/null
+++ b/app/code/Magento/Authorizenet/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Authorizenet Functional Tests
+
+The Functional Test Module for **Magento Authorizenet** module.
diff --git a/app/code/Magento/Authorizenet/Test/Mftf/composer.json b/app/code/Magento/Authorizenet/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..b02806a0ae3f3
--- /dev/null
+++ b/app/code/Magento/Authorizenet/Test/Mftf/composer.json
@@ -0,0 +1,25 @@
+{
+ "name": "magento/functional-test-module-authorizenet",
+ "description": "N/A",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "php": "~7.1.3||~7.2.0",
+ "magento/magento2-functional-testing-framework": "2.2.0",
+ "magento/functional-test-module-backend": "100.0.0-dev",
+ "magento/functional-test-module-catalog": "100.0.0-dev",
+ "magento/functional-test-module-checkout": "100.0.0-dev",
+ "magento/functional-test-module-payment": "100.0.0-dev",
+ "magento/functional-test-module-quote": "100.0.0-dev",
+ "magento/functional-test-module-sales": "100.0.0-dev",
+ "magento/functional-test-module-store": "100.0.0-dev"
+ },
+ "suggest": {
+ "magento/functional-test-module-config": "100.0.0-dev"
+ },
+ "type": "magento2-test",
+ "license": [
+ "proprietary"
+ ]
+}
diff --git a/app/code/Magento/Authorizenet/Test/Unit/Model/Directpost/ResponseTest.php b/app/code/Magento/Authorizenet/Test/Unit/Model/Directpost/ResponseTest.php
index 6e5d55e52675e..15c7eecb09a69 100644
--- a/app/code/Magento/Authorizenet/Test/Unit/Model/Directpost/ResponseTest.php
+++ b/app/code/Magento/Authorizenet/Test/Unit/Model/Directpost/ResponseTest.php
@@ -37,6 +37,9 @@ public function testGenerateHash($merchantMd5, $merchantApiLogin, $amount, $amou
);
}
+ /**
+ * @return array
+ */
public function generateHashDataProvider()
{
return [
@@ -57,6 +60,13 @@ public function generateHashDataProvider()
];
}
+ /**
+ * @param $merchantMd5
+ * @param $merchantApiLogin
+ * @param $amount
+ * @param $transactionId
+ * @return string
+ */
protected function generateHash($merchantMd5, $merchantApiLogin, $amount, $transactionId)
{
return strtoupper(md5($merchantMd5 . $merchantApiLogin . $transactionId . $amount));
diff --git a/app/code/Magento/Backend/Block/Widget/Tabs.php b/app/code/Magento/Backend/Block/Widget/Tabs.php
index 7f146e19e8c6e..333904e398cf5 100644
--- a/app/code/Magento/Backend/Block/Widget/Tabs.php
+++ b/app/code/Magento/Backend/Block/Widget/Tabs.php
@@ -117,6 +117,7 @@ public function addTab($tabId, $tab)
if (empty($tabId)) {
throw new \Exception(__('Please correct the tab configuration and try again. Tab Id should be not empty'));
}
+
if (is_array($tab)) {
$this->_tabs[$tabId] = new \Magento\Framework\DataObject($tab);
} elseif ($tab instanceof \Magento\Framework\DataObject) {
@@ -126,6 +127,7 @@ public function addTab($tabId, $tab)
}
} elseif (is_string($tab)) {
$this->_addTabByName($tab, $tabId);
+
if (!$this->_tabs[$tabId] instanceof TabInterface) {
unset($this->_tabs[$tabId]);
return $this;
@@ -133,6 +135,7 @@ public function addTab($tabId, $tab)
} else {
throw new \Exception(__('Please correct the tab configuration and try again.'));
}
+
if ($this->_tabs[$tabId]->getUrl() === null) {
$this->_tabs[$tabId]->setUrl('#');
}
@@ -143,10 +146,7 @@ public function addTab($tabId, $tab)
$this->_tabs[$tabId]->setId($tabId);
$this->_tabs[$tabId]->setTabId($tabId);
-
- if ($this->_activeTab === null) {
- $this->_activeTab = $tabId;
- }
+
if (true === $this->_tabs[$tabId]->getActive()) {
$this->setActiveTab($tabId);
}
@@ -235,33 +235,108 @@ protected function _setActiveTab($tabId)
*/
protected function _beforeToHtml()
{
+ $this->_tabs = $this->reorderTabs();
+
if ($activeTab = $this->getRequest()->getParam('active_tab')) {
$this->setActiveTab($activeTab);
} elseif ($activeTabId = $this->_authSession->getActiveTabId()) {
$this->_setActiveTab($activeTabId);
}
- $_new = [];
+ if ($this->_activeTab === null && !empty($this->_tabs)) {
+ /** @var TabInterface $tab */
+ $this->_activeTab = (reset($this->_tabs))->getId();
+ }
+
+ $this->assign('tabs', $this->_tabs);
+ return parent::_beforeToHtml();
+ }
+
+ /**
+ * Reorder the tabs.
+ *
+ * @return array
+ */
+ private function reorderTabs()
+ {
+ $orderByIdentity = [];
+ $orderByPosition = [];
+ $position = 100;
+
+ /**
+ * Set the initial positions for each tab.
+ *
+ * @var string $key
+ * @var TabInterface $tab
+ */
foreach ($this->_tabs as $key => $tab) {
- foreach ($this->_tabs as $k => $t) {
- if ($t->getAfter() == $key) {
- $_new[$key] = $tab;
- $_new[$k] = $t;
- } else {
- if (!$tab->getAfter() || !in_array($tab->getAfter(), array_keys($this->_tabs))) {
- $_new[$key] = $tab;
- }
- }
- }
+ $tab->setPosition($position);
+
+ $orderByIdentity[$key] = $tab;
+ $orderByPosition[$position] = $tab;
+
+ $position += 100;
}
- $this->_tabs = $_new;
- unset($_new);
+ return $this->applyTabsCorrectOrder($orderByPosition, $orderByIdentity);
+ }
- $this->assign('tabs', $this->_tabs);
- return parent::_beforeToHtml();
+ /**
+ * @param array $orderByPosition
+ * @param array $orderByIdentity
+ *
+ * @return array
+ */
+ private function applyTabsCorrectOrder(array $orderByPosition, array $orderByIdentity)
+ {
+ $positionFactor = 1;
+
+ /**
+ * Rearrange the positions by using the after tag for each tab.
+ *
+ * @var integer $position
+ * @var TabInterface $tab
+ */
+ foreach ($orderByPosition as $position => $tab) {
+ if (!$tab->getAfter() || !in_array($tab->getAfter(), array_keys($orderByIdentity))) {
+ $positionFactor = 1;
+ continue;
+ }
+
+ $grandPosition = $orderByIdentity[$tab->getAfter()]->getPosition();
+ $newPosition = $grandPosition + $positionFactor;
+
+ unset($orderByPosition[$position]);
+ $orderByPosition[$newPosition] = $tab;
+ $tab->setPosition($newPosition);
+
+ $positionFactor++;
+ }
+
+ return $this->finalTabsSortOrder($orderByPosition);
}
+ /**
+ * Apply the last sort order to tabs.
+ *
+ * @param array $orderByPosition
+ *
+ * @return array
+ */
+ private function finalTabsSortOrder(array $orderByPosition)
+ {
+ ksort($orderByPosition);
+
+ $ordered = [];
+
+ /** @var TabInterface $tab */
+ foreach ($orderByPosition as $tab) {
+ $ordered[$tab->getId()] = $tab;
+ }
+
+ return $ordered;
+ }
+
/**
* @return string
*/
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStorePost.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStorePost.php
index ac470238e588f..13b104c5ec4c0 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStorePost.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStorePost.php
@@ -37,8 +37,6 @@ public function execute()
try {
$model->delete();
- $this->_eventManager->dispatch('store_delete', ['store' => $model]);
-
$this->messageManager->addSuccess(__('You deleted the store view.'));
return $redirectResult->setPath('adminhtml/*/');
} catch (\Magento\Framework\Exception\LocalizedException $e) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Save.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Save.php
index 1d6862a6ff845..8ca783f887ec4 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Save.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Save.php
@@ -46,7 +46,6 @@ private function processWebsiteSave($postData)
*/
private function processStoreSave($postData)
{
- $eventName = 'store_edit';
/** @var \Magento\Store\Model\Store $storeModel */
$storeModel = $this->_objectManager->create(\Magento\Store\Model\Store::class);
$postData['store']['name'] = $this->filterManager->removeTags($postData['store']['name']);
@@ -56,7 +55,6 @@ private function processStoreSave($postData)
$storeModel->setData($postData['store']);
if ($postData['store']['store_id'] == '') {
$storeModel->setId(null);
- $eventName = 'store_add';
}
$groupModel = $this->_objectManager->create(
\Magento\Store\Model\Group::class
@@ -70,8 +68,6 @@ private function processStoreSave($postData)
);
}
$storeModel->save();
- $this->_objectManager->get(\Magento\Store\Model\StoreManager::class)->reinitStores();
- $this->_eventManager->dispatch($eventName, ['store' => $storeModel]);
$this->messageManager->addSuccess(__('You saved the store view.'));
return $postData;
@@ -102,7 +98,6 @@ private function processGroupSave($postData)
);
}
$groupModel->save();
- $this->_eventManager->dispatch('store_group_save', ['group' => $groupModel]);
$this->messageManager->addSuccess(__('You saved the store.'));
return $postData;
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/ActionGroup/LoginActionGroup.xml b/app/code/Magento/Backend/Test/Mftf/ActionGroup/LoginActionGroup.xml
similarity index 77%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/ActionGroup/LoginActionGroup.xml
rename to app/code/Magento/Backend/Test/Mftf/ActionGroup/LoginActionGroup.xml
index 4367214edbc1b..bcff329d79dad 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/ActionGroup/LoginActionGroup.xml
+++ b/app/code/Magento/Backend/Test/Mftf/ActionGroup/LoginActionGroup.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/ActionGroup/LoginAsAdminActionGroup.xml b/app/code/Magento/Backend/Test/Mftf/ActionGroup/LoginAsAdminActionGroup.xml
similarity index 81%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/ActionGroup/LoginAsAdminActionGroup.xml
rename to app/code/Magento/Backend/Test/Mftf/ActionGroup/LoginAsAdminActionGroup.xml
index 2f7ce506acb1d..8a24ab2a2f185 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/ActionGroup/LoginAsAdminActionGroup.xml
+++ b/app/code/Magento/Backend/Test/Mftf/ActionGroup/LoginAsAdminActionGroup.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/app/code/Magento/Backend/Test/Mftf/ActionGroup/LogoutActionGroup.xml b/app/code/Magento/Backend/Test/Mftf/ActionGroup/LogoutActionGroup.xml
new file mode 100644
index 0000000000000..cdaf231e9dda0
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Mftf/ActionGroup/LogoutActionGroup.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Backend/Test/Mftf/ActionGroup/SecondaryGridActionGroup.xml b/app/code/Magento/Backend/Test/Mftf/ActionGroup/SecondaryGridActionGroup.xml
new file mode 100644
index 0000000000000..9fe5f54f1db3c
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Mftf/ActionGroup/SecondaryGridActionGroup.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/ActionGroup/SortByIdDescendingActionGroup.xml b/app/code/Magento/Backend/Test/Mftf/ActionGroup/SortByIdDescendingActionGroup.xml
similarity index 86%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/ActionGroup/SortByIdDescendingActionGroup.xml
rename to app/code/Magento/Backend/Test/Mftf/ActionGroup/SortByIdDescendingActionGroup.xml
index 5c130df74b66c..b7b63c5d9a62e 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/ActionGroup/SortByIdDescendingActionGroup.xml
+++ b/app/code/Magento/Backend/Test/Mftf/ActionGroup/SortByIdDescendingActionGroup.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/app/code/Magento/Backend/Test/Mftf/Data/BackenedData.xml b/app/code/Magento/Backend/Test/Mftf/Data/BackenedData.xml
new file mode 100644
index 0000000000000..286685315a7bc
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Mftf/Data/BackenedData.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ data
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/LICENSE.txt b/app/code/Magento/Backend/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/LICENSE.txt
rename to app/code/Magento/Backend/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/LICENSE_AFL.txt b/app/code/Magento/Backend/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/LICENSE_AFL.txt
rename to app/code/Magento/Backend/Test/Mftf/LICENSE_AFL.txt
diff --git a/app/code/Magento/Backend/Test/Mftf/Page/AdminConfigurationStoresPage.xml b/app/code/Magento/Backend/Test/Mftf/Page/AdminConfigurationStoresPage.xml
new file mode 100644
index 0000000000000..a53938d534644
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Mftf/Page/AdminConfigurationStoresPage.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Backend/Test/Mftf/Page/AdminLoginPage.xml b/app/code/Magento/Backend/Test/Mftf/Page/AdminLoginPage.xml
new file mode 100644
index 0000000000000..ca0797f7ded26
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Mftf/Page/AdminLoginPage.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Backend/Test/Mftf/Page/AdminLogoutPage.xml b/app/code/Magento/Backend/Test/Mftf/Page/AdminLogoutPage.xml
new file mode 100644
index 0000000000000..75ef114ec64b6
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Mftf/Page/AdminLogoutPage.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/app/code/Magento/Backend/Test/Mftf/README.md b/app/code/Magento/Backend/Test/Mftf/README.md
new file mode 100644
index 0000000000000..ed8a3a3bc2c49
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Backend Functional Tests
+
+The Functional Test Module for **Magento Backend** module.
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/Section/AdminConfirmationModalSection.xml b/app/code/Magento/Backend/Test/Mftf/Section/AdminConfirmationModalSection.xml
similarity index 77%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/Section/AdminConfirmationModalSection.xml
rename to app/code/Magento/Backend/Test/Mftf/Section/AdminConfirmationModalSection.xml
index f7b2f246b55be..dc512e66528ac 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/Section/AdminConfirmationModalSection.xml
+++ b/app/code/Magento/Backend/Test/Mftf/Section/AdminConfirmationModalSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/app/code/Magento/Backend/Test/Mftf/Section/AdminGridTableSection.xml b/app/code/Magento/Backend/Test/Mftf/Section/AdminGridTableSection.xml
new file mode 100644
index 0000000000000..3e8f8a8f2e412
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Mftf/Section/AdminGridTableSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/app/code/Magento/Backend/Test/Mftf/Section/AdminHeaderSection.xml b/app/code/Magento/Backend/Test/Mftf/Section/AdminHeaderSection.xml
new file mode 100644
index 0000000000000..92b06878ab87f
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Mftf/Section/AdminHeaderSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/app/code/Magento/Backend/Test/Mftf/Section/AdminLoginFormSection.xml b/app/code/Magento/Backend/Test/Mftf/Section/AdminLoginFormSection.xml
new file mode 100644
index 0000000000000..b65a969e334c4
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Mftf/Section/AdminLoginFormSection.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
diff --git a/app/code/Magento/Backend/Test/Mftf/Section/AdminMainActionsSection.xml b/app/code/Magento/Backend/Test/Mftf/Section/AdminMainActionsSection.xml
new file mode 100644
index 0000000000000..f8d259cc8e490
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Mftf/Section/AdminMainActionsSection.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
diff --git a/app/code/Magento/Backend/Test/Mftf/Section/AdminMessagesSection.xml b/app/code/Magento/Backend/Test/Mftf/Section/AdminMessagesSection.xml
new file mode 100644
index 0000000000000..ac35f3f8f6b1f
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Mftf/Section/AdminMessagesSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/app/code/Magento/Backend/Test/Mftf/Section/AdminSecondaryGridSection.xml b/app/code/Magento/Backend/Test/Mftf/Section/AdminSecondaryGridSection.xml
new file mode 100644
index 0000000000000..724bf472de0f5
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Mftf/Section/AdminSecondaryGridSection.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/Test/AdminLoginTest.xml b/app/code/Magento/Backend/Test/Mftf/Test/AdminLoginTest.xml
similarity index 87%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/Test/AdminLoginTest.xml
rename to app/code/Magento/Backend/Test/Mftf/Test/AdminLoginTest.xml
index 3d0f6d5dfcea9..99d0f6654738a 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backend/Test/AdminLoginTest.xml
+++ b/app/code/Magento/Backend/Test/Mftf/Test/AdminLoginTest.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
diff --git a/app/code/Magento/Backend/Test/Mftf/composer.json b/app/code/Magento/Backend/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..adc3900cfe054
--- /dev/null
+++ b/app/code/Magento/Backend/Test/Mftf/composer.json
@@ -0,0 +1,35 @@
+{
+ "name": "magento/functional-test-module-backend",
+ "description": "N/A",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "php": "~7.1.3||~7.2.0",
+ "magento/magento2-functional-testing-framework": "2.2.0",
+ "magento/functional-test-module-backup": "100.0.0-dev",
+ "magento/functional-test-module-catalog": "100.0.0-dev",
+ "magento/functional-test-module-config": "100.0.0-dev",
+ "magento/functional-test-module-customer": "100.0.0-dev",
+ "magento/functional-test-module-developer": "100.0.0-dev",
+ "magento/functional-test-module-directory": "100.0.0-dev",
+ "magento/functional-test-module-eav": "100.0.0-dev",
+ "magento/functional-test-module-quote": "100.0.0-dev",
+ "magento/functional-test-module-reports": "100.0.0-dev",
+ "magento/functional-test-module-require-js": "100.0.0-dev",
+ "magento/functional-test-module-sales": "100.0.0-dev",
+ "magento/functional-test-module-security": "100.0.0-dev",
+ "magento/functional-test-module-store": "100.0.0-dev",
+ "magento/functional-test-module-translation": "100.0.0-dev",
+ "magento/functional-test-module-ui": "100.0.0-dev",
+ "magento/functional-test-module-user": "100.0.0-dev"
+ },
+ "suggest": {
+ "magento/functional-test-module-theme": "100.0.0-dev"
+ },
+ "type": "magento2-test",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ]
+}
diff --git a/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/AuthenticationTest.php b/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/AuthenticationTest.php
index 7e4c426de9452..88b994a6b93b7 100644
--- a/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/AuthenticationTest.php
+++ b/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/AuthenticationTest.php
@@ -146,6 +146,9 @@ public function testProcessNotLoggedInUser($isIFrameParam, $isAjaxParam, $isForw
$this->assertEquals($expectedResult, $this->plugin->aroundDispatch($subject, $proceed, $request));
}
+ /**
+ * @return array
+ */
public function processNotLoggedInUserDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/MassactionKeyTest.php b/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/MassactionKeyTest.php
index 2f808eaf2d1b8..d793a80cdeacf 100644
--- a/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/MassactionKeyTest.php
+++ b/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/MassactionKeyTest.php
@@ -74,6 +74,9 @@ public function testBeforeDispatchWhenMassactionPrepareKeyRequestExists($postDat
$this->plugin->beforeDispatch($this->subjectMock, $this->requestMock);
}
+ /**
+ * @return array
+ */
public function beforeDispatchDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/App/Action/Stub/ActionStub.php b/app/code/Magento/Backend/Test/Unit/App/Action/Stub/ActionStub.php
index 4eff6218961af..2d60bef3f3e8c 100644
--- a/app/code/Magento/Backend/Test/Unit/App/Action/Stub/ActionStub.php
+++ b/app/code/Magento/Backend/Test/Unit/App/Action/Stub/ActionStub.php
@@ -8,6 +8,9 @@
class ActionStub extends \Magento\Backend\App\Action
{
+ /**
+ * @return \Magento\Framework\App\ResponseInterface|\Magento\Framework\Controller\ResultInterface|void
+ */
public function execute()
{
// Empty method stub for test
diff --git a/app/code/Magento/Backend/Test/Unit/App/Area/FrontNameResolverTest.php b/app/code/Magento/Backend/Test/Unit/App/Area/FrontNameResolverTest.php
index bc7dce6f20bac..642c6283decae 100644
--- a/app/code/Magento/Backend/Test/Unit/App/Area/FrontNameResolverTest.php
+++ b/app/code/Magento/Backend/Test/Unit/App/Area/FrontNameResolverTest.php
@@ -118,6 +118,9 @@ public function testIsHostBackend($url, $host, $useCustomAdminUrl, $customAdminU
$this->assertEquals($this->model->isHostBackend(), $expectedValue);
}
+ /**
+ * @return array
+ */
public function hostsDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/App/ConfigTest.php b/app/code/Magento/Backend/Test/Unit/App/ConfigTest.php
index 114c57867badf..53640a81e722f 100644
--- a/app/code/Magento/Backend/Test/Unit/App/ConfigTest.php
+++ b/app/code/Magento/Backend/Test/Unit/App/ConfigTest.php
@@ -70,6 +70,9 @@ public function testIsSetFlag($configPath, $configValue, $expectedResult)
$this->assertEquals($expectedResult, $this->model->isSetFlag($configPath));
}
+ /**
+ * @return array
+ */
public function isSetFlagDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Block/AnchorRendererTest.php b/app/code/Magento/Backend/Test/Unit/Block/AnchorRendererTest.php
index f52f4ab337712..eccb08e788a95 100644
--- a/app/code/Magento/Backend/Test/Unit/Block/AnchorRendererTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Block/AnchorRendererTest.php
@@ -141,6 +141,9 @@ public function testRenderAnchorLevelIsNotOne($hasTarget)
);
}
+ /**
+ * @return array
+ */
public function targetDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Block/Cache/AdditionalTest.php b/app/code/Magento/Backend/Test/Unit/Block/Cache/AdditionalTest.php
index d68a1e4a920b2..915b3fe21eaa8 100644
--- a/app/code/Magento/Backend/Test/Unit/Block/Cache/AdditionalTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Block/Cache/AdditionalTest.php
@@ -88,6 +88,9 @@ public function testIsInProductionMode($mode, $expected)
$this->assertEquals($expected, $this->additionalBlock->isInProductionMode());
}
+ /**
+ * @return array
+ */
public function isInProductionModeDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Block/MenuItemCheckerTest.php b/app/code/Magento/Backend/Test/Unit/Block/MenuItemCheckerTest.php
index a79050faeb84a..aca719b2e65e9 100644
--- a/app/code/Magento/Backend/Test/Unit/Block/MenuItemCheckerTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Block/MenuItemCheckerTest.php
@@ -74,6 +74,9 @@ public function testIsItemActiveLevelNotZero()
);
}
+ /**
+ * @return array
+ */
public function dataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Block/Widget/ButtonTest.php b/app/code/Magento/Backend/Test/Unit/Block/Widget/ButtonTest.php
index bcf5d1adbc12b..e64d1a97af4ae 100644
--- a/app/code/Magento/Backend/Test/Unit/Block/Widget/ButtonTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Block/Widget/ButtonTest.php
@@ -61,6 +61,9 @@ public function testGetAttributesHtml($data, $expect)
$this->assertRegExp($expect, $attributes);
}
+ /**
+ * @return array
+ */
public function getAttributesHtmlDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/Column/Renderer/Radio/ExtendedTest.php b/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/Column/Renderer/Radio/ExtendedTest.php
index 35e21d7d194aa..81f104dbb636b 100644
--- a/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/Column/Renderer/Radio/ExtendedTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/Column/Renderer/Radio/ExtendedTest.php
@@ -54,6 +54,9 @@ public function testRender(array $rowData, $expectedResult)
$this->assertEquals($expectedResult, $this->_object->render(new \Magento\Framework\DataObject($rowData)));
}
+ /**
+ * @return array
+ */
public function renderDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/Column/Renderer/RadioTest.php b/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/Column/Renderer/RadioTest.php
index 67ead0ddd8f35..6f838634c6bed 100644
--- a/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/Column/Renderer/RadioTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/Column/Renderer/RadioTest.php
@@ -63,6 +63,9 @@ public function testRender(array $rowData, $expectedResult)
$this->assertEquals($expectedResult, $this->_object->render(new \Magento\Framework\DataObject($rowData)));
}
+ /**
+ * @return array
+ */
public function renderDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/ColumnTest.php b/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/ColumnTest.php
index c5c56fd75fbe7..2e6bed4783e7f 100644
--- a/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/ColumnTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/ColumnTest.php
@@ -86,6 +86,9 @@ public function testGetSortable($value)
$this->assertFalse($this->_block->getSortable());
}
+ /**
+ * @return array
+ */
public function getSortableDataProvider()
{
return ['zero' => ['0'], 'false' => [false], 'null' => [null]];
@@ -374,6 +377,9 @@ public function testColumnIsGrouped($groupedData, $expected)
$this->assertEquals($expected, $block->isGrouped());
}
+ /**
+ * @return array
+ */
public function columnGroupedDataProvider()
{
return [[[], false], [['grouped' => 0], false], [['grouped' => 1], true]];
diff --git a/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/Massaction/ExtendedTest.php b/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/Massaction/ExtendedTest.php
index 4525de1fee542..f81928c4540ba 100644
--- a/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/Massaction/ExtendedTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/Massaction/ExtendedTest.php
@@ -152,6 +152,9 @@ public function testGetGridIdsJsonWithUseSelectAll(array $items, $result)
$this->assertEquals($result, $this->_block->getGridIdsJson());
}
+ /**
+ * @return array
+ */
public function dataProviderGetGridIdsJsonWithUseSelectAll()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/MassactionTest.php b/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/MassactionTest.php
index 29ce448a04ecb..e8143b5f6b43a 100644
--- a/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/MassactionTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Block/Widget/Grid/MassactionTest.php
@@ -243,6 +243,9 @@ public function testSelected($param, $expectedJson, $expected)
$this->assertEquals($expected, $this->_block->getSelected());
}
+ /**
+ * @return array
+ */
public function selectedDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Block/Widget/TabTest.php b/app/code/Magento/Backend/Test/Unit/Block/Widget/TabTest.php
index 1670233324f8e..ad7c6fa99afd2 100644
--- a/app/code/Magento/Backend/Test/Unit/Block/Widget/TabTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Block/Widget/TabTest.php
@@ -34,6 +34,9 @@ public function testGetters($method, $field, $value, $expected)
$this->assertEquals($expected, $object->{$method}());
}
+ /**
+ * @return array
+ */
public function dataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Helper/DataTest.php b/app/code/Magento/Backend/Test/Unit/Helper/DataTest.php
index b7a33ab883b69..50c3a8571b48f 100644
--- a/app/code/Magento/Backend/Test/Unit/Helper/DataTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Helper/DataTest.php
@@ -60,6 +60,9 @@ public function testPrepareFilterStringValues(array $inputString, array $expecte
$this->assertEquals($expected, $actual);
}
+ /**
+ * @return array
+ */
public function getPrepareFilterStringValuesDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Model/Auth/SessionTest.php b/app/code/Magento/Backend/Test/Unit/Model/Auth/SessionTest.php
index 391deac5a1f4e..f1a4bc355b08e 100644
--- a/app/code/Magento/Backend/Test/Unit/Model/Auth/SessionTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Model/Auth/SessionTest.php
@@ -120,6 +120,9 @@ public function testRefreshAcl($isUserPassedViaParams)
$this->assertSame($aclMock, $this->session->getAcl());
}
+ /**
+ * @return array
+ */
public function refreshAclDataProvider()
{
return [
@@ -234,6 +237,9 @@ public function testIsAllowed($isUserDefined, $isAclDefined, $isAllowed, $expect
$this->assertEquals($expectedResult, $this->session->isAllowed('resource'));
}
+ /**
+ * @return array
+ */
public function isAllowedDataProvider()
{
return [
@@ -254,6 +260,9 @@ public function testFirstPageAfterLogin($isFirstPageAfterLogin)
$this->assertEquals($isFirstPageAfterLogin, $this->session->isFirstPageAfterLogin());
}
+ /**
+ * @return array
+ */
public function firstPageAfterLoginDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Model/Config/SessionLifetime/BackendModelTest.php b/app/code/Magento/Backend/Test/Unit/Model/Config/SessionLifetime/BackendModelTest.php
index a2e827c4a9938..cce83c33a2aaa 100755
--- a/app/code/Magento/Backend/Test/Unit/Model/Config/SessionLifetime/BackendModelTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Model/Config/SessionLifetime/BackendModelTest.php
@@ -29,6 +29,9 @@ public function testBeforeSave($value, $errorMessage = null)
$this->assertEquals($model, $object);
}
+ /**
+ * @return array
+ */
public function adminSessionLifetimeDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Model/Menu/ConfigTest.php b/app/code/Magento/Backend/Test/Unit/Model/Menu/ConfigTest.php
index bb1de1b10d5d4..260a38a481b3c 100644
--- a/app/code/Magento/Backend/Test/Unit/Model/Menu/ConfigTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Model/Menu/ConfigTest.php
@@ -140,6 +140,9 @@ public function testGetMenuExceptionLogged($expectedException)
$this->model->getMenu();
}
+ /**
+ * @return array
+ */
public function getMenuExceptionLoggedDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Model/Menu/Item/ValidatorTest.php b/app/code/Magento/Backend/Test/Unit/Model/Menu/Item/ValidatorTest.php
index 3c1f1e43900be..dec85f4b98e3d 100644
--- a/app/code/Magento/Backend/Test/Unit/Model/Menu/Item/ValidatorTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Model/Menu/Item/ValidatorTest.php
@@ -79,6 +79,9 @@ public function testValidateWithMissingRequiredParamThrowsException($requiredPar
}
}
+ /**
+ * @return array
+ */
public function requiredParamsProvider()
{
return [['id'], ['title'], ['resource']];
@@ -102,6 +105,9 @@ public function testValidateWithNonValidPrimitivesThrowsException($param, $inval
}
}
+ /**
+ * @return array
+ */
public function invalidParamsProvider()
{
return [
diff --git a/app/code/Magento/Backend/Test/Unit/Model/MenuBuilderTest.php b/app/code/Magento/Backend/Test/Unit/Model/MenuBuilderTest.php
index 23d1ed5da1425..5d026a2b1fc32 100644
--- a/app/code/Magento/Backend/Test/Unit/Model/MenuBuilderTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Model/MenuBuilderTest.php
@@ -35,6 +35,9 @@ public function testAfterGetResult($isPub, $times)
);
}
+ /**
+ * @return array
+ */
public function afterGetResultDataProvider()
{
return [[true, 1], [false, 0],];
diff --git a/app/code/Magento/Backend/Test/Unit/Model/Session/AdminConfigTest.php b/app/code/Magento/Backend/Test/Unit/Model/Session/AdminConfigTest.php
index 49fcdf4fc8770..00ae8c2f44a69 100644
--- a/app/code/Magento/Backend/Test/Unit/Model/Session/AdminConfigTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Model/Session/AdminConfigTest.php
@@ -136,6 +136,9 @@ public function testSetSessionSettingsByConstructor($secureRequest)
$this->assertSame($secureRequest, $adminConfig->getCookieSecure());
}
+ /**
+ * @return array
+ */
public function requestSecureDataProvider()
{
return [[true], [false]];
diff --git a/app/code/Magento/Backend/Test/Unit/Model/Widget/Grid/ParserTest.php b/app/code/Magento/Backend/Test/Unit/Model/Widget/Grid/ParserTest.php
index 569c5ffc16c9c..98f1965477b2c 100644
--- a/app/code/Magento/Backend/Test/Unit/Model/Widget/Grid/ParserTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Model/Widget/Grid/ParserTest.php
@@ -58,6 +58,9 @@ public function testIsOperation($operation, $expected)
$this->assertEquals($expected, $this->_model->isOperation($operation));
}
+ /**
+ * @return array
+ */
public function isOperationDataProvider()
{
return [
diff --git a/app/code/Magento/Backend/etc/adminhtml/system.xml b/app/code/Magento/Backend/etc/adminhtml/system.xml
index 86a2f3b772d2a..be1b836d64802 100644
--- a/app/code/Magento/Backend/etc/adminhtml/system.xml
+++ b/app/code/Magento/Backend/etc/adminhtml/system.xml
@@ -432,7 +432,7 @@
Magento\Config\Model\Config\Source\Yesno
Magento\Config\Model\Config\Backend\Store
- Warning! When using Store Code in URLs, in some cases system may not work properly if URLs without Store Codes are specified in the third party services (e.g. PayPal etc.).]]>
+ Warning! When using Store Code in URLs, in some cases system may not work properly if URLs without Store Codes are specified in the third-party services (e.g. PayPal etc.).]]>
diff --git a/app/code/Magento/Backend/i18n/en_US.csv b/app/code/Magento/Backend/i18n/en_US.csv
index f9f44f547e25b..bfedd56b14313 100644
--- a/app/code/Magento/Backend/i18n/en_US.csv
+++ b/app/code/Magento/Backend/i18n/en_US.csv
@@ -405,9 +405,9 @@ Web,Web
"Url Options","Url Options"
"Add Store Code to Urls","Add Store Code to Urls"
"
- Warning! When using Store Code in URLs, in some cases system may not work properly if URLs without Store Codes are specified in the third party services (e.g. PayPal etc.).
+ Warning! When using Store Code in URLs, in some cases system may not work properly if URLs without Store Codes are specified in the third-party services (e.g. PayPal etc.).
","
- Warning! When using Store Code in URLs, in some cases system may not work properly if URLs without Store Codes are specified in the third party services (e.g. PayPal etc.).
+ Warning! When using Store Code in URLs, in some cases system may not work properly if URLs without Store Codes are specified in the third-party services (e.g. PayPal etc.).
"
"Auto-redirect to Base URL","Auto-redirect to Base URL"
"Search Engine Optimization","Search Engine Optimization"
@@ -447,7 +447,7 @@ Tags,Tags
"404 Error
Page not found.
","404 Error
Page not found.
"
"Community Edition","Community Edition"
"Default Theme","Default Theme"
-"If no value is specified, the system default is used. The system default may be modified by third party extensions.","If no value is specified, the system default is used. The system default may be modified by third party extensions."
+"If no value is specified, the system default is used. The system default may be modified by third-party extensions.","If no value is specified, the system default is used. The system default may be modified by third-party extensions."
"Applied Theme","Applied Theme"
"Design Rule","Design Rule"
"User Agent Rules","User Agent Rules"
diff --git a/app/code/Magento/Backend/view/adminhtml/ui_component/design_config_form.xml b/app/code/Magento/Backend/view/adminhtml/ui_component/design_config_form.xml
index 19a4ab1388006..46902363f1fd7 100644
--- a/app/code/Magento/Backend/view/adminhtml/ui_component/design_config_form.xml
+++ b/app/code/Magento/Backend/view/adminhtml/ui_component/design_config_form.xml
@@ -12,7 +12,7 @@
- If no value is specified, the system default is used. The system default may be modified by third party extensions.
+ If no value is specified, the system default is used. The system default may be modified by third-party extensions.
text
theme_theme_id
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backup/LICENSE.txt b/app/code/Magento/Backup/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backup/LICENSE.txt
rename to app/code/Magento/Backup/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backup/LICENSE_AFL.txt b/app/code/Magento/Backup/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Backup/LICENSE_AFL.txt
rename to app/code/Magento/Backup/Test/Mftf/LICENSE_AFL.txt
diff --git a/app/code/Magento/Backup/Test/Mftf/README.md b/app/code/Magento/Backup/Test/Mftf/README.md
new file mode 100644
index 0000000000000..6951acdf41400
--- /dev/null
+++ b/app/code/Magento/Backup/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Backup Functional Tests
+
+The Functional Test Module for **Magento Backup** module.
diff --git a/app/code/Magento/Backup/Test/Mftf/composer.json b/app/code/Magento/Backup/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..d7a6c804ab5b3
--- /dev/null
+++ b/app/code/Magento/Backup/Test/Mftf/composer.json
@@ -0,0 +1,19 @@
+{
+ "name": "magento/functional-test-module-backup",
+ "description": "N/A",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "php": "~7.1.3||~7.2.0",
+ "magento/magento2-functional-testing-framework": "2.2.0",
+ "magento/functional-test-module-backend": "100.0.0-dev",
+ "magento/functional-test-module-cron": "100.0.0-dev",
+ "magento/functional-test-module-store": "100.0.0-dev"
+ },
+ "type": "magento2-test",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ]
+}
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Braintree/Data/BraintreeData.xml b/app/code/Magento/Braintree/Test/Mftf/Data/BraintreeData.xml
similarity index 92%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Braintree/Data/BraintreeData.xml
rename to app/code/Magento/Braintree/Test/Mftf/Data/BraintreeData.xml
index d5904edd94e9a..6e669a1b8bf4b 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Braintree/Data/BraintreeData.xml
+++ b/app/code/Magento/Braintree/Test/Mftf/Data/BraintreeData.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd">
SampleTitle
SamplePaymentAction
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Braintree/LICENSE.txt b/app/code/Magento/Braintree/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Braintree/LICENSE.txt
rename to app/code/Magento/Braintree/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Braintree/LICENSE_AFL.txt b/app/code/Magento/Braintree/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Braintree/LICENSE_AFL.txt
rename to app/code/Magento/Braintree/Test/Mftf/LICENSE_AFL.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Braintree/Metadata/braintree_config-meta.xml b/app/code/Magento/Braintree/Test/Mftf/Metadata/braintree_config-meta.xml
similarity index 91%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Braintree/Metadata/braintree_config-meta.xml
rename to app/code/Magento/Braintree/Test/Mftf/Metadata/braintree_config-meta.xml
index dc3e8e6c5dac1..e4d02a58b5bf4 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Braintree/Metadata/braintree_config-meta.xml
+++ b/app/code/Magento/Braintree/Test/Mftf/Metadata/braintree_config-meta.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
-
+
Magento\Config\Block\System\Config\Form\Fieldset
@@ -125,7 +125,7 @@
payment/braintree/sort_order
-
+
Magento\Config\Block\System\Config\Form\Fieldset
@@ -146,7 +146,7 @@
payment/braintree/countrycreditcard
-
+
Magento\Config\Block\System\Config\Form\Fieldset
@@ -215,7 +215,7 @@
payment/braintree_paypal/skip_order_review
-
+
Magento\Config\Block\System\Config\Form\Fieldset
@@ -239,7 +239,7 @@
payment/braintree/verify_specific_countries
-
+
getProductId() == $optionProduct->getId()) {
- foreach ($options as &$option) {
- if ($option->getCode() == 'selection_qty_' . $selection->getSelectionId()) {
+ foreach ($options as $quoteItemOption) {
+ if ($quoteItemOption->getCode() == 'selection_qty_' . $selection->getSelectionId()) {
if ($optionUpdateFlag) {
- $option->setValue(intval($option->getValue()));
+ $quoteItemOption->setValue(intval($quoteItemOption->getValue()));
} else {
- $option->setValue($value);
+ $quoteItemOption->setValue($value);
}
}
}
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/ActionGroup/AdminBundleProductActionGroup.xml b/app/code/Magento/Bundle/Test/Mftf/ActionGroup/AdminBundleProductActionGroup.xml
similarity index 93%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/ActionGroup/AdminBundleProductActionGroup.xml
rename to app/code/Magento/Bundle/Test/Mftf/ActionGroup/AdminBundleProductActionGroup.xml
index 241bd19e1b607..a5e62fca9483c 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/ActionGroup/AdminBundleProductActionGroup.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/ActionGroup/AdminBundleProductActionGroup.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/app/code/Magento/Bundle/Test/Mftf/ActionGroup/AdminClearFiltersActionGroup.xml b/app/code/Magento/Bundle/Test/Mftf/ActionGroup/AdminClearFiltersActionGroup.xml
new file mode 100644
index 0000000000000..f3e5eff3834e3
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/ActionGroup/AdminClearFiltersActionGroup.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/ActionGroup/BundleProductFilterActionGroup.xml b/app/code/Magento/Bundle/Test/Mftf/ActionGroup/BundleProductFilterActionGroup.xml
new file mode 100644
index 0000000000000..8ab7af1d0318e
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/ActionGroup/BundleProductFilterActionGroup.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/ActionGroup/CreateBundleProductActionGroup.xml b/app/code/Magento/Bundle/Test/Mftf/ActionGroup/CreateBundleProductActionGroup.xml
similarity index 80%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/ActionGroup/CreateBundleProductActionGroup.xml
rename to app/code/Magento/Bundle/Test/Mftf/ActionGroup/CreateBundleProductActionGroup.xml
index 7d9ae2592a121..e104803fd405d 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/ActionGroup/CreateBundleProductActionGroup.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/ActionGroup/CreateBundleProductActionGroup.xml
@@ -7,8 +7,9 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/ActionGroup/EnableDisableProductActionGroup.xml b/app/code/Magento/Bundle/Test/Mftf/ActionGroup/EnableDisableProductActionGroup.xml
similarity index 77%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/ActionGroup/EnableDisableProductActionGroup.xml
rename to app/code/Magento/Bundle/Test/Mftf/ActionGroup/EnableDisableProductActionGroup.xml
index f6a739dd75059..2ae9748c773e8 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/ActionGroup/EnableDisableProductActionGroup.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/ActionGroup/EnableDisableProductActionGroup.xml
@@ -7,8 +7,9 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
+
@@ -20,18 +21,14 @@
-
-
-
-
-
+
-
\ No newline at end of file
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Data/BundleLinkData.xml b/app/code/Magento/Bundle/Test/Mftf/Data/BundleLinkData.xml
similarity index 76%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Data/BundleLinkData.xml
rename to app/code/Magento/Bundle/Test/Mftf/Data/BundleLinkData.xml
index 65add76a12af3..1cc0ce147ae0e 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Data/BundleLinkData.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/Data/BundleLinkData.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Data/BundleOptionData.xml b/app/code/Magento/Bundle/Test/Mftf/Data/BundleOptionData.xml
similarity index 76%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Data/BundleOptionData.xml
rename to app/code/Magento/Bundle/Test/Mftf/Data/BundleOptionData.xml
index 02f70ec15cab8..80d9307255e59 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Data/BundleOptionData.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/Data/BundleOptionData.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd">
bundle-option-dropdown
true
diff --git a/app/code/Magento/Bundle/Test/Mftf/Data/CustomAttributeData.xml b/app/code/Magento/Bundle/Test/Mftf/Data/CustomAttributeData.xml
new file mode 100644
index 0000000000000..65ac763460151
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Data/CustomAttributeData.xml
@@ -0,0 +1,22 @@
+
+
+
+
+ price_type
+ 0
+
+
+ price_type
+ 1
+
+
+ price_view
+ 1
+
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/Data/ProductData.xml b/app/code/Magento/Bundle/Test/Mftf/Data/ProductData.xml
new file mode 100644
index 0000000000000..41006ee9b4d09
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Data/ProductData.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+ BundleProduct
+ BundleProduct
+ BundleProduct2
+ bundleproduct
+ bundleproduct2
+ bundle
+ 4
+ BundleOption
+ checkbox
+ 10
+ 1
+ bundleproduct
+ bundleproduct2
+ 10
+ 20
+ 4
+ bundle
+ 10
+ $10.00
+ Default
+
+
+ Api Bundle Product
+ api-bundle-product
+ bundle
+ 4
+ 4
+ 1
+ api-bundle-product
+ EavStockItem
+ ApiProductDescription
+ ApiProductShortDescription
+ CustomAttributeDynamicPrice
+ CustomAttributePriceView
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/LICENSE.txt b/app/code/Magento/Bundle/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/LICENSE.txt
rename to app/code/Magento/Bundle/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/LICENSE_AFL.txt b/app/code/Magento/Bundle/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/LICENSE_AFL.txt
rename to app/code/Magento/Bundle/Test/Mftf/LICENSE_AFL.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Metadata/bundle_link-meta.xml b/app/code/Magento/Bundle/Test/Mftf/Metadata/bundle_link-meta.xml
similarity index 81%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Metadata/bundle_link-meta.xml
rename to app/code/Magento/Bundle/Test/Mftf/Metadata/bundle_link-meta.xml
index be881a7e98d65..435cf59c6cbfd 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Metadata/bundle_link-meta.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/Metadata/bundle_link-meta.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
application/json
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Metadata/bundle_option-meta.xml b/app/code/Magento/Bundle/Test/Mftf/Metadata/bundle_option-meta.xml
similarity index 78%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Metadata/bundle_option-meta.xml
rename to app/code/Magento/Bundle/Test/Mftf/Metadata/bundle_option-meta.xml
index 991c01ec4c6f0..c912ea5eac41a 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Metadata/bundle_option-meta.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/Metadata/bundle_option-meta.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
application/json
diff --git a/app/code/Magento/Bundle/Test/Mftf/Metadata/bundle_options-meta.xml b/app/code/Magento/Bundle/Test/Mftf/Metadata/bundle_options-meta.xml
new file mode 100644
index 0000000000000..12cba3fc179fe
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Metadata/bundle_options-meta.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ application/json
+
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/Page/AdminCatalogProductPage.xml b/app/code/Magento/Bundle/Test/Mftf/Page/AdminCatalogProductPage.xml
new file mode 100644
index 0000000000000..cb97521499e23
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Page/AdminCatalogProductPage.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/Page/AdminProductCreatePage.xml b/app/code/Magento/Bundle/Test/Mftf/Page/AdminProductCreatePage.xml
new file mode 100644
index 0000000000000..f0048e2fc95d4
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Page/AdminProductCreatePage.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/README.md b/app/code/Magento/Bundle/Test/Mftf/README.md
new file mode 100644
index 0000000000000..8e8da0c15fa56
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Bundle Functional Tests
+
+The Functional Test Module for **Magento Bundle** module.
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Section/AdminProductFormBundleSection.xml b/app/code/Magento/Bundle/Test/Mftf/Section/AdminProductFormBundleSection.xml
similarity index 80%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Section/AdminProductFormBundleSection.xml
rename to app/code/Magento/Bundle/Test/Mftf/Section/AdminProductFormBundleSection.xml
index 1c5019eeeea26..5f8cde2997c08 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Section/AdminProductFormBundleSection.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/Section/AdminProductFormBundleSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
@@ -38,6 +38,10 @@
+
+
+
+
@@ -50,5 +54,11 @@
+
+
+
+
+
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/Section/BundleStorefrontSection.xml b/app/code/Magento/Bundle/Test/Mftf/Section/BundleStorefrontSection.xml
new file mode 100644
index 0000000000000..9f4e6e04ac351
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Section/BundleStorefrontSection.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/Section/StorefrontBundledSection.xml b/app/code/Magento/Bundle/Test/Mftf/Section/StorefrontBundledSection.xml
new file mode 100644
index 0000000000000..311201e624d4b
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Section/StorefrontBundledSection.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/Test/AdminAddBundleItemsTest.xml b/app/code/Magento/Bundle/Test/Mftf/Test/AdminAddBundleItemsTest.xml
new file mode 100644
index 0000000000000..d94e196ea5ad1
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/AdminAddBundleItemsTest.xml
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/AdminAddDefaultImageBundleProductTest.xml b/app/code/Magento/Bundle/Test/Mftf/Test/AdminAddDefaultImageBundleProductTest.xml
similarity index 96%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/AdminAddDefaultImageBundleProductTest.xml
rename to app/code/Magento/Bundle/Test/Mftf/Test/AdminAddDefaultImageBundleProductTest.xml
index 6a145b98a1816..e1f90790b30a9 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/AdminAddDefaultImageBundleProductTest.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/AdminAddDefaultImageBundleProductTest.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
diff --git a/app/code/Magento/Bundle/Test/Mftf/Test/AdminAttributeSetSelectionTest.xml b/app/code/Magento/Bundle/Test/Mftf/Test/AdminAttributeSetSelectionTest.xml
new file mode 100644
index 0000000000000..795982eb4b939
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/AdminAttributeSetSelectionTest.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/Test/AdminDeleteABundleProduct.xml b/app/code/Magento/Bundle/Test/Mftf/Test/AdminDeleteABundleProduct.xml
new file mode 100644
index 0000000000000..3f88a9f277105
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/AdminDeleteABundleProduct.xml
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/Test/AdminFilterProductListByBundleProduct.xml b/app/code/Magento/Bundle/Test/Mftf/Test/AdminFilterProductListByBundleProduct.xml
new file mode 100644
index 0000000000000..9faf9e69bc873
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/AdminFilterProductListByBundleProduct.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/Test/AdminMassDeleteBundleProducts.xml b/app/code/Magento/Bundle/Test/Mftf/Test/AdminMassDeleteBundleProducts.xml
new file mode 100644
index 0000000000000..708580b3c9940
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/AdminMassDeleteBundleProducts.xml
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/AdminProductBundleCreationTest.xml b/app/code/Magento/Bundle/Test/Mftf/Test/AdminProductBundleCreationTest.xml
similarity index 93%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/AdminProductBundleCreationTest.xml
rename to app/code/Magento/Bundle/Test/Mftf/Test/AdminProductBundleCreationTest.xml
index 0298c5a037b31..5e7a098790724 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/AdminProductBundleCreationTest.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/AdminProductBundleCreationTest.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
@@ -65,7 +65,7 @@
-
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/AdminRemoveDefaultImageBundleProductTest.xml b/app/code/Magento/Bundle/Test/Mftf/Test/AdminRemoveDefaultImageBundleProductTest.xml
similarity index 96%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/AdminRemoveDefaultImageBundleProductTest.xml
rename to app/code/Magento/Bundle/Test/Mftf/Test/AdminRemoveDefaultImageBundleProductTest.xml
index 6c3be47a1cb7a..9ce345cde681c 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/AdminRemoveDefaultImageBundleProductTest.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/AdminRemoveDefaultImageBundleProductTest.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
diff --git a/app/code/Magento/Bundle/Test/Mftf/Test/BundleProductFixedPricingTest.xml b/app/code/Magento/Bundle/Test/Mftf/Test/BundleProductFixedPricingTest.xml
new file mode 100644
index 0000000000000..a579460906d0e
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/BundleProductFixedPricingTest.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/EnableDisableBundleProductStatusTest.xml b/app/code/Magento/Bundle/Test/Mftf/Test/EnableDisableBundleProductStatusTest.xml
similarity index 90%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/EnableDisableBundleProductStatusTest.xml
rename to app/code/Magento/Bundle/Test/Mftf/Test/EnableDisableBundleProductStatusTest.xml
index 1610903646be8..d967143258918 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/EnableDisableBundleProductStatusTest.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/EnableDisableBundleProductStatusTest.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
@@ -65,7 +65,7 @@
-
+
@@ -76,9 +76,9 @@
-
+
-
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/Test/EndToEndB2CAdminTest.xml b/app/code/Magento/Bundle/Test/Mftf/Test/EndToEndB2CAdminTest.xml
new file mode 100644
index 0000000000000..9402d1d48012f
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/EndToEndB2CAdminTest.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/Test/MassEnableDisableBundleProductsTest.xml b/app/code/Magento/Bundle/Test/Mftf/Test/MassEnableDisableBundleProductsTest.xml
new file mode 100644
index 0000000000000..27d95cfb5cfa5
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/MassEnableDisableBundleProductsTest.xml
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/Test/NewBundleProductSelectionTest.xml b/app/code/Magento/Bundle/Test/Mftf/Test/NewBundleProductSelectionTest.xml
new file mode 100644
index 0000000000000..8a0a1ceaf52c7
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/NewBundleProductSelectionTest.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/StorefrontAdminEditDataTest.xml b/app/code/Magento/Bundle/Test/Mftf/Test/StorefrontAdminEditDataTest.xml
similarity index 97%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/StorefrontAdminEditDataTest.xml
rename to app/code/Magento/Bundle/Test/Mftf/Test/StorefrontAdminEditDataTest.xml
index 2bdb2c3e5ab17..c0d659f1665a8 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/StorefrontAdminEditDataTest.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/StorefrontAdminEditDataTest.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/StorefrontEditBundleProductTest.xml b/app/code/Magento/Bundle/Test/Mftf/Test/StorefrontEditBundleProductTest.xml
similarity index 96%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/StorefrontEditBundleProductTest.xml
rename to app/code/Magento/Bundle/Test/Mftf/Test/StorefrontEditBundleProductTest.xml
index 1944f82cf3181..a50a73c7f6bb4 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Bundle/Test/StorefrontEditBundleProductTest.xml
+++ b/app/code/Magento/Bundle/Test/Mftf/Test/StorefrontEditBundleProductTest.xml
@@ -1,124 +1,124 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Bundle/Test/Mftf/composer.json b/app/code/Magento/Bundle/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..1e379d1bacd44
--- /dev/null
+++ b/app/code/Magento/Bundle/Test/Mftf/composer.json
@@ -0,0 +1,36 @@
+{
+ "name": "magento/functional-test-module-bundle",
+ "description": "N/A",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "php": "~7.1.3||~7.2.0",
+ "magento/magento2-functional-testing-framework": "2.2.0",
+ "magento/functional-test-module-backend": "100.0.0-dev",
+ "magento/functional-test-module-catalog": "100.0.0-dev",
+ "magento/functional-test-module-catalog-inventory": "100.0.0-dev",
+ "magento/functional-test-module-catalog-rule": "100.0.0-dev",
+ "magento/functional-test-module-checkout": "100.0.0-dev",
+ "magento/functional-test-module-config": "100.0.0-dev",
+ "magento/functional-test-module-customer": "100.0.0-dev",
+ "magento/functional-test-module-eav": "100.0.0-dev",
+ "magento/functional-test-module-gift-message": "100.0.0-dev",
+ "magento/functional-test-module-media-storage": "100.0.0-dev",
+ "magento/functional-test-module-quote": "100.0.0-dev",
+ "magento/functional-test-module-sales": "100.0.0-dev",
+ "magento/functional-test-module-store": "100.0.0-dev",
+ "magento/functional-test-module-tax": "100.0.0-dev",
+ "magento/functional-test-module-ui": "100.0.0-dev"
+ },
+ "suggest": {
+ "magento/functional-test-module-webapi": "100.0.0-dev",
+ "magento/functional-test-module-bundle-sample-data": "100.0.0-dev",
+ "magento/functional-test-module-sales-rule": "100.0.0-dev"
+ },
+ "type": "magento2-test",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ]
+}
diff --git a/app/code/Magento/Bundle/Test/Unit/Block/Adminhtml/Sales/Order/Items/RendererTest.php b/app/code/Magento/Bundle/Test/Unit/Block/Adminhtml/Sales/Order/Items/RendererTest.php
index 414b460a1b81d..473fbbd035b00 100644
--- a/app/code/Magento/Bundle/Test/Unit/Block/Adminhtml/Sales/Order/Items/RendererTest.php
+++ b/app/code/Magento/Bundle/Test/Unit/Block/Adminhtml/Sales/Order/Items/RendererTest.php
@@ -46,6 +46,9 @@ public function testGetChildrenEmptyItems($class, $method, $returnClass)
$this->assertSame(null, $this->model->getChildren($item));
}
+ /**
+ * @return array
+ */
public function getChildrenEmptyItemsDataProvider()
{
return [
@@ -97,6 +100,9 @@ public function testGetChildren($parentItem)
$this->assertSame([2 => $this->orderItem], $this->model->getChildren($item));
}
+ /**
+ * @return array
+ */
public function getChildrenDataProvider()
{
return [
@@ -116,6 +122,9 @@ public function testIsShipmentSeparatelyWithoutItem($productOptions, $result)
$this->assertSame($result, $this->model->isShipmentSeparately());
}
+ /**
+ * @return array
+ */
public function isShipmentSeparatelyWithoutItemDataProvider()
{
return [
@@ -145,6 +154,9 @@ public function testIsShipmentSeparatelyWithItem($productOptions, $result, $pare
$this->assertSame($result, $this->model->isShipmentSeparately($this->orderItem));
}
+ /**
+ * @return array
+ */
public function isShipmentSeparatelyWithItemDataProvider()
{
return [
@@ -166,6 +178,9 @@ public function testIsChildCalculatedWithoutItem($productOptions, $result)
$this->assertSame($result, $this->model->isChildCalculated());
}
+ /**
+ * @return array
+ */
public function isChildCalculatedWithoutItemDataProvider()
{
return [
@@ -195,6 +210,9 @@ public function testIsChildCalculatedWithItem($productOptions, $result, $parentI
$this->assertSame($result, $this->model->isChildCalculated($this->orderItem));
}
+ /**
+ * @return array
+ */
public function isChildCalculatedWithItemDataProvider()
{
return [
@@ -257,6 +275,9 @@ public function testCanShowPriceInfo($parentItem, $productOptions, $result)
$this->assertSame($result, $this->model->canShowPriceInfo($this->orderItem));
}
+ /**
+ * @return array
+ */
public function canShowPriceInfoDataProvider()
{
return [
diff --git a/app/code/Magento/Bundle/Test/Unit/Block/Adminhtml/Sales/Order/View/Items/RendererTest.php b/app/code/Magento/Bundle/Test/Unit/Block/Adminhtml/Sales/Order/View/Items/RendererTest.php
index 95dcb48f84be1..5d8cabdd8c1b9 100644
--- a/app/code/Magento/Bundle/Test/Unit/Block/Adminhtml/Sales/Order/View/Items/RendererTest.php
+++ b/app/code/Magento/Bundle/Test/Unit/Block/Adminhtml/Sales/Order/View/Items/RendererTest.php
@@ -41,6 +41,9 @@ public function testIsShipmentSeparatelyWithoutItem($productOptions, $result)
$this->assertSame($result, $this->model->isShipmentSeparately());
}
+ /**
+ * @return array
+ */
public function isShipmentSeparatelyWithoutItemDataProvider()
{
return [
@@ -70,6 +73,9 @@ public function testIsShipmentSeparatelyWithItem($productOptions, $result, $pare
$this->assertSame($result, $this->model->isShipmentSeparately($this->orderItem));
}
+ /**
+ * @return array
+ */
public function isShipmentSeparatelyWithItemDataProvider()
{
return [
@@ -91,6 +97,9 @@ public function testIsChildCalculatedWithoutItem($productOptions, $result)
$this->assertSame($result, $this->model->isChildCalculated());
}
+ /**
+ * @return array
+ */
public function isChildCalculatedWithoutItemDataProvider()
{
return [
@@ -120,6 +129,9 @@ public function testIsChildCalculatedWithItem($productOptions, $result, $parentI
$this->assertSame($result, $this->model->isChildCalculated($this->orderItem));
}
+ /**
+ * @return array
+ */
public function isChildCalculatedWithItemDataProvider()
{
return [
@@ -151,6 +163,9 @@ public function testGetSelectionAttributesWithBundle()
$this->assertEquals($unserializedResult, $this->model->getSelectionAttributes($this->orderItem));
}
+ /**
+ * @return array
+ */
public function getSelectionAttributesDataProvider()
{
return [
@@ -184,6 +199,9 @@ public function testCanShowPriceInfo($parentItem, $productOptions, $result)
$this->assertSame($result, $this->model->canShowPriceInfo($this->orderItem));
}
+ /**
+ * @return array
+ */
public function canShowPriceInfoDataProvider()
{
return [
diff --git a/app/code/Magento/Bundle/Test/Unit/Block/Catalog/Product/View/Type/BundleTest.php b/app/code/Magento/Bundle/Test/Unit/Block/Catalog/Product/View/Type/BundleTest.php
index ec250756d5b2b..c252e5f99612f 100644
--- a/app/code/Magento/Bundle/Test/Unit/Block/Catalog/Product/View/Type/BundleTest.php
+++ b/app/code/Magento/Bundle/Test/Unit/Block/Catalog/Product/View/Type/BundleTest.php
@@ -330,6 +330,10 @@ private function updateBundleBlock($options, $priceInfo, $priceType)
->will($this->returnArgument(0));
}
+ /**
+ * @param $price
+ * @return \PHPUnit_Framework_MockObject_MockObject
+ */
private function getPriceInfoMock($price)
{
$priceInfoMock = $this->getMockBuilder(\Magento\Framework\Pricing\PriceInfo\Base::class)
@@ -354,6 +358,10 @@ private function getPriceInfoMock($price)
return $priceInfoMock;
}
+ /**
+ * @param $prices
+ * @return \PHPUnit_Framework_MockObject_MockObject
+ */
private function getPriceMock($prices)
{
$methods = [];
diff --git a/app/code/Magento/Bundle/Test/Unit/Block/Sales/Order/Items/RendererTest.php b/app/code/Magento/Bundle/Test/Unit/Block/Sales/Order/Items/RendererTest.php
index d79afdddfb7ae..2f5dcef391063 100644
--- a/app/code/Magento/Bundle/Test/Unit/Block/Sales/Order/Items/RendererTest.php
+++ b/app/code/Magento/Bundle/Test/Unit/Block/Sales/Order/Items/RendererTest.php
@@ -47,6 +47,9 @@ public function testGetChildrenEmptyItems($class, $method, $returnClass)
$this->assertSame(null, $this->model->getChildren($item));
}
+ /**
+ * @return array
+ */
public function getChildrenEmptyItemsDataProvider()
{
return [
@@ -96,6 +99,9 @@ public function testGetChildren($parentItem)
$this->assertSame([2 => $this->orderItem], $this->model->getChildren($item));
}
+ /**
+ * @return array
+ */
public function getChildrenDataProvider()
{
return [
@@ -115,6 +121,9 @@ public function testIsShipmentSeparatelyWithoutItem($productOptions, $result)
$this->assertSame($result, $this->model->isShipmentSeparately());
}
+ /**
+ * @return array
+ */
public function isShipmentSeparatelyWithoutItemDataProvider()
{
return [
@@ -144,6 +153,9 @@ public function testIsShipmentSeparatelyWithItem($productOptions, $result, $pare
$this->assertSame($result, $this->model->isShipmentSeparately($this->orderItem));
}
+ /**
+ * @return array
+ */
public function isShipmentSeparatelyWithItemDataProvider()
{
return [
@@ -165,6 +177,9 @@ public function testIsChildCalculatedWithoutItem($productOptions, $result)
$this->assertSame($result, $this->model->isChildCalculated());
}
+ /**
+ * @return array
+ */
public function isChildCalculatedWithoutItemDataProvider()
{
return [
@@ -194,6 +209,9 @@ public function testIsChildCalculatedWithItem($productOptions, $result, $parentI
$this->assertSame($result, $this->model->isChildCalculated($this->orderItem));
}
+ /**
+ * @return array
+ */
public function isChildCalculatedWithItemDataProvider()
{
return [
@@ -238,6 +256,9 @@ public function testCanShowPriceInfo($parentItem, $productOptions, $result)
$this->assertSame($result, $this->model->canShowPriceInfo($this->orderItem));
}
+ /**
+ * @return array
+ */
public function canShowPriceInfoDataProvider()
{
return [
diff --git a/app/code/Magento/Bundle/Test/Unit/Model/Sales/Order/Pdf/Items/AbstractItemsTest.php b/app/code/Magento/Bundle/Test/Unit/Model/Sales/Order/Pdf/Items/AbstractItemsTest.php
index ecce34363819e..3e9aeaed5c5b4 100644
--- a/app/code/Magento/Bundle/Test/Unit/Model/Sales/Order/Pdf/Items/AbstractItemsTest.php
+++ b/app/code/Magento/Bundle/Test/Unit/Model/Sales/Order/Pdf/Items/AbstractItemsTest.php
@@ -49,6 +49,9 @@ public function testGetChildrenEmptyItems($class, $method, $returnClass)
$this->assertSame(null, $this->model->getChildren($item));
}
+ /**
+ * @return array
+ */
public function getChildrenEmptyItemsDataProvider()
{
return [
@@ -97,6 +100,9 @@ public function testGetChildren($parentItem)
$this->assertSame([2 => $this->orderItem], $this->model->getChildren($item));
}
+ /**
+ * @return array
+ */
public function getChildrenDataProvider()
{
return [
@@ -116,6 +122,9 @@ public function testIsShipmentSeparatelyWithoutItem($productOptions, $result)
$this->assertSame($result, $this->model->isShipmentSeparately());
}
+ /**
+ * @return array
+ */
public function isShipmentSeparatelyWithoutItemDataProvider()
{
return [
@@ -146,6 +155,9 @@ public function testIsShipmentSeparatelyWithItem($productOptions, $result, $pare
$this->assertSame($result, $this->model->isShipmentSeparately($this->orderItem));
}
+ /**
+ * @return array
+ */
public function isShipmentSeparatelyWithItemDataProvider()
{
return [
@@ -167,6 +179,9 @@ public function testIsChildCalculatedWithoutItem($productOptions, $result)
$this->assertSame($result, $this->model->isChildCalculated());
}
+ /**
+ * @return array
+ */
public function isChildCalculatedWithoutItemDataProvider()
{
return [
@@ -197,6 +212,9 @@ public function testIsChildCalculatedWithItem($productOptions, $result, $parentI
$this->assertSame($result, $this->model->isChildCalculated($this->orderItem));
}
+ /**
+ * @return array
+ */
public function isChildCalculatedWithItemDataProvider()
{
return [
@@ -217,6 +235,9 @@ public function testGetBundleOptions($productOptions, $result)
$this->assertSame($result, $this->model->getBundleOptions());
}
+ /**
+ * @return array
+ */
public function getBundleOptionsDataProvider()
{
return [
@@ -277,6 +298,9 @@ public function testCanShowPriceInfo($parentItem, $productOptions, $result)
$this->assertSame($result, $this->model->canShowPriceInfo($this->orderItem));
}
+ /**
+ * @return array
+ */
public function canShowPriceInfoDataProvider()
{
return [
diff --git a/app/code/Magento/Bundle/Test/Unit/Pricing/Adjustment/CalculatorTest.php b/app/code/Magento/Bundle/Test/Unit/Pricing/Adjustment/CalculatorTest.php
index 845d735e0d801..423155661f1ef 100644
--- a/app/code/Magento/Bundle/Test/Unit/Pricing/Adjustment/CalculatorTest.php
+++ b/app/code/Magento/Bundle/Test/Unit/Pricing/Adjustment/CalculatorTest.php
@@ -585,6 +585,9 @@ public function testGetOptionsAmount($searchMin, $useRegularPrice)
$this->assertEquals($expectedResult, $result, 'Incorrect result');
}
+ /**
+ * @return array
+ */
public function getOptionsAmountDataProvider()
{
return [
diff --git a/app/code/Magento/Bundle/Test/Unit/Pricing/Price/BundleSelectionPriceTest.php b/app/code/Magento/Bundle/Test/Unit/Pricing/Price/BundleSelectionPriceTest.php
index d43b0575aea91..d35619bb043a0 100644
--- a/app/code/Magento/Bundle/Test/Unit/Pricing/Price/BundleSelectionPriceTest.php
+++ b/app/code/Magento/Bundle/Test/Unit/Pricing/Price/BundleSelectionPriceTest.php
@@ -103,6 +103,9 @@ protected function setUp()
$this->setupSelectionPrice();
}
+ /**
+ * @param bool $useRegularPrice
+ */
protected function setupSelectionPrice($useRegularPrice = false)
{
$this->selectionPrice = new \Magento\Bundle\Pricing\Price\BundleSelectionPrice(
@@ -336,6 +339,9 @@ public function testFixedPriceWithMultipleQty($useRegularPrice)
$this->assertEquals($expectedPrice, $selectionPrice->getValue());
}
+ /**
+ * @return array
+ */
public function useRegularPriceDataProvider()
{
return [
diff --git a/app/code/Magento/Bundle/Test/Unit/Ui/DataProvider/Product/BundleDataProviderTest.php b/app/code/Magento/Bundle/Test/Unit/Ui/DataProvider/Product/BundleDataProviderTest.php
index 7b4d42568f686..1c3cf33cbf73b 100644
--- a/app/code/Magento/Bundle/Test/Unit/Ui/DataProvider/Product/BundleDataProviderTest.php
+++ b/app/code/Magento/Bundle/Test/Unit/Ui/DataProvider/Product/BundleDataProviderTest.php
@@ -76,6 +76,9 @@ protected function setUp()
->getMock();
}
+ /**
+ * @return object
+ */
protected function getModel()
{
return $this->objectManager->getObject(BundleDataProvider::class, [
diff --git a/app/code/Magento/BundleGraphQl/Test/Mftf/README.md b/app/code/Magento/BundleGraphQl/Test/Mftf/README.md
new file mode 100644
index 0000000000000..6c7176cbb77f9
--- /dev/null
+++ b/app/code/Magento/BundleGraphQl/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Bundle Graph Ql Functional Tests
+
+The Functional Test Module for **Magento Bundle Graph Ql** module.
diff --git a/app/code/Magento/BundleGraphQl/Test/Mftf/composer.json b/app/code/Magento/BundleGraphQl/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..33dffdc85a364
--- /dev/null
+++ b/app/code/Magento/BundleGraphQl/Test/Mftf/composer.json
@@ -0,0 +1,20 @@
+{
+ "name": "magento/functional-test-module-bundle-graph-ql",
+ "description": "N/A",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "php": "~7.1.3||~7.2.0",
+ "magento/functional-test-module-catalog": "100.0.0-dev",
+ "magento/functional-test-module-bundle": "100.0.0-dev",
+ "magento/functional-test-module-catalog-graph-ql": "100.0.0-dev",
+ "magento/functional-test-module-store": "100.0.0-dev",
+ "magento/magento2-functional-testing-framework": "2.2.0"
+ },
+ "type": "magento2-test",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ]
+}
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/BundleImportExport/LICENSE.txt b/app/code/Magento/BundleImportExport/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/BundleImportExport/LICENSE.txt
rename to app/code/Magento/BundleImportExport/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/BundleImportExport/LICENSE_AFL.txt b/app/code/Magento/BundleImportExport/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/BundleImportExport/LICENSE_AFL.txt
rename to app/code/Magento/BundleImportExport/Test/Mftf/LICENSE_AFL.txt
diff --git a/app/code/Magento/BundleImportExport/Test/Mftf/README.md b/app/code/Magento/BundleImportExport/Test/Mftf/README.md
new file mode 100644
index 0000000000000..e4c6855132d05
--- /dev/null
+++ b/app/code/Magento/BundleImportExport/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Bundle Import Export Functional Tests
+
+The Functional Test Module for **Magento Bundle Import Export** module.
diff --git a/app/code/Magento/BundleImportExport/Test/Mftf/composer.json b/app/code/Magento/BundleImportExport/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..2210ef5248159
--- /dev/null
+++ b/app/code/Magento/BundleImportExport/Test/Mftf/composer.json
@@ -0,0 +1,22 @@
+{
+ "name": "magento/functional-test-module-bundle-import-export",
+ "description": "N/A",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "php": "~7.1.3||~7.2.0",
+ "magento/magento2-functional-testing-framework": "2.2.0",
+ "magento/functional-test-module-bundle": "100.0.0-dev",
+ "magento/functional-test-module-store": "100.0.0-dev",
+ "magento/functional-test-module-catalog": "100.0.0-dev",
+ "magento/functional-test-module-catalog-import-export": "100.0.0-dev",
+ "magento/functional-test-module-eav": "100.0.0-dev",
+ "magento/functional-test-module-import-export": "100.0.0-dev"
+ },
+ "type": "magento2-test",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ]
+}
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/CacheInvalidate/LICENSE.txt b/app/code/Magento/CacheInvalidate/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/CacheInvalidate/LICENSE.txt
rename to app/code/Magento/CacheInvalidate/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/CacheInvalidate/LICENSE_AFL.txt b/app/code/Magento/CacheInvalidate/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/CacheInvalidate/LICENSE_AFL.txt
rename to app/code/Magento/CacheInvalidate/Test/Mftf/LICENSE_AFL.txt
diff --git a/app/code/Magento/CacheInvalidate/Test/Mftf/README.md b/app/code/Magento/CacheInvalidate/Test/Mftf/README.md
new file mode 100644
index 0000000000000..403a6f15d089d
--- /dev/null
+++ b/app/code/Magento/CacheInvalidate/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Cache Invalidate Functional Tests
+
+The Functional Test Module for **Magento Cache Invalidate** module.
diff --git a/app/code/Magento/CacheInvalidate/Test/Mftf/composer.json b/app/code/Magento/CacheInvalidate/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..0a6ffcf2f4661
--- /dev/null
+++ b/app/code/Magento/CacheInvalidate/Test/Mftf/composer.json
@@ -0,0 +1,17 @@
+{
+ "name": "magento/functional-test-module-cache-invalidate",
+ "description": "N/A",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "php": "~7.1.3||~7.2.0",
+ "magento/magento2-functional-testing-framework": "2.2.0",
+ "magento/functional-test-module-page-cache": "100.0.0-dev"
+ },
+ "type": "magento2-test",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ]
+}
diff --git a/app/code/Magento/CacheInvalidate/Test/Unit/Model/PurgeCacheTest.php b/app/code/Magento/CacheInvalidate/Test/Unit/Model/PurgeCacheTest.php
index 013ec3a467104..c66e27ea41025 100644
--- a/app/code/Magento/CacheInvalidate/Test/Unit/Model/PurgeCacheTest.php
+++ b/app/code/Magento/CacheInvalidate/Test/Unit/Model/PurgeCacheTest.php
@@ -84,6 +84,9 @@ public function testSendPurgeRequest($hosts)
$this->assertTrue($this->model->sendPurgeRequest('tags'));
}
+ /**
+ * @return array
+ */
public function sendPurgeRequestDataProvider()
{
return [
diff --git a/app/code/Magento/Captcha/Block/Captcha/DefaultCaptcha.php b/app/code/Magento/Captcha/Block/Captcha/DefaultCaptcha.php
index c0a091ca2d0d9..027c9a9085b47 100644
--- a/app/code/Magento/Captcha/Block/Captcha/DefaultCaptcha.php
+++ b/app/code/Magento/Captcha/Block/Captcha/DefaultCaptcha.php
@@ -13,7 +13,7 @@ class DefaultCaptcha extends \Magento\Framework\View\Element\Template
/**
* @var string
*/
- protected $_template = 'default.phtml';
+ protected $_template = 'Magento_Captcha::default.phtml';
/**
* @var string
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Captcha/LICENSE.txt b/app/code/Magento/Captcha/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Captcha/LICENSE.txt
rename to app/code/Magento/Captcha/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Captcha/LICENSE_AFL.txt b/app/code/Magento/Captcha/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Captcha/LICENSE_AFL.txt
rename to app/code/Magento/Captcha/Test/Mftf/LICENSE_AFL.txt
diff --git a/app/code/Magento/Captcha/Test/Mftf/README.md b/app/code/Magento/Captcha/Test/Mftf/README.md
new file mode 100644
index 0000000000000..48be768712f2f
--- /dev/null
+++ b/app/code/Magento/Captcha/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Captcha Functional Tests
+
+The Functional Test Module for **Magento Captcha** module.
diff --git a/app/code/Magento/Captcha/Test/Mftf/composer.json b/app/code/Magento/Captcha/Test/Mftf/composer.json
new file mode 100644
index 0000000000000..95c3aa5f76078
--- /dev/null
+++ b/app/code/Magento/Captcha/Test/Mftf/composer.json
@@ -0,0 +1,20 @@
+{
+ "name": "magento/functional-test-module-captcha",
+ "description": "N/A",
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "php": "~7.1.3||~7.2.0",
+ "magento/magento2-functional-testing-framework": "2.2.0",
+ "magento/functional-test-module-backend": "100.0.0-dev",
+ "magento/functional-test-module-checkout": "100.0.0-dev",
+ "magento/functional-test-module-customer": "100.0.0-dev",
+ "magento/functional-test-module-store": "100.0.0-dev"
+ },
+ "type": "magento2-test",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ]
+}
diff --git a/app/code/Magento/Captcha/Test/Unit/Model/DefaultTest.php b/app/code/Magento/Captcha/Test/Unit/Model/DefaultTest.php
index 429c13e802a87..0500b29f787c2 100644
--- a/app/code/Magento/Captcha/Test/Unit/Model/DefaultTest.php
+++ b/app/code/Magento/Captcha/Test/Unit/Model/DefaultTest.php
@@ -354,6 +354,9 @@ public function testIsShownToLoggedInUser($expectedResult, $formId)
$this->assertEquals($expectedResult, $captcha->isShownToLoggedInUser());
}
+ /**
+ * @return array
+ */
public function isShownToLoggedInUserDataProvider()
{
return [
diff --git a/app/code/Magento/Catalog/Api/ProductAttributeOptionManagementInterface.php b/app/code/Magento/Catalog/Api/ProductAttributeOptionManagementInterface.php
index 07b7d591c3fd7..3f255d93f96b0 100644
--- a/app/code/Magento/Catalog/Api/ProductAttributeOptionManagementInterface.php
+++ b/app/code/Magento/Catalog/Api/ProductAttributeOptionManagementInterface.php
@@ -29,7 +29,7 @@ public function getItems($attributeCode);
* @param \Magento\Eav\Api\Data\AttributeOptionInterface $option
* @throws \Magento\Framework\Exception\StateException
* @throws \Magento\Framework\Exception\InputException
- * @return bool
+ * @return string
*/
public function add($attributeCode, $option);
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Category/AssignProducts.php b/app/code/Magento/Catalog/Block/Adminhtml/Category/AssignProducts.php
index 69618f04eb2af..c718563d7576e 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Category/AssignProducts.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Category/AssignProducts.php
@@ -13,7 +13,7 @@ class AssignProducts extends \Magento\Backend\Block\Template
*
* @var string
*/
- protected $_template = 'catalog/category/edit/assign_products.phtml';
+ protected $_template = 'Magento_Catalog::catalog/category/edit/assign_products.phtml';
/**
* @var \Magento\Catalog\Block\Adminhtml\Category\Tab\Product
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Category/Tree.php b/app/code/Magento/Catalog/Block/Adminhtml/Category/Tree.php
index 34da5bb1d4ca1..a67f55235b6df 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Category/Tree.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Category/Tree.php
@@ -27,7 +27,7 @@ class Tree extends \Magento\Catalog\Block\Adminhtml\Category\AbstractCategory
/**
* @var string
*/
- protected $_template = 'catalog/category/tree.phtml';
+ protected $_template = 'Magento_Catalog::catalog/category/tree.phtml';
/**
* @var \Magento\Backend\Model\Auth\Session
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Category/Widget/Chooser.php b/app/code/Magento/Catalog/Block/Adminhtml/Category/Widget/Chooser.php
index b5330ab66af71..9c83d4aea61c7 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Category/Widget/Chooser.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Category/Widget/Chooser.php
@@ -24,7 +24,7 @@ class Chooser extends \Magento\Catalog\Block\Adminhtml\Category\Tree
*
* @var string
*/
- protected $_template = 'catalog/category/widget/tree.phtml';
+ protected $_template = 'Magento_Catalog::catalog/category/widget/tree.phtml';
/**
* @return void
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Main.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Main.php
index 6760b44c22ee1..1b188de40710f 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Main.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Main.php
@@ -22,7 +22,7 @@ class Main extends \Magento\Backend\Block\Template
/**
* @var string
*/
- protected $_template = 'catalog/product/attribute/set/main.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/attribute/set/main.phtml';
/**
* Core registry
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Main/Tree/Group.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Main/Tree/Group.php
index cf8de44c3d9df..93c2dcc76263c 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Main/Tree/Group.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Main/Tree/Group.php
@@ -14,5 +14,5 @@ class Group extends \Magento\Backend\Block\Template
/**
* @var string
*/
- protected $_template = 'catalog/product/attribute/set/main/tree/group.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/attribute/set/main/tree/group.phtml';
}
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Toolbar/Add.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Toolbar/Add.php
index 329afa968307c..f69e58985bfc5 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Toolbar/Add.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Toolbar/Add.php
@@ -18,7 +18,7 @@ class Add extends \Magento\Backend\Block\Template
/**
* @var string
*/
- protected $_template = 'catalog/product/attribute/set/toolbar/add.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/attribute/set/toolbar/add.phtml';
/**
* @return AbstractBlock
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Toolbar/Main.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Toolbar/Main.php
index f707c5c340b68..e29ab26065dc3 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Toolbar/Main.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Toolbar/Main.php
@@ -20,7 +20,7 @@ class Main extends \Magento\Backend\Block\Template
/**
* @var string
*/
- protected $_template = 'catalog/product/attribute/set/toolbar/main.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/attribute/set/toolbar/main.phtml';
/**
* @return $this
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Composite/Configure.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Composite/Configure.php
index 9270c1ac38ba3..98280d8d31237 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Composite/Configure.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Composite/Configure.php
@@ -22,7 +22,7 @@ class Configure extends \Magento\Backend\Block\Widget
/**
* @var string
*/
- protected $_template = 'catalog/product/composite/configure.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/composite/configure.phtml';
/**
* Core registry
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit.php
index c18106fe567d0..285caa974fd17 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit.php
@@ -17,7 +17,7 @@ class Edit extends \Magento\Backend\Block\Widget
/**
* @var string
*/
- protected $_template = 'catalog/product/edit.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/edit.phtml';
/**
* Core registry
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Alerts.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Alerts.php
index 62b9341a95414..be9c84ee5edd1 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Alerts.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Alerts.php
@@ -16,7 +16,7 @@ class Alerts extends \Magento\Backend\Block\Widget\Tab
/**
* @var string
*/
- protected $_template = 'catalog/product/tab/alert.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/tab/alert.phtml';
/**
* @return $this
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Inventory.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Inventory.php
index e52c1d3aa4985..20e12889cae0d 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Inventory.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Inventory.php
@@ -15,7 +15,7 @@ class Inventory extends \Magento\Backend\Block\Widget
/**
* @var string
*/
- protected $_template = 'catalog/product/tab/inventory.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/tab/inventory.phtml';
/**
* @var \Magento\Framework\Module\Manager
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options.php
index a7a919e53f56e..2c79f5a6fa718 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options.php
@@ -16,7 +16,7 @@ class Options extends Widget
/**
* @var string
*/
- protected $_template = 'catalog/product/edit/options.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/edit/options.phtml';
/**
* @return Widget
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Option.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Option.php
index f3460dfa28c29..49caddd1a1018 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Option.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Option.php
@@ -36,7 +36,7 @@ class Option extends Widget
/**
* @var string
*/
- protected $_template = 'catalog/product/edit/options/option.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/edit/options/option.phtml';
/**
* Core registry
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/Date.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/Date.php
index babfc1b072bd2..a0bbc4ad033de 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/Date.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/Date.php
@@ -16,5 +16,5 @@ class Date extends \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Options\Typ
/**
* @var string
*/
- protected $_template = 'catalog/product/edit/options/type/date.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/edit/options/type/date.phtml';
}
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/File.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/File.php
index 322aa02f97731..d3d5f08fa9eae 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/File.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/File.php
@@ -16,5 +16,5 @@ class File extends \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Options\Typ
/**
* @var string
*/
- protected $_template = 'catalog/product/edit/options/type/file.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/edit/options/type/file.phtml';
}
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/Select.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/Select.php
index 24de84958ef4a..f6ab5134ae6bd 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/Select.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/Select.php
@@ -16,7 +16,7 @@ class Select extends \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Options\T
/**
* @var string
*/
- protected $_template = 'catalog/product/edit/options/type/select.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/edit/options/type/select.phtml';
/**
* Class constructor
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/Text.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/Text.php
index 7241128fac3b4..e6f78dc3ed169 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/Text.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Type/Text.php
@@ -16,5 +16,5 @@ class Text extends \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Options\Typ
/**
* @var string
*/
- protected $_template = 'catalog/product/edit/options/type/text.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/edit/options/type/text.phtml';
}
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Price/Tier.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Price/Tier.php
index a80ddd8c122a1..7cb1c2c9e4263 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Price/Tier.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Price/Tier.php
@@ -13,7 +13,7 @@ class Tier extends Group\AbstractGroup
/**
* @var string
*/
- protected $_template = 'catalog/product/edit/price/tier.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/edit/price/tier.phtml';
/**
* Retrieve list of initial customer groups
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Websites.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Websites.php
index 6a3347b44512f..6189a97dbe761 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Websites.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Websites.php
@@ -21,7 +21,7 @@ class Websites extends \Magento\Backend\Block\Store\Switcher
/**
* @var string
*/
- protected $_template = 'catalog/product/edit/websites.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/edit/websites.phtml';
/**
* Core registry
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Helper/Form/Gallery/Content.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Helper/Form/Gallery/Content.php
index 5188bf365e5e9..8d51f78ff5b68 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Helper/Form/Gallery/Content.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Helper/Form/Gallery/Content.php
@@ -23,7 +23,7 @@ class Content extends \Magento\Backend\Block\Widget
/**
* @var string
*/
- protected $_template = 'catalog/product/helper/gallery.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/helper/gallery.phtml';
/**
* @var \Magento\Catalog\Model\Product\Media\Config
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Widget/Chooser/Container.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Widget/Chooser/Container.php
index 19c1574d6e9a5..b8967f1f30e55 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Widget/Chooser/Container.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Widget/Chooser/Container.php
@@ -18,5 +18,5 @@ class Container extends Template
/**
* @var string
*/
- protected $_template = 'catalog/product/widget/chooser/container.phtml';
+ protected $_template = 'Magento_Catalog::catalog/product/widget/chooser/container.phtml';
}
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Rss/Grid/Link.php b/app/code/Magento/Catalog/Block/Adminhtml/Rss/Grid/Link.php
index 9d13d89d54b80..a9ec80c5f0232 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Rss/Grid/Link.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Rss/Grid/Link.php
@@ -13,7 +13,7 @@ class Link extends \Magento\Framework\View\Element\Template
/**
* @var string
*/
- protected $_template = 'rss/grid/link.phtml';
+ protected $_template = 'Magento_Catalog::rss/grid/link.phtml';
/**
* @var \Magento\Framework\App\Rss\UrlBuilderInterface
diff --git a/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php b/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php
index c53691ecada24..0b8d2d6c89e72 100644
--- a/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php
+++ b/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php
@@ -83,7 +83,7 @@ class Toolbar extends \Magento\Framework\View\Element\Template
/**
* @var string
*/
- protected $_template = 'product/list/toolbar.phtml';
+ protected $_template = 'Magento_Catalog::product/list/toolbar.phtml';
/**
* Catalog config
@@ -196,7 +196,7 @@ public function setCollection($collection)
$this->_collection->addAttributeToSort(
$this->getCurrentOrder(),
$this->getCurrentDirection()
- )->addAttributeToSort('entity_id', $this->getCurrentDirection());
+ );
} else {
$this->_collection->setOrder($this->getCurrentOrder(), $this->getCurrentDirection());
}
diff --git a/app/code/Magento/Catalog/Block/Product/View/Additional.php b/app/code/Magento/Catalog/Block/Product/View/Additional.php
index 37c82c2bc84c8..66527985e41fd 100644
--- a/app/code/Magento/Catalog/Block/Product/View/Additional.php
+++ b/app/code/Magento/Catalog/Block/Product/View/Additional.php
@@ -25,7 +25,7 @@ class Additional extends \Magento\Framework\View\Element\Template
/**
* @var string
*/
- protected $_template = 'product/view/additional.phtml';
+ protected $_template = 'Magento_Catalog::product/view/additional.phtml';
/**
* @return array
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/RefreshPath.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/RefreshPath.php
index 962cd52d39338..9384397b67f93 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/RefreshPath.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/RefreshPath.php
@@ -38,7 +38,11 @@ public function execute()
/** @var \Magento\Framework\Controller\Result\Json $resultJson */
$resultJson = $this->resultJsonFactory->create();
- return $resultJson->setData(['id' => $categoryId, 'path' => $category->getPath()]);
+ return $resultJson->setData([
+ 'id' => $categoryId,
+ 'path' => $category->getPath(),
+ 'parentId' => $category->getParentId(),
+ ]);
}
}
}
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php
index bcc7d468fd0f4..cc03ab870739b 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php
@@ -139,6 +139,9 @@ public function execute()
$parentId = isset($categoryPostData['parent']) ? $categoryPostData['parent'] : null;
if ($categoryPostData) {
$category->addData($categoryPostData);
+ if ($parentId) {
+ $category->setParentId($parentId);
+ }
if ($isNewCategory) {
$parentCategory = $this->getParentCategory($parentId, $storeId);
$category->setPath($parentCategory->getPath());
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php
index 1481687205ddb..84837262a8154 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php
@@ -216,6 +216,9 @@ private function handleImageRemoveError($postData, $productId)
/**
* Do copying data to stores
*
+ * If the 'copy_from' field is not specified in the input data,
+ * the store fallback mechanism will automatically take the admin store's default value.
+ *
* @param array $data
* @param int $productId
* @return void
@@ -227,15 +230,17 @@ protected function copyToStores($data, $productId)
if (isset($data['product']['website_ids'][$websiteId])
&& (bool)$data['product']['website_ids'][$websiteId]) {
foreach ($group as $store) {
- $copyFrom = (isset($store['copy_from'])) ? $store['copy_from'] : 0;
- $copyTo = (isset($store['copy_to'])) ? $store['copy_to'] : 0;
- if ($copyTo) {
- $this->_objectManager->create(\Magento\Catalog\Model\Product::class)
- ->setStoreId($copyFrom)
- ->load($productId)
- ->setStoreId($copyTo)
- ->setCopyFromView(true)
- ->save();
+ if (isset($store['copy_from'])) {
+ $copyFrom = $store['copy_from'];
+ $copyTo = (isset($store['copy_to'])) ? $store['copy_to'] : 0;
+ if ($copyTo) {
+ $this->_objectManager->create(\Magento\Catalog\Model\Product::class)
+ ->setStoreId($copyFrom)
+ ->load($productId)
+ ->setStoreId($copyTo)
+ ->setCopyFromView(true)
+ ->save();
+ }
}
}
}
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php
index 00a836309e58e..dfddcf7e92b97 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php
@@ -6,6 +6,11 @@
*/
namespace Magento\Catalog\Controller\Adminhtml\Product\Set;
+use Magento\Framework\App\ObjectManager;
+
+/**
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ */
class Save extends \Magento\Catalog\Controller\Adminhtml\Product\Set
{
/**
@@ -17,22 +22,49 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Product\Set
* @var \Magento\Framework\Controller\Result\JsonFactory
*/
protected $resultJsonFactory;
-
+
+ /*
+ * @var \Magento\Eav\Model\Entity\Attribute\SetFactory
+ */
+ private $attributeSetFactory;
+
+ /*
+ * @var \Magento\Framework\Filter\FilterManager
+ */
+ private $filterManager;
+
+ /*
+ * @var \Magento\Framework\Json\Helper\Data
+ */
+ private $jsonHelper;
+
/**
* @param \Magento\Backend\App\Action\Context $context
* @param \Magento\Framework\Registry $coreRegistry
* @param \Magento\Framework\View\LayoutFactory $layoutFactory
* @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory
+ * @param \Magento\Eav\Model\Entity\Attribute\SetFactory $attributeSetFactory
+ * @param \Magento\Framework\Filter\FilterManager $filterManager
+ * @param \Magento\Framework\Json\Helper\Data $jsonHelper
*/
public function __construct(
\Magento\Backend\App\Action\Context $context,
\Magento\Framework\Registry $coreRegistry,
\Magento\Framework\View\LayoutFactory $layoutFactory,
- \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory
+ \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory,
+ \Magento\Eav\Model\Entity\Attribute\SetFactory $attributeSetFactory = null,
+ \Magento\Framework\Filter\FilterManager $filterManager = null,
+ \Magento\Framework\Json\Helper\Data $jsonHelper = null
) {
parent::__construct($context, $coreRegistry);
$this->layoutFactory = $layoutFactory;
$this->resultJsonFactory = $resultJsonFactory;
+ $this->attributeSetFactory = $attributeSetFactory ?: ObjectManager::getInstance()
+ ->get(\Magento\Eav\Model\Entity\Attribute\SetFactory::class);
+ $this->filterManager = $filterManager ?: ObjectManager::getInstance()
+ ->get(\Magento\Framework\Filter\FilterManager::class);
+ $this->jsonHelper = $jsonHelper ?: ObjectManager::getInstance()
+ ->get(\Magento\Framework\Json\Helper\Data::class);
}
/**
@@ -65,16 +97,12 @@ public function execute()
$isNewSet = $this->getRequest()->getParam('gotoEdit', false) == '1';
/* @var $model \Magento\Eav\Model\Entity\Attribute\Set */
- $model = $this->_objectManager->create(\Magento\Eav\Model\Entity\Attribute\Set::class)
- ->setEntityTypeId($entityTypeId);
-
- /** @var $filterManager \Magento\Framework\Filter\FilterManager */
- $filterManager = $this->_objectManager->get(\Magento\Framework\Filter\FilterManager::class);
+ $model = $this->attributeSetFactory->create()->setEntityTypeId($entityTypeId);
try {
if ($isNewSet) {
//filter html tags
- $name = $filterManager->stripTags($this->getRequest()->getParam('attribute_set_name'));
+ $name = $this->filterManager->stripTags($this->getRequest()->getParam('attribute_set_name'));
$model->setAttributeSetName(trim($name));
} else {
if ($attributeSetId) {
@@ -85,11 +113,10 @@ public function execute()
__('This attribute set no longer exists.')
);
}
- $data = $this->_objectManager->get(\Magento\Framework\Json\Helper\Data::class)
- ->jsonDecode($this->getRequest()->getPost('data'));
+ $data = $this->jsonHelper->jsonDecode($this->getRequest()->getPost('data'));
//filter html tags
- $data['attribute_set_name'] = $filterManager->stripTags($data['attribute_set_name']);
+ $data['attribute_set_name'] = $this->filterManager->stripTags($data['attribute_set_name']);
$model->organizeData($data);
}
diff --git a/app/code/Magento/Catalog/Model/ImageUploader.php b/app/code/Magento/Catalog/Model/ImageUploader.php
index 6aa76ca8c1e43..ce92a2c1d958d 100644
--- a/app/code/Magento/Catalog/Model/ImageUploader.php
+++ b/app/code/Magento/Catalog/Model/ImageUploader.php
@@ -64,6 +64,18 @@ class ImageUploader
*/
protected $allowedExtensions;
+ /**
+ * List of allowed image mime types
+ *
+ * @var array
+ */
+ private $allowedMimeTypes = [
+ 'image/jpg',
+ 'image/jpeg',
+ 'image/gif',
+ 'image/png',
+ ];
+
/**
* ImageUploader constructor
*
@@ -227,7 +239,9 @@ public function saveFileToTmpDir($fileId)
$uploader = $this->uploaderFactory->create(['fileId' => $fileId]);
$uploader->setAllowedExtensions($this->getAllowedExtensions());
$uploader->setAllowRenameFiles(true);
-
+ if (!$uploader->checkMimeType($this->allowedMimeTypes)) {
+ throw new \Magento\Framework\Exception\LocalizedException(__('File validation failed.'));
+ }
$result = $uploader->save($this->mediaDirectory->getAbsolutePath($baseTmpPath));
unset($result['path']);
diff --git a/app/code/Magento/Catalog/Model/Product/Gallery/UpdateHandler.php b/app/code/Magento/Catalog/Model/Product/Gallery/UpdateHandler.php
index 53083d7168b45..8ad8dcb4812e4 100644
--- a/app/code/Magento/Catalog/Model/Product/Gallery/UpdateHandler.php
+++ b/app/code/Magento/Catalog/Model/Product/Gallery/UpdateHandler.php
@@ -32,6 +32,9 @@ protected function processDeletedImages($product, array &$images)
foreach ($images as &$image) {
if (!empty($image['removed'])) {
if (!empty($image['value_id']) && !isset($picturesInOtherStores[$image['file']])) {
+ if (preg_match('/\.\.(\\\|\/)/', $image['file'])) {
+ continue;
+ }
$recordsToDelete[] = $image['value_id'];
$catalogPath = $this->mediaConfig->getBaseMediaPath();
$isFile = $this->mediaDirectory->isFile($catalogPath . $image['file']);
diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php b/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php
index bdb3cdab617ac..8457e5d0eaa5c 100644
--- a/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php
+++ b/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php
@@ -141,19 +141,17 @@ public function deleteEntity(\Magento\Framework\Model\AbstractModel $object)
->getMetadata(ProductInterface::class)
->getLinkField();
- $select = $this->getConnection()->select()->from(
- $attribute->getEntity()->getEntityTable(),
- $linkField
- )->where(
- 'attribute_set_id = ?',
- $result['attribute_set_id']
- );
+ $backendLinkField = $attribute->getBackend()->getEntityIdField();
- $clearCondition = [
- 'attribute_id =?' => $attribute->getId(),
- $linkField . ' IN (?)' => $select,
- ];
- $this->getConnection()->delete($backendTable, $clearCondition);
+ $select = $this->getConnection()->select()
+ ->from(['b' => $backendTable])
+ ->join(
+ ['e' => $attribute->getEntity()->getEntityTable()],
+ "b.$backendLinkField = e.$linkField"
+ )->where('b.attribute_id = ?', $attribute->getId())
+ ->where('e.attribute_set_id = ?', $result['attribute_set_id']);
+
+ $this->getConnection()->query($select->deleteFromSelect('b'));
}
}
diff --git a/app/code/Magento/Catalog/Pricing/Price/RegularPrice.php b/app/code/Magento/Catalog/Pricing/Price/RegularPrice.php
index 609255d852da3..1397ceb6bf71c 100644
--- a/app/code/Magento/Catalog/Pricing/Price/RegularPrice.php
+++ b/app/code/Magento/Catalog/Pricing/Price/RegularPrice.php
@@ -22,14 +22,14 @@ class RegularPrice extends AbstractPrice implements BasePriceProviderInterface
/**
* Get price value
*
- * @return float|bool
+ * @return float
*/
public function getValue()
{
if ($this->value === null) {
$price = $this->product->getPrice();
$priceInCurrentCurrency = $this->priceCurrency->convertAndRound($price);
- $this->value = $priceInCurrentCurrency ? floatval($priceInCurrentCurrency) : false;
+ $this->value = $priceInCurrentCurrency ? floatval($priceInCurrentCurrency) : 0;
}
return $this->value;
}
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AddProductToCartActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AddProductToCartActionGroup.xml
similarity index 80%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AddProductToCartActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/AddProductToCartActionGroup.xml
index 9380c3052a5f5..44c960dc37641 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AddProductToCartActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AddProductToCartActionGroup.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminCategoryActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminCategoryActionGroup.xml
similarity index 95%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminCategoryActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminCategoryActionGroup.xml
index e176447a91932..7c04e9bd83d56 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminCategoryActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminCategoryActionGroup.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
@@ -37,6 +37,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -202,7 +212,6 @@
-
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminCreateRootCategoryActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminCreateRootCategoryActionGroup.xml
similarity index 88%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminCreateRootCategoryActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminCreateRootCategoryActionGroup.xml
index b29a03b6d1819..e7d9a63484bc6 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminCreateRootCategoryActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminCreateRootCategoryActionGroup.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminProductActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductActionGroup.xml
similarity index 98%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminProductActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductActionGroup.xml
index 3ef8b961a81af..db148b2cf3114 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminProductActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductActionGroup.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminProductAttributeActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductAttributeActionGroup.xml
similarity index 78%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminProductAttributeActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductAttributeActionGroup.xml
index d3d6f13386856..3f4ee180fc65f 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminProductAttributeActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductAttributeActionGroup.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminProductAttributeSetActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductAttributeSetActionGroup.xml
similarity index 91%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminProductAttributeSetActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductAttributeSetActionGroup.xml
index 19e5bed0913a3..33f4ccac2b98f 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminProductAttributeSetActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductAttributeSetActionGroup.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminProductGridActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductGridActionGroup.xml
similarity index 98%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminProductGridActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductGridActionGroup.xml
index 5f2c45b829780..9d6af144b8f22 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AdminProductGridActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductGridActionGroup.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AssertProductInStorefrontCategoryPageActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AssertProductInStorefrontCategoryPageActionGroup.xml
similarity index 79%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AssertProductInStorefrontCategoryPageActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/AssertProductInStorefrontCategoryPageActionGroup.xml
index cfaf91e4788a8..4eca49dc28b57 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AssertProductInStorefrontCategoryPageActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AssertProductInStorefrontCategoryPageActionGroup.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AssertProductInStorefrontProductPageActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AssertProductInStorefrontProductPageActionGroup.xml
similarity index 92%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AssertProductInStorefrontProductPageActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/AssertProductInStorefrontProductPageActionGroup.xml
index 3d4195d92f2c7..59c874b8481d3 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/AssertProductInStorefrontProductPageActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AssertProductInStorefrontProductPageActionGroup.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/CheckItemInLayeredNavigationActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/CheckItemInLayeredNavigationActionGroup.xml
similarity index 76%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/CheckItemInLayeredNavigationActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/CheckItemInLayeredNavigationActionGroup.xml
index 48a6c635c9d8d..304f38e227960 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/CheckItemInLayeredNavigationActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/CheckItemInLayeredNavigationActionGroup.xml
@@ -6,7 +6,7 @@
*/
-->
-
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/CustomOptionsActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/CustomOptionsActionGroup.xml
similarity index 91%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/CustomOptionsActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/CustomOptionsActionGroup.xml
index 0409c3f195013..e8097cfa4fffb 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/CustomOptionsActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/CustomOptionsActionGroup.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/MoveCategoryActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/MoveCategoryActionGroup.xml
similarity index 85%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/MoveCategoryActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/MoveCategoryActionGroup.xml
index 9a082efa75db6..ae9dc0557a9bd 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/MoveCategoryActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/MoveCategoryActionGroup.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/OpenEditProductOnBackendActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/OpenEditProductOnBackendActionGroup.xml
similarity index 77%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/OpenEditProductOnBackendActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/OpenEditProductOnBackendActionGroup.xml
index 0dfa28275f796..07fba7cc6be06 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/OpenEditProductOnBackendActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/OpenEditProductOnBackendActionGroup.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/OpenProductFromCategoryPageActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/OpenProductFromCategoryPageActionGroup.xml
similarity index 80%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/OpenProductFromCategoryPageActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/OpenProductFromCategoryPageActionGroup.xml
index c76153f7be768..e8794ab895c6b 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/OpenProductFromCategoryPageActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/OpenProductFromCategoryPageActionGroup.xml
@@ -5,7 +5,7 @@
* See COPYING.txt for license details.
-->
-
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/ActionGroup/RestoreLayoutSettingActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/RestoreLayoutSettingActionGroup.xml
new file mode 100644
index 0000000000000..53acfe2b4372d
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/RestoreLayoutSettingActionGroup.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/ActionGroup/SearchAndMultiselectActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/SearchAndMultiselectActionGroup.xml
new file mode 100644
index 0000000000000..943fe803232e6
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/SearchAndMultiselectActionGroup.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [{{options}}]
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/SearchForProductOnBackendActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/SearchForProductOnBackendActionGroup.xml
similarity index 84%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/SearchForProductOnBackendActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/SearchForProductOnBackendActionGroup.xml
index a0416802498f4..5fbc9c5d7fcad 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/SearchForProductOnBackendActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/SearchForProductOnBackendActionGroup.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/StorefrontAddToCartCustomOptionsProductPageActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontAddToCartCustomOptionsProductPageActionGroup.xml
similarity index 78%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/StorefrontAddToCartCustomOptionsProductPageActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontAddToCartCustomOptionsProductPageActionGroup.xml
index 9cf32a9103fa8..105a5c58788de 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/StorefrontAddToCartCustomOptionsProductPageActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontAddToCartCustomOptionsProductPageActionGroup.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontCategoryActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontCategoryActionGroup.xml
new file mode 100644
index 0000000000000..05a2adf8ad7d1
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontCategoryActionGroup.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontCompareActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontCompareActionGroup.xml
new file mode 100644
index 0000000000000..7af1cacfb3da8
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontCompareActionGroup.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontProductActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontProductActionGroup.xml
new file mode 100644
index 0000000000000..eb672cd162e82
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontProductActionGroup.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/StorefrontProductPageActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontProductPageActionGroup.xml
similarity index 95%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/StorefrontProductPageActionGroup.xml
rename to app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontProductPageActionGroup.xml
index f763b0c3d2768..d688a1dc2844e 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/StorefrontProductPageActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontProductPageActionGroup.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/CategoryData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/CategoryData.xml
similarity index 89%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/CategoryData.xml
rename to app/code/Magento/Catalog/Test/Mftf/Data/CategoryData.xml
index 9ce257942b30d..42351741d9fa8 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/CategoryData.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/CategoryData.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd">
simpleCategory
simplecategory
diff --git a/app/code/Magento/Catalog/Test/Mftf/Data/ConstData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/ConstData.xml
new file mode 100644
index 0000000000000..8ae57f9239902
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/ConstData.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ 1
+ 2
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Data/CustomAttributeData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/CustomAttributeData.xml
new file mode 100644
index 0000000000000..e93138fecfd47
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/CustomAttributeData.xml
@@ -0,0 +1,38 @@
+
+
+
+
+ url_key
+ category
+
+
+ url_key
+ product
+
+
+ category_ids
+
+
+
+
+
+
+
+ description
+ API Product Description
+
+
+ short_description
+ API Product Short Description
+
+
+ news_from_date
+ 2018-05-17 00:00:00
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Data/FrontendLabelData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/FrontendLabelData.xml
new file mode 100644
index 0000000000000..2423383bc19f7
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/FrontendLabelData.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ 0
+ attribute
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ImageContentData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/ImageContentData.xml
similarity index 98%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ImageContentData.xml
rename to app/code/Magento/Catalog/Test/Mftf/Data/ImageContentData.xml
index 79842ccb47e31..c674a8fc144ce 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ImageContentData.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/ImageContentData.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd">
/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDIBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAGAAYAMBIgACEQEDEQH/xACXAAEBAAMBAQEBAAAAAAAAAAAABgMEBQgCAQcQAAEDAQUFBgQDCQAAAAAAAAABAgMEBQYRFpESMTZV0QchcnOzwhMUIkEygaE1QlFSYXGCsbIBAAEFAQAAAAAAAAAAAAAAAAACAwQGBwERAAECAwMLBAMBAAAAAAAAAAEAAgMEERMhkRQxMzRBUVJTcXKxBRJhoSKBwUL/2gAMAwEAAhEDEQA/AP7+AYKysp7Po5aurlbFBEmL3u3NQ6ASaBdArcFnBN5/urzqn0d0Gf7q86p9HdCRkUzy3YFOWEXhOCpATef7q86p9HdBn+6vOqfR3QMimeW7AosIvCcFSAm8/wB1edU+jugz/dXnVPo7oGRTPLdgUWEXhOCpATef7q86p9HdBn+6vOqfR3QMimeW7AosIvCcFSA1bPtGktWiZWUM7Z6d6qjZG7lwXBf1Q2iO5paaOFCmyCDQoTd/uBLX8n3IUhN3+4EtfyfchIk9Zh9w8pyBpW9QvN4Bwbcsujis+pq2Q4Tq5HbW0u9XJj3Y4fc0ibjPgQjEY0GgJNTS4brj/FaIz3Q2FwFafNP4V3gc1aWz7FY+rjhVrsNjBrlcrsV3Iir/ABPxtqzRyM+boJKeJ7kakm2jkRV3Yom4TlbYf4xrnfFSBuqaCn7ouWwbc+4/FT90XTBz57RlbVvpqWjdUSRoiyfWjUbju71MUlqSyWdVPjpnsqIUVJI3ORFZ3fix+4OnoLSRU3V2HZnANKEjcEGOwVG74OxdUGjZM1RNQROqIlYuw3Zcr9pXpgn1f0xN4kQYgiww8bU4xwe0OG1eg+y7gCg8cvqOLEjuy7gCg8cvqOLEzT1HXIvcfKq0zpn9ShN3+4EtfyfchSE3f7gS1/J9yCJPWYfcPKTA0reoXm85l4P2HUf4/wDSHTPmSOOZiskY17F3tcmKKaXMwjGgvhj/AECMQrTFZ72ObvC5lvxq+gjeivRsUzXvVn4kb34qmpozxWc+NjVtWtqPiOREjbMj1Vf7YFHvMMdLTxP244ImP/maxEUhzMhaxC8UvABrXZuoR9pmLL+9xddfvXNrfkVtJyPqJaOpRiL8VHbKPT8+5THFVS1FnWnE+VKhsUbmsmamG3i1e78jsSwQzoiTRRyIm5HtRf8AZ9MjZGxGMY1rU/damCHTJPMQuDgAa5q31G0VpdnrnuRYO9xNaA1+/r9rUsmeGazqdscrHuZExHo1cVauH30U3THFBDBtfBijj2t+w1Ex0MhMgMcyG1r843J+GC1oDs69B9l3AFB45fUcWJHdl3AFB45fUcWJm3qOuRe4+VV5nTP6lCbv9wJa/k+5CkJu/wBwJa/k+5BEnrMPuHlJgaVvULzeADUlbUAAIQAAhAACF6D7LuAKDxy+o4sSO7LuAKDxy+o4sTMPUdci9x8qqTOmf1KE3f7gS1/J9yFITd/uBLX8n3IIk9Zh9w8pMDSt6hebwAakragABCAAEIAAQvQfZdwBQeOX1HFiR3ZdwBQeOX1HFiZh6jrkXuPlVSZ0z+pQwVlHT2hRy0lXE2WCVMHsduchnBEBINQmQaXhTeQLq8lp9XdRkC6vJafV3UpASMtmeY7Epy3i8RxU3kC6vJafV3UZAuryWn1d1KQBlszzHYlFvF4jipvIF1eS0+ruoyBdXktPq7qUgDLZnmOxKLeLxHFTeQLq8lp9XdRkC6vJafV3UpAGWzPMdiUW8XiOK1bPs6ksqiZR0MDYKdiqrY27kxXFf1U2gCO5xcauNSmySTUr/9k=
image/jpeg
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ProductAttributeData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/ProductAttributeData.xml
similarity index 95%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ProductAttributeData.xml
rename to app/code/Magento/Catalog/Test/Mftf/Data/ProductAttributeData.xml
index ab0eac4960dc6..c8983b2090928 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ProductAttributeData.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/ProductAttributeData.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd">
attribute
textarea
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ProductAttributeMediaGalleryEntryData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/ProductAttributeMediaGalleryEntryData.xml
similarity index 85%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ProductAttributeMediaGalleryEntryData.xml
rename to app/code/Magento/Catalog/Test/Mftf/Data/ProductAttributeMediaGalleryEntryData.xml
index 5dee0651064a3..60b38812e4ced 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ProductAttributeMediaGalleryEntryData.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/ProductAttributeMediaGalleryEntryData.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd">
image
Test Image
diff --git a/app/code/Magento/Catalog/Test/Mftf/Data/ProductAttributeOptionData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/ProductAttributeOptionData.xml
new file mode 100644
index 0000000000000..2fc451e6d40fd
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/ProductAttributeOptionData.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ option1
+ false
+ 0
+ Option1Store0
+ Option1Store1
+
+
+
+ option2
+ true
+ 1
+ Option2Store0
+ Option2Store1
+
+
+
+
+
+
+ customOption
+ false
+ 0
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Data/ProductAttributeSetData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/ProductAttributeSetData.xml
new file mode 100644
index 0000000000000..68c0a54ff88fc
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/ProductAttributeSetData.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+ 4
+ 7
+ 0
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Data/ProductData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/ProductData.xml
new file mode 100644
index 0000000000000..677214011c987
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/ProductData.xml
@@ -0,0 +1,322 @@
+
+
+
+
+
+ testSku
+ simple
+ 4
+ 4
+ testProductName
+ 123.00
+ testurlkey
+ 1
+ 100
+ EavStockItem
+ CustomAttributeCategoryIds
+
+
+ api-simple-product
+ simple
+ 4
+ 4
+ Api Simple Product
+ 123.00
+ api-simple-product
+ 1
+ 100
+ EavStockItem
+ CustomAttributeCategoryIds
+
+
+ ApiProductDescription
+ ApiProductShortDescription
+
+
+ Updated Api Simple Product
+ api-simple-product
+
+
+ SimpleProduct
+ simple
+ 4
+ SimpleProduct
+ 123.00
+ 4
+ 1
+ 1000
+ simpleproduct
+ 1
+ EavStockItem
+ CustomAttributeCategoryIds
+
+
+ SimpleProduct
+ simple
+ 4
+ SimpleProduct
+ 123.00
+ 4
+ 1
+ 1000
+ EavStockItem
+
+
+ simple
+ simple
+ 4
+ simple
+ 123.00
+ 4
+ 1
+ 1000
+ simple
+ EavStockItem
+ CustomAttributeCategoryIds
+
+
+ testSku
+ simple
+ 4
+ 4
+ OutOfStockProduct
+ 123.00
+ testurlkey
+ 1
+ 0
+ CustomAttributeCategoryIds
+
+
+ 321.00
+
+
+ SimpleOne
+ simple
+ 4
+ SimpleProduct
+ 1.23
+ 4
+ 1
+ EavStockItem
+ CustomAttributeProductAttribute
+
+
+ api-simple-product
+ simple
+ 4
+ 4
+ Api Simple Product
+ 123.00
+ api-simple-product
+ 1
+ 100
+ EavStockItem
+ CustomAttributeProductAttribute
+
+
+ api-simple-product-two
+ simple
+ 4
+ 4
+ Api Simple Product Two
+ 234.00
+ api-simple-product-two
+ 1
+ 100
+ EavStockItem
+ CustomAttributeProductAttribute
+
+
+ virtualproduct
+ virtual
+ 4
+ VirtualProduct
+ 99.99
+ 250
+ 0
+ 1
+ EavStockItem
+
+
+ SimpleTwo
+ simple
+ 4
+ SimpleProduct
+ 1.23
+ 4
+ 1
+ EavStockItem
+ CustomAttributeProductUrlKey
+
+
+ Image1
+ 1.00
+ Upload File
+ Yes
+ magento-logo.png
+ magento-logo
+
+
+ MagentoLogo
+ 1.00
+ Upload File
+ Yes
+ magento-logo.png
+ magento-logo
+ png
+
+
+ 霁产品
+ simple
+ 4
+ 4
+ 霁产品
+ 123.00
+ testurlkey
+ 1
+ 100
+ EavStockItem
+ CustomAttributeCategoryIds
+
+
+ virtualProduct
+ virtual
+ 4
+ 4
+ virtualProduct
+ 12.34
+ virtualproduct
+ 1
+ 100
+ 0
+ EavStockItem
+ CustomAttributeCategoryIds
+
+
+ testProductWithDescriptionSku
+ simple
+ 4
+ 4
+ testProductWithDescriptionName
+ 123.00
+ testproductwithdescriptionurlkey
+ 1
+ 100
+ EavStockItem
+ CustomAttributeCategoryIds
+ ApiProductDescription
+ ApiProductShortDescription
+
+
+ api-simple-product
+ simple
+ 4
+ 4
+ Api Simple Product
+ 123.00
+ api-simple-product
+ 1
+ 100
+ EavStockItem
+ ApiProductDescription
+ ApiProductShortDescription
+
+
+ testSku
+ simple
+ 4
+ 4
+ testproductname
+ 123.00
+ testurlkey
+ 1
+ 100
+ EavStockItem
+ CustomAttributeCategoryIds
+
+
+
+ magento.jpg
+ ProductOptionField
+ ProductOptionArea
+ ProductOptionFile
+ ProductOptionDropDown
+ ProductOptionRadiobutton
+ ProductOptionCheckbox
+ ProductOptionMultiSelect
+ ProductOptionDate
+ ProductOptionDateTime
+ ProductOptionTime
+
+
+ api-virtual-product
+ virtual
+ 4
+ 4
+ Api Virtual Product
+ 123.00
+ api-virtual-product
+ 1
+ 100
+ EavStockItem
+ ApiProductDescription
+ ApiProductShortDescription
+
+
+ SimpleProduct
+ simple
+ 4
+ SimpleProduct
+ 125.00
+ 4
+ 1
+ 1000
+ simpleproduct
+ 1
+ EavStockItem
+ ApiProductNewsFromDate
+
+
+ Double Quote"
+ doubleQuote
+ simple
+ 4
+ 10.00
+ 4
+ 1
+ 1000
+ 1
+ EavStockItem
+
+
+
+
+
+
+
+
+
+
+
+ api-simple-product
+ simple
+ 4
+ 4
+ Api Simple Product
+ 1.00
+
+
+ api-simple-product
+ simple
+ 4
+ 4
+ Api Simple Product
+ 100.00
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Data/ProductExtensionAttributeData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/ProductExtensionAttributeData.xml
new file mode 100644
index 0000000000000..0f6b383c3b743
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/ProductExtensionAttributeData.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ Qty_1000
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Data/ProductGridData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/ProductGridData.xml
new file mode 100644
index 0000000000000..b123800a6cc84
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/ProductGridData.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ 10
+ 100
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ProductOptionData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/ProductOptionData.xml
similarity index 96%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ProductOptionData.xml
rename to app/code/Magento/Catalog/Test/Mftf/Data/ProductOptionData.xml
index 2abc557d44d96..95905eb90d926 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ProductOptionData.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/ProductOptionData.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd">
OptionField
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ProductOptionValueData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/ProductOptionValueData.xml
similarity index 90%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ProductOptionValueData.xml
rename to app/code/Magento/Catalog/Test/Mftf/Data/ProductOptionValueData.xml
index 615f6aaa705bf..815f8cf16809b 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ProductOptionValueData.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/ProductOptionValueData.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd">
OptionValueDropDown1
1
diff --git a/app/code/Magento/Catalog/Test/Mftf/Data/StockItemData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/StockItemData.xml
new file mode 100644
index 0000000000000..46a3fa3657f2c
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/StockItemData.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ 1000
+ true
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/StoreLabelData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/StoreLabelData.xml
similarity index 78%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/StoreLabelData.xml
rename to app/code/Magento/Catalog/Test/Mftf/Data/StoreLabelData.xml
index 1a1d781de448c..097b388f45ea0 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/StoreLabelData.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Data/StoreLabelData.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd">
0
option1
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/LICENSE.txt b/app/code/Magento/Catalog/Test/Mftf/LICENSE.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/LICENSE.txt
rename to app/code/Magento/Catalog/Test/Mftf/LICENSE.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/LICENSE_AFL.txt b/app/code/Magento/Catalog/Test/Mftf/LICENSE_AFL.txt
similarity index 100%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/LICENSE_AFL.txt
rename to app/code/Magento/Catalog/Test/Mftf/LICENSE_AFL.txt
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/category-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/category-meta.xml
similarity index 92%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/category-meta.xml
rename to app/code/Magento/Catalog/Test/Mftf/Metadata/category-meta.xml
index 2699499a49900..0880315db5d6b 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/category-meta.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/category-meta.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
application/json
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/custom_attribute-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/custom_attribute-meta.xml
similarity index 80%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/custom_attribute-meta.xml
rename to app/code/Magento/Catalog/Test/Mftf/Metadata/custom_attribute-meta.xml
index e245a3b8bf8b9..aed9b7a979836 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/custom_attribute-meta.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/custom_attribute-meta.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
string
string
diff --git a/app/code/Magento/Catalog/Test/Mftf/Metadata/empty_extension_attribute-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/empty_extension_attribute-meta.xml
new file mode 100644
index 0000000000000..d8410593cb5b4
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/empty_extension_attribute-meta.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Metadata/frontend_label-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/frontend_label-meta.xml
new file mode 100644
index 0000000000000..d0bcbd3e5db97
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/frontend_label-meta.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ integer
+ string
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/product-meta.xml
similarity index 97%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product-meta.xml
rename to app/code/Magento/Catalog/Test/Mftf/Metadata/product-meta.xml
index b04b4bb98c854..212de2b39d363 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product-meta.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/product-meta.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
application/json
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_attribute-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_attribute-meta.xml
similarity index 96%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_attribute-meta.xml
rename to app/code/Magento/Catalog/Test/Mftf/Metadata/product_attribute-meta.xml
index bb09a0c86e50c..93396352ba506 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_attribute-meta.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_attribute-meta.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
application/json
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_attribute_media_gallery_entry-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_attribute_media_gallery_entry-meta.xml
similarity index 91%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_attribute_media_gallery_entry-meta.xml
rename to app/code/Magento/Catalog/Test/Mftf/Metadata/product_attribute_media_gallery_entry-meta.xml
index 1697941013156..8033e8c33a349 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_attribute_media_gallery_entry-meta.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_attribute_media_gallery_entry-meta.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
application/json
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_attribute_option-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_attribute_option-meta.xml
similarity index 86%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_attribute_option-meta.xml
rename to app/code/Magento/Catalog/Test/Mftf/Metadata/product_attribute_option-meta.xml
index 1b4f5d1a5254c..176afa8d58d7c 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_attribute_option-meta.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_attribute_option-meta.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
application/json
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_attribute_set-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_attribute_set-meta.xml
similarity index 87%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_attribute_set-meta.xml
rename to app/code/Magento/Catalog/Test/Mftf/Metadata/product_attribute_set-meta.xml
index 7b5e96d707573..eef82b07aaf4f 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_attribute_set-meta.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_attribute_set-meta.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
application/json
integer
diff --git a/app/code/Magento/Catalog/Test/Mftf/Metadata/product_extension_attribute-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_extension_attribute-meta.xml
new file mode 100644
index 0000000000000..8d0d1e66c81e3
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_extension_attribute-meta.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ stock_item
+
+
+ stock_item
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_link-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_link-meta.xml
similarity index 85%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_link-meta.xml
rename to app/code/Magento/Catalog/Test/Mftf/Metadata/product_link-meta.xml
index 899dc3a7f4a8c..5e631b2ea3a28 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_link-meta.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_link-meta.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
string
string
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_link_extension_attribute-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_link_extension_attribute-meta.xml
similarity index 76%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_link_extension_attribute-meta.xml
rename to app/code/Magento/Catalog/Test/Mftf/Metadata/product_link_extension_attribute-meta.xml
index 03527349541dc..07ea02f5b7aee 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_link_extension_attribute-meta.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_link_extension_attribute-meta.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
application/json
integer
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_links-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_links-meta.xml
similarity index 78%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_links-meta.xml
rename to app/code/Magento/Catalog/Test/Mftf/Metadata/product_links-meta.xml
index 34e8d0fca6833..56b3ee25ef735 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_links-meta.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_links-meta.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
application/json
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_option-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_option-meta.xml
similarity index 89%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_option-meta.xml
rename to app/code/Magento/Catalog/Test/Mftf/Metadata/product_option-meta.xml
index 730caf69113d6..adc5a33507af6 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_option-meta.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_option-meta.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
string
integer
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_option_value-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_option_value-meta.xml
similarity index 82%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_option_value-meta.xml
rename to app/code/Magento/Catalog/Test/Mftf/Metadata/product_option_value-meta.xml
index 47c5195b19172..f4273f5796830 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Metadata/product_option_value-meta.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/product_option_value-meta.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataOperation.xsd">
string
integer
diff --git a/app/code/Magento/Catalog/Test/Mftf/Metadata/stock_item-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/stock_item-meta.xml
new file mode 100644
index 0000000000000..e7e79d69055c6
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/stock_item-meta.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ integer
+ boolean
+
+
+ integer
+ boolean
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Metadata/store_label-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/store_label-meta.xml
new file mode 100644
index 0000000000000..abb9b003dc59e
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/store_label-meta.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ integer
+ string
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Metadata/validation_rule-meta.xml b/app/code/Magento/Catalog/Test/Mftf/Metadata/validation_rule-meta.xml
new file mode 100644
index 0000000000000..c568e52b2ab3c
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Metadata/validation_rule-meta.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ string
+ string
+
+
+ string
+ string
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Page/AdminCategoryEditPage.xml b/app/code/Magento/Catalog/Test/Mftf/Page/AdminCategoryEditPage.xml
new file mode 100644
index 0000000000000..cfefa8cb2c4bc
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Page/AdminCategoryEditPage.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Page/AdminCategoryPage.xml b/app/code/Magento/Catalog/Test/Mftf/Page/AdminCategoryPage.xml
similarity index 81%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Page/AdminCategoryPage.xml
rename to app/code/Magento/Catalog/Test/Mftf/Page/AdminCategoryPage.xml
index 7d0e7f4f99e42..7cabe0e18f0b6 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Page/AdminCategoryPage.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Page/AdminCategoryPage.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/PageObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributeFormPage.xml b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributeFormPage.xml
new file mode 100644
index 0000000000000..b04aff5f161da
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributeFormPage.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributeGridPage.xml b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributeGridPage.xml
new file mode 100644
index 0000000000000..a5de7453d9c23
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributeGridPage.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributeSetEditPage.xml b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributeSetEditPage.xml
new file mode 100644
index 0000000000000..4034f2ab075d4
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributeSetEditPage.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributeSetGridPage.xml b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributeSetGridPage.xml
new file mode 100644
index 0000000000000..0d879768eb494
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributeSetGridPage.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributesEditPage.xml b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributesEditPage.xml
new file mode 100644
index 0000000000000..4918041d2cd88
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductAttributesEditPage.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductCreatePage.xml b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductCreatePage.xml
new file mode 100644
index 0000000000000..35fa00efcfe8e
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductCreatePage.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductEditPage.xml b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductEditPage.xml
new file mode 100644
index 0000000000000..9312d4dfcfbe9
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductEditPage.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Page/AdminProductIndexPage.xml b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductIndexPage.xml
similarity index 76%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Page/AdminProductIndexPage.xml
rename to app/code/Magento/Catalog/Test/Mftf/Page/AdminProductIndexPage.xml
index 492cb0c95407a..66cd691176268 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Page/AdminProductIndexPage.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Page/AdminProductIndexPage.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/PageObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/Page/ProductCatalogPage.xml b/app/code/Magento/Catalog/Test/Mftf/Page/ProductCatalogPage.xml
new file mode 100644
index 0000000000000..742b46fcaf7ed
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Page/ProductCatalogPage.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Page/StorefrontCategoryPage.xml b/app/code/Magento/Catalog/Test/Mftf/Page/StorefrontCategoryPage.xml
new file mode 100644
index 0000000000000..c5b9fe869558e
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Page/StorefrontCategoryPage.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Page/StorefrontProductComparePage.xml b/app/code/Magento/Catalog/Test/Mftf/Page/StorefrontProductComparePage.xml
new file mode 100644
index 0000000000000..f0599a021d4c4
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Page/StorefrontProductComparePage.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Page/StorefrontProductPage.xml b/app/code/Magento/Catalog/Test/Mftf/Page/StorefrontProductPage.xml
similarity index 77%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Page/StorefrontProductPage.xml
rename to app/code/Magento/Catalog/Test/Mftf/Page/StorefrontProductPage.xml
index d6e135e9af24f..8fd59585938be 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Page/StorefrontProductPage.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Page/StorefrontProductPage.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/PageObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/README.md b/app/code/Magento/Catalog/Test/Mftf/README.md
new file mode 100644
index 0000000000000..e7a95609c394b
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/README.md
@@ -0,0 +1,3 @@
+# Catalog Functional Tests
+
+The Functional Test Module for **Magento Catalog** module.
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminAddProductsToOptionPanelSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminAddProductsToOptionPanelSection.xml
similarity index 83%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminAddProductsToOptionPanelSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminAddProductsToOptionPanelSection.xml
index 42d92966e3d45..7723e0fe330cd 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminAddProductsToOptionPanelSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminAddProductsToOptionPanelSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryBasicFieldSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryBasicFieldSection.xml
similarity index 96%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryBasicFieldSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryBasicFieldSection.xml
index 7de2390e5348a..3ed3763da19d6 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryBasicFieldSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryBasicFieldSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryContentSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryContentSection.xml
similarity index 82%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryContentSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryContentSection.xml
index d0e129e1bb441..59537274f23c9 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryContentSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryContentSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryMainActionsSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryMainActionsSection.xml
similarity index 81%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryMainActionsSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryMainActionsSection.xml
index e726e5bfb7c63..60a6d852bf6ef 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryMainActionsSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryMainActionsSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryMessagesSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryMessagesSection.xml
new file mode 100644
index 0000000000000..1214cfd2eb224
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryMessagesSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryModalSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryModalSection.xml
similarity index 76%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryModalSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryModalSection.xml
index d36256bf75d81..03b9d76778555 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryModalSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryModalSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryProductsGridSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryProductsGridSection.xml
similarity index 84%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryProductsGridSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryProductsGridSection.xml
index e5370c60ef570..540a97fd04e36 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryProductsGridSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryProductsGridSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryProductsSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryProductsSection.xml
new file mode 100644
index 0000000000000..dc254bdf15982
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryProductsSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategorySEOSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategorySEOSection.xml
similarity index 83%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategorySEOSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminCategorySEOSection.xml
index 0e01660d5fce9..35852abe3505e 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategorySEOSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategorySEOSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategorySidebarActionSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategorySidebarActionSection.xml
new file mode 100644
index 0000000000000..e53a9989d661c
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategorySidebarActionSection.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategorySidebarTreeSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategorySidebarTreeSection.xml
similarity index 85%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategorySidebarTreeSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminCategorySidebarTreeSection.xml
index 5e080bbb7fdba..524fac78bc1c1 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategorySidebarTreeSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategorySidebarTreeSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryWarningMessagesPopupSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryWarningMessagesPopupSection.xml
similarity index 76%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryWarningMessagesPopupSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryWarningMessagesPopupSection.xml
index b95f0d8bd2141..82b3b76df3d2e 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCategoryWarningMessagesPopupSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCategoryWarningMessagesPopupSection.xml
@@ -6,7 +6,7 @@
*/
-->
-
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCreateProductAttributeSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCreateProductAttributeSection.xml
similarity index 95%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCreateProductAttributeSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminCreateProductAttributeSection.xml
index 362a039e34122..e1eef15e9d476 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminCreateProductAttributeSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminCreateProductAttributeSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminEditProductAttributesSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminEditProductAttributesSection.xml
similarity index 83%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminEditProductAttributesSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminEditProductAttributesSection.xml
index bb0343c3a85c0..703e9e7ec70ac 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminEditProductAttributesSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminEditProductAttributesSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductAttributeGridSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeGridSection.xml
similarity index 82%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductAttributeGridSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeGridSection.xml
index f1347643cbd9d..820e03a0f5e98 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductAttributeGridSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeGridSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeSetActionSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeSetActionSection.xml
new file mode 100644
index 0000000000000..4c309584d4d56
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeSetActionSection.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductAttributeSetEditSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeSetEditSection.xml
similarity index 89%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductAttributeSetEditSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeSetEditSection.xml
index 9a69761ee1550..a2193bcafbb01 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductAttributeSetEditSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeSetEditSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductAttributeSetGridSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeSetGridSection.xml
similarity index 80%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductAttributeSetGridSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeSetGridSection.xml
index 0df7cbc65d6c5..08724222a3885 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductAttributeSetGridSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeSetGridSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductAttributeSetSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeSetSection.xml
similarity index 89%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductAttributeSetSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeSetSection.xml
index 2c99945b0989e..9e320d9e8b08d 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductAttributeSetSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeSetSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductCategoryCreationSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductCategoryCreationSection.xml
similarity index 83%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductCategoryCreationSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminProductCategoryCreationSection.xml
index a4566115099ef..81290bf281a56 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductCategoryCreationSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductCategoryCreationSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductContentSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductContentSection.xml
new file mode 100644
index 0000000000000..b73c630d6d963
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductContentSection.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductCustomizableOptionsSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductCustomizableOptionsSection.xml
similarity index 96%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductCustomizableOptionsSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminProductCustomizableOptionsSection.xml
index cb80dade856a7..8a6b5bf5eb842 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductCustomizableOptionsSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductCustomizableOptionsSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductFiltersSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductFiltersSection.xml
new file mode 100644
index 0000000000000..4c6c1020e190d
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductFiltersSection.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductFormActionSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductFormActionSection.xml
similarity index 84%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductFormActionSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminProductFormActionSection.xml
index e55a45d590910..ad6b5feb4e09e 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductFormActionSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductFormActionSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductFormChangeStoreSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductFormChangeStoreSection.xml
new file mode 100644
index 0000000000000..8c9e92d912bf3
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductFormChangeStoreSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductFormSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductFormSection.xml
similarity index 97%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductFormSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminProductFormSection.xml
index c81e4bd79997a..dd297bf301fa0 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductFormSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductFormSection.xml
@@ -6,17 +6,19 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
-
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridActionSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridActionSection.xml
new file mode 100644
index 0000000000000..4ce9580405a97
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridActionSection.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductGridConfirmActionSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridConfirmActionSection.xml
similarity index 77%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductGridConfirmActionSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridConfirmActionSection.xml
index c9ea9993c7bd3..d8567df81b6b3 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductGridConfirmActionSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridConfirmActionSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductGridFilterSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridFilterSection.xml
similarity index 94%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductGridFilterSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridFilterSection.xml
index b0b8d90c8625e..4683576bf9516 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductGridFilterSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridFilterSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductGridPaginationSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridPaginationSection.xml
similarity index 87%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductGridPaginationSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridPaginationSection.xml
index a60791b3e23db..9ef89e1260fa4 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductGridPaginationSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridPaginationSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductGridSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridSection.xml
similarity index 85%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductGridSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridSection.xml
index e4f571f7f0d83..de3c2b731a3d5 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductGridSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridSection.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
@@ -16,6 +16,7 @@
+
@@ -26,5 +27,6 @@
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridTableHeaderSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridTableHeaderSection.xml
new file mode 100644
index 0000000000000..fc6ccea20d3c2
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductGridTableHeaderSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductImagesSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductImagesSection.xml
new file mode 100644
index 0000000000000..ce10b1e52aeb0
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductImagesSection.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductMessagesSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductMessagesSection.xml
new file mode 100644
index 0000000000000..5f2e6bd6cf721
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductMessagesSection.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductModalSlideGridSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductModalSlideGridSection.xml
new file mode 100644
index 0000000000000..bef213e6cdae0
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductModalSlideGridSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductRelatedUpSellCrossSellSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductRelatedUpSellCrossSellSection.xml
similarity index 80%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductRelatedUpSellCrossSellSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminProductRelatedUpSellCrossSellSection.xml
index 225bedb6fd2e6..636a7b5c85e8d 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductRelatedUpSellCrossSellSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductRelatedUpSellCrossSellSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductSEOSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductSEOSection.xml
new file mode 100644
index 0000000000000..1d49d05363612
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminProductSEOSection.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminUpdateAttributesSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/AdminUpdateAttributesSection.xml
similarity index 93%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminUpdateAttributesSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/AdminUpdateAttributesSection.xml
index 7ef8d7706ba20..3048f0e3f5669 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminUpdateAttributesSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/AdminUpdateAttributesSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontCategoryFilterSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontCategoryFilterSection.xml
new file mode 100644
index 0000000000000..631cb36e16817
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontCategoryFilterSection.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontCategoryMainSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontCategoryMainSection.xml
similarity index 89%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontCategoryMainSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/StorefrontCategoryMainSection.xml
index 45a85386fe726..a60e3bb05cc92 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontCategoryMainSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontCategoryMainSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontCategoryProductSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontCategoryProductSection.xml
new file mode 100644
index 0000000000000..923414e60cf5f
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontCategoryProductSection.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontCategorySidebarSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontCategorySidebarSection.xml
similarity index 79%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontCategorySidebarSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/StorefrontCategorySidebarSection.xml
index 406e9f5abd434..9cd35f65c297a 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontCategorySidebarSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontCategorySidebarSection.xml
@@ -6,7 +6,7 @@
*/
-->
-
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontComparisonSidebarSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontComparisonSidebarSection.xml
similarity index 81%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontComparisonSidebarSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/StorefrontComparisonSidebarSection.xml
index 615d37f75cd48..0fdda3eaae952 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontComparisonSidebarSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontComparisonSidebarSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontFooterSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontFooterSection.xml
new file mode 100644
index 0000000000000..cf956004ae498
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontFooterSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontHeaderSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontHeaderSection.xml
new file mode 100644
index 0000000000000..6b0130eefc39b
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontHeaderSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontMessagesSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontMessagesSection.xml
new file mode 100644
index 0000000000000..1a9406b9975e6
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontMessagesSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontNavigationSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontNavigationSection.xml
similarity index 77%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontNavigationSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/StorefrontNavigationSection.xml
index 285640ec6a30a..ad575b640bd20 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontNavigationSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontNavigationSection.xml
@@ -6,7 +6,7 @@
*/
-->
-
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontProducRelatedProductsSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProducRelatedProductsSection.xml
similarity index 82%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontProducRelatedProductsSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProducRelatedProductsSection.xml
index 9165697051d0f..e15723582dbf0 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontProducRelatedProductsSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProducRelatedProductsSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontProductActionSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductActionSection.xml
similarity index 79%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontProductActionSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductActionSection.xml
index c2360efc05fa4..65d6b7c5f61cb 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontProductActionSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductActionSection.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductCompareMainSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductCompareMainSection.xml
new file mode 100644
index 0000000000000..728f9a5a174cd
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductCompareMainSection.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductInfoDetailsSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductInfoDetailsSection.xml
new file mode 100644
index 0000000000000..40f49fc2cc77b
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductInfoDetailsSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductInfoMainSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductInfoMainSection.xml
new file mode 100644
index 0000000000000..f0ca8cb74e3e1
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductInfoMainSection.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductMediaSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductMediaSection.xml
new file mode 100644
index 0000000000000..0273b39f48aba
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductMediaSection.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontProductMoreInformationSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductMoreInformationSection.xml
similarity index 76%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontProductMoreInformationSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductMoreInformationSection.xml
index e6269631274eb..fc2102e073de3 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontProductMoreInformationSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductMoreInformationSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontProductPageSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductPageSection.xml
similarity index 80%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontProductPageSection.xml
rename to app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductPageSection.xml
index a3703839601fd..632ee2dea68eb 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontProductPageSection.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductPageSection.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddDefaultImageSimpleProductTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminAddDefaultImageSimpleProductTest.xml
similarity index 92%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddDefaultImageSimpleProductTest.xml
rename to app/code/Magento/Catalog/Test/Mftf/Test/AdminAddDefaultImageSimpleProductTest.xml
index 3b3693d0ff8a6..c9b6e033a2fd8 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddDefaultImageSimpleProductTest.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminAddDefaultImageSimpleProductTest.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddDefaultImageVirtualProductTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminAddDefaultImageVirtualProductTest.xml
similarity index 93%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddDefaultImageVirtualProductTest.xml
rename to app/code/Magento/Catalog/Test/Mftf/Test/AdminAddDefaultImageVirtualProductTest.xml
index 292ba20f48bd3..add917199e2eb 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddDefaultImageVirtualProductTest.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminAddDefaultImageVirtualProductTest.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddImageForCategoryTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminAddImageForCategoryTest.xml
similarity index 91%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddImageForCategoryTest.xml
rename to app/code/Magento/Catalog/Test/Mftf/Test/AdminAddImageForCategoryTest.xml
index 04e34871c8b73..6ee72877a0da0 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddImageForCategoryTest.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminAddImageForCategoryTest.xml
@@ -7,7 +7,7 @@
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddImageToWYSIWYGCatalogTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminAddImageToWYSIWYGCatalogTest.xml
similarity index 94%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddImageToWYSIWYGCatalogTest.xml
rename to app/code/Magento/Catalog/Test/Mftf/Test/AdminAddImageToWYSIWYGCatalogTest.xml
index 43ce7e59ba621..479247ade8cb2 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddImageToWYSIWYGCatalogTest.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminAddImageToWYSIWYGCatalogTest.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
diff --git a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddImageToWYSIWYGProductTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminAddImageToWYSIWYGProductTest.xml
similarity index 98%
rename from dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddImageToWYSIWYGProductTest.xml
rename to app/code/Magento/Catalog/Test/Mftf/Test/AdminAddImageToWYSIWYGProductTest.xml
index e0582fff6c3c7..d6e055c43322a 100644
--- a/dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Test/AdminAddImageToWYSIWYGProductTest.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminAddImageToWYSIWYGProductTest.xml
@@ -6,7 +6,7 @@
*/
-->
+ xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">