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
44 lines
1.3 KiB
PHP
44 lines
1.3 KiB
PHP
<?php
|
|
|
|
use MediaWiki\Languages\LanguageConverterFactory;
|
|
use MediaWiki\MediaWikiServices;
|
|
|
|
/**
|
|
* @group Language
|
|
*/
|
|
class LanguageConverterIntegrationTest extends MediaWikiTestCase {
|
|
|
|
/** @var LanguageConverterFactory */
|
|
private $factory;
|
|
|
|
/**
|
|
* Shorthand for getting a Language Converter for specific language's code
|
|
* @param string $code code of converter
|
|
* @return ILanguageConverter
|
|
*/
|
|
private function getLanguageConverter( $code ) : ILanguageConverter {
|
|
$language = MediaWikiServices::getInstance()->getLanguageFactory()
|
|
->getLanguage( $code );
|
|
return $this->factory->getLanguageConverter( $language );
|
|
}
|
|
|
|
public function setUp() : void {
|
|
$this->factory = new LanguageConverterFactory( false, function () {
|
|
$language = MediaWikiServices::getInstance()->getContentLanguage();
|
|
} );
|
|
parent::setUp();
|
|
}
|
|
|
|
/**
|
|
* @covers LanguageConverter::hasVariant
|
|
*/
|
|
public function testHasVariant() {
|
|
// See LanguageSrTest::testHasVariant() for additional tests
|
|
$converterEn = $this->getLanguageConverter( 'en' );
|
|
$this->assertTrue( $converterEn->hasVariant( 'en' ), 'base is always a variant' );
|
|
$this->assertFalse( $converterEn->hasVariant( 'en-bogus' ), 'bogus en variant' );
|
|
|
|
$converterBogus = $this->getLanguageConverter( 'bogus' );
|
|
$this->assertTrue( $converterBogus->hasVariant( 'bogus' ), 'base is always a variant' );
|
|
}
|
|
}
|