Underscore are not valid in language code
[lhc/web/wiklou.git] / tests / phpunit / languages / LanguageTest.php
index 8e30259..c8e8884 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 require_once dirname(dirname(__FILE__)). '/bootstrap.php';
 
-class LanguageTest extends MediaWikiTestSetup {
+class LanguageTest extends MediaWikiTestCase {
        private $lang;
 
        function setUp() {
@@ -58,4 +58,34 @@ class LanguageTest extends MediaWikiTestSetup {
                        'formatTimePeriod() rounding (>=1h)'
                );
        }
+
+       /**
+        * Test Language::isValidBuiltInCode()
+        * @dataProvider provideLanguageCodes
+        */
+       function testBuiltInCodeValidation( $code, $message = '' ) {
+               $this->assertTrue(
+                       (bool) Language::isValidBuiltInCode( $code ),
+                       "validating code $code $message"
+               );
+       }
+
+       function testBuiltInCodeValidationRejectUnderscore() {
+               $this->assertFalse(
+                       (bool) Language::isValidBuiltInCode( 'be_tarask' ),
+                       "reject underscore in language code"
+               );
+       }
+
+       function provideLanguageCodes() {
+               return array(
+                       array( 'fr'       , 'Two letters, minor case' ),
+                       array( 'EN'       , 'Two letters, upper case' ),
+                       array( 'tyv'      , 'Three letters' ),
+                       array( 'tokipona'   , 'long language code' ),
+                       array( 'be-tarask', 'With dash' ),
+                       array( 'Zh-classical', 'Begin with upper case, dash' ),
+                       array( 'Be-x-old', 'With extension (two dashes)' ),
+               );
+       }
 }