‪TYPO3CMS  11.5
DatabaseSystemLanguageRowsTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use Prophecy\Argument;
21 use Prophecy\PhpUnit\ProphecyTrait;
27 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
28 
32 class ‪DatabaseSystemLanguageRowsTest extends UnitTestCase
33 {
34  use ProphecyTrait;
35 
39  public function ‪addDataThrowsExceptionIfSiteObjectIsNotSet(): void
40  {
41  $this->expectException(\LogicException::class);
42  $this->expectExceptionCode(1534952559);
43  (new ‪DatabaseSystemLanguageRows())->addData([]);
44  }
45 
49  public function ‪addDataSetsDefaultLanguageAndAllEntries(): void
50  {
51  $languageService = $this->prophesize(LanguageService::class);
52  ‪$GLOBALS['LANG'] = $languageService->reveal();
53  $languageService->sL(Argument::cetera())->willReturnArgument(0);
54  $backendUserProphecy = $this->prophesize(BackendUserAuthentication::class);
55  ‪$GLOBALS['BE_USER'] = $backendUserProphecy->reveal();
56 
57  $siteProphecy = $this->prophesize(Site::class);
58  $siteLanguageMinusOne = $this->prophesize(SiteLanguage::class);
59  $siteLanguageMinusOne->getLanguageId()->willReturn(-1);
60  $siteLanguageMinusOne->getTitle()->willReturn('All');
61  $siteLanguageMinusOne->getFlagIdentifier()->willReturn('flags-multiple');
62  $siteLanguageZero = $this->prophesize(SiteLanguage::class);
63  $siteLanguageZero->getLanguageId()->willReturn(0);
64  $siteLanguageZero->getTitle()->willReturn('English');
65  $siteLanguageZero->getFlagIdentifier()->willReturn('empty-empty');
66  $siteLanguageOne = $this->prophesize(SiteLanguage::class);
67  $siteLanguageOne->getLanguageId()->willReturn(1);
68  $siteLanguageOne->getTitle()->willReturn('Dutch');
69  $siteLanguageOne->getFlagIdentifier()->willReturn('flag-nl');
70  $siteLanguageOne->getTwoLetterIsoCode()->willReturn('NL');
71  $siteLanguages = [
72  $siteLanguageMinusOne->reveal(),
73  $siteLanguageZero->reveal(),
74  $siteLanguageOne->reveal(),
75  ];
76  $siteProphecy->getAvailableLanguages(Argument::cetera())->willReturn($siteLanguages);
77  $input = [
78  'effectivePid' => 42,
79  'site' => $siteProphecy->reveal(),
80  ];
81  $expected = [
82  'systemLanguageRows' => [
83  -1 => [
84  'uid' => -1,
85  'title' => 'All',
86  'iso' => 'DEF',
87  'flagIconIdentifier' => 'flags-multiple',
88  ],
89  0 => [
90  'uid' => 0,
91  'title' => 'English',
92  'iso' => 'DEF',
93  'flagIconIdentifier' => 'empty-empty',
94  ],
95  1 => [
96  'uid' => 1,
97  'title' => 'Dutch',
98  'iso' => 'NL',
99  'flagIconIdentifier' => 'flag-nl',
100  ],
101  ],
102  ];
103  self::assertSame(array_merge($input, $expected), (new ‪DatabaseSystemLanguageRows())->addData($input));
104  }
105 }
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\DatabaseSystemLanguageRowsTest
Definition: DatabaseSystemLanguageRowsTest.php:33
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\DatabaseSystemLanguageRowsTest\addDataSetsDefaultLanguageAndAllEntries
‪addDataSetsDefaultLanguageAndAllEntries()
Definition: DatabaseSystemLanguageRowsTest.php:48
‪TYPO3\CMS\Core\Site\Entity\Site
Definition: Site.php:42
‪TYPO3\CMS\Core\Site\Entity\SiteLanguage
Definition: SiteLanguage.php:26
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\DatabaseSystemLanguageRowsTest\addDataThrowsExceptionIfSiteObjectIsNotSet
‪addDataThrowsExceptionIfSiteObjectIsNotSet()
Definition: DatabaseSystemLanguageRowsTest.php:38
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication
Definition: BackendUserAuthentication.php:62
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseSystemLanguageRows
Definition: DatabaseSystemLanguageRows.php:30
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider
Definition: DatabaseDefaultLanguagePageRowTest.php:18