b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / dev2.destoffenstraat.com / dev / tests / integration / testsuite / Magento / Framework /
Filename/home/dev2.destoffenstraat.com/dev/tests/integration/testsuite/Magento/Framework/TranslateTest.php
Size5.57 kb
Permissionrw-r--r--
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified28-Jan-2025 06:45
Last accessed22-Aug-2025 23:41
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\Framework;

use Magento\TestFramework\Helper\Bootstrap;
use Magento\TestFramework\Helper\CacheCleaner;
use PHPUnit\Framework\MockObject\MockObject as MockObject;

/**
* @magentoAppIsolation enabled
* @magentoCache all disabled
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class TranslateTest extends \PHPUnit\Framework\TestCase
{
/**
* @var \Magento\Framework\Translate
*/
private $translate;

/**
* @inheritdoc
*/
protected function setUp(): void
{
/** @var \Magento\Framework\View\FileSystem|MockObject $viewFileSystem */
$viewFileSystem = $this->createPartialMock(
\Magento\Framework\View\FileSystem::class,
['getLocaleFileName']
);

$viewFileSystem->expects($this->any())
->method('getLocaleFileName')
->willReturn(

dirname(__DIR__) . '/Translation/Model/_files/Magento/design/Magento/theme/i18n/en_US.csv'

);

/** @var \Magento\Framework\View\Design\ThemeInterface|MockObject $theme */
$theme = $this->createMock(\Magento\Framework\View\Design\ThemeInterface::class);
$theme->expects($this->any())->method('getThemePath')->willReturn('Magento/luma');

/** @var \Magento\TestFramework\ObjectManager $objectManager */
$objectManager = Bootstrap::getObjectManager();
$objectManager->addSharedInstance($viewFileSystem, \Magento\Framework\View\FileSystem::class);

/** @var $moduleReader \Magento\Framework\Module\Dir\Reader */
$moduleReader = $objectManager->get(\Magento\Framework\Module\Dir\Reader::class);
$moduleReader->setModuleDir(
'Magento_Store',
'i18n',
dirname(__DIR__) . '/Translation/Model/_files/Magento/Store/i18n'
);
$moduleReader->setModuleDir(
'Magento_Catalog',
'i18n',
dirname(__DIR__) . '/Translation/Model/_files/Magento/Catalog/i18n'
);

/** @var \Magento\Theme\Model\View\Design|MockObject $designModel */
$designModel = $this->getMockBuilder(\Magento\Theme\Model\View\Design::class)
->setMethods(['getDesignTheme'])
->setConstructorArgs(
[
$objectManager->get(\Magento\Store\Model\StoreManagerInterface::class),
$objectManager->get(\Magento\Framework\View\Design\Theme\FlyweightFactory::class),
$objectManager->get(\Magento\Framework\App\Config\ScopeConfigInterface::class),
$objectManager->get(\Magento\Theme\Model\ThemeFactory::class),
$objectManager->get(\Magento\Framework\ObjectManagerInterface::class),
$objectManager->get(\Magento\Framework\App\State::class),
['frontend' => 'Test/default']
]
)
->getMock();

$designModel->expects($this->any())->method('getDesignTheme')->willReturn($theme);

$objectManager->addSharedInstance($designModel, \Magento\Theme\Model\View\Design\Proxy::class);

$this->translate = $objectManager->create(\Magento\Framework\Translate::class);
$objectManager->addSharedInstance($this->translate, \Magento\Framework\Translate::class);
$objectManager->removeSharedInstance(\Magento\Framework\Phrase\Renderer\Composite::class);
$objectManager->removeSharedInstance(\Magento\Framework\Phrase\Renderer\Translate::class);
\Magento\Framework\Phrase::setRenderer(
$objectManager->get(\Magento\Framework\Phrase\RendererInterface::class)
);
}

public function testLoadData()
{
$data = $this->translate->loadData(null, true)->getData();
CacheCleaner::cleanAll();
$this->translate->loadData()->getData();
$dataCached = $this->translate->loadData()->getData();
$this->assertEquals($data, $dataCached);
}

/**
* @magentoCache all disabled
* @dataProvider translateDataProvider
*
* @param string $inputText
* @param string $expectedTranslation
* @return void
* @throws Exception\LocalizedException
*/
public function testTranslate($inputText, $expectedTranslation)
{
$this->translate->loadData(\Magento\Framework\App\Area::AREA_FRONTEND);
$actualTranslation = new \Magento\Framework\Phrase($inputText);
$this->assertEquals($expectedTranslation, $actualTranslation);
}

/**
* @return array
*/
public function translateDataProvider()
{
return [
['', ''],
[
'Theme phrase will be translated',
'Theme phrase is translated',
],
[
'Phrase in Magento_Store module that doesn\'t need translation',
'Phrase in Magento_Store module that doesn\'t need translation',
],
[
'Phrase in Magento_Catalog module that doesn\'t need translation',
'Phrase in Magento_Catalog module that doesn\'t need translation',
],
[
'Magento_Store module phrase will be overridden by theme translation',
'Magento_Store module phrase is overridden by theme translation',
],
[
'Magento_Catalog module phrase will be overridden by theme translation',
'Magento_Catalog module phrase is overridden by theme translation',
],
];
}
}