Skip to content

Commit cece001

Browse files
committed
MC-39911: [MFTF] AdminFPTIncludingAndExcludingTaxVisibleOnNegotiableQuotePageTest fails because of bad design
1 parent ad29452 commit cece001

File tree

6 files changed

+115
-2
lines changed

6 files changed

+115
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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="AdminDeleteAllProductAttributesFilteredByCodeActionGroup">
11+
<annotations>
12+
<description>Open product attributes grid filter it by attribute code and delete all found attributes one by one.</description>
13+
</annotations>
14+
<arguments>
15+
<argument name="codeFilter" type="string" defaultValue="fake-code"/>
16+
</arguments>
17+
18+
<amOnPage url="{{AdminProductAttributeGridPage.url}}" stepKey="navigateToProductAttributeGrid"/>
19+
<!-- It sometimes is loading too long for default 10s -->
20+
<waitForPageLoad time="60" stepKey="waitForPageFullyLoaded"/>
21+
<click selector="{{AdminProductAttributeGridSection.ResetFilter}}" stepKey="clearExistingFilters"/>
22+
<fillField selector="{{AdminProductAttributeGridSection.attributeCodeFilter}}" userInput="{{codeFilter}}" stepKey="fillAttributeCodeFilterField"/>
23+
<click selector="{{AdminProductAttributeGridSection.Search}}" stepKey="applyGridFilter"/>
24+
<helper class="\Magento\Catalog\Test\Mftf\Helper\CatalogHelper" method="deleteAllProductAttributesOneByOne" stepKey="deleteAllProductAttributesOneByOne">
25+
<argument name="firstNotEmptyRow">{{AdminDataGridTableSection.firstNotEmptyRow2}}</argument>
26+
<argument name="modalAcceptButton">{{AdminConfirmationModalSection.ok}}</argument>
27+
<argument name="deleteButton">{{AdminMainActionsSection.delete}}</argument>
28+
<argument name="successMessageContainer">{{AdminMessagesSection.success}}</argument>
29+
<argument name="successMessage">You deleted the product attribute.</argument>
30+
</helper>
31+
<waitForElementVisible selector="{{AdminDataGridTableSection.dataGridEmpty}}" stepKey="waitDataGridEmptyMessageAppears"/>
32+
<see selector="{{AdminDataGridTableSection.dataGridEmpty}}" userInput="We couldn't find any records." stepKey="assertDataGridEmptyMessage"/>
33+
<click selector="{{AdminProductAttributeGridSection.ResetFilter}}" stepKey="clearExistingFiltersAgain"/>
34+
</actionGroup>
35+
</actionGroups>
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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\Catalog\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 Catalog module.
17+
*/
18+
class CatalogHelper extends Helper
19+
{
20+
/**
21+
* Delete all product attributes one by one.
22+
*
23+
* @param string $firstNotEmptyRow
24+
* @param string $modalAcceptButton
25+
* @param string $deleteButton
26+
* @param string $successMessageContainer
27+
* @param string $successMessage
28+
* @retrun void
29+
*/
30+
public function deleteAllProductAttributesOneByOne(
31+
string $firstNotEmptyRow,
32+
string $modalAcceptButton,
33+
string $deleteButton,
34+
string $successMessageContainer,
35+
string $successMessage
36+
): void {
37+
try {
38+
/** @var MagentoWebDriver $webDriver */
39+
$magentoWebDriver = $this->getModule('\Magento\FunctionalTestingFramework\Module\MagentoWebDriver');
40+
/** @var FacebookWebDriver $webDriver */
41+
$webDriver = $magentoWebDriver->webDriver;
42+
$rows = $webDriver->findElements(WebDriverBy::cssSelector($firstNotEmptyRow));
43+
while (!empty($rows)) {
44+
$rows[0]->click();
45+
$magentoWebDriver->waitForPageLoad(30);
46+
$magentoWebDriver->click($deleteButton);
47+
$magentoWebDriver->waitForPageLoad(30);
48+
$magentoWebDriver->waitForElementVisible($modalAcceptButton, 10);
49+
$magentoWebDriver->waitForPageLoad(60);
50+
$magentoWebDriver->click($modalAcceptButton);
51+
$magentoWebDriver->waitForPageLoad(60);
52+
$magentoWebDriver->waitForLoadingMaskToDisappear();
53+
$magentoWebDriver->waitForElementVisible($successMessageContainer, 10);
54+
$magentoWebDriver->see($successMessage, $successMessageContainer);
55+
$rows = $webDriver->findElements(WebDriverBy::cssSelector($firstNotEmptyRow));
56+
}
57+
} catch (\Exception $e) {
58+
$this->fail($e->getMessage());
59+
}
60+
}
61+
}

app/code/Magento/Catalog/Test/Mftf/Section/AdminProductAttributeGridSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
<element name="FirstRow" type="button" selector="//*[@id='attributeGrid_table']/tbody/tr[1]" timeout="30"/>
1818
<element name="FilterByAttributeCode" type="input" selector="#attributeGrid_filter_attribute_code"/>
1919
<element name="attributeLabelFilter" type="input" selector="//input[@name='frontend_label']"/>
20+
<element name="attributeCodeFilter" type="input" selector=".data-grid-filters input[name='attribute_code']"/>
2021
<element name="attributeCodeColumn" type="text" selector="//div[@id='attributeGrid']//td[contains(@class,'col-attr-code col-attribute_code')]"/>
2122
<element name="defaultLabelColumn" type="text" selector="//div[@id='attributeGrid']//table[@id='attributeGrid_table']//tbody//td[contains(@class,'col-label col-frontend_label')]"/>
2223
<element name="isVisibleColumn" type="text" selector="//div[@id='attributeGrid']//td[contains(@class,'a-center col-is_visible')]"/>

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,6 @@
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" />
2424
<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"/>
25+
<element name="firstNotEmptyRow2" type="block" selector="table.data-grid tbody tr:not(.data-grid-tr-no-data):nth-of-type(1)" timeout="30"/>
2526
</section>
2627
</sections>

app/code/Magento/Weee/Test/Mftf/Data/FixedProductAttributeData.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
1111
<entity name="productFPTAttribute" type="ProductAttribute">
12-
<data key="attribute_code" unique="suffix">attribute</data>
12+
<data key="attribute_code" unique="suffix">weee_attribute</data>
1313
<data key="is_unique">true</data>
1414
<data key="frontend_input">weee</data>
1515
<data key="is_used_in_grid">true</data>
1616
<data key="is_visible_in_grid">true</data>
1717
<data key="is_filterable_in_grid">true</data>
18-
<requiredEntity type="FrontendLabel">ProductAttributeFrontendLabel</requiredEntity>
18+
<requiredEntity type="FrontendLabel">ProductAttributeFrontendLabelWeee</requiredEntity>
1919
</entity>
2020
</entities>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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+
9+
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
11+
<entity name="ProductAttributeFrontendLabelWeee" type="FrontendLabel">
12+
<data key="store_id">0</data>
13+
<data key="label" unique="suffix">weee-attribute</data>
14+
</entity>
15+
</entities>

0 commit comments

Comments
 (0)