![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/setup/src/Magento/Setup/Test/Unit/Module/I18n/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Setup\Test\Unit\Module\I18n; use Magento\Framework\Component\ComponentRegistrar; use Magento\Setup\Module\I18n\Context; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; class ContextTest extends TestCase { /** * @var Context */ protected $context; /** * @var ComponentRegistrar|MockObject */ protected $componentRegistrar; protected function setUp(): void { $this->componentRegistrar = $this->createMock(ComponentRegistrar::class); } /** * @param array $context * @param string $path * @param array $pathValues * @dataProvider dataProviderContextByPath */ public function testGetContextByPath($context, $path, $pathValues) { $this->componentRegistrar->expects($this->any()) ->method('getPaths') ->willReturnMap($pathValues); $this->context = new Context($this->componentRegistrar); $this->assertEquals($context, $this->context->getContextByPath($path)); } /** * @return array */ public function dataProviderContextByPath() { return [ [ [Context::CONTEXT_TYPE_MODULE, 'Magento_Module'], '/app/code/Magento/Module/Block/Test.php', [ [Context::CONTEXT_TYPE_MODULE, ['Magento_Module' => '/app/code/Magento/Module']], [Context::CONTEXT_TYPE_THEME, []], ] ], [ [Context::CONTEXT_TYPE_THEME, 'frontend/Some/theme'], '/app/design/area/theme/test.phtml', [ [Context::CONTEXT_TYPE_MODULE, []], [Context::CONTEXT_TYPE_THEME, ['frontend/Some/theme' => '/app/design/area/theme']], ] ], [ [Context::CONTEXT_TYPE_LIB, 'lib/web/module/test.phtml'], '/lib/web/module/test.phtml', [ [Context::CONTEXT_TYPE_MODULE, []], [Context::CONTEXT_TYPE_THEME, []], ] ], ]; } public function testGetContextByPathWithInvalidPath() { $this->expectException('InvalidArgumentException'); $this->expectExceptionMessage('Invalid path given: "invalid_path".'); $this->componentRegistrar->expects($this->any()) ->method('getPaths') ->willReturnMap([ [ComponentRegistrar::MODULE, ['/path/to/module']], [ComponentRegistrar::THEME, ['/path/to/theme']] ]); $this->context = new Context($this->componentRegistrar); $this->context->getContextByPath('invalid_path'); } /** * @param string $path * @param array $context * @param array $registrar * @dataProvider dataProviderPathToLocaleDirectoryByContext */ public function testBuildPathToLocaleDirectoryByContext($path, $context, $registrar) { $paths = []; foreach ($registrar as $module) { $paths[$module[1]] = $module[2]; } $this->componentRegistrar->expects($this->any()) ->method('getPath') ->willReturnMap($registrar); $this->context = new Context($this->componentRegistrar); $this->assertEquals($path, $this->context->buildPathToLocaleDirectoryByContext($context[0], $context[1])); } /** * @return array */ public function dataProviderPathToLocaleDirectoryByContext() { return [ [ BP . '/app/code/Magento/Module/i18n/', [Context::CONTEXT_TYPE_MODULE, 'Magento_Module'], [[ComponentRegistrar::MODULE, 'Magento_Module', BP . '/app/code/Magento/Module']] ], [ BP . '/app/design/frontend/Magento/luma/i18n/', [Context::CONTEXT_TYPE_THEME, 'frontend/Magento/luma'], [[ComponentRegistrar::THEME, 'frontend/Magento/luma', BP . '/app/design/frontend/Magento/luma']] ], [ null, [Context::CONTEXT_TYPE_MODULE, 'Unregistered_Module'], [[ComponentRegistrar::MODULE, 'Unregistered_Module', null]] ], [ null, [Context::CONTEXT_TYPE_THEME, 'frontend/Magento/unregistered'], [[ComponentRegistrar::THEME, 'frontend/Magento/unregistered', null]] ], [BP . '/lib/web/i18n/', [Context::CONTEXT_TYPE_LIB, 'lib/web/module/test.phtml'], []], ]; } public function testBuildPathToLocaleDirectoryByContextWithInvalidType() { $this->expectException('InvalidArgumentException'); $this->expectExceptionMessage('Invalid context given: "invalid_type".'); $this->componentRegistrar->expects($this->never()) ->method('getPath'); $this->context = new Context($this->componentRegistrar); $this->context->buildPathToLocaleDirectoryByContext('invalid_type', 'Magento_Module'); } }