2020-01-23 18:39:23 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
use MediaWiki\Languages\LanguageConverterFactory;
|
|
|
|
|
use MediaWiki\MediaWikiServices;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @group Language
|
|
|
|
|
*/
|
2020-06-30 15:09:24 +00:00
|
|
|
class LanguageConverterIntegrationTest extends MediaWikiIntegrationTestCase {
|
2020-01-23 18:39:23 +00:00
|
|
|
|
|
|
|
|
/** @var LanguageConverterFactory */
|
|
|
|
|
private $factory;
|
|
|
|
|
|
2020-12-23 10:03:34 +00:00
|
|
|
protected function setUp() : void {
|
|
|
|
|
parent::setUp();
|
2021-02-07 13:10:36 +00:00
|
|
|
$this->factory = new LanguageConverterFactory( false, false, false, static function () {
|
2020-12-23 10:03:34 +00:00
|
|
|
$language = MediaWikiServices::getInstance()->getContentLanguage();
|
|
|
|
|
} );
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-23 18:39:23 +00:00
|
|
|
/**
|
|
|
|
|
* 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' );
|
|
|
|
|
}
|
|
|
|
|
}
|