Skip to content

Commit ae82f44

Browse files
committed
MC-10985: Create MFTF Tests
Added tests for PayPal
1 parent 273d2db commit ae82f44

File tree

8 files changed

+365
-1
lines changed

8 files changed

+365
-1
lines changed
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
10+
<actionGroup name="OpenPayPalButtonCheckoutPage">
11+
<click selector="{{PayPalExpressCheckoutConfigSection.configureBtn}}" stepKey="clickPayPalConfigureBtn"/>
12+
<waitForElementVisible selector="{{PayPalAdvancedSettingConfigSection.advancedSettingTab}}" stepKey="waitForAdvancedSettingTab"/>
13+
<click selector="{{PayPalAdvancedSettingConfigSection.advancedSettingTab}}" stepKey="openAdvancedSettingTab"/>
14+
<waitForElementVisible selector="{{PayPalAdvancedSettingConfigSection.frontendExperienceSettingsTab}}" stepKey="waitForFrontendExperienceSettingsTab"/>
15+
<click selector="{{PayPalAdvancedSettingConfigSection.frontendExperienceSettingsTab}}" stepKey="openFrontendExperienceSettingsTab"/>
16+
<waitForElementVisible selector="{{PayPalAdvancedSettingConfigSection.checkoutPageTab}}" stepKey="waitForCheckoutPageTab"/>
17+
<click selector="{{PayPalAdvancedSettingConfigSection.checkoutPageTab}}" stepKey="openCheckoutPageTab"/>
18+
</actionGroup>
19+
</actionGroups>
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
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="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
10+
<actionGroup name="ConfigPayPalExpressCheckout">
11+
<amOnPage url="{{AdminConfigPaymentMethodsPage.url}}" stepKey="navigateToPaymentConfigurationPage"/>
12+
<waitForPageLoad stepKey="waitForPageLoad1"/>
13+
<click selector="{{PayPalExpressCheckoutConfigSection.configureBtn}}" stepKey="clickPayPalConfigureBtn"/>
14+
<waitForElementVisible selector="{{PayPalAdvancedSettingConfigSection.advancedSettingTab}}" stepKey="waitForAdvancedSettingTab"/>
15+
<fillField selector ="{{PayPalExpressCheckoutConfigSection.email}}" userInput="{{_CREDS.paypal_express_email}}" stepKey="inputEmailAssociatedWithPayPalMerchantAccount"/>
16+
<selectOption selector ="{{PayPalExpressCheckoutConfigSection.apiMethod}}" userInput="API Signature" stepKey="inputAPIAuthenticationMethods"/>
17+
<fillField selector ="{{PayPalExpressCheckoutConfigSection.username}}" userInput="{{_CREDS.paypal_express_api_username}}" stepKey="inputAPIUsername"/>
18+
<fillField selector ="{{PayPalExpressCheckoutConfigSection.password}}" userInput="{{_CREDS.paypal_express_api_password}}" stepKey="inputAPIPassword"/>
19+
<fillField selector ="{{PayPalExpressCheckoutConfigSection.signature}}" userInput="{{_CREDS.paypal_express_api_signature}}" stepKey="inputAPISignature"/>
20+
<selectOption selector ="{{PayPalExpressCheckoutConfigSection.sandboxMode}}" userInput="Yes" stepKey="enableSandboxMode"/>
21+
<selectOption selector="{{PayPalExpressCheckoutConfigSection.enableSolution}}" userInput="Yes" stepKey="enableSolution"/>
22+
<fillField selector ="{{PayPalExpressCheckoutConfigSection.merchantID}}" userInput="{{_CREDS.paypal_express_merchantID}}" stepKey="inputMerchantID"/>
23+
<!--Save configuration-->
24+
<click selector="{{AdminConfigSection.saveButton}}" stepKey="saveConfig"/>
25+
</actionGroup>
26+
<actionGroup name="CreatePayPalOrderWithSelectedPaymentMethodActionGroup" extends="CreateOrderToPrintPageActionGroup">
27+
<waitForElement selector="{{CheckoutPaymentSection.paymentSectionTitle}}" stepKey="waitForPlaceOrderButton"/>
28+
<click selector="{{CheckoutPaymentSection.PayPalPaymentRadio}}" stepKey="clickPlaceOrder"/>
29+
<!--set ID for iframe of PayPal group button-->
30+
<executeJS function="jQuery('.zoid-component-frame.zoid-visible').attr('id', 'myIframe')" stepKey="clickOrderLink"/>
31+
<!--switch to iframe of PayPal group button-->
32+
<comment userInput="switch to iframe of PayPal group button" stepKey="commentSwitchToIframe"/>
33+
<switchToIFrame userInput="myIframe" stepKey="clickPrintOrderLink"/>
34+
<waitForElementVisible selector="{{CheckoutPaymentSection.PayPalBtn}}" stepKey="waitForPayPalBtn"/>
35+
<click selector="{{CheckoutPaymentSection.PayPalBtn}}" stepKey="clickPayPalBtn"/>
36+
<switchToIFrame stepKey="switchBack1"/>
37+
<!--Check in-context-->
38+
<comment userInput="Check in-context" stepKey="commentVerifyInContext"/>
39+
<switchToNextTab stepKey="switchToInContentTab"/>
40+
<waitForPageLoad stepKey="waitForPageLoad"/>
41+
<seeCurrentUrlMatches regex="~\//www.sandbox.paypal.com/~" stepKey="seeCurrentUrlMatchesConfigPath1"/>
42+
<waitForElement selector="{{PayPalPaymentSection.email}}" stepKey="waitForLoginForm" />
43+
<fillField selector="{{PayPalPaymentSection.email}}" userInput="{{Payer.buyerEmail}}" stepKey="fillEmail"/>
44+
<fillField selector="{{PayPalPaymentSection.password}}" userInput="{{Payer.buyerPassword}}" stepKey="fillPassword"/>
45+
<click selector="{{PayPalPaymentSection.loginBtn}}" stepKey="login"/>
46+
<waitForPageLoad stepKey="wait"/>
47+
<seeElement selector="{{PayPalPaymentSection.reviewUserInfo}}" stepKey="seePayerName"/>
48+
</actionGroup>
49+
<actionGroup name="addProductToCheckoutPage">
50+
<arguments>
51+
<argument name="Category"/>
52+
</arguments>
53+
<amOnPage url="{{StorefrontCategoryPage.url(Category.name)}}" stepKey="onCategoryPage"/>
54+
<waitForPageLoad stepKey="waitForPageLoad1"/>
55+
<moveMouseOver selector="{{StorefrontCategoryMainSection.ProductItemInfo}}" stepKey="hoverProduct"/>
56+
<click selector="{{StorefrontCategoryMainSection.AddToCartBtn}}" stepKey="addToCart"/>
57+
<waitForElementVisible selector="{{StorefrontCategoryMainSection.SuccessMsg}}" time="30" stepKey="waitForProductAdded"/>
58+
<click selector="{{StorefrontMinicartSection.showCart}}" stepKey="clickCart"/>
59+
<click selector="{{StorefrontMinicartSection.goToCheckout}}" stepKey="goToCheckout"/>
60+
<waitForPageLoad stepKey="waitForPageLoad2"/>
61+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMask"/>
62+
<click selector="{{CheckoutShippingMethodsSection.firstShippingMethod}}" stepKey="selectFirstShippingMethod"/>
63+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMask2"/>
64+
<waitForElement selector="{{CheckoutShippingMethodsSection.next}}" time="30" stepKey="waitForNextButton"/>
65+
<click selector="{{CheckoutShippingMethodsSection.next}}" stepKey="clickNext"/>
66+
<waitForElement selector="{{CheckoutPaymentSection.paymentSectionTitle}}" stepKey="waitForPlaceOrderButton"/>
67+
<click selector="{{CheckoutPaymentSection.PayPalPaymentRadio}}" stepKey="clickPayPalCheckbox"/>
68+
</actionGroup>
69+
</actionGroups>

app/code/Magento/Paypal/Test/Mftf/Data/PaypalData.xml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,35 @@
5858
<entity name="DefaultApiSignature" type="api_signature">
5959
<data key="value"/>
6060
</entity>
61+
<entity name="Payer" type="paypal_buyer">
62+
<data key="buyerEmail">[email protected]</data>
63+
<data key="buyerPassword">12345678</data>
64+
</entity>
65+
<entity name="PayPalLabel" type="paypal">
66+
<data key="checkout">checkout</data>
67+
<data key="credit">credit</data>
68+
<data key="pay">pay</data>
69+
<data key="buynow">buy now</data>
70+
<data key="paypal">pay pal</data>
71+
<data key="installment">installment</data>
72+
</entity>
73+
<entity name="PayPalLayout" type="paypal">
74+
<data key="horizontal">horizontal</data>
75+
<data key="vertical">vertical</data>
76+
</entity>
77+
<entity name="PayPalSize" type="paypal">
78+
<data key="medium">medium</data>
79+
<data key="large">large</data>
80+
<data key="responsive">responsive</data>
81+
</entity>
82+
<entity name="PayPalShape" type="paypal">
83+
<data key="pill">pill</data>
84+
<data key="rectangle">rectangle</data>
85+
</entity>
86+
<entity name="PayPalColor" type="paypal">
87+
<data key="gold">gold</data>
88+
<data key="blue">blue</data>
89+
<data key="silver">silver</data>
90+
<data key="black">black</data>
91+
</entity>
6192
</entities>
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
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+
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
11+
<section name="PayPalExpressCheckoutConfigSection">
12+
<element name="configureBtn" type="button" selector="#payment_us_paypal_alternative_payment_methods_express_checkout_us-head"/>
13+
<element name="email" type="input" selector="#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_checkout_required_express_checkout_required_express_checkout_business_account" />
14+
<element name="apiMethod" type="input" selector="#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_checkout_required_express_checkout_required_express_checkout_api_authentication"/>
15+
<element name="username" type="input" selector="#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_checkout_required_express_checkout_required_express_checkout_api_username"/>
16+
<element name="password" type="input" selector="#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_checkout_required_express_checkout_required_express_checkout_api_password"/>
17+
<element name="signature" type="input" selector="#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_checkout_required_express_checkout_required_express_checkout_api_signature"/>
18+
<element name="sandboxMode" type="input" selector="#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_checkout_required_express_checkout_required_express_checkout_sandbox_flag"/>
19+
<element name="enableSolution" type="input" selector="#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_checkout_required_enable_express_checkout"/>
20+
<element name="merchantID" type="input" selector="#payment_us_paypal_alternative_payment_methods_express_checkout_us_express_checkout_required_merchant_id"/>
21+
</section>
22+
<section name="PayPalAdvancedSettingConfigSection">
23+
<element name="advancedSettingTab" type="button" selector="#payment_us_paypal_alternative_payment_methods_express_checkout_us_settings_ec_settings_ec_advanced-head"/>
24+
<element name="frontendExperienceSettingsTab" type="button" selector="#payment_us_paypal_alternative_payment_methods_express_checkout_us_settings_ec_settings_ec_advanced_express_checkout_frontend-head"/>
25+
<element name="checkoutPageTab" type="button" selector="#payment_us_paypal_alternative_payment_methods_express_checkout_us_settings_ec_settings_ec_advanced_express_checkout_frontend_checkout_page_button-head"/>
26+
</section>
27+
<section name="ButtonCustomization">
28+
<element name="customizeDrpDown" type="button" selector="//tr[@id='row_payment_us_paypal_alternative_payment_methods_express_checkout_us_settings_ec_settings_ec_advanced_express_checkout_frontend_checkout_page_button_checkout_page_button_customize']//select[contains(@data-ui-id, 'button-customize')]"/>
29+
<element name="customizeNo" type="text" selector="//tr[@id='row_payment_us_paypal_alternative_payment_methods_express_checkout_us_settings_ec_settings_ec_advanced_express_checkout_frontend_checkout_page_button_checkout_page_button_customize']//select[contains(@data-ui-id, 'button-customize')]/option[@value='0' and @selected='selected']"/>
30+
<element name="label" type="input" selector="//tr[@id='row_payment_us_paypal_alternative_payment_methods_express_checkout_us_settings_ec_settings_ec_advanced_express_checkout_frontend_checkout_page_button']//select[contains(@id, 'button_label')]"/>
31+
<element name="layout" type="input" selector="//tr[@id='row_payment_us_paypal_alternative_payment_methods_express_checkout_us_settings_ec_settings_ec_advanced_express_checkout_frontend_checkout_page_button']//select[contains(@id, 'button_layout')]"/>
32+
<element name="size" type="input" selector="//tr[@id='row_payment_us_paypal_alternative_payment_methods_express_checkout_us_settings_ec_settings_ec_advanced_express_checkout_frontend_checkout_page_button']//select[contains(@id, 'button_size')]"/>
33+
<element name="shape" type="input" selector="//tr[@id='row_payment_us_paypal_alternative_payment_methods_express_checkout_us_settings_ec_settings_ec_advanced_express_checkout_frontend_checkout_page_button']//select[contains(@id, 'button_shape')]"/>
34+
<element name="color" type="input" selector="//tr[@id='row_payment_us_paypal_alternative_payment_methods_express_checkout_us_settings_ec_settings_ec_advanced_express_checkout_frontend_checkout_page_button']//select[contains(@id, 'button_color')]"/>
35+
</section>
36+
<section name="PayPalButtonOnStorefront">
37+
<element name="label" type="text" selector="[aria-label='{{label}}']" parameterized="true"/>
38+
<element name="layout" type="text" selector="[data-layout='{{layout}}']" parameterized="true"/>
39+
<element name="size" type="text" selector="[data-size='{{size}}']" parameterized="true"/>
40+
<element name="shape" type="text" selector=".paypal-button-shape-{{shape}}" parameterized="true"/>
41+
<element name="color" type="text" selector=".paypal-button-color-{{color}}" parameterized="true"/>
42+
</section>
43+
<section name="CheckoutPaymentSection">
44+
<element name="PayPalPaymentRadio" type="radio" selector="input#paypal_express.radio" timeout="30"/>
45+
<element name="PayPalBtn" type="radio" selector=".paypal-button.paypal-button-number-0" timeout="30"/>
46+
</section>
47+
<section name="PayPalPaymentSection">
48+
<element name="guestCheckout" type="input" selector="#guest"/>
49+
<element name="loginSection" type="input" selector=" #main>#login"/>
50+
<element name="email" type="input" selector="//input[contains(@name, 'email') and not(contains(@style, 'display:none'))]"/>
51+
<element name="password" type="input" selector="//input[contains(@name, 'password') and not(contains(@style, 'display:none'))]"/>
52+
<element name="loginBtn" type="input" selector="button#btnLogin"/>
53+
<element name="reviewUserInfo" type="text" selector="//p[@id='reviewUserInfo' and contains(text(),'Hi, MPI!')]"/>
54+
<element name="cartIcon" type="text" selector="#transactionCart"/>
55+
<element name="itemName" type="text" selector="//span[@title='{{productName}}']" parameterized="true"/>
56+
<element name="PayPalSubmitBtn" type="text" selector="//input[@type='submit']"/>
57+
</section>
58+
</sections>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
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+
<suites xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Suite/etc/suiteSchema.xsd">
9+
<suite name="PaypalTestSuite">
10+
<include>
11+
<test name="CheckDefaultValueOfPayPalCustomizeButtonTest"/>
12+
<test name="PayPalSmartButtonInCheckoutPage"/>
13+
<test name="CheckCreditButtonConfiguration"/>
14+
</include>
15+
</suite>
16+
</suites>

app/code/Magento/Paypal/Test/Mftf/Test/AdminConfigPaymentsSectionState.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<testCaseId value="MAGETWO-92043"/>
1919
</annotations>
2020
<after>
21-
<amOnPage url="admin/admin/auth/logout/" stepKey="amOnLogoutPage"/>
21+
<actionGroup ref="logout" stepKey="amOnLogoutPage"/>
2222
</after>
2323

2424
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin1"/>

0 commit comments

Comments
 (0)