Skip to content

Commit a6c2bc2

Browse files
[2.3-develop] Forwardport of #13408
1 parent e075ca7 commit a6c2bc2

File tree

2 files changed

+72
-1
lines changed

2 files changed

+72
-1
lines changed

app/code/Magento/Analytics/Test/Unit/Block/Adminhtml/System/Config/CollectionTimeLabelTest.php

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use Magento\Backend\Block\Template\Context;
1010
use Magento\Framework\Data\Form;
1111
use Magento\Framework\Data\Form\Element\AbstractElement;
12+
use Magento\Framework\Locale\ResolverInterface;
1213
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
1314
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
1415

@@ -34,6 +35,11 @@ class CollectionTimeLabelTest extends \PHPUnit\Framework\TestCase
3435
*/
3536
private $abstractElementMock;
3637

38+
/**
39+
* @var ResolverInterface|\PHPUnit_Framework_MockObject_MockObject
40+
*/
41+
private $localeResolver;
42+
3743
protected function setUp()
3844
{
3945
$this->abstractElementMock = $this->getMockBuilder(AbstractElement::class)
@@ -53,12 +59,17 @@ protected function setUp()
5359
$this->contextMock->expects($this->any())
5460
->method('getLocaleDate')
5561
->willReturn($this->timeZoneMock);
62+
$this->localeResolver = $this->getMockBuilder(ResolverInterface::class)
63+
->disableOriginalConstructor()
64+
->setMethods(['getLocale'])
65+
->getMockForAbstractClass();
5666

5767
$objectManager = new ObjectManager($this);
5868
$this->collectionTimeLabel = $objectManager->getObject(
5969
CollectionTimeLabel::class,
6070
[
61-
'context' => $this->contextMock
71+
'context' => $this->contextMock,
72+
'localeResolver' => $this->localeResolver
6273
]
6374
);
6475
}
@@ -73,6 +84,9 @@ public function testRender()
7384
$this->abstractElementMock->expects($this->any())
7485
->method('getComment')
7586
->willReturn('Eastern Standard Time (America/New_York)');
87+
$this->localeResolver->expects($this->once())
88+
->method('getLocale')
89+
->willReturn('en_US');
7690
$this->assertRegexp(
7791
"/Eastern Standard Time \(America\/New_York\)/",
7892
$this->collectionTimeLabel->render($this->abstractElementMock)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Analytics\Block\Adminhtml\System\Config;
8+
9+
use Magento\Framework\Data\FormFactory;
10+
use Magento\Framework\Data\Form\Element\TimeFactory;
11+
use Magento\TestFramework\Helper\Bootstrap;
12+
use PHPUnit\Framework\TestCase;
13+
14+
/**
15+
* Provide tests for CollectionTimeLabel block.
16+
*/
17+
class CollectionTimeLabelTest extends TestCase
18+
{
19+
/**
20+
* Test render will add comment considering config locale(default en_US).
21+
*
22+
* @magentoAppIsolation enabled
23+
*/
24+
public function testRenderWithDefaultLocale()
25+
{
26+
$result = $this->render();
27+
$this->assertRegExp('/<span>Pacific Standard Time/', $result);
28+
}
29+
30+
/**
31+
* Test render will add comment considering config locale(non-default de_DE).
32+
*
33+
* @magentoConfigFixture default_store general/locale/code de_DE
34+
* @magentoAppIsolation enabled
35+
*/
36+
public function testRenderWithNonDefaultLocale()
37+
{
38+
$result = $this->render();
39+
$this->assertRegExp('/<span>Nordamerikanische Westküsten-Normalzeit/', $result);
40+
}
41+
42+
/**
43+
* Render 'time' element.
44+
*
45+
* @return string
46+
*/
47+
private function render()
48+
{
49+
$collectionTimeLabel = Bootstrap::getObjectManager()->get(CollectionTimeLabelFactory::class)->create();
50+
$form = Bootstrap::getObjectManager()->get(FormFactory::class)->create();
51+
$element = Bootstrap::getObjectManager()->get(TimeFactory::class)->create();
52+
$element->setForm($form);
53+
54+
return $collectionTimeLabel->render($element);
55+
}
56+
57+
}

0 commit comments

Comments
 (0)