Localisation updates from https://translatewiki.net.
[mediawiki.git] / tests / phpunit / suites / ExtensionsUnitTestSuite.php
blobeed59a6746cf3a74f132ebf98e49e060ef0a60af
1 <?php
3 use PHPUnit\Framework\TestSuite;
4 use SebastianBergmann\FileIterator\Facade;
6 /**
7 * Test suite that runs extensions unit tests (the `extensions:unit` suite).
8 */
9 class ExtensionsUnitTestSuite extends TestSuite {
10 public function __construct() {
11 parent::__construct();
13 if ( !defined( 'MW_PHPUNIT_EXTENSIONS_PATHS' ) ) {
14 throw new RuntimeException( 'The PHPUnit bootstrap was not loaded' );
16 $paths = [];
17 foreach ( MW_PHPUNIT_EXTENSIONS_PATHS as $path ) {
18 // Note that we don't load settings, so we expect to find extensions in their
19 // default location
20 // Standardize directory separators for Windows compatibility.
21 if ( str_contains( strtr( $path, '\\', '/' ), '/extensions/' ) ) {
22 $paths[] = "$path/tests/phpunit/unit";
25 foreach ( array_unique( $paths ) as $path ) {
26 $suffixes = [ 'Test.php' ];
27 $fileIterator = new Facade();
28 $matchingFiles = $fileIterator->getFilesAsArray( $path, $suffixes );
29 $this->addTestFiles( $matchingFiles );
33 public static function suite() {
34 return new self;