‪TYPO3CMS  11.5
TranslatedSiteContentTest.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 
23 use TYPO3\TestingFramework\Core\Functional\Framework\Frontend\InternalRequest;
24 use TYPO3\TestingFramework\Core\Functional\Framework\Frontend\ResponseContent;
25 
33 {
35 
36  protected const ‪VALUE_PageId = 89;
37  protected const ‪TABLE_Content = 'tt_content';
38  protected const ‪TABLE_Pages = 'pages';
39 
40  protected ‪$testExtensionsToLoad = ['typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example'];
41 
46 
47  protected ‪$pathsToLinkInTestInstance = [
48  'typo3/sysext/frontend/Tests/Functional/Fixtures/Images' => 'fileadmin/user_upload',
49  ];
50 
54  protected const ‪LANGUAGE_PRESETS = [
55  'EN' => ['id' => 0, 'title' => 'English', 'locale' => 'en_US.UTF8'],
56  'DK' => ['id' => 1, 'title' => 'Dansk', 'locale' => 'dk_DA.UTF8'],
57  'DE' => ['id' => 2, 'title' => 'Deutsch', 'locale' => 'de_DE.UTF8'],
58  'PL' => ['id' => 3, 'title' => 'Polski', 'locale' => 'pl_PL.UTF8'],
59  ];
60 
61  protected function ‪setUp(): void
62  {
63  parent::setUp();
64  // @todo: Copy those files to local directory
65  $this->importCSVDataSet(__DIR__ . '/../../../../frontend/Tests/Functional/Rendering/DataSet/LiveDefaultPages.csv');
66  $this->importCSVDataSet(__DIR__ . '/../../../../frontend/Tests/Functional/Rendering/DataSet/LiveDefaultElements.csv');
67 
68  $this->contentRepository = $this->get(TtContentRepository::class);
69  $this->setUpFrontendRootPage(1, [
70  'typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TypoScript/setup.typoscript',
71  'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/Frontend/ContentJsonRenderer.typoscript',
72  ]);
73  }
74 
75  protected function ‪tearDown(): void
76  {
77  unset($this->contentRepository);
78  parent::tearDown();
79  }
80 
88  {
90  'test',
91  $this->‪buildSiteConfiguration(1, 'https://website.local/'),
92  [
93  $this->‪buildDefaultLanguageConfiguration('EN', '/en/'),
94  ],
95  $this->‪buildErrorHandlingConfiguration('Fluid', [404]),
96  );
97 
98  $response = $this->executeFrontendSubRequest(
99  new InternalRequest('https://website.local/en/?id=' . static::VALUE_PageId)
100  );
101  $responseStructure = ResponseContent::fromString((string)$response->getBody());
102  $responseSections = $responseStructure->getSection('Extbase:list()');
103  $visibleHeaders = ['Regular Element #1', 'Regular Element #2', 'Regular Element #3'];
104  self::assertThat(
105  $responseSections,
107  ->setTable(self::TABLE_Content)
108  ->setField('header')
109  ->setValues(...$visibleHeaders)
110  );
111  self::assertThat(
112  $responseSections,
114  ->setTable(self::TABLE_Content)
115  ->setField('header')
116  ->setValues(...$this->‪getNonVisibleHeaders($visibleHeaders))
117  );
118 
119  // assert FAL relations
120  $visibleFiles = ['T3BOARD'];
121  self::assertThat($responseSections, $this->‪getRequestSectionStructureHasRecordConstraint()
122  ->setRecordIdentifier(self::TABLE_Content . ':297')->setRecordField('image')
123  ->setTable('sys_file_reference')->setField('title')->setValues(...$visibleFiles));
124 
125  self::assertThat($responseSections, $this->‪getRequestSectionStructureDoesNotHaveRecordConstraint()
126  ->setRecordIdentifier(self::TABLE_Content . ':297')->setRecordField('image')
127  ->setTable('sys_file_reference')->setField('title')->setValues(...$this->‪getNonVisibleFileTitles($visibleFiles)));
128 
129  $visibleFiles = ['Kasper2'];
130  self::assertThat($responseSections, $this->‪getRequestSectionStructureHasRecordConstraint()
131  ->setRecordIdentifier(self::TABLE_Content . ':298')->setRecordField('image')
132  ->setTable('sys_file_reference')->setField('title')->setValues(...$visibleFiles));
133 
134  self::assertThat($responseSections, $this->‪getRequestSectionStructureDoesNotHaveRecordConstraint()
135  ->setRecordIdentifier(self::TABLE_Content . ':298')->setRecordField('image')
136  ->setTable('sys_file_reference')->setField('title')->setValues(...$this->‪getNonVisibleFileTitles($visibleFiles)));
137 
138  // assert Categories
139  $visibleCategories = ['Category 1', 'Category 3 - not translated'];
140  self::assertThat($responseSections, $this->‪getRequestSectionStructureHasRecordConstraint()
141  ->setRecordIdentifier(self::TABLE_Content . ':297')->setRecordField('categories')
142  ->setTable('sys_category')->setField('title')->setValues(...$visibleCategories));
143 
144  self::assertThat($responseSections, $this->‪getRequestSectionStructureDoesNotHaveRecordConstraint()
145  ->setRecordIdentifier(self::TABLE_Content . ':297')->setRecordField('categories')
146  ->setTable('sys_category')->setField('title')->setValues(...$this->‪getNonVisibleCategoryTitles($visibleCategories)));
147  }
148 
154  public function ‪danishDataProvider(): array
155  {
156  // Expected behaviour:
157  // Page is translated to Danish, so changing sys_language_mode does NOT change the results
158  // Page title is always [DK]Page, and both sys_language_content and sys_language_uid are always 1
159  return [
160  [
161  'fallbackType' => 'free',
162  'visibleRecords' => [
163  300 => [
164  'header' => '[Translate to Dansk:] Regular Element #3',
165  'image' => ['[Kasper] Image translated to Dansk', '[T3BOARD] Image added in Dansk (without parent)'],
166  ],
167  301 => [
168  'header' => '[Translate to Dansk:] Regular Element #1',
169  'image' => [],
170  'categories' => ['[Translate to Dansk:] Category 1', 'Category 4'],
171  ],
172  303 => [
173  'header' => '[DK] Without default language',
174  'image' => ['[T3BOARD] Image added to DK element without default language'],
175  ],
176  308 => [
177  'header' => '[DK] UnHidden Element #4',
178  'image' => [],
179  ],
180  ],
181  ],
182  [
183  'fallbackType' => 'fallback',
184  'visibleRecords' => [
185  297 => [
186  'header' => '[Translate to Dansk:] Regular Element #1',
187  'image' => [],
188  'categories' => ['[Translate to Dansk:] Category 1', 'Category 4'],
189  ],
190  298 => [
191  'header' => 'Regular Element #2',
192  'image' => ['Kasper2'],
193  ],
194  299 => [
195  'header' => '[Translate to Dansk:] Regular Element #3',
196  'image' => ['[Kasper] Image translated to Dansk', '[T3BOARD] Image added in Dansk (without parent)'],
197  ],
198  ],
199  ],
200  [
201  'fallbackType' => 'strict',
202  'visibleRecords' => [
203  297 => [
204  'header' => '[Translate to Dansk:] Regular Element #1',
205  'image' => [],
206  'categories' => ['[Translate to Dansk:] Category 1', 'Category 4'],
207  ],
208  299 => [
209  'header' => '[Translate to Dansk:] Regular Element #3',
210  'image' => ['[Kasper] Image translated to Dansk', '[T3BOARD] Image added in Dansk (without parent)'],
211  ],
212  ],
213  ],
214  ];
215  }
216 
224  public function ‪renderingOfDanishLanguage(string $fallbackType, array $visibleRecords): void
225  {
227  'test',
228  $this->‪buildSiteConfiguration(1, 'https://website.local/'),
229  [
230  $this->‪buildDefaultLanguageConfiguration('EN', '/en/'),
231  $this->‪buildLanguageConfiguration('DK', '/dk/', [], $fallbackType),
232  ],
233  $this->‪buildErrorHandlingConfiguration('Fluid', [404]),
234  );
235 
236  $response = $this->executeFrontendSubRequest(
237  new InternalRequest('https://website.local/dk/?id=' . static::VALUE_PageId)
238  );
239  $responseStructure = ResponseContent::fromString((string)$response->getBody());
240  $responseSections = $responseStructure->getSection('Extbase:list()');
241  $visibleHeaders = array_map(static function ($element) {
242  return $element['header'];
243  }, $visibleRecords);
244 
245  self::assertThat(
246  $responseSections,
248  ->setTable(self::TABLE_Content)
249  ->setField('header')
250  ->setValues(...$visibleHeaders)
251  );
252  self::assertThat(
253  $responseSections,
255  ->setTable(self::TABLE_Content)
256  ->setField('header')
257  ->setValues(...$this->‪getNonVisibleHeaders($visibleHeaders))
258  );
259 
260  foreach ($visibleRecords as $ttContentUid => $properties) {
261  $visibleFileTitles = $properties['image'];
262  if (!empty($visibleFileTitles)) {
263  self::assertThat($responseSections, $this->‪getRequestSectionStructureHasRecordConstraint()
264  ->setRecordIdentifier(self::TABLE_Content . ':' . $ttContentUid)->setRecordField('image')
265  ->setTable('sys_file_reference')->setField('title')->setValues(...$visibleFileTitles));
266  }
267  self::assertThat($responseSections, $this->‪getRequestSectionStructureDoesNotHaveRecordConstraint()
268  ->setRecordIdentifier(self::TABLE_Content . ':' . $ttContentUid)->setRecordField('image')
269  ->setTable('sys_file_reference')->setField('title')->setValues(...$this->‪getNonVisibleFileTitles($visibleFileTitles)));
270 
271  $visibleCategoryTitles = $properties['categories'] ?? [];
272  if (!empty($visibleCategoryTitles)) {
273  self::assertThat($responseSections, $this->‪getRequestSectionStructureHasRecordConstraint()
274  ->setRecordIdentifier(self::TABLE_Content . ':' . $ttContentUid)->setRecordField('categories')
275  ->setTable('sys_category')->setField('title')->setValues(...$visibleCategoryTitles));
276  }
277  self::assertThat($responseSections, $this->‪getRequestSectionStructureDoesNotHaveRecordConstraint()
278  ->setRecordIdentifier(self::TABLE_Content . ':' . $ttContentUid)->setRecordField('categories')
279  ->setTable('sys_category')->setField('title')->setValues(...$this->‪getNonVisibleCategoryTitles($visibleCategoryTitles)));
280  }
281  }
282 
283  public function ‪contentOnNonTranslatedPageDataProvider(): array
284  {
285  return [
286  [
287  'fallbackType' => 'free',
288  'fallbackChain' => ['EN'],
289  'visibleRecords' => [
290  297 => [
291  'header' => 'Regular Element #1',
292  'image' => ['T3BOARD'],
293  ],
294  298 => [
295  'header' => 'Regular Element #2',
296  'image' => ['Kasper2'],
297  ],
298  299 => [
299  'header' => 'Regular Element #3',
300  'image' => ['Kasper'],
301  ],
302  ],
303  ],
304  [
305  'fallbackType' => 'free',
306  'fallbackChain' => ['DK', 'EN'],
307  'visibleRecords' => [
308  300 => [
309  'header' => '[Translate to Dansk:] Regular Element #3',
310  'image' => ['[Kasper] Image translated to Dansk', '[T3BOARD] Image added in Dansk (without parent)'],
311  ],
312  301 => [
313  'header' => '[Translate to Dansk:] Regular Element #1',
314  'image' => [],
315  ],
316  303 => [
317  'header' => '[DK] Without default language',
318  'image' => ['[T3BOARD] Image added to DK element without default language'],
319  ],
320  308 => [
321  'header' => '[DK] UnHidden Element #4',
322  'image' => [],
323  ],
324  ],
325  ],
326  [
327  'fallbackType' => 'free',
328  'fallbackChain' => [],
329  'visibleRecords' => [],
330  'statusCode' => 404,
331  ],
332  // falling back to default language
333  [
334  'fallbackType' => 'fallback',
335  'fallbackChain' => ['EN'],
336  'visibleRecords' => [
337  297 => [
338  'header' => 'Regular Element #1',
339  'image' => ['T3BOARD'],
340  ],
341  298 => [
342  'header' => 'Regular Element #2',
343  'image' => ['Kasper2'],
344  ],
345  299 => [
346  'header' => 'Regular Element #3',
347  'image' => ['Kasper'],
348  ],
349  ],
350  ],
351  // danish elements are shown because of the fallback chain 1,0 - first danish, then default language
352  // note that '[DK] Without default language' is NOT shown - due to overlays (fetch default language and overlay it with translations)
353  [
354  'fallbackType' => 'fallback',
355  'fallbackChain' => ['DK', 'EN'],
356  'visibleRecords' => [
357  297 => [
358  'header' => '[Translate to Dansk:] Regular Element #1',
359  'image' => [],
360  ],
361  298 => [
362  'header' => 'Regular Element #2',
363  'image' => ['Kasper2'],
364  ],
365  299 => [
366  'header' => '[Translate to Dansk:] Regular Element #3',
367  'image' => ['[Kasper] Image translated to Dansk', '[T3BOARD] Image added in Dansk (without parent)'],
368  ],
369  ],
370  ],
371  [
372  'fallbackType' => 'fallback',
373  'fallbackChain' => [],
374  'visibleRecords' => [],
375  'statusCode' => 404,
376  ],
377  [
378  'fallbackType' => 'fallback',
379  'fallbackChain' => ['DK', 'EN'],
380  'visibleRecords' => [
381  297 => [
382  'header' => '[Translate to Dansk:] Regular Element #1',
383  'image' => [],
384  ],
385  298 => [
386  'header' => 'Regular Element #2',
387  'image' => ['Kasper2'],
388  ],
389  299 => [
390  'header' => '[Translate to Dansk:] Regular Element #3',
391  'image' => ['[Kasper] Image translated to Dansk', '[T3BOARD] Image added in Dansk (without parent)'],
392  ],
393  ],
394  ],
395  [
396  'fallbackType' => 'strict',
397  'fallbackChain' => ['EN'],
398  'visibleRecords' => [
399  297 => [
400  'header' => 'Regular Element #1',
401  'image' => ['T3BOARD'],
402  ],
403  298 => [
404  'header' => 'Regular Element #2',
405  'image' => ['Kasper2'],
406  ],
407  299 => [
408  'header' => 'Regular Element #3',
409  'image' => ['Kasper'],
410  ],
411  ],
412  ],
413  [
414  'fallbackType' => 'strict',
415  'fallbackChain' => ['DK', 'EN'],
416  'visibleRecords' => [
417  297 => [
418  'header' => '[Translate to Dansk:] Regular Element #1',
419  'image' => [],
420  ],
421  299 => [
422  'header' => '[Translate to Dansk:] Regular Element #3',
423  'image' => ['[Kasper] Image translated to Dansk', '[T3BOARD] Image added in Dansk (without parent)'],
424  ],
425  ],
426  ],
427  [
428  'fallbackType' => 'strict',
429  'fallbackChain' => [],
430  'visibleRecords' => [],
431  'statusCode' => 404,
432  ],
433  ];
434  }
435 
447  public function ‪contentOnNonTranslatedPageGerman(string $fallbackType, array $fallbackChain, array $visibleRecords, int $statusCode = 200): void
448  {
450  'main',
451  $this->‪buildSiteConfiguration(1, 'https://website.local/'),
452  [
453  $this->‪buildDefaultLanguageConfiguration('EN', '/en/'),
454  $this->‪buildLanguageConfiguration('DK', '/dk/'),
455  $this->‪buildLanguageConfiguration('DE', '/de/', $fallbackChain, $fallbackType),
456  ],
457  $this->‪buildErrorHandlingConfiguration('Fluid', [404]),
458  );
459 
460  $response = $this->executeFrontendSubRequest(
461  new InternalRequest('https://website.local/de/?id=' . static::VALUE_PageId)
462  );
463 
464  if ($statusCode === 200) {
465  $visibleHeaders = array_column($visibleRecords, 'header');
466  $responseStructure = ResponseContent::fromString((string)$response->getBody());
467  $responseSections = $responseStructure->getSection('Extbase:list()');
468  self::assertThat(
469  $responseSections,
471  ->setTable(self::TABLE_Content)
472  ->setField('header')
473  ->setValues(...$visibleHeaders)
474  );
475  self::assertThat(
476  $responseSections,
478  ->setTable(self::TABLE_Content)
479  ->setField('header')
480  ->setValues(...$this->‪getNonVisibleHeaders($visibleHeaders))
481  );
482 
483  foreach ($visibleRecords as $ttContentUid => $properties) {
484  $visibleFileTitles = $properties['image'];
485  if (!empty($visibleFileTitles)) {
486  self::assertThat($responseSections, $this->‪getRequestSectionStructureHasRecordConstraint()
487  ->setRecordIdentifier(self::TABLE_Content . ':' . $ttContentUid)->setRecordField('image')
488  ->setTable('sys_file_reference')->setField('title')->setValues(...$visibleFileTitles));
489  }
490  self::assertThat($responseSections, $this->‪getRequestSectionStructureDoesNotHaveRecordConstraint()
491  ->setRecordIdentifier(self::TABLE_Content . ':' . $ttContentUid)->setRecordField('image')
492  ->setTable('sys_file_reference')->setField('title')->setValues(...$this->‪getNonVisibleFileTitles($visibleFileTitles)));
493  }
494  }
495  self::assertEquals($statusCode, $response->getStatusCode());
496  }
497 
498  public function ‪contentOnPartiallyTranslatedPageDataProvider(): array
499  {
500  // Expected behaviour:
501  // Setting sys_language_mode to different values doesn't influence the result as the requested page is translated to Polish,
502  // Page title is always [PL]Page, and both sys_language_content and sys_language_uid are always 3
503  return [
504  [
505  'fallbackType' => 'free',
506  'fallbackChain' => [],
507  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1', '[PL] Without default language'],
508  ],
509  [
510  'fallbackType' => 'free',
511  'fallbackChain' => ['EN'],
512  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1', '[PL] Without default language'],
513  ],
514  [
515  'fallbackType' => 'free',
516  'fallbackChain' => ['DK', 'EN'],
517  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1', '[PL] Without default language'],
518  ],
519  [
520  'fallbackType' => 'fallback',
521  'fallbackChain' => ['EN'],
522  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1', 'Regular Element #2', 'Regular Element #3'],
523  ],
524  // Expected behaviour:
525  // Not translated element #2 is shown
526  [
527  'fallbackType' => 'fallback',
528  'fallbackChain' => ['EN'],
529  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1', 'Regular Element #2', 'Regular Element #3'],
530  ],
531  // Expected behaviour:
532  // Element #3 is not translated in PL and it is translated in DK. It's not shown as fallback chain is not related to single CE level
533  // but on page level - and this page is translated to Polish, so no fallback is happening
534  [
535  'fallbackType' => 'fallback',
536  'fallbackChain' => ['DK', 'EN'],
537  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1', 'Regular Element #2', 'Regular Element #3'],
538  ],
539  // Expected behaviour:
540  // Non translated default language elements are not shown, because of strict mode
541  [
542  'fallbackType' => 'strict',
543  'fallbackChain' => [],
544  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1'],
545  ],
546  [
547  'fallbackType' => 'strict',
548  'fallbackChain' => ['EN'],
549  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1'],
550  ],
551  [
552  'fallbackType' => 'strict',
553  'fallbackChain' => ['DK', 'EN'],
554  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1'],
555  ],
556  ];
557  }
558 
569  public function ‪contentOnPartiallyTranslatedPage(string $fallbackType, array $fallbackChain, array $visibleHeaders): void
570  {
572  'test',
573  $this->‪buildSiteConfiguration(1, 'https://website.local/'),
574  [
575  $this->‪buildDefaultLanguageConfiguration('EN', '/en/'),
576  $this->‪buildLanguageConfiguration('DK', '/dk/'),
577  $this->‪buildLanguageConfiguration('PL', '/pl/', $fallbackChain, $fallbackType),
578  ],
579  $this->‪buildErrorHandlingConfiguration('Fluid', [404]),
580  );
581  $response = $this->executeFrontendSubRequest(
582  new InternalRequest('https://website.local/pl/?id=' . static::VALUE_PageId)
583  );
584  $responseStructure = ResponseContent::fromString((string)$response->getBody());
585  $responseSections = $responseStructure->getSections('Extbase:list()');
586 
587  self::assertEquals(200, $response->getStatusCode());
588 
589  self::assertThat(
590  $responseSections,
592  ->setTable(self::TABLE_Content)
593  ->setField('header')
594  ->setValues(...$visibleHeaders)
595  );
596  self::assertThat(
597  $responseSections,
599  ->setTable(self::TABLE_Content)
600  ->setField('header')
601  ->setValues(...$this->‪getNonVisibleHeaders($visibleHeaders))
602  );
603  }
604 
611  protected function ‪getNonVisibleHeaders(array $visibleHeaders): array
612  {
613  $allElements = [
614  'Regular Element #1',
615  'Regular Element #2',
616  'Regular Element #3',
617  'Hidden Element #4',
618  '[Translate to Dansk:] Regular Element #1',
619  '[Translate to Dansk:] Regular Element #3',
620  '[DK] Without default language',
621  '[DK] UnHidden Element #4',
622  '[DE] Without default language',
623  '[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1',
624  '[Translate to Polski:] Regular Element #1',
625  '[PL] Without default language',
626  '[PL] Hidden Regular Element #2',
627  ];
628  return array_diff($allElements, $visibleHeaders);
629  }
630 
637  protected function ‪getNonVisibleFileTitles(array $visibleTitles): array
638  {
639  $allElements = [
640  'T3BOARD',
641  'Kasper',
642  '[Kasper] Image translated to Dansk',
643  '[T3BOARD] Image added in Dansk (without parent)',
644  '[T3BOARD] Image added to DK element without default language',
645  '[T3BOARD] image translated to DE from DK',
646  'Kasper2',
647  ];
648  return array_diff($allElements, $visibleTitles);
649  }
650 
657  protected function ‪getNonVisibleCategoryTitles(array $visibleTitles): array
658  {
659  $allElements = [
660  'Category 1',
661  '[Translate to Dansk:] Category 1',
662  'Category 3 - not translated',
663  'Category 4',
664  ];
665  return array_diff($allElements, $visibleTitles);
666  }
667 }
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\LANGUAGE_PRESETS
‪const LANGUAGE_PRESETS
Definition: TranslatedSiteContentTest.php:52
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\TABLE_Pages
‪const TABLE_Pages
Definition: TranslatedSiteContentTest.php:37
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\buildErrorHandlingConfiguration
‪array buildErrorHandlingConfiguration(string $handler, array $codes)
Definition: SiteBasedTestTrait.php:186
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\getRequestSectionHasRecordConstraint
‪HasRecordConstraint getRequestSectionHasRecordConstraint()
Definition: AbstractDataHandlerActionTestCase.php:245
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\getRequestSectionStructureHasRecordConstraint
‪StructureHasRecordConstraint getRequestSectionStructureHasRecordConstraint()
Definition: AbstractDataHandlerActionTestCase.php:261
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\$pathsToLinkInTestInstance
‪$pathsToLinkInTestInstance
Definition: TranslatedSiteContentTest.php:45
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait
Definition: SiteBasedTestTrait.php:36
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\buildLanguageConfiguration
‪array buildLanguageConfiguration(string $identifier, string $base, array $fallbackIdentifiers=[], string $fallbackType=null)
Definition: SiteBasedTestTrait.php:144
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\getNonVisibleHeaders
‪array getNonVisibleHeaders(array $visibleHeaders)
Definition: TranslatedSiteContentTest.php:609
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\$testExtensionsToLoad
‪$testExtensionsToLoad
Definition: TranslatedSiteContentTest.php:39
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\writeSiteConfiguration
‪writeSiteConfiguration(string $identifier, array $site=[], array $languages=[], array $errorHandling=[])
Definition: SiteBasedTestTrait.php:58
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\getNonVisibleCategoryTitles
‪array getNonVisibleCategoryTitles(array $visibleTitles)
Definition: TranslatedSiteContentTest.php:655
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\danishDataProvider
‪array danishDataProvider()
Definition: TranslatedSiteContentTest.php:152
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\contentOnNonTranslatedPageDataProvider
‪contentOnNonTranslatedPageDataProvider()
Definition: TranslatedSiteContentTest.php:281
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\getRequestSectionStructureDoesNotHaveRecordConstraint
‪StructureDoesNotHaveRecordConstraint getRequestSectionStructureDoesNotHaveRecordConstraint()
Definition: AbstractDataHandlerActionTestCase.php:269
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\$contentRepository
‪TtContentRepository $contentRepository
Definition: TranslatedSiteContentTest.php:43
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase
Definition: AbstractDataHandlerActionTestCase.php:41
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\VALUE_PageId
‪const VALUE_PageId
Definition: TranslatedSiteContentTest.php:35
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\onlyEnglishContentIsRenderedForDefaultLanguage
‪onlyEnglishContentIsRenderedForDefaultLanguage()
Definition: TranslatedSiteContentTest.php:85
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\buildDefaultLanguageConfiguration
‪array buildDefaultLanguageConfiguration(string $identifier, string $base)
Definition: SiteBasedTestTrait.php:126
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\TABLE_Content
‪const TABLE_Content
Definition: TranslatedSiteContentTest.php:36
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\contentOnPartiallyTranslatedPageDataProvider
‪contentOnPartiallyTranslatedPageDataProvider()
Definition: TranslatedSiteContentTest.php:496
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\renderingOfDanishLanguage
‪renderingOfDanishLanguage(string $fallbackType, array $visibleRecords)
Definition: TranslatedSiteContentTest.php:222
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence
Definition: AddTest.php:18
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\getRequestSectionDoesNotHaveRecordConstraint
‪DoesNotHaveRecordConstraint getRequestSectionDoesNotHaveRecordConstraint()
Definition: AbstractDataHandlerActionTestCase.php:253
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\tearDown
‪tearDown()
Definition: TranslatedSiteContentTest.php:73
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\contentOnPartiallyTranslatedPage
‪contentOnPartiallyTranslatedPage(string $fallbackType, array $fallbackChain, array $visibleHeaders)
Definition: TranslatedSiteContentTest.php:567
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\getNonVisibleFileTitles
‪array getNonVisibleFileTitles(array $visibleTitles)
Definition: TranslatedSiteContentTest.php:635
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest
Definition: TranslatedSiteContentTest.php:33
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\buildSiteConfiguration
‪array buildSiteConfiguration(int $rootPageId, string $base='')
Definition: SiteBasedTestTrait.php:111
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\setUp
‪setUp()
Definition: TranslatedSiteContentTest.php:59
‪ExtbaseTeam\BlogExample\Domain\Repository\TtContentRepository
Definition: TtContentRepository.php:25
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\contentOnNonTranslatedPageGerman
‪contentOnNonTranslatedPageGerman(string $fallbackType, array $fallbackChain, array $visibleRecords, int $statusCode=200)
Definition: TranslatedSiteContentTest.php:445