Skip to content

Commit 3c605d1

Browse files
committed
Merge remote-tracking branch 'origin/MAGETWO-99171' into 2.2-develop-pr104
2 parents 0c4c458 + 0f9b4f8 commit 3c605d1

16 files changed

+281
-21
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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+
<!-- Switch back to createData after MQE-1427 will be deployed -->
11+
<actionGroup name="AdminFillBasicBraintreeConfigActionGroup">
12+
<arguments>
13+
<argument name="braintreeConfig" defaultValue="BraintreeConfigData"/>
14+
</arguments>
15+
<amOnPage url="{{AdminConfigPaymentMethodsPage.url}}" stepKey="openPaymentConfigPage"/>
16+
<waitForPageLoad time="30" stepKey="waitPaymentConfigPageOpened"/>
17+
<scrollTo selector="{{AdminBraintreeConfigSection.recommendedSolutionsTab}}" stepKey="scrollToRecommendedSolutions"/>
18+
<conditionalClick selector="{{AdminBraintreeConfigSection.recommendedSolutionsTab}}" dependentSelector="{{AdminBraintreeConfigSection.braintreeConfigureButton}}" visible="false" stepKey="expandRecommendedSolutions"/>
19+
<waitForElementVisible selector="{{AdminBraintreeConfigSection.braintreeConfigureButton}}" stepKey="waitForConfigureButton"/>
20+
<click selector="{{AdminBraintreeConfigSection.braintreeConfigureButton}}" stepKey="clickConfigureButton"/>
21+
<waitForElementVisible selector="{{AdminBraintreeConfigSection.title}}" stepKey="waitForTitleElement"/>
22+
<fillField userInput="{{braintreeConfig.title}}" selector="{{AdminBraintreeConfigSection.title}}" stepKey="fillTitle"/>
23+
<selectOption userInput="{{braintreeConfig.environment}}" selector="{{AdminBraintreeConfigSection.environment}}" stepKey="fillEnvironment"/>
24+
<selectOption userInput="{{braintreeConfig.payment_action}}" selector="{{AdminBraintreeConfigSection.paymentAction}}" stepKey="fillPaymentAction"/>
25+
<fillField userInput="{{_CREDS.braintree_disabled_fraud_merchant_id}}" selector="{{AdminBraintreeConfigSection.merchantId}}" stepKey="fillMerchantId"/>
26+
<fillField userInput="{{_CREDS.braintree_disabled_fraud_public_key}}" selector="{{AdminBraintreeConfigSection.publicKey}}" stepKey="fillPublicKey"/>
27+
<fillField userInput="{{_CREDS.braintree_disabled_fraud_private_key}}" selector="{{AdminBraintreeConfigSection.privateKey}}" stepKey="fillPrivateKey"/>
28+
<selectOption userInput="{{braintreeConfig.active}}" selector="{{AdminBraintreeConfigSection.active}}" stepKey="fillActive"/>
29+
<conditionalClick selector="{{AdminBraintreeConfigSection.advancedSettingsTab}}" dependentSelector="{{AdminBraintreeConfigSection.merchantAccountId}}" visible="false" stepKey="openAdvancedSettingsTab"/>
30+
<waitForElementVisible selector="{{AdminBraintreeConfigSection.merchantAccountId}}" stepKey="waitForMerchantAccountIdElement"/>
31+
<fillField userInput="{{_CREDS.braintree_disabled_fraud_merchant_account_id}}" selector="{{AdminBraintreeConfigSection.merchantAccountId}}" stepKey="fillMerchantAccountId"/>
32+
<selectOption userInput="{{braintreeConfig.useccv}}" selector="{{AdminBraintreeConfigSection.useCcv}}" stepKey="fillCvvVerification"/>
33+
<scrollToTopOfPage stepKey="scrollPageTop"/>
34+
<click selector="{{AdminMainActionsSection.save}}" stepKey="clickSaveButton"/>
35+
<waitForElementVisible selector="{{AdminMessagesSection.success}}" stepKey="waitSuccessMessage"/>
36+
<see selector="{{AdminMessagesSection.success}}" userInput="You saved the configuration." stepKey="assertConfigSaved"/>
37+
</actionGroup>
38+
39+
<actionGroup name="AdminFillBraintreeWithPaypalConfigActionGroup" extends="AdminFillBasicBraintreeConfigActionGroup">
40+
<selectOption userInput="{{braintreeConfig.active_braintree_paypal}}" selector="{{AdminBraintreeConfigSection.braintreePaypalActive}}" after="fillActive" stepKey="fillBraintreePaypalActive"/>
41+
</actionGroup>
42+
43+
<actionGroup name="DisableBraintreeActionGroup">
44+
<magentoCLI command="config:set {{BraintreeDisableConfigData.path}} {{BraintreeDisableConfigData.value}}" stepKey="disableBraintreePayment"/>
45+
</actionGroup>
46+
47+
<actionGroup name="DisableBraintreeWithPaypalActionGroup" extends="DisableBraintreeActionGroup">
48+
<magentoCLI command="config:set {{BraintreeDisablePaypalConfigData.path}} {{BraintreeDisablePaypalConfigData.value}}" stepKey="disableBraintreePaypal"/>
49+
</actionGroup>
50+
</actionGroups>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
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="BraintreeDisableConfigData">
12+
<data key="path">payment/braintree/active</data>
13+
<data key="scope_id">0</data>
14+
<data key="label">No</data>
15+
<data key="value">0</data>
16+
</entity>
17+
18+
<entity name="BraintreeDisablePaypalConfigData">
19+
<data key="path">payment/braintree_paypal/active</data>
20+
<data key="scope_id">0</data>
21+
<data key="label">No</data>
22+
<data key="value">0</data>
23+
</entity>
24+
</entities>

app/code/Magento/Braintree/Test/Mftf/Data/BraintreeData.xml

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,19 +98,19 @@
9898
<data key="value">sandbox</data>
9999
</entity>
100100
<entity name="EnabledMerchantId" type="merchant_id">
101-
<data key="value">d4pdjhxgjfrsmzbf</data>
101+
<data key="value">{{_CREDS.braintree_disabled_fraud_merchant_id}}</data>
102102
</entity>
103103
<entity name="EnabledPublicKey" type="public_key">
104-
<data key="value">m7q4wmh43xrgyrst</data>
104+
<data key="value">{{_CREDS.braintree_disabled_fraud_public_key}}</data>
105105
</entity>
106106
<entity name="EnabledPrivateKey" type="private_key">
107-
<data key="value">67de364080b1b4e2492d7a3de413a572</data>
107+
<data key="value">{{_CREDS.braintree_disabled_fraud_private_key}}</data>
108108
</entity>
109109
<entity name="EnabledActive" type="active">
110110
<data key="value">1</data>
111111
</entity>
112112
<entity name="EnabledMerchantAccountId" type="merchant_account_id">
113-
<data key="value">Magneto</data>
113+
<data key="value">{{_CREDS.braintree_disabled_fraud_merchant_account_id}}</data>
114114
</entity>
115115

116116
<entity name="SandboxBraintreeWithPaypalConfig" extends="SandboxBraintreeConfig">
@@ -127,4 +127,16 @@
127127
<data key="exp_year">20</data>
128128
<data key="cvv">113</data>
129129
</entity>
130+
131+
<entity name="BraintreeConfigData" type="data">
132+
<data key="title">Credit Card (Braintree)</data>
133+
<data key="environment">sandbox</data>
134+
<data key="payment_action">authorize</data>
135+
<data key="active">1</data>
136+
<data key="useccv">1</data>
137+
</entity>
138+
139+
<entity name="BraintreeWithPaypalConfigData" extends="BraintreeConfigData">
140+
<data key="active_braintree_paypal">1</data>
141+
</entity>
130142
</entities>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
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+
<pages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/PageObject.xsd">
9+
<page name="AdminConfigPaymentMethodsPage" url="admin/system_config/edit/section/payment/" area="admin" module="Magento_Payment">
10+
<section name="AdminBraintreeConfigSection"/>
11+
</page>
12+
</pages>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
10+
<section name="AdminBraintreeConfigSection">
11+
<element name="recommendedSolutionsTab" type="block" selector="//*[contains(@class, 'section-config')]//a[normalize-space(text())='Recommended Solutions:']"/>
12+
<element name="braintreeConfigureButton" type="button" selector=".braintree-section .action-configure" timeout="10"/>
13+
<element name="title" type="input" selector="input[name='groups[braintree_section][groups][braintree][groups][braintree_required][fields][title][value]']"/>
14+
<element name="environment" type="select" selector="select[name='groups[braintree_section][groups][braintree][groups][braintree_required][fields][environment][value]']"/>
15+
<element name="paymentAction" type="select" selector="select[name='groups[braintree_section][groups][braintree][groups][braintree_required][fields][payment_action][value]']"/>
16+
<element name="merchantId" type="input" selector="input[name='groups[braintree_section][groups][braintree][groups][braintree_required][fields][merchant_id][value]']"/>
17+
<element name="publicKey" type="input" selector="input[name='groups[braintree_section][groups][braintree][groups][braintree_required][fields][public_key][value]']"/>
18+
<element name="privateKey" type="input" selector="input[name='groups[braintree_section][groups][braintree][groups][braintree_required][fields][private_key][value]']"/>
19+
<element name="active" type="select" selector="select[name='groups[braintree_section][groups][braintree][fields][active][value]']"/>
20+
<element name="braintreePaypalActive" type="select" selector="select[name='groups[braintree_section][groups][braintree][fields][active_braintree_paypal][value]']"/>
21+
<element name="advancedSettingsTab" type="block" selector="//*[contains(@class, 'braintree-section')]//a[normalize-space(text())='Advanced Braintree Settings']" timeout="10"/>
22+
<element name="merchantAccountId" type="input" selector="input[name='groups[braintree_section][groups][braintree][groups][braintree_advanced][fields][merchant_account_id][value]']"/>
23+
<element name="useCcv" type="select" selector="select[name='groups[braintree_section][groups][braintree][groups][braintree_advanced][fields][useccv][value]']"/>
24+
</section>
25+
</sections>

app/code/Magento/Braintree/Test/Mftf/Section/StorefrontMiniCartSection.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1111
<section name="StorefrontMiniCartSection">
12-
<element name="payWithPayPal" type="button" selector=".braintree-paypal-button-hidden" timeout="30"/>
12+
<element name="payWithPayPal" type="button" selector="[id^='braintree-paypal-mini-cart']" timeout="30"/>
1313
<element name="proceedWithSandboxPurchase" type="text" selector="#return_url"/>
1414
</section>
1515
</sections>

app/code/Magento/Braintree/Test/Mftf/Test/AdminCreateOrderUsingBraintreePaymentTest.xml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@
1717
<severity value="CRITICAL"/>
1818
<testCaseId value="MAGETWO-94247"/>
1919
<group value="braintree"/>
20+
<skip>
21+
<issueId value="MAGETWO-99951"/>
22+
</skip>
2023
</annotations>
2124

2225
<before>
23-
<createData entity="SandboxBraintreeConfig" stepKey="setupBraintree"/>
2426
<createData entity="_defaultCategory" stepKey="createCategory"/>
2527
<createData entity="_defaultProduct" stepKey="createSimpleProduct">
2628
<requiredEntity createDataKey="createCategory"/>
@@ -30,6 +32,7 @@
3032
<createData entity="restrictedWebUser" stepKey="createRestrictedAdmin"/>
3133

3234
<actionGroup ref="LoginToAdminActionGroup" stepKey="loginToBackend"/>
35+
<actionGroup ref="AdminFillBasicBraintreeConfigActionGroup" stepKey="setupBraintree"/>
3336
<actionGroup ref="AdminCreateUserRoleActionGroup" stepKey="createRestrictedAdminRole">
3437
<argument name="roleName" value="{{RoleTest.roleName}}"/>
3538
<argument name="resourceAccess" value="Custom"/>
@@ -43,6 +46,9 @@
4346
</before>
4447

4548
<after>
49+
<deleteData createDataKey="createSimpleProduct" stepKey="removeSimpleProduct"/>
50+
<deleteData createDataKey="createCustomer" stepKey="removeCustomer"/>
51+
<actionGroup ref="DisableBraintreeActionGroup" stepKey="disableBraintree"/>
4652
<actionGroup ref="LoginToAdminActionGroup" stepKey="loginToBackendWithDefaultAdmin"/>
4753
<!--Remove created admin user-->
4854
<actionGroup ref="AdminDeleteUserActionGroup" stepKey="removeAdminUser">
@@ -53,19 +59,14 @@
5359
<argument name="roleName" value="{{RoleTest.roleName}}"/>
5460
</actionGroup>
5561
<actionGroup ref="logout" stepKey="logoutDefaultAdminFromBackend"/>
56-
<createData entity="DefaultBraintreeConfig" stepKey="restoreBraintree"/>
57-
<deleteData createDataKey="createSimpleProduct" stepKey="removeSimpleProduct"/>
58-
<deleteData createDataKey="createCustomer" stepKey="removeCustomer"/>
5962
</after>
6063
<!--Login with restricted user-->
6164
<amOnPage url="{{AdminLoginPage.url}}" stepKey="amOnAdminLoginPage"/>
62-
<waitForPageLoad stepKey="waitForLoginPageLoad"/>
6365
<fillField selector="{{AdminLoginFormSection.username}}" userInput="$$createRestrictedAdmin.username$$" stepKey="fillUsername"/>
6466
<fillField selector="{{AdminLoginFormSection.password}}" userInput="$$createRestrictedAdmin.password$$" stepKey="fillPassword"/>
6567
<click selector="{{AdminLoginFormSection.signIn}}" stepKey="clickOnSignIn"/>
6668
<!--Navigate to orders page-->
6769
<amOnPage url="{{AdminOrdersPage.url}}" stepKey="navigateToOrderIndexPage"/>
68-
<waitForPageLoad time="30" stepKey="waitForIndexPageLoad"/>
6970
<see selector="{{AdminHeaderSection.pageTitle}}" userInput="Orders" stepKey="seeIndexPageTitle"/>
7071
<!--Create new order-->
7172
<click selector="{{OrdersGridSection.createNewOrder}}" stepKey="clickCreateNewOrder"/>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
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+
<pages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/PageObject.xsd">
9+
<page name="AdminConfigPaymentMethodsPage" url="admin/system_config/edit/section/payment/" area="admin" module="Magento_Payment">
10+
</page>
11+
</pages>
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
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="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="StorefrontResolveWindowsCount">
12+
<executeJS function="return 0;" stepKey="windowsCount"/>
13+
<executeInSelenium function="function ($webdriver) use (&amp;$windowsCount) {
14+
$windowsCount = count($webdriver->getWindowHandles());
15+
}" stepKey="calculateWindowsCount"/>
16+
</actionGroup>
17+
<actionGroup name="StorefrontWaitForPaypalWindowAppearsAndSwitchTo">
18+
<arguments>
19+
<argument name="windowsCount" type="string"/>
20+
</arguments>
21+
<executeInSelenium function="function ($webdriver) use ({{windowsCount}}, $I) {
22+
$webdriver->wait()->until(\Facebook\WebDriver\WebDriverExpectedCondition::numberOfWindowsToBe({{windowsCount}} + 1));
23+
$handles = $webdriver->getWindowHandles();
24+
$lastWindow = end($handles);
25+
$I->switchToWindow($lastWindow);
26+
}" stepKey="switchToPaypalSandboxTab"/>
27+
</actionGroup>
28+
<actionGroup name="StorefrontWaitForPaypalWindowCloseAndSwitchToMain">
29+
<arguments>
30+
<argument name="windowsCount" type="string"/>
31+
</arguments>
32+
<executeInSelenium function="function ($webdriver) use ({{windowsCount}}, $I) {
33+
$webdriver->wait()->until(\Facebook\WebDriver\WebDriverExpectedCondition::numberOfWindowsToBe({{windowsCount}}));
34+
$handles = $webdriver->getWindowHandles();
35+
$lastWindow = end($handles);
36+
$I->switchToWindow($lastWindow);
37+
}" stepKey="switchBackToMainWindow"/>
38+
</actionGroup>
39+
<!-- PayPal account login -->
40+
<actionGroup name="StorefrontPaypalLoginWithBuyerAccount">
41+
<arguments>
42+
<argument name="buyerAccount" defaultValue="DefaultPaypalBuyerAccount"/>
43+
</arguments>
44+
<waitForElementVisible selector="{{PayPalPopupLoginSection.email}}" stepKey="waitForEmailFieldVisible"/>
45+
<fillField userInput="{{buyerAccount.email}}" selector="{{PayPalPopupLoginSection.email}}" stepKey="fillBuyerEmail"/>
46+
<conditionalClick selector="{{PayPalPopupLoginSection.nextButton}}" dependentSelector="{{PayPalPopupLoginSection.password}}" visible="false" stepKey="proceedToPassword"/>
47+
<waitForElementNotVisible time="30" selector="{{PayPalPopupLoginSection.busySpinner}}" stepKey="waitForBusySpinner"/>
48+
<waitForElementNotVisible time="30" selector="{{PayPalPopupLoginSection.preloadSpinner}}" stepKey="waitForPreloadSpinner"/>
49+
<waitForElementVisible selector="{{PayPalPopupLoginSection.password}}" stepKey="waitForPasswordFieldVisible"/>
50+
<fillField userInput="{{buyerAccount.password}}" selector="{{PayPalPopupLoginSection.password}}" stepKey="fillBuyerPassword"/>
51+
<click selector="{{PayPalPopupLoginSection.loginButton}}" stepKey="clickLogin"/>
52+
<waitForElementNotVisible time="30" selector="{{PayPalPopupLoginSection.busySpinner}}" stepKey="waitForBusySpinnerAfterLogin"/>
53+
<waitForElementNotVisible time="30" selector="{{PayPalPopupLoginSection.preloadSpinner}}" stepKey="waitForPreloadSpinnerAfterLogin"/>
54+
</actionGroup>
55+
<!-- Assumes we are logged in to PayPal account -->
56+
<!-- PayPal account submit review -->
57+
<actionGroup name="StorefrontPaypalWindowSubmitReview">
58+
<waitForElementVisible time="30" selector="{{PayPalPopupReviewSection.continueButton}}" stepKey="waitForContinuaButtonVisible"/>
59+
<click selector="{{PayPalPopupReviewSection.continueButton}}" stepKey="clickContinueButton"/>
60+
<waitForElementNotVisible time="30" selector="{{PayPalPopupLoginSection.busySpinner}}" stepKey="waitForBusySpinner"/>
61+
<waitForElementNotVisible time="30" selector="{{PayPalPopupLoginSection.preloadSpinner}}" stepKey="waitForPreloadSpinner"/>
62+
</actionGroup>
63+
</actionGroups>
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+
9+
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
11+
<!-- Should be resolved from {{_CREDS}} after MQE-1576 will be delivered -->
12+
<entity name="DefaultPaypalBuyerAccount" type="data">
13+
<data key="email">{{_CREDS.paypal_buyer_account_email}}</data>
14+
<data key="password">{{_CREDS.paypal_buyer_account_password}}</data>
15+
</entity>
16+
</entities>

0 commit comments

Comments
 (0)