Skip to content

Commit 9877bc9

Browse files
committed
Merge remote-tracking branch 'origin/MAGETWO-83605' into 2.3-develop-pr4
2 parents 250e21e + 694e877 commit 9877bc9

File tree

2 files changed

+97
-2
lines changed
  • app/code/Magento/Newsletter

2 files changed

+97
-2
lines changed

app/code/Magento/Newsletter/Block/Adminhtml/Template/Grid/Renderer/Sender.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
class Sender extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer
1515
{
1616
/**
17-
* Renderer for "Action" column in Newsletter templates grid
17+
* Renderer for "Action" column in Newsletter templates grid.
1818
*
1919
* @param \Magento\Framework\DataObject $row
2020
* @return string
@@ -26,11 +26,12 @@ public function render(\Magento\Framework\DataObject $row)
2626
$str .= htmlspecialchars($row->getTemplateSenderName()) . ' ';
2727
}
2828
if ($row->getTemplateSenderEmail()) {
29-
$str .= '[' . $row->getTemplateSenderEmail() . ']';
29+
$str .= '[' . htmlspecialchars($row->getTemplateSenderEmail()) . ']';
3030
}
3131
if ($str == '') {
3232
$str .= '---';
3333
}
34+
3435
return $str;
3536
}
3637
}
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Newsletter\Test\Unit\Block\Adminhtml\Template\Grid\Renderer;
7+
8+
/**
9+
* Test for \Magento\Newsletter\Block\Adminhtml\Template\Grid\Renderer\Sender.
10+
*/
11+
class SenderTest extends \PHPUnit\Framework\TestCase
12+
{
13+
/**
14+
* @var \Magento\Newsletter\Block\Adminhtml\Template\Grid\Renderer\Sender
15+
*/
16+
private $sender;
17+
18+
/**
19+
* @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager
20+
*/
21+
private $objectManagerHelper;
22+
23+
/**
24+
* @inheritdoc
25+
*/
26+
protected function setUp()
27+
{
28+
$this->objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
29+
$this->sender = $this->objectManagerHelper->getObject(
30+
\Magento\Newsletter\Block\Adminhtml\Template\Grid\Renderer\Sender::class
31+
);
32+
}
33+
34+
/**
35+
* @dataProvider rendererDataProvider
36+
* @param array $expectedSender
37+
* @param array $passedSender
38+
*
39+
* @return void
40+
*/
41+
public function testRender(array $passedSender, array $expectedSender)
42+
{
43+
$row = $this->getMockBuilder(\Magento\Framework\DataObject::class)
44+
->setMethods(['getTemplateSenderName', 'getTemplateSenderEmail'])
45+
->getMock();
46+
$row->expects($this->atLeastOnce())->method('getTemplateSenderName')
47+
->willReturn($passedSender['sender']);
48+
$row->expects($this->atLeastOnce())->method('getTemplateSenderEmail')
49+
->willReturn($passedSender['sender_email']);
50+
$this->assertEquals(
51+
$expectedSender['sender'] . ' [' . $expectedSender['sender_email'] . ']',
52+
$this->sender->render($row)
53+
);
54+
}
55+
56+
/**
57+
* @return array
58+
*/
59+
public function rendererDataProvider()
60+
{
61+
return [
62+
[
63+
[
64+
'sender' => 'Sender',
65+
'sender_email' => 'sender@example.com',
66+
],
67+
[
68+
'sender' => 'Sender',
69+
'sender_email' => 'sender@example.com',
70+
],
71+
],
72+
[
73+
[
74+
'sender' => "<br>'Sender'</br>",
75+
'sender_email' => "<br>'email@example.com'</br>",
76+
],
77+
[
78+
'sender' => "&lt;br&gt;'Sender'&lt;/br&gt;",
79+
'sender_email' => "&lt;br&gt;'email@example.com'&lt;/br&gt;",
80+
],
81+
],
82+
[
83+
[
84+
'sender' => '"<script>alert(document.domain)</script>"@example.com',
85+
'sender_email' => '"<script>alert(document.domain)</script>"@example.com',
86+
],
87+
[
88+
'sender' => '&quot;&lt;script&gt;alert(document.domain)&lt;/script&gt;&quot;@example.com',
89+
'sender_email' => '&quot;&lt;script&gt;alert(document.domain)&lt;/script&gt;&quot;@example.com',
90+
],
91+
],
92+
];
93+
}
94+
}

0 commit comments

Comments
 (0)