MediaWiki  REL1_21
LanguageClassesTestCase.php
Go to the documentation of this file.
00001 <?php
00030 abstract class LanguageClassesTestCase extends MediaWikiTestCase {
00031 
00036         private static $reExtractLangFromClass = '/Language(.*)Test/';
00037 
00042         private static $LanguageClassCode;
00043 
00058         private $languageObject;
00059 
00060         public static function setUpBeforeClass() {
00061                 $found = preg_match( self::$reExtractLangFromClass,
00062                         get_called_class(), $m );
00063                 if ( $found ) {
00064                         # Normalize language code since classes uses underscores
00065                         $m[1] = str_replace( '_', '-', $m[1] );
00066                 } else {
00067                         # Fallback to english language
00068                         $m[1] = 'en';
00069                         wfDebug(
00070                                 __METHOD__ . " could not extract a language name "
00071                                         . "out of " . get_called_class() . " failling back to 'en'\n"
00072                         );
00073                 }
00074                 // TODO: validate $m[1] which should be a valid language code
00075                 self::$LanguageClassCode = $m[1];
00076         }
00077 
00078         protected function getLang() {
00079                 return $this->languageObject;
00080         }
00081 
00085         protected function setUp() {
00086                 parent::setUp();
00087                 $this->languageObject = Language::factory(
00088                         self::$LanguageClassCode );
00089         }
00090 
00095         protected function tearDown() {
00096                 unset( $this->languageObject );
00097                 parent::tearDown();
00098         }
00099 
00100 }