‪TYPO3CMS  11.5
GetUniqueTranslationTest.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 TYPO3\CMS\Backend\Utility\BackendUtility;
22 
24 {
25  protected const ‪PAGE_DATAHANDLER = 88;
26 
28  'typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_foreignfield',
29  'typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial',
30  ];
31 
32  protected function ‪setUp(): void
33  {
34  parent::setUp();
35  $this->importCSVDataSet(__DIR__ . '/DataSet/LiveDefaultPages.csv');
36  $this->importCSVDataSet(__DIR__ . '/DataSet/LiveDefaultElements.csv');
37  $this->‪setUpFrontendSite(1, $this->siteLanguageConfiguration);
38  $this->backendUser->workspace = 0;
39  }
40 
45  {
46  // Mis-using the "keywords" field in the scenario data-set to check for uniqueness
47  ‪$GLOBALS['TCA']['pages']['columns']['keywords']['l10n_mode'] = 'exclude';
48  ‪$GLOBALS['TCA']['pages']['columns']['keywords']['transOrigPointerField'] = 'l10n_parent';
49  ‪$GLOBALS['TCA']['pages']['columns']['keywords']['languageField'] = 'sys_language_uid';
50  ‪$GLOBALS['TCA']['pages']['columns']['keywords']['config']['eval'] = 'unique';
51  $map = $this->actionService->localizeRecord('pages', self::PAGE_DATAHANDLER, 1);
52  $newPageId = $map['pages'][‪self::PAGE_DATAHANDLER];
53 
54  $originalLanguageRecord = BackendUtility::getRecord('pages', self::PAGE_DATAHANDLER);
55  $translatedRecord = BackendUtility::getRecord('pages', $newPageId);
56 
57  self::assertEquals('datahandler', $originalLanguageRecord['keywords']);
58  self::assertEquals('datahandler', $translatedRecord['keywords']);
59  }
60 
65  {
66  // Mis-using the "nav_title" field in the scenario data-set to check for uniqueness
67  ‪$GLOBALS['TCA']['pages']['columns']['nav_title']['l10n_mode'] = 'exclude';
68  ‪$GLOBALS['TCA']['pages']['columns']['nav_title']['transOrigPointerField'] = 'l10n_parent';
69  ‪$GLOBALS['TCA']['pages']['columns']['nav_title']['languageField'] = 'sys_language_uid';
70  ‪$GLOBALS['TCA']['pages']['columns']['nav_title']['config']['eval'] = 'unique';
71  $map = $this->actionService->localizeRecord('pages', self::PAGE_DATAHANDLER, 1);
72  $newPageId = $map['pages'][‪self::PAGE_DATAHANDLER];
73 
74  $translatedRecord = BackendUtility::getRecord('pages', $newPageId);
75  $this->actionService->modifyRecord('pages', self::PAGE_DATAHANDLER, [
76  'title' => 'DataHandlerTest changed',
77  'nav_title' => 'datahandler',
78  ]);
79  $originalLanguageRecord = BackendUtility::getRecord('pages', self::PAGE_DATAHANDLER);
80 
81  self::assertEquals('DataHandlerTest changed', $originalLanguageRecord['title']);
82  self::assertEquals('datahandler', $originalLanguageRecord['nav_title']);
83  self::assertEquals('datahandler', $translatedRecord['nav_title']);
84  }
85 
90  {
91  // Mis-using the "nav_title" field in the scenario data-set to check for uniqueness
92  ‪$GLOBALS['TCA']['pages']['columns']['nav_title']['l10n_mode'] = 'exclude';
93  ‪$GLOBALS['TCA']['pages']['columns']['nav_title']['transOrigPointerField'] = 'l10n_parent';
94  ‪$GLOBALS['TCA']['pages']['columns']['nav_title']['languageField'] = 'sys_language_uid';
95  ‪$GLOBALS['TCA']['pages']['columns']['nav_title']['config']['eval'] = 'unique';
96  $map = $this->actionService->createNewRecord('pages', -self::PAGE_DATAHANDLER, [
97  'title' => 'New Page',
98  'doktype' => 1,
99  ]);
100  $newPageId = $map['pages'][0];
101 
102  $this->actionService->modifyRecord('pages', $newPageId, [
103  'nav_title' => 'datahandler',
104  ]);
105  $originalLanguageRecord = BackendUtility::getRecord('pages', self::PAGE_DATAHANDLER);
106  $newRecord = BackendUtility::getRecord('pages', $newPageId);
107  self::assertEquals('datahandler', $originalLanguageRecord['nav_title']);
108  self::assertEquals('datahandler0', $newRecord['nav_title']);
109  }
110 
115  {
116  // Mis-using the "nav_title" field in the scenario data-set to check for uniqueness
117  ‪$GLOBALS['TCA']['pages']['columns']['nav_title']['l10n_mode'] = 'exclude';
118  ‪$GLOBALS['TCA']['pages']['columns']['nav_title']['transOrigPointerField'] = 'l10n_parent';
119  ‪$GLOBALS['TCA']['pages']['columns']['nav_title']['languageField'] = 'sys_language_uid';
120  ‪$GLOBALS['TCA']['pages']['columns']['nav_title']['config']['eval'] = 'unique';
121  $map = $this->actionService->createNewRecord('pages', -self::PAGE_DATAHANDLER, [
122  'title' => 'New Page',
123  'doktype' => 1,
124  'nav_title' => 'datahandler',
125  'sys_language_uid' => 1,
126  ]);
127  $newPageId = $map['pages'][0];
128 
129  $defaultLanguageRecord = BackendUtility::getRecord('pages', self::PAGE_DATAHANDLER);
130  $newRecord = BackendUtility::getRecord('pages', $newPageId);
131  self::assertEquals('datahandler', $defaultLanguageRecord['nav_title']);
132  self::assertEquals('datahandler0', $newRecord['nav_title']);
133  }
134 }
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\DataHandler
Definition: DefaultValuesTest.php:18
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\setUpFrontendSite
‪setUpFrontendSite(int $pageId, array $additionalLanguages=[])
Definition: AbstractDataHandlerActionTestCase.php:127
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\DataHandler\GetUniqueTranslationTest\valueOfUniqueFieldExcludedInTranslationIsIncrementedInNewTranslatedRecord
‪valueOfUniqueFieldExcludedInTranslationIsIncrementedInNewTranslatedRecord()
Definition: GetUniqueTranslationTest.php:114
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\DataHandler\GetUniqueTranslationTest\valueOfUniqueFieldExcludedInTranslationIsIncrementedInNewOriginalRecord
‪valueOfUniqueFieldExcludedInTranslationIsIncrementedInNewOriginalRecord()
Definition: GetUniqueTranslationTest.php:89
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\DataHandler\GetUniqueTranslationTest\setUp
‪setUp()
Definition: GetUniqueTranslationTest.php:32
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase
Definition: AbstractDataHandlerActionTestCase.php:41
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\DataHandler\GetUniqueTranslationTest\PAGE_DATAHANDLER
‪const PAGE_DATAHANDLER
Definition: GetUniqueTranslationTest.php:25
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\DataHandler\GetUniqueTranslationTest
Definition: GetUniqueTranslationTest.php:24
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\DataHandler\GetUniqueTranslationTest\valueOfUniqueFieldExcludedInTranslationIsUntouchedInTranslation
‪valueOfUniqueFieldExcludedInTranslationIsUntouchedInTranslation()
Definition: GetUniqueTranslationTest.php:44
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\DataHandler\GetUniqueTranslationTest\$testExtensionsToLoad
‪$testExtensionsToLoad
Definition: GetUniqueTranslationTest.php:27
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\DataHandler\GetUniqueTranslationTest\valueOfUniqueFieldExcludedInTranslationIsUntouchedInOriginalLanguage
‪valueOfUniqueFieldExcludedInTranslationIsUntouchedInOriginalLanguage()
Definition: GetUniqueTranslationTest.php:64