2010-12-14 16:26:35 +00:00
|
|
|
|
<?php
|
|
|
|
|
|
require_once dirname(dirname(__FILE__)). '/bootstrap.php';
|
|
|
|
|
|
|
2010-12-28 17:45:33 +00:00
|
|
|
|
class LanguageTest extends MediaWikiTestCase {
|
2010-12-14 16:26:35 +00:00
|
|
|
|
private $lang;
|
|
|
|
|
|
|
|
|
|
|
|
function setUp() {
|
|
|
|
|
|
$this->lang = Language::factory( 'en' );
|
|
|
|
|
|
}
|
|
|
|
|
|
function tearDown() {
|
|
|
|
|
|
unset( $this->lang );
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function testLanguageConvertDoubleWidthToSingleWidth() {
|
|
|
|
|
|
$this->assertEquals(
|
|
|
|
|
|
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
|
|
|
|
|
|
$this->lang->normalizeForSearch(
|
|
|
|
|
|
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
|
|
|
|
|
|
),
|
|
|
|
|
|
'convertDoubleWidth() with the full alphabet and digits'
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function testFormatTimePeriod() {
|
|
|
|
|
|
$this->assertEquals(
|
|
|
|
|
|
"9.5s",
|
|
|
|
|
|
$this->lang->formatTimePeriod( 9.45 ),
|
|
|
|
|
|
'formatTimePeriod() rounding (<10s)'
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$this->assertEquals(
|
|
|
|
|
|
"10s",
|
|
|
|
|
|
$this->lang->formatTimePeriod( 9.95 ),
|
|
|
|
|
|
'formatTimePeriod() rounding (<10s)'
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$this->assertEquals(
|
|
|
|
|
|
"1m 0s",
|
|
|
|
|
|
$this->lang->formatTimePeriod( 59.55 ),
|
|
|
|
|
|
'formatTimePeriod() rounding (<60s)'
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$this->assertEquals(
|
|
|
|
|
|
"2m 0s",
|
|
|
|
|
|
$this->lang->formatTimePeriod( 119.55 ),
|
|
|
|
|
|
'formatTimePeriod() rounding (<1h)'
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$this->assertEquals(
|
|
|
|
|
|
"1h 0m 0s",
|
|
|
|
|
|
$this->lang->formatTimePeriod( 3599.55 ),
|
|
|
|
|
|
'formatTimePeriod() rounding (<1h)'
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$this->assertEquals(
|
|
|
|
|
|
"2h 0m 0s",
|
|
|
|
|
|
$this->lang->formatTimePeriod( 7199.55 ),
|
|
|
|
|
|
'formatTimePeriod() rounding (>=1h)'
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
2011-03-03 19:13:57 +00:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Test Language::isValidBuiltInCode()
|
|
|
|
|
|
* @dataProvider provideLanguageCodes
|
|
|
|
|
|
*/
|
|
|
|
|
|
function testBuiltInCodeValidation( $code, $message = '' ) {
|
|
|
|
|
|
$this->assertTrue(
|
|
|
|
|
|
(bool) Language::isValidBuiltInCode( $code ),
|
|
|
|
|
|
"validating code $code $message"
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2011-03-04 17:16:09 +00:00
|
|
|
|
function testBuiltInCodeValidationRejectUnderscore() {
|
|
|
|
|
|
$this->assertFalse(
|
|
|
|
|
|
(bool) Language::isValidBuiltInCode( 'be_tarask' ),
|
|
|
|
|
|
"reject underscore in language code"
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2011-03-03 19:13:57 +00:00
|
|
|
|
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' ),
|
2011-03-04 17:16:09 +00:00
|
|
|
|
array( 'be-tarask', 'With dash' ),
|
|
|
|
|
|
array( 'Zh-classical', 'Begin with upper case, dash' ),
|
|
|
|
|
|
array( 'Be-x-old', 'With extension (two dashes)' ),
|
2011-03-03 19:13:57 +00:00
|
|
|
|
);
|
|
|
|
|
|
}
|
2010-12-14 16:26:35 +00:00
|
|
|
|
}
|