Skip to content

Commit 6cc5765

Browse files
Merge pull request #19 from magento-amigos/2.4-develop-prs-patch-8
[Amigos] Community Contributions – Patch 8
2 parents 5622a66 + 1ca54ac commit 6cc5765

File tree

4 files changed

+53
-14
lines changed

4 files changed

+53
-14
lines changed

app/code/Magento/Theme/Block/Html/Header.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
namespace Magento\Theme\Block\Html;
88

9+
use Magento\Framework\Escaper;
10+
911
/**
1012
* Html page header block
1113
*
@@ -14,6 +16,27 @@
1416
*/
1517
class Header extends \Magento\Framework\View\Element\Template
1618
{
19+
/**
20+
* @var Escaper
21+
*/
22+
private $escaper;
23+
24+
/**
25+
* Constructor
26+
*
27+
* @param \Magento\Framework\View\Element\Template\Context $context
28+
* @param Magento\Framework\Escaper $escaper
29+
* @param array $data
30+
*/
31+
public function __construct(
32+
\Magento\Framework\View\Element\Template\Context $context,
33+
\Magento\Framework\Escaper $escaper,
34+
array $data = []
35+
) {
36+
$this->escaper = $escaper;
37+
parent::__construct($context, $data);
38+
}
39+
1740
/**
1841
* Current template name
1942
*
@@ -34,6 +57,7 @@ public function getWelcome()
3457
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
3558
);
3659
}
60+
$this->_data['welcome'] = $this->escaper->escapeQuote($this->_data['welcome'], true);
3761
return __($this->_data['welcome']);
3862
}
3963
}

app/code/Magento/Theme/Test/Unit/Block/Html/HeaderTest.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use Magento\Theme\Block\Html\Header;
1515
use PHPUnit\Framework\MockObject\MockObject;
1616
use PHPUnit\Framework\TestCase;
17+
use Magento\Framework\Escaper;
1718

1819
class HeaderTest extends TestCase
1920
{
@@ -27,6 +28,11 @@ class HeaderTest extends TestCase
2728
*/
2829
protected $scopeConfig;
2930

31+
/**
32+
* @var Escaper|MockObject
33+
*/
34+
private $escaper;
35+
3036
protected function setUp(): void
3137
{
3238
$context = $this->getMockBuilder(Context::class)
@@ -38,10 +44,13 @@ protected function setUp(): void
3844
->disableOriginalConstructor()
3945
->getMock();
4046
$context->expects($this->once())->method('getScopeConfig')->willReturn($this->scopeConfig);
41-
47+
$this->escaper = $this->createPartialMock(Escaper::class, ['escapeQuote']);
4248
$this->unit = (new ObjectManager($this))->getObject(
4349
Header::class,
44-
['context' => $context]
50+
[
51+
'context' => $context,
52+
'escaper' => $this->escaper
53+
]
4554
);
4655
}
4756

@@ -51,6 +60,11 @@ public function testGetWelcomeDefault()
5160
->with('design/header/welcome', ScopeInterface::SCOPE_STORE)
5261
->willReturn('Welcome Message');
5362

63+
$this->escaper->expects($this->once())
64+
->method('escapeQuote')
65+
->with('Welcome Message', true)
66+
->willReturn('Welcome Message');
67+
5468
$this->assertEquals('Welcome Message', $this->unit->getWelcome());
5569
}
5670
}

app/code/Magento/Theme/view/frontend/templates/html/header.phtml

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,34 @@
1010
*/
1111
$welcomeMessage = $block->getWelcome();
1212
?>
13-
<?php if ($block->getShowPart() == 'welcome') : ?>
13+
<?php if ($block->getShowPart() == 'welcome'): ?>
1414
<li class="greet welcome" data-bind="scope: 'customer'">
1515
<!-- ko if: customer().fullname -->
1616
<span class="logged-in"
17-
data-bind="text: new String('<?= $escaper->escapeHtml(__('Welcome, %1!', '%1')) ?>').replace('%1', customer().fullname)">
17+
data-bind="text: new String('<?= $escaper->escapeHtml(__('Welcome, %1!', '%1')) ?>').
18+
replace('%1', customer().fullname)">
1819
</span>
1920
<!-- /ko -->
2021
<!-- ko ifnot: customer().fullname -->
2122
<span class="not-logged-in"
22-
data-bind="html: '<?= $escaper->escapeHtmlAttr($welcomeMessage) ?>'"></span>
23+
data-bind="text: '<?= $escaper->escapeHtml($welcomeMessage) ?>'"></span>
2324
<?= $block->getBlockHtml('header.additional') ?>
2425
<!-- /ko -->
2526
</li>
27+
<?php // phpcs:ignore Magento2.Legacy.PhtmlTemplate ?>
2628
<script type="text/x-magento-init">
27-
{
28-
"*": {
29-
"Magento_Ui/js/core/app": {
30-
"components": {
31-
"customer": {
32-
"component": "Magento_Customer/js/view/customer"
29+
{
30+
"*": {
31+
"Magento_Ui/js/core/app": {
32+
"components": {
33+
"customer": {
34+
"component": "Magento_Customer/js/view/customer"
35+
}
3336
}
3437
}
3538
}
3639
}
37-
}
3840
</script>
39-
<?php elseif ($block->getShowPart() == 'other') :?>
41+
<?php elseif ($block->getShowPart() == 'other'): ?>
4042
<?= $block->getChildHtml() ?>
4143
<?php endif ?>

app/code/Magento/Translation/Model/Inline/Parser.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -719,7 +719,6 @@ private function _otherText()
719719
],
720720
JSON_HEX_QUOT
721721
);
722-
723722
$spanHtml = $this->_getDataTranslateSpan(
724723
'[' . $this->escaper->escapeHtmlAttr($translateProperties) . ']',
725724
$matches[1][0]

0 commit comments

Comments
 (0)