2 declare(strict_types = 1);
18 use Prophecy\Argument;
26 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
38 $GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'lang'][
'format'][
'priority'] =
'xml';
40 $cacheManagerProphecy = $this->prophesize(CacheManager::class);
41 GeneralUtility::setSingletonInstance(CacheManager::class, $cacheManagerProphecy->reveal());
42 $cacheFrontendProphecy = $this->prophesize(FrontendInterface::class);
43 $cacheManagerProphecy->getCache(
'l10n')->willReturn($cacheFrontendProphecy->reveal());
44 $cacheFrontendProphecy->get(Argument::cetera())->willReturn(
false);
45 $cacheFrontendProphecy->set(Argument::cetera())->willReturn(
null);
47 GeneralUtility::makeInstance(LanguageStore::class)->initialize();
54 GeneralUtility::purgeInstances();
69 $LOCAL_LANG = (
new LocallangXmlParser)->getParsedData(self::getFixtureFilePath(
'locallang.xml'),
'default');
70 $this->assertArrayHasKey(
'default', $LOCAL_LANG,
'default key not found in $LOCAL_LANG');
72 'label1' =>
'This is label #1',
73 'label2' =>
'This is label #2',
74 'label3' =>
'This is label #3'
76 foreach ($expectedLabels as $key => $expectedLabel) {
77 $this->assertEquals($expectedLabel, $LOCAL_LANG[
'default'][$key][0][
'target']);
86 $LOCAL_LANG = (
new LocallangXmlParser)->getParsedData(self::getFixtureFilePath(
'locallang.xml'),
'md5');
87 $this->assertArrayHasKey(
'md5', $LOCAL_LANG,
'md5 key not found in $LOCAL_LANG');
89 'label1' =>
'409a6edbc70dbeeccbfe5f1e569d6717',
90 'label2' =>
'b5dc71ae9f52ecb9e7704c50562e39b0',
91 'label3' =>
'51eac55fa5ca15789ce9bbb0cf927296'
93 foreach ($expectedLabels as $key => $expectedLabel) {
94 $this->assertEquals($expectedLabel, $LOCAL_LANG[
'md5'][$key][0][
'target']);
104 self::getFixtureFilePath(
'locallangOnlyDefaultLanguage.xml'),
110 $this->assertNull($localLang[
'fr'][
'label1'][0][
'target'] ??
null);
111 $this->assertNull($localLang[
'fr'][
'label2'][0][
'target'] ??
null);
112 $this->assertNull($localLang[
'fr'][
'label3'][0][
'target'] ??
null);
124 $LOCAL_LANG = array_merge(
125 $factory->getParsedData(self::getFixtureFilePath(
'locallang.xml'),
'default'),
126 $factory->getParsedData(self::getFixtureFilePath(
'locallang.xml'),
'md5')
128 $this->assertArrayHasKey(
'default', $LOCAL_LANG,
'default key not found in $LOCAL_LANG');
129 $this->assertArrayHasKey(
'md5', $LOCAL_LANG,
'md5 key not found in $LOCAL_LANG');
132 'label1' =>
'This is my 1st label',
133 'label2' =>
'This is my 2nd label',
134 'label3' =>
'This is label #3'
137 'label1' =>
'409a6edbc70dbeeccbfe5f1e569d6717',
138 'label2' =>
'b5dc71ae9f52ecb9e7704c50562e39b0',
139 'label3' =>
'51eac55fa5ca15789ce9bbb0cf927296'
142 foreach ($expectedLabels as $languageKey => $expectedLanguageLabels) {
143 foreach ($expectedLanguageLabels as $key => $expectedLabel) {
144 $this->assertEquals($expectedLabel, $LOCAL_LANG[$languageKey][$key][0][
'target']);
154 'This is label #1 [FR]'
158 'This is label #2 [FR]'
162 'This is label #3 [FR]'
166 'This is label #5 [FR]'
168 'Numeric key 10' => [
170 'This is label #10 [FR]'
184 $LOCAL_LANG = $factory->
getParsedData(self::getFixtureFilePath(
'locallangNumericKeys.xml'),
'fr');
186 $this->assertEquals($expectedResult, $LOCAL_LANG[
'fr'][$key][0][
'target']);