X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2Fcache%2FMessageCacheTest.php;h=bd744c01ca6da33a45942450d0a9ab2579039b54;hb=6ff1a938e4f59647872987a491f8cb017636bc5f;hp=803acf73620ab7099b63c8728581a5333b09c8ec;hpb=d4eefca4dd645bbef2b435ef1228a141f6a48e67;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/includes/cache/MessageCacheTest.php b/tests/phpunit/includes/cache/MessageCacheTest.php index 803acf7362..bd744c01ca 100644 --- a/tests/phpunit/includes/cache/MessageCacheTest.php +++ b/tests/phpunit/includes/cache/MessageCacheTest.php @@ -19,17 +19,11 @@ class MessageCacheTest extends MediaWikiLangTestCase { protected function configureLanguages() { // for the test, we need the content language to be anything but English, // let's choose e.g. German (de) - $langCode = 'de'; - $langObj = Language::factory( $langCode ); - - $this->setMwGlobals( array( - 'wgLanguageCode' => $langCode, - 'wgLang' => $langObj, - 'wgContLang' => $langObj, - ) ); + $this->setUserLang( 'de' ); + $this->setContentLang( 'de' ); } - function addDBData() { + function addDBDataOnce() { $this->configureLanguages(); // Set up messages and fallbacks ab -> ru -> de @@ -52,24 +46,23 @@ class MessageCacheTest extends MediaWikiLangTestCase { $this->makePage( 'MessageCacheTest-FullKeyTest', 'ru' ); // In content language -- get base if no derivative - $this->makePage( 'FallbackLanguageTest-NoDervContLang', 'de', 'de/none', false ); + $this->makePage( 'FallbackLanguageTest-NoDervContLang', 'de', 'de/none' ); } /** * Helper function for addDBData -- adds a simple page to the database * * @param string $title Title of page to be created - * @param string $lang Language and content of the created page + * @param string $lang Language and content of the created page * @param string|null $content Content of the created page, or null for a generic string - * @param bool $createSubPage Set to false if a root page should be created */ - protected function makePage( $title, $lang, $content = null, $createSubPage = true ) { + protected function makePage( $title, $lang, $content = null ) { global $wgContLang; if ( $content === null ) { $content = $lang; } - if ( $lang !== $wgContLang->getCode() || $createSubPage ) { + if ( $lang !== $wgContLang->getCode() ) { $title = "$title/$lang"; } @@ -90,20 +83,20 @@ class MessageCacheTest extends MediaWikiLangTestCase { } function provideMessagesForFallback() { - return array( - array( 'FallbackLanguageTest-Full', 'ab', 'ab' ), - array( 'FallbackLanguageTest-Partial', 'ab', 'ru' ), - array( 'FallbackLanguageTest-ContLang', 'ab', 'de' ), - array( 'FallbackLanguageTest-None', 'ab', false ), + return [ + [ 'FallbackLanguageTest-Full', 'ab', 'ab' ], + [ 'FallbackLanguageTest-Partial', 'ab', 'ru' ], + [ 'FallbackLanguageTest-ContLang', 'ab', 'de' ], + [ 'FallbackLanguageTest-None', 'ab', false ], // Existing message with customizations on the fallbacks - array( 'sunday', 'ab', 'амҽыш' ), + [ 'sunday', 'ab', 'амҽыш' ], // bug 46579 - array( 'FallbackLanguageTest-NoDervContLang', 'de', 'de/none' ), + [ 'FallbackLanguageTest-NoDervContLang', 'de', 'de/none' ], // UI language different from content language should only use de/none as last option - array( 'FallbackLanguageTest-NoDervContLang', 'fit', 'de/none' ), - ); + [ 'FallbackLanguageTest-NoDervContLang', 'fit', 'de/none' ], + ]; } /** @@ -118,11 +111,33 @@ class MessageCacheTest extends MediaWikiLangTestCase { } function provideMessagesForFullKeys() { - return array( - array( 'MessageCacheTest-FullKeyTest/ru', 'ru', 'ru' ), - array( 'MessageCacheTest-FullKeyTest/ru', 'ab', 'ru' ), - array( 'MessageCacheTest-FullKeyTest/ru/foo', 'ru', false ), - ); + return [ + [ 'MessageCacheTest-FullKeyTest/ru', 'ru', 'ru' ], + [ 'MessageCacheTest-FullKeyTest/ru', 'ab', 'ru' ], + [ 'MessageCacheTest-FullKeyTest/ru/foo', 'ru', false ], + ]; } + /** + * @dataProvider provideNormalizeKey + */ + public function testNormalizeKey( $key, $expected ) { + $actual = MessageCache::normalizeKey( $key ); + $this->assertEquals( $expected, $actual ); + } + + public function provideNormalizeKey() { + return [ + [ 'Foo', 'foo' ], + [ 'foo', 'foo' ], + [ 'fOo', 'fOo' ], + [ 'FOO', 'fOO' ], + [ 'Foo bar', 'foo_bar' ], + [ 'Ćab', 'ćab' ], + [ 'Ćab_e 3', 'ćab_e_3' ], + [ 'ĆAB', 'ćAB' ], + [ 'ćab', 'ćab' ], + [ 'ćaB', 'ćaB' ], + ]; + } }