Skip to content

Commit 6d0b9de

Browse files
committed
MAGETWO-83094: Products Orderd Report exported CSV is empty
1 parent f2317cf commit 6d0b9de

File tree

2 files changed

+47
-44
lines changed
  • app/code/Magento/Backend/Model
  • dev/tests/integration/testsuite/Magento/Backend/Model

2 files changed

+47
-44
lines changed

app/code/Magento/Backend/Model/Url.php

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,12 @@ public function getUrl($routePath = null, $routeParams = null)
188188
return $routePath;
189189
}
190190

191+
if (!is_array($routeParams)) {
192+
$routeParams = [];
193+
}
194+
191195
$cacheSecretKey = false;
192-
if (is_array($routeParams) && isset($routeParams['_cache_secret_key'])) {
196+
if (isset($routeParams['_cache_secret_key'])) {
193197
unset($routeParams['_cache_secret_key']);
194198
$cacheSecretKey = true;
195199
}
@@ -202,22 +206,12 @@ public function getUrl($routePath = null, $routeParams = null)
202206
$routeName = $this->_getRouteName('*');
203207
$controllerName = $this->_getControllerName(self::DEFAULT_CONTROLLER_NAME);
204208
$actionName = $this->_getActionName(self::DEFAULT_ACTION_NAME);
205-
if ($cacheSecretKey) {
206-
$secret = [self::SECRET_KEY_PARAM_NAME => "\${$routeName}/{$controllerName}/{$actionName}\$"];
207-
} else {
208-
$secret = [
209-
self::SECRET_KEY_PARAM_NAME => $this->getSecretKey($routeName, $controllerName, $actionName),
210-
];
211-
}
212-
if (is_array($routeParams)) {
213-
$routeParams = array_merge($secret, $routeParams);
214-
} else {
215-
$routeParams = $secret;
216-
}
217-
if (is_array($this->_getRouteParams())) {
218-
$routeParams = array_merge($this->_getRouteParams(), $routeParams);
209+
if (!isset($routeParams[self::SECRET_KEY_PARAM_NAME])) {
210+
$secretKey = $cacheSecretKey
211+
? "\${$routeName}/{$controllerName}/{$actionName}\$"
212+
: $this->getSecretKey($routeName, $controllerName, $actionName);
213+
$routeParams[self::SECRET_KEY_PARAM_NAME] = $secretKey;
219214
}
220-
$routeParams['_escape_params'] = false;
221215

222216
return parent::getUrl("{$routeName}/{$controllerName}/{$actionName}", $routeParams);
223217
}

dev/tests/integration/testsuite/Magento/Backend/Model/UrlTest.php

Lines changed: 37 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55
*/
66
namespace Magento\Backend\Model;
77

8+
use Magento\TestFramework\Helper\Bootstrap;
9+
use Magento\Framework\App\RequestInterface;
10+
use Magento\Framework\Url\ParamEncoder;
11+
use Magento\Framework\Session\SessionManagerInterface;
12+
use Magento\Framework\Encryption\EncryptorInterface;
13+
814
/**
915
* Test class for \Magento\Backend\Model\UrlInterface.
1016
*
@@ -13,16 +19,19 @@
1319
class UrlTest extends \PHPUnit_Framework_TestCase
1420
{
1521
/**
16-
* @var \Magento\Backend\Model\UrlInterface
22+
* @var RequestInterface
23+
*/
24+
private $request;
25+
26+
/**
27+
* @var UrlInterface
1728
*/
1829
protected $_model;
1930

2031
protected function setUp()
2132
{
22-
parent::setUp();
23-
$this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
24-
'Magento\Backend\Model\UrlInterface'
25-
);
33+
$this->request = Bootstrap::getObjectManager()->get(RequestInterface::class);
34+
$this->_model = Bootstrap::getObjectManager()->create(UrlInterface::class);
2635
}
2736

2837
/**
@@ -34,6 +43,16 @@ public function testGetUrl()
3443
{
3544
$url = $this->_model->getUrl('adminhtml/auth/login');
3645
$this->assertContains('admin/auth/login/key/', $url);
46+
47+
$this->request->setParams(['param' => 'ab==']);
48+
$routeParams = [
49+
'_current' => true,
50+
'_escape_params' => true,
51+
];
52+
$url = $this->_model->getUrl('path', $routeParams);
53+
/** @var ParamEncoder $paramEncoder */
54+
$paramEncoder = Bootstrap::getObjectManager()->get(ParamEncoder::class);
55+
$this->assertContains('/param/' . $paramEncoder->encode('ab==') . '/', $url);
3756
}
3857

3958
/**
@@ -46,20 +65,17 @@ public function testGetUrl()
4665
*/
4766
public function testGetSecretKey($routeName, $controller, $action, $expectedHash)
4867
{
49-
/** @var $request \Magento\Framework\App\RequestInterface */
50-
$request = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
51-
->create('Magento\Framework\App\RequestInterface');
52-
$request->setControllerName(
68+
$this->request->setControllerName(
5369
'default_controller'
5470
)->setActionName(
5571
'default_action'
5672
)->setRouteName(
5773
'default_router'
5874
);
5975

60-
$this->_model->setRequest($request);
61-
\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
62-
'Magento\Framework\Session\SessionManagerInterface'
76+
$this->_model->setRequest($this->request);
77+
Bootstrap::getObjectManager()->get(
78+
SessionManagerInterface::class
6379
)->setData(
6480
'_form_key',
6581
'salt'
@@ -72,10 +88,8 @@ public function testGetSecretKey($routeName, $controller, $action, $expectedHash
7288
*/
7389
public function getSecretKeyDataProvider()
7490
{
75-
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
76-
77-
/** @var $encryptor \Magento\Framework\Encryption\EncryptorInterface */
78-
$encryptor = $objectManager->get('Magento\Framework\Encryption\EncryptorInterface');
91+
/** @var $encryptor EncryptorInterface */
92+
$encryptor = Bootstrap::getObjectManager()->get(EncryptorInterface::class);
7993

8094
return [
8195
[
@@ -129,19 +143,14 @@ public function getSecretKeyDataProvider()
129143
*/
130144
public function testGetSecretKeyForwarded()
131145
{
132-
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
133-
134-
/** @var $encryptor \Magento\Framework\Encryption\EncryptorInterface */
135-
$encryptor = $objectManager->get('Magento\Framework\Encryption\EncryptorInterface');
146+
/** @var $encryptor EncryptorInterface */
147+
$encryptor = Bootstrap::getObjectManager()->get(EncryptorInterface::class);
136148

137-
/** @var $request \Magento\Framework\App\Request\Http */
138-
$request = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
139-
->create('Magento\Framework\App\RequestInterface');
140-
$request->setControllerName('controller')->setActionName('action');
141-
$request->initForward()->setControllerName(uniqid())->setActionName(uniqid());
142-
$this->_model->setRequest($request);
143-
\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
144-
'Magento\Framework\Session\SessionManagerInterface'
149+
$this->request->setControllerName('controller')->setActionName('action');
150+
$this->request->initForward()->setControllerName(uniqid())->setActionName(uniqid());
151+
$this->_model->setRequest($this->request);
152+
Bootstrap::getObjectManager()->get(
153+
SessionManagerInterface::class
145154
)->setData(
146155
'_form_key',
147156
'salt'

0 commit comments

Comments
 (0)