‪TYPO3CMS  ‪main
RouteTest.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 
35 use TYPO3\TestingFramework\Core\Functional\Framework\Frontend\InternalRequest;
36 
38 {
39  public static function ‪routeDefaultsAreConsideredDataProvider(): array
40  {
41  $builder = ‪Builder::create();
42  // variables (applied when invoking expectations)
43  $variables = ‪Variables::create()->define([
44  'uriValue' => '',
45  'resolveValue' => 100,
46  'routePrefix' => 'enhance',
47  'aspectName' => 'value',
48  'inArguments' => 'staticArguments', // either 'dynamicArguments' or 'staticArguments'
49  'otherInArguments' => null,
50  ]);
51  $englishLanguage = ‪LanguageContext::create(0);
52  $frenchLanguage = ‪LanguageContext::create(1);
53  $plainRouteParameter = ‪VariablesContext::create(‪Variables::create(['routeParameter' => '{value}']));
54  $enforcedRouteParameter = ‪VariablesContext::create(‪Variables::create(['routeParameter' => '{!value}']));
55  return ‪Permutation::create($variables)
56  ->withTargets(
58  ->withMergedApplicables($englishLanguage)
59  ->withTargetPageId(1100)
60  ->withUrl(
62  'https://acme.us/welcome/enhance[[uriValue]][[pathSuffix]]',
63  ‪Variables::create(['pathSuffix' => '', 'uriValue' => '/hundred'])
64  )
65  ),
67  ->withMergedApplicables($frenchLanguage)
68  ->withTargetPageId(1100)
69  ->withUrl(
71  'https://acme.fr/bienvenue/enhance[[uriValue]][[pathSuffix]]',
72  ‪Variables::create(['pathSuffix' => '', 'uriValue' => '/cent'])
73  )
74  )
75  )
76  ->withApplicableItems($builder->declareEnhancers())
77  ->withApplicableSet(
78  ‪EnhancerDeclaration::create('defaults.value=100')->withConfiguration([
79  'defaults' => [
80  'value' => 100,
81  // it's expected that `other` is NOT applied in page arguments
82  // since it is not used as `{other}` in `routePath`
83  'other' => 200,
84  ],
85  ])
86  )
87  ->withApplicableSet(
88  ‪AspectDeclaration::create('StaticValueMapper')->withConfiguration([
89  ‪VariableItem::create('aspectName', [
90  'type' => 'StaticValueMapper',
91  'map' => [
92  'hundred' => 100,
93  ],
94  'localeMap' => [
95  [
96  'locale' => 'fr_FR',
97  'map' => [
98  'cent' => 100,
99  ],
100  ],
101  ],
102  ]),
103  ])
104  )
105  ->withApplicableSet($plainRouteParameter, $enforcedRouteParameter)
106  ->withApplicableSet(
107  // @todo Default route not resolved having enforced route parameter `{!value}`
109  'uriValue' => null,
110  ]))->withRequiredApplicables($plainRouteParameter),
112  'uriValue' => '/hundred',
113  ]))->withRequiredApplicables($englishLanguage),
115  'uriValue' => '/cent',
116  ]))->withRequiredApplicables($frenchLanguage)
117  )
118  ->permute()
119  ->getTargetsForDataProvider();
120  }
121 
126  public function ‪routeDefaultsAreConsidered(‪TestSet $testSet): void
127  {
128  $this->‪assertPageArgumentsEquals($testSet);
129  }
130 
132  {
133  $builder = ‪Builder::create();
134  // variables (applied when invoking expectations)
135  $variables = ‪Variables::create()->define([
136  'routePrefix' => 'enhance',
137  'aspectName' => 'value',
138  'inArguments' => 'staticArguments', // either 'dynamicArguments' or 'staticArguments'
139  ]);
140  return ‪Permutation::create($variables)
141  ->withTargets(
143  ->withMergedApplicables(‪LanguageContext::create(0))
144  ->withTargetPageId(1100)
145  ->withUrl(
147  'https://acme.us/welcome/enhance/[[value]][[pathSuffix]]',
148  ‪Variables::create(['pathSuffix' => ''])
149  )
150  )
151  )
152  ->withApplicableSet(
154  'value' => 'hundred',
155  'resolveValue' => 100,
156  ])),
158  'value' => 'hundred/binary',
159  'resolveValue' => 1100100,
160  ])),
163  'value' => 'hundred',
164  'resolveValue' => 100,
165  ])),
166  ‪EnhancerDeclaration::create('requirements.value=/[a-z_/]+/')->withConfiguration([
167  'requirements' => [
168  'value' => '[a-z_/]+',
169  ],
170  ])
171  ),
174  'value' => 'hundred/binary',
175  'resolveValue' => 1100100,
176  ])),
177  ‪EnhancerDeclaration::create('requirements.value=/[a-z_/]+/')->withConfiguration([
178  'requirements' => [
179  'value' => '[a-z_/]+',
180  ],
181  ])
182  )
183  )
184  ->withApplicableItems($builder->declareEnhancers())
185  ->withApplicableSet(
186  ‪AspectDeclaration::create('StaticValueMapper')->withConfiguration([
187  ‪VariableItem::create('aspectName', [
188  'type' => 'StaticValueMapper',
189  'map' => [
190  'hundred' => 100,
191  'hundred/binary' => 1100100,
192  ],
193  ]),
194  ])
195  )
196  ->permute()
197  ->getTargetsForDataProvider();
198  }
199 
205  {
206  $this->‪assertPageArgumentsEquals($testSet);
207  }
208 
209  public static function ‪routeRequirementsAreConsideredDataProvider(): array
210  {
211  $builder = ‪Builder::create();
212  // variables (applied when invoking expectations)
213  $variables = ‪Variables::create()->define([
214  'resolveValue' => 100,
215  'routePrefix' => 'enhance',
216  'aspectName' => 'value',
217  'inArguments' => 'dynamicArguments', // either 'dynamicArguments' or 'staticArguments'
218  ]);
219  $enhancers = $builder->declareEnhancers();
220  $variableContexts = [
223  'cHash' => '46227b4ce096dc78a4e71463326c9020',
224  ])
225  )->withRequiredApplicables($enhancers['Simple']),
228  'cHash' => 'e24d3d2d5503baba670d827c3b9470c8',
229  ])
230  )->withRequiredApplicables($enhancers['Plugin']),
233  'cHash' => 'eef21771ab3c3dac3514b4479eedd5ff',
234  ])
235  )->withRequiredApplicables($enhancers['Extbase']),
236  ];
237  return ‪Permutation::create($variables)
238  ->withTargets(
240  ->withMergedApplicables(‪LanguageContext::create(0))
241  ->withTargetPageId(1100)
242  ->withUrl(
244  'https://acme.us/welcome/enhance/[[uriValue]][[pathSuffix]]?cHash=[[cHash]]',
245  ‪Variables::create(['pathSuffix' => ''])
246  )
247  )
248  )
249  ->withApplicableItems($enhancers)
250  ->withApplicableItems($variableContexts)
251  ->withApplicableSet(
253  'uriValue' => 100,
254  ])),
257  'uriValue' => 100,
258  'cHash' => '',
259  ])),
260  ‪ExceptionExpectation::create('Missing cHash')
261  ->withClassName(PageNotFoundException::class)
262  ->withMessage('Request parameters could not be validated (&cHash empty)')
263  ->withCode(1518472189)
264  ),
267  'uriValue' => 99,
268  ])),
270  ->withClassName(PageNotFoundException::class)
271  ->withMessage('The requested page does not exist')
272  ->withCode(1518472189)
273  ),
276  'uriValue' => 99999,
277  ])),
279  ->withClassName(PageNotFoundException::class)
280  ->withMessage('The requested page does not exist')
281  ->withCode(1518472189)
282  ),
285  'uriValue' => 'NaN',
286  ])),
288  ->withClassName(PageNotFoundException::class)
289  ->withMessage('The requested page does not exist')
290  ->withCode(1518472189)
291  )
292  )
293  ->withApplicableSet(
294  ‪EnhancerDeclaration::create('requirements.value=\\d{3}')->withConfiguration([
295  'requirements' => [
296  'value' => '\\d{3}',
297  ],
298  ])
299  )
300  ->permute()
301  ->getTargetsForDataProvider();
302  }
303 
308  public function ‪routeRequirementsAreConsidered(‪TestSet $testSet): void
309  {
310  $this->‪assertPageArgumentsEquals($testSet);
311  }
312 
313  public static function ‪routeIdentifiersAreResolvedDataProvider(): array
314  {
315  return [
316  // namespace[value]
317  'namespace[value] ? test' => [
318  'namespace',
319  'value',
320  'test',
321  ],
322  'namespace[value] ? x^30' => [
323  'namespace',
324  'value',
325  str_repeat('x', 30),
326  ],
327  'namespace[value] ? x^31' => [
328  'namespace',
329  'value',
330  str_repeat('x', 31),
331  ],
332  'namespace[value] ? x^32' => [
333  'namespace',
334  'value',
335  str_repeat('x', 32),
336  ],
337  'namespace[value] ? x^33' => [
338  'namespace',
339  'value',
340  str_repeat('x', 33),
341  ],
342  'namespace[value] ? 1^31 (type-cast)' => [
343  'namespace',
344  'value',
345  str_repeat('1', 31),
346  ],
347  // md5('namespace__@otne3') is 60360798585102000952995164024754 (numeric)
348  // md5('ximaz') is 61529519452809720693702583126814 (numeric)
349  'namespace[@otne3] ? numeric-md5 (type-cast)' => [
350  'namespace',
351  '@otne3',
352  md5('ximaz'),
353  ],
354  'namespace[value] ? namespace__value' => [
355  'namespace',
356  'value',
357  'namespace__value',
358  ],
359  'namespace[value] ? namespace/value' => [
360  'namespace',
361  'value',
362  'namespace/value',
363  'The requested URL is not distinct',
364  ],
365  'namespace[value] ? namespace__other' => [
366  'namespace',
367  'value',
368  'namespace__other',
369  ],
370  'namespace[value] ? namespace/other' => [
371  'namespace',
372  'value',
373  'namespace/other',
374  ],
375  // namespace[any/value]
376  'namespace[any/value] ? x^30' => [
377  'namespace',
378  'any/value',
379  str_repeat('x', 30),
380  ],
381  'namespace[any/value] ? x^31' => [
382  'namespace',
383  'any/value',
384  str_repeat('x', 31),
385  ],
386  'namespace[any/value] ? x^32' => [
387  'namespace',
388  'any/value',
389  str_repeat('x', 32),
390  ],
391  'namespace[any/value] ? namespace__any__value' => [
392  'namespace',
393  'any/value',
394  'namespace__any__value',
395  ],
396  'namespace[any/value] ? namespace/any/value' => [
397  'namespace',
398  'any/value',
399  'namespace/any/value',
400  'The requested URL is not distinct',
401  ],
402  'namespace[any/value] ? namespace__any__other' => [
403  'namespace',
404  'any/value',
405  'namespace__any__other',
406  ],
407  'namespace[any/value] ? namespace/any/other' => [
408  'namespace',
409  'any/value',
410  'namespace/any/other',
411  ],
412  // namespace[@any/value]
413  'namespace[@any/value] ? x^30' => [
414  'namespace',
415  '@any/value',
416  str_repeat('x', 30),
417  ],
418  'namespace[@any/value] ? x^31' => [
419  'namespace',
420  '@any/value',
421  str_repeat('x', 31),
422  ],
423  'namespace[@any/value] ? x^32' => [
424  'namespace',
425  '@any/value',
426  str_repeat('x', 32),
427  ],
428  'namespace[@any/value] ? md5(namespace__@any__value)' => [
429  'namespace',
430  '@any/value',
431  md5('namespace__@any__value'),
432  ],
433  'namespace[@any/value] ? namespace/@any/value' => [
434  'namespace',
435  '@any/value',
436  'namespace/@any/value',
437  'The requested URL is not distinct',
438  ],
439  'namespace[@any/value] ? md5(namespace__@any__other)' => [
440  'namespace',
441  '@any/value',
442  md5('namespace__@any__other'),
443  ],
444  'namespace[@any/value] ? namespace/@any/other' => [
445  'namespace',
446  '@any/value',
447  'namespace/@any/other',
448  ],
449  ];
450  }
451 
456  public function ‪routeIdentifiersAreResolved(string $namespace, string $argumentName, string $queryPath, string $failureReason = null): void
457  {
458  $query = [];
459  $routeValue = 'route-value';
460  $queryValue = 'parameter-value';
461  $query = ‪ArrayUtility::setValueByPath($query, $queryPath, $queryValue);
462  $queryParameters = http_build_query($query, '', '&', PHP_QUERY_RFC3986);
463  $targetUri = sprintf('https://acme.us/welcome/%s?%s', $routeValue, $queryParameters);
464 
465  $this->‪mergeSiteConfiguration('acme-com', [
466  'routeEnhancers' => ['Enhancer' => [
467  'type' => 'Plugin',
468  'routePath' => '/{name}',
469  '_arguments' => [
470  'name' => $argumentName,
471  ],
472  'namespace' => $namespace,
473  ]],
474  ]);
475 
476  $response = $this->executeFrontendSubRequest(
477  new InternalRequest($targetUri),
478  null,
479  true
480  );
481 
482  $body = (string)$response->getBody();
483  if ($failureReason === null) {
484  $pageArguments = json_decode($body, true);
485  self::assertNotNull($pageArguments, 'PageArguments could not be resolved');
486 
487  $expected = [];
488  $expected = ‪ArrayUtility::setValueByPath($expected, $namespace . '/' . $argumentName, $routeValue);
489  $expected = ‪ArrayUtility::setValueByPath($expected, $queryPath, $queryValue);
490  self::assertEquals($expected, $pageArguments['requestQueryParams']);
491  } else {
492  self::assertStringContainsString($failureReason, $body);
493  }
494  }
495 
496  public static function ‪nestedRouteArgumentsAreConsideredDataProvider(): array
497  {
498  $routePath = ‪VariableValue::create(
499  '/enhance/[[routeParameter]]',
500  ‪Variables::create(['routeParameter' => '{known_value}'])
501  );
502  $cHashVar = ‪Variable::create('cHash', ‪Variable::CAST_STRING);
503  $resolveValueVar = ‪Variable::create('resolveValue', ‪Variable::CAST_STRING);
504  // variables (applied when invoking expectations)
505  $variables = ‪Variables::create()->define([
506  'aspectName' => 'value',
507  ]);
508  $enhancers = [
509  'Simple' => ‪EnhancerDeclaration::create('Simple')
510  ->withConfiguration([
511  'type' => 'Simple',
512  'routePath' => $routePath,
513  '_arguments' => [
514  'known_value' => 'known/value',
515  ],
516  ])
517  ->withGenerateParameters([
518  ‪VariableValue::create('&known[value]=[[value]]&any[other]=other')
519  ->withRequiredDefinedVariableNames('value'),
520  ])
521  ->withResolveArguments([
522  'routeArguments' => [
523  'known' => ['value' => $resolveValueVar],
524  ],
525  'dynamicArguments' => [
526  'known' => ['value' => $resolveValueVar],
527  'any' => ['other' => 'other'],
528  'cHash' => $cHashVar,
529  ],
530  'queryArguments' => [
531  'any' => ['other' => 'other'],
532  'cHash' => $cHashVar,
533  ],
534  ]),
535  'Plugin' => ‪EnhancerDeclaration::create('Plugin')
536  ->withConfiguration([
537  'type' => 'Plugin',
538  'routePath' => $routePath,
539  'namespace' => 'testing',
540  '_arguments' => [
541  'known_value' => 'known/value',
542  ],
543  ])
544  ->withGenerateParameters([
545  ‪VariableValue::create('&testing[known][value]=[[value]]&testing[any][other]=other')
546  ->withRequiredDefinedVariableNames('value'),
547  ])
548  ->withResolveArguments([
549  'routeArguments' => [
550  'testing' => [
551  'known' => ['value' => $resolveValueVar],
552  ],
553  ],
554  'dynamicArguments' => [
555  'testing' => [
556  'known' => ['value' => $resolveValueVar],
557  'any' => ['other' => 'other'],
558  ],
559  'cHash' => $cHashVar,
560  ],
561  'queryArguments' => [
562  'testing' => [
563  'any' => ['other' => 'other'],
564  ],
565  'cHash' => $cHashVar,
566  ],
567  ]),
568  'Extbase' => ‪EnhancerDeclaration::create('Extbase')
569  ->withConfiguration([
570  'type' => 'Extbase',
571  'defaultController' => 'Link::index',
572  'extension' => 'testing',
573  'plugin' => 'link',
574  'routes' => [
575  [
576  'routePath' => $routePath,
577  '_controller' => 'Link::index',
578  '_arguments' => ['known_value' => 'known/value'],
579  ],
580  ],
581  ])
582  ->withGenerateParameters([
583  ‪VariableValue::create('&tx_testing_link[known][value]=[[value]]&tx_testing_link[any][other]=other')
584  ->withRequiredDefinedVariableNames('value'),
585  ])
586  ->withResolveArguments([
587  'routeArguments' => [
588  'tx_testing_link' => [
589  'known' => ['value' => $resolveValueVar],
590  'controller' => 'Link',
591  'action' => 'index',
592  ],
593  ],
594  'dynamicArguments' => [
595  'tx_testing_link' => [
596  'known' => ['value' => $resolveValueVar],
597  'any' => ['other' => 'other'],
598  ],
599  'cHash' => $cHashVar,
600  ],
601  'staticArguments' => [
602  'tx_testing_link' => [
603  'controller' => 'Link',
604  'action' => 'index',
605  ],
606  ],
607  'queryArguments' => [
608  'tx_testing_link' => [
609  'any' => ['other' => 'other'],
610  ],
611  'cHash' => $cHashVar,
612  ],
613  ]),
614  ];
615 
616  return ‪Permutation::create($variables)
617  ->withTargets(
619  ->withMergedApplicables(‪LanguageContext::create(0))
620  ->withTargetPageId(1100)
621  ->withUrl(
623  'https://acme.us/welcome/enhance/[[resolveValue]][[pathSuffix]]',
624  ‪Variables::create(['pathSuffix' => ''])
625  )
626  )
627  )
628  ->withApplicableSet(
630  'value' => 'known',
631  'resolveValue' => 'known',
632  ]))
633  )
634  ->withApplicableItems($enhancers)
635  ->withApplicableSet(
637  'pathSuffix' => '?any%5Bother%5D=other&cHash=[[cHash]]',
638  'cHash' => 'a655d1f1d346f7d3fa7aef5459a6547f',
639  ]))->withRequiredApplicables($enhancers['Simple']),
641  'pathSuffix' => '?testing%5Bany%5D%5Bother%5D=other&cHash=[[cHash]]',
642  'cHash' => 'bfd5274d1f8a5051f44ca703a0dbd359',
643  ]))->withRequiredApplicables($enhancers['Plugin']),
645  'pathSuffix' => '?tx_testing_link%5Bany%5D%5Bother%5D=other&cHash=[[cHash]]',
646  'cHash' => '0d1b27ac1cc957c16c9c02cf24f90af4',
647  ]))->withRequiredApplicables($enhancers['Extbase'])
648  )
649  ->permute()
650  ->getTargetsForDataProvider();
651  }
652 
657  public function ‪nestedRouteArgumentsAreConsidered(‪TestSet $testSet): void
658  {
659  $this->‪assertPageArgumentsEquals($testSet);
660  }
661 }
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\EnhancerSiteRequest
Definition: AbstractEnhancerSiteRequestTestCase.php:18
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\ExceptionExpectation\create
‪static create(string $identifier)
Definition: ExceptionExpectation.php:27
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\Variable
Definition: Variable.php:21
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\EnhancerSiteRequest\AbstractEnhancerSiteRequestTestCase\assertPageArgumentsEquals
‪assertPageArgumentsEquals(TestSet $testSet)
Definition: AbstractEnhancerSiteRequestTestCase.php:114
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\EnhancerSiteRequest\RouteTest\routeRequirementsAreConsideredDataProvider
‪static routeRequirementsAreConsideredDataProvider()
Definition: RouteTest.php:209
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\EnhancerSiteRequest\RouteTest
Definition: RouteTest.php:38
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\Permutation
Definition: Permutation.php:23
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\VariableItem\create
‪static create(string $key, $value)
Definition: VariableItem.php:31
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\EnhancerSiteRequest\RouteTest\routeRequirementsAreConsidered
‪routeRequirementsAreConsidered(TestSet $testSet)
Definition: RouteTest.php:308
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\EnhancerSiteRequest\RouteTest\routeRequirementsHavingAspectsAreConsideredDataProvider
‪static routeRequirementsHavingAspectsAreConsideredDataProvider()
Definition: RouteTest.php:131
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\AspectDeclaration\create
‪static create(string $identifier)
Definition: AspectDeclaration.php:25
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\ApplicableConjunction\create
‪static create(Applicable ... $applicables)
Definition: ApplicableConjunction.php:27
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\Variables
Definition: Variables.php:21
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\EnhancerSiteRequest\RouteTest\routeDefaultsAreConsideredDataProvider
‪static routeDefaultsAreConsideredDataProvider()
Definition: RouteTest.php:39
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\VariablesContext\create
‪static create(Variables $variables)
Definition: VariablesContext.php:29
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\VariablesContext
Definition: VariablesContext.php:21
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\Permutation\create
‪static create(Variables $variables)
Definition: Permutation.php:41
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\TestSet
Definition: TestSet.php:21
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\Builder
Definition: Builder.php:21
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\Builder\create
‪static create()
Definition: Builder.php:22
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\VariableValue\create
‪static create(string $value, Variables $defaultVariables=null)
Definition: VariableValue.php:37
‪TYPO3\CMS\Core\Error\Http\PageNotFoundException
Definition: PageNotFoundException.php:24
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\Variables\create
‪static create(array $items=[])
Definition: Variables.php:22
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\EnhancerDeclaration\create
‪static create(string $identifier)
Definition: EnhancerDeclaration.php:27
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\AspectDeclaration
Definition: AspectDeclaration.php:21
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\ExceptionExpectation
Definition: ExceptionExpectation.php:21
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\EnhancerSiteRequest\RouteTest\routeRequirementsHavingAspectsAreConsidered
‪routeRequirementsHavingAspectsAreConsidered(TestSet $testSet)
Definition: RouteTest.php:204
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\EnhancerSiteRequest\RouteTest\nestedRouteArgumentsAreConsidered
‪nestedRouteArgumentsAreConsidered(TestSet $testSet)
Definition: RouteTest.php:657
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\EnhancerSiteRequest\AbstractEnhancerSiteRequestTestCase
Definition: AbstractEnhancerSiteRequestTestCase.php:31
‪TYPO3\CMS\Core\Utility\ArrayUtility
Definition: ArrayUtility.php:26
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\VariableItem
Definition: VariableItem.php:21
‪TYPO3\CMS\Core\Utility\ArrayUtility\setValueByPath
‪static array setValueByPath(array $array, string|array|\ArrayAccess $path, mixed $value, string $delimiter='/')
Definition: ArrayUtility.php:261
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\EnhancerSiteRequest\RouteTest\routeIdentifiersAreResolvedDataProvider
‪static routeIdentifiersAreResolvedDataProvider()
Definition: RouteTest.php:313
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\EnhancerSiteRequest\RouteTest\nestedRouteArgumentsAreConsideredDataProvider
‪static nestedRouteArgumentsAreConsideredDataProvider()
Definition: RouteTest.php:496
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\LanguageContext
Definition: LanguageContext.php:21
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\EnhancerSiteRequest\RouteTest\routeDefaultsAreConsidered
‪routeDefaultsAreConsidered(TestSet $testSet)
Definition: RouteTest.php:126
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\ApplicableConjunction
Definition: ApplicableConjunction.php:21
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\VariableValue
Definition: VariableValue.php:21
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\EnhancerDeclaration
Definition: EnhancerDeclaration.php:21
‪TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait\mergeSiteConfiguration
‪mergeSiteConfiguration(string $identifier, array $overrides)
Definition: SiteBasedTestTrait.php:78
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\TestSet\create
‪static create($parentSet=null)
Definition: TestSet.php:33
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\LanguageContext\create
‪static create(int $languageId)
Definition: LanguageContext.php:24
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\EnhancerSiteRequest\RouteTest\routeIdentifiersAreResolved
‪routeIdentifiersAreResolved(string $namespace, string $argumentName, string $queryPath, string $failureReason=null)
Definition: RouteTest.php:456
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\Variable\create
‪static create(string $variableName, int $cast=self::CAST_NONE)
Definition: Variable.php:30
‪TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Framework\Builder\Variable\CAST_STRING
‪const CAST_STRING
Definition: Variable.php:23