Skip to content

Commit c24206e

Browse files
authored
Merge branch '2.4-develop' into 825-adobestock-remove-directory
2 parents 847e5bc + 0ac3443 commit c24206e

File tree

926 files changed

+25641
-5266
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

926 files changed

+25641
-5266
lines changed

app/code/Magento/AdminAnalytics/etc/adminhtml/system.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
99
<system>
1010
<section id="admin">
11-
<group id="usage" translate="label" type="text" sortOrder="2000" showInDefault="1" showInWebsite="0" showInStore="0">
11+
<group id="usage" translate="label" type="text" sortOrder="2000" showInDefault="1">
1212
<label>Admin Usage</label>
13-
<field id="enabled" translate="label comment" type="select" sortOrder="1" showInDefault="1" showInWebsite="0" showInStore="0">
13+
<field id="enabled" translate="label comment" type="select" sortOrder="1" showInDefault="1">
1414
<label>Enable Admin Usage Tracking</label>
1515
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
1616
<comment>Allow Magento to track admin usage in order to improve the quality and user experience.</comment>

app/code/Magento/AdminAnalytics/registration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
* See COPYING.txt for license details.
55
*/
66

7-
use \Magento\Framework\Component\ComponentRegistrar;
7+
use Magento\Framework\Component\ComponentRegistrar;
88

99
ComponentRegistrar::register(ComponentRegistrar::MODULE, 'Magento_AdminAnalytics', __DIR__);

app/code/Magento/AdminNotification/Block/Grid/Renderer/Actions.php

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<?php
2+
declare(strict_types=1);
3+
24
/**
35
* Adminhtml AdminNotification Severity Renderer
46
*
@@ -8,12 +10,16 @@
810

911
namespace Magento\AdminNotification\Block\Grid\Renderer;
1012

13+
use Magento\Backend\Block\Context;
14+
use Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer;
15+
use Magento\Framework\App\ActionInterface;
16+
use Magento\Framework\DataObject;
17+
use Magento\Framework\Url\Helper\Data;
18+
1119
/**
1220
* Renderer class for action in the admin notifications grid
13-
*
14-
* @package Magento\AdminNotification\Block\Grid\Renderer
1521
*/
16-
class Actions extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer
22+
class Actions extends AbstractRenderer
1723
{
1824
/**
1925
* @var \Magento\Framework\Url\Helper\Data
@@ -25,11 +31,8 @@ class Actions extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\Abstrac
2531
* @param \Magento\Framework\Url\Helper\Data $urlHelper
2632
* @param array $data
2733
*/
28-
public function __construct(
29-
\Magento\Backend\Block\Context $context,
30-
\Magento\Framework\Url\Helper\Data $urlHelper,
31-
array $data = []
32-
) {
34+
public function __construct(Context $context, Data $urlHelper, array $data = [])
35+
{
3336
$this->_urlHelper = $urlHelper;
3437
parent::__construct($context, $data);
3538
}
@@ -40,7 +43,7 @@ public function __construct(
4043
* @param \Magento\Framework\DataObject $row
4144
* @return string
4245
*/
43-
public function render(\Magento\Framework\DataObject $row)
46+
public function render(DataObject $row)
4447
{
4548
$readDetailsHtml = $row->getUrl() ? '<a class="action-details" target="_blank" href="' .
4649
$this->escapeUrl($row->getUrl())
@@ -49,7 +52,7 @@ public function render(\Magento\Framework\DataObject $row)
4952

5053
$markAsReadHtml = !$row->getIsRead() ? '<a class="action-mark" href="' . $this->getUrl(
5154
'*/*/markAsRead/',
52-
['_current' => true, 'id' => $row->getId()]
55+
['_current' => true, 'id' => $row->getNotificationId()]
5356
) . '">' . __(
5457
'Mark as Read'
5558
) . '</a>' : '';
@@ -63,8 +66,8 @@ public function render(\Magento\Framework\DataObject $row)
6366
'*/*/remove/',
6467
[
6568
'_current' => true,
66-
'id' => $row->getId(),
67-
\Magento\Framework\App\ActionInterface::PARAM_NAME_URL_ENCODED => $encodedUrl
69+
'id' => $row->getNotificationId(),
70+
ActionInterface::PARAM_NAME_URL_ENCODED => $encodedUrl
6871
]
6972
),
7073
__('Are you sure?'),

app/code/Magento/AdminNotification/Block/Grid/Renderer/Notice.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<?php
2+
declare(strict_types=1);
3+
24
/**
35
* Adminhtml AdminNotification Severity Renderer
46
*
@@ -7,15 +9,21 @@
79
*/
810
namespace Magento\AdminNotification\Block\Grid\Renderer;
911

10-
class Notice extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer
12+
use Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer;
13+
use Magento\Framework\DataObject;
14+
15+
/**
16+
* Renderer class for notice in the admin notifications grid
17+
*/
18+
class Notice extends AbstractRenderer
1119
{
1220
/**
1321
* Renders grid column
1422
*
1523
* @param \Magento\Framework\DataObject $row
1624
* @return string
1725
*/
18-
public function render(\Magento\Framework\DataObject $row)
26+
public function render(DataObject $row)
1927
{
2028
return '<span class="grid-row-title">' .
2129
$this->escapeHtml($row->getTitle()) .

app/code/Magento/AdminNotification/Block/Grid/Renderer/Severity.php

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<?php
2+
declare(strict_types=1);
3+
24
/**
35
* Adminhtml AdminNotification Severity Renderer
46
*
@@ -7,9 +9,16 @@
79
*/
810
namespace Magento\AdminNotification\Block\Grid\Renderer;
911

12+
use Magento\AdminNotification\Model\Inbox;
13+
use Magento\Backend\Block\Context;
14+
use Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer;
15+
use Magento\Framework\DataObject;
1016
use Magento\Framework\Notification\MessageInterface;
1117

12-
class Severity extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer
18+
/**
19+
* Renderer class for severity in the admin notifications grid
20+
*/
21+
class Severity extends AbstractRenderer
1322
{
1423
/**
1524
* @var \Magento\AdminNotification\Model\Inbox
@@ -21,11 +30,8 @@ class Severity extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\Abstra
2130
* @param \Magento\AdminNotification\Model\Inbox $notice
2231
* @param array $data
2332
*/
24-
public function __construct(
25-
\Magento\Backend\Block\Context $context,
26-
\Magento\AdminNotification\Model\Inbox $notice,
27-
array $data = []
28-
) {
33+
public function __construct(Context $context, Inbox $notice, array $data = [])
34+
{
2935
parent::__construct($context, $data);
3036
$this->_notice = $notice;
3137
}
@@ -36,12 +42,14 @@ public function __construct(
3642
* @param \Magento\Framework\DataObject $row
3743
* @return string
3844
*/
39-
public function render(\Magento\Framework\DataObject $row)
45+
public function render(DataObject $row)
4046
{
4147
$class = '';
4248
$value = '';
4349

44-
switch ($row->getData($this->getColumn()->getIndex())) {
50+
$column = $this->getColumn();
51+
$index = $column->getIndex();
52+
switch ($row->getData($index)) {
4553
case MessageInterface::SEVERITY_CRITICAL:
4654
$class = 'critical';
4755
$value = $this->_notice->getSeverities(MessageInterface::SEVERITY_CRITICAL);
@@ -59,6 +67,7 @@ public function render(\Magento\Framework\DataObject $row)
5967
$value = $this->_notice->getSeverities(MessageInterface::SEVERITY_NOTICE);
6068
break;
6169
}
70+
6271
return '<span class="grid-severity-' . $class . '"><span>' . $value . '</span></span>';
6372
}
6473
}
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
<?php
2+
declare(strict_types = 1);
3+
4+
/**
5+
* Copyright © Magento, Inc. All rights reserved.
6+
* See COPYING.txt for license details.
7+
*/
8+
9+
/**
10+
* Test class for \Magento\AdminNotification\Block\Grid\Renderer\Actions
11+
*/
12+
13+
namespace Magento\AdminNotification\Test\Unit\Block\Grid\Renderer;
14+
15+
use Magento\AdminNotification\Block\Grid\Renderer\Actions;
16+
use Magento\Backend\Block\Context;
17+
use Magento\Framework\DataObject;
18+
use Magento\Framework\Escaper;
19+
use Magento\Framework\Url\Helper\Data;
20+
use Magento\Framework\UrlInterface;
21+
use PHPUnit\Framework\TestCase;
22+
23+
class ActionsTest extends TestCase
24+
{
25+
/**
26+
* System under Test
27+
* @var Actions
28+
*/
29+
private $sut;
30+
31+
protected function setUp() : void
32+
{
33+
parent::setUp();
34+
35+
/** @var Escaper | \PHPUnit_Framework_MockObject_MockObject $escaperMock */
36+
$escaperMock = $this->getMockBuilder(Escaper::class)->disableOriginalConstructor()->getMock();
37+
$escaperMock->expects($this->once())->method('escapeUrl')->willReturn('https://magento.com');
38+
39+
/** @var UrlInterface | \PHPUnit_Framework_MockObject_MockObject $urlBuilder */
40+
$urlBuilder = $this->getMockBuilder(UrlInterface::class)->getMock();
41+
$urlBuilder->expects($this->once())->method('getUrl')->willReturn('http://magento.com');
42+
43+
/** @var Context | \PHPUnit_Framework_MockObject_MockObject $contextMock */
44+
$contextMock = $this->getMockBuilder(Context::class)->disableOriginalConstructor()->getMock();
45+
$contextMock->expects($this->once())->method('getEscaper')->willReturn($escaperMock);
46+
$contextMock->expects($this->once())->method('getUrlBuilder')->willReturn($urlBuilder);
47+
48+
/** @var Data | \PHPUnit_Framework_MockObject_MockObject $urlHelperMock */
49+
$urlHelperMock = $this->getMockBuilder(Data::class)->disableOriginalConstructor()->getMock();
50+
$urlHelperMock->expects($this->once())->method('getEncodedUrl')->willReturn('http://magento.com');
51+
52+
$this->sut = new Actions($contextMock, $urlHelperMock);
53+
}
54+
55+
public function testShouldRenderMessageWhenUrlIsGiven() : void
56+
{
57+
$dataObject = new DataObject();
58+
$dataObject->setdata('url', 'https://magento.com');
59+
$dataObject->setdata('is_read', true);
60+
$dataObject->setdata('id', 1);
61+
62+
$actual = $this->sut->render($dataObject);
63+
64+
// Ignoring Code Style at this point due to the long HEREDOC
65+
// phpcs:disable
66+
$expected = <<<HTML
67+
<a class="action-details" target="_blank" href="https://magento.com">Read Details</a><a class="action-delete" href="http://magento.com" onClick="deleteConfirm('Are you sure?', this.href); return false;">Remove</a>
68+
HTML;
69+
// phpcs:enable
70+
71+
$this->assertEquals($actual, $expected);
72+
}
73+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
/**
5+
* Copyright © Magento, Inc. All rights reserved.
6+
* See COPYING.txt for license details.
7+
*/
8+
9+
/**
10+
* Test class for \Magento\AdminNotification\Block\Grid\Renderer\Actions
11+
*/
12+
namespace Magento\AdminNotification\Test\Unit\Block\Grid\Renderer;
13+
14+
use Magento\AdminNotification\Block\Grid\Renderer\Notice;
15+
use Magento\Framework\DataObject;
16+
use Magento\Framework\Escaper;
17+
use Magento\Backend\Block\Context;
18+
use PHPUnit\Framework\TestCase;
19+
20+
class NoticeTest extends TestCase
21+
{
22+
/**
23+
* System under Test
24+
*
25+
* @var Notice
26+
*/
27+
private $sut;
28+
29+
protected function setUp() : void
30+
{
31+
parent::setUp();
32+
33+
/** @var Escaper | \PHPUnit_Framework_MockObject_MockObject $escaperMock */
34+
$escaperMock = $this->getMockBuilder(Escaper::class)->disableOriginalConstructor()->getMock();
35+
$escaperMock->expects($this->exactly(2))->method('escapeHtml')->willReturn('<div>Some random html</div>');
36+
37+
/** @var Context | \PHPUnit_Framework_MockObject_MockObject $contextMock */
38+
$contextMock = $this->getMockBuilder(Context::class)->disableOriginalConstructor()->getMock();
39+
$contextMock->expects($this->once())->method('getEscaper')->willReturn($escaperMock);
40+
41+
$this->sut = new Notice($contextMock);
42+
}
43+
44+
public function testShouldRenderNotice() : void
45+
{
46+
$dataObject = new DataObject();
47+
$dataObject->setData('title', 'A great Title');
48+
$dataObject->setData('description', 'Handy description right here');
49+
50+
$actual = $this->sut->render($dataObject);
51+
$expected = '<span class="grid-row-title"><div>Some random html</div></span><br /><div>Some random html</div>';
52+
53+
$this->assertEquals($actual, $expected);
54+
}
55+
}

0 commit comments

Comments
 (0)