Skip to content

Commit c383b4c

Browse files
authored
Merge pull request magento#114 from magento-pangolin/MC-4776
MC-4776
2 parents 3acf193 + 8eed6a5 commit c383b4c

14 files changed

+285
-5
lines changed

app/code/Magento/Customer/Test/Mftf/Section/StorefrontCustomerOrderSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<element name="productCustomOptions" type="text" selector="//strong[contains(@class, 'product-item-name') and normalize-space(.)='{{var1}}']/following-sibling::*[contains(@class, 'item-options')]/dt[normalize-space(.)='{{var2}}']/following-sibling::dd[normalize-space(.)='{{var3}}']" parameterized="true"/>
1414
<element name="productCustomOptionsFile" type="text" selector="//strong[contains(@class, 'product-item-name') and normalize-space(.)='{{var1}}']/following-sibling::*[contains(@class, 'item-options')]/dt[normalize-space(.)='{{var2}}']/following-sibling::dd[contains(.,'{{var3}}')]" parameterized="true"/>
1515
<element name="productCustomOptionsLink" type="text" selector="//strong[contains(@class, 'product-item-name') and normalize-space(.)='{{var1}}']/following-sibling::*[contains(@class, 'item-options')]/dt[normalize-space(.)='{{var2}}']/following-sibling::dd//a[text() = '{{var3}}']" parameterized="true"/>
16+
<element name="status" type="text" selector="//td[contains(concat(' ',normalize-space(@class),' '),' col status ')]"/>
1617
<element name="viewOrder" type="button" selector="//td[contains(concat(' ',normalize-space(@class),' '),' col actions ')]/a[contains(concat(' ',normalize-space(@class),' '),' action view ')]"/>
1718
<element name="tabRefund" type="button" selector="//a[text()='Refunds']"/>
1819
<element name="grandTotalRefund" type="text" selector="td[data-th='Grand Total'] > strong > span.price"/>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="FilterOrderStatusByLabelAndCodeActionGroup">
12+
<arguments>
13+
<argument name="statusLabel" type="string"/>
14+
<argument name="statusCode" type="string"/>
15+
</arguments>
16+
<conditionalClick selector="{{AdminOrderStatusGridSection.resetFilter}}" dependentSelector="{{AdminOrderStatusGridSection.resetFilter}}" visible="true" stepKey="clearOrderStatusFilters" />
17+
<fillField selector="{{AdminOrderStatusGridSection.statusLabel}}" userInput="{{statusLabel}}" stepKey="fillStatusLabel"/>
18+
<fillField selector="{{AdminOrderStatusGridSection.statusCode}}" userInput="{{statusCode}}" stepKey="fillStatusCode"/>
19+
<click selector="{{AdminOrderStatusGridSection.search}}" stepKey="clickSearch"/>
20+
<waitForPageLoad stepKey="waitForSearch"/>
21+
</actionGroup>
22+
</actionGroups>
Lines changed: 19 additions & 0 deletions
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+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="SelectActionForOrdersActionGroup">
12+
<arguments>
13+
<argument name="action" type="string"/>
14+
</arguments>
15+
<checkOption selector="{{AdminOrdersGridSection.checkOrder}}" stepKey="checkOrder"/>
16+
<click selector="{{AdminOrdersGridSection.orderActions}}" stepKey="clickOrderActions"/>
17+
<click selector="{{AdminOrdersGridSection.changeOrderStatus(action)}}" stepKey="changeOrdersAction"/>
18+
</actionGroup>
19+
</actionGroups>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
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+
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
11+
<entity name="OrderActions" type="orderActions">
12+
<data key="cancel">Cancel</data>
13+
<data key="hold">Hold</data>
14+
<data key="unhold">Unhold</data>
15+
<data key="printInvoices">Print Invoices</data>
16+
<data key="printPackingSlips">Print Packing Slips</data>
17+
<data key="printCreditMemos">Print Credit Memos</data>
18+
<data key="printAll">Print All</data>
19+
<data key="printShippingLabels">Print Shipping Labels</data>
20+
</entity>
21+
</entities>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
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+
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
11+
<entity name="OrderState" type="state">
12+
<data key="canceled">Canceled</data>
13+
<data key="closed">Closed</data>
14+
<data key="complete">Complete</data>
15+
<data key="payment_review">Payment Review</data>
16+
<data key="processing">Processing</data>
17+
<data key="holded">On Hold</data>
18+
<data key="new">Pending</data>
19+
<data key="pending_payment">Pending Payment</data>
20+
</entity>
21+
</entities>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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+
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
11+
<entity name="EnableCheckmoOrderStatusPending">
12+
<data key="path">payment/checkmo/order_status</data>
13+
<data key="scope">payment</data>
14+
<data key="scope_id">1</data>
15+
<data key="label">Pending</data>
16+
<data key="value">pending</data>
17+
</entity>
18+
</entities>

app/code/Magento/Sales/Test/Mftf/Section/AdminAssignOrderStatusToStateSection.xml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@
55
* See COPYING.txt for license details.
66
*/
77
-->
8+
89
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9-
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1011
<section name="AdminAssignOrderStatusToStateSection">
11-
<element name="orderStatus" type="select" selector="#container [name=status]"/>
12-
<element name="orderState" type="select" selector="#container [name=state]"/>
12+
<element name="orderStatus" type="select" selector="#status"/>
13+
<element name="orderState" type="select" selector="#state"/>
14+
<element name="orderStatusAsDefault" type="checkbox" selector="#is_default"/>
15+
<element name="visibleOnStorefront" type="checkbox" selector="#visible_on_front"/>
1316
<element name="saveStatusAssignment" type="button" selector="#save" timeout="30"/>
1417
</section>
1518
</sections>

app/code/Magento/Sales/Test/Mftf/Section/AdminOrderStatusGridSection.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,13 @@
1212
<element name="statusCodeFilterField" type="input" selector="[data-role=filter-form] [name=status]"/>
1313
<element name="statusCodeDataColumn" type="input" selector="[data-role=row] [data-column=status]"/>
1414
<element name="statusLabelDataColumn" type="input" selector="[data-role=row] [data-column=label]"/>
15+
<element name="assignStatusToStateBtn" type="button" selector="#assign" timeout="30"/>
16+
<element name="statusLabel" type="input" selector="#sales_order_status_grid_filter_label"/>
17+
<element name="statusCode" type="input" selector="#sales_order_status_grid_filter_status"/>
18+
<element name="resetFilter" type="button" selector="//div[contains(concat(' ',normalize-space(@class),' '),' action-reset ')]" timeout="30"/>
19+
<element name="search" type="button" selector="[data-action='grid-filter-apply']" timeout="30"/>
20+
<element name="gridCell" type="text" selector="//tr['{{row}}']//td[count(//div[contains(concat(' ',normalize-space(@class),' '),' admin__data-grid-wrap ')]//tr//th[contains(., '{{cellName}}')]/preceding-sibling::th) +1 ]" parameterized="true" timeout="30"/>
1521
<element name="stateCodeAndTitleDataColumn" type="input" selector="[data-role=row] [data-column=state]"/>
16-
<element name="assignStatusToStateButton" type="button" selector="#assign" timeout="30"/>
1722
<element name="unassign" type="text" selector="[data-role=row] [data-column=unassign]"/>
1823
</section>
1924
</sections>

app/code/Magento/Sales/Test/Mftf/Section/AdminOrdersGridSection.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@
3131
<element name="viewColumnCheckbox" type="checkbox" selector="//div[contains(@class,'admin__data-grid-action-columns')]//div[contains(@class, 'admin__field-option')]//label[text() = '{{column}}']/preceding-sibling::input" parameterized="true"/>
3232
<element name="customerInOrdersSection" type="button" selector="(//td[contains(text(),'{{customer}}')])[1]" parameterized="true"/>
3333
<element name="productForOrder" type="button" selector="//td[contains(text(),'{{var}}')]" parameterized="true"/>
34+
<element name="checkOrder" type="input" selector="//td[count(//div[@data-role='grid-wrapper'])]//input"/>
35+
<element name="orderActions" type="button" selector="//div[contains(concat(' ',normalize-space(@class),' '),' row-gutter ')]//button[@title='Select Items']"/>
36+
<element name="changeOrderStatus" type="button" selector="//div[contains(concat(' ',normalize-space(@class),' '),' row-gutter ')]//span[text()='{{status}}']" parameterized="true" timeout="30"/>
3437
<element name="viewLink" type="text" selector="//td/div[contains(.,'{{orderID}}')]/../..//a[@class='action-menu-item']" parameterized="true"/>
3538
</section>
3639
</sections>

app/code/Magento/Sales/Test/Mftf/Section/StorefrontOrderInformationMainSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
<section name="StorefrontOrderInformationMainSection">
1212
<element name="orderTitle" type="span" selector="#page-title-wrapper"/>
1313
<element name="return" type="span" selector="//span[contains(text(), 'Return')]"/>
14+
<element name="emptyMessage" type="text" selector="//div[contains(concat(' ',normalize-space(@class),' '),' message info empty ')]/span"/>
1415
</section>
1516
</sections>

app/code/Magento/Sales/Test/Mftf/Test/AdminUnassignCustomOrderStatusTest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
<argument name="status" value="{{defaultOrderStatus.status}}"/>
4141
<argument name="label" value="{{defaultOrderStatus.label}}"/>
4242
</actionGroup>
43-
<click selector="{{AdminOrderStatusGridSection.assignStatusToStateButton}}" stepKey="clickAssignStatusToStateButton"/>
43+
<click selector="{{AdminOrderStatusGridSection.assignStatusToStateBtn}}" stepKey="clickAssignStatusToStateButton"/>
4444
<waitForPageLoad stepKey="waitForAssignOrderStatusToStateLoad"/>
4545
<selectOption selector="{{AdminAssignOrderStatusToStateSection.orderStatus}}" userInput="{{defaultOrderStatus.label}}" stepKey="selectOrderStatus"/>
4646
<waitForPageLoad stepKey="waitForOrderStatusLoad"/>
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
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="AssignCustomOrderStatusNotVisibleOnStorefrontTest">
12+
<annotations>
13+
<features value="Sales"/>
14+
<stories value="Assign Custom Order Status"/>
15+
<title value="Assign custom order status not visible on storefront test"/>
16+
<description value="Assign custom order status not visible on storefront"/>
17+
<severity value="CRITICAL"/>
18+
<testCaseId value="MC-16053"/>
19+
<group value="sales"/>
20+
<group value="mtf_migrated"/>
21+
</annotations>
22+
<before>
23+
<!-- Create customer -->
24+
<createData entity="Simple_US_Customer" stepKey="createCustomer"/>
25+
26+
<!-- Create product -->
27+
<createData entity="SimpleProduct2" stepKey="createSimpleProduct"/>
28+
29+
<!-- Login as admin -->
30+
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
31+
</before>
32+
<after>
33+
<!-- Disable created order status -->
34+
<magentoCLI command="config:set {{EnableCheckmoOrderStatusPending.path}} {{EnableCheckmoOrderStatusPending.value}}" stepKey="rollbackNewOrderStatus"/>
35+
36+
<!-- Logout customer -->
37+
<actionGroup ref="StorefrontCustomerLogoutActionGroup" stepKey="customerLogout"/>
38+
39+
<!-- Delete product -->
40+
<deleteData createDataKey="createSimpleProduct" stepKey="deleteProduct"/>
41+
42+
<!-- Delete customer -->
43+
<deleteData createDataKey="createCustomer" stepKey="deleteCustomer"/>
44+
45+
<!-- Log out -->
46+
<actionGroup ref="logout" stepKey="logout"/>
47+
</after>
48+
49+
<!-- Create order status -->
50+
<amOnPage url="{{AdminOrderStatusPage.url}}" stepKey="goToOrderStatusPage"/>
51+
<waitForPageLoad stepKey="waitForOrderStatusPageLoad"/>
52+
<click selector="{{AdminMainActionsSection.add}}" stepKey="clickCreateNewStatus"/>
53+
54+
<!-- Fill form and validate message -->
55+
<actionGroup ref="AdminOrderStatusFormFillAndSave" stepKey="fillFormAndClickSave">
56+
<argument name="status" value="{{defaultOrderStatus.status}}"/>
57+
<argument name="label" value="{{defaultOrderStatus.label}}"/>
58+
</actionGroup>
59+
<actionGroup ref="AssertOrderStatusFormSaveSuccess" stepKey="seeFormSaveSuccess"/>
60+
61+
<!-- Assign status to state -->
62+
<click selector="{{AdminOrderStatusGridSection.assignStatusToStateBtn}}" stepKey="clickAssignStatusBtn"/>
63+
<selectOption selector="{{AdminAssignOrderStatusToStateSection.orderStatus}}" userInput="{{defaultOrderStatus.status}}" stepKey="selectOrderStatus"/>
64+
<selectOption selector="{{AdminAssignOrderStatusToStateSection.orderState}}" userInput="{{OrderState.new}}" stepKey="selectOrderState"/>
65+
<checkOption selector="{{AdminAssignOrderStatusToStateSection.orderStatusAsDefault}}" stepKey="orderStatusAsDefault"/>
66+
<uncheckOption selector="{{AdminAssignOrderStatusToStateSection.visibleOnStorefront}}" stepKey="visibleOnStorefront"/>
67+
<click selector="{{AdminAssignOrderStatusToStateSection.saveStatusAssignment}}" stepKey="clickSaveStatus"/>
68+
<see selector="{{AdminMessagesSection.success}}" userInput="You assigned the order status." stepKey="seeSuccess"/>
69+
70+
<!-- Prepare data for constraints -->
71+
<magentoCLI command="config:set {{EnableCheckmoOrderStatusPending.path}} {{defaultOrderStatus.label}}" stepKey="enableNewOrderStatus"/>
72+
73+
<!-- Assert order status in grid -->
74+
<actionGroup ref="FilterOrderStatusByLabelAndCodeActionGroup" stepKey="filterOrderStatusGrid">
75+
<argument name="statusLabel" value="{{defaultOrderStatus.label}}"/>
76+
<argument name="statusCode" value="{{defaultOrderStatus.status}}"/>
77+
</actionGroup>
78+
<see selector="{{AdminOrderStatusGridSection.gridCell('1', 'State Code and Title')}}" userInput="new[{{defaultOrderStatus.label}}]" stepKey="seeOrderStatusInOrderGrid"/>
79+
80+
<!-- Create order and grab order id -->
81+
<actionGroup ref="CreateOrderActionGroup" stepKey="createNewOrder">
82+
<argument name="product" value="$$createSimpleProduct$$"/>
83+
<argument name="customer" value="$$createCustomer$$"/>
84+
</actionGroup>
85+
<grabTextFrom selector="|Order # (\d+)|" stepKey="getOrderId"/>
86+
87+
<!-- Assert order status is correct -->
88+
<amOnPage url="{{AdminOrdersPage.url}}" stepKey="goToOrdersPage"/>
89+
<waitForPageLoad stepKey="waitForOrdersPageLoad"/>
90+
<actionGroup ref="filterOrderGridById" stepKey="filterOrdersGridById">
91+
<argument name="orderId" value="$getOrderId"/>
92+
</actionGroup>
93+
<click selector="{{AdminDataGridTableSection.firstRow}}" stepKey="clickCreatedOrderInGrid"/>
94+
<see selector="{{AdminOrderDetailsInformationSection.orderStatus}}" userInput="{{defaultOrderStatus.label}}" stepKey="seeOrderStatus"/>
95+
96+
<!-- Login as customer -->
97+
<actionGroup ref="LoginToStorefrontActionGroup" stepKey="loginToStorefrontAccount">
98+
<argument name="Customer" value="$$createCustomer$$"/>
99+
</actionGroup>
100+
<waitForPageLoad stepKey="waitForCustomerLogin"/>
101+
102+
<!-- Open My Orders -->
103+
<amOnPage url="{{StorefrontCustomerDashboardPage.url}}" stepKey="goToCustomerDashboardPage"/>
104+
<waitForPageLoad stepKey="waitForCustomerDashboardPageLoad"/>
105+
<actionGroup ref="StorefrontCustomerGoToSidebarMenu" stepKey="goToMyOrdersPage">
106+
<argument name="menu" value="My Orders"/>
107+
</actionGroup>
108+
109+
<!-- Assert order not visible on My Orders -->
110+
<see selector="{{StorefrontOrderInformationMainSection.emptyMessage}}" userInput="You have placed no orders." stepKey="seeEmptyMessage"/>
111+
112+
<!-- Cancel order -->
113+
<amOnPage url="{{AdminOrdersPage.url}}" stepKey="goToAdminOrdersPage"/>
114+
<waitForPageLoad stepKey="waitForAdminOrdersPageLoad"/>
115+
<actionGroup ref="filterOrderGridById" stepKey="filterOrdersGridByOrderId">
116+
<argument name="orderId" value="$getOrderId"/>
117+
</actionGroup>
118+
<checkOption selector="{{AdminOrdersGridSection.checkOrder}}" stepKey="selectOrder"/>
119+
<actionGroup ref="SelectActionForOrdersActionGroup" stepKey="selectCancelOrderAction">
120+
<argument name="action" value="{{OrderActions.cancel}}"/>
121+
</actionGroup>
122+
<see selector="{{AdminMessagesSection.success}}" userInput="We canceled 1 order(s)." stepKey="seeSuccessMessage"/>
123+
124+
<!-- Unassign order status -->
125+
<amOnPage url="{{AdminOrderStatusPage.url}}" stepKey="goToOrderStatus"/>
126+
<waitForPageLoad stepKey="waitForStatusPageLoad"/>
127+
<actionGroup ref="FilterOrderStatusByLabelAndCodeActionGroup" stepKey="filterStatusGrid">
128+
<argument name="statusLabel" value="{{defaultOrderStatus.label}}"/>
129+
<argument name="statusCode" value="{{defaultOrderStatus.status}}"/>
130+
</actionGroup>
131+
<click selector="{{AdminOrderStatusGridSection.unassign}}" stepKey="unassignOrderStatus"/>
132+
<see selector="{{AdminMessagesSection.success}}" userInput="You have unassigned the order status." stepKey="seeMessage"/>
133+
</test>
134+
</tests>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
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="AssignCustomOrderStatusVisibleOnStorefrontTest" extends="AssignCustomOrderStatusNotVisibleOnStorefrontTest">
12+
<annotations>
13+
<features value="Sales"/>
14+
<stories value="Assign Custom Order Status"/>
15+
<title value="Assign custom order status visible on storefront test"/>
16+
<description value="Assign custom order status visible on storefront"/>
17+
<severity value="CRITICAL"/>
18+
<testCaseId value="MC-16054"/>
19+
<group value="sales"/>
20+
<group value="mtf_migrated"/>
21+
</annotations>
22+
<remove keyForRemoval="seeEmptyMessage"/>
23+
24+
<!-- Assign status to state part -->
25+
<checkOption selector="{{AdminAssignOrderStatusToStateSection.visibleOnStorefront}}" stepKey="visibleOnStorefront"/>
26+
27+
<!-- Assert order in orders grid on frontend -->
28+
<see selector="{{StorefrontCustomerOrderSection.status}}" userInput="{{defaultOrderStatus.label}}" stepKey="seeOrderStatusOnStorefront" after="goToMyOrdersPage"/>
29+
</test>
30+
</tests>

0 commit comments

Comments
 (0)