wiki.techinc.nl/tests/phpunit/languages/LanguageArTest.php
Antoine Musso a03bf9e27f tests: rm duplicate code in language classes
The language classes have been using the same setUp() tearDown() to
craft a new language object. I have abstracted that code in
LanguageClassesTestCase and made all the language test classes to extend
it. The language is interpolated directly from the class name and an
object for it can be retrieved with the getLang() method.

Change-Id: Ib931336ce219edabe2c72b7e9f04c976a500723e
2012-10-29 09:40:30 +01:00

70 lines
1.5 KiB
PHP

<?php
/**
* Based on LanguagMlTest
* @file
*/
/** Tests for MediaWiki languages/LanguageAr.php */
class LanguageArTest extends LanguageClassesTestCase {
function testFormatNum() {
$this->assertEquals( '١٬٢٣٤٬٥٦٧', $this->getLang()->formatNum( '1234567' ) );
$this->assertEquals( '-١٢٫٨٩', $this->getLang()->formatNum( -12.89 ) );
}
/**
* Mostly to test the raw ascii feature.
* @dataProvider providerSprintfDate
*/
function testSprintfDate( $format, $date, $expected ) {
$this->assertEquals( $expected, $this->getLang()->sprintfDate( $format, $date ) );
}
function providerSprintfDate() {
return array(
array(
'xg "vs" g',
'20120102030410',
'يناير vs ٣'
),
array(
'xmY',
'20120102030410',
'١٤٣٣'
),
array(
'xnxmY',
'20120102030410',
'1433'
),
array(
'xN xmj xmn xN xmY',
'20120102030410',
' 7 2 ١٤٣٣'
),
);
}
/** @dataProvider providePlural */
function testPlural( $result, $value ) {
$forms = array( 'zero', 'one', 'two', 'few', 'many', 'other' );
$this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
}
function providePlural() {
return array (
array( 'zero', 0 ),
array( 'one', 1 ),
array( 'two', 2 ),
array( 'few', 3 ),
array( 'few', 9 ),
array( 'few', 110 ),
array( 'many', 11 ),
array( 'many', 15 ),
array( 'many', 99 ),
array( 'many', 9999 ),
array( 'other', 100 ),
array( 'other', 102 ),
array( 'other', 1000 ),
array( 'other', 1.7 ),
);
}
}