From 03302586173aff9089d9d9351076f643d1f8c62b Mon Sep 17 00:00:00 2001 From: Antoine Musso Date: Fri, 4 Mar 2011 17:16:09 +0000 Subject: [PATCH] Underscore are not valid in language code * 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 | 2 +- tests/phpunit/languages/LanguageBe_taraskTest.php | 2 +- tests/phpunit/languages/LanguageTest.php | 13 ++++++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/languages/Language.php b/languages/Language.php index 8b349442a0..de6bc395e5 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -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 ); } /** diff --git a/tests/phpunit/languages/LanguageBe_taraskTest.php b/tests/phpunit/languages/LanguageBe_taraskTest.php index beeb023632..f40cb25064 100644 --- a/tests/phpunit/languages/LanguageBe_taraskTest.php +++ b/tests/phpunit/languages/LanguageBe_taraskTest.php @@ -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 ); diff --git a/tests/phpunit/languages/LanguageTest.php b/tests/phpunit/languages/LanguageTest.php index 130f68d15e..c8e88848ff 100644 --- a/tests/phpunit/languages/LanguageTest.php +++ b/tests/phpunit/languages/LanguageTest.php @@ -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)' ), ); } } -- 2.20.1