Skip to content

Commit 46ec50d

Browse files
committed
MC-4381: Convert CreateCategoryEntityTest to MFTF
1 parent 629e41a commit 46ec50d

15 files changed

+544
-0
lines changed

app/code/Magento/Bundle/Test/Mftf/Section/AdminProductFormBundleSection.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
<element name="bundleOptionXProductYQuantity" type="input" selector="[name='bundle_options[bundle_options][{{x}}][bundle_selections][{{y}}][selection_qty]']" parameterized="true"/>
2323
<element name="addProductsToOption" type="button" selector="[data-index='modal_set']" timeout="30"/>
2424
<element name="nthAddProductsToOption" type="button" selector="//tr[{{var}}]//button[@data-index='modal_set']" timeout="30" parameterized="true"/>
25+
<!--Select Search Engine Optimization-->
26+
<element name="searchEngineOptimizationDropDown" type="button" selector="div[data-index='search-engine-optimization']" timeout="30"/>
2527
<!--Select"url Key"InputForm-->
2628
<element name="urlKey" type="input" selector="//input[@name='product[url_key]']" timeout="30"/>
2729
<!--AddSelectedProducts-->

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: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,4 +477,16 @@
477477
<requiredEntity type="product_extension_attribute">EavStock1</requiredEntity>
478478
<requiredEntity type="custom_attribute">CustomAttributeProductAttribute</requiredEntity>
479479
</entity>
480+
<entity name="defaultSimpleProduct" type="product">
481+
<data key="name" unique="suffix">Test </data>
482+
<data key="sku" unique="suffix">testsku</data>
483+
<data key="type_id">simple</data>
484+
<data key="attribute_set_id">4</data>
485+
<data key="visibility">4</data>
486+
<data key="price">560.00</data>
487+
<data key="urlKey" unique="suffix">testurl-</data>
488+
<data key="status">1</data>
489+
<data key="quantity">25</data>
490+
<data key="weight">1</data>
491+
</entity>
480492
</entities>

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/AdminProductMessagesSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
<section name="AdminProductMessagesSection">
1212
<element name="successMessage" type="text" selector=".message-success"/>
1313
<element name="errorMessage" type="text" selector=".message.message-error.error"/>
14+
<element name="pageNotFound" type="text" selector="//h1[contains(.,'Whoops, our bad...')]"/>
1415
</section>
1516
</sections>
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="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.description}}" stepKey="scrollToDescription"/>
41+
<fillField selector="{{AdminCategoryContentSection.description}}" userInput="Anchor Subcategory All Fields" stepKey="fillTheDescription"/>
42+
<scrollTo selector="{{AdminCategoryContentSection.AddCMSBlock}}" x="0" y="-80" stepKey="scrollToAddCMSBlock"/>
43+
<selectOption selector="{{AdminCategoryContentSection.AddCMSBlock}}" userInput="$$createDefaultCMSBlock.title$$" stepKey="selectCMSBlock"/>
44+
<!--Select Display Setting and fill the options-->
45+
<scrollTo selector="{{CategoryDisplaySettingsSection.DisplaySettingTab}}" x="0" y="-80" stepKey="scrollToDisplaySetting"/>
46+
<click selector="{{CategoryDisplaySettingsSection.DisplaySettingTab}}" stepKey="selectDisplaySetting"/>
47+
<selectOption selector="{{CategoryDisplaySettingsSection.DisplayMode}}" userInput="PRODUCTS_AND_PAGE" stepKey="selectDisplayMode"/>
48+
<checkOption selector="{{CategoryDisplaySettingsSection.Anchor}}" stepKey="enableAnchor"/>
49+
<click selector="{{CategoryDisplaySettingsSection.ProductListCheckBox}}" stepKey="enableTheAvailableProductList"/>
50+
<selectOption selector="{{CategoryDisplaySettingsSection.ProductList}}" parameterArray="['Position', 'Product Name', 'Price']" stepKey="selectPrice"/>
51+
<scrollTo selector="{{CategoryDisplaySettingsSection.DefaultProductLisCheckBox}}" x="0" y="-80" stepKey="scrollToDefaultProductList"/>
52+
<click selector="{{CategoryDisplaySettingsSection.DefaultProductLisCheckBox}}" stepKey="enableTheDefaultProductList"/>
53+
<selectOption selector="{{CategoryDisplaySettingsSection.DefaultProductList}}" userInput="name" stepKey="selectProductName"/>
54+
<scrollTo selector="{{CategoryDisplaySettingsSection.LayeredNavigationPriceCheckBox}}" x="0" y="-80" stepKey="scrollToLayeredNavPrice"/>
55+
<click selector="{{CategoryDisplaySettingsSection.LayeredNavigationPriceCheckBox}}" stepKey="enableLayeredNavigationPrice"/>
56+
<fillField selector="{{CategoryDisplaySettingsSection.layeredNavigationPriceInput}}" userInput="5.5" stepKey="fillThePrice"/>
57+
<!--Search the products and select the category products-->
58+
<scrollTo selector="{{AdminCategoryBasicFieldSection.ProductsInCategory}}" x="0" y="-80" stepKey="scrollToProductInCategory"/>
59+
<click selector="{{AdminCategoryBasicFieldSection.ProductsInCategory}}" stepKey="clickOnProductInCategory"/>
60+
<fillField selector="{{AdminCategoryContentSection.ProductTableColumnName}}" userInput="$$simpleProduct.name$$" stepKey="selectProduct"/>
61+
<click selector="{{AdminCategoryContentSection.ProductSearch}}" stepKey="clickSearchButton"/>
62+
<click selector="{{AdminCategoryContentSection.ProductTableRow}}" stepKey="selectProductFromTableRow"/>
63+
<click selector="{{AdminCategoryMainActionsSection.SaveButton}}" stepKey="slickSaveButton"/>
64+
<waitForPageLoad stepKey="waitForCategorySaved"/>
65+
<see selector="{{AdminCategoryMessagesSection.SuccessMessage}}" userInput="You saved the category." stepKey="assertSuccessMessage"/>
66+
<waitForPageLoad stepKey="waitForPageTitleToBeSaved"/>
67+
<!--Verify the Category Title-->
68+
<see selector="{{AdminCategoryContentSection.CategoryPageTitle}}" userInput="{{_defaultCategory.name}}" stepKey="seePageTitle" />
69+
<!--Verify Product in store front page-->
70+
<amOnPage url="{{StorefrontCategoryPage.url(_defaultCategory.name_lwr)}}" stepKey="amOnCategoryPage"/>
71+
<waitForPageLoad stepKey="waitForPageToBeLoaded"/>
72+
<see selector="{{StorefrontCategoryMainSection.CategoryTitle}}" userInput="{{_defaultCategory.name}}" stepKey="seeCategoryPageTitle"/>
73+
<seeElement selector="{{StorefrontHeaderSection.NavigationCategoryByName(_defaultCategory.name)}}" stepKey="seeCategoryOnNavigation"/>
74+
<seeElement selector="{{StorefrontCategoryMainSection.productLinkByHref($$simpleProduct.urlKey$$)}}" stepKey="seeProductInCategory"/>
75+
</test>
76+
</tests>
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
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+
<actionGroup ref="DeleteCategory" stepKey="deleteCreatedNewRootCategory">
25+
<argument name="categoryEntity" value="NewRootCategory"/>
26+
</actionGroup>
27+
<actionGroup ref="logout" stepKey="logout"/>
28+
</after>
29+
<amOnPage url="{{AdminCategoryPage.url}}" stepKey="openAdminCategoryIndexPage"/>
30+
<waitForPageLoad stepKey="waitForCategoryIndexPageToBeLoaded"/>
31+
<!--Create Root Category-->
32+
<actionGroup ref="AdminCreateRootCategory" stepKey="createNewRootCategory">
33+
<argument name="categoryEntity" value="NewRootCategory"/>
34+
</actionGroup>
35+
<!--Create root category-->
36+
<scrollToTopOfPage stepKey="scrollToTopOfPage"/>
37+
<click selector="{{AdminCategorySidebarTreeSection.categoryInTree(NewRootCategory.name)}}" stepKey="clickOnCreatedNewRootCategory"/>
38+
<scrollToTopOfPage stepKey="scrollToTopOfPage1"/>
39+
<!--Create subcategory-->
40+
<actionGroup ref="CreateCategory" stepKey="createSubcategory">
41+
<argument name="categoryEntity" value="SimpleSubCategory"/>
42+
</actionGroup>
43+
<!--Create a Store-->
44+
<amOnPage url="{{AdminSystemStorePage.url}}" stepKey="amOnAdminSystemStorePage"/>
45+
<waitForPageLoad stepKey="waitForSystemStorePage"/>
46+
<click selector="{{AdminStoresMainActionsSection.createStoreButton}}" stepKey="selectCreateStore"/>
47+
<fillField userInput="{{customStore.name}}" selector="{{AdminNewStoreGroupSection.storeGrpNameTextField}}" stepKey="fillStoreName"/>
48+
<fillField userInput="{{customStore.code}}" selector="{{AdminNewStoreGroupSection.storeGrpCodeTextField}}" stepKey="fillStoreCode"/>
49+
<selectOption userInput="{{NewRootCategory.name}}" selector="{{AdminNewStoreGroupSection.storeRootCategoryDropdown}}" stepKey="selectStoreStatus"/>
50+
<click selector="{{AdminStoresMainActionsSection.saveButton}}" stepKey="clickSaveStoreButton"/>
51+
<!--Create a Store View-->
52+
<click selector="{{AdminStoresMainActionsSection.createStoreViewButton}}" stepKey="selectCreateStoreView"/>
53+
<click selector="{{AdminNewStoreSection.storeGrpDropdown}}" stepKey="clickDropDown"/>
54+
<selectOption userInput="{{customStore.name}}" selector="{{AdminNewStoreSection.storeGrpDropdown}}" stepKey="selectStoreViewStatus"/>
55+
<fillField userInput="{{customStore.name}}" selector="{{AdminNewStoreSection.storeNameTextField}}" stepKey="fillStoreViewName"/>
56+
<fillField userInput="{{customStore.code}}" selector="{{AdminNewStoreSection.storeCodeTextField}}" stepKey="fillStoreViewCode"/>
57+
<selectOption selector="{{AdminNewStoreSection.statusDropdown}}" userInput="Enabled" stepKey="enableStatus"/>
58+
<click selector="{{AdminStoresMainActionsSection.saveButton}}" stepKey="clickSaveStoreViewButton"/>
59+
<waitForElementVisible selector="{{AdminConfirmationModalSection.ok}}" stepKey="waitForModal" />
60+
<see selector="{{AdminConfirmationModalSection.title}}" userInput="Warning message" stepKey="seeWarning" />
61+
<click selector="{{AdminConfirmationModalSection.ok}}" stepKey="dismissModal" />
62+
<waitForElementNotVisible selector="{{AdminNewStoreViewActionsSection.loadingMask}}" stepKey="waitForElementVisible"/>
63+
<!--Go to store front page-->
64+
<amOnPage url="/{{NewRootCategory.name}}/{{SimpleSubCategory.name}}.html" stepKey="seeTheCategoryInStoreFrontPage"/>
65+
<waitForPageLoad time="60" stepKey="waitForStoreFrontPageLoad"/>
66+
<!--Verify subcategory displayed in store front page-->
67+
<click selector="{{StorefrontFooterSection.switchStoreButton}}" stepKey="selectMainWebsite"/>
68+
<click selector="{{StorefrontFooterSection.storeLink(customStore.name)}}" stepKey="selectMainWebsite1"/>
69+
<waitForPageLoad stepKey="waitForCategoryToLoad"/>
70+
<seeElement selector="{{StorefrontHeaderSection.NavigationCategoryByName(SimpleSubCategory.name)}}" stepKey="SeeSubCategory"/>
71+
<!--Delete the store/-->
72+
<amOnPage url="{{AdminSystemStorePage.url}}" stepKey="navigateToStoresIndex"/>
73+
<waitForPageLoad stepKey="waitStoreIndexPageLoad" />
74+
<fillField selector="{{AdminStoresGridSection.storeSearchTextField}}" userInput="{{customStore.name}}" stepKey="fillStoreViewFilterField"/>
75+
<click selector="{{AdminStoresGridSection.searchButton}}" stepKey="clickSearch"/>
76+
<click selector="{{AdminStoresGridSection.storeGrpNameInFirstRow}}" stepKey="clickStoreViewInGrid"/>
77+
<click selector="{{AdminNewStoreViewActionsSection.delete}}" stepKey="clickDeleteStoreView"/>
78+
<selectOption selector="{{AdminStoreBackupOptionsSection.createBackupSelect}}" userInput="No" stepKey="dontCreateDbBackup"/>
79+
<click selector="{{AdminNewStoreViewActionsSection.delete}}" stepKey="clickDeleteStoreViewAgain"/>
80+
<waitForPageLoad stepKey="waitForPageToLoad"/>
81+
<see userInput="You deleted the store." stepKey="seeDeleteMessage"/>
82+
</test>
83+
</tests>

0 commit comments

Comments
 (0)