|
30 | 30 | use TYPO3\CMS\Core\Core\Environment; |
31 | 31 | use TYPO3\CMS\Core\Database\Connection; |
32 | 32 | use TYPO3\CMS\Core\Database\ConnectionPool; |
| 33 | +use TYPO3\CMS\Core\Http\Application as CoreHttpApplication; |
33 | 34 | use TYPO3\CMS\Core\Http\NormalizedParams; |
34 | 35 | use TYPO3\CMS\Core\Http\ServerRequest; |
35 | 36 | use TYPO3\CMS\Core\Http\Stream; |
@@ -496,15 +497,20 @@ private function createServerRequest(string $url, string $method = 'GET'): Serve |
496 | 497 | { |
497 | 498 | $requestUrlParts = parse_url($url); |
498 | 499 | $docRoot = $this->instancePath; |
| 500 | + |
| 501 | + // @todo: Remove when dropping support for v12 |
| 502 | + $hasConsolidatedHttpEntryPoint = class_exists(CoreHttpApplication::class); |
| 503 | + $scriptPrefix = $hasConsolidatedHttpEntryPoint ? '' : '/typo3'; |
| 504 | + |
499 | 505 | $serverParams = [ |
500 | 506 | 'DOCUMENT_ROOT' => $docRoot, |
501 | 507 | 'HTTP_USER_AGENT' => 'TYPO3 Functional Test Request', |
502 | 508 | 'HTTP_HOST' => $requestUrlParts['host'] ?? 'localhost', |
503 | 509 | 'SERVER_NAME' => $requestUrlParts['host'] ?? 'localhost', |
504 | 510 | 'SERVER_ADDR' => '127.0.0.1', |
505 | 511 | 'REMOTE_ADDR' => '127.0.0.1', |
506 | | - 'SCRIPT_NAME' => '/typo3/index.php', |
507 | | - 'PHP_SELF' => '/typo3/index.php', |
| 512 | + 'SCRIPT_NAME' => $scriptPrefix . '/index.php', |
| 513 | + 'PHP_SELF' => $scriptPrefix . '/index.php', |
508 | 514 | 'SCRIPT_FILENAME' => $docRoot . '/index.php', |
509 | 515 | 'PATH_TRANSLATED' => $docRoot . '/index.php', |
510 | 516 | 'QUERY_STRING' => $requestUrlParts['query'] ?? '', |
@@ -944,19 +950,23 @@ private function retrieveFrontendSubRequestResult( |
944 | 950 | FrameworkState::push(); |
945 | 951 | FrameworkState::reset(); |
946 | 952 |
|
947 | | - // Re-init Environment $currentScript: Entry point to FE calls is /index.php, not /typo3/index.php |
948 | | - // see also \TYPO3\TestingFramework\Core\SystemEnvironmentBuilder |
949 | | - Environment::initialize( |
950 | | - Environment::getContext(), |
951 | | - Environment::isCli(), |
952 | | - false, |
953 | | - Environment::getProjectPath(), |
954 | | - Environment::getPublicPath(), |
955 | | - Environment::getVarPath(), |
956 | | - Environment::getConfigPath(), |
957 | | - Environment::getPublicPath() . '/index.php', |
958 | | - Environment::isWindows() ? 'WINDOWS' : 'UNIX' |
959 | | - ); |
| 953 | + // @todo: Remove when dropping support for v12 |
| 954 | + $hasConsolidatedHttpEntryPoint = class_exists(CoreHttpApplication::class); |
| 955 | + if (!$hasConsolidatedHttpEntryPoint) { |
| 956 | + // Re-init Environment $currentScript: Entry point to FE calls is /index.php, not /typo3/index.php |
| 957 | + // see also \TYPO3\TestingFramework\Core\SystemEnvironmentBuilder |
| 958 | + Environment::initialize( |
| 959 | + Environment::getContext(), |
| 960 | + Environment::isCli(), |
| 961 | + false, |
| 962 | + Environment::getProjectPath(), |
| 963 | + Environment::getPublicPath(), |
| 964 | + Environment::getVarPath(), |
| 965 | + Environment::getConfigPath(), |
| 966 | + Environment::getPublicPath() . '/index.php', |
| 967 | + Environment::isWindows() ? 'WINDOWS' : 'UNIX' |
| 968 | + ); |
| 969 | + } |
960 | 970 |
|
961 | 971 | // Needed for GeneralUtility::getIndpEnv('SCRIPT_NAME') to return correct value |
962 | 972 | // instead of 'vendor/phpunit/phpunit/phpunit', used eg. in TypoScriptFrontendController absRefPrefix='auto' |
@@ -1023,19 +1033,22 @@ private function retrieveFrontendSubRequestResult( |
1023 | 1033 |
|
1024 | 1034 | FrameworkState::pop(); |
1025 | 1035 |
|
1026 | | - // Reset Environment $currentScript: Entry point is /typo3/index.php again. |
1027 | | - // see also \TYPO3\TestingFramework\Core\SystemEnvironmentBuilder |
1028 | | - Environment::initialize( |
1029 | | - Environment::getContext(), |
1030 | | - Environment::isCli(), |
1031 | | - false, |
1032 | | - Environment::getProjectPath(), |
1033 | | - Environment::getPublicPath(), |
1034 | | - Environment::getVarPath(), |
1035 | | - Environment::getConfigPath(), |
1036 | | - Environment::getPublicPath() . '/typo3/index.php', |
1037 | | - Environment::isWindows() ? 'WINDOWS' : 'UNIX' |
1038 | | - ); |
| 1036 | + // @todo: Remove when dropping support for v12 |
| 1037 | + if (!$hasConsolidatedHttpEntryPoint) { |
| 1038 | + // Reset Environment $currentScript: Entry point is /typo3/index.php again. |
| 1039 | + // see also \TYPO3\TestingFramework\Core\SystemEnvironmentBuilder |
| 1040 | + Environment::initialize( |
| 1041 | + Environment::getContext(), |
| 1042 | + Environment::isCli(), |
| 1043 | + false, |
| 1044 | + Environment::getProjectPath(), |
| 1045 | + Environment::getPublicPath(), |
| 1046 | + Environment::getVarPath(), |
| 1047 | + Environment::getConfigPath(), |
| 1048 | + Environment::getPublicPath() . '/typo3/index.php', |
| 1049 | + Environment::isWindows() ? 'WINDOWS' : 'UNIX' |
| 1050 | + ); |
| 1051 | + } |
1039 | 1052 | } |
1040 | 1053 | return $response; |
1041 | 1054 | } |
|
0 commit comments