Merge "Fix Language::parseFormattedNumber for lzh and zh-classical"

This commit is contained in:
jenkins-bot 2014-04-25 07:13:29 +00:00 committed by Gerrit Code Review
commit ab2d63b53e
2 changed files with 28 additions and 1 deletions

View file

@ -3130,14 +3130,18 @@ class Language {
* @param string $number
* @return string
*/
function parseFormattedNumber( $number ) {
public function parseFormattedNumber( $number ) {
$s = $this->digitTransformTable();
if ( $s ) {
// eliminate empty array values such as ''. (bug 64347)
$s = array_filter( $s );
$number = strtr( $number, array_flip( $s ) );
}
$s = $this->separatorTransformTable();
if ( $s ) {
// eliminate empty array values such as ''. (bug 64347)
$s = array_filter( $s );
$number = strtr( $number, array_flip( $s ) );
}

View file

@ -1484,6 +1484,29 @@ class LanguageTest extends LanguageClassesTestCase {
);
}
/**
* @dataProvider parseFormattedNumberProvider
*/
public function testParseFormattedNumber( $langCode, $number ) {
$lang = Language::factory( $langCode );
$localisedNum = $lang->formatNum( $number );
$normalisedNum = $lang->parseFormattedNumber( $localisedNum );
$this->assertEquals( $number, $normalisedNum );
}
public function parseFormattedNumberProvider() {
return array(
array( 'de', 377.01 ),
array( 'fa', 334 ),
array( 'fa', 382.772 ),
array( 'ar', 1844 ),
array( 'lzh', 3731 ),
array( 'zh-classical', 7432 )
);
}
/**
* @covers Language::commafy()
* @dataProvider provideCommafyData