Skip to content

Commit 013c3b6

Browse files
committed
Merge branch 'mtf-eol' into mtf-eol-pr
2 parents d198414 + 655cbbc commit 013c3b6

24 files changed

+975
-4
lines changed

app/code/Magento/Catalog/Test/Mftf/Data/CategoryData.xml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,24 @@
4242
<data key="is_active">true</data>
4343
<var key="parent_id" entityType="category" entityKey="id" />
4444
</entity>
45+
<entity name="FirstLevelSubCat" type="category">
46+
<data key="name" unique="suffix">FirstLevelSubCategory</data>
47+
<data key="name_lwr" unique="suffix">subcategory</data>
48+
</entity>
49+
<entity name="SecondLevelSubCat" type="category">
50+
<data key="name" unique="suffix">SecondLevelSubCategory</data>
51+
<data key="name_lwr" unique="suffix">subcategory</data>
52+
</entity>
53+
<entity name="ThirdLevelSubCat" type="category">
54+
<data key="name" unique="suffix">ThirdLevelSubCategory</data>
55+
<data key="name_lwr" unique="suffix">subcategory</data>
56+
</entity>
57+
<entity name="FourthLevelSubCat" type="category">
58+
<data key="name" unique="suffix">FourthLevelSubCategory</data>
59+
<data key="name_lwr" unique="suffix">subcategory</data>
60+
</entity>
61+
<entity name="FifthLevelCat" type="category">
62+
<data key="name" unique="suffix">FifthLevelCategory</data>
63+
<data key="name_lwr" unique="suffix">category</data>
64+
</entity>
4565
</entities>

app/code/Magento/Catalog/Test/Mftf/Data/ProductData.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,19 @@
480480
<requiredEntity type="product_extension_attribute">EavStock1</requiredEntity>
481481
<requiredEntity type="custom_attribute">CustomAttributeProductAttribute</requiredEntity>
482482
</entity>
483+
<entity name="defaultSimpleProduct" type="product">
484+
<data key="name" unique="suffix">Test </data>
485+
<data key="sku" unique="suffix">testsku</data>
486+
<data key="type_id">simple</data>
487+
<data key="attribute_set_id">4</data>
488+
<data key="visibility">4</data>
489+
<data key="price">560.00</data>
490+
<data key="urlKey" unique="suffix">testurl-</data>
491+
<data key="status">1</data>
492+
<data key="quantity">25</data>
493+
<data key="weight">1</data>
494+
<requiredEntity type="product_extension_attribute">EavStock100</requiredEntity>
495+
</entity>
483496
<entity name="ProductWithLongNameSku" extends="ApiSimpleProduct">
484497
<data key="name" unique="suffix">Product With Long Name And Sku - But not too long</data>
485498
<data key="sku" unique="suffix">Product With Long Name And Sku - But not too long</data>

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
<element name="ContentTab" type="input" selector="input[name='name']"/>
2323
<element name="FieldError" type="text" selector=".admin__field-error[data-bind='attr: {for: {{field}}}, text: error']" parameterized="true"/>
2424
<element name="panelFieldControl" type="input" selector='//aside//div[@data-index="{{arg1}}"]/descendant::*[@name="{{arg2}}"]' parameterized="true"/>
25+
<element name="productsInCategory" type="input" selector="div[data-index='assign_products']"/>
2526
</section>
2627
<section name="CategoryContentSection">
2728
<element name="SelectFromGalleryBtn" type="button" selector="//label[text()='Select from Gallery']"/>
@@ -38,6 +39,13 @@
3839
<element name="FieldError" type="text" selector=".admin__field-error[data-bind='attr: {for: {{field}}}, text: error']" parameterized="true"/>
3940
<element name="filterPriceRangeUseConfig" type="checkbox" selector="input[name='use_config[filter_price_range]']"/>
4041
<element name="RequiredFieldIndicator" type="text" selector=" return window.getComputedStyle(document.querySelector('._required[data-index={{arg1}}]&gt;.admin__field-label span'), ':after').getPropertyValue('content');" parameterized="true"/>
42+
<element name="displayMode" type="button" selector="select[name='display_mode']"/>
43+
<element name="anchor" type="checkbox" selector="input[name='is_anchor']"/>
44+
<element name="productListCheckBox" type="checkbox" selector="input[name='use_config[available_sort_by]']" />
45+
<element name="productList" type="text" selector="select[name='available_sort_by']"/>
46+
<element name="defaultProductLisCheckBox" type="checkbox" selector="input[name='use_config[default_sort_by]']"/>
47+
<element name="defaultProductList" type="text" selector="select[name='default_sort_by']"/>
48+
<element name="layeredNavigationPriceCheckBox" type="checkbox" selector="input[name='use_config[filter_price_range]']"/>
4149
</section>
4250
<section name="CatalogWYSIWYGSection">
4351
<element name="ShowHideBtn" type="button" selector="#togglecategory_form_description"/>

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,13 @@
1616
<element name="imageFileName" type="text" selector=".file-uploader-filename"/>
1717
<element name="removeImageButton" type="button" selector=".file-uploader-summary .action-remove"/>
1818
<element name="AddCMSBlock" type="select" selector="//*[@name='landing_page']"/>
19+
<element name="description" type="input" selector="//*[@name='description']"/>
20+
<element name="content" type="button" selector="div[data-index='content'"/>
21+
<element name="categoryInTree" type="button" selector="//li[contains(@class, 'x-tree-node')]//div[contains(.,'{{categoryName}}') and contains(@class, 'no-active-category')]" parameterized="true" />
22+
<element name="categoryPageTitle" type="text" selector="h1.page-title" />
23+
<element name="activeCategoryInTree" type="button" selector="//li[contains(@class, 'x-tree-node')]//div[contains(.,'{{categoryName}}') and contains(@class, 'active-category')]" parameterized="true" />
24+
<element name="productTableColumnName" type="input" selector="#catalog_category_products_filter_name"/>
25+
<element name="productTableRow" type="button" selector="#catalog_category_products_table tbody tr"/>
26+
<element name="productSearch" type="button" selector="//button[@data-action='grid-filter-apply']" timeout="30"/>
1927
</section>
2028
</sections>

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@
1515
<element name="rowPrice" type="text" selector="#catalog_category_products_table tbody tr:nth-of-type({{row}}) .col-price" parameterized="true"/>
1616
<element name="rowPosition" type="input" selector="#catalog_category_products_table tbody tr:nth-of-type({{row}}) .col-position .position input" timeout="30" parameterized="true"/>
1717
<element name="productGridNameProduct" type="text" selector="//table[@id='catalog_category_products_table']//td[contains(., '{{productName}}')]" parameterized="true"/>
18+
<element name="productVisibility" type="select" selector="//*[@name='product[visibility]']"/>
1819
</section>
1920
</sections>

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

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,18 @@
99
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1111
<section name="StorefrontProductPageSection">
12-
<element name="qtyInput" type="button" selector="input.input-text.qty"/>
12+
<element name="qtyInput" type="button" selector="input.input-text.qty" timeout="30"/>
1313
<element name="addToCartBtn" type="button" selector="button.action.tocart.primary" timeout="30"/>
14-
<element name="successMsg" type="button" selector="div.message-success"/>
15-
<element name="errorMsg" type="button" selector="div.message-error"/>
14+
<element name="successMsg" type="button" selector="div.message-success" timeout="30"/>
15+
<element name="errorMsg" type="button" selector="div.message-error" timeout="30"/>
1616
<element name="alertMessage" type="text" selector=".page.messages [role=alert]"/>
17-
<element name="messagesBlock" type="text" selector=".page.messages"/>
17+
<element name="messagesBlock" type="text" selector=".page.messages" timeout="30"/>
1818
<element name="addToWishlist" type="button" selector="//a[@class='action towishlist']" timeout="30"/>
1919
<element name="customTextOptionInput" type="input" selector=".input-text.product-custom-option"/>
2020
<element name="charCounter" type="text" selector=".character-counter"/>
21+
<element name="tax" type="input" selector=".totals-tax .amount .price"/>
22+
<element name="subTotal" type="input" selector="span[data-th='Subtotal']"/>
23+
<element name="shipping" type="input" selector="span[data-th='Shipping']"/>
24+
<element name="orderTotal" type="input" selector=".grand.totals .amount .price"/>
2125
</section>
2226
</sections>
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
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+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
10+
<test name="AdminCreateCategoryWithAnchorFieldTest">
11+
<annotations>
12+
<stories value="Create categories"/>
13+
<title value="Create anchor subcategory with all fields"/>
14+
<description value="Login as admin and create anchor subcategory with all fields"/>
15+
<testCaseId value="MC-5267"/>
16+
<severity value="CRITICAL"/>
17+
<group value="Catalog"/>
18+
<group value="mtf_migrated"/>
19+
</annotations>
20+
<before>
21+
<actionGroup ref="LoginAsAdmin" stepKey="loginToAdminPanel"/>
22+
<createData entity="_defaultBlock" stepKey="createDefaultCMSBlock"/>
23+
<createData entity="defaultSimpleProduct" stepKey="simpleProduct" />
24+
</before>
25+
<after>
26+
<actionGroup ref="DeleteCategory" stepKey="deleteCategory"/>
27+
<actionGroup ref="logout" stepKey="logout"/>
28+
<deleteData createDataKey="createDefaultCMSBlock" stepKey="deleteDefaultCMSBlock"/>
29+
<deleteData stepKey="deleteSimpleProduct" createDataKey="simpleProduct"/>
30+
</after>
31+
<!--Create SubCategory-->
32+
<amOnPage url="{{AdminCategoryPage.url}}" stepKey="openAdminCategoryIndexPage"/>
33+
<waitForPageLoad stepKey="waitForPageToLoaded"/>
34+
<click selector="{{AdminCategorySidebarActionSection.AddSubcategoryButton}}" stepKey="clickOnAddSubCategoryButton"/>
35+
<fillField selector="{{AdminCategoryBasicFieldSection.CategoryNameInput}}" userInput="{{_defaultCategory.name}}" stepKey="fillCategoryName"/>
36+
<checkOption selector="{{AdminCategoryBasicFieldSection.EnableCategory}}" stepKey="enableCategory"/>
37+
<!--Select Content and fill the options-->
38+
<scrollTo selector="{{AdminCategoryContentSection.sectionHeader}}" x="0" y="-80" stepKey="scrollToContent"/>
39+
<click selector="{{AdminCategoryContentSection.sectionHeader}}" stepKey="selectContent"/>
40+
<scrollTo selector="{{AdminCategoryContentSection.AddCMSBlock}}" x="0" y="-80" stepKey="scrollToAddCMSBlock"/>
41+
<selectOption selector="{{AdminCategoryContentSection.AddCMSBlock}}" userInput="$$createDefaultCMSBlock.title$$" stepKey="selectCMSBlock"/>
42+
<!--Select Display Setting and fill the options-->
43+
<scrollTo selector="{{CategoryDisplaySettingsSection.DisplaySettingTab}}" x="0" y="-80" stepKey="scrollToDisplaySetting"/>
44+
<click selector="{{CategoryDisplaySettingsSection.DisplaySettingTab}}" stepKey="selectDisplaySetting"/>
45+
<selectOption selector="{{CategoryDisplaySettingsSection.displayMode}}" userInput="PRODUCTS_AND_PAGE" stepKey="selectdisplayMode"/>
46+
<checkOption selector="{{CategoryDisplaySettingsSection.anchor}}" stepKey="enableAnchor"/>
47+
<click selector="{{CategoryDisplaySettingsSection.productListCheckBox}}" stepKey="enableTheAvailableProductList"/>
48+
<selectOption selector="{{CategoryDisplaySettingsSection.productList}}" parameterArray="['Position', 'Product Name', 'Price']" stepKey="selectPrice"/>
49+
<scrollTo selector="{{CategoryDisplaySettingsSection.defaultProductLisCheckBox}}" x="0" y="-80" stepKey="scrollToDefaultProductList"/>
50+
<click selector="{{CategoryDisplaySettingsSection.defaultProductLisCheckBox}}" stepKey="enableTheDefaultProductList"/>
51+
<selectOption selector="{{CategoryDisplaySettingsSection.defaultProductList}}" userInput="name" stepKey="selectProductName"/>
52+
<scrollTo selector="{{CategoryDisplaySettingsSection.layeredNavigationPriceCheckBox}}" x="0" y="-80" stepKey="scrollToLayeredNavPrice"/>
53+
<click selector="{{CategoryDisplaySettingsSection.layeredNavigationPriceCheckBox}}" stepKey="enableLayeredNavigationPrice"/>
54+
<fillField selector="{{CategoryDisplaySettingsSection.layeredNavigationPriceInput}}" userInput="5.5" stepKey="fillThePrice"/>
55+
<!--Search the products and select the category products-->
56+
<scrollTo selector="{{AdminCategoryBasicFieldSection.productsInCategory}}" x="0" y="-80" stepKey="scrollToProductInCategory"/>
57+
<click selector="{{AdminCategoryBasicFieldSection.productsInCategory}}" stepKey="clickOnProductInCategory"/>
58+
<fillField selector="{{AdminCategoryContentSection.productTableColumnName}}" userInput="$$simpleProduct.name$$" stepKey="selectProduct"/>
59+
<click selector="{{AdminCategoryContentSection.productSearch}}" stepKey="clickSearchButton"/>
60+
<click selector="{{AdminCategoryContentSection.productTableRow}}" stepKey="selectProductFromTableRow"/>
61+
<click selector="{{AdminCategoryMainActionsSection.SaveButton}}" stepKey="clickSaveButton"/>
62+
<waitForPageLoad stepKey="waitForCategorySaved"/>
63+
<see selector="{{AdminCategoryMessagesSection.SuccessMessage}}" userInput="You saved the category." stepKey="assertSuccessMessage"/>
64+
<waitForPageLoad stepKey="waitForPageTitleToBeSaved"/>
65+
<!--Verify the Category Title-->
66+
<see selector="{{AdminCategoryContentSection.categoryPageTitle}}" userInput="{{_defaultCategory.name}}" stepKey="seePageTitle" />
67+
<!--Verify Product in store front page-->
68+
<amOnPage url="{{StorefrontCategoryPage.url(_defaultCategory.name_lwr)}}" stepKey="amOnCategoryPage"/>
69+
<waitForPageLoad stepKey="waitForPageToBeLoaded"/>
70+
<see selector="{{StorefrontCategoryMainSection.CategoryTitle}}" userInput="{{_defaultCategory.name}}" stepKey="seeCategoryPageTitle"/>
71+
<seeElement selector="{{StorefrontHeaderSection.NavigationCategoryByName(_defaultCategory.name)}}" stepKey="seeCategoryOnNavigation"/>
72+
<waitForPageLoad stepKey="waitForProductToLoad"/>
73+
<seeElement selector="{{StorefrontCategoryMainSection.productLinkByHref($$simpleProduct.urlKey$$)}}" stepKey="seeProductInCategory"/>
74+
</test>
75+
</tests>
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
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+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
10+
<test name="AdminCreateCategoryWithCustomRootCategoryTest">
11+
<annotations>
12+
<stories value="Create categories"/>
13+
<title value="Create category in the custom root category that is used for custom website"/>
14+
<description value="Login as admin and create a root category with nested sub category and verify category in store front "/>
15+
<testCaseId value="MC-5272"/>
16+
<severity value="CRITICAL"/>
17+
<group value="mtf_migrated"/>
18+
<group value="Catalog"/>
19+
</annotations>
20+
<before>
21+
<actionGroup ref="LoginAsAdmin" stepKey="loginToAdminPanel"/>
22+
</before>
23+
<after>
24+
<amOnPage url="{{AdminSystemStorePage.url}}" stepKey="navigateToStoresIndex"/>
25+
<waitForPageLoad stepKey="waitStoreIndexPageLoad" />
26+
<actionGroup ref="DeleteCustomStoreActionGroup" stepKey="deleteCustomStore">
27+
<argument name="storeGroupName" value="customStore.name"/>
28+
</actionGroup>
29+
<actionGroup ref="DeleteCategory" stepKey="deleteCreatedNewRootCategory">
30+
<argument name="categoryEntity" value="NewRootCategory"/>
31+
</actionGroup>
32+
<actionGroup ref="logout" stepKey="logout"/>
33+
</after>
34+
<amOnPage url="{{AdminCategoryPage.url}}" stepKey="openAdminCategoryIndexPage"/>
35+
<waitForPageLoad stepKey="waitForCategoryIndexPageToBeLoaded"/>
36+
<!--Create Root Category-->
37+
<actionGroup ref="AdminCreateRootCategory" stepKey="createNewRootCategory">
38+
<argument name="categoryEntity" value="NewRootCategory"/>
39+
</actionGroup>
40+
<!--Create subcategory-->
41+
<scrollToTopOfPage stepKey="scrollToTopOfPage"/>
42+
<click selector="{{AdminCategorySidebarTreeSection.categoryInTree(NewRootCategory.name)}}" stepKey="clickOnCreatedNewRootCategory"/>
43+
<scrollToTopOfPage stepKey="scrollToTopOfPage1"/>
44+
<actionGroup ref="CreateCategory" stepKey="createSubcategory">
45+
<argument name="categoryEntity" value="SimpleSubCategory"/>
46+
</actionGroup>
47+
<!--Create a Store-->
48+
<amOnPage url="{{AdminSystemStorePage.url}}" stepKey="amOnAdminSystemStorePage"/>
49+
<waitForPageLoad stepKey="waitForSystemStorePage"/>
50+
<click selector="{{AdminStoresMainActionsSection.createStoreButton}}" stepKey="selectCreateStore"/>
51+
<fillField userInput="{{customStore.name}}" selector="{{AdminNewStoreGroupSection.storeGrpNameTextField}}" stepKey="fillStoreName"/>
52+
<fillField userInput="{{customStore.code}}" selector="{{AdminNewStoreGroupSection.storeGrpCodeTextField}}" stepKey="fillStoreCode"/>
53+
<selectOption userInput="{{NewRootCategory.name}}" selector="{{AdminNewStoreGroupSection.storeRootCategoryDropdown}}" stepKey="selectStoreStatus"/>
54+
<click selector="{{AdminStoresMainActionsSection.saveButton}}" stepKey="clickSaveStoreButton"/>
55+
<!--Create a Store View-->
56+
<click selector="{{AdminStoresMainActionsSection.createStoreViewButton}}" stepKey="selectCreateStoreView"/>
57+
<click selector="{{AdminNewStoreSection.storeGrpDropdown}}" stepKey="clickDropDown"/>
58+
<selectOption userInput="{{customStore.name}}" selector="{{AdminNewStoreSection.storeGrpDropdown}}" stepKey="selectStoreViewStatus"/>
59+
<fillField userInput="{{customStore.name}}" selector="{{AdminNewStoreSection.storeNameTextField}}" stepKey="fillStoreViewName"/>
60+
<fillField userInput="{{customStore.code}}" selector="{{AdminNewStoreSection.storeCodeTextField}}" stepKey="fillStoreViewCode"/>
61+
<selectOption selector="{{AdminNewStoreSection.statusDropdown}}" userInput="Enabled" stepKey="enableStatus"/>
62+
<click selector="{{AdminStoresMainActionsSection.saveButton}}" stepKey="clickSaveStoreViewButton"/>
63+
<waitForElementVisible selector="{{AdminConfirmationModalSection.ok}}" stepKey="waitForModal" />
64+
<see selector="{{AdminConfirmationModalSection.title}}" userInput="Warning message" stepKey="seeWarning" />
65+
<click selector="{{AdminConfirmationModalSection.ok}}" stepKey="dismissModal" />
66+
<waitForElementNotVisible selector="{{AdminNewStoreViewActionsSection.loadingMask}}" stepKey="waitForElementVisible"/>
67+
<!--Go to store front page-->
68+
<amOnPage url="/{{NewRootCategory.name}}/{{SimpleSubCategory.name}}.html" stepKey="seeTheCategoryInStoreFrontPage"/>
69+
<waitForPageLoad time="60" stepKey="waitForStoreFrontPageLoad"/>
70+
<!--Verify subcategory displayed in store front page-->
71+
<click selector="{{StorefrontFooterSection.switchStoreButton}}" stepKey="selectMainWebsite"/>
72+
<click selector="{{StorefrontFooterSection.storeLink(customStore.name)}}" stepKey="selectCustomStore"/>
73+
<waitForPageLoad stepKey="waitForCategoryToLoad"/>
74+
<seeElement selector="{{StorefrontHeaderSection.NavigationCategoryByName(SimpleSubCategory.name)}}" stepKey="seeSubCategoryInStoreFrontPage"/>
75+
</test>
76+
</tests>

0 commit comments

Comments
 (0)