‪TYPO3CMS  10.4
TypoScriptFrontendControllerTest.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 Prophecy\Argument;
21 use Psr\Container\ContainerInterface;
42 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
43 
47 class ‪TypoScriptFrontendControllerTest extends UnitTestCase
48 {
52  protected ‪$resetSingletonInstances = true;
53 
57  protected ‪$subject;
58 
59  protected function ‪setUp(): void
60  {
61  parent::setUp();
62  $this->subject = $this->getAccessibleMock(TypoScriptFrontendController::class, ['dummy'], [], '', false);
63  $this->subject->_set('context', new ‪Context());
64  ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = '170928423746123078941623042360abceb12341234231';
65 
66  $pageRepository = $this->getMockBuilder(PageRepository::class)->getMock();
67  $this->subject->sys_page = $pageRepository;
68 
69  $pageRenderer = $this->getMockBuilder(PageRenderer::class)->getMock();
70  $this->subject->_set('pageRenderer', $pageRenderer);
71  }
72 
81  {
83  ‪$GLOBALS['TSFE']->INTincScript();
84  self::assertStringContainsString('headerData', ‪$GLOBALS['TSFE']->content);
85  self::assertStringContainsString('footerData', ‪$GLOBALS['TSFE']->content);
86  }
87 
92  {
93  ‪$GLOBALS['TSFE']->additionalHeaderData[] = 'headerData';
94  ‪$GLOBALS['TSFE']->additionalFooterData[] = 'footerData';
95  }
96 
104  {
106  $tsfe = $this->getMockBuilder(TypoScriptFrontendController::class)
107  ->setMethods([
108  'processNonCacheableContentPartsAndSubstituteContentMarkers',
109  'INTincScript_loadJSCode',
110  'setAbsRefPrefix',
111  'regeneratePageTitle'
112  ])->disableOriginalConstructor()
113  ->getMock();
114  $tsfe->expects(self::exactly(2))->method('processNonCacheableContentPartsAndSubstituteContentMarkers')->willReturnCallback([$this, 'processNonCacheableContentPartsAndSubstituteContentMarkers']);
115 
120  GeneralUtility::setSingletonInstance(
121  EventDispatcher::class,
122  new EventDispatcher(
123  new ListenerProvider($this->createMock(ContainerInterface::class))
124  )
125  );
126 
127  $tsfe->content = file_get_contents(__DIR__ . '/Fixtures/renderedPage.html');
128  $config = [
129  'INTincScript_ext' => [
130  'divKey' => '679b52796e75d474ccbbed486b6837ab',
131  ],
132  'INTincScript' => [
133  'INT_SCRIPT.679b52796e75d474ccbbed486b6837ab' => [],
134  ]
135  ];
136  $tsfe->config = $config;
137 
138  return $tsfe;
139  }
140 
149  {
150  $nullCacheBackend = new NullBackend('');
151  $cacheManager = $this->prophesize(CacheManager::class);
152  $cacheManager->getCache('l10n')->willReturn($nullCacheBackend);
153  $languageService = new LanguageService(new Locales(), new LocalizationFactory(new LanguageStore(), $cacheManager->reveal()));
154  $languageServiceFactoryProphecy = $this->prophesize(LanguageServiceFactory::class);
155  $languageServiceFactoryProphecy->create(Argument::any())->will(function (‪$args) use ($languageService) {
156  $languageService->init(‪$args[0]);
157  return $languageService;
158  });
159  GeneralUtility::addInstance(LanguageServiceFactory::class, $languageServiceFactoryProphecy->reveal());
160  $string = ‪StringUtility::getUniqueId();
161  $site = $this->‪createSiteWithDefaultLanguage([
162  'locale' => 'fr',
163  'typo3Language' => 'fr',
164  ]);
165  $this->subject->page = [];
166  $this->subject->_set('language', $site->getLanguageById(0));
167  $this->subject->_call('setOutputLanguage');
168  self::assertEquals($string, $this->subject->sL($string));
169  }
170 
178  public function ‪getSysDomainCacheDataProvider()
179  {
180  return [
181  'typo3.org' => [
182  'typo3.org',
183  ],
184  'foo.bar' => [
185  'foo.bar',
186  ],
187  'example.com' => [
188  'example.com',
189  ],
190  ];
191  }
192 
197  {
198  return [
199  'without base url' => [
200  '',
201  'fileadmin/user_uploads/image.jpg',
202  'fileadmin/user_uploads/image.jpg'
203  ],
204  'with base url' => [
205  'http://www.google.com/',
206  'fileadmin/user_uploads/image.jpg',
207  'http://www.google.com/fileadmin/user_uploads/image.jpg'
208  ],
209  'without base url but with url prepended with a forward slash' => [
210  '',
211  '/fileadmin/user_uploads/image.jpg',
212  '/fileadmin/user_uploads/image.jpg',
213  ],
214  'with base url but with url prepended with a forward slash' => [
215  'http://www.google.com/',
216  '/fileadmin/user_uploads/image.jpg',
217  '/fileadmin/user_uploads/image.jpg',
218  ],
219  ];
220  }
221 
229  public function ‪baseUrlWrapHandlesDifferentUrls($baseUrl, $url, $expected)
230  {
231  $this->subject->baseUrl = $baseUrl;
232  self::assertSame($expected, $this->subject->baseUrlWrap($url));
233  }
234 
239  {
240  return [
241  'one simple search word' => [
242  ['test'],
243  false,
244  'test',
245  ],
246  'one simple search word with standalone words' => [
247  ['test'],
248  true,
249  '[[:space:]]test[[:space:]]',
250  ],
251  'two simple search words' => [
252  ['test', 'test2'],
253  false,
254  'test|test2',
255  ],
256  'two simple search words with standalone words' => [
257  ['test', 'test2'],
258  true,
259  '[[:space:]]test[[:space:]]|[[:space:]]test2[[:space:]]',
260  ],
261  'word with regex chars' => [
262  ['A \\ word with / a bunch of [] regex () chars .*'],
263  false,
264  'A \\\\ word with \\/ a bunch of \\[\\] regex \\(\\) chars \\.\\*',
265  ],
266  ];
267  }
268 
277  public function ‪initializeSearchWordDataBuildsCorrectRegex(array $searchWordGetParameters, $enableStandaloneSearchWords, $expectedRegex)
278  {
279  $_GET['sword_list'] = $searchWordGetParameters;
280  $_SERVER['HTTP_HOST'] = 'localhost';
281  $_SERVER['SCRIPT_NAME'] = '/index.php';
282 
283  $this->subject->page = [];
284  if ($enableStandaloneSearchWords) {
285  $this->subject->config = ['config' => ['sword_standAlone' => 1]];
286  }
287 
289  $this->subject->preparePageContentGeneration($request);
290  self::assertEquals($this->subject->sWordRegEx, $expectedRegex);
291  }
292 
300  public function ‪splitLinkVarsStringSplitsStringByComma($string, $expected)
301  {
302  self::assertEquals($expected, $this->subject->_call('splitLinkVarsString', $string));
303  }
304 
308  public function ‪splitLinkVarsDataProvider()
309  {
310  return [
311  [
312  'L',
313  ['L']
314  ],
315  [
316  'L,a',
317  [
318  'L',
319  'a'
320  ]
321  ],
322  [
323  'L, a',
324  [
325  'L',
326  'a'
327  ]
328  ],
329  [
330  'L , a',
331  [
332  'L',
333  'a'
334  ]
335  ],
336  [
337  ' L, a ',
338  [
339  'L',
340  'a'
341  ]
342  ],
343  [
344  'L(1)',
345  [
346  'L(1)'
347  ]
348  ],
349  [
350  'L(1),a',
351  [
352  'L(1)',
353  'a'
354  ]
355  ],
356  [
357  'L(1) , a',
358  [
359  'L(1)',
360  'a'
361  ]
362  ],
363  [
364  'a,L(1)',
365  [
366  'a',
367  'L(1)'
368  ]
369  ],
370  [
371  'L(1),a(2-3)',
372  [
373  'L(1)',
374  'a(2-3)'
375  ]
376  ],
377  [
378  'L(1),a((2-3))',
379  [
380  'L(1)',
381  'a((2-3))'
382  ]
383  ],
384  [
385  'L(1),a(a{2,4})',
386  [
387  'L(1)',
388  'a(a{2,4})'
389  ]
390  ],
391  [
392  'L(1),a(/a{2,4}\,()/)',
393  [
394  'L(1)',
395  'a(/a{2,4}\,()/)'
396  ]
397  ],
398  [
399  'L,a , b(c) , dd(/g{1,2}/), eee(, ()f) , 2',
400  [
401  'L',
402  'a',
403  'b(c)',
404  'dd(/g{1,2}/)',
405  'eee(, ()f)',
406  '2'
407  ]
408  ]
409  ];
410  }
411 
419  public function ‪calculateLinkVarsConsidersCorrectVariables(string $linkVars, array $getVars, string $expected)
420  {
421  $this->subject->config['config']['linkVars'] = $linkVars;
422  $this->subject->calculateLinkVars($getVars);
423  self::assertEquals($expected, $this->subject->linkVars);
424  }
425 
426  public function ‪calculateLinkVarsDataProvider(): array
427  {
428  return [
429  'simple variable' => [
430  'L',
431  [
432  'L' => 1
433  ],
434  '&L=1'
435  ],
436  'missing variable' => [
437  'L',
438  [
439  ],
440  ''
441  ],
442  'restricted variables' => [
443  'L(1-3),bar(3),foo(array),blub(array)',
444  [
445  'L' => 1,
446  'bar' => 2,
447  'foo' => [ 1, 2, 'f' => [ 4, 5 ] ],
448  'blub' => 123
449  ],
450  '&L=1&foo%5B0%5D=1&foo%5B1%5D=2&foo%5Bf%5D%5B0%5D=4&foo%5Bf%5D%5B1%5D=5'
451  ],
452  'nested variables' => [
453  'bar|foo(1-2)',
454  [
455  'bar' => [
456  'foo' => 1,
457  'unused' => 'never'
458  ]
459  ],
460  '&bar[foo]=1'
461  ],
462  ];
463  }
464 
469  {
470  ‪$subject = $this->getAccessibleMock(TypoScriptFrontendController::class, ['dummy'], [], '', false);
471  ‪$subject->_call('initializeSearchWordData', null);
472  self::assertEquals('', ‪$subject->sWordRegEx);
473  self::assertEquals('', ‪$subject->sWordList);
474  }
475 
480  {
481  ‪$subject = $this->getAccessibleMock(TypoScriptFrontendController::class, ['dummy'], [], '', false);
482  ‪$subject->_call('initializeSearchWordData', '');
483  self::assertEquals('', ‪$subject->sWordRegEx);
484  self::assertEquals('', ‪$subject->sWordList);
485  }
486 
491  {
492  ‪$subject = $this->getAccessibleMock(TypoScriptFrontendController::class, ['dummy'], [], '', false);
493  ‪$subject->_call('initializeSearchWordData', []);
494  self::assertEquals('', ‪$subject->sWordRegEx);
495  self::assertEquals([], ‪$subject->sWordList);
496  }
497 
502  {
503  ‪$subject = $this->getAccessibleMock(TypoScriptFrontendController::class, ['dummy'], [], '', false);
504  ‪$subject->_call('initializeSearchWordData', ['stop', 'word']);
505  self::assertEquals('stop|word', ‪$subject->sWordRegEx);
506  self::assertEquals(['stop', 'word'], ‪$subject->sWordList);
507  }
508 
513  {
514  ‪$subject = $this->getAccessibleMock(TypoScriptFrontendController::class, ['dummy'], [], '', false);
515  ‪$subject->config['config']['sword_standAlone'] = 1;
516  ‪$subject->_call('initializeSearchWordData', ['stop', 'word']);
517  self::assertEquals('[[:space:]]stop[[:space:]]|[[:space:]]word[[:space:]]', ‪$subject->sWordRegEx);
518  self::assertEquals(['stop', 'word'], ‪$subject->sWordList);
519  }
520 
525  public function ‪indexedSearchHookUsesPageTitleApi(): void
526  {
527  $pageTitle = 'This is a test page title coming from PageTitleProviderManager';
528 
529  $pageTitleProvider = $this->prophesize(PageTitleProviderManager::class);
530  $pageTitleProvider->getTitle()->willReturn($pageTitle);
531  $pageTitleProvider->getPageTitleCache()->willReturn([]);
532  GeneralUtility::setSingletonInstance(PageTitleProviderManager::class, $pageTitleProvider->reveal());
533 
534  $nullCacheBackend = new NullBackend('');
535  $cacheManager = $this->prophesize(CacheManager::class);
536  $cacheManager->getCache('pages')->willReturn($nullCacheBackend);
537  GeneralUtility::setSingletonInstance(CacheManager::class, $cacheManager->reveal());
538 
539  $this->subject->generatePageTitle();
540  self::assertSame($pageTitle, $this->subject->indexedDocTitle);
541  }
542 
547  {
548  $nullCacheBackend = new NullBackend('');
549  $cacheManager = $this->prophesize(CacheManager::class);
550  $cacheManager->getCache('pages')->willReturn($nullCacheBackend);
551  $cacheManager->getCache('l10n')->willReturn($nullCacheBackend);
552  GeneralUtility::setSingletonInstance(CacheManager::class, $cacheManager->reveal());
553  ‪$GLOBALS['TYPO3_REQUEST'] = new ServerRequest('https://www.example.com/');
554  $site = $this->‪createSiteWithDefaultLanguage([
555  'locale' => 'fr',
556  'typo3Language' => 'fr-test',
557  ]);
558  $languageService = new LanguageService(new Locales(), new LocalizationFactory(new LanguageStore(), $cacheManager->reveal()));
559  $languageServiceFactoryProphecy = $this->prophesize(LanguageServiceFactory::class);
560  $languageServiceFactoryProphecy->create(Argument::any())->will(function (‪$args) use ($languageService) {
561  $languageService->init(‪$args[0]);
562  return $languageService;
563  });
564  GeneralUtility::addInstance(LanguageServiceFactory::class, $languageServiceFactoryProphecy->reveal());
565  // Constructor calling initPageRenderer()
566  new TypoScriptFrontendController(
567  new Context(),
568  $site,
569  $site->getLanguageById(0),
570  new PageArguments(13, '0', [])
571  );
572  // since PageRenderer is a singleton, this can be queried via the makeInstance call
573  self::assertEquals('fr-test', GeneralUtility::makeInstance(PageRenderer::class)->getLanguage());
574  }
575 
580  {
581  $nullCacheBackend = new NullBackend('');
582  $cacheManager = $this->prophesize(CacheManager::class);
583  $cacheManager->getCache('pages')->willReturn($nullCacheBackend);
584  $cacheManager->getCache('l10n')->willReturn($nullCacheBackend);
585  GeneralUtility::setSingletonInstance(CacheManager::class, $cacheManager->reveal());
586  ‪$GLOBALS['TYPO3_REQUEST'] = new ServerRequest('https://www.example.com/');
587  $site = $this->‪createSiteWithDefaultLanguage([
588  'locale' => 'fr',
589  'typo3Language' => 'fr',
590  ]);
591  $languageService = new LanguageService(new Locales(), new LocalizationFactory(new LanguageStore(), $cacheManager->reveal()));
592  $languageServiceFactoryProphecy = $this->prophesize(LanguageServiceFactory::class);
593  $languageServiceFactoryProphecy->create(Argument::any())->will(function (‪$args) use ($languageService) {
594  $languageService->init(‪$args[0]);
595  return $languageService;
596  });
597  GeneralUtility::addInstance(LanguageServiceFactory::class, $languageServiceFactoryProphecy->reveal());
598  // Constructor calling setOutputLanguage()
599  ‪$subject = $this->getAccessibleMock(
600  TypoScriptFrontendController::class,
601  ['dummy'],
602  [
603  new Context(),
604  $site,
605  $site->getLanguageById(0),
606  new PageArguments(13, '0', [])
607  ]
608  );
609  $languageService = ‪$subject->_get('languageService');
610  // since PageRenderer is a singleton, this can be queried via the makeInstance call
611  self::assertEquals('fr', $languageService->lang);
612  }
613 
618  {
619  $nullCacheBackend = new NullBackend('');
620  $cacheManager = $this->prophesize(CacheManager::class);
621  $cacheManager->getCache('pages')->willReturn($nullCacheBackend);
622  $cacheManager->getCache('l10n')->willReturn($nullCacheBackend);
623  GeneralUtility::setSingletonInstance(CacheManager::class, $cacheManager->reveal());
624  $languageService = new LanguageService(new Locales(), new LocalizationFactory(new LanguageStore(), $cacheManager->reveal()));
625  $languageServiceFactoryProphecy = $this->prophesize(LanguageServiceFactory::class);
626  $languageServiceFactoryProphecy->create(Argument::any())->will(function (‪$args) use ($languageService) {
627  $languageService->init(‪$args[0]);
628  return $languageService;
629  });
630  GeneralUtility::addInstance(LanguageServiceFactory::class, $languageServiceFactoryProphecy->reveal());
631  ‪$GLOBALS['TYPO3_REQUEST'] = new ServerRequest('https://www.example.com/');
632 
633  $site = $this->‪createSiteWithDefaultLanguage([
634  'locale' => 'fr',
635  'typo3Language' => 'fr-test',
636  ]);
637 
638  // no MP Parameter given
639  ‪$subject = new TypoScriptFrontendController(
640  new Context(),
641  $site,
642  $site->getLanguageById(0),
643  new PageArguments(13, '0', [], [], [])
644  );
645  self::assertEquals('', ‪$subject->MP);
646 
647  // single MP parameter given
648  GeneralUtility::addInstance(LanguageServiceFactory::class, $languageServiceFactoryProphecy->reveal());
649  ‪$subject = new TypoScriptFrontendController(
650  new Context(),
651  $site,
652  $site->getLanguageById(0),
653  new PageArguments(13, '0', [], [], ['MP' => '592-182'])
654  );
655  self::assertEquals('592-182', ‪$subject->MP);
656 
657  // invalid characters included
658  GeneralUtility::addInstance(LanguageServiceFactory::class, $languageServiceFactoryProphecy->reveal());
659  ‪$subject = new TypoScriptFrontendController(
660  new Context(),
661  $site,
662  $site->getLanguageById(0),
663  new PageArguments(13, '0', [], [], ['MP' => '12-13,a34-45/'])
664  );
665  self::assertEquals('12-13,34-45', ‪$subject->MP);
666 
667  // single MP parameter given but MP feature is turned off
668  ‪$GLOBALS['TYPO3_CONF_VARS']['FE']['enable_mount_pids'] = false;
669  GeneralUtility::addInstance(LanguageServiceFactory::class, $languageServiceFactoryProphecy->reveal());
670  ‪$subject = new TypoScriptFrontendController(
671  new Context(),
672  $site,
673  $site->getLanguageById(0),
674  new PageArguments(13, '0', [], [], ['MP' => '592-182'])
675  );
676  self::assertEquals('', ‪$subject->MP);
677  }
678 
679  private function ‪createSiteWithDefaultLanguage(array $languageConfiguration): ‪Site
680  {
681  return new ‪Site('test', 13, [
682  'identifier' => 'test',
683  'rootPageId' => 13,
684  'base' => 'https://www.example.com/',
685  'languages' => [
686  array_merge(
687  $languageConfiguration,
688  [
689  'languageId' => 0,
690  'base' => '/',
691  ]
692  )
693  ]
694  ]);
695  }
696 }
‪TYPO3\CMS\Core\Localization\LanguageServiceFactory
Definition: LanguageServiceFactory.php:26
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\initializeSearchWordDataDoesNothingWithEmptyStringValue
‪initializeSearchWordDataDoesNothingWithEmptyStringValue()
Definition: TypoScriptFrontendControllerTest.php:477
‪TYPO3\CMS\Core\Routing\PageArguments
Definition: PageArguments.php:26
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\getSysDomainCacheDataProvider
‪array getSysDomainCacheDataProvider()
Definition: TypoScriptFrontendControllerTest.php:176
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\initializeSearchWordDataBuildsCorrectRegex
‪initializeSearchWordDataBuildsCorrectRegex(array $searchWordGetParameters, $enableStandaloneSearchWords, $expectedRegex)
Definition: TypoScriptFrontendControllerTest.php:275
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\setupTsfeMockForHeaderFooterReplacementCheck
‪PHPUnit Framework MockObject MockObject TypoScriptFrontendController setupTsfeMockForHeaderFooterReplacementCheck()
Definition: TypoScriptFrontendControllerTest.php:101
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest
Definition: TypoScriptFrontendControllerTest.php:48
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\headerAndFooterMarkersAreReplacedDuringIntProcessing
‪headerAndFooterMarkersAreReplacedDuringIntProcessing()
Definition: TypoScriptFrontendControllerTest.php:78
‪TYPO3\CMS\Core\Localization\LocalizationFactory
Definition: LocalizationFactory.php:28
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\setUp
‪setUp()
Definition: TypoScriptFrontendControllerTest.php:57
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\initializeSearchWordDataBuildsCorrectRegexDataProvider
‪array initializeSearchWordDataBuildsCorrectRegexDataProvider()
Definition: TypoScriptFrontendControllerTest.php:236
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\splitLinkVarsStringSplitsStringByComma
‪splitLinkVarsStringSplitsStringByComma($string, $expected)
Definition: TypoScriptFrontendControllerTest.php:298
‪TYPO3\CMS\Core\Localization\Locales
Definition: Locales.php:30
‪TYPO3\CMS\Core\Context\Context
Definition: Context.php:53
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\initializeSearchWordDataFillsProperRegexpWithArray
‪initializeSearchWordDataFillsProperRegexpWithArray()
Definition: TypoScriptFrontendControllerTest.php:499
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\$resetSingletonInstances
‪bool $resetSingletonInstances
Definition: TypoScriptFrontendControllerTest.php:51
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\pageRendererLanguageIsSetToSiteLanguageTypo3LanguageInConstructor
‪pageRendererLanguageIsSetToSiteLanguageTypo3LanguageInConstructor()
Definition: TypoScriptFrontendControllerTest.php:544
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\processNonCacheableContentPartsAndSubstituteContentMarkers
‪processNonCacheableContentPartsAndSubstituteContentMarkers()
Definition: TypoScriptFrontendControllerTest.php:89
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\baseUrlWrapHandlesDifferentUrlsDataProvider
‪array baseUrlWrapHandlesDifferentUrlsDataProvider()
Definition: TypoScriptFrontendControllerTest.php:194
‪TYPO3\CMS\Core\Site\Entity\Site
Definition: Site.php:40
‪TYPO3\CMS\Core\Localization\LanguageStore
Definition: LanguageStore.php:27
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\mountPointParameterContainsOnlyValidMPValues
‪mountPointParameterContainsOnlyValidMPValues()
Definition: TypoScriptFrontendControllerTest.php:615
‪TYPO3\CMS\Core\EventDispatcher\EventDispatcher
Definition: EventDispatcher.php:30
‪TYPO3\CMS\Core\Page\PageRenderer
Definition: PageRenderer.php:42
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\splitLinkVarsDataProvider
‪array splitLinkVarsDataProvider()
Definition: TypoScriptFrontendControllerTest.php:306
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\baseUrlWrapHandlesDifferentUrls
‪baseUrlWrapHandlesDifferentUrls($baseUrl, $url, $expected)
Definition: TypoScriptFrontendControllerTest.php:227
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\initializeSearchWordDataDoesNothingWithEmptyArrayValue
‪initializeSearchWordDataDoesNothingWithEmptyArrayValue()
Definition: TypoScriptFrontendControllerTest.php:488
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\createSiteWithDefaultLanguage
‪createSiteWithDefaultLanguage(array $languageConfiguration)
Definition: TypoScriptFrontendControllerTest.php:677
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\calculateLinkVarsConsidersCorrectVariables
‪calculateLinkVarsConsidersCorrectVariables(string $linkVars, array $getVars, string $expected)
Definition: TypoScriptFrontendControllerTest.php:417
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\initializeSearchWordDataFillsProperRegexpWithArrayAndStandaloneOption
‪initializeSearchWordDataFillsProperRegexpWithArrayAndStandaloneOption()
Definition: TypoScriptFrontendControllerTest.php:510
‪TYPO3\CMS\Core\PageTitle\PageTitleProviderManager
Definition: PageTitleProviderManager.php:31
‪TYPO3\CMS\Core\Cache\Backend\NullBackend
Definition: NullBackend.php:22
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\calculateLinkVarsDataProvider
‪calculateLinkVarsDataProvider()
Definition: TypoScriptFrontendControllerTest.php:424
‪TYPO3\CMS\Frontend\Tests\Unit\Controller
Definition: ErrorControllerTest.php:18
‪TYPO3\CMS\Core\Http\ServerRequestFactory
Definition: ServerRequestFactory.php:34
‪TYPO3\CMS\Core\Cache\CacheManager
Definition: CacheManager.php:35
‪TYPO3\CMS\Core\Http\ServerRequest
Definition: ServerRequest.php:37
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\initializeSearchWordDataDoesNothingWithNullValue
‪initializeSearchWordDataDoesNothingWithNullValue()
Definition: TypoScriptFrontendControllerTest.php:466
‪$args
‪$args
Definition: validateRstFiles.php:214
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\localizationReturnsUnchangedStringIfNotLocallangLabel
‪localizationReturnsUnchangedStringIfNotLocallangLabel()
Definition: TypoScriptFrontendControllerTest.php:146
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\indexedSearchHookUsesPageTitleApi
‪indexedSearchHookUsesPageTitleApi()
Definition: TypoScriptFrontendControllerTest.php:523
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\languageServiceIsSetUpWithSiteLanguageTypo3LanguageInConstructor
‪languageServiceIsSetUpWithSiteLanguageTypo3LanguageInConstructor()
Definition: TypoScriptFrontendControllerTest.php:577
‪TYPO3\CMS\Core\Utility\StringUtility\getUniqueId
‪static string getUniqueId($prefix='')
Definition: StringUtility.php:92
‪TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController
Definition: TypoScriptFrontendController.php:98
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:5
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Core\Domain\Repository\PageRepository
Definition: PageRepository.php:52
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:46
‪TYPO3\CMS\Core\Utility\StringUtility
Definition: StringUtility.php:22
‪TYPO3\CMS\Core\EventDispatcher\ListenerProvider
Definition: ListenerProvider.php:30
‪TYPO3\CMS\Core\Http\ServerRequestFactory\fromGlobals
‪static ServerRequest fromGlobals()
Definition: ServerRequestFactory.php:59
‪TYPO3\CMS\Frontend\Tests\Unit\Controller\TypoScriptFrontendControllerTest\$subject
‪PHPUnit Framework MockObject MockObject TYPO3 TestingFramework Core AccessibleObjectInterface TypoScriptFrontendController $subject
Definition: TypoScriptFrontendControllerTest.php:55