Skip to content

Commit f0e9d74

Browse files
committed
Merge remote-tracking branch 'origin/MC-34080' into 2.4-develop-php74-pr41
2 parents 3dacef9 + 5858f0e commit f0e9d74

File tree

4 files changed

+94
-3
lines changed

4 files changed

+94
-3
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
10+
<actionGroup name="AdminCatalogPriceRuleDeleteAllActionGroup">
11+
<annotations>
12+
<description>Open Catalog Price Rule grid and delete all rules one by one. Need to avoid interference with other tests that test catalog price rules.</description>
13+
</annotations>
14+
15+
<amOnPage url="{{AdminCatalogPriceRuleGridPage.url}}" stepKey="goToAdminCatalogPriceRuleGridPage"/>
16+
<!-- It sometimes is loading too long for default 10s -->
17+
<waitForPageLoad time="60" stepKey="waitForPageFullyLoaded"/>
18+
<conditionalClick selector="{{AdminDataGridHeaderSection.clearFilters}}" dependentSelector="{{AdminDataGridHeaderSection.clearFilters}}" visible="true" stepKey="clearExistingFilters"/>
19+
<helper class="\Magento\CatalogRule\Test\Mftf\Helper\CatalogPriceRuleHelper" method="deleteAllCatalogPriceRules" stepKey="deleteAllCatalogPriceRulesOneByOne">
20+
<argument name="firstNotEmptyRow">{{AdminDataGridTableSection.firstNotEmptyRow}}</argument>
21+
<argument name="modalAcceptButton">{{AdminConfirmationModalSection.ok}}</argument>
22+
<argument name="deleteButton">{{AdminMainActionsSection.delete}}</argument>
23+
<argument name="successMessageContainer">{{AdminMessagesSection.success}}</argument>
24+
<argument name="successMessage">You deleted the rule.</argument>
25+
</helper>
26+
<waitForElementVisible selector="{{AdminDataGridTableSection.dataGridEmpty}}" stepKey="waitDataGridEmptyMessageAppears"/>
27+
<see selector="{{AdminDataGridTableSection.dataGridEmpty}}" userInput="We couldn't find any records." stepKey="assertDataGridEmptyMessage"/>
28+
</actionGroup>
29+
</actionGroups>
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\CatalogRule\Test\Mftf\Helper;
9+
10+
use Facebook\WebDriver\Remote\RemoteWebDriver as FacebookWebDriver;
11+
use Facebook\WebDriver\WebDriverBy;
12+
use Magento\FunctionalTestingFramework\Helper\Helper;
13+
use Magento\FunctionalTestingFramework\Module\MagentoWebDriver;
14+
15+
/**
16+
* Class for MFTF helpers for CatalogRule module.
17+
*/
18+
class CatalogPriceRuleHelper extends Helper
19+
{
20+
/**
21+
* Delete all Catalog Price Rules obe by one.
22+
*
23+
* @param string $emptyRow
24+
* @param string $modalAceptButton
25+
* @param string $deleteButton
26+
* @param string $successMessageContainer
27+
* @param string $successMessage
28+
*
29+
* @return void
30+
*/
31+
public function deleteAllCatalogPriceRules(
32+
string $firstNotEmptyRow,
33+
string $modalAcceptButton,
34+
string $deleteButton,
35+
string $successMessageContainer,
36+
string $successMessage
37+
): void {
38+
try {
39+
/** @var MagentoWebDriver $webDriver */
40+
$magentoWebDriver = $this->getModule('\Magento\FunctionalTestingFramework\Module\MagentoWebDriver');
41+
/** @var FacebookWebDriver $webDriver */
42+
$webDriver = $magentoWebDriver->webDriver;
43+
$rows = $webDriver->findElements(WebDriverBy::cssSelector($firstNotEmptyRow));
44+
while (!empty($rows)) {
45+
$rows[0]->click();
46+
$magentoWebDriver->waitForPageLoad(30);
47+
$magentoWebDriver->click($deleteButton);
48+
$magentoWebDriver->waitForPageLoad(30);
49+
$magentoWebDriver->waitForElementVisible($modalAcceptButton, 10);
50+
$magentoWebDriver->waitForPageLoad(60);
51+
$magentoWebDriver->click($modalAcceptButton);
52+
$magentoWebDriver->waitForPageLoad(60);
53+
$magentoWebDriver->waitForLoadingMaskToDisappear();
54+
$magentoWebDriver->waitForElementVisible($successMessageContainer, 10);
55+
$magentoWebDriver->see($successMessage, $successMessageContainer);
56+
$rows = $webDriver->findElements(WebDriverBy::cssSelector($firstNotEmptyRow));
57+
}
58+
} catch (\Exception $e) {
59+
$this->fail($e->getMessage());
60+
}
61+
}
62+
}

app/code/Magento/Sales/Test/Mftf/Test/AdminReorderWithCatalogPriceRuleDiscountTest.xml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
<!--Create product-->
2525
<createData entity="SimpleProduct2" stepKey="createSimpleProductApi"/>
2626
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
27+
<actionGroup ref="AdminCatalogPriceRuleDeleteAllActionGroup" stepKey="deleteAllCatalogPriceRule"/>
2728
<!--Create the catalog price rule -->
2829
<createData entity="CatalogRuleToPercent" stepKey="createCatalogRule"/>
2930
<!--Create order via API-->
@@ -43,9 +44,7 @@
4344

4445
<after>
4546
<deleteData createDataKey="createSimpleProductApi" stepKey="deleteSimpleProductApi"/>
46-
<actionGroup ref="RemoveCatalogPriceRuleActionGroup" stepKey="deleteCatalogPriceRule">
47-
<argument name="ruleName" value="{{CatalogRuleToPercent.name}}"/>
48-
</actionGroup>
47+
<actionGroup ref="AdminCatalogPriceRuleDeleteAllActionGroup" stepKey="deleteAllCatalogPriceRule"/>
4948
<actionGroup ref="AdminLogoutActionGroup" stepKey="logoutFromAdmin"/>
5049
</after>
5150

app/code/Magento/Ui/Test/Mftf/Section/AdminDataGridTableSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,6 @@
2121
<element name="dataGridEmpty" type="block" selector=".data-grid-tr-no-data td"/>
2222
<element name="rowTemplateStrict" type="block" selector="//tbody/tr[td[*[text()[normalize-space()='{{text}}']]]]" parameterized="true" />
2323
<element name="rowTemplate" type="block" selector="//tbody/tr[td[*[contains(.,normalize-space('{{text}}'))]]]" parameterized="true" timeout="30" />
24+
<element name="firstNotEmptyRow" type="block" selector="table.data-grid tbody tr[data-role=row]:not(.data-grid-tr-no-data):nth-of-type(1)" timeout="30"/>
2425
</section>
2526
</sections>

0 commit comments

Comments
 (0)