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+ <tests xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
9+ xsi : noNamespaceSchemaLocation =" urn:magento:mftf:Test/etc/testSchema.xsd" >
10+ <test name =" AdminCreatePartialRefundForOrderPaidWithPayPalPayflowProTest" >
11+ <annotations >
12+ <features value =" PayPal" />
13+ <stories value =" Paypal Payments Pro" />
14+ <title value =" Create Partial Refund for Order Paid with PayPal Payflow Pro" />
15+ <description value =" Admin Create Partial Refund for Order Paid with PayPal Payflow Pro from the storefront" />
16+ <severity value =" MAJOR" />
17+ <testCaseId value =" AC-5264" />
18+ <group value =" paypalPayflowPro" />
19+ </annotations >
20+ <before >
21+ <!-- Create Simple product-->
22+ <createData entity =" SimpleProduct" stepKey =" createSimpleProduct" />
23+ <!-- Create Customer-->
24+ <createData entity =" Simple_US_Customer" stepKey =" createCustomer" />
25+ <!-- Reindex and Clean cache-->
26+ <actionGroup ref =" CliIndexerReindexActionGroup" stepKey =" performReindex" >
27+ <argument name =" indices" value =" " />
28+ </actionGroup >
29+ <actionGroup ref =" CliCacheFlushActionGroup" stepKey =" flushPageCache" >
30+ <argument name =" tags" value =" full_page config" />
31+ </actionGroup >
32+ <!-- Login to admin-->
33+ <actionGroup ref =" AdminLoginActionGroup" stepKey =" loginAsAdmin" />
34+ <!-- Login to storefront-->
35+ <actionGroup ref =" LoginToStorefrontActionGroup" stepKey =" customerLogin" >
36+ <argument name =" Customer" value =" $createCustomer$" />
37+ </actionGroup >
38+ <actionGroup ref =" StorefrontOpenProductEntityPageActionGroup" stepKey =" goToProductOnStorefront" >
39+ <argument name =" product" value =" $$createSimpleProduct$$" />
40+ </actionGroup >
41+ <!-- Add product to cart with qty 2 and proceed to checkout-->
42+ <actionGroup ref =" StorefrontAddProductToCartWithQtyActionGroup" stepKey =" addVirtualProductToCart" >
43+ <argument name =" productQty" value =" 2" />
44+ </actionGroup >
45+ <actionGroup ref =" StorefrontCartPageOpenActionGroup" stepKey =" goToCheckoutCartPage" />
46+ <actionGroup ref =" StorefrontClickProceedToCheckoutActionGroup" stepKey =" clickProceedToCheckout" />
47+ <actionGroup ref =" StorefrontCheckoutClickNextButtonActionGroup" stepKey =" clickOnNextButton" />
48+ <!-- Checkout select Credit Card (Payflow Pro) and place order-->
49+ <conditionalClick selector =" {{StorefrontCheckoutPaymentMethodSection.checkPaymentMethodByName('Credit Card (Payflow Pro)')}}" dependentSelector =" {{StorefrontCheckoutPaymentMethodSection.checkPaymentMethodByName('Credit Card (Payflow Pro)')}}" visible =" true" stepKey =" selectCreditCardPaymentMethod" />
50+ <waitForPageLoad stepKey =" waitForLoadingMaskAfterPaymentMethodSelection" />
51+ <!-- Fill Card Data and place an order-->
52+ <actionGroup ref =" StorefrontPaypalFillCardDataActionGroup" stepKey =" fillCardData" >
53+ <argument name =" cardData" value =" VisaDefaultCard" />
54+ </actionGroup >
55+ <actionGroup ref =" ClickPlaceOrderActionGroup" stepKey =" clickOnPlaceOrder" />
56+ </before >
57+ <after >
58+ <actionGroup ref =" AdminOrdersPageOpenActionGroup" stepKey =" navigateToSalesOrderPage" />
59+ <actionGroup ref =" AdminClearFiltersActionGroup" stepKey =" clickOnButtonToRemoveFiltersIfPresent" />
60+ <deleteData createDataKey =" createSimpleProduct" stepKey =" deleteSimpleProduct" />
61+ <deleteData createDataKey =" createCustomer" stepKey =" deleteCustomer" />
62+ <actionGroup ref =" AdminLogoutActionGroup" stepKey =" logout" />
63+ </after >
64+ <waitForElement selector =" {{CheckoutSuccessMainSection.orderNumber22}}" stepKey =" waitForOrderNumber" />
65+ <grabTextFrom selector =" {{CheckoutSuccessMainSection.orderNumber22}}" stepKey =" grabOrderNumber" />
66+ <actionGroup ref =" OpenOrderByIdActionGroup" stepKey =" openOrder" >
67+ <argument name =" orderId" value =" {$grabOrderNumber}" />
68+ </actionGroup >
69+ <!-- Go to invoice page and submit invoice-->
70+ <actionGroup ref =" GoToInvoiceIntoOrderActionGroup" stepKey =" goToInvoiceIntoOrderPage" />
71+ <actionGroup ref =" SubmitInvoiceActionGroup" stepKey =" submitInvoiceIntoOrder" />
72+ <!-- Open Invoice tab and create credit memo for partial refund from created invoice-->
73+ <actionGroup ref =" AdminOpenInvoiceTabFromOrderPageActionGroup" stepKey =" openInvoiceTab" />
74+ <waitForElementClickable selector =" {{AdminOrderInvoicesTabSection.viewInvoice}}" stepKey =" waitForInvoicesTabOpenedOne" />
75+ <click selector =" {{AdminOrderInvoicesTabSection.viewInvoice}}" stepKey =" seeForInvoicesTabOpenedOne" />
76+ <waitForPageLoad stepKey =" waitForInvoicePageToBeLoaded" />
77+ <actionGroup ref =" AdminStartToCreateCreditMemoFromInvoicePageActionGroup" stepKey =" clickOnCreditMemoFromInvoiceTab" />
78+ <waitForElementVisible selector =" {{AdminCreditMemoItemsSection.itemQtyToRefund('1')}}" stepKey =" waitToItemToRefundTextField" />
79+ <fillField selector =" {{AdminCreditMemoItemsSection.itemQtyToRefund('1')}}" userInput =" 1" stepKey =" partialRefund" />
80+ <waitForElementClickable selector =" {{AdminCreditMemoItemsSection.updateQty}}" stepKey =" waitToClickUpdateQuantity" />
81+ <click selector =" {{AdminCreditMemoItemsSection.updateQty}}" stepKey =" updateQuantityToRefund" />
82+ <waitForPageLoad stepKey =" waitForQuantityApplied" />
83+ <actionGroup ref =" SubmitCreditMemoActionGroup" stepKey =" submitCreditMemo" >
84+ <argument name =" refundButton" value =" {{AdminInvoiceMainActionsSection.submitNewRefundFromInvoice}}" />
85+ </actionGroup >
86+ <!-- Assert Order status-->
87+ <waitForText selector =" {{AdminOrderDetailsInformationSection.orderStatus}}" userInput =" Processing" stepKey =" seeOrderStatus" />
88+ <!-- Grab transaction ID for refund and assert refund message in comments history tab-->
89+ <waitForElement selector =" {{AdminOrderPaymentInformationSection.paymentInformationField('Last Transaction ID')}}" stepKey =" waitForTransactionID" />
90+ <grabTextFrom selector =" {{AdminOrderPaymentInformationSection.paymentInformationField('Last Transaction ID')}}" stepKey =" grabTransactionID" />
91+ <actionGroup ref =" AdminOpenOrderCommentsHistoryActionGroup" stepKey =" clickOnCommentsHistory" />
92+ <waitForText selector =" {{AdminOrderCommentsTabSection.orderCommentsWithType('refunded')}}" userInput =" We refunded $133.00 online. Transaction ID: " {$grabTransactionID}" " stepKey =" seeOrderHistoryNotesForRefund" />
93+ <!-- Open credit memo tab and assert created credit memo grand total-->
94+ <waitForElementClickable selector =" {{AdminOrderDetailsOrderViewSection.creditMemos}}" stepKey =" waitToClickCreditMemoTab" />
95+ <click selector =" {{AdminOrderDetailsOrderViewSection.creditMemos}}" stepKey =" clickCreditMemoTab" />
96+ <actionGroup ref =" AdminOpenCreditMemoFromOrderPageActionGroup" stepKey =" clickOnCreditMemosTab" />
97+ <actionGroup ref =" AssertAdminCreditMemoGrandTotalActionGroup" stepKey =" assertGrandTotal" >
98+ <argument name =" expectedGrandTotal" value =" $133.00" />
99+ </actionGroup >
100+ <waitForElementClickable selector =" {{AdminProductFormActionSection.backButton}}" stepKey =" waitToClickBackButtonFromCreditMemo" />
101+ <click selector =" {{AdminProductFormActionSection.backButton}}" stepKey =" clickBackButtonFromCreditMemo" />
102+ <!-- Open transaction Tab and assert the transaction types Authorization, Capture and Refund are present-->
103+ <actionGroup ref =" AdminAssertTransactionTypeInTransactionTabActionGroup" stepKey =" assertAuthorizationTransactionType" >
104+ <argument name =" transactionType" value =" authorization" />
105+ </actionGroup >
106+ <waitForText selector =" {{AdminTransactionsGridSection.transactionData('Is Closed')}}" userInput =" Yes" stepKey =" seeIfClosedHeaderIsSetAsYesForAuthorization" />
107+ <waitForElementClickable selector =" {{AdminProductFormActionSection.backButton}}" stepKey =" waitForBackButtonToBeClickedFromAuthorization" />
108+ <click selector =" {{AdminProductFormActionSection.backButton}}" stepKey =" clickBackButtonFromAuthorization" />
109+ <!-- Assert Capture Transaction-->
110+ <actionGroup ref =" AdminAssertTransactionTypeInTransactionTabActionGroup" stepKey =" assertCaptureTransactionType" >
111+ <argument name =" transactionType" value =" capture" />
112+ </actionGroup >
113+ <waitForText selector =" {{AdminTransactionsGridSection.transactionData('Is Closed')}}" userInput =" Yes" stepKey =" seeIfClosedHeaderIsSetAsYesForCapture" />
114+ <waitForElementClickable selector =" {{AdminProductFormActionSection.backButton}}" stepKey =" waitForBackButtonToBeClickedFromCapture" />
115+ <click selector =" {{AdminProductFormActionSection.backButton}}" stepKey =" clickBackButtonFromCapture" />
116+ <!-- Assert Refund Transaction-->
117+ <actionGroup ref =" AdminAssertTransactionTypeInTransactionTabActionGroup" stepKey =" assertRefundTransactionType" >
118+ <argument name =" transactionType" value =" refund" />
119+ </actionGroup >
120+ <waitForText selector =" {{AdminTransactionsGridSection.transactionData('Is Closed')}}" userInput =" Yes" stepKey =" seeIfClosedHeaderIsSetAsYesForRefund" />
121+ <waitForElementClickable selector =" {{AdminProductFormActionSection.backButton}}" stepKey =" waitForBackButtonToBeClickedFromRefund" />
122+ <click selector =" {{AdminProductFormActionSection.backButton}}" stepKey =" clickBackButtonFromRefund" />
123+ </test >
124+ </tests >
0 commit comments