diff --git a/Classes/Middleware/FallbackMiddleware.php b/Classes/Middleware/FallbackMiddleware.php index 2d9b5b8b417..9dde2419741 100644 --- a/Classes/Middleware/FallbackMiddleware.php +++ b/Classes/Middleware/FallbackMiddleware.php @@ -126,7 +126,7 @@ protected function getHeaders(ServerRequestInterface $request, string &$possible protected function getCacheConfiguration(string $possibleStaticFile): array { $configFile = $possibleStaticFile . '.config.json'; - if (is_file($configFile) || !is_readable($configFile)) { + if (is_file($configFile) && is_readable($configFile)) { return (array) json_decode((string) GeneralUtility::getUrl($configFile), true); } diff --git a/Tests/Unit/Middleware/FallbackMiddlewareTest.php b/Tests/Unit/Middleware/FallbackMiddlewareTest.php new file mode 100644 index 00000000000..4986a04524d --- /dev/null +++ b/Tests/Unit/Middleware/FallbackMiddlewareTest.php @@ -0,0 +1,41 @@ +newInstanceWithoutConstructor(); + $possibleStaticFile = sys_get_temp_dir() . '/staticfilecache-' . bin2hex(random_bytes(8)) . '/index'; + + set_error_handler( + static function (int $severity, string $message, string $file, int $line): never { + throw new \ErrorException($message, 0, $severity, $file, $line); + }, + ); + + try { + self::assertSame([], $subject->getCacheConfigurationForTest($possibleStaticFile)); + } finally { + restore_error_handler(); + } + } +} + +final class TestableFallbackMiddleware extends FallbackMiddleware +{ + public function getCacheConfigurationForTest(string $possibleStaticFile): array + { + return parent::getCacheConfiguration($possibleStaticFile); + } +}