Skip to content

Commit bd36840

Browse files
committed
ACP2E-537: Unable to use "Translate inline" on the same element second time
- fix static failure - fix unit test
1 parent 6a6d535 commit bd36840

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

app/code/Magento/Backend/Controller/Adminhtml/Ajax/Translate.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66
*/
77
namespace Magento\Backend\Controller\Adminhtml\Ajax;
88

9+
use Magento\Framework\App\Action\HttpPostActionInterface;
910
use Magento\Backend\App\Action;
1011

11-
class Translate extends \Magento\Backend\App\Action
12+
class Translate extends \Magento\Backend\App\Action implements HttpPostActionInterface
1213
{
1314
/**
1415
* @var \Magento\Framework\Translate\Inline\ParserInterface
@@ -23,7 +24,7 @@ class Translate extends \Magento\Backend\App\Action
2324
/**
2425
* Authorization level of a basic admin session
2526
*/
26-
const ADMIN_RESOURCE = 'Magento_Backend::content_translation';
27+
public const ADMIN_RESOURCE = 'Magento_Backend::content_translation';
2728

2829
/**
2930
* @param Action\Context $context

lib/internal/Magento/Framework/Phrase/Test/Unit/Renderer/TranslateTest.php

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
namespace Magento\Framework\Phrase\Test\Unit\Renderer;
99

10+
use Magento\Framework\Phrase\Renderer\MessageFormatter;
1011
use Magento\Framework\Phrase\Renderer\Translate as PhraseRenderer;
1112
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
1213
use Magento\Framework\Translate;
@@ -32,18 +33,32 @@ class TranslateTest extends TestCase
3233
*/
3334
protected $loggerMock;
3435

36+
/**
37+
* @var MessageFormatter|MockObject
38+
*/
39+
private $messageFormatter;
40+
3541
protected function setUp(): void
3642
{
3743
$this->_translator = $this->getMockForAbstractClass(TranslateInterface::class);
3844
$this->loggerMock = $this->getMockBuilder(LoggerInterface::class)
3945
->getMock();
46+
$this->messageFormatter = $this->getMockBuilder(MessageFormatter::class)
47+
->disableOriginalConstructor()
48+
->getMock();
49+
$this->messageFormatter
50+
->method('render')
51+
->willReturnCallback(function($source) {
52+
return end($source);
53+
});
4054

4155
$objectManagerHelper = new ObjectManager($this);
4256
$this->_renderer = $objectManagerHelper->getObject(
4357
PhraseRenderer::class,
4458
[
4559
'translator' => $this->_translator,
46-
'logger' => $this->loggerMock
60+
'logger' => $this->loggerMock,
61+
'messageFormatter' => $this->messageFormatter,
4762
]
4863
);
4964
}
@@ -96,7 +111,8 @@ public function testRenderException()
96111
{
97112
$message = 'something went wrong';
98113
$exception = new \Exception($message);
99-
114+
$this->messageFormatter->expects($this->never())
115+
->method('render');
100116
$this->_translator->expects($this->once())
101117
->method('getData')
102118
->willThrowException($exception);

0 commit comments

Comments
 (0)