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 =" ../../../../../../vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd" >
11
+ <test name =" SaveProductWithCustomOptionsAdditionalWebsiteTest" >
12
+ <annotations >
13
+ <features value =" Save a product with Custom Options and assign to a different website" />
14
+ <stories value =" Purchase a product with Custom Options of different types" />
15
+ <title value =" You should be able to save a product with custom options assigned to a different website" />
16
+ <description value =" Custom Options should not be split when saving the product after assigning to a different website" />
17
+ <severity value =" MAJOR" />
18
+ <testCaseId value =" MAGETWO-91436" />
19
+ <group value =" product" />
20
+ </annotations >
21
+
22
+ <after >
23
+ <actionGroup ref =" ResetWebUrlOptions" stepKey =" resetUrlOption" />
24
+ <actionGroup ref =" AdminDeleteWebsiteActionGroup" stepKey =" deleteWebsite" />
25
+
26
+ <amOnPage url =" admin/admin/auth/logout/" stepKey =" amOnLogoutPage" />
27
+ </after >
28
+ <actionGroup ref =" LoginAsAdmin" stepKey =" loginAsAdmin" />
29
+ <actionGroup ref =" EnableWebUrlOptions" stepKey =" addStoreCodeToUrls" />
30
+ <actionGroup ref =" AdminCreateWebsiteActionGroup" stepKey =" addnewWebsite" />
31
+ <actionGroup ref =" AdminCreateNewStoreGroupActionGroup" stepKey =" addNewStoreGroup" />
32
+
33
+ <!-- Create Store view -->
34
+ <amOnPage url =" {{AdminSystemStorePage.url}}" stepKey =" amOnAdminSystemStorePage" />
35
+ <click selector =" {{AdminStoresMainActionsSection.createStoreViewButton}}" stepKey =" createStoreViewButton" />
36
+ <waitForPageLoad stepKey =" waitForProductPageLoad" />
37
+ <selectOption userInput =" Second Store" selector =" {{AdminNewStoreSection.storeGrpDropdown}}" stepKey =" selectStoreGroup" />
38
+ <fillField userInput =" Second Store View" selector =" {{AdminNewStoreSection.storeNameTextField}}" stepKey =" fillStoreViewName" />
39
+ <fillField userInput =" second_store_view" selector =" {{AdminNewStoreSection.storeCodeTextField}}" stepKey =" fillStoreViewCode" />
40
+ <selectOption userInput =" 1" selector =" {{AdminNewStoreSection.statusDropdown}}" stepKey =" enableStoreViewStatus" />
41
+ <click selector =" {{AdminStoresMainActionsSection.saveButton}}" stepKey =" clickStoreViewSaveButton" />
42
+ <waitForElementVisible selector =" {{AdminNewStoreSection.acceptNewStoreViewCreation}}" stepKey =" waitForAcceptNewStoreViewCreationModal" />
43
+ <conditionalClick selector =" {{AdminNewStoreSection.acceptNewStoreViewCreation}}" dependentSelector =" {{AdminNewStoreSection.acceptNewStoreViewCreation}}" visible =" true" stepKey =" AcceptNewStoreViewCreation" />
44
+ <waitForElementVisible selector =" {{AdminStoresGridSection.storeFilterTextField}}" stepKey =" waitForPageReolad" />
45
+ <see userInput =" You saved the store view." stepKey =" seeSaveMessage" />
46
+
47
+ <!-- Create a Simple Product with Custom Options -->
48
+ <amOnPage url =" {{AdminProductIndexPage.url}}" stepKey =" navigateToCatalogProductGrid" />
49
+ <click selector =" {{AdminProductGridActionSection.addProductToggle}}" stepKey =" clickAddProductDropdown" />
50
+ <click selector =" {{AdminProductGridActionSection.addSimpleProduct}}" stepKey =" clickAddSimpleProduct" />
51
+ <fillField userInput =" {{_defaultProduct.name}}" selector =" {{AdminProductFormSection.productName}}" stepKey =" fillName" />
52
+ <fillField userInput =" {{_defaultProduct.sku}}" selector =" {{AdminProductFormSection.productSku}}" stepKey =" fillSKU" />
53
+ <fillField userInput =" {{_defaultProduct.price}}" selector =" {{AdminProductFormSection.productPrice}}" stepKey =" fillPrice" />
54
+ <fillField userInput =" {{_defaultProduct.quantity}}" selector =" {{AdminProductFormSection.productQuantity}}" stepKey =" fillQuantity" />
55
+
56
+ <!-- <click selector="{{AdminProductCustomizableOptionsSection.customezableOptions}}" stepKey="openCustomOptionsSection"/>-->
57
+ <conditionalClick selector =" {{AdminProductCustomizableOptionsSection.customezableOptions}}" dependentSelector =" {{AdminProductCustomizableOptionsSection.checkIfCustomizableOptionsTabOpen}}" visible =" true" stepKey =" clickIfContentTabCloses2" />
58
+ <click selector =" {{AdminProductCustomizableOptionsSection.addOptionBtn}}" stepKey =" clickAddOption" />
59
+ <waitForPageLoad stepKey =" waitAfterAddOption" />
60
+ <fillField selector =" input[name='product[options][0][title]']" userInput =" Radio Option" stepKey =" fillOptionTitle" />
61
+ <click selector =" .admin__dynamic-rows[data-index='options'] .action-select" stepKey =" openOptionTypeDropDown" />
62
+ <click selector =" .admin__dynamic-rows[data-index='options'] .action-menu._active li:nth-of-type(3) li:nth-of-type(2)" stepKey =" selectRadioButtonType" />
63
+
64
+ <!-- Add Option Values -->
65
+ <click selector =" {{AdminProductCustomizableOptionsSection.clickAddValue('Radio Option')}}" stepKey =" clickAddValue1" />
66
+ <fillField selector =" {{AdminProductCustomizableOptionsSection.fillOptionValueTitle('Radio Option', '0')}}" userInput =" option 1" stepKey =" fillOptionValueTitle1" />
67
+ <fillField selector =" {{AdminProductCustomizableOptionsSection.fillOptionValuePrice('Radio Option', '0')}}" userInput =" 5" stepKey =" fillOptionValuePrice1" />
68
+
69
+ <click selector =" {{AdminProductCustomizableOptionsSection.clickAddValue('Radio Option')}}" stepKey =" clickAddValue2" />
70
+ <fillField selector =" {{AdminProductCustomizableOptionsSection.fillOptionValueTitle('Radio Option', '1')}}" userInput =" option 2" stepKey =" fillOptionValueTitle2" />
71
+ <fillField selector =" {{AdminProductCustomizableOptionsSection.fillOptionValuePrice('Radio Option', '1')}}" userInput =" 6" stepKey =" fillOptionValuePrice2" />
72
+
73
+ <click selector =" {{AdminProductCustomizableOptionsSection.clickAddValue('Radio Option')}}" stepKey =" clickAddValue3" />
74
+ <fillField selector =" {{AdminProductCustomizableOptionsSection.fillOptionValueTitle('Radio Option', '2')}}" userInput =" option 3" stepKey =" fillOptionValueTitle3" />
75
+ <fillField selector =" {{AdminProductCustomizableOptionsSection.fillOptionValuePrice('Radio Option', '2')}}" userInput =" 7" stepKey =" fillOptionValuePrice3" />
76
+
77
+ <!-- Save the product with custom options -->
78
+ <click selector =" {{AdminProductFormActionSection.saveButton}}" stepKey =" clickSaveButton" />
79
+ <waitForLoadingMaskToDisappear stepKey =" waitProductPageSave" />
80
+ <seeElement selector =" {{AdminProductMessagesSection.successMessage}}" stepKey =" seeProductSavedMessage" />
81
+
82
+ <!-- Add this product to second website -->
83
+ <click selector =" {{ProductInWebsitesSection.sectionHeader}}" stepKey =" openProductInWebsitesSection1" />
84
+ <click selector =" {{ProductInWebsitesSection.website('Second Website')}}" stepKey =" selectSecondWebsite" />
85
+ <click selector =" {{AdminProductFormActionSection.saveButton}}" stepKey =" clickSave" />
86
+ <waitForLoadingMaskToDisappear stepKey =" waitForProductPagetoSaveAgain" />
87
+ <seeElement selector =" {{AdminProductMessagesSection.successMessage}}" stepKey =" seeSaveProductMessageAgain" />
88
+
89
+ <click selector =" {{AdminProductCustomizableOptionsSection.customezableOptions}}" stepKey =" openCustomOptionsSection2" />
90
+ <seeNumberOfElements selector =" .admin__dynamic-rows[data-index='values'] tr.data-row" userInput =" 3" stepKey =" see4RowsOfOptions" />
91
+
92
+ </test >
93
+ </tests >
0 commit comments