6fbd4a28636fc8941ffde5d8fa2dc2153887053b
[lhc/web/wiklou.git] / tests / phpunit / unit / includes / language / LanguageNameUtilsTest.php
1 <?php
2
3 use MediaWiki\Config\ServiceOptions;
4 use MediaWiki\Languages\LanguageNameUtils;
5
6 class LanguageNameUtilsTest extends MediaWikiUnitTestCase {
7 /**
8 * @param array $optionsArray
9 */
10 private static function newObj( array $optionsArray = [] ) : LanguageNameUtils {
11 return new LanguageNameUtils( new ServiceOptions(
12 LanguageNameUtils::$constructorOptions,
13 $optionsArray,
14 [
15 'ExtraLanguageNames' => [],
16 'LanguageCode' => 'en',
17 'UsePigLatinVariant' => false,
18 ]
19 ) );
20 }
21
22 use LanguageNameUtilsTestTrait;
23
24 private function isSupportedLanguage( $code ) {
25 return $this->newObj()->isSupportedLanguage( $code );
26 }
27
28 private function isValidCode( $code ) {
29 return $this->newObj()->isValidCode( $code );
30 }
31
32 private function isValidBuiltInCode( $code ) {
33 return $this->newObj()->isValidBuiltInCode( $code );
34 }
35
36 private function isKnownLanguageTag( $code ) {
37 return $this->newObj()->isKnownLanguageTag( $code );
38 }
39
40 private function assertGetLanguageNames( array $options, $expected, $code, ...$otherArgs ) {
41 $this->assertSame( $expected, $this->newObj( $options )
42 ->getLanguageNames( ...$otherArgs )[strtolower( $code )] ?? '' );
43 $this->assertSame( $expected,
44 $this->newObj( $options )->getLanguageName( $code, ...$otherArgs ) );
45 }
46
47 private function getLanguageNames( ...$args ) {
48 return $this->newObj()->getLanguageNames( ...$args );
49 }
50
51 private function getLanguageName( ...$args ) {
52 return $this->newObj()->getLanguageName( ...$args );
53 }
54
55 private static function getFileName( ...$args ) {
56 return self::newObj()->getFileName( ...$args );
57 }
58
59 private static function getMessagesFileName( $code ) {
60 return self::newObj()->getMessagesFileName( $code );
61 }
62
63 private static function getJsonMessagesFileName( $code ) {
64 return self::newObj()->getJsonMessagesFileName( $code );
65 }
66 }