wiki.techinc.nl/tests/phpunit/unit/includes/language/LanguageNameUtilsTest.php
Daimona Eaytoy 95e17ee645 Fix some unit tests accessing MediaWikiServices
These are mostly easy fixes. Tests were fixed when that didn't require
any change to the tested code, and moved to /integration otherwise.

MediaWikiUnitTestCase::setTemporaryHook was removed: the
caller should provide a HookContainer, at which point it would just
become a useless wrapper around HookContainer::register. (We don't
really need it to be temporary, if proper DI is used).
The method was only used in the tests touched by this commit.

Change-Id: I2aba02560c41b77eea9dd4bff0e4d1c4bb0da9a2
2020-11-12 19:13:47 +00:00

84 lines
2.3 KiB
PHP

<?php
use MediaWiki\Config\ServiceOptions;
use MediaWiki\HookContainer\HookContainer;
use MediaWiki\Languages\LanguageNameUtils;
class LanguageNameUtilsTest extends MediaWikiUnitTestCase {
/** @var HookContainer */
private $hookContainer;
protected function setUp(): void {
parent::setUp();
$this->hookContainer = $this->createHookContainer();
}
/**
* @param array $optionsArray
*/
private function newObj( array $optionsArray = [] ) : LanguageNameUtils {
// TODO Why is hookContainer unset here sometimes?
$this->hookContainer = $this->hookContainer ?? $this->createHookContainer();
return new LanguageNameUtils(
new ServiceOptions(
LanguageNameUtils::CONSTRUCTOR_OPTIONS,
$optionsArray,
[
'ExtraLanguageNames' => [],
'LanguageCode' => 'en',
'UsePigLatinVariant' => false,
]
),
$this->hookContainer
);
}
use LanguageNameUtilsTestTrait;
protected function setLanguageTemporaryHook( string $hookName, $handler ): void {
$this->hookContainer->register( $hookName, $handler );
}
private function isSupportedLanguage( $code ) {
return $this->newObj()->isSupportedLanguage( $code );
}
private function isValidCode( $code ) {
return $this->newObj()->isValidCode( $code );
}
private function isValidBuiltInCode( $code ) {
return $this->newObj()->isValidBuiltInCode( $code );
}
private function isKnownLanguageTag( $code ) {
return $this->newObj()->isKnownLanguageTag( $code );
}
private function assertGetLanguageNames( array $options, $expected, $code, ...$otherArgs ) {
$this->assertSame( $expected, $this->newObj( $options )
->getLanguageNames( ...$otherArgs )[strtolower( $code )] ?? '' );
$this->assertSame( $expected,
$this->newObj( $options )->getLanguageName( $code, ...$otherArgs ) );
}
private function getLanguageNames( ...$args ) {
return $this->newObj()->getLanguageNames( ...$args );
}
private function getLanguageName( ...$args ) {
return $this->newObj()->getLanguageName( ...$args );
}
private function getFileName( ...$args ) {
return $this->newObj()->getFileName( ...$args );
}
private function getMessagesFileName( $code ) {
return $this->newObj()->getMessagesFileName( $code );
}
private function getJsonMessagesFileName( $code ) {
return $this->newObj()->getJsonMessagesFileName( $code );
}
}