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
$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";
}
}
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' ],
+ ];
}
/**
}
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' ],
+ ];
+ }
}