‪TYPO3CMS  10.4
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 
26 use TYPO3\TestingFramework\Core\Functional\Framework\Frontend\InternalRequest;
27 use TYPO3\TestingFramework\Core\Functional\Framework\Frontend\ResponseContent;
28 
36 {
38 
39  protected const ‪VALUE_PageId = 89;
40  protected const ‪TABLE_Content = 'tt_content';
41  protected const ‪TABLE_Pages = 'pages';
42 
46  protected ‪$scenarioDataSetDirectory = 'typo3/sysext/frontend/Tests/Functional/Rendering/DataSet/';
47 
51  protected ‪$testExtensionsToLoad = ['typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example'];
52 
56  protected ‪$coreExtensionsToLoad = ['extbase', 'fluid'];
57 
61  protected ‪$objectManager;
62 
66  protected ‪$contentRepository;
67 
75 
80  'typo3/sysext/core/Tests/Functional/Fixtures/Frontend/AdditionalConfiguration.php' => 'typo3conf/AdditionalConfiguration.php',
81  'typo3/sysext/frontend/Tests/Functional/Fixtures/Images' => 'fileadmin/user_upload'
82  ];
83 
87  protected const ‪LANGUAGE_PRESETS = [
88  'EN' => ['id' => 0, 'title' => 'English', 'locale' => 'en_US.UTF8'],
89  'DK' => ['id' => 1, 'title' => 'Dansk', 'locale' => 'dk_DA.UTF8'],
90  'DE' => ['id' => 2, 'title' => 'Deutsch', 'locale' => 'de_DE.UTF8'],
91  'PL' => ['id' => 3, 'title' => 'Polski', 'locale' => 'pl_PL.UTF8'],
92  ];
93 
94  protected function ‪setUp(): void
95  {
96  parent::setUp();
97  $this->‪importScenarioDataSet('LiveDefaultPages');
98  $this->‪importScenarioDataSet('LiveDefaultElements');
99 
100  $this->objectManager = GeneralUtility::makeInstance(ObjectManager::class);
101  $this->contentRepository = $this->objectManager->get(TtContentRepository::class);
102  $this->setUpFrontendRootPage(1, [
103  'typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TypoScript/setup.typoscript',
104  'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/Frontend/ContentJsonRenderer.typoscript'
105  ]);
106  }
107 
108  protected function ‪tearDown(): void
109  {
110  unset($this->objectManager, $this->contentRepository);
111  parent::tearDown();
112  }
113 
121  {
123  'test',
124  $this->‪buildSiteConfiguration(1, 'https://website.local/'),
125  [
126  $this->‪buildDefaultLanguageConfiguration('EN', '/en/')
127  ],
128  [
129  $this->‪buildErrorHandlingConfiguration('Fluid', [404])
130  ]
131  );
132 
133  $response = $this->executeFrontendRequest(
134  new InternalRequest('https://website.local/en/?id=' . static::VALUE_PageId)
135  );
136  $responseStructure = ResponseContent::fromString((string)$response->getBody());
137  $responseSections = $responseStructure->getSection('Extbase:list()');
138  $visibleHeaders = ['Regular Element #1', 'Regular Element #2', 'Regular Element #3'];
139  self::assertThat(
140  $responseSections,
142  ->setTable(self::TABLE_Content)
143  ->setField('header')
144  ->setValues(...$visibleHeaders)
145  );
146  self::assertThat(
147  $responseSections,
149  ->setTable(self::TABLE_Content)
150  ->setField('header')
151  ->setValues(...$this->‪getNonVisibleHeaders($visibleHeaders))
152  );
153 
154  // assert FAL relations
155  $visibleFiles = ['T3BOARD'];
156  self::assertThat($responseSections, $this->‪getRequestSectionStructureHasRecordConstraint()
157  ->setRecordIdentifier(self::TABLE_Content . ':297')->setRecordField('image')
158  ->setTable('sys_file_reference')->setField('title')->setValues(...$visibleFiles));
159 
160  self::assertThat($responseSections, $this->‪getRequestSectionStructureDoesNotHaveRecordConstraint()
161  ->setRecordIdentifier(self::TABLE_Content . ':297')->setRecordField('image')
162  ->setTable('sys_file_reference')->setField('title')->setValues(...$this->‪getNonVisibleFileTitles($visibleFiles)));
163 
164  $visibleFiles = ['Kasper2'];
165  self::assertThat($responseSections, $this->‪getRequestSectionStructureHasRecordConstraint()
166  ->setRecordIdentifier(self::TABLE_Content . ':298')->setRecordField('image')
167  ->setTable('sys_file_reference')->setField('title')->setValues(...$visibleFiles));
168 
169  self::assertThat($responseSections, $this->‪getRequestSectionStructureDoesNotHaveRecordConstraint()
170  ->setRecordIdentifier(self::TABLE_Content . ':298')->setRecordField('image')
171  ->setTable('sys_file_reference')->setField('title')->setValues(...$this->‪getNonVisibleFileTitles($visibleFiles)));
172 
173  // assert Categories
174  $visibleCategories = ['Category 1', 'Category 3 - not translated'];
175  self::assertThat($responseSections, $this->‪getRequestSectionStructureHasRecordConstraint()
176  ->setRecordIdentifier(self::TABLE_Content . ':297')->setRecordField('categories')
177  ->setTable('sys_category')->setField('title')->setValues(...$visibleCategories));
178 
179  self::assertThat($responseSections, $this->‪getRequestSectionStructureDoesNotHaveRecordConstraint()
180  ->setRecordIdentifier(self::TABLE_Content . ':297')->setRecordField('categories')
181  ->setTable('sys_category')->setField('title')->setValues(...$this->‪getNonVisibleCategoryTitles($visibleCategories)));
182  }
183 
189  public function ‪danishDataProvider(): array
190  {
191  // Expected behaviour:
192  // Page is translated to Danish, so changing sys_language_mode does NOT change the results
193  // Page title is always [DK]Page, and both sys_language_content and sys_language_uid are always 1
194  return [
195  [
196  'fallbackType' => 'free',
197  'visibleRecords' => [
198  300 => [
199  'header' => '[Translate to Dansk:] Regular Element #3',
200  'image' => ['[Kasper] Image translated to Dansk', '[T3BOARD] Image added in Dansk (without parent)'],
201  ],
202  301 => [
203  'header' => '[Translate to Dansk:] Regular Element #1',
204  'image' => [],
205  'categories' => ['[Translate to Dansk:] Category 1', 'Category 4'],
206  ],
207  303 => [
208  'header' => '[DK] Without default language',
209  'image' => ['[T3BOARD] Image added to DK element without default language']
210  ],
211  308 => [
212  'header' => '[DK] UnHidden Element #4',
213  'image' => []
214  ],
215  ],
216  ],
217  [
218  'fallbackType' => 'fallback',
219  'visibleRecords' => [
220  297 => [
221  'header' => '[Translate to Dansk:] Regular Element #1',
222  'image' => [],
223  'categories' => ['[Translate to Dansk:] Category 1', 'Category 4'],
224  ],
225  298 => [
226  'header' => 'Regular Element #2',
227  'image' => ['Kasper2'],
228  ],
229  299 => [
230  'header' => '[Translate to Dansk:] Regular Element #3',
231  'image' => ['[Kasper] Image translated to Dansk', '[T3BOARD] Image added in Dansk (without parent)'],
232  ],
233  ],
234  ],
235  [
236  'fallbackType' => 'strict',
237  'visibleRecords' => [
238  297 => [
239  'header' => '[Translate to Dansk:] Regular Element #1',
240  'image' => [],
241  'categories' => ['[Translate to Dansk:] Category 1', 'Category 4'],
242  ],
243  299 => [
244  'header' => '[Translate to Dansk:] Regular Element #3',
245  'image' => ['[Kasper] Image translated to Dansk', '[T3BOARD] Image added in Dansk (without parent)'],
246  ],
247  ],
248  ],
249  ];
250  }
251 
259  public function ‪renderingOfDanishLanguage(string $fallbackType, array $visibleRecords): void
260  {
262  'test',
263  $this->‪buildSiteConfiguration(1, 'https://website.local/'),
264  [
265  $this->‪buildDefaultLanguageConfiguration('EN', '/en/'),
266  $this->‪buildLanguageConfiguration('DK', '/dk/', [], $fallbackType)
267  ],
268  [
269  $this->‪buildErrorHandlingConfiguration('Fluid', [404])
270  ]
271  );
272 
273  $response = $this->executeFrontendRequest(
274  new InternalRequest('https://website.local/dk/?id=' . static::VALUE_PageId)
275  );
276  $responseStructure = ResponseContent::fromString((string)$response->getBody());
277  $responseSections = $responseStructure->getSection('Extbase:list()');
278  $visibleHeaders = array_map(function ($element) {
279  return $element['header'];
280  }, $visibleRecords);
281 
282  self::assertThat(
283  $responseSections,
285  ->setTable(self::TABLE_Content)
286  ->setField('header')
287  ->setValues(...$visibleHeaders)
288  );
289  self::assertThat(
290  $responseSections,
292  ->setTable(self::TABLE_Content)
293  ->setField('header')
294  ->setValues(...$this->‪getNonVisibleHeaders($visibleHeaders))
295  );
296 
297  foreach ($visibleRecords as $ttContentUid => $properties) {
298  $visibleFileTitles = $properties['image'];
299  if (!empty($visibleFileTitles)) {
300  self::assertThat($responseSections, $this->‪getRequestSectionStructureHasRecordConstraint()
301  ->setRecordIdentifier(self::TABLE_Content . ':' . $ttContentUid)->setRecordField('image')
302  ->setTable('sys_file_reference')->setField('title')->setValues(...$visibleFileTitles));
303  }
304  self::assertThat($responseSections, $this->‪getRequestSectionStructureDoesNotHaveRecordConstraint()
305  ->setRecordIdentifier(self::TABLE_Content . ':' . $ttContentUid)->setRecordField('image')
306  ->setTable('sys_file_reference')->setField('title')->setValues(...$this->‪getNonVisibleFileTitles($visibleFileTitles)));
307 
308  $visibleCategoryTitles = $properties['categories'] ?? [];
309  if (!empty($visibleCategoryTitles)) {
310  self::assertThat($responseSections, $this->‪getRequestSectionStructureHasRecordConstraint()
311  ->setRecordIdentifier(self::TABLE_Content . ':' . $ttContentUid)->setRecordField('categories')
312  ->setTable('sys_category')->setField('title')->setValues(...$visibleCategoryTitles));
313  }
314  self::assertThat($responseSections, $this->‪getRequestSectionStructureDoesNotHaveRecordConstraint()
315  ->setRecordIdentifier(self::TABLE_Content . ':' . $ttContentUid)->setRecordField('categories')
316  ->setTable('sys_category')->setField('title')->setValues(...$this->‪getNonVisibleCategoryTitles($visibleCategoryTitles)));
317  }
318  }
319 
320  public function ‪contentOnNonTranslatedPageDataProvider(): array
321  {
322  return [
323  [
324  'fallbackType' => 'free',
325  'fallbackChain' => ['EN'],
326  'visibleRecords' => [
327  297 => [
328  'header' => 'Regular Element #1',
329  'image' => ['T3BOARD'],
330  ],
331  298 => [
332  'header' => 'Regular Element #2',
333  'image' => ['Kasper2'],
334  ],
335  299 => [
336  'header' => 'Regular Element #3',
337  'image' => ['Kasper'],
338  ],
339  ],
340  ],
341  [
342  'fallbackType' => 'free',
343  'fallbackChain' => ['DK', 'EN'],
344  'visibleRecords' => [
345  300 => [
346  'header' => '[Translate to Dansk:] Regular Element #3',
347  'image' => ['[Kasper] Image translated to Dansk', '[T3BOARD] Image added in Dansk (without parent)'],
348  ],
349  301 => [
350  'header' => '[Translate to Dansk:] Regular Element #1',
351  'image' => [],
352  ],
353  303 => [
354  'header' => '[DK] Without default language',
355  'image' => ['[T3BOARD] Image added to DK element without default language'],
356  ],
357  308 => [
358  'header' => '[DK] UnHidden Element #4',
359  'image' => [],
360  ],
361  ],
362  ],
363  [
364  'fallbackType' => 'free',
365  'fallbackChain' => [],
366  'visibleRecords' => [],
367  'statusCode' => 404,
368  ],
369  // falling back to default language
370  [
371  'fallbackType' => 'fallback',
372  'fallbackChain' => ['EN'],
373  'visibleRecords' => [
374  297 => [
375  'header' => 'Regular Element #1',
376  'image' => ['T3BOARD'],
377  ],
378  298 => [
379  'header' => 'Regular Element #2',
380  'image' => ['Kasper2'],
381  ],
382  299 => [
383  'header' => 'Regular Element #3',
384  'image' => ['Kasper'],
385  ],
386  ],
387  ],
388  // danish elements are shown because of the fallback chain 1,0 - first danish, then default language
389  // note that '[DK] Without default language' is NOT shown - due to overlays (fetch default language and overlay it with translations)
390  [
391  'fallbackType' => 'fallback',
392  'fallbackChain' => ['DK', 'EN'],
393  'visibleRecords' => [
394  297 => [
395  'header' => '[Translate to Dansk:] Regular Element #1',
396  'image' => [],
397  ],
398  298 => [
399  'header' => 'Regular Element #2',
400  'image' => ['Kasper2'],
401  ],
402  299 => [
403  'header' => '[Translate to Dansk:] Regular Element #3',
404  'image' => ['[Kasper] Image translated to Dansk', '[T3BOARD] Image added in Dansk (without parent)'],
405  ],
406  ],
407  ],
408  [
409  'fallbackType' => 'fallback',
410  'fallbackChain' => [],
411  'visibleRecords' => [],
412  'statusCode' => 404
413  ],
414  [
415  'fallbackType' => 'fallback',
416  'fallbackChain' => ['DK', 'EN'],
417  'visibleRecords' => [
418  297 => [
419  'header' => '[Translate to Dansk:] Regular Element #1',
420  'image' => [],
421  ],
422  298 => [
423  'header' => 'Regular Element #2',
424  'image' => ['Kasper2'],
425  ],
426  299 => [
427  'header' => '[Translate to Dansk:] Regular Element #3',
428  'image' => ['[Kasper] Image translated to Dansk', '[T3BOARD] Image added in Dansk (without parent)'],
429  ],
430  ],
431  ],
432  [
433  'fallbackType' => 'strict',
434  'fallbackChain' => ['EN'],
435  'visibleRecords' => [
436  297 => [
437  'header' => 'Regular Element #1',
438  'image' => ['T3BOARD'],
439  ],
440  298 => [
441  'header' => 'Regular Element #2',
442  'image' => ['Kasper2'],
443  ],
444  299 => [
445  'header' => 'Regular Element #3',
446  'image' => ['Kasper'],
447  ],
448  ],
449  ],
450  [
451  'fallbackType' => 'strict',
452  'fallbackChain' => ['DK', 'EN'],
453  'visibleRecords' => [
454  297 => [
455  'header' => '[Translate to Dansk:] Regular Element #1',
456  'image' => [],
457  ],
458  299 => [
459  'header' => '[Translate to Dansk:] Regular Element #3',
460  'image' => ['[Kasper] Image translated to Dansk', '[T3BOARD] Image added in Dansk (without parent)'],
461  ],
462  ],
463  ],
464  [
465  'fallbackType' => 'strict',
466  'fallbackChain' => [],
467  'visibleRecords' => [],
468  'statusCode' => 404,
469  ],
470  ];
471  }
472 
484  public function ‪contentOnNonTranslatedPageGerman(string $fallbackType, array $fallbackChain, array $visibleRecords, int $statusCode = 200): void
485  {
487  'main',
488  $this->‪buildSiteConfiguration(1, 'https://website.local/'),
489  [
490  $this->‪buildDefaultLanguageConfiguration('EN', '/en/'),
491  $this->‪buildLanguageConfiguration('DK', '/dk/'),
492  $this->‪buildLanguageConfiguration('DE', '/de/', $fallbackChain, $fallbackType)
493  ],
494  [
495  $this->‪buildErrorHandlingConfiguration('Fluid', [404])
496  ]
497  );
498 
499  $response = $this->executeFrontendRequest(
500  new InternalRequest('https://website.local/de/?id=' . static::VALUE_PageId)
501  );
502 
503  if ($statusCode === 200) {
504  $visibleHeaders = array_column($visibleRecords, 'header');
505  $responseStructure = ResponseContent::fromString((string)$response->getBody());
506  $responseSections = $responseStructure->getSection('Extbase:list()');
507  self::assertThat(
508  $responseSections,
510  ->setTable(self::TABLE_Content)
511  ->setField('header')
512  ->setValues(...$visibleHeaders)
513  );
514  self::assertThat(
515  $responseSections,
517  ->setTable(self::TABLE_Content)
518  ->setField('header')
519  ->setValues(...$this->‪getNonVisibleHeaders($visibleHeaders))
520  );
521 
522  foreach ($visibleRecords as $ttContentUid => $properties) {
523  $visibleFileTitles = $properties['image'];
524  if (!empty($visibleFileTitles)) {
525  self::assertThat($responseSections, $this->‪getRequestSectionStructureHasRecordConstraint()
526  ->setRecordIdentifier(self::TABLE_Content . ':' . $ttContentUid)->setRecordField('image')
527  ->setTable('sys_file_reference')->setField('title')->setValues(...$visibleFileTitles));
528  }
529  self::assertThat($responseSections, $this->‪getRequestSectionStructureDoesNotHaveRecordConstraint()
530  ->setRecordIdentifier(self::TABLE_Content . ':' . $ttContentUid)->setRecordField('image')
531  ->setTable('sys_file_reference')->setField('title')->setValues(...$this->‪getNonVisibleFileTitles($visibleFileTitles)));
532  }
533  }
534  self::assertEquals($statusCode, $response->getStatusCode());
535  }
536 
537  public function ‪contentOnPartiallyTranslatedPageDataProvider(): array
538  {
539  // Expected behaviour:
540  // Setting sys_language_mode to different values doesn't influence the result as the requested page is translated to Polish,
541  // Page title is always [PL]Page, and both sys_language_content and sys_language_uid are always 3
542  return [
543  [
544  'fallbackType' => 'free',
545  'fallbackChain' => [],
546  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1', '[PL] Without default language'],
547  ],
548  [
549  'fallbackType' => 'free',
550  'fallbackChain' => ['EN'],
551  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1', '[PL] Without default language'],
552  ],
553  [
554  'fallbackType' => 'free',
555  'fallbackChain' => ['DK', 'EN'],
556  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1', '[PL] Without default language'],
557  ],
558  [
559  'fallbackType' => 'fallback',
560  'fallbackChain' => ['EN'],
561  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1', 'Regular Element #2', 'Regular Element #3'],
562  ],
563  // Expected behaviour:
564  // Not translated element #2 is shown
565  [
566  'fallbackType' => 'fallback',
567  'fallbackChain' => ['EN'],
568  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1', 'Regular Element #2', 'Regular Element #3'],
569  ],
570  // Expected behaviour:
571  // 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
572  // but on page level - and this page is translated to Polish, so no fallback is happening
573  [
574  'fallbackType' => 'fallback',
575  'fallbackChain' => ['DK', 'EN'],
576  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1', 'Regular Element #2', 'Regular Element #3'],
577  ],
578  // Expected behaviour:
579  // Non translated default language elements are not shown, because of strict mode
580  [
581  'fallbackType' => 'strict',
582  'fallbackChain' => [],
583  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1'],
584  ],
585  [
586  'fallbackType' => 'strict',
587  'fallbackChain' => ['EN'],
588  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1'],
589  ],
590  [
591  'fallbackType' => 'strict',
592  'fallbackChain' => ['DK', 'EN'],
593  'visibleRecordHeaders' => ['[Translate to Polski:] Regular Element #1'],
594  ],
595  ];
596  }
597 
608  public function ‪contentOnPartiallyTranslatedPage(string $fallbackType, array $fallbackChain, array $visibleHeaders): void
609  {
611  'test',
612  $this->‪buildSiteConfiguration(1, 'https://website.local/'),
613  [
614  $this->‪buildDefaultLanguageConfiguration('EN', '/en/'),
615  $this->‪buildLanguageConfiguration('DK', '/dk/'),
616  $this->‪buildLanguageConfiguration('PL', '/pl/', $fallbackChain, $fallbackType)
617  ],
618  [
619  $this->‪buildErrorHandlingConfiguration('Fluid', [404])
620  ]
621  );
622  $response = $this->executeFrontendRequest(
623  new InternalRequest('https://website.local/pl/?id=' . static::VALUE_PageId)
624  );
625  $responseStructure = ResponseContent::fromString((string)$response->getBody());
626  $responseSections = $responseStructure->getSections('Extbase:list()');
627 
628  self::assertEquals(200, $response->getStatusCode());
629 
630  self::assertThat(
631  $responseSections,
633  ->setTable(self::TABLE_Content)
634  ->setField('header')
635  ->setValues(...$visibleHeaders)
636  );
637  self::assertThat(
638  $responseSections,
640  ->setTable(self::TABLE_Content)
641  ->setField('header')
642  ->setValues(...$this->‪getNonVisibleHeaders($visibleHeaders))
643  );
644  }
645 
652  protected function ‪getNonVisibleHeaders(array $visibleHeaders): array
653  {
654  $allElements = [
655  'Regular Element #1',
656  'Regular Element #2',
657  'Regular Element #3',
658  'Hidden Element #4',
659  '[Translate to Dansk:] Regular Element #1',
660  '[Translate to Dansk:] Regular Element #3',
661  '[DK] Without default language',
662  '[DK] UnHidden Element #4',
663  '[DE] Without default language',
664  '[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1',
665  '[Translate to Polski:] Regular Element #1',
666  '[PL] Without default language',
667  '[PL] Hidden Regular Element #2'
668  ];
669  return array_diff($allElements, $visibleHeaders);
670  }
671 
678  protected function ‪getNonVisibleFileTitles(array $visibleTitles): array
679  {
680  $allElements = [
681  'T3BOARD',
682  'Kasper',
683  '[Kasper] Image translated to Dansk',
684  '[T3BOARD] Image added in Dansk (without parent)',
685  '[T3BOARD] Image added to DK element without default language',
686  '[T3BOARD] image translated to DE from DK',
687  'Kasper2'
688  ];
689  return array_diff($allElements, $visibleTitles);
690  }
691 
698  protected function ‪getNonVisibleCategoryTitles(array $visibleTitles): array
699  {
700  $allElements = [
701  'Category 1',
702  '[Translate to Dansk:] Category 1',
703  'Category 3 - not translated',
704  'Category 4',
705  ];
706  return array_diff($allElements, $visibleTitles);
707  }
708 }
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\LANGUAGE_PRESETS
‪const LANGUAGE_PRESETS
Definition: TranslatedSiteContentTest.php:79
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\TABLE_Pages
‪const TABLE_Pages
Definition: TranslatedSiteContentTest.php:40
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\buildErrorHandlingConfiguration
‪array buildErrorHandlingConfiguration(string $handler, array $codes)
Definition: SiteBasedTestTrait.php:184
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\getRequestSectionHasRecordConstraint
‪HasRecordConstraint getRequestSectionHasRecordConstraint()
Definition: AbstractDataHandlerActionTestCase.php:289
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\$expectedErrorLogEntries
‪int null $expectedErrorLogEntries
Definition: TranslatedSiteContentTest.php:67
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\getRequestSectionStructureHasRecordConstraint
‪StructureHasRecordConstraint getRequestSectionStructureHasRecordConstraint()
Definition: AbstractDataHandlerActionTestCase.php:305
‪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:142
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\getNonVisibleHeaders
‪array getNonVisibleHeaders(array $visibleHeaders)
Definition: TranslatedSiteContentTest.php:644
‪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:690
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\$scenarioDataSetDirectory
‪string $scenarioDataSetDirectory
Definition: TranslatedSiteContentTest.php:44
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\danishDataProvider
‪array danishDataProvider()
Definition: TranslatedSiteContentTest.php:181
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\contentOnNonTranslatedPageDataProvider
‪contentOnNonTranslatedPageDataProvider()
Definition: TranslatedSiteContentTest.php:312
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\getRequestSectionStructureDoesNotHaveRecordConstraint
‪StructureDoesNotHaveRecordConstraint getRequestSectionStructureDoesNotHaveRecordConstraint()
Definition: AbstractDataHandlerActionTestCase.php:313
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\$contentRepository
‪TtContentRepository $contentRepository
Definition: TranslatedSiteContentTest.php:60
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase
Definition: AbstractDataHandlerActionTestCase.php:37
‪TYPO3\CMS\Extbase\Object\ObjectManagerInterface
Definition: ObjectManagerInterface.php:26
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\VALUE_PageId
‪const VALUE_PageId
Definition: TranslatedSiteContentTest.php:38
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\onlyEnglishContentIsRenderedForDefaultLanguage
‪onlyEnglishContentIsRenderedForDefaultLanguage()
Definition: TranslatedSiteContentTest.php:112
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\buildDefaultLanguageConfiguration
‪array buildDefaultLanguageConfiguration(string $identifier, string $base)
Definition: SiteBasedTestTrait.php:124
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\$coreExtensionsToLoad
‪array $coreExtensionsToLoad
Definition: TranslatedSiteContentTest.php:52
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\TABLE_Content
‪const TABLE_Content
Definition: TranslatedSiteContentTest.php:39
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\contentOnPartiallyTranslatedPageDataProvider
‪contentOnPartiallyTranslatedPageDataProvider()
Definition: TranslatedSiteContentTest.php:529
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\$pathsToLinkInTestInstance
‪array $pathsToLinkInTestInstance
Definition: TranslatedSiteContentTest.php:71
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\renderingOfDanishLanguage
‪renderingOfDanishLanguage(string $fallbackType, array $visibleRecords)
Definition: TranslatedSiteContentTest.php:251
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence
Definition: AddTest.php:16
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\$objectManager
‪ObjectManagerInterface $objectManager
Definition: TranslatedSiteContentTest.php:56
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\getRequestSectionDoesNotHaveRecordConstraint
‪DoesNotHaveRecordConstraint getRequestSectionDoesNotHaveRecordConstraint()
Definition: AbstractDataHandlerActionTestCase.php:297
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\tearDown
‪tearDown()
Definition: TranslatedSiteContentTest.php:100
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\contentOnPartiallyTranslatedPage
‪contentOnPartiallyTranslatedPage(string $fallbackType, array $fallbackChain, array $visibleHeaders)
Definition: TranslatedSiteContentTest.php:600
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\getNonVisibleFileTitles
‪array getNonVisibleFileTitles(array $visibleTitles)
Definition: TranslatedSiteContentTest.php:670
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest
Definition: TranslatedSiteContentTest.php:36
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\buildSiteConfiguration
‪array buildSiteConfiguration(int $rootPageId, string $base='')
Definition: SiteBasedTestTrait.php:109
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\setUp
‪setUp()
Definition: TranslatedSiteContentTest.php:86
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:46
‪ExtbaseTeam\BlogExample\Domain\Repository\TtContentRepository
Definition: TtContentRepository.php:26
‪TYPO3\CMS\Extbase\Object\ObjectManager
Definition: ObjectManager.php:28
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\$testExtensionsToLoad
‪array $testExtensionsToLoad
Definition: TranslatedSiteContentTest.php:48
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslatedSiteContentTest\contentOnNonTranslatedPageGerman
‪contentOnNonTranslatedPageGerman(string $fallbackType, array $fallbackChain, array $visibleRecords, int $statusCode=200)
Definition: TranslatedSiteContentTest.php:476
‪TYPO3\CMS\Core\Tests\Functional\DataHandling\AbstractDataHandlerActionTestCase\importScenarioDataSet
‪importScenarioDataSet($dataSetName)
Definition: AbstractDataHandlerActionTestCase.php:201