‪TYPO3CMS  ‪main
PageRepositoryTest.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 
32 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
33 
34 final class ‪PageRepositoryTest extends FunctionalTestCase
35 {
36  protected function ‪setUp(): void
37  {
38  parent::setUp();
39  $this->importCSVDataSet(__DIR__ . '/../../Fixtures/pages.csv');
40  }
41 
45  public function ‪getMenuSingleUidRoot(): void
46  {
47  $subject = new ‪PageRepository();
48  $rows = $subject->getMenu(1);
49  self::assertArrayHasKey(2, $rows);
50  self::assertArrayHasKey(3, $rows);
51  self::assertArrayHasKey(4, $rows);
52  self::assertCount(3, $rows);
53  }
54 
58  public function ‪getMenuSingleUidSubpage(): void
59  {
60  $subject = new ‪PageRepository();
61  $rows = $subject->getMenu(2);
62  self::assertArrayHasKey(5, $rows);
63  self::assertArrayHasKey(7, $rows);
64  self::assertCount(2, $rows);
65  }
66 
70  public function ‪getMenuMultipleUid(): void
71  {
72  $subject = new ‪PageRepository();
73  $rows = $subject->getMenu([2, 3]);
74  self::assertArrayHasKey(5, $rows);
75  self::assertArrayHasKey(7, $rows);
76  self::assertArrayHasKey(8, $rows);
77  self::assertArrayHasKey(9, $rows);
78  self::assertCount(4, $rows);
79  }
80 
84  public function ‪getMenuPageOverlay(): void
85  {
86  $subject = new ‪PageRepository(new ‪Context([
87  'language' => new ‪LanguageAspect(1),
88  ]));
89 
90  $rows = $subject->getMenu([2, 3]);
91  self::assertEquals('Attrappe 1-2-5', $rows[5]['title']);
92  self::assertEquals('Dummy 1-2-7', $rows[7]['title']);
93  self::assertEquals('Dummy 1-3-8', $rows[8]['title']);
94  self::assertEquals('Attrappe 1-3-9', $rows[9]['title']);
95  self::assertCount(4, $rows);
96  }
97 
101  public function ‪getMenuWithMountPoint(): void
102  {
103  $subject = new ‪PageRepository();
104  $rows = $subject->getMenu([1000]);
105  self::assertEquals('root default language', $rows[1003]['title']);
106  self::assertEquals('1001', $rows[1003]['uid']);
107  self::assertEquals('1001-1003', $rows[1003]['_MP_PARAM']);
108  self::assertCount(2, $rows);
109  }
110 
114  public function ‪getMenuPageOverlayWithMountPoint(): void
115  {
116  $subject = new ‪PageRepository(new ‪Context([
117  'language' => new ‪LanguageAspect(1),
118  ]));
119  $rows = $subject->getMenu([1000]);
120  self::assertEquals('root translation', $rows[1003]['title']);
121  self::assertEquals('1001', $rows[1003]['uid']);
122  self::assertEquals('1002', $rows[1003]['_PAGES_OVERLAY_UID']);
123  self::assertEquals('1001-1003', $rows[1003]['_MP_PARAM']);
124  self::assertCount(2, $rows);
125  }
126 
130  public function ‪getPageOverlayById(): void
131  {
132  $subject = new ‪PageRepository();
133  $row = $subject->getPageOverlay(1, 1);
134  $this->‪assertOverlayRow($row);
135  self::assertEquals('Wurzel 1', $row['title']);
136  self::assertEquals('901', $row['_PAGES_OVERLAY_UID']);
137  self::assertEquals(1, $row['_PAGES_OVERLAY_LANGUAGE']);
138  }
139 
144  {
145  $subject = new ‪PageRepository();
146  $row = $subject->getPageOverlay(4, 1);
147  self::assertIsArray($row);
148  self::assertCount(0, $row);
149  }
150 
154  public function ‪getPageOverlayByRow(): void
155  {
156  $subject = new ‪PageRepository();
157  $orig = $subject->getPage(1);
158  $row = $subject->getPageOverlay($orig, 1);
159  $this->‪assertOverlayRow($row);
160  self::assertEquals(1, $row['uid']);
161  self::assertEquals('Wurzel 1', $row['title']);
162  self::assertEquals('901', $row['_PAGES_OVERLAY_UID']);
163  self::assertEquals(1, $row['_PAGES_OVERLAY_LANGUAGE']);
164  }
165 
170  {
171  $subject = new ‪PageRepository();
172  $orig = $subject->getPage(4);
173  $row = $subject->getPageOverlay($orig, 1);
174  self::assertIsArray($row);
175  self::assertEquals(4, $row['uid']);
176  self::assertEquals('Dummy 1-4', $row['title']);//original title
177  }
178 
182  public function ‪getPagesOverlayByIdSingle(): void
183  {
184  $subject = new ‪PageRepository(new ‪Context([
185  'language' => new ‪LanguageAspect(1),
186  ]));
187  $rows = $subject->getPagesOverlay([1]);
188  self::assertIsArray($rows);
189  self::assertCount(1, $rows);
190  self::assertArrayHasKey(0, $rows);
191 
192  $row = $rows[0];
193  $this->‪assertOverlayRow($row);
194  self::assertEquals('Wurzel 1', $row['title']);
195  self::assertEquals('901', $row['_PAGES_OVERLAY_UID']);
196  self::assertEquals(1, $row['_PAGES_OVERLAY_LANGUAGE']);
197  }
198 
202  public function ‪getPagesOverlayByIdMultiple(): void
203  {
204  $subject = new ‪PageRepository(new ‪Context([
205  'language' => new ‪LanguageAspect(1),
206  ]));
207  $rows = $subject->getPagesOverlay([1, 5, 15]);
208  self::assertIsArray($rows);
209  self::assertCount(2, $rows);
210  self::assertArrayHasKey(0, $rows);
211  self::assertArrayHasKey(1, $rows);
212 
213  $row = $rows[0];
214  $this->‪assertOverlayRow($row);
215  self::assertEquals('Wurzel 1', $row['title']);
216  self::assertEquals('901', $row['_PAGES_OVERLAY_UID']);
217  self::assertEquals(1, $row['_PAGES_OVERLAY_LANGUAGE']);
218 
219  $row = $rows[1];
220  $this->‪assertOverlayRow($row);
221  self::assertEquals('Attrappe 1-2-5', $row['title']);
222  self::assertEquals('904', $row['_PAGES_OVERLAY_UID']);
223  self::assertEquals(1, $row['_PAGES_OVERLAY_LANGUAGE']);
224  }
225 
230  {
231  $subject = new ‪PageRepository(new ‪Context([
232  'language' => new ‪LanguageAspect(1),
233  ]));
234  $rows = $subject->getPagesOverlay([1, 4, 5, 8]);
235  self::assertIsArray($rows);
236  self::assertCount(2, $rows);
237  self::assertArrayHasKey(0, $rows);
238  self::assertArrayHasKey(2, $rows);
239 
240  $row = $rows[0];
241  $this->‪assertOverlayRow($row);
242  self::assertEquals('Wurzel 1', $row['title']);
243 
244  $row = $rows[2];
245  $this->‪assertOverlayRow($row);
246  self::assertEquals('Attrappe 1-2-5', $row['title']);
247  }
248 
252  public function ‪getPagesOverlayByRowSingle(): void
253  {
254  $subject = new ‪PageRepository();
255  $origRow = $subject->getPage(1);
256 
257  $subject = new ‪PageRepository(new ‪Context([
258  'language' => new ‪LanguageAspect(1),
259  ]));
260  $rows = $subject->getPagesOverlay([$origRow]);
261  self::assertIsArray($rows);
262  self::assertCount(1, $rows);
263  self::assertArrayHasKey(0, $rows);
264 
265  $row = $rows[0];
266  $this->‪assertOverlayRow($row);
267  self::assertEquals('Wurzel 1', $row['title']);
268  self::assertEquals('901', $row['_PAGES_OVERLAY_UID']);
269  self::assertEquals(1, $row['_PAGES_OVERLAY_LANGUAGE']);
270  self::assertEquals(new ‪Page($origRow), $row['_TRANSLATION_SOURCE']);
271  }
272 
276  public function ‪groupRestrictedPageCanBeOverlaid(): void
277  {
278  $subject = new ‪PageRepository();
279  $origRow = $subject->getPage(6, true);
280 
281  $subject = new ‪PageRepository(new ‪Context([
282  'language' => new ‪LanguageAspect(1),
283  ]));
284  $rows = $subject->getPagesOverlay([$origRow]);
285  self::assertIsArray($rows);
286  self::assertCount(1, $rows);
287  self::assertArrayHasKey(0, $rows);
288 
289  $row = $rows[0];
290  $this->‪assertOverlayRow($row);
291  self::assertEquals('Attrappe 1-2-6', $row['title']);
292  self::assertEquals('905', $row['_PAGES_OVERLAY_UID']);
293  self::assertEquals(1, $row['_PAGES_OVERLAY_LANGUAGE']);
294  }
295 
299  public function ‪getPagesOverlayByRowMultiple(): void
300  {
301  $subject = new ‪PageRepository();
302  $orig1 = $subject->getPage(1);
303  $orig2 = $subject->getPage(5);
304 
305  $subject = new ‪PageRepository(new ‪Context([
306  'language' => new ‪LanguageAspect(1),
307  ]));
308  $rows = $subject->getPagesOverlay([1 => $orig1, 5 => $orig2]);
309  self::assertIsArray($rows);
310  self::assertCount(2, $rows);
311  self::assertArrayHasKey(1, $rows);
312  self::assertArrayHasKey(5, $rows);
313 
314  $row = $rows[1];
315  $this->‪assertOverlayRow($row);
316  self::assertEquals('Wurzel 1', $row['title']);
317  self::assertEquals('901', $row['_PAGES_OVERLAY_UID']);
318  self::assertEquals(1, $row['_PAGES_OVERLAY_LANGUAGE']);
319  self::assertEquals(new ‪Page($orig1), $row['_TRANSLATION_SOURCE']);
320 
321  $row = $rows[5];
322  $this->‪assertOverlayRow($row);
323  self::assertEquals('Attrappe 1-2-5', $row['title']);
324  self::assertEquals('904', $row['_PAGES_OVERLAY_UID']);
325  self::assertEquals(1, $row['_PAGES_OVERLAY_LANGUAGE']);
326  self::assertEquals(new ‪Page($orig2), $row['_TRANSLATION_SOURCE']);
327  }
328 
333  {
334  $subject = new ‪PageRepository();
335  $orig1 = $subject->getPage(1);
336  $orig2 = $subject->getPage(7);
337  $orig3 = $subject->getPage(9);
338 
339  $subject = new ‪PageRepository(new ‪Context([
340  'language' => new ‪LanguageAspect(1),
341  ]));
342  $rows = $subject->getPagesOverlay([$orig1, $orig2, $orig3]);
343  self::assertIsArray($rows);
344  self::assertCount(3, $rows);
345  self::assertArrayHasKey(0, $rows);
346  self::assertArrayHasKey(1, $rows);
347  self::assertArrayHasKey(2, $rows);
348 
349  $row = $rows[0];
350  $this->‪assertOverlayRow($row);
351  self::assertEquals('Wurzel 1', $row['title']);
352  self::assertEquals(new ‪Page($orig1), $row['_TRANSLATION_SOURCE']);
353 
354  $row = $rows[1];
355  $this->‪assertNotOverlayRow($row);
356  self::assertEquals('Dummy 1-2-7', $row['title']);
357  self::assertFalse(isset($row['_TRANSLATION_SOURCE']));
358 
359  $row = $rows[2];
360  $this->‪assertOverlayRow($row);
361  self::assertEquals('Attrappe 1-3-9', $row['title']);
362  self::assertEquals(new ‪Page($orig3), $row['_TRANSLATION_SOURCE']);
363  }
364 
370  public function ‪isGetPageHookCalled(): void
371  {
372  // Create a hook mock object
373  $getPageHookMock = $this->createMock(PageRepositoryGetPageHookInterface::class);
374  $getPageHookMock->expects(self::atLeastOnce())->method('getPage_preProcess')
375  ->with(42, false, new ‪PageRepository());
376  $className = get_class($getPageHookMock);
377 
378  // Register hook mock object
379  GeneralUtility::addInstance($className, $getPageHookMock);
380  ‪$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_page.php']['getPage'][] = $className;
381  $subject = new ‪PageRepository();
382  $subject->getPage(42, false);
383  }
384 
386  // Tests concerning mountpoints
389 
393  {
394  $subject = new ‪PageRepository();
395  $mountPointInfo = $subject->getMountPointInfo(1003);
396  self::assertEquals('1001-1003', $mountPointInfo['MPvar']);
397  }
398 
402  public function ‪getMountPointInfoForTranslation(): void
403  {
404  $mpVar = '1001-1003';
405  $subject = new ‪PageRepository(new ‪Context([
406  'language' => new ‪LanguageAspect(1),
407  ]));
408  $mountPointInfo = $subject->getMountPointInfo(1003);
409  self::assertEquals($mpVar, $mountPointInfo['MPvar']);
410 
411  $mountPointInfo = $subject->getMountPointInfo(1004);
412  self::assertEquals($mpVar, $mountPointInfo['MPvar']);
413  }
414 
416  // Tests concerning workspaces
418 
423  {
424  // initialization
425  $wsid = 987654321;
426  // simulate calls from \TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->determineId()
427  $subject = new ‪PageRepository(new ‪Context([
428  'workspace' => new ‪WorkspaceAspect($wsid),
429  ]));
430 
431  $pageRec = $subject->getPage(11);
432 
433  self::assertEquals(11, $pageRec['uid']);
434  self::assertEquals(0, $pageRec['t3ver_oid']);
435  self::assertEquals(987654321, $pageRec['t3ver_wsid']);
436  self::assertEquals(‪VersionState::NEW_PLACEHOLDER, $pageRec['t3ver_state']);
437  }
438 
443  {
444  // initialization
445  $wsid = 987654321;
446 
447  // simulate calls from \TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->determineId()
448  $subject = new ‪PageRepository(new ‪Context([
449  'workspace' => new ‪WorkspaceAspect($wsid),
450  ]));
451 
452  $pageRec = $subject->getWorkspaceVersionOfRecord($wsid, 'pages', 11);
453 
454  self::assertEquals(11, $pageRec['uid']);
455  self::assertEquals(0, $pageRec['t3ver_oid']);
456  self::assertEquals(987654321, $pageRec['t3ver_wsid']);
457  self::assertEquals(‪VersionState::NEW_PLACEHOLDER, $pageRec['t3ver_state']);
458  }
459 
461  // Tests concerning versioning
463 
468  {
469  $table = ‪StringUtility::getUniqueId('aTable');
470  ‪$GLOBALS['TCA'][$table] = [
471  'ctrl' => [
472  'versioningWS' => true,
473  ],
474  ];
475 
476  $subject = new ‪PageRepository(new ‪Context());
477 
478  $conditions = $subject->enableFields($table);
479  $connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable($table);
480 
481  self::assertThat(
482  $conditions,
483  self::stringContains(' AND ((' . $connection->quoteIdentifier($table . '.t3ver_state') . ' <= 0) '),
484  'Versioning placeholders'
485  );
486  self::assertThat(
487  $conditions,
488  self::stringContains(' AND (((' . $connection->quoteIdentifier($table . '.t3ver_oid') . ' = 0) OR (' . $connection->quoteIdentifier($table . '.t3ver_state') . ' = 4)))'),
489  'Records with online version'
490  );
491  }
492 
497  {
498  $table = ‪StringUtility::getUniqueId('aTable');
499  ‪$GLOBALS['TCA'][$table] = [
500  'ctrl' => [
501  'versioningWS' => true,
502  ],
503  ];
504 
505  $subject = new ‪PageRepository(new ‪Context([
506  'workspace' => new ‪WorkspaceAspect(13),
507  ]));
508 
509  $conditions = $subject->enableFields($table);
510  $connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable($table);
511 
512  self::assertThat(
513  $conditions,
514  self::logicalNot(self::stringContains(' AND (' . $connection->quoteIdentifier($table . '.t3ver_state') . ' <= 0)')),
515  'No versioning placeholders'
516  );
517  self::assertThat(
518  $conditions,
519  self::stringContains(' AND (((' . $connection->quoteIdentifier($table . '.t3ver_oid') . ' = 0) OR (' . $connection->quoteIdentifier($table . '.t3ver_state') . ' = 4)))'),
520  'Records from online versions'
521  );
522  }
523 
528  {
529  $table = ‪StringUtility::getUniqueId('aTable');
530  ‪$GLOBALS['TCA'][$table] = [
531  'ctrl' => [
532  'versioningWS' => true,
533  ],
534  ];
535 
536  $subject = new ‪PageRepository(new ‪Context([
537  'workspace' => new ‪WorkspaceAspect(2),
538  ]));
539 
540  $conditions = $subject->enableFields($table);
541  $connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable($table);
542 
543  self::assertThat(
544  $conditions,
545  self::stringContains(' AND ((((' . $connection->quoteIdentifier($table . '.t3ver_wsid') . ' = 0) OR (' . $connection->quoteIdentifier($table . '.t3ver_wsid') . ' = 2)))'),
546  'No versioning placeholders'
547  );
548  }
549 
550  protected function ‪assertOverlayRow($row): void
551  {
552  self::assertIsArray($row);
553 
554  self::assertArrayHasKey('_PAGES_OVERLAY', $row);
555  self::assertArrayHasKey('_PAGES_OVERLAY_UID', $row);
556  self::assertArrayHasKey('_PAGES_OVERLAY_LANGUAGE', $row);
557 
558  self::assertTrue($row['_PAGES_OVERLAY']);
559  }
560 
561  protected function ‪assertNotOverlayRow($row): void
562  {
563  self::assertIsArray($row);
564 
565  self::assertFalse(isset($row['_PAGES_OVERLAY']));
566  self::assertFalse(isset($row['_PAGES_OVERLAY_UID']));
567  self::assertFalse(isset($row['_PAGES_OVERLAY_LANGUAGE']));
568  }
569 
573  public function ‪getPageIdsRecursiveTest(): void
574  {
575  // do not use cache_treelist
576  $user = new ‪BackendUserAuthentication();
577  $user->user = ['uid' => PHP_INT_MAX];
578  $subject = new ‪PageRepository(
579  new ‪Context([
580  'backend.user' => new ‪UserAspect($user),
581  ])
582  );
583  // empty array does not do anything
584  $result = $subject->getPageIdsRecursive([], 1);
585  self::assertEquals([], $result);
586  // pid=0 does not do anything
587  $result = $subject->getPageIdsRecursive([0], 1);
588  self::assertEquals([0], $result);
589  // depth=0 does return given ids int-casted
590  $result = $subject->getPageIdsRecursive(['1'], 0);
591  self::assertEquals([1], $result);
592  $result = $subject->getPageIdsRecursive([1], 1);
593  self::assertEquals([1, 2, 3, 4], $result);
594  $result = $subject->getPageIdsRecursive([1], 2);
595  self::assertEquals([1, 2, 5, 7, 3, 8, 9, 4, 10], $result);
596  $result = $subject->getPageIdsRecursive([1000], 99);
597  self::assertEquals([1000, 1001], $result);
598  }
599 
603  public function ‪getDescendantPageIdsRecursiveTest(): void
604  {
605  // do not use cache_treelist
606  $user = new ‪BackendUserAuthentication();
607  $user->user = ['uid' => PHP_INT_MAX];
608  $subject = new ‪PageRepository(
609  new ‪Context([
610  'backend.user' => new ‪UserAspect($user),
611  ])
612  );
613  // Negative numbers or "0" do not return anything
614  $result = $subject->getDescendantPageIdsRecursive(-1, 1);
615  self::assertEquals([], $result);
616  $result = $subject->getDescendantPageIdsRecursive(0, 1);
617  self::assertEquals([], $result);
618  $result = $subject->getDescendantPageIdsRecursive(1, 1);
619  self::assertEquals([2, 3, 4], $result);
620  $result = $subject->getDescendantPageIdsRecursive(1, 2);
621  self::assertEquals([2, 5, 7, 3, 8, 9, 4, 10], $result);
622  // "Begin" leaves out a level
623  $result = $subject->getDescendantPageIdsRecursive(1, 2, 1);
624  self::assertEquals([5, 7, 8, 9, 10], $result);
625  // Exclude a branch (3)
626  $result = $subject->getDescendantPageIdsRecursive(1, 2, excludePageIds: [3]);
627  self::assertEquals([2, 5, 7, 4, 10], $result);
628  // Include Page ID 6
629  $result = $subject->getDescendantPageIdsRecursive(1, 2, bypassEnableFieldsCheck:true);
630  self::assertEquals([2, 5, 6, 7, 3, 8, 9, 4, 10], $result);
631  }
632 
637  {
638  $context = new ‪Context();
639  $context->setAspect('language', new ‪LanguageAspect(1, 1, ‪LanguageAspect::OVERLAYS_ON_WITH_FLOATING, [0]));
640  $subject = new ‪PageRepository($context);
641  ‪$record = $subject->getRawRecord('tt_content', 1);
642  self::assertSame('Default Content #1', ‪$record['header']);
643  $overlaidRecord = $subject->getLanguageOverlay('tt_content', ‪$record);
644  self::assertSame(2, $overlaidRecord['_LOCALIZED_UID']);
645  self::assertSame('Translated Content #1', $overlaidRecord['header']);
646 
647  // Check if "bodytext" is actually overlaid with a NULL value
648  ‪$record = $subject->getRawRecord('tt_content', 3);
649  $overlaidRecord = $subject->getLanguageOverlay('tt_content', ‪$record);
650  self::assertSame('Translated #2', $overlaidRecord['header']);
651  self::assertNull($overlaidRecord['bodytext']);
652  }
653 }
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository
Definition: PageRepositoryTest.php:18
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getPagesOverlayByIdSingle
‪getPagesOverlayByIdSingle()
Definition: PageRepositoryTest.php:182
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getPageOverlayByRow
‪getPageOverlayByRow()
Definition: PageRepositoryTest.php:154
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getPagesOverlayByRowSingle
‪getPagesOverlayByRowSingle()
Definition: PageRepositoryTest.php:252
‪TYPO3\CMS\Core\Domain\Page
Definition: Page.php:24
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getPageOverlayByIdWithoutTranslation
‪getPageOverlayByIdWithoutTranslation()
Definition: PageRepositoryTest.php:143
‪TYPO3\CMS\Core\Context\WorkspaceAspect
Definition: WorkspaceAspect.php:31
‪TYPO3\CMS\Core\Versioning\VersionState\NEW_PLACEHOLDER
‪const NEW_PLACEHOLDER
Definition: VersionState.php:41
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\previewShowsPagesFromLiveAndCurrentWorkspace
‪previewShowsPagesFromLiveAndCurrentWorkspace()
Definition: PageRepositoryTest.php:422
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getWorkspaceVersionReturnsTheCorrectMethod
‪getWorkspaceVersionReturnsTheCorrectMethod()
Definition: PageRepositoryTest.php:442
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getPageOverlayByRowWithoutTranslation
‪getPageOverlayByRowWithoutTranslation()
Definition: PageRepositoryTest.php:169
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getLanguageOverlayResolvesContentWithNullInValues
‪getLanguageOverlayResolvesContentWithNullInValues()
Definition: PageRepositoryTest.php:636
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getPagesOverlayByIdMultiple
‪getPagesOverlayByIdMultiple()
Definition: PageRepositoryTest.php:202
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getDescendantPageIdsRecursiveTest
‪getDescendantPageIdsRecursiveTest()
Definition: PageRepositoryTest.php:603
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\enableFieldsDoesNotHidePlaceholdersInPreview
‪enableFieldsDoesNotHidePlaceholdersInPreview()
Definition: PageRepositoryTest.php:496
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getMenuSingleUidRoot
‪getMenuSingleUidRoot()
Definition: PageRepositoryTest.php:45
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getMenuPageOverlay
‪getMenuPageOverlay()
Definition: PageRepositoryTest.php:84
‪TYPO3\CMS\Core\Context\Context
Definition: Context.php:55
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getPageIdsRecursiveTest
‪getPageIdsRecursiveTest()
Definition: PageRepositoryTest.php:573
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest
Definition: PageRepositoryTest.php:35
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getPagesOverlayByIdMultipleSomeNotOverlaid
‪getPagesOverlayByIdMultipleSomeNotOverlaid()
Definition: PageRepositoryTest.php:229
‪TYPO3\CMS\Webhooks\Message\$record
‪identifier readonly int readonly array $record
Definition: PageModificationMessage.php:36
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getPagesOverlayByRowMultiple
‪getPagesOverlayByRowMultiple()
Definition: PageRepositoryTest.php:299
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\assertOverlayRow
‪assertOverlayRow($row)
Definition: PageRepositoryTest.php:550
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication
Definition: BackendUserAuthentication.php:66
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getMountPointInfoForDefaultLanguage
‪getMountPointInfoForDefaultLanguage()
Definition: PageRepositoryTest.php:392
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\assertNotOverlayRow
‪assertNotOverlayRow($row)
Definition: PageRepositoryTest.php:561
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getMountPointInfoForTranslation
‪getMountPointInfoForTranslation()
Definition: PageRepositoryTest.php:402
‪TYPO3\CMS\Core\Context\LanguageAspect
Definition: LanguageAspect.php:57
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\setUp
‪setUp()
Definition: PageRepositoryTest.php:36
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\groupRestrictedPageCanBeOverlaid
‪groupRestrictedPageCanBeOverlaid()
Definition: PageRepositoryTest.php:276
‪TYPO3\CMS\Core\Versioning\VersionState
Definition: VersionState.php:24
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\enableFieldsHidesVersionedRecordsAndPlaceholders
‪enableFieldsHidesVersionedRecordsAndPlaceholders()
Definition: PageRepositoryTest.php:467
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getPageOverlayById
‪getPageOverlayById()
Definition: PageRepositoryTest.php:130
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getMenuSingleUidSubpage
‪getMenuSingleUidSubpage()
Definition: PageRepositoryTest.php:58
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getMenuMultipleUid
‪getMenuMultipleUid()
Definition: PageRepositoryTest.php:70
‪TYPO3\CMS\Core\Domain\Repository\PageRepository
Definition: PageRepository.php:63
‪TYPO3\CMS\Core\Database\ConnectionPool
Definition: ConnectionPool.php:51
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\isGetPageHookCalled
‪isGetPageHookCalled()
Definition: PageRepositoryTest.php:370
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getMenuWithMountPoint
‪getMenuWithMountPoint()
Definition: PageRepositoryTest.php:101
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:51
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\enableFieldsDoesFilterToCurrentAndLiveWorkspaceForRecordsInPreview
‪enableFieldsDoesFilterToCurrentAndLiveWorkspaceForRecordsInPreview()
Definition: PageRepositoryTest.php:527
‪TYPO3\CMS\Core\Context\LanguageAspect\OVERLAYS_ON_WITH_FLOATING
‪const OVERLAYS_ON_WITH_FLOATING
Definition: LanguageAspect.php:77
‪TYPO3\CMS\Core\Utility\StringUtility
Definition: StringUtility.php:24
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getMenuPageOverlayWithMountPoint
‪getMenuPageOverlayWithMountPoint()
Definition: PageRepositoryTest.php:114
‪TYPO3\CMS\Core\Domain\Repository\PageRepositoryGetPageHookInterface
Definition: PageRepositoryGetPageHookInterface.php:22
‪TYPO3\CMS\Core\Context\UserAspect
Definition: UserAspect.php:37
‪TYPO3\CMS\Core\Utility\StringUtility\getUniqueId
‪static getUniqueId(string $prefix='')
Definition: StringUtility.php:29
‪TYPO3\CMS\Core\Tests\Functional\Domain\Repository\PageRepositoryTest\getPagesOverlayByRowMultipleSomeNotOverlaid
‪getPagesOverlayByRowMultipleSomeNotOverlaid()
Definition: PageRepositoryTest.php:332