Merge "profiler: Centralise output responsibility from ProfilerOutputText to Profiler"
[lhc/web/wiklou.git] / tests / phpunit / includes / filebackend / FileBackendGroupIntegrationTest.php
1 <?php
2
3 use MediaWiki\MediaWikiServices;
4
5 /**
6 * @coversDefaultClass FileBackendGroup
7 * @covers ::singleton
8 * @covers ::destroySingleton
9 */
10 class FileBackendGroupIntegrationTest extends MediaWikiIntegrationTestCase {
11 use FileBackendGroupTestTrait;
12
13 private static function getWikiID() {
14 return wfWikiID();
15 }
16
17 private function getLockManagerGroupFactory() {
18 return MediaWikiServices::getInstance()->getLockManagerGroupFactory();
19 }
20
21 private function newObj( array $options = [] ) : FileBackendGroup {
22 $globals = [ 'DirectoryMode', 'FileBackends', 'ForeignFileRepos', 'LocalFileRepo' ];
23 foreach ( $globals as $global ) {
24 $this->setMwGlobals(
25 "wg$global", $options[$global] ?? self::getDefaultOptions()[$global] );
26 }
27
28 $serviceMembers = [
29 'configuredROMode' => 'ConfiguredReadOnlyMode',
30 'srvCache' => 'LocalServerObjectCache',
31 'wanCache' => 'MainWANObjectCache',
32 'mimeAnalyzer' => 'MimeAnalyzer',
33 'lmgFactory' => 'LockManagerGroupFactory',
34 'tmpFileFactory' => 'TempFSFileFactory',
35 ];
36
37 foreach ( $serviceMembers as $key => $name ) {
38 if ( isset( $options[$key] ) ) {
39 $this->setService( $name, $options[$key] );
40 }
41 }
42
43 $this->assertEmpty(
44 array_diff( array_keys( $options ), $globals, array_keys( $serviceMembers ) ) );
45
46 $this->resetServices();
47 FileBackendGroup::destroySingleton();
48
49 $services = MediaWikiServices::getInstance();
50
51 foreach ( $serviceMembers as $key => $name ) {
52 $this->$key = $services->getService( $name );
53 }
54
55 return FileBackendGroup::singleton();
56 }
57 }