blob: d6f2a6e5982f5ab772f78c12e09b5f23f2287854 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
<?php
declare( strict_types = 1 );
namespace Maps\Tests\Integration;
use MediaWiki\MediaWikiServices;
use PHPUnit\Framework\TestCase;
use ResourceLoader;
class ResourceModulesTest extends TestCase {
/**
* @dataProvider mapsModuleNameProvider
*/
public function testDependenciesExist( string $moduleName ) {
$resourceLoader = $this->getResourceLoader();
$module = $resourceLoader->getModule( $moduleName );
if ( $module->getDependencies() === [] ) {
$this->assertTrue( true );
}
else {
foreach ( $module->getDependencies() as $dependency ) {
$this->assertNotNull(
$resourceLoader->getModule( $dependency ),
'Dependency ' . $dependency . ' should exist'
);
}
}
}
public function mapsModuleNameProvider() {
foreach ( $this->getResourceLoader()->getModuleNames() as $name ) {
if ( $this->isMapsModule( $name ) ) {
yield $name => [ $name ];
}
}
}
private function isMapsModule( string $name ): bool {
$modulePrefix = 'ext.maps.';
return substr( $name, 0, strlen( $modulePrefix ) ) === $modulePrefix;
}
private function getResourceLoader(): ResourceLoader {
$mwServices = MediaWikiServices::getInstance();
if ( method_exists( $mwServices, 'getResourceLoader' ) ) {
return $mwServices->getResourceLoader();
}
return new ResourceLoader();
}
}
|