[ 'fr', true, 'Two letters, minor case' ],
[ 'EN', false, 'Two letters, upper case' ],
[ 'tyv', true, 'Three letters' ],
- [ 'tokipona', true, 'long language code' ],
[ 'be-tarask', true, 'With dash' ],
[ 'be-x-old', true, 'With extension (two dashes)' ],
[ 'be_tarask', false, 'Reject underscores' ],
];
}
+ /**
+ * @dataProvider testFormatNumProvider
+ * @covers Language::formatNum
+ */
+ public function testFormatNum(
+ $translateNumerals, $langCode, $number, $nocommafy, $expected
+ ) {
+ $this->setMwGlobals( [ 'wgTranslateNumerals' => $translateNumerals ] );
+ $lang = Language::factory( $langCode );
+ $formattedNum = $lang->formatNum( $number, $nocommafy );
+ $this->assertType( 'string', $formattedNum );
+ $this->assertEquals( $expected, $formattedNum );
+ }
+
+ public function testFormatNumProvider() {
+ return [
+ [ true, 'en', 100, false, '100' ],
+ [ true, 'en', 101, true, '101' ],
+ [ false, 'en', 103, false, '103' ],
+ [ false, 'en', 104, true, '104' ],
+ [ true, 'en', '105', false, '105' ],
+ [ true, 'en', '106', true, '106' ],
+ [ false, 'en', '107', false, '107' ],
+ [ false, 'en', '108', true, '108' ],
+ ];
+ }
+
/**
* @dataProvider parseFormattedNumberProvider
*/
[ 'zh', 'zh', 'zh is defined as the parent language of zh, '
. 'because zh converter can convert zh-cn to zh' ],
[ 'zh-invalid', null, 'do not be fooled by arbitrarily composed language codes' ],
- [ 'en-gb', null, 'en does not have converter' ],
- [ 'en', null, 'en does not have converter. Although FakeConverter '
- . 'handles en -> en conversion but it is useless' ],
+ [ 'de-formal', null, 'de does not have converter' ],
+ [ 'de', null, 'de does not have converter' ],
];
}