Skip to content

Commit 15045bb

Browse files
Indrani SonawaneIndrani Sonawane
authored andcommitted
Merge remote-tracking branch '39447/remove_escapeHtml' into community_prs_march
2 parents 461a4c0 + db4f5b1 commit 15045bb

File tree

3 files changed

+113
-1
lines changed

3 files changed

+113
-1
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -934,6 +934,10 @@
934934
<data key="name" unique="suffix">Product With Long Name And Sku - But not too long</data>
935935
<data key="sku" unique="suffix">Product With Long Name And Sku - But not too long</data>
936936
</entity>
937+
<entity name="ProductWithSpecialCharNameSku" extends="ApiSimpleProduct">
938+
<data key="name" unique="suffix">Test "Config"</data>
939+
<data key="sku" unique="suffix">Test "Config"</data>
940+
</entity>
937941
<entity name="PaginationProduct" type="product">
938942
<data key="name" unique="suffix">pagi</data>
939943
<data key="sku" unique="suffix">pagisku</data>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
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="AdminConfigurableProductWithSpecialCharacterNameTest">
12+
<annotations>
13+
<features value="ConfigurableProduct"/>
14+
<stories value="Create configurable product with name having special character"/>
15+
<title value="Admin is able to create an product with name having special character"/>
16+
<description value="Try to create a product with with name having special character init"/>
17+
<severity value="MAJOR"/>
18+
<testCaseId value="AC-10535 "/>
19+
<group value="ConfigurableProduct"/>
20+
</annotations>
21+
22+
<before>
23+
<!-- Create product attribute with options-->
24+
<createData entity="productAttributeWithTwoOptions" stepKey="createConfigProductAttribute"/>
25+
<createData entity="productAttributeOption1" stepKey="createConfigProductAttributeOption1">
26+
<requiredEntity createDataKey="createConfigProductAttribute"/>
27+
</createData>
28+
<createData entity="productAttributeOption2" stepKey="createConfigProductAttributeOption2">
29+
<requiredEntity createDataKey="createConfigProductAttribute"/>
30+
</createData>
31+
<createData entity="AddToDefaultSet" stepKey="createConfigAddToAttributeSet">
32+
<requiredEntity createDataKey="createConfigProductAttribute"/>
33+
</createData>
34+
<getData entity="ProductAttributeOptionGetter" index="1" stepKey="getConfigAttributeOption1">
35+
<requiredEntity createDataKey="createConfigProductAttribute"/>
36+
</getData>
37+
<getData entity="ProductAttributeOptionGetter" index="2" stepKey="getConfigAttributeOption2">
38+
<requiredEntity createDataKey="createConfigProductAttribute"/>
39+
</getData>
40+
<!--Create Category-->
41+
<createData entity="ApiCategory" stepKey="createCategory"/>
42+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin1"/>
43+
</before>
44+
45+
<after>
46+
<!--Clean up products-->
47+
<actionGroup ref="AdminOpenProductIndexPageActionGroup" stepKey="goToProductPage"/>
48+
<actionGroup ref="ClearFiltersAdminDataGridActionGroup" stepKey="clearGridFilter"/>
49+
<actionGroup ref="DeleteProductByNameActionGroup" stepKey="cleanUpProducts">
50+
<argument name="sku" value="{{ProductWithSpecialCharNameSku.sku}}"/>
51+
<argument name="name" value="{{ProductWithSpecialCharNameSku.name}}"/>
52+
</actionGroup>
53+
<actionGroup ref="ResetAdminDataGridToDefaultViewActionGroup" stepKey="clearFilters"/>
54+
<!--Clean up attribute-->
55+
<deleteData createDataKey="createConfigProductAttribute" stepKey="deleteConfigProductAttribute"/>
56+
<!--Clean up category-->
57+
<deleteData createDataKey="createCategory" stepKey="deleteCategory"/>
58+
<actionGroup ref="AdminLogoutActionGroup" stepKey="adminLogout"/>
59+
60+
<!-- Reindex invalidated indices after product attribute has been created/deleted -->
61+
<actionGroup ref="CliIndexerReindexActionGroup" stepKey="reindexInvalidatedIndices">
62+
<argument name="indices" value=""/>
63+
</actionGroup>
64+
</after>
65+
66+
<!--Create a configurable product with long name and sku-->
67+
<actionGroup ref="AdminOpenNewProductFormPageActionGroup" stepKey="goToProductCreatePage">
68+
<argument name="attributeSetId" value="{{AddToDefaultSet.attributeSetId}}"/>
69+
<argument name="productType" value="configurable"/>
70+
</actionGroup>
71+
<fillField selector="{{AdminProductFormSection.productName}}" userInput="{{ProductWithSpecialCharNameSku.name}}" stepKey="fillProductName"/>
72+
<fillField selector="{{AdminProductFormSection.productSku}}" userInput="{{ProductWithSpecialCharNameSku.sku}}" stepKey="fillProductSku"/>
73+
<fillField selector="{{AdminProductFormSection.productPrice}}" userInput="{{ProductWithSpecialCharNameSku.price}}" stepKey="fillProductPrice"/>
74+
<searchAndMultiSelectOption selector="{{AdminProductFormSection.categoriesDropdown}}" parameterArray="[$$createCategory.name$$]" stepKey="selectCategory"/>
75+
<!--Setup configurations-->
76+
<actionGroup ref="GenerateConfigurationsByAttributeCodeActionGroup" stepKey="setupConfigurations">
77+
<argument name="attributeCode" value="$$createConfigProductAttribute.attribute_code$$"/>
78+
</actionGroup>
79+
80+
<actionGroup ref="AdminProductFormSaveActionGroup" stepKey="saveProduct"/>
81+
82+
<waitForElementClickable selector="{{AdminProductFormConfigurationsSection.createConfigurations}}" stepKey="waitForCreateConfigurationsButtonToBeClickable"/>
83+
<click selector="{{AdminProductFormConfigurationsSection.createConfigurations}}" stepKey="clickCreateConfigurations"/>
84+
<click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickOnNextButton1"/>
85+
<click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickOnNextButton2"/>
86+
<click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickOnNextButton3"/>
87+
<click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickOnNextButton4"/>
88+
89+
<actionGroup ref="AdminProductFormSaveActionGroup" stepKey="saveProduct1"/>
90+
91+
<actionGroup ref="AdminOpenProductIndexPageActionGroup" stepKey="goToProductPage"/>
92+
<actionGroup ref="ClearFiltersAdminDataGridActionGroup" stepKey="clearGridFilter"/>
93+
94+
<click selector="{{AdminProductGridFilterSection.filters}}" stepKey="clickFiltersButton"/>
95+
<fillField selector="{{AdminProductGridFilterSection.skuFilter}}" userInput="{{ProductWithSpecialCharNameSku.name}}-$$getConfigAttributeOption1.label$$" stepKey="fillSku" />
96+
<click selector="{{AdminProductGridFilterSection.applyFilters}}" stepKey="clickApplyFiltersButton"/>
97+
<waitForPageLoad stepKey="waitForProductSearchAfterApplyingFilters"/>
98+
<see selector="{{AdminProductGridSection.firstProductRow}}" userInput="{{ProductWithSpecialCharNameSku.name}}-$$getConfigAttributeOption1.label$$" stepKey="seeProductWithSku"/>
99+
<click selector="{{AdminProductGridFilterSection.nthRow('1')}}" stepKey="clickFirstRowToVerifyProduct"/>
100+
<waitForPageLoad stepKey="waitClickFirstRowToVerifyProduct"/>
101+
<grabValueFrom selector="{{AdminProductFormSection.productSku}}" stepKey="assertProductSku"/>
102+
103+
<assertEquals stepKey="validateDateFormat">
104+
<expectedResult type="string">{{ProductWithSpecialCharNameSku.name}}-$$getConfigAttributeOption1.label$$</expectedResult>
105+
<actualResult type="variable">$assertProductSku</actualResult>
106+
</assertEquals>
107+
</test>
108+
</tests>

app/code/Magento/ConfigurableProduct/Ui/DataProvider/Product/Form/Modifier/Data/AssociatedProducts.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ protected function prepareVariations()
299299
['id' => $product->getId()]
300300
) . '" target="_blank">' . $this->escaper->escapeHtml($product->getName()) . '</a>',
301301
'sku' => $product->getSku(),
302-
'name' => $this->escaper->escapeHtml($product->getName()),
302+
'name' => $product->getName(),
303303
'qty' => $this->getProductStockQty($product),
304304
'price' => $price,
305305
'price_string' => $currency->toCurrency(sprintf("%f", $price)),

0 commit comments

Comments
 (0)