Skip to content

Commit 1aca83f

Browse files
committed
MC-33404: Incorrect display of file name in import history
1 parent 0decc7f commit 1aca83f

File tree

3 files changed

+36
-12
lines changed

3 files changed

+36
-12
lines changed

app/code/Magento/ImportExport/Block/Adminhtml/Grid/Column/Renderer/Download.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ class Download extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\Text
2020
*/
2121
public function _getValue(\Magento\Framework\DataObject $row)
2222
{
23-
return '<p> ' . $row->getData('imported_file') . '</p><a href="'
24-
. $this->getUrl('*/*/download', ['filename' => $row->getData('imported_file')]) . '">'
25-
. __('Download')
23+
return '<p> ' . $this->escapeHtml($row->getData('imported_file')) . '</p><a href="'
24+
. $this->escapeUrl($this->getUrl('*/*/download', ['filename' => $row->getData('imported_file')])) . '">'
25+
. $this->escapeHtml(__('Download'))
2626
. '</a>';
2727
}
2828
}

app/code/Magento/ImportExport/Block/Adminhtml/Grid/Column/Renderer/Error.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ public function _getValue(\Magento\Framework\DataObject $row)
2222
{
2323
$result = '';
2424
if ($row->getData('error_file') != '') {
25-
$result = '<p> ' . $row->getData('error_file') . '</p><a href="'
26-
. $this->getUrl('*/*/download', ['filename' => $row->getData('error_file')]) . '">'
27-
. __('Download')
25+
$result = '<p> ' . $this->escapeHtml($row->getData('error_file')) . '</p><a href="'
26+
. $this->escapeUrl($this->getUrl('*/*/download', ['filename' => $row->getData('error_file')])) . '">'
27+
. $this->escapeHtml(__('Download'))
2828
. '</a>';
2929
}
3030
return $result;

app/code/Magento/ImportExport/Test/Unit/Block/Adminhtml/Grid/Column/Renderer/DownloadTest.php

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,20 @@
55
*/
66
namespace Magento\ImportExport\Test\Unit\Block\Adminhtml\Grid\Column\Renderer;
77

8+
use Magento\Backend\Block\Context;
9+
use Magento\Backend\Model\Url;
10+
use Magento\Framework\DataObject;
11+
use Magento\Framework\Escaper;
812
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
13+
use Magento\ImportExport\Block\Adminhtml\Grid\Column\Renderer\Download;
914

15+
/**
16+
* Test for \Magento\ImportExport\Block\Adminhtml\Grid\Column\Renderer\Download class.
17+
*/
1018
class DownloadTest extends \PHPUnit\Framework\TestCase
1119
{
1220
/**
13-
* @var \Magento\Backend\Block\Context
21+
* @var Context
1422
*/
1523
protected $context;
1624

@@ -20,24 +28,31 @@ class DownloadTest extends \PHPUnit\Framework\TestCase
2028
protected $objectManagerHelper;
2129

2230
/**
23-
* @var \Magento\ImportExport\Block\Adminhtml\Grid\Column\Renderer\Download
31+
* @var Download
2432
*/
2533
protected $download;
2634

35+
/**
36+
* @var Escaper|\PHPUnit_Framework_MockObject_MockObjecti
37+
*/
38+
private $escaperMock;
39+
2740
/**
2841
* Set up
2942
*/
3043
protected function setUp()
3144
{
32-
$urlModel = $this->createPartialMock(\Magento\Backend\Model\Url::class, ['getUrl']);
45+
$this->escaperMock = $this->createMock(Escaper::class);
46+
$urlModel = $this->createPartialMock(Url::class, ['getUrl']);
3347
$urlModel->expects($this->any())->method('getUrl')->willReturn('url');
34-
$this->context = $this->createPartialMock(\Magento\Backend\Block\Context::class, ['getUrlBuilder']);
48+
$this->context = $this->createPartialMock(Context::class, ['getUrlBuilder', 'getEscaper']);
3549
$this->context->expects($this->any())->method('getUrlBuilder')->willReturn($urlModel);
50+
$this->context->expects($this->any())->method('getEscaper')->willReturn($this->escaperMock);
3651
$data = [];
3752

3853
$this->objectManagerHelper = new ObjectManagerHelper($this);
3954
$this->download = $this->objectManagerHelper->getObject(
40-
\Magento\ImportExport\Block\Adminhtml\Grid\Column\Renderer\Download::class,
55+
Download::class,
4156
[
4257
'context' => $this->context,
4358
'data' => $data
@@ -51,7 +66,16 @@ protected function setUp()
5166
public function testGetValue()
5267
{
5368
$data = ['imported_file' => 'file.csv'];
54-
$row = new \Magento\Framework\DataObject($data);
69+
$row = new DataObject($data);
70+
$this->escaperMock->expects($this->at(0))
71+
->method('escapeHtml')
72+
->with('file.csv')
73+
->willReturn('file.csv');
74+
$this->escaperMock->expects($this->once())->method('escapeUrl')->willReturn('url');
75+
$this->escaperMock->expects($this->at(2))
76+
->method('escapeHtml')
77+
->with('Download')
78+
->willReturn('Download');
5579
$this->assertEquals('<p> file.csv</p><a href="url">Download</a>', $this->download->_getValue($row));
5680
}
5781
}

0 commit comments

Comments
 (0)