Done: * Replace LanguageConverter::newConverter by LanguageConverterFactory::getLanguageConverter * Remove LanguageConverter::newConverter from all subclasses * Add LanguageConverterFactory integration tests which covers all languages by their code. * Caching of LanguageConverters in factory * Make all tests running (hope that's would be enough) * Uncomment the deprecated functions. * Rename FakeConverter to TrivialLanguageConverter * Create ILanguageConverter to have shared ancestor * Make the LanguageConverter class abstract. * Create table with mapping between lang code and converter instead of using name convention * ILanguageConverter @internal * Clean up code Change-Id: I0e4d77de0f44e18c19956a1ffd69d30e63cf51bf Bug: T226833, T243332
41 lines
1.1 KiB
PHP
41 lines
1.1 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @group Language
|
|
* @coversDefaultClass Language
|
|
*/
|
|
class LanguageFallbackStaticMethodsTest extends MediaWikiIntegrationTestCase {
|
|
use LanguageFallbackTestTrait {
|
|
callMethod as protected traitCallMethod;
|
|
}
|
|
|
|
private function getCallee( array $options = [] ) {
|
|
if ( isset( $options['siteLangCode'] ) ) {
|
|
$this->setMwGlobals( 'wgLanguageCode', $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 Language::MESSAGES_FALLBACKS;
|
|
}
|
|
|
|
private function getStrictKey() {
|
|
return Language::STRICT_FALLBACKS;
|
|
}
|
|
}
|