File tree Expand file tree Collapse file tree 2 files changed +27
-0
lines changed
app/code/Magento/Checkout/Model
dev/tests/integration/testsuite/Magento/Checkout/Model Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -218,6 +218,14 @@ public function getQuote()
218
218
$ quote = $ this ->quoteRepository ->getActive ($ this ->getQuoteId ());
219
219
}
220
220
221
+ $ customerId = $ this ->_customer
222
+ ? $ this ->_customer ->getId ()
223
+ : $ this ->_customerSession ->getCustomerId ();
224
+ if ($ quote ->getData ('customer_id ' ) && $ quote ->getData ('customer_id ' ) !== $ customerId ) {
225
+ $ quote = $ this ->quoteFactory ->create ();
226
+ throw new \Magento \Framework \Exception \NoSuchEntityException ();
227
+ }
228
+
221
229
/**
222
230
* If current currency code of quote is not equal current currency code of store,
223
231
* need recalculate totals of quote. It is possible if customer use currency switcher or
Original file line number Diff line number Diff line change 6
6
namespace Magento \Checkout \Model ;
7
7
8
8
use Magento \TestFramework \Helper \Bootstrap ;
9
+ use Magento \Quote \Model \Quote ;
9
10
10
11
class SessionTest extends \PHPUnit_Framework_TestCase
11
12
{
@@ -65,6 +66,24 @@ public function testGetQuoteNotInitializedCustomerLoggedIn()
65
66
$ this ->_validateCustomerDataInQuote ($ quote );
66
67
}
67
68
69
+ /**
70
+ * @magentoDataFixture Magento/Sales/_files/quote_with_customer.php
71
+ * @magentoAppIsolation enabled
72
+ */
73
+ public function testGetQuoteWithMismatchingSession ()
74
+ {
75
+ /** @var Quote $quote */
76
+ $ quote = Bootstrap::getObjectManager ()->create (Quote::class);
77
+ /** @var \Magento\Quote\Model\ResourceModel\Quote $quoteResource */
78
+ $ quoteResource = Bootstrap::getObjectManager ()->create (\Magento \Quote \Model \ResourceModel \Quote::class);
79
+ $ quoteResource ->load ($ quote , 'test01 ' , 'reserved_order_id ' );
80
+ // Customer on quote is not logged in
81
+ $ this ->_checkoutSession ->setQuoteId ($ quote ->getId ());
82
+ $ sessionQuote = $ this ->_checkoutSession ->getQuote ();
83
+ $ this ->assertEmpty ($ sessionQuote ->getCustomerId ());
84
+ $ this ->assertNotEquals ($ quote ->getId (), $ sessionQuote ->getId ());
85
+ }
86
+
68
87
/**
69
88
* Tes merging of customer data into initialized quote object.
70
89
*
You can’t perform that action at this time.
0 commit comments