3 class LanguageTest
extends MediaWikiTestCase
{
7 $this->lang
= Language
::factory( 'en' );
13 function testLanguageConvertDoubleWidthToSingleWidth() {
15 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
16 $this->lang
->normalizeForSearch(
17 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
19 'convertDoubleWidth() with the full alphabet and digits'
23 function testFormatTimePeriod() {
26 $this->lang
->formatTimePeriod( 9.45 ),
27 'formatTimePeriod() rounding (<10s)'
32 $this->lang
->formatTimePeriod( 9.95 ),
33 'formatTimePeriod() rounding (<10s)'
38 $this->lang
->formatTimePeriod( 59.55 ),
39 'formatTimePeriod() rounding (<60s)'
44 $this->lang
->formatTimePeriod( 119.55 ),
45 'formatTimePeriod() rounding (<1h)'
50 $this->lang
->formatTimePeriod( 3599.55 ),
51 'formatTimePeriod() rounding (<1h)'
56 $this->lang
->formatTimePeriod( 7199.55 ),
57 'formatTimePeriod() rounding (>=1h)'
62 * Test Language::isValidBuiltInCode()
63 * @dataProvider provideLanguageCodes
65 function testBuiltInCodeValidation( $code, $message = '' ) {
67 (bool) Language
::isValidBuiltInCode( $code ),
68 "validating code $code $message"
72 function testBuiltInCodeValidationRejectUnderscore() {
74 (bool) Language
::isValidBuiltInCode( 'be_tarask' ),
75 "reject underscore in language code"
79 function provideLanguageCodes() {
81 array( 'fr' , 'Two letters, minor case' ),
82 array( 'EN' , 'Two letters, upper case' ),
83 array( 'tyv' , 'Three letters' ),
84 array( 'tokipona' , 'long language code' ),
85 array( 'be-tarask', 'With dash' ),
86 array( 'Zh-classical', 'Begin with upper case, dash' ),
87 array( 'Be-x-old', 'With extension (two dashes)' ),