From a6c2bc2b471586eb44d9b4fc2341517bb64cad15 Mon Sep 17 00:00:00 2001 From: magento-engcom-team Date: Tue, 6 Feb 2018 18:55:17 +0200 Subject: [PATCH] [2.3-develop] Forwardport of magento/magento2#13408 --- .../System/Config/CollectionTimeLabelTest.php | 16 +++++- .../System/Config/CollectionTimeLabelTest.php | 57 +++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 dev/tests/integration/testsuite/Magento/Analytics/Block/Adminhtml/System/Config/CollectionTimeLabelTest.php diff --git a/app/code/Magento/Analytics/Test/Unit/Block/Adminhtml/System/Config/CollectionTimeLabelTest.php b/app/code/Magento/Analytics/Test/Unit/Block/Adminhtml/System/Config/CollectionTimeLabelTest.php index a652cf6b3d548..462b3c909a7fd 100644 --- a/app/code/Magento/Analytics/Test/Unit/Block/Adminhtml/System/Config/CollectionTimeLabelTest.php +++ b/app/code/Magento/Analytics/Test/Unit/Block/Adminhtml/System/Config/CollectionTimeLabelTest.php @@ -9,6 +9,7 @@ use Magento\Backend\Block\Template\Context; use Magento\Framework\Data\Form; use Magento\Framework\Data\Form\Element\AbstractElement; +use Magento\Framework\Locale\ResolverInterface; use Magento\Framework\Stdlib\DateTime\TimezoneInterface; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; @@ -34,6 +35,11 @@ class CollectionTimeLabelTest extends \PHPUnit\Framework\TestCase */ private $abstractElementMock; + /** + * @var ResolverInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $localeResolver; + protected function setUp() { $this->abstractElementMock = $this->getMockBuilder(AbstractElement::class) @@ -53,12 +59,17 @@ protected function setUp() $this->contextMock->expects($this->any()) ->method('getLocaleDate') ->willReturn($this->timeZoneMock); + $this->localeResolver = $this->getMockBuilder(ResolverInterface::class) + ->disableOriginalConstructor() + ->setMethods(['getLocale']) + ->getMockForAbstractClass(); $objectManager = new ObjectManager($this); $this->collectionTimeLabel = $objectManager->getObject( CollectionTimeLabel::class, [ - 'context' => $this->contextMock + 'context' => $this->contextMock, + 'localeResolver' => $this->localeResolver ] ); } @@ -73,6 +84,9 @@ public function testRender() $this->abstractElementMock->expects($this->any()) ->method('getComment') ->willReturn('Eastern Standard Time (America/New_York)'); + $this->localeResolver->expects($this->once()) + ->method('getLocale') + ->willReturn('en_US'); $this->assertRegexp( "/Eastern Standard Time \(America\/New_York\)/", $this->collectionTimeLabel->render($this->abstractElementMock) diff --git a/dev/tests/integration/testsuite/Magento/Analytics/Block/Adminhtml/System/Config/CollectionTimeLabelTest.php b/dev/tests/integration/testsuite/Magento/Analytics/Block/Adminhtml/System/Config/CollectionTimeLabelTest.php new file mode 100644 index 0000000000000..31e80e48174c8 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Analytics/Block/Adminhtml/System/Config/CollectionTimeLabelTest.php @@ -0,0 +1,57 @@ +render(); + $this->assertRegExp('/Pacific Standard Time/', $result); + } + + /** + * Test render will add comment considering config locale(non-default de_DE). + * + * @magentoConfigFixture default_store general/locale/code de_DE + * @magentoAppIsolation enabled + */ + public function testRenderWithNonDefaultLocale() + { + $result = $this->render(); + $this->assertRegExp('/Nordamerikanische Westküsten-Normalzeit/', $result); + } + + /** + * Render 'time' element. + * + * @return string + */ + private function render() + { + $collectionTimeLabel = Bootstrap::getObjectManager()->get(CollectionTimeLabelFactory::class)->create(); + $form = Bootstrap::getObjectManager()->get(FormFactory::class)->create(); + $element = Bootstrap::getObjectManager()->get(TimeFactory::class)->create(); + $element->setForm($form); + + return $collectionTimeLabel->render($element); + } + +}