Skip to content

Commit b6ae51d

Browse files
committed
Merge branch 'MAGETWO-66065' of github.com:magento-troll/magento2ce into MAGETWO-65622
2 parents 698e8c0 + 9cc276f commit b6ae51d

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

app/code/Magento/CatalogWidget/Block/Product/ProductsList.php

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
use Magento\Framework\DataObject\IdentityInterface;
1010
use Magento\Widget\Block\BlockInterface;
1111
use Magento\Framework\Pricing\PriceCurrencyInterface;
12+
use Magento\Framework\App\ObjectManager;
13+
use Magento\Framework\Serialize\Serializer\Json;
1214

1315
/**
1416
* Catalog Products List widget block
@@ -85,6 +87,13 @@ class ProductsList extends \Magento\Catalog\Block\Product\AbstractProduct implem
8587
*/
8688
private $priceCurrency;
8789

90+
/**
91+
* Json Serializer Instance
92+
*
93+
* @var Json
94+
*/
95+
private $json;
96+
8897
/**
8998
* @param \Magento\Catalog\Block\Product\Context $context
9099
* @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory
@@ -94,6 +103,7 @@ class ProductsList extends \Magento\Catalog\Block\Product\AbstractProduct implem
94103
* @param \Magento\CatalogWidget\Model\Rule $rule
95104
* @param \Magento\Widget\Helper\Conditions $conditionsHelper
96105
* @param array $data
106+
* @param Json|null $json
97107
*/
98108
public function __construct(
99109
\Magento\Catalog\Block\Product\Context $context,
@@ -103,14 +113,16 @@ public function __construct(
103113
\Magento\Rule\Model\Condition\Sql\Builder $sqlBuilder,
104114
\Magento\CatalogWidget\Model\Rule $rule,
105115
\Magento\Widget\Helper\Conditions $conditionsHelper,
106-
array $data = []
116+
array $data = [],
117+
Json $json = null
107118
) {
108119
$this->productCollectionFactory = $productCollectionFactory;
109120
$this->catalogProductVisibility = $catalogProductVisibility;
110121
$this->httpContext = $httpContext;
111122
$this->sqlBuilder = $sqlBuilder;
112123
$this->rule = $rule;
113124
$this->conditionsHelper = $conditionsHelper;
125+
$this->json = $json ?: ObjectManager::getInstance()->get(Json::class);
114126
parent::__construct(
115127
$context,
116128
$data
@@ -155,7 +167,7 @@ public function getCacheKeyInfo()
155167
intval($this->getRequest()->getParam($this->getData('page_var_name'), 1)),
156168
$this->getProductsPerPage(),
157169
$conditions,
158-
serialize($this->getRequest()->getParams())
170+
$this->json->serialize($this->getRequest()->getParams())
159171
];
160172
}
161173

app/code/Magento/CatalogWidget/Test/Unit/Block/Product/ProductsListTest.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@ protected function setUp()
116116
'rule' => $this->rule,
117117
'conditionsHelper' => $this->widgetConditionsHelper,
118118
'storeManager' => $this->storeManager,
119-
'design' => $this->design
119+
'design' => $this->design,
120+
'json' => $this->serializer
120121
]
121122
);
122123
$this->request = $arguments['context']->getRequest();
@@ -150,6 +151,12 @@ public function testGetCacheKeyInfo()
150151
$this->request->expects($this->once())->method('getParams')->willReturn('request_params');
151152
$this->priceCurrency->expects($this->once())->method('getCurrencySymbol')->willReturn('$');
152153

154+
$this->serializer->expects($this->any())
155+
->method('serialize')
156+
->willReturnCallback(function ($value) {
157+
return json_encode($value);
158+
});
159+
153160
$cacheKey = [
154161
'CATALOG_PRODUCTS_LIST_WIDGET',
155162
'$',
@@ -159,7 +166,7 @@ public function testGetCacheKeyInfo()
159166
1,
160167
5,
161168
'some_serialized_conditions',
162-
serialize('request_params')
169+
json_encode('request_params')
163170
];
164171
$this->assertEquals($cacheKey, $this->productsList->getCacheKeyInfo());
165172
}

0 commit comments

Comments
 (0)