Skip to content

Commit 067ca96

Browse files
committed
ACQE-8549: Cannot checkout after session expires with persistent shopping cart.
- New test case added.
1 parent b28144a commit 067ca96

File tree

3 files changed

+125
-0
lines changed

3 files changed

+125
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2025 Adobe
5+
* All Rights Reserved.
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="AdminDisableLoginOnCheckoutActionGroup">
12+
<annotations>
13+
<description>Disable customer login on checkout page.</description>
14+
</annotations>
15+
<magentoCLI command="config:set checkout/options/enable_guest_checkout_login 0" stepKey="disableGuestCheckoutLogin"/>
16+
</actionGroup>
17+
</actionGroups>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2025 Adobe
5+
* All Rights Reserved.
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="AdminEnableLoginOnCheckoutActionGroup">
12+
<annotations>
13+
<description>Enable customer login on checkout page.</description>
14+
</annotations>
15+
<magentoCLI command="config:set checkout/options/enable_guest_checkout_login 1" stepKey="enableGuestCheckoutLogin"/>
16+
</actionGroup>
17+
</actionGroups>
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2025 Adobe
5+
* All Rights Reserved.
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="StorefrontPersistentCartCheckoutAfterSessionExpireLoginAndOrderTest">
12+
<annotations>
13+
<features value="Persistent"/>
14+
<stories value="Persistent cart checkout after session expiration and login during checkout"/>
15+
<title value="Cannot checkout after session expires with persistent shopping cart"/>
16+
<description value="This test case verifies that a user cannot checkout after the session expires when using a persistent shopping cart."/>
17+
<severity value="MAJOR"/>
18+
<group value="persistent"/>
19+
</annotations>
20+
<before>
21+
<!-- Step 2: Enable Persistence shopping cart and set enable persistence to yes -->
22+
<createData entity="PersistentConfigSettings" stepKey="enablePersistentConfigSettings"/>
23+
<!-- Allow login during checkout-->
24+
<actionGroup ref="AdminEnableLoginOnCheckoutActionGroup" stepKey="enableLoginInGuestCheckout"/>
25+
<!-- Step4: Create two simple products -->
26+
<createData entity="_defaultProduct" stepKey="createSimpleProductOne"></createData>
27+
<createData entity="_defaultProduct" stepKey="createSimpleProductTwo"></createData>
28+
</before>
29+
<after>
30+
<!-- Revert persistence to use system values -->
31+
<createData entity="PersistentConfigUseSystemValue" stepKey="restorePersistentDefaults"/>
32+
<!-- Disable login on checkout page -->
33+
<actionGroup ref="AdminDisableLoginOnCheckoutActionGroup" stepKey="disableLoginInGuestCheckout"/>
34+
<!-- Delete products-->
35+
<deleteData createDataKey="createSimpleProductOne" stepKey="deleteSimpleProductOne"/>
36+
<deleteData createDataKey="createSimpleProductTwo" stepKey="deleteSimpleProductTwo"/>
37+
<!-- Delete created customer from Admin -->
38+
<actionGroup ref="AdminLoginActionGroup" stepKey="adminLoginForCleanup"/>
39+
<actionGroup ref="AdminDeleteCustomerActionGroup" stepKey="deleteRegisteredCustomer">
40+
<argument name="customerEmail" value="Simple_US_Customer_NY.email"/>
41+
</actionGroup>
42+
<actionGroup ref="AdminLogoutActionGroup" stepKey="adminLogoutForCleanup"/>
43+
</after>
44+
<!-- Step-5: Go to storefront and register new customer -->
45+
<actionGroup ref="StorefrontOpenCustomerAccountCreatePageActionGroup" stepKey="openCreateAccountPage"/>
46+
<actionGroup ref="StorefrontFillCustomerAccountCreationFormActionGroup" stepKey="fillCreateAccountForm">
47+
<argument name="customer" value="Simple_US_Customer_NY"/>
48+
</actionGroup>
49+
<actionGroup ref="StorefrontClickCreateAnAccountCustomerAccountCreationFormActionGroup" stepKey="submitCreateAccountForm"/>
50+
<actionGroup ref="AssertMessageCustomerCreateAccountActionGroup" stepKey="assertCustomerCreatedMessage">
51+
<argument name="messageType" value="success"/>
52+
<argument name="message" value="Thank you for registering with Main Website Store."/>
53+
</actionGroup>
54+
<!-- Add default address to new customer (so shipping can proceed without extra UI edits) -->
55+
<actionGroup ref="EnterCustomerAddressInfoActionGroup" stepKey="addDefaultCustomerAddress">
56+
<argument name="Address" value="US_Address_NY"/>
57+
</actionGroup>
58+
<!-- Step-6: Add first product to cart -->
59+
<actionGroup ref="AddSimpleProductToCartActionGroup" stepKey="addFirstProductToCart">
60+
<argument name="product" value="$$createSimpleProductOne$$"/>
61+
</actionGroup>
62+
<!-- Step-7: Go to checkout and finish flow -->
63+
<actionGroup ref="GoToCheckoutFromMinicartActionGroup" stepKey="goToCheckoutAfterFirstProduct"/>
64+
<actionGroup ref="StorefrontSelectFirstShippingMethodActionGroup" stepKey="selectFirstShippingMethodForFirstOrder"/>
65+
<actionGroup ref="StorefrontCheckoutClickNextButtonActionGroup" stepKey="proceedToPaymentForFirstOrder"/>
66+
<actionGroup ref="CheckoutSelectCheckMoneyOrderPaymentActionGroup" stepKey="selectCheckMoneyOrderPaymentForFirstOrder"/>
67+
<actionGroup ref="ClickPlaceOrderActionGroup" stepKey="placeFirstOrder"/>
68+
<waitForElementVisible selector="{{CheckoutSuccessMainSection.orderNumber22}}" stepKey="waitForOderNumber"/>
69+
<grabTextFrom selector="{{CheckoutSuccessMainSection.orderNumber22}}" stepKey="grabOrderNumber"/>
70+
<waitForText selector="{{CheckoutSuccessMainSection.orderNumberText}}" userInput="Your order number is: $grabOrderNumber." stepKey="assertFirstOrderSuccessMessage"/>
71+
<!-- Step-8: Expire user session by removing PHPSESSID cookie -->
72+
<resetCookie userInput="PHPSESSID" stepKey="expireSessionByResetCookie"/>
73+
<!-- Step-9: Add second product to the cart as guest -->
74+
<actionGroup ref="AddSimpleProductToCartActionGroup" stepKey="addSecondProductToCartAsGuest">
75+
<argument name="product" value="$$createSimpleProductTwo$$"/>
76+
</actionGroup>
77+
<!-- Step-10: Go to checkout -->
78+
<actionGroup ref="GoToCheckoutFromMinicartActionGroup" stepKey="goToCheckoutAfterSecondProduct"/>
79+
<!-- Step-11: Login as current user on checkout page -->
80+
<actionGroup ref="LoginAsCustomerOnCheckoutPageActionGroup" stepKey="loginAsCustomerOnCheckout">
81+
<argument name="customer" value="Simple_US_Customer_NY"/>
82+
</actionGroup>
83+
<!-- Step-12: Place order -->
84+
<actionGroup ref="StorefrontCheckoutClickNextButtonActionGroup" stepKey="proceedToPaymentForSecondOrder"/>
85+
<actionGroup ref="CheckoutSelectCheckMoneyOrderPaymentActionGroup" stepKey="selectCheckMoneyOrderPaymentForSecondOrder"/>
86+
<actionGroup ref="ClickPlaceOrderActionGroup" stepKey="placeSecondOrder"/>
87+
<waitForElementVisible selector="{{CheckoutSuccessMainSection.orderNumber22}}" stepKey="waitForOrderNum"/>
88+
<grabTextFrom selector="{{CheckoutSuccessMainSection.orderNumber22}}" stepKey="grabOrderNum"/>
89+
<waitForText selector="{{CheckoutSuccessMainSection.orderNumberText}}" userInput="Your order number is: $grabOrderNum." stepKey="assertSecondOrderSuccessMessage"/>
90+
</test>
91+
</tests>

0 commit comments

Comments
 (0)