Skip to content

Commit f07f4a3

Browse files
committed
MAGETWO-97025: Check Url Rewrites Correctly Generated for Multiple Storeviews During Product Import
1 parent 523a83e commit f07f4a3

File tree

9 files changed

+167
-6
lines changed

9 files changed

+167
-6
lines changed

app/code/Magento/Backend/Test/Mftf/Section/AdminMessagesSection.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66
*/
77
-->
88

9-
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
9+
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1011
<section name="AdminMessagesSection">
1112
<element name="test" type="input" selector=".test"/>
1213
<element name="success" type="text" selector="#messages div.message-success"/>
1314
<element name="successMessageByIndex" type="text" selector=".message.message-success.success:nth-of-type({{n}})>div" parameterized="true"/>
1415
<element name="error" type="text" selector="#messages div.message-error"/>
16+
<element name="notice" type="text" selector=".message.message-notice.notice"/>
1517
</section>
1618
</sections>

app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductGridActionGroup.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,17 @@
5252
<conditionalClick selector="{{AdminProductGridFilterSection.clearFilters}}" dependentSelector="{{AdminProductGridFilterSection.clearFilters}}" visible="true" stepKey="clickClearFiltersInitial2"/>
5353
</actionGroup>
5454

55+
<actionGroup name="deleteProductByName" extends="deleteProductUsingProductGrid">
56+
<arguments>
57+
<argument name="product" type="string" defaultValue=""/>
58+
<argument name="name" type="string"/>
59+
</arguments>
60+
<remove keyForRemoval="fillProductSkuFilter"/>
61+
<fillField selector="{{AdminProductGridFilterSection.nameFilter}}" userInput="{{name}}" stepKey="fillProductSkuFilter" after="openProductFilters"/>
62+
<remove keyForRemoval="seeProductSkuInGrid"/>
63+
<see selector="{{AdminProductGridSection.productGridCell('1', 'Name')}}" userInput="{{name}}" stepKey="seeProductNameInGrid" after="clickApplyFilters"/>
64+
</actionGroup>
65+
5566
<!--Disabled a product by filtering grid and using change status action-->
5667
<actionGroup name="ChangeStatusProductUsingProductGridActionGroup">
5768
<arguments>

app/code/Magento/Catalog/Test/Mftf/ActionGroup/SearchForProductOnBackendActionGroup.xml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
-->
88

99
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10-
xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
1111
<actionGroup name="SearchForProductOnBackendActionGroup">
1212
<arguments>
1313
<argument name="product" defaultValue="product"/>
@@ -19,4 +19,11 @@
1919
<fillField stepKey="fillSkuFieldOnFiltersSection" userInput="{{product.sku}}" selector="{{AdminProductFiltersSection.SkuInput}}"/>
2020
<click stepKey="clickApplyFiltersButton" selector="{{AdminProductFiltersSection.Apply}}"/>
2121
</actionGroup>
22+
<actionGroup name="SearchForProductOnBackendByNameActionGroup" extends="SearchForProductOnBackendActionGroup">
23+
<arguments>
24+
<argument name="productName" type="string"/>
25+
</arguments>
26+
<remove keyForRemoval="fillSkuFieldOnFiltersSection"/>
27+
<fillField userInput="{{productName}}" selector="{{AdminProductFiltersSection.NameInput}}" after="cleanFiltersIfTheySet" stepKey="fillNameFieldOnFiltersSection"/>
28+
</actionGroup>
2229
</actionGroups>

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
-->
88

99
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10-
xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1111
<section name="AdminProductGridSection">
12+
<element name="productRowBySku" type="block" selector="//div[@id='container']//tr//td[count(../../..//th[./*[.='SKU']]/preceding-sibling::th) + 1][./*[.='{{sku}}']]" parameterized="true" />
1213
<element name="loadingMask" type="text" selector=".admin__data-grid-loading-mask[data-component*='product_listing']"/>
1314
<element name="columnHeader" type="button" selector="//div[@data-role='grid-wrapper']//table[contains(@class, 'data-grid')]/thead/tr/th[contains(@class, 'data-grid-th')]/span[text() = '{{label}}']" parameterized="true" timeout="30"/>
1415
<element name="productGridElement1" type="input" selector="#addselector" />

app/code/Magento/Store/Test/Mftf/Data/StoreData.xml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* See COPYING.txt for license details.
66
*/
77
-->
8-
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/DataGenerator/etc/dataProfileSchema.xsd">
8+
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
99
<entity name="_defaultStore" type="store">
1010
<data key="name">Default Store View</data>
1111
<data key="code">default</data>
@@ -39,6 +39,24 @@
3939
<data key="store_type">store</data>
4040
<requiredEntity type="storeGroup">customStoreGroup</requiredEntity>
4141
</entity>
42+
<entity name="customStoreENNotUnique" type="store">
43+
<data key="name">EN</data>
44+
<data key="code">en</data>
45+
<data key="is_active">1</data>
46+
<data key="store_id">null</data>
47+
<data key="store_action">add</data>
48+
<data key="store_type">store</data>
49+
<requiredEntity type="storeGroup">customStoreGroup</requiredEntity>
50+
</entity>
51+
<entity name="customStoreNLNotUnique" type="store">
52+
<data key="name">NL</data>
53+
<data key="code">nl</data>
54+
<data key="is_active">1</data>
55+
<data key="store_id">null</data>
56+
<data key="store_action">add</data>
57+
<data key="store_type">store</data>
58+
<requiredEntity type="storeGroup">customStoreGroup</requiredEntity>
59+
</entity>
4260
<entity name="secondStore" type="store">
4361
<data key="name">Second Store View</data>
4462
<data key="code">second_store_view</data>

app/code/Magento/Store/Test/Mftf/Section/AdminNewStoreViewActionsSection.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
* See COPYING.txt for license details.
66
*/
77
-->
8-
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
8+
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
99
<section name="AdminNewStoreViewActionsSection">
1010
<element name="backButton" type="button" selector="#back" timeout="30"/>
1111
<element name="delete" type="button" selector="#delete" timeout="30"/>
1212
<element name="resetButton" type="button" selector="#reset" timeout="30"/>
1313
<element name="saveButton" type="button" selector="#save" timeout="60"/>
14+
<element name="loadingMask" type="text" selector=".loading-mask"/>
1415
</section>
1516
</sections>

app/code/Magento/UrlRewrite/Test/Mftf/Section/AdminUrlRewriteIndexSection.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@
77
-->
88

99
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10-
xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1111
<section name="AdminUrlRewriteIndexSection">
1212
<element name="requestPathFilter" type="input" selector="#urlrewriteGrid_filter_request_path"/>
1313
<element name="requestPathColumnValue" type="text" selector="//*[@id='urlrewriteGrid']//tbody//td[@data-column='request_path' and normalize-space(.)='{{columnValue}}']" parameterized="true"/>
14+
<element name="targetPathColumnValue" type="text" selector="//*[@id='urlrewriteGrid']//tbody//td[@data-column='target_path' and normalize-space(.)='{{columnValue}}']" parameterized="true"/>
1415
</section>
1516
</sections>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
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" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
10+
<test name="AdminCheckUrlRewritesCorrectlyGeneratedForMultipleStoreviewsDuringProductImportTest">
11+
<annotations>
12+
<features value="Url Rewrite"/>
13+
<stories value="Url Rewrites for Multiple Storeviews"/>
14+
<title value="Url Rewrites Correctly Generated for Multiple Storeviews During Product Import"/>
15+
<description value="Check Url Rewrites Correctly Generated for Multiple Storeviews During Product Import."/>
16+
<severity value="CRITICAL"/>
17+
<testCaseId value="MAGETWO-76287"/>
18+
<group value="urlRewrite"/>
19+
</annotations>
20+
<before>
21+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
22+
<!-- Create Store View EN -->
23+
<actionGroup ref="AdminCreateStoreViewActionGroup" stepKey="createStoreViewEn">
24+
<argument name="customStore" value="customStoreENNotUnique"/>
25+
</actionGroup>
26+
<!-- Create Store View NL -->
27+
<actionGroup ref="AdminCreateStoreViewActionGroup" stepKey="createStoreViewNl">
28+
<argument name="customStore" value="customStoreNLNotUnique"/>
29+
</actionGroup>
30+
<createData entity="ApiCategory" stepKey="createCategory">
31+
<field key="name">category-admin</field>
32+
</createData>
33+
</before>
34+
<after>
35+
<deleteData createDataKey="createCategory" stepKey="deleteCategory"/>
36+
<actionGroup ref="deleteProductByName" stepKey="deleteImportedProduct">
37+
<argument name="product" value="productformagetwo76287"/>
38+
<argument name="name" value="productformagetwo76287"/>
39+
</actionGroup>
40+
<actionGroup ref="clearFiltersAdminDataGrid" stepKey="clearFiltersIfSet"/>
41+
<actionGroup ref="AdminDeleteStoreViewActionGroup" stepKey="deleteStoreViewEn">
42+
<argument name="customStore" value="customStoreENNotUnique"/>
43+
</actionGroup>
44+
<actionGroup ref="AdminDeleteStoreViewActionGroup" stepKey="deleteStoreViewNl">
45+
<argument name="customStore" value="customStoreNLNotUnique"/>
46+
</actionGroup>
47+
<actionGroup ref="logout" stepKey="logout"/>
48+
</after>
49+
<actionGroup ref="switchCategoryStoreView" stepKey="switchToStoreViewEn">
50+
<argument name="store" value="customStoreENNotUnique.name"/>
51+
<argument name="catName" value="$$createCategory.name$$"/>
52+
</actionGroup>
53+
<uncheckOption selector="{{AdminCategoryBasicFieldSection.categoryNameUseDefault}}" stepKey="uncheckUseDefaultValueENStoreView"/>
54+
<fillField selector="{{AdminCategoryBasicFieldSection.CategoryNameInput}}" userInput="category-english" stepKey="changeNameField"/>
55+
<click selector="{{AdminCategorySEOSection.SectionHeader}}" stepKey="clickOnSectionHeader"/>
56+
<actionGroup ref="ChangeSeoUrlKeyForSubCategory" stepKey="changeSeoUrlKeyENStoreView">
57+
<argument name="value" value="category-english"/>
58+
</actionGroup>
59+
<actionGroup ref="switchCategoryStoreView" stepKey="switchToStoreViewNl">
60+
<argument name="store" value="customStoreNLNotUnique.name"/>
61+
<argument name="catName" value="$$createCategory.name$$"/>
62+
</actionGroup>
63+
<uncheckOption selector="{{AdminCategoryBasicFieldSection.categoryNameUseDefault}}" stepKey="uncheckUseDefaultValue1"/>
64+
<fillField selector="{{AdminCategoryBasicFieldSection.CategoryNameInput}}" userInput="category-dutch" stepKey="changeNameFieldNLStoreView"/>
65+
<click selector="{{AdminCategorySEOSection.SectionHeader}}" stepKey="clickOnSectionHeader2"/>
66+
<actionGroup ref="ChangeSeoUrlKeyForSubCategory" stepKey="changeSeoUrlKeyNLStoreView">
67+
<argument name="value" value="category-dutch"/>
68+
</actionGroup>
69+
<amOnPage url="{{AdminImportIndexPage.url}}" stepKey="navigateToSystemImport"/>
70+
<selectOption selector="{{AdminImportMainSection.entityType}}" userInput="Products" stepKey="selectProductsOption"/>
71+
<waitForElementVisible selector="{{AdminImportMainSection.importBehavior}}" stepKey="waitForImportBehaviorElementVisible"/>
72+
<selectOption selector="{{AdminImportMainSection.importBehavior}}" userInput="Add/Update" stepKey="selectAddUpdateOption"/>
73+
<attachFile selector="{{AdminImportMainSection.selectFileToImport}}" userInput="import_updated.csv" stepKey="attachFileForImport"/>
74+
<click selector="{{AdminImportHeaderSection.checkDataButton}}" stepKey="clickCheckDataButton"/>
75+
<see selector="{{AdminMessagesSection.notice}}" userInput="Checked rows: 3, checked entities: 1, invalid rows: 0, total errors: 0" stepKey="assertNotice"/>
76+
<see selector="{{AdminMessagesSection.successMessage}}" userInput="File is valid! To start import process press &quot;Import&quot; button" stepKey="assertSuccessMessage"/>
77+
<click selector="{{AdminImportMainSection.importButton}}" stepKey="clickImportButton"/>
78+
<see selector="{{AdminMessagesSection.successMessage}}" userInput="Import successfully done" stepKey="assertSuccessMessage1"/>
79+
<actionGroup ref="SearchForProductOnBackendByNameActionGroup" stepKey="searchForProductOnBackend">
80+
<argument name="productName" value="productformagetwo76287"/>
81+
</actionGroup>
82+
<click selector="{{AdminProductGridSection.productRowBySku('productformagetwo76287')}}" stepKey="clickOnProductRow"/>
83+
<grabFromCurrentUrl regex="~/id/(\d+)/~" stepKey="grabProductIdFromUrl"/>
84+
<amOnPage url="{{AdminUrlRewriteIndexPage.url}}" stepKey="goToUrlRewritesIndexPage"/>
85+
86+
<fillField selector="{{AdminUrlRewriteIndexSection.requestPathFilter}}" userInput="category-english.html" stepKey="inputCategoryUrlForENStoreView"/>
87+
<click selector="{{AdminDataGridHeaderSection.applyFilters}}" stepKey="clickSearchButton"/>
88+
<seeElement selector="{{AdminUrlRewriteIndexSection.requestPathColumnValue('category-english.html')}}" stepKey="seeUrlInRequestPathColumn"/>
89+
<seeElement selector="{{AdminUrlRewriteIndexSection.targetPathColumnValue(catalog/category/view/id/$$createCategory.id$$)}}" stepKey="seeUrlInTargetPathColumn"/>
90+
91+
<fillField selector="{{AdminUrlRewriteIndexSection.requestPathFilter}}" userInput="category-dutch.html" stepKey="inputCategoryUrlForNLStoreView"/>
92+
<click selector="{{AdminDataGridHeaderSection.applyFilters}}" stepKey="clickSearchButton1"/>
93+
<seeElement selector="{{AdminUrlRewriteIndexSection.requestPathColumnValue('category-dutch.html')}}" stepKey="seeUrlInRequestPathColumn1"/>
94+
<seeElement selector="{{AdminUrlRewriteIndexSection.targetPathColumnValue(catalog/category/view/id/$$createCategory.id$$)}}" stepKey="seeUrlInTargetPathColumn1"/>
95+
96+
<fillField selector="{{AdminUrlRewriteIndexSection.requestPathFilter}}" userInput="productformagetwo76287-english.html" stepKey="inputProductUrlForENStoreView"/>
97+
<click selector="{{AdminDataGridHeaderSection.applyFilters}}" stepKey="clickSearchButton2"/>
98+
<seeElement selector="{{AdminUrlRewriteIndexSection.requestPathColumnValue('productformagetwo76287-english.html')}}" stepKey="seeUrlInRequestPathColumn2"/>
99+
<seeElement selector="{{AdminUrlRewriteIndexSection.targetPathColumnValue('catalog/product/view/id/$grabProductIdFromUrl')}}" stepKey="seeUrlInTargetPathColumn2"/>
100+
101+
<fillField selector="{{AdminUrlRewriteIndexSection.requestPathFilter}}" userInput="productformagetwo76287-dutch.html" stepKey="inputProductUrlForENStoreView1"/>
102+
<click selector="{{AdminDataGridHeaderSection.applyFilters}}" stepKey="clickSearchButton3"/>
103+
<seeElement selector="{{AdminUrlRewriteIndexSection.requestPathColumnValue('productformagetwo76287-dutch.html')}}" stepKey="seeUrlInRequestPathColumn3"/>
104+
<seeElement selector="{{AdminUrlRewriteIndexSection.targetPathColumnValue('catalog/product/view/id/$grabProductIdFromUrl')}}" stepKey="seeUrlInTargetPathColumn3"/>
105+
106+
<fillField selector="{{AdminUrlRewriteIndexSection.requestPathFilter}}" userInput="category-english/productformagetwo76287-english.html" stepKey="inputProductUrlForENStoreView2"/>
107+
<click selector="{{AdminDataGridHeaderSection.applyFilters}}" stepKey="clickSearchButton4"/>
108+
<seeElement selector="{{AdminUrlRewriteIndexSection.requestPathColumnValue('category-english/productformagetwo76287-english.html')}}" stepKey="seeUrlInRequestPathColumn4"/>
109+
<seeElement selector="{{AdminUrlRewriteIndexSection.targetPathColumnValue(catalog/product/view/id/$grabProductIdFromUrl/category/$$createCategory.id$$)}}" stepKey="seeUrlInTargetPathColumn4"/>
110+
111+
<fillField selector="{{AdminUrlRewriteIndexSection.requestPathFilter}}" userInput="category-dutch/productformagetwo76287-dutch.html" stepKey="inputProductUrlForENStoreView3"/>
112+
<click selector="{{AdminDataGridHeaderSection.applyFilters}}" stepKey="clickSearchButton5"/>
113+
<seeElement selector="{{AdminUrlRewriteIndexSection.requestPathColumnValue('category-dutch/productformagetwo76287-dutch.html')}}" stepKey="seeUrlInRequestPathColumn5"/>
114+
<seeElement selector="{{AdminUrlRewriteIndexSection.targetPathColumnValue(catalog/product/view/id/$grabProductIdFromUrl/category/$$createCategory.id$$)}}" stepKey="seeUrlInTargetPathColumn5"/>
115+
</test>
116+
</tests>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
product_websites,store_view_code,attribute_set_code,product_type,categories,sku,price,name,url_key
2+
base,,Default,simple,Default Category/category-admin,productformagetwo76287,123,productformagetwo76287,productformagetwo76287
3+
,en,Default,simple,,productformagetwo76287,,productformagetwo76287-english,productformagetwo76287-english
4+
,nl,Default,simple,,productformagetwo76287,,productformagetwo76287-dutch,productformagetwo76287-dutch

0 commit comments

Comments
 (0)