Skip to content

Commit a37b741

Browse files
committed
ACP2E-39: customer/section/load without initialising the session would loads all data from catalog product frontend action
1 parent 302f6c5 commit a37b741

File tree

2 files changed

+37
-8
lines changed

2 files changed

+37
-8
lines changed

app/code/Magento/Catalog/Model/ResourceModel/ProductFrontendAction/Collection.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ public function addFilterByUserIdentities($customerId, $visitorId)
3636
$this->addFieldToFilter('customer_id', $customerId);
3737
} elseif ($visitorId) {
3838
$this->addFieldToFilter('visitor_id', $visitorId);
39+
} else {
40+
$this->addFieldToFilter('visitor_id', $visitorId)
41+
->addFieldToFilter('customer_id', $customerId);
3942
}
4043

4144
return $this;

app/code/Magento/Catalog/Test/Unit/Model/Product/ProductFrontendAction/SynchronizerTest.php

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,36 @@ protected function setUp(): void
107107
);
108108
}
109109

110+
/**
111+
* Variation for UserIdentities.
112+
*
113+
* @return array
114+
*/
115+
public function getUserIdentitiesCases(): array
116+
{
117+
return [
118+
[
119+
'customerId' => 1,
120+
'visitorId' => null
121+
],
122+
[
123+
'customerId' => null,
124+
'visitorId' => 33
125+
],
126+
[
127+
'customerId' => null,
128+
'visitorId' => null
129+
],
130+
];
131+
}
132+
110133
/**
111134
* @inheritDoc
135+
* @param int $customerId
136+
* @param int $visitorId
137+
* @dataProvider getUserIdentitiesCases
112138
*/
113-
public function testFilterProductActions(): void
139+
public function testFilterProductActions(int $customerId = null, int $visitorId = null): void
114140
{
115141
$typeId = 'recently_compared_product';
116142
$productsData = [
@@ -149,16 +175,16 @@ public function testFilterProductActions(): void
149175
->getMock();
150176
$this->sessionMock->expects($this->any())
151177
->method('getCustomerId')
152-
->willReturn(1);
178+
->willReturn($customerId);
153179
$this->visitorMock->expects($this->exactly(2))
154180
->method('getId')
155-
->willReturn(34);
181+
->willReturn($visitorId);
156182
$this->collectionFactoryMock->expects($this->once())
157183
->method('create')
158184
->willReturn($collection);
159185
$collection->expects($this->once())
160186
->method('addFilterByUserIdentities')
161-
->with(1, 34);
187+
->with($customerId, $visitorId);
162188
$collection
163189
->method('addFieldToFilter')
164190
->withConsecutive(['type_id', $typeId], ['product_id', [1, 2]]);
@@ -175,8 +201,8 @@ public function testFilterProductActions(): void
175201
[
176202
[
177203
'data' => [
178-
'visitor_id' => null,
179-
'customer_id' => 1,
204+
'visitor_id' => $visitorId,
205+
'customer_id' => $customerId,
180206
'added_at' => 12,
181207
'product_id' => 1,
182208
'type_id' => 'recently_compared_product'
@@ -186,8 +212,8 @@ public function testFilterProductActions(): void
186212
[
187213
[
188214
'data' => [
189-
'visitor_id' => null,
190-
'customer_id' => 1,
215+
'visitor_id' => $visitorId,
216+
'customer_id' => $customerId,
191217
'added_at' => 13,
192218
'product_id' => 2,
193219
'type_id' => 'recently_compared_product'

0 commit comments

Comments
 (0)