wiki.techinc.nl/tests/phpunit/languages/LanguageConverterIntegrationTest.php
Umherirrender a9bc9f8a04 Use ObjectFactory in LanguageConverterFactory
Use the object factory to inject service into TrivialLanguageConverter
class.
The other language converter classes does not use service directly.
The classes are using indirectly services in some function of
the parent class, which needs injection as well (tracked with T294185).

Needs fallback to global state in TrivialLanguageConverter, because the
class is used in extensions integration tests

Change-Id: If72d054d062a4f357e12c5b168e118bfafffd626
2022-02-24 17:47:09 +01:00

50 lines
1.4 KiB
PHP

<?php
use MediaWiki\Languages\LanguageConverterFactory;
use MediaWiki\MediaWikiServices;
/**
* @group Language
*/
class LanguageConverterIntegrationTest extends MediaWikiIntegrationTestCase {
/** @var LanguageConverterFactory */
private $factory;
protected function setUp(): void {
parent::setUp();
$this->factory = new LanguageConverterFactory(
MediaWikiServices::getInstance()->getObjectFactory(),
false,
false,
false,
static function () {
return MediaWikiServices::getInstance()->getContentLanguage();
}
);
}
/**
* 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 );
}
/**
* @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' );
}
}