As we slowly move away from using globals, overrideConfigValue() and overrideConfigValues() were introduced as a way to override test configs between tests. Under the hood, it just calls setMwGlobals() which resets services, so take note. Part 1: Directories covered are: languages/, maintenance/, tests/, structure/ and includes/Permissions/. Depends-On: I618b16c6d99c94eb2e7edcf05e888a65f7156754 Change-Id: If56f7d10d79f3a9824a52091a2b544d8653dd7b6
44 lines
1.2 KiB
PHP
44 lines
1.2 KiB
PHP
<?php
|
|
|
|
use MediaWiki\Languages\LanguageFallback;
|
|
use MediaWiki\MainConfigNames;
|
|
|
|
/**
|
|
* @group Language
|
|
* @coversDefaultClass Language
|
|
*/
|
|
class LanguageFallbackStaticMethodsTest extends MediaWikiIntegrationTestCase {
|
|
use LanguageFallbackTestTrait {
|
|
callMethod as protected traitCallMethod;
|
|
}
|
|
|
|
private function getCallee( array $options = [] ) {
|
|
if ( isset( $options['siteLangCode'] ) ) {
|
|
$this->overrideConfigValue( MainConfigNames::LanguageCode, $options['siteLangCode'] );
|
|
}
|
|
if ( isset( $options['fallbackMap'] ) ) {
|
|
$this->setService( 'LocalisationCache', $this->getMockLocalisationCache(
|
|
1, $options['fallbackMap'] ) );
|
|
}
|
|
return Language::class;
|
|
}
|
|
|
|
private function callMethod( $callee, $method, ...$args ) {
|
|
if ( $method === 'getFirst' ) {
|
|
$method = 'getFallbackFor';
|
|
} elseif ( $method === 'getAll' ) {
|
|
$method = 'getFallbacksFor';
|
|
} elseif ( $method === 'getAllIncludingSiteLanguage' ) {
|
|
$method = 'getFallbacksIncludingSiteLanguage';
|
|
}
|
|
return $this->traitCallMethod( $callee, $method, ...$args );
|
|
}
|
|
|
|
private function getMessagesKey() {
|
|
return LanguageFallback::MESSAGES;
|
|
}
|
|
|
|
private function getStrictKey() {
|
|
return LanguageFallback::STRICT;
|
|
}
|
|
}
|