Skip to content

Commit 36acb62

Browse files
committed
MAGETWO-32367: Move Core\Helper\PostData.php to framework
Remove getEncodedUrl Move and update old unit test for PostData
1 parent 31f1281 commit 36acb62

File tree

5 files changed

+66
-79
lines changed

5 files changed

+66
-79
lines changed

app/code/Magento/Catalog/Block/Product/ListProduct.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ class ListProduct extends AbstractProduct implements IdentityInterface
4545
*/
4646
protected $_postDataHelper;
4747

48+
/**
49+
* @var \Magento\Framework\Url\Helper
50+
*/
51+
protected $urlHelper;
52+
4853
/**
4954
* @var CategoryRepositoryInterface
5055
*/
@@ -62,11 +67,13 @@ public function __construct(
6267
\Magento\Framework\Data\Helper\PostHelper $postDataHelper,
6368
\Magento\Catalog\Model\Layer\Resolver $layerResolver,
6469
CategoryRepositoryInterface $categoryRepository,
70+
\Magento\Framework\Url\Helper $urlHelper,
6571
array $data = []
6672
) {
6773
$this->_catalogLayer = $layerResolver->get();
6874
$this->_postDataHelper = $postDataHelper;
6975
$this->categoryRepository = $categoryRepository;
76+
$this->urlHelper = $urlHelper;
7077
parent::__construct(
7178
$context,
7279
$data
@@ -334,7 +341,7 @@ public function getAddToCartPostParams(\Magento\Catalog\Model\Product $product)
334341
'data' => [
335342
'product' => $product->getEntityId(),
336343
\Magento\Framework\App\Action\Action::PARAM_NAME_URL_ENCODED =>
337-
$this->_postDataHelper->getEncodedUrl($url),
344+
$this->urlHelper->getEncodedUrl($url),
338345
]
339346
];
340347
}

app/code/Magento/Msrp/view/base/templates/product/price/msrp.phtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ if ($product->isSaleable()) {
3838
$product,
3939
['_query' => [
4040
\Magento\Framework\App\Action\Action::PARAM_NAME_URL_ENCODED =>
41-
$this->helper('Magento\Framework\Data\Helper\PostHelper')->getEncodedUrl(
41+
$this->helper('Magento\Framework\Url\Helper')->getEncodedUrl(
4242
$addToCartUrlGenerator->getAddToCartUrl($product)
4343
),
4444
]]

dev/tests/unit/testsuite/Magento/Core/Helper/PostDataTest.php

Lines changed: 0 additions & 62 deletions
This file was deleted.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Framework\Data\Helper;
7+
8+
use Magento\Framework\App\Action\Action;
9+
10+
class PostHelperTest extends \PHPUnit_Framework_TestCase
11+
{
12+
public function testGetPostData()
13+
{
14+
$url = '/controller/sample/action/url/';
15+
$product = ['product' => new \Magento\Framework\Object(['id' => 1])];
16+
$expected = json_encode([
17+
'action' => $url,
18+
'data' => [
19+
'product' => new \Magento\Framework\Object(['id' => 1]),
20+
Action::PARAM_NAME_URL_ENCODED => strtr(base64_encode($url . 'for_uenc'), '+/=', '-_,'),
21+
],
22+
]);
23+
24+
$contextMock = $this->getMock(
25+
'Magento\Framework\App\Helper\Context',
26+
['getUrlBuilder', 'getUrlEncoder'],
27+
[],
28+
'',
29+
false
30+
);
31+
$urlHelper = $this->getMockBuilder('Magento\Framework\Url\Helper')
32+
->disableOriginalConstructor()->getMock();
33+
$urlHelper->expects($this->once())
34+
->method('getEncodedUrl')
35+
->willReturn('L2NvbnRyb2xsZXIvc2FtcGxlL2FjdGlvbi91cmwvZm9yX3VlbmM,');
36+
37+
$model = new \Magento\Framework\Data\Helper\PostHelper($contextMock, $urlHelper);
38+
39+
$actual = $model->getPostData($url, $product);
40+
$this->assertEquals($expected, $actual);
41+
}
42+
}

lib/internal/Magento/Framework/Data/Helper/PostHelper.php

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,22 @@
99
*/
1010
namespace Magento\Framework\Data\Helper;
1111

12+
use Magento\Framework\App\Helper\Context;
13+
1214
class PostHelper extends \Magento\Framework\App\Helper\AbstractHelper
1315
{
16+
/**
17+
* @var \Magento\Framework\Url\Helper
18+
*/
19+
private $urlHelper;
20+
21+
public function __construct(
22+
Context $context,
23+
\Magento\Framework\Url\Helper $urlHelper
24+
) {
25+
$this->urlHelper = $urlHelper;
26+
}
27+
1428
/**
1529
* get data for post by javascript in format acceptable to $.mage.dataPost widget
1630
*
@@ -21,22 +35,8 @@ class PostHelper extends \Magento\Framework\App\Helper\AbstractHelper
2135
public function getPostData($url, array $data = [])
2236
{
2337
if (!isset($data[\Magento\Framework\App\Action\Action::PARAM_NAME_URL_ENCODED])) {
24-
$data[\Magento\Framework\App\Action\Action::PARAM_NAME_URL_ENCODED] = $this->getEncodedUrl();
38+
$data[\Magento\Framework\App\Action\Action::PARAM_NAME_URL_ENCODED] = $this->urlHelper->getEncodedUrl();
2539
}
2640
return json_encode(['action' => $url, 'data' => $data]);
2741
}
28-
29-
/**
30-
* Get current encoded url
31-
*
32-
* @param string|null $url
33-
* @return string
34-
*/
35-
public function getEncodedUrl($url = null)
36-
{
37-
if (!$url) {
38-
$url = $this->_urlBuilder->getCurrentUrl();
39-
}
40-
return $this->urlEncoder->encode($url);
41-
}
4242
}

0 commit comments

Comments
 (0)