Skip to content

Commit 25b3649

Browse files
committed
1164: OnePageCheckoutOfflinePaymentMethodsTest rework to support MSI reservation mechanism.
1 parent 55256fa commit 25b3649

File tree

6 files changed

+52
-22
lines changed

6 files changed

+52
-22
lines changed

dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertMinicartEmpty.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class AssertMinicartEmpty extends AbstractConstraint
2727
public function processAssert(
2828
CmsIndex $cmsIndex
2929
) {
30+
$cmsIndex->open();
3031
\PHPUnit\Framework\Assert::assertEquals(
3132
self::TEXT_EMPTY_MINICART,
3233
$cmsIndex->getCartSidebarBlock()->getEmptyMessage(),

dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/OnePageCheckoutOfflinePaymentMethodsTest.xml

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<data name="shipping/shipping_method" xsi:type="string">Fixed</data>
2020
<data name="payment/method" xsi:type="string">checkmo</data>
2121
<data name="configData" xsi:type="string">checkmo, disable_guest_checkout, disable_customer_redirect_after_logging</data>
22-
<constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" />
22+
<constraint name="Magento\Shipping\Test\Constraint\AssertShipmentSuccessCreateMessage" />
2323
</variation>
2424
<variation name="OnePageCheckoutUsingRegisterLink" summary="Customer is redirected to checkout on login if guest is disabled, flow with registration new Customer" ticketId="MAGETWO-49917">
2525
<data name="issue" xsi:type="string">MAGETWO-59816: Redirect works improperly in a browser incognito mode</data>
@@ -35,7 +35,7 @@
3535
<data name="shippingAddress/dataset" xsi:type="string">US_address_1_without_email</data>
3636
<data name="payment/method" xsi:type="string">checkmo</data>
3737
<data name="configData" xsi:type="string">checkmo, disable_guest_checkout, disable_customer_redirect_after_logging, enable_https_frontend_only</data>
38-
<constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" />
38+
<constraint name="Magento\Shipping\Test\Constraint\AssertShipmentSuccessCreateMessage" />
3939
</variation>
4040
<variation name="OnePageCheckoutTestVariation1" summary="Checkout as UK guest with virtual product and downloadable product using coupon for not logged in customers">
4141
<data name="tag" xsi:type="string">severity:S0</data>
@@ -51,7 +51,6 @@
5151
<data name="status" xsi:type="string">Pending</data>
5252
<data name="orderButtonsAvailable" xsi:type="string">Back, Send Email, Cancel, Hold, Invoice, Edit</data>
5353
<data name="configData" xsi:type="string">checkmo_specificcountry_gb</data>
54-
<constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" />
5554
<constraint name="Magento\Checkout\Test\Constraint\AssertMinicartEmpty" />
5655
<constraint name="Magento\Sales\Test\Constraint\AssertOrderStatusIsCorrect" />
5756
<constraint name="Magento\Sales\Test\Constraint\AssertOrderButtonsAvailable" />
@@ -70,10 +69,10 @@
7069
<item name="grandTotal" xsi:type="string">285.00</item>
7170
</data>
7271
<data name="payment/method" xsi:type="string">banktransfer</data>
73-
<data name="status" xsi:type="string">Pending</data>
74-
<data name="orderButtonsAvailable" xsi:type="string">Back, Send Email, Cancel, Hold, Ship, Invoice, Edit</data>
72+
<data name="status" xsi:type="string">Processing</data>
73+
<data name="orderButtonsAvailable" xsi:type="string">Back, Send Email, Cancel, Hold, Invoice, Edit</data>
7574
<data name="configData" xsi:type="string">banktransfer</data>
76-
<constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" />
75+
<constraint name="Magento\Shipping\Test\Constraint\AssertShipmentSuccessCreateMessage" />
7776
<constraint name="Magento\Checkout\Test\Constraint\AssertMinicartEmpty" />
7877
<constraint name="Magento\Sales\Test\Constraint\AssertOrderStatusIsCorrect" />
7978
<constraint name="Magento\Sales\Test\Constraint\AssertOrderButtonsAvailable" />
@@ -93,10 +92,10 @@
9392
<item name="grandTotal" xsi:type="string">375.00</item>
9493
</data>
9594
<data name="payment/method" xsi:type="string">banktransfer</data>
96-
<data name="status" xsi:type="string">Pending</data>
97-
<data name="orderButtonsAvailable" xsi:type="string">Back, Send Email, Cancel, Hold, Ship, Invoice, Edit</data>
95+
<data name="status" xsi:type="string">Precessing</data>
96+
<data name="orderButtonsAvailable" xsi:type="string">Back, Send Email, Cancel, Hold, Invoice, Edit</data>
9897
<data name="configData" xsi:type="string">banktransfer_specificcountry_gb, can_subtract_and_can_back_in_stock</data>
99-
<constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" />
98+
<constraint name="Magento\Shipping\Test\Constraint\AssertShipmentSuccessCreateMessage" />
10099
<constraint name="Magento\Checkout\Test\Constraint\AssertMinicartEmpty" />
101100
<constraint name="Magento\Catalog\Test\Constraint\AssertProductsOutOfStock" />
102101
<constraint name="Magento\Catalog\Test\Constraint\AssertProductsQtyAndStockStatusInAdminPanel" />
@@ -123,7 +122,7 @@
123122
<data name="billingCheckboxState" xsi:type="string">Yes</data>
124123
<data name="payment/method" xsi:type="string">checkmo</data>
125124
<data name="configData" xsi:type="string">checkmo</data>
126-
<constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" />
125+
<constraint name="Magento\Shipping\Test\Constraint\AssertShipmentSuccessCreateMessage" />
127126
<constraint name="Magento\Checkout\Test\Constraint\AssertMinicartEmpty" />
128127
<constraint name="Magento\Sales\Test\Constraint\AssertOrderGrandTotal"/>
129128
</variation>
@@ -149,7 +148,7 @@
149148
<data name="refresh" xsi:type="boolean">true</data>
150149
<data name="payment/method" xsi:type="string">checkmo</data>
151150
<data name="configData" xsi:type="string">checkmo, freeshipping_minimum_order_amount_100</data>
152-
<constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" />
151+
<constraint name="Magento\Shipping\Test\Constraint\AssertShipmentSuccessCreateMessage" />
153152
<constraint name="Magento\Checkout\Test\Constraint\AssertMinicartEmpty" />
154153
<constraint name="Magento\Sales\Test\Constraint\AssertOrderGrandTotal" />
155154
<constraint name="Magento\Sales\Test\Constraint\AssertOrderAddresses" />
@@ -168,7 +167,6 @@
168167
<data name="status" xsi:type="string">Pending</data>
169168
<data name="orderButtonsAvailable" xsi:type="string">Back, Cancel, Send Email, Hold, Invoice, Edit</data>
170169
<data name="configData" xsi:type="string">zero_subtotal_checkout</data>
171-
<constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" />
172170
<constraint name="Magento\Checkout\Test\Constraint\AssertMinicartEmpty" />
173171
<constraint name="Magento\Sales\Test\Constraint\AssertOrderStatusIsCorrect" />
174172
<constraint name="Magento\Sales\Test\Constraint\AssertOrderButtonsAvailable" />
@@ -185,9 +183,9 @@
185183
<item name="grandTotal" xsi:type="string">375</item>
186184
</data>
187185
<data name="payment/method" xsi:type="string">checkmo</data>
188-
<data name="status" xsi:type="string">Pending</data>
186+
<data name="status" xsi:type="string">Processing</data>
189187
<data name="orderButtonsAvailable" xsi:type="string">Back, Send Email, Cancel, Hold, Invoice, Edit</data>
190-
<constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" />
188+
<constraint name="Magento\Shipping\Test\Constraint\AssertShipmentSuccessCreateMessage" />
191189
<constraint name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty" />
192190
<constraint name="Magento\Sales\Test\Constraint\AssertOrderStatusIsCorrect" />
193191
<constraint name="Magento\Sales\Test\Constraint\AssertOrderButtonsAvailable" />
@@ -208,7 +206,7 @@
208206
<item name="grandTotal" xsi:type="string">565.00</item>
209207
</data>
210208
<data name="payment/method" xsi:type="string">checkmo</data>
211-
<constraint name="Magento\Customer\Test\Constraint\AssertCustomerRedirectToDashboard" />
209+
<constraint name="Magento\Shipping\Test\Constraint\AssertShipmentSuccessCreateMessage" />
212210
<constraint name="Magento\Sales\Test\Constraint\AssertOrderGrandTotal" />
213211
</variation>
214212
<variation name="OnePageCheckoutTestVariation9" summary="One Page Checkout Products with different shipping/billing address and Tier Prices" ticketId="MAGETWO-42604">
@@ -225,7 +223,7 @@
225223
</data>
226224
<data name="payment/method" xsi:type="string">banktransfer</data>
227225
<data name="configData" xsi:type="string">banktransfer_specificcountry_gb</data>
228-
<constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" />
226+
<constraint name="Magento\Shipping\Test\Constraint\AssertShipmentSuccessCreateMessage" />
229227
<constraint name="Magento\Checkout\Test\Constraint\AssertMinicartEmpty" />
230228
<constraint name="Magento\Customer\Test\Constraint\AssertCustomerDefaultAddressFrontendAddressBook" />
231229
<constraint name="Magento\Sales\Test\Constraint\AssertOrderGrandTotal" />

dev/tests/functional/tests/app/Magento/Checkout/Test/TestStep/PlaceOrderStep.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
namespace Magento\Checkout\Test\TestStep;
88

99
use Magento\Checkout\Test\Constraint\AssertGrandTotalOrderReview;
10+
use Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage;
1011
use Magento\Checkout\Test\Page\CheckoutOnepage;
1112
use Magento\Checkout\Test\Page\CheckoutOnepageSuccess;
1213
use Magento\Mtf\Fixture\FixtureFactory;
@@ -32,6 +33,13 @@ class PlaceOrderStep implements TestStepInterface
3233
*/
3334
private $assertGrandTotalOrderReview;
3435

36+
/**
37+
* Assert that order success message is correct.
38+
*
39+
* @var AssertOrderSuccessPlacedMessage
40+
*/
41+
private $assertOrderSuccessPlacedMessage;
42+
3543
/**
3644
* One page checkout success page.
3745
*
@@ -70,6 +78,7 @@ class PlaceOrderStep implements TestStepInterface
7078
/**
7179
* @param CheckoutOnepage $checkoutOnepage
7280
* @param AssertGrandTotalOrderReview $assertGrandTotalOrderReview
81+
* @param AssertOrderSuccessPlacedMessage $assertOrderSuccessPlacedMessage
7382
* @param CheckoutOnepageSuccess $checkoutOnepageSuccess
7483
* @param FixtureFactory $fixtureFactory
7584
* @param array $products
@@ -79,6 +88,7 @@ class PlaceOrderStep implements TestStepInterface
7988
public function __construct(
8089
CheckoutOnepage $checkoutOnepage,
8190
AssertGrandTotalOrderReview $assertGrandTotalOrderReview,
91+
AssertOrderSuccessPlacedMessage $assertOrderSuccessPlacedMessage,
8292
CheckoutOnepageSuccess $checkoutOnepageSuccess,
8393
FixtureFactory $fixtureFactory,
8494
array $products = [],
@@ -87,6 +97,7 @@ public function __construct(
8797
) {
8898
$this->checkoutOnepage = $checkoutOnepage;
8999
$this->assertGrandTotalOrderReview = $assertGrandTotalOrderReview;
100+
$this->assertOrderSuccessPlacedMessage = $assertOrderSuccessPlacedMessage;
90101
$this->checkoutOnepageSuccess = $checkoutOnepageSuccess;
91102
$this->fixtureFactory = $fixtureFactory;
92103
$this->products = $products;
@@ -105,6 +116,7 @@ public function run()
105116
$this->assertGrandTotalOrderReview->processAssert($this->checkoutOnepage, $this->prices['grandTotal']);
106117
}
107118
$this->checkoutOnepage->getPaymentBlock()->getSelectedPaymentMethodBlock()->clickPlaceOrder();
119+
$this->assertOrderSuccessPlacedMessage->processAssert($this->checkoutOnepageSuccess);
108120
$orderId = $this->checkoutOnepageSuccess->getSuccessBlock()->getGuestOrderId();
109121
$data = [
110122
'id' => $orderId,

dev/tests/functional/tests/app/Magento/Checkout/Test/etc/testcase.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@
3838
<step name="fillBillingInformation" module="Magento_Checkout" next="refreshPage" />
3939
<step name="refreshPage" module="Magento_Checkout" next="placeOrder" />
4040
<step name="placeOrder" module="Magento_Checkout" next="createCustomerAccount" />
41-
<step name="createCustomerAccount" module="Magento_Checkout" />
41+
<step name="createCustomerAccount" module="Magento_Checkout" next="createShipment" />
42+
<step name="createShipment" module="Magento_Sales"/>
4243
</scenario>
4344
<scenario name="OnePageCheckoutJsValidationTest" firstStep="setupConfiguration">
4445
<step name="setupConfiguration" module="Magento_Config" next="createProducts" />

dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Actions.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,16 @@ class Actions extends Block
137137
*/
138138
protected $confirmModal = '.confirm._show[data-role=modal]';
139139

140+
/**
141+
* Is shipment can be created.
142+
*
143+
* @return bool
144+
*/
145+
public function canShip()
146+
{
147+
return $this->_rootElement->find($this->ship)->isVisible();
148+
}
149+
140150
/**
141151
* Ship order.
142152
*

dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateShipmentStep.php

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,21 @@ public function run()
9999
{
100100
$this->orderIndex->open();
101101
$this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]);
102-
$this->salesOrderView->getPageActions()->ship();
103-
if (!empty($this->data)) {
104-
$this->orderShipmentNew->getFormBlock()->fillData($this->data, $this->order->getEntityId()['products']);
102+
$shipmentIds = [];
103+
/**
104+
* As this step is used in general scenarios and not all test cases has shippable items(ex: virtual product)
105+
* we need to check, if it possible to create shipment for given order.
106+
*/
107+
if ($this->salesOrderView->getPageActions()->canShip()) {
108+
$this->salesOrderView->getPageActions()->ship();
109+
if (!empty($this->data)) {
110+
$this->orderShipmentNew->getFormBlock()->fillData($this->data, $this->order->getEntityId()['products']);
111+
}
112+
$this->orderShipmentNew->getFormBlock()->submit();
113+
$shipmentIds = $this->getShipmentIds();
105114
}
106-
$this->orderShipmentNew->getFormBlock()->submit();
107115

108-
return ['shipmentIds' => $this->getShipmentIds()];
116+
return ['shipmentIds' => $shipmentIds];
109117
}
110118

111119
/**

0 commit comments

Comments
 (0)