‪TYPO3CMS  11.5
SlugHelperUniqueWithLanguageTest.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 
24 
26 {
28  'typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_datahandler_slug',
29  ];
30 
31  protected function ‪setUp(): void
32  {
33  parent::setUp();
34 
35  $this->importCSVDataSet(__DIR__ . '/DataSet/TestSlugUniqueWithLanguages.csv');
36  $this->‪setUpFrontendSite(1);
37  $this->setUpFrontendRootPage(1, ['typo3/sysext/core/Tests/Functional/Fixtures/Frontend/JsonRenderer.typoscript']);
38  }
39 
41  {
42  return [
43  'sameLanguageSameSlug' => [
44  'expectedSlug' => 'unique-slug-1',
45  'recordData' => [
46  'uid' => 2,
47  'pid' => 1,
48  'sys_language_uid' => 0,
49  'title' => 'Some title',
50  'slug' => 'unique-slug',
51  ],
52  ],
53  'sameLanguageDifferentSlug' => [
54  'expectedSlug' => 'other-slug',
55  'recordData' => [
56  'uid' => 2,
57  'pid' => 1,
58  'sys_language_uid' => 0,
59  'title' => 'Some title',
60  'slug' => 'other-slug',
61  ],
62  ],
63  'otherLanguageSameSlug' => [
64  'expectedSlug' => 'unique-slug',
65  'recordData' => [
66  'uid' => 2,
67  'pid' => 1,
68  'sys_language_uid' => 1,
69  'title' => 'Some title',
70  'slug' => 'unique-slug',
71  ],
72  ],
73  'allLanguagesSameSlug' => [
74  'expectedSlug' => 'unique-slug-1',
75  'recordData' => [
76  'uid' => 2,
77  'pid' => 1,
78  'sys_language_uid' => -1,
79  'title' => 'Some title',
80  'slug' => 'unique-slug',
81  ],
82  ],
83  ];
84  }
85 
90  public function ‪buildSlugForUniqueRespectsLanguage(string $expectedSlug, array $recordData): void
91  {
92  $subject = GeneralUtility::makeInstance(
93  SlugHelper::class,
94  'tx_testdatahandler_slug',
95  'slug',
96  [
97  'generatorOptions' => [
98  'fields' => ['title'],
99  'fieldSeparator' => '/',
100  'prefixParentPageSlug' => false,
101  'replacements' => [
102  '/' => '-',
103  ],
104  ],
105  'fallbackCharacter' => '-',
106  'eval' => 'unique',
107  'default' => '',
108  ]
109  );
110 
111  $state = ‪RecordStateFactory::forName('tx_testdatahandler_slug')->fromArray($recordData);
112  $resultSlug = $subject->buildSlugForUniqueInTable($recordData['slug'], $state);
113  self::assertSame($expectedSlug, $resultSlug);
114  }
115 }
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\Slug
Definition: SlugHelperTest.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\Slug\SlugHelperUniqueWithLanguageTest\$testExtensionsToLoad
‪$testExtensionsToLoad
Definition: SlugHelperUniqueWithLanguageTest.php:27
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\Slug\SlugHelperUniqueWithLanguageTest\buildSlugForUniqueRespectsLanguage
‪buildSlugForUniqueRespectsLanguage(string $expectedSlug, array $recordData)
Definition: SlugHelperUniqueWithLanguageTest.php:90
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase
Definition: AbstractDataHandlerActionTestCase.php:41
‪TYPO3\CMS\Core\DataHandling\Model\RecordStateFactory
Definition: RecordStateFactory.php:26
‪TYPO3\CMS\Core\DataHandling\SlugHelper
Definition: SlugHelper.php:43
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\Slug\SlugHelperUniqueWithLanguageTest
Definition: SlugHelperUniqueWithLanguageTest.php:26
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\Slug\SlugHelperUniqueWithLanguageTest\buildSlugForUniqueRespectsLanguageDataProvider
‪buildSlugForUniqueRespectsLanguageDataProvider()
Definition: SlugHelperUniqueWithLanguageTest.php:40
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Core\DataHandling\Model\RecordStateFactory\forName
‪static static forName(string $name)
Definition: RecordStateFactory.php:35
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\Slug\SlugHelperUniqueWithLanguageTest\setUp
‪setUp()
Definition: SlugHelperUniqueWithLanguageTest.php:31