wiki.techinc.nl/tests/phpunit/unit/includes/language/LanguageFallbackTest.php
libraryupgrader 5357695270 build: Updating dependencies
composer:
* mediawiki/mediawiki-codesniffer: 36.0.0 → 37.0.0
  The following sniffs now pass and were enabled:
  * Generic.ControlStructures.InlineControlStructure
  * MediaWiki.PHPUnit.AssertCount.NotUsed

npm:
* svgo: 2.3.0 → 2.3.1
  * https://npmjs.com/advisories/1754 (CVE-2021-33587)

Change-Id: I2a9bbee2fecbf7259876d335f565ece4b3622426
2021-07-22 03:36:05 +00:00

52 lines
1.3 KiB
PHP

<?php
use MediaWiki\Languages\LanguageFallback;
use MediaWiki\Languages\LanguageNameUtils;
/**
* @coversDefaultClass MediaWiki\Languages\LanguageFallback
* @covers ::__construct
*/
class LanguageFallbackTest extends MediaWikiUnitTestCase {
use LanguageFallbackTestTrait;
private const DATA = [
'en' => [],
'fr' => [],
'sco' => [ 'en' ],
'yi' => [ 'he' ],
'ruq' => [ 'ruq-latn', 'ro' ],
'sh' => [ 'bs', 'sr-el', 'hr' ],
];
private function getLanguageNameUtils() {
$mockLangNameUtils = $this->createMock( LanguageNameUtils::class );
$mockLangNameUtils->method( 'isValidBuiltInCode' )
->will( $this->returnCallback( static function ( $code ) {
// One-line copy-paste
return (bool)preg_match( '/^[a-z0-9-]{2,}$/', $code );
} ) );
$mockLangNameUtils->expects( $this->never() )
->method( $this->anythingBut( 'isValidBuiltInCode' ) );
return $mockLangNameUtils;
}
private function getCallee( array $options = [] ): LanguageFallback {
return new LanguageFallback(
$options['siteLangCode'] ?? 'en',
$this->getMockLocalisationCache(
$options['expectedGets'] ?? 1,
$options['fallbackMap'] ?? self::DATA
),
$this->getLanguageNameUtils()
);
}
private function getMessagesKey() {
return LanguageFallback::MESSAGES;
}
private function getStrictKey() {
return LanguageFallback::STRICT;
}
}