REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 3.94 KB
Close
//opt/cpanel/ea-wappspector/vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php
Text
Base64
<?php declare(strict_types=1); /* * This file is part of PHPUnit. * * (c) Sebastian Bergmann <sebastian@phpunit.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PHPUnit\Runner; use function array_diff; use function array_values; use function basename; use function get_declared_classes; use function realpath; use function str_ends_with; use function strpos; use function strtolower; use function substr; use PHPUnit\Framework\TestCase; use ReflectionClass; /** * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit * * @internal This class is not covered by the backward compatibility promise for PHPUnit */ final class TestSuiteLoader { /** * @psalm-var list<class-string> */ private static array $declaredClasses = []; /** * @psalm-var array<non-empty-string, list<class-string>> */ private static array $fileToClassesMap = []; /** * @throws Exception */ public function load(string $suiteClassFile): ReflectionClass { $suiteClassFile = realpath($suiteClassFile); $suiteClassName = $this->classNameFromFileName($suiteClassFile); $loadedClasses = $this->loadSuiteClassFile($suiteClassFile); foreach ($loadedClasses as $className) { /** @noinspection PhpUnhandledExceptionInspection */ $class = new ReflectionClass($className); if ($class->isAnonymous()) { continue; } if ($class->getFileName() !== $suiteClassFile) { continue; } if (!$class->isSubclassOf(TestCase::class)) { continue; } if (!str_ends_with(strtolower($class->getShortName()), strtolower($suiteClassName))) { continue; } if (!$class->isAbstract()) { return $class; } $e = new ClassIsAbstractException($class->getName(), $suiteClassFile); } if (isset($e)) { throw $e; } foreach ($loadedClasses as $className) { if (str_ends_with(strtolower($className), strtolower($suiteClassName))) { throw new ClassDoesNotExtendTestCaseException($className, $suiteClassFile); } } throw new ClassCannotBeFoundException($suiteClassName, $suiteClassFile); } private function classNameFromFileName(string $suiteClassFile): string { $className = basename($suiteClassFile, '.php'); $dotPos = strpos($className, '.'); if ($dotPos !== false) { $className = substr($className, 0, $dotPos); } return $className; } /** * @psalm-return list<class-string> */ private function loadSuiteClassFile(string $suiteClassFile): array { if (isset(self::$fileToClassesMap[$suiteClassFile])) { return self::$fileToClassesMap[$suiteClassFile]; } if (empty(self::$declaredClasses)) { self::$declaredClasses = get_declared_classes(); } require_once $suiteClassFile; $loadedClasses = array_values( array_diff( get_declared_classes(), self::$declaredClasses, ), ); foreach ($loadedClasses as $loadedClass) { /** @noinspection PhpUnhandledExceptionInspection */ $class = new ReflectionClass($loadedClass); if (!isset(self::$fileToClassesMap[$class->getFileName()])) { self::$fileToClassesMap[$class->getFileName()] = []; } self::$fileToClassesMap[$class->getFileName()][] = $class->getName(); } self::$declaredClasses = get_declared_classes(); if (empty($loadedClasses)) { return self::$declaredClasses; } return $loadedClasses; } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 7 × Files: 6
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
Baseline
DIR
-
drwxr-xr-x
2026-01-27 05:48:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Exception
DIR
-
drwxr-xr-x
2026-01-27 05:48:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Extension
DIR
-
drwxr-xr-x
2026-01-27 05:48:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Filter
DIR
-
drwxr-xr-x
2026-01-27 05:48:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
GarbageCollection
DIR
-
drwxr-xr-x
2026-01-27 05:48:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ResultCache
DIR
-
drwxr-xr-x
2026-01-27 05:48:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
TestResult
DIR
-
drwxr-xr-x
2026-01-27 05:48:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CodeCoverage.php
13.76 KB
lrw-r--r--
2026-01-27 05:48:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ErrorHandler.php
6.39 KB
lrw-r--r--
2026-01-27 05:48:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
PhptTestCase.php
23.98 KB
lrw-r--r--
2026-01-27 05:48:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
TestSuiteLoader.php
3.94 KB
lrw-r--r--
2026-01-27 05:48:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
TestSuiteSorter.php
8.62 KB
lrw-r--r--
2026-01-27 05:48:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Version.php
1.57 KB
lrw-r--r--
2026-01-27 05:48:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).