Skip to content

Commit 18aabb0

Browse files
author
Stas Puga
committed
MAGETWO-90115: Automate purchasing a product with Custom Options(MAGETWO-58184)
1 parent d624e86 commit 18aabb0

16 files changed

+397
-53
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
10+
<!--Click Add to Cart button in storefront product page-->
11+
<actionGroup name="addToCartFromStorefrontCustomOptionsProductPage">
12+
<arguments>
13+
<argument name="productName"/>
14+
</arguments>
15+
<click selector="{{StorefrontProductActionSection.addToCart}}" stepKey="addToCart"/>
16+
<waitForPageLoad stepKey="waitForPageLoad"/>
17+
<see selector="{{StorefrontMessagesSection.success}}" userInput="You added {{productName}} to your shopping cart." stepKey="seeAddToCartSuccessMessage"/>
18+
</actionGroup>
19+
</actionGroups>

dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/ActionGroup/StorefrontProductPageActionGroup.xml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,4 @@
2121
<waitForPageLoad stepKey="waitForPageLoad"/>
2222
<see selector="{{StorefrontMessagesSection.success}}" userInput="You added {{productName}} to your shopping cart." stepKey="seeAddToCartSuccessMessage"/>
2323
</actionGroup>
24-
25-
<actionGroup name="addToCartFromStorefrontCustomOptionsProductPage">
26-
<arguments>
27-
<argument name="productName"/>
28-
</arguments>
29-
<click selector="{{StorefrontProductActionSection.addToCart}}" stepKey="addToCart"/>
30-
<waitForPageLoad stepKey="waitForPageLoad"/>
31-
<see selector="{{StorefrontMessagesSection.success}}" userInput="You added {{productName}} to your shopping cart." stepKey="seeAddToCartSuccessMessage"/>
32-
</actionGroup>
3324
</actionGroups>

dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ProductData.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,11 +168,11 @@
168168
<requiredEntity type="product_option">ProductOptionArea</requiredEntity>
169169
<requiredEntity type="product_option">ProductOptionFile</requiredEntity>
170170
<requiredEntity type="product_option">ProductOptionDropdown</requiredEntity>
171-
<requiredEntity type="product_option">ProductOptionRadioButtons</requiredEntity>
171+
<requiredEntity type="product_option">ProductOptionRadiobutton</requiredEntity>
172172
<requiredEntity type="product_option">ProductOptionCheckbox</requiredEntity>
173173
<requiredEntity type="product_option">ProductOptionMultiSelect</requiredEntity>
174174
<requiredEntity type="product_option">ProductOptionDate</requiredEntity>
175-
<requiredEntity type="product_option">ProductOptionDateAndTime</requiredEntity>
175+
<requiredEntity type="product_option">ProductOptionDateTime</requiredEntity>
176176
<requiredEntity type="product_option">ProductOptionTime</requiredEntity>
177177
</entity>
178178
</entities>

dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Data/ProductOptionData.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
<requiredEntity type="product_option_value">ProductOptionValueDropdown1</requiredEntity>
5050
<requiredEntity type="product_option_value">ProductOptionValueDropdown2</requiredEntity>
5151
</entity>
52-
<entity name="ProductOptionRadioButtons" type="product_option">
52+
<entity name="ProductOptionRadiobutton" type="product_option">
5353
<var key="product_sku" entityType="product" entityKey="sku" />
5454
<data key="title">OptionRadioButtons</data>
5555
<data key="type">radio</data>
@@ -84,9 +84,9 @@
8484
<data key="price">1234</data>
8585
<data key="price_type">fixed</data>
8686
</entity>
87-
<entity name="ProductOptionDateAndTime" type="product_option">
87+
<entity name="ProductOptionDateTime" type="product_option">
8888
<var key="product_sku" entityType="product" entityKey="sku" />
89-
<data key="title">OptionDateAndTime</data>
89+
<data key="title">OptionDateTime</data>
9090
<data key="type">date_time</data>
9191
<data key="sort_order">9</data>
9292
<data key="is_require">true</data>

dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductFormActionSection.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,7 @@
1313
<element name="saveButton" type="button" selector="#save-button" timeout="30"/>
1414
<element name="saveArrow" type="button" selector="button[data-ui-id='save-button-dropdown']" timeout="10"/>
1515
<element name="saveAndClose" type="button" selector="span[title='Save &amp; Close']" timeout="30"/>
16+
<element name="storeSwitcherAll" type="button" selector="//div[contains(@class,'store-switcher')]//button" timeout="10"/>
17+
<element name="storeSwitcher" type="button" selector="//div[contains(@class,'store-switcher')]//button/../ul/li/a[contains(., '{{var1}}')]" timeout="10" parameterized="true"/>
1618
</section>
1719
</sections>

dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/AdminProductFormSection.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,4 +140,18 @@
140140
<element name="checkIfArrowExpand" type="button" selector="//li[@id='root' and contains(@class,'jstree-closed')]" />
141141
<element name="confirmDelete" type="button" selector=".action-primary.action-accept" />
142142
</section>
143+
<section name="CustomizableOptions">
144+
<element name="checkIfCustomizableOptionsTabOpen" type="button" selector="//span[text()='Customizable Options']/parent::strong/parent::*[@data-state-collapsible='closed']"/>
145+
<element name="customezableOptions" type="button" selector="//strong[contains(@class, 'admin__collapsible-title')]/span[text()='Customizable Options']"/>
146+
<element name="clickAddOption" type="button" selector="//span[text()='Add Option']"/>
147+
<element name="fillOptionTitle" type="input" selector="//span[text()='{{var1}}']/parent::div/parent::div/parent::div//span[text()='Option Title']/parent::label/parent::div//input[@class='admin__control-text']" parameterized="true"/>
148+
<element name="checkSelect" type="select" selector="//span[text()='{{var1}}']/parent::div/parent::div/parent::div//span[text()='Option Type']/parent::label/parent::div//div[@data-role='selected-option']" parameterized="true"/>
149+
<element name="checkDropDown" type="select" selector="//span[text()='{{var1}}']/parent::div/parent::div/parent::div//parent::label/parent::div//li[@class='admin__action-multiselect-menu-inner-item']//label[text()='Drop-down']" parameterized="true"/>
150+
<element name="clickAddValue" type="button" selector="//span[text()='{{var1}}']/parent::div/parent::div/parent::div//tfoot//button" parameterized="true"/>
151+
<element name="fillOptionValueTitle" type="input" selector="//span[text()='{{var1}}']/parent::div/parent::div/parent::div//tbody/tr[@data-repeat-index='{{var2}}']//span[text()='Title']/parent::label/parent::div//div[@class='admin__field-control']/input" parameterized="true"/>
152+
<element name="fillOptionValuePrice" type="input" selector="//span[text()='{{var1}}']/parent::div/parent::div/parent::div//tbody/tr[@data-repeat-index='{{var2}}']//span[text()='Price']/parent::label/parent::div//div[@class='admin__control-addon']/input" parameterized="true"/>
153+
<element name="clickSelectPriceType" type="select" selector="//span[text()='{{var1}}']/parent::div/parent::div/parent::div//tbody//tr[@data-repeat-index='{{var2}}']//span[text()='Price Type']/parent::label/parent::div//select" parameterized="true"/>
154+
<element name="checkboxUseDefaultTitle" type="checkbox" selector="//span[text()='Option Title']/parent::label/parent::div/div//input[@type='checkbox']"/>
155+
<element name="checkboxUseDefaultOption" type="checkbox" selector="//table[@data-index='values']//tbody//tr[@data-repeat-index='{{var1}}']//div[@class='admin__field-control']//input[@type='checkbox']" parameterized="true"/>
156+
</section>
143157
</sections>

dev/tests/acceptance/tests/functional/Magento/FunctionalTest/Catalog/Section/StorefrontProductInfoMainSection.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,17 @@
3939
<element name="productAttributeTitle1" type="text" selector="#product-options-wrapper div[tabindex='0'] label"/>
4040
<element name="productAttributeOptions1" type="select" selector="#product-options-wrapper div[tabindex='0'] option"/>
4141
<element name="productAttributeOptionsField" type="text" selector="//label[contains(.,'{{var1}}')]//span[@data-price-amount='{{var2}}']" parameterized="true"/>
42-
<element name="productAttributeOptionsArea" type="text" selector="//label[contains(.,'{{var1}}')]//span[@data-price-amount='1.7']" parameterized="true"/>
42+
<element name="productAttributeOptionsArea" type="text" selector="//label[contains(.,'{{var1}}')]//span[@data-price-amount='{{var2}}']" parameterized="true"/>
4343
<element name="productAttributeOptionsFile" type="text" selector="//label[contains(.,'{{var1}}')]//span[@data-price-amount='{{var2}}']" parameterized="true"/>
4444
<element name="productAttributeOptionsDropDown" type="text" selector="//label[contains(.,'{{var1}}')]/../div[@class='control']//select//option[@price='{{var2}}']" parameterized="true"/>
4545
<element name="productAttributeOptionsRadioButtons" type="text" selector="//label[contains(.,'{{var1}}')]/../div[@class='control']//span[@data-price-amount='{{var2}}']" parameterized="true"/>
46-
<element name="productAttributeOptionsCheckbox" type="text" selector="//label[contains(.,'{{var1}}')]/../div[@class='control']//span[@data-price-amount='20.91']" parameterized="true"/>
46+
<element name="productAttributeOptionsCheckbox" type="text" selector="//label[contains(.,'{{var1}}')]/../div[@class='control']//span[@data-price-amount='{{var2}}']" parameterized="true"/>
4747
<element name="productAttributeOptionsMultiselect" type="text" selector="//label[contains(.,'{{var1}}')]/../div[@class='control']//select//option[@price='{{var2}}']" parameterized="true"/>
4848
<element name="productAttributeOptionsData" type="text" selector="//span[contains(.,'{{var1}}')]/../span[@class='price-notice']//span[@data-price-amount='{{var2}}']" parameterized="true"/>
4949
<element name="mediaDescription" type="text" selector=".product.attribute.description>div>p>img"/>
5050
<element name="mediaShortDescription" type="text" selector=".product.attribute.overview>div>p>img"/>
5151
<element name="productAddToCompare" type="button" selector="a.action.tocompare"/>
52+
<element name="productOptionDropDownTitle" type="text" selector="//label[contains(.,'{{var1}}')]" parameterized="true"/>
53+
<element name="productOptionDropDownOptionTitle" type="text" selector="//label[contains(.,'{{var1}}')]/../div[@class='control']//select//option[contains(.,'{{var2}}')]" parameterized="true"/>
5254
</section>
5355
</sections>

0 commit comments

Comments
 (0)