// All FileRepo changes should be done here by injecting services,
// there should be no need to change global variables.
- RepoGroup::setSingleton( $this->createRepoGroup() );
+ MediaWikiServices::getInstance()->disableService( 'RepoGroup' );
+ MediaWikiServices::getInstance()->redefineService( 'RepoGroup',
+ function () {
+ return $this->createRepoGroup();
+ }
+ );
$teardown[] = function () {
- RepoGroup::destroySingleton();
+ MediaWikiServices::getInstance()->resetServiceForTesting( 'RepoGroup' );
};
// Set up null lock managers
100 => 'MemoryAlpha',
101 => 'MemoryAlpha_talk'
];
- // Changing wgExtraNamespaces invalidates caches in MWNamespace and
- // any live Language object, both on setup and teardown
+ // Changing wgExtraNamespaces invalidates caches in NamespaceInfo and any live Language
+ // object, both on setup and teardown
$reset = function () {
- MWNamespace::clearCaches();
+ MediaWikiServices::getInstance()->resetServiceForTesting( 'NamespaceInfo' );
MediaWikiServices::getInstance()->getContentLanguage()->resetNamespaces();
};
$setup[] = $reset;
'transformVia404' => false,
'backend' => $backend
],
- []
+ [],
+ MediaWikiServices::getInstance()->getMainWANObjectCache()
);
}
/**
* Reset the Title-related services that need resetting
* for each test
+ *
+ * @todo We need to reset all services on every test
*/
private function resetTitleServices() {
$services = MediaWikiServices::getInstance();
$services->resetServiceForTesting( '_MediaWikiTitleCodec' );
$services->resetServiceForTesting( 'LinkRenderer' );
$services->resetServiceForTesting( 'LinkRendererFactory' );
+ $services->resetServiceForTesting( 'NamespaceInfo' );
}
/**
'wgLanguageCode' => $langCode,
'wgRawHtml' => self::getOptionValue( 'wgRawHtml', $opts, false ),
'wgNamespacesWithSubpages' => array_fill_keys(
- MWNamespace::getValidNamespaces(), isset( $opts['subpage'] )
+ MediaWikiServices::getInstance()->getNamespaceInfo()->getValidNamespaces(),
+ isset( $opts['subpage'] )
),
'wgMaxTocLevel' => $maxtoclevel,
'wgAllowExternalImages' => self::getOptionValue( 'wgAllowExternalImages', $opts, true ),
* @return bool True if tag hook is present
*/
public function requireHook( $name ) {
- global $wgParser;
+ $parser = MediaWikiServices::getInstance()->getParser();
- $wgParser->firstCallInit(); // make sure hooks are loaded.
- if ( isset( $wgParser->mTagHooks[$name] ) ) {
+ $parser->firstCallInit(); // make sure hooks are loaded.
+ if ( isset( $parser->mTagHooks[$name] ) ) {
return true;
} else {
$this->recorder->warning( " This test suite requires the '$name' hook " .
* @return bool True if function hook is present
*/
public function requireFunctionHook( $name ) {
- global $wgParser;
+ $parser = MediaWikiServices::getInstance()->getParser();
- $wgParser->firstCallInit(); // make sure hooks are loaded.
+ $parser->firstCallInit(); // make sure hooks are loaded.
- if ( isset( $wgParser->mFunctionHooks[$name] ) ) {
+ if ( isset( $parser->mFunctionHooks[$name] ) ) {
return true;
} else {
$this->recorder->warning( " This test suite requires the '$name' function " .
* @return bool True if function hook is present
*/
public function requireTransparentHook( $name ) {
- global $wgParser;
+ $parser = MediaWikiServices::getInstance()->getParser();
- $wgParser->firstCallInit(); // make sure hooks are loaded.
+ $parser->firstCallInit(); // make sure hooks are loaded.
- if ( isset( $wgParser->mTransparentTagHooks[$name] ) ) {
+ if ( isset( $parser->mTransparentTagHooks[$name] ) ) {
return true;
} else {
$this->recorder->warning( " This test suite requires the '$name' transparent " .