Underscore are not valid in language code
authorAntoine Musso <hashar@users.mediawiki.org>
Fri, 4 Mar 2011 17:16:09 +0000 (17:16 +0000)
committerAntoine Musso <hashar@users.mediawiki.org>
Fri, 4 Mar 2011 17:16:09 +0000 (17:16 +0000)
* Reject underscore in validation
* Still case unsensitive
* Corrected tests using underscore

Follow up r83160 which was a follow up of r82927 (language code validation)

languages/Language.php
tests/phpunit/languages/LanguageBe_taraskTest.php
tests/phpunit/languages/LanguageTest.php

index 8b34944..de6bc39 100644 (file)
@@ -215,7 +215,7 @@ class Language {
         * internal customisation of MediaWiki, via Messages*.php.
         */
        public static function isValidBuiltInCode( $code ) {
-               return preg_match( '/^[a-z0-9-_]*$/i', $code );
+               return preg_match( '/^[a-z0-9-]*$/i', $code );
        }
 
        /**
index beeb023..f40cb25 100644 (file)
@@ -5,7 +5,7 @@ class LanguageBeTaraskTest extends MediaWikiTestCase {
        private $lang;
 
        function setUp() {
-               $this->lang = Language::factory( 'Be_tarask' );
+               $this->lang = Language::factory( 'Be-tarask' );
        }
        function tearDown() {
                unset( $this->lang );
index 130f68d..c8e8884 100644 (file)
@@ -70,15 +70,22 @@ class LanguageTest extends MediaWikiTestCase {
                );
        }
 
+       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 underscore' ),
-                       array( 'Zh_classical', 'Begin with upper case, underscore' ),
-                       array( 'Be_x_old', 'With extension (two underscores)' ),
+                       array( 'be-tarask', 'With dash' ),
+                       array( 'Zh-classical', 'Begin with upper case, dash' ),
+                       array( 'Be-x-old', 'With extension (two dashes)' ),
                );
        }
 }