Skip to content
This repository was archived by the owner on Apr 29, 2019. It is now read-only.

Commit de27216

Browse files
author
Alexander Akimov
authored
Merge pull request #2887 from magento-tsg/2.3-develop-pr29
[TSG] Upporting for 2.3 (pr29) (2.3.0)
2 parents f01227c + 30b88e8 commit de27216

File tree

7 files changed

+113
-29
lines changed

7 files changed

+113
-29
lines changed

app/code/Magento/Catalog/etc/widget.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@
296296
</parameters>
297297
<containers>
298298
<container name="sidebar.main">
299-
<template name="default" value="list" />
299+
<template name="default" value="sidebar" />
300300
</container>
301301
<container name="content">
302302
<template name="grid" value="grid" />

app/code/Magento/Catalog/view/frontend/templates/product/widget/compared/sidebar.phtml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,8 @@
1717
'listing' => [
1818
'displayMode' => 'grid'
1919
],
20-
'column' => [
21-
'image' => [
22-
'imageCode' => 'recently_compared_products_images_names_widget'
23-
]
20+
'image' => [
21+
'imageCode' => 'recently_compared_products_images_names_widget'
2422
]
2523
]
2624
);
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Checkout\Plugin\Model\Quote;
9+
10+
use Magento\Quote\Model\Quote;
11+
12+
/**
13+
* Clear quote addresses after all items were removed.
14+
*/
15+
class ResetQuoteAddresses
16+
{
17+
/**
18+
* @param Quote $quote
19+
* @param Quote $result
20+
* @param mixed $itemId
21+
*
22+
* @return Quote
23+
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
24+
*/
25+
public function afterRemoveItem(Quote $quote, Quote $result, $itemId): Quote
26+
{
27+
if (empty($result->getAllVisibleItems())) {
28+
foreach ($result->getAllAddresses() as $address) {
29+
$result->removeAddress($address->getId());
30+
}
31+
}
32+
33+
return $result;
34+
}
35+
}

app/code/Magento/Checkout/etc/di.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,7 @@
4949
</argument>
5050
</arguments>
5151
</type>
52+
<type name="Magento\Quote\Model\Quote">
53+
<plugin name="clear_addresses_after_product_delete" type="Magento\Checkout\Plugin\Model\Quote\ResetQuoteAddresses"/>
54+
</type>
5255
</config>

dev/tests/functional/tests/app/Magento/Braintree/Test/TestCase/CreateOrderBackendTest.xml

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -64,28 +64,5 @@
6464
<constraint name="Magento\Sales\Test\Constraint\AssertCaptureInCommentsHistory" />
6565
<constraint name="Magento\Sales\Test\Constraint\AssertOrderInOrdersGridOnFrontend" />
6666
</variation>
67-
<variation name="CreateOrderBackendTestBraintreeVariation3" summary="Checkout with Braintree Credit Card from Admin (Basic Fraud Protection)" ticketId="MAGETWO-46470">
68-
<data name="tag" xsi:type="string">test_type:3rd_party_test, severity:S0</data>
69-
<data name="products/0" xsi:type="string">catalogProductSimple::product_10_dollar</data>
70-
<data name="products/1" xsi:type="string">configurableProduct::with_one_option</data>
71-
<data name="products/2" xsi:type="string">bundleProduct::bundle_fixed_100_dollar_product</data>
72-
<data name="customer/dataset" xsi:type="string">default</data>
73-
<data name="taxRule" xsi:type="string">us_ca_ny_rule</data>
74-
<data name="billingAddress/dataset" xsi:type="string">US_address_1_without_email</data>
75-
<data name="saveAddress" xsi:type="string">No</data>
76-
<data name="shipping/shipping_service" xsi:type="string">Flat Rate</data>
77-
<data name="shipping/shipping_method" xsi:type="string">Fixed</data>
78-
<data name="prices" xsi:type="array">
79-
<item name="grandTotal" xsi:type="string">145.98</item>
80-
</data>
81-
<data name="payment/method" xsi:type="string">braintree</data>
82-
<data name="paymentForm" xsi:type="string">braintree</data>
83-
<data name="creditCard/dataset" xsi:type="string">visa_braintree_fraud_rejected</data>
84-
<data name="configData" xsi:type="string">braintree</data>
85-
<data name="status" xsi:type="string">Processing</data>
86-
<constraint name="Magento\Shipping\Test\Constraint\AssertShipmentSuccessCreateMessage" />
87-
<constraint name="Magento\Sales\Test\Constraint\AssertOrderStatusIsCorrect" />
88-
<constraint name="Magento\Sales\Test\Constraint\AssertOrderInOrdersGridOnFrontend" />
89-
</variation>
9067
</testCase>
9168
</config>
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Checkout\Plugin\Model\Quote;
9+
10+
use Magento\Checkout\Model\Cart;
11+
use Magento\Checkout\Model\Session;
12+
use Magento\Quote\Model\BillingAddressManagement;
13+
use Magento\Quote\Model\Quote;
14+
use Magento\Quote\Model\Quote\Address as QuoteAddress;
15+
use Magento\TestFramework\Helper\Bootstrap;
16+
17+
/**
18+
* Test for \Magento\Checkout\Plugin\Model\Quote\ResetQuoteAddresses
19+
*/
20+
class ResetQuoteAddressesTest extends \PHPUnit\Framework\TestCase
21+
{
22+
/**
23+
* @magentoDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php
24+
*
25+
* @return void
26+
*/
27+
public function testAfterRemoveItem(): void
28+
{
29+
/** @var Quote $quote */
30+
$quote = Bootstrap::getObjectManager()->create(Quote::class);
31+
$quote->load('test_order_with_virtual_product', 'reserved_order_id');
32+
/** @var QuoteAddress $quoteShippingAddress */
33+
$quoteBillingAddress = Bootstrap::getObjectManager()->create(QuoteAddress::class);
34+
$quoteBillingAddress->setRegion('CA')
35+
->setPostcode('90210')
36+
->setFirstname('a_unique_firstname')
37+
->setLastname('lastname')
38+
->setStreet('street')
39+
->setCity('Beverly Hills')
40+
->setEmail('[email protected]')
41+
->setTelephone('1111111111')
42+
->setCountryId('US')
43+
->setAddressType('billing');
44+
45+
/** @var BillingAddressManagement $billingAddressManagement */
46+
$billingAddressManagement = Bootstrap::getObjectManager()->create(BillingAddressManagement::class);
47+
$billingAddressManagement->assign($quote->getId(), $quoteBillingAddress);
48+
/** @var Session $checkoutSession */
49+
$checkoutSession = Bootstrap::getObjectManager()->create(Session::class);
50+
$checkoutSession->setQuoteId($quote->getId());
51+
/** @var Cart $cart */
52+
$cart = Bootstrap::getObjectManager()->create(Cart::class);
53+
54+
$activeQuote = $cart->getQuote();
55+
$cart->removeItem($activeQuote->getAllVisibleItems()[0]->getId());
56+
$cart->save();
57+
58+
/** @var Quote $quote */
59+
$quote = Bootstrap::getObjectManager()->create(Quote::class);
60+
$quote->load('test_order_with_virtual_product', 'reserved_order_id');
61+
$quoteBillingAddressUpdated = $quote->getBillingAddress();
62+
$customer = $quote->getCustomer();
63+
64+
$this->assertEquals($quoteBillingAddressUpdated->getEmail(), $customer->getEmail());
65+
$this->assertEmpty($quoteBillingAddressUpdated->getCountryId());
66+
$this->assertEmpty($quoteBillingAddressUpdated->getRegionId());
67+
$this->assertEmpty($quoteBillingAddressUpdated->getRegion());
68+
$this->assertEmpty($quoteBillingAddressUpdated->getPostcode());
69+
$this->assertEmpty($quoteBillingAddressUpdated->getCity());
70+
}
71+
}

0 commit comments

Comments
 (0)