assertArrayNotHasKey('Test.absentText', Lang::dump()); } function testLoadCascade() { Lang::set("ja", true); $this->assertEquals("de", Lang::set("de", true)); $str = Lang::dump(); $this->assertArrayNotHasKey('Test.absentText', $str); $this->assertEquals('und der Stein der Weisen', $str['Test.presentText']); } /** * @depends testLoadCascade */ function testLoadSubtag() { $this->assertEquals("en_ca", Lang::set("en_ca", true)); } /** * @depends testLoadSubtag */ function testMessage() { Lang::set("de", true); $this->assertEquals('und der Stein der Weisen', Lang::msg('Test.presentText')); } /** * @depends testMessage */ function testMessageNumSingle() { Lang::set("en_ca", true); $this->assertEquals('Default language file "en" missing', Lang::msg('Exception.JKingWeb/NewsSync/Lang/Exception.defaultFileMissing', Lang::DEFAULT)); } /** * @depends testMessage */ function testMessageNumMulti() { Lang::set("en_ca", true); $this->assertEquals('Happy Rotter and the Philosopher\'s Stone', Lang::msg('Test.presentText', ['Happy Rotter', 'the Philosopher\'s Stone'])); } /** * @depends testMessage */ function testMessageNamed() { $this->assertEquals('Message string "Test.absentText" missing from all loaded language files (en)', Lang::msg('Exception.JKingWeb/NewsSync/Lang/Exception.stringMissing', ['msgID' => 'Test.absentText', 'fileList' => 'en'])); } /** * @depends testMessage */ function testReloadDefaults() { Lang::set("de", true); Lang::set("en", true); $this->assertEquals('and the Philosopher\'s Stone', Lang::msg('Test.presentText')); } /** * @depends testMessage */ function testReloadGeneralTagAfterSubtag() { Lang::set("en", true); Lang::set("en_us", true); $this->assertEquals('and the Sorcerer\'s Stone', Lang::msg('Test.presentText')); Lang::set("en", true); $this->assertEquals('and the Philosopher\'s Stone', Lang::msg('Test.presentText')); } }