Skip to content

Commit 320a0fe

Browse files
shashikant.kumarshashikant.kumar
authored andcommitted
AC-4114
Alter Category Anchor setting
1 parent 24a2c46 commit 320a0fe

File tree

5 files changed

+227
-0
lines changed

5 files changed

+227
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="AdminToggleAnchorSwitchActionGroup">
12+
<annotations>
13+
<description>Admin enable or disable Anchor Switch for any category.</description>
14+
</annotations>
15+
<scrollTo selector="{{CategoryDisplaySettingsSection.DisplaySettingTab}}" x="0" y="-80" stepKey="scrollToDisplaySetting1"/>
16+
<click selector="{{CategoryDisplaySettingsSection.DisplaySettingTab}}" stepKey="selectDisplaySetting1"/>
17+
<click selector="{{AdminCategoryBasicFieldSection.anchorSwitch}}" stepKey="toggleSwitchAnchorCategory"/>
18+
<wait time="10" stepKey="waitToChangeAnchorSwitchStatus"/>
19+
<click selector="{{AdminCategoryMainActionsSection.SaveButton}}" stepKey="saveSubCategory1"/>
20+
<magentoCLI command="indexer:reindex" stepKey="performReindex"/>
21+
<magentoCLI command="cache:flush" stepKey="cleanCache"/>
22+
</actionGroup>
23+
</actionGroups>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
9+
<!-- On a category page with layered navigation, verify if the category filter item is present -->
10+
<actionGroup name="AssertStorefrontLayeredNavigationCategoryAndPriceActionGroup">
11+
<annotations>
12+
<description>Layered Navigation Category And Price validation.</description>
13+
</annotations>
14+
<arguments>
15+
<argument name="minPrice" type="string"/>
16+
<argument name="maxPrice" type="string"/>
17+
<argument name="count" type="string"/>
18+
<argument name="minPrice2" type="string"/>
19+
</arguments>
20+
<!-- Verify category and filter item is present -->
21+
<see selector="{{StorefrontCategorySidebarSection.layeredFilterBlock}}" userInput="Category" stepKey="seeCategoryFilterInLayeredNav"/>
22+
<click selector="{{StorefrontCategorySidebarSection.expandCategoryLayeredNavigationButton}}" stepKey="expandCategoryLayeredNavigation"/>
23+
<seeElement selector="{{StorefrontCategorySidebarSection.seeLayeredNavigationCategory}}" stepKey="verifyCat"/>
24+
<seeElement selector="{{StorefrontCategorySidebarSection.seeLayeredNavigationCategoryProductQty}}" stepKey="verifyQuantity"/>
25+
<click selector="{{StorefrontCategorySidebarSection.expandPriceLayeredNavigationButton}}" stepKey="expandPriceLayeredNavigation"/>
26+
<!-- <seeElement selector="{{StorefrontCategorySidebarSection.seeLayeredNavigationFirstPriceRange(minPrice maxPrice count)}}" stepKey="verifyPriceRange1"/>
27+
<seeElement selector="{{StorefrontCategorySidebarSection.seeLayeredNavigationSecondPriceRange(minPrice2 count)}}" stepKey="verifyPriceRange2"/>
28+
-->
29+
<seeElement selector="//a//span[@class='price' and text()='{{minPrice}}']/..//span[@class='price' and text()='{{maxPrice}}']/..//span[@class='count' and text()=( {{count}})]" stepKey="verifyPriceRange1"/>
30+
<seeElement selector="//a//span[@class='price' and text()='{{minPrice2}}']/../..//a[text()=' and above']/..//span[@class='count' and text()=( {{count}})]" stepKey="verifyPriceRange2"/>
31+
</actionGroup>
32+
</actionGroups>

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,11 @@
2525
<element name="scheduleDesignUpdateTab" type="block" selector="div[data-index='schedule_design_update']" timeout="15"/>
2626
<element name="categoryNameRequiredField" type="text" selector="//label[@class='admin__field-error' and contains(text(),'This is a required field.')]" timeout="15"/>
2727
<element name="urlExistsErrorMessage" type="text" selector="//div[@class='message message-error error']//h4[contains(text(),'The value specified in the URL Key field would generate a URL that already exists.')]" timeout="30"/>
28+
<element name="presenceProductsInCategory" type="text" selector="//div[@class='admin__data-grid-wrap admin__data-grid-wrap-static']//td[3]" timeout="30"/>
29+
<element name="anchorSwitch" type="input" selector="//input[@name='is_anchor']/../..//div[@class='admin__actions-switch']" timeout="30"/>
30+
31+
<element name="dragSubCategory" type="text" selector="//div[@class='x-tree-node-el folder active-category x-tree-node-leaf x-tree-selected']//a/span[contains(text(),'{{var1}}')]" parameterized="true"/>
32+
<element name="grabPopUpText" type="input" selector="//div[@class='modal-inner-wrap']//div[@data-id='information-dialog-category']//div[text()='This operation can take a long time']"/>
33+
<element name="acceptPopUp" type="input" selector="//div[@class='modal-inner-wrap']//button[@class='action-primary']/span[text()='Ok']"/>
2834
</section>
2935
</sections>

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,15 @@
2020
<element name="enabledFilterOptionItemByLabel" type="text" selector="//div[contains(@class, 'filter-options')]//li[@class='item']//a[contains(text(), '{{optionLabel}}')]" parameterized="true" timeout="30"/>
2121
<element name="disabledFilterOptionItemByLabel" type="text" selector="//div[contains(@class, 'filter-options')]//li[@class='item' and contains(text(), '{{optionLabel}}')]" parameterized="true" timeout="30"/>
2222
<element name="visibleOptionQty" type="text" selector=".filter-options-item.active .items li:nth-child({{itemPosition}}) a .count" parameterized="true" timeout="30"/>
23+
<element name="shopByCategoryLinkButton" type="button" selector="//div[@class='sidebar sidebar-main']//strong[text()='Shop By']/../..//dt[text()='Category']/..//a[text()='{{var1}}']/..//span[contains(text(),' 1 ')]" parameterized="true"/>
24+
25+
<element name="expandCategoryLayeredNavigationButton" type="button" selector="//div[@class='filter-options-title'][text()='Category']"/>
26+
<element name="seeLayeredNavigationCategory" type="button" selector="//div[@class='filter-options-content']//a[contains(text(),'SecondLevel')]"/>
27+
<element name="seeLayeredNavigationCategoryProductQty" type="button" selector="//*[@id='narrow-by-list']/div[1]/div[2]/ol/li/a/span"/>
28+
29+
<element name="expandPriceLayeredNavigationButton" type="button" selector="//div[@class='filter-options-title'][text()='Price']"/>
30+
<element name="seeLayeredNavigationFirstPriceRange" type="button" selector="//a//span[@class='price' and text()='{{minPrice}}']/..//span[@class='price' and text()='{{maxPrice}}']/..//span[@class='count' and text()=( {{count}})]" parameterized="true"/>
31+
<element name="seeLayeredNavigationSecondPriceRange" type="button" selector="//a//span[@class='price' and text()='{{minPrice2}}']/../..//a[text()=' and above']/..//span[@class='count' and text()=( {{count}})]" parameterized="true"/>
32+
2333
</section>
2434
</sections>
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
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+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11+
<test name="SampleTest">
12+
<annotations>
13+
<stories value="Admin Can Alter Category Anchor setting"/>
14+
<title value="Alter Category Anchor setting"/>
15+
<description value="Admin Can Alter Category Anchor setting and it should work perfectly"/>
16+
<severity value="CRITICAL"/>
17+
<testCaseId value="AC-4114"/>
18+
</annotations>
19+
<before>
20+
<createData entity="_defaultCategory" stepKey="createDefaultCategory"/>
21+
<createData entity="Two_nested_categories" stepKey="createTwoLevelNestedCategories">
22+
<requiredEntity createDataKey="createDefaultCategory"/>
23+
</createData>
24+
<createData entity="SimpleProductQty100" stepKey="createFirstSimpleProduct">
25+
<requiredEntity createDataKey="createDefaultCategory"/>
26+
<field key="name">Simple1</field>
27+
<field key="price">90</field>
28+
</createData>
29+
<createData entity="ApiSimpleProduct" stepKey="createSecondSimpleProduct">
30+
<requiredEntity createDataKey="createTwoLevelNestedCategories"/>
31+
<field key="name">Simple2</field>
32+
<field key="price">10</field>
33+
</createData>
34+
</before>
35+
<after>
36+
<deleteData createDataKey="createFirstSimpleProduct" stepKey="deleteFirstProduct"/>
37+
<deleteData createDataKey="createSecondSimpleProduct" stepKey="deleteSecondProduct"/>
38+
<deleteData createDataKey="createTwoLevelNestedCategories" stepKey="deleteSubCategory"/>
39+
<deleteData createDataKey="createDefaultCategory" stepKey="deleteMainCategory"/>
40+
</after>
41+
<actionGroup ref="StorefrontGoToCategoryPageActionGroup" stepKey="openCategoryPage">
42+
<argument name="categoryName" value="$$createDefaultCategory.name$$"/>
43+
</actionGroup>
44+
<see userInput="2" selector="{{StorefrontCategoryMainSection.productCount}} span" stepKey="assertProductCountFirstTime"/>
45+
<actionGroup ref="AssertStorefrontProductIsPresentOnCategoryPageActionGroup" stepKey="seeFirstSimpleProductNameOnCategoryPage">
46+
<argument name="productName" value="$$createFirstSimpleProduct.name$$"/>
47+
</actionGroup>
48+
<actionGroup ref="AssertStorefrontProductIsPresentOnCategoryPageActionGroup" stepKey="seeSecondSimpleProductNameOnCategoryPage">
49+
<argument name="productName" value="$$createSecondSimpleProduct.name$$"/>
50+
</actionGroup>
51+
<actionGroup ref="AssertStorefrontLayeredNavigationCategoryAndPriceActionGroup" stepKey="checkCategoryAndPriceLayeredNavigationIsPresent">
52+
<argument name="minPrice" value="$10.00"/>
53+
<argument name="maxPrice" value="$19.99"/>
54+
<argument name="count" value="1"/>
55+
<argument name="minPrice2" value="$90.00"/>
56+
</actionGroup>
57+
<!--Goto Category in admin side and do validation for single Product visibility validation-->
58+
<actionGroup ref="AdminLoginActionGroup" stepKey="adminLogin"/>
59+
<actionGroup ref="AdminOpenCategoryGridPageActionGroup" stepKey="openAdminCategoryPage"/>
60+
<actionGroup ref="ClearFiltersAdminDataGridActionGroup" stepKey="resetGridFilters"/>
61+
<actionGroup ref="AdminEditCategoryInGridPageActionGroup" stepKey="editCategoryItem">
62+
<argument name="categoryName" value="$createDefaultCategory.name$"/>
63+
</actionGroup>
64+
<actionGroup ref="AdminCategoryPageOpenProductsInCategorySectionActionGroup" stepKey="clickAdminCategoryProductSection"/>
65+
<comment userInput="Comment is added to preserve the step key for backward compatibility" stepKey="waitForSectionHeaderToLoad"/>
66+
<see userInput="$$createFirstSimpleProduct.name$$" selector="{{AdminCategoryBasicFieldSection.presenceProductsInCategory}}" stepKey="seeSingleProduct"/>
67+
<dontSee selector="{{AdminCategoryProductsGridSection.productGridNameProduct($$createSecondSimpleProduct.name$$)}}"
68+
userInput="$$createSecondSimpleProduct.name$$" stepKey="doNotSeeSecondProduct"/>
69+
<!--Disable anchor Category and do validation for Product and Layered Navigation on StoreFront-->
70+
<actionGroup ref="AdminToggleAnchorSwitchActionGroup" stepKey="disableAnchorSwitch"/>
71+
<actionGroup ref="AssertAdminCategorySaveSuccessMessageActionGroup" stepKey="seeSuccessMessage"/>
72+
<actionGroup ref="StorefrontOpenHomePageActionGroup" stepKey="goToHomePage"/>
73+
<click selector="{{StorefrontHeaderSection.NavigationCategoryByName($$createDefaultCategory.name$$)}}" stepKey="cartClickCategory"/>
74+
<seeInTitle userInput="$$createDefaultCategory.name$$" stepKey="assertCategoryNameInTitle"/>
75+
<see userInput="$$createDefaultCategory.name$$" selector="{{StorefrontCategoryMainSection.CategoryTitle}}" stepKey="assertCategoryName"/>
76+
<see userInput="1" selector="{{StorefrontCategoryMainSection.productCount}} span" stepKey="assertProductCount"/>
77+
<seeElement selector="{{StorefrontCategoryProductSection.listedProduct('1')}}" stepKey="assertSimpleProductPresence"/>
78+
<see userInput="$$createFirstSimpleProduct.name$$" selector="{{StorefrontCategoryProductSection.ProductTitleByNumber('1')}}" stepKey="checkTitle"/>
79+
<see userInput="$90.00" selector="{{StorefrontCategoryProductSection.ProductPriceByNumber('1')}}" stepKey="checkPrice"/>
80+
<seeElement selector="{{StorefrontCategorySidebarSection.shopByCategoryLinkButton($$createTwoLevelNestedCategories.name$$)}}" stepKey="verifyShopByCatLayeredNavigation"/>
81+
<!--Enable anchor Category and do validation for Product and Layered Navigation on StoreFront-->
82+
<actionGroup ref="AdminOpenCategoryGridPageActionGroup" stepKey="openAdminCategoryPage1"/>
83+
<actionGroup ref="ClearFiltersAdminDataGridActionGroup" stepKey="resetGridFilters1"/>
84+
<actionGroup ref="AdminEditCategoryInGridPageActionGroup" stepKey="editCategoryItem1">
85+
<argument name="categoryName" value="$createDefaultCategory.name$"/>
86+
</actionGroup>
87+
<actionGroup ref="AdminToggleAnchorSwitchActionGroup" stepKey="enableAnchorSwitch"/>
88+
<actionGroup ref="AssertAdminCategorySaveSuccessMessageActionGroup" stepKey="seeSuccessMessage1"/>
89+
<actionGroup ref="StorefrontGoToCategoryPageActionGroup" stepKey="openCategoryPage1">
90+
<argument name="categoryName" value="$$createDefaultCategory.name$$"/>
91+
</actionGroup>
92+
<actionGroup ref="AssertStorefrontProductIsPresentOnCategoryPageActionGroup" stepKey="seeFirstSimpleProductNameOnCategoryPage1">
93+
<argument name="productName" value="$$createFirstSimpleProduct.name$$"/>
94+
</actionGroup>
95+
<actionGroup ref="AssertStorefrontProductIsPresentOnCategoryPageActionGroup" stepKey="seeSecondSimpleProductNameOnCategoryPage1">
96+
<argument name="productName" value="$$createSecondSimpleProduct.name$$"/>
97+
</actionGroup>
98+
<actionGroup ref="AssertStorefrontLayeredNavigationCategoryAndPriceActionGroup" stepKey="checkCategoryAndPriceFilterIsPresent1">
99+
<argument name="minPrice" value="$10.00"/>
100+
<argument name="maxPrice" value="$19.99"/>
101+
<argument name="count" value="1"/>
102+
<argument name="minPrice2" value="$90.00"/>
103+
</actionGroup>
104+
<!-- Drag drop Category and do Validation for Category and Products on StoreFront-->
105+
<actionGroup ref="AdminOpenCategoryGridPageActionGroup" stepKey="openAdminCategoryPage2"/>
106+
<actionGroup ref="ClearFiltersAdminDataGridActionGroup" stepKey="resetGridFilters2"/>
107+
<actionGroup ref="AdminEditCategoryInGridPageActionGroup" stepKey="editCategoryItem2">
108+
<argument name="categoryName" value="$createTwoLevelNestedCategories.name$"/>
109+
</actionGroup>
110+
<actionGroup ref="AdminExpandCategoryTreeActionGroup" stepKey="expandCategoryTree"/>
111+
<actionGroup ref="AdminAssertParentChildCategoryTreeElementsActionGroup" stepKey="assertParentChildCategoryTreeElements">
112+
<argument name="parentCategoryName" value="$createDefaultCategory.name$"/>
113+
<argument name="childCategoryName" value="$createTwoLevelNestedCategories.name$"/>
114+
</actionGroup>
115+
<actionGroup ref="AdminAssertParentChildCategoryTreeElementsActionGroup" stepKey="assertParentChildCategoryTreeElements2">
116+
<argument name="parentCategoryName" value="Default Category"/>
117+
<argument name="childCategoryName" value="$createDefaultCategory.name$"/>
118+
</actionGroup>
119+
<dragAndDrop selector1="{{AdminCategoryBasicFieldSection.dragSubCategory($createTwoLevelNestedCategories.name$)}}" selector2="//div[@class='x-tree-node-el folder active-category x-tree-node-expanded']//a/span[contains(text(),'Default Category')]" stepKey="dragAndDrop"/>
120+
<wait time="10" stepKey="waitForPopUpToLoad"/>
121+
<grabTextFrom selector="{{AdminCategoryBasicFieldSection.grabPopUpText}}" stepKey="grabTextPopUp"/>
122+
<assertStringContainsString stepKey="assertDropDownTierPriceTextProduct1">
123+
<expectedResult type="string">This operation can take a long time</expectedResult>
124+
<actualResult type="variable">$grabTextPopUp</actualResult>
125+
</assertStringContainsString>
126+
<click selector="{{AdminCategoryBasicFieldSection.acceptPopUp}}" stepKey="acceptPopUp"/>
127+
<wait time="10" stepKey="waitCategoryTreeToLoad"/>
128+
<magentoCLI command="indexer:reindex" stepKey="performReindex"/>
129+
<magentoCLI command="cache:flush" stepKey="cleanCache"/>
130+
<actionGroup ref="AdminAssertParentChildCategoryTreeElementsActionGroup" stepKey="assertParentChildCategoryTreeElements3">
131+
<argument name="parentCategoryName" value="Default Category"/>
132+
<argument name="childCategoryName" value="$createTwoLevelNestedCategories.name$"/>
133+
</actionGroup>
134+
<actionGroup ref="AdminAssertParentChildCategoryTreeElementsActionGroup" stepKey="assertParentChildCategoryTreeElements4">
135+
<argument name="parentCategoryName" value="Default Category"/>
136+
<argument name="childCategoryName" value="$createDefaultCategory.name$"/>
137+
</actionGroup>
138+
<actionGroup ref="StorefrontGoToCategoryPageActionGroup" stepKey="openCategoryPage2">
139+
<argument name="categoryName" value="$$createDefaultCategory.name$$"/>
140+
</actionGroup>
141+
<see userInput="1" selector="{{StorefrontCategoryMainSection.productCount}} span" stepKey="assertProductCount2"/>
142+
<actionGroup ref="AssertStorefrontProductIsPresentOnCategoryPageActionGroup" stepKey="seeFirstSimpleProductNameOnCategoryPage2">
143+
<argument name="productName" value="$$createFirstSimpleProduct.name$$"/>
144+
</actionGroup>
145+
<dontSee selector="{{StorefrontCategorySidebarSection.shopByCategoryLinkButton($$createTwoLevelNestedCategories.name$$)}}" stepKey="verifyShopByCatLayeredNavigation2"/>
146+
<actionGroup ref="StorefrontGoToCategoryPageActionGroup" stepKey="openCategoryPage3">
147+
<argument name="categoryName" value="$$createTwoLevelNestedCategories.name$$"/>
148+
</actionGroup>
149+
<see userInput="1" selector="{{StorefrontCategoryMainSection.productCount}} span" stepKey="assertProductCount3"/>
150+
<actionGroup ref="AssertStorefrontProductIsPresentOnCategoryPageActionGroup" stepKey="seeSecondSimpleProductNameOnCategoryPage2">
151+
<argument name="productName" value="$$createSecondSimpleProduct.name$$"/>
152+
</actionGroup>
153+
<dontSee selector="{{StorefrontCategorySidebarSection.shopByCategoryLinkButton($$createTwoLevelNestedCategories.name$$)}}" stepKey="verifyShopByCatLayeredNavigation3"/>
154+
</test>
155+
</tests>
156+

0 commit comments

Comments
 (0)