wiki.techinc.nl/tests/phpunit/includes/languages/LanguagePlTest.php
Timo Tijhof 7c39f76452 Move Language subclasses to includes/
Depending on which namespace we want these classes to have after
T166010 they could either stay in includes/languages/ (plural) in
their own MediaWiki\Languages\-namespace dedicated to Language
subclasses, or they could go in into a subdirectory like
`includes/language/languages/` if we want to keep them in the same
top-level namespace as other Language classes and services, but in
a more nested namespace.

For now, I've made the smaller change and kept the Language subclasses
in their own directory directly under includes/, not nested further.

Bug: T225756
Change-Id: I01015424707b442853879fd50c97f00215e5c2fa
2021-08-04 23:44:46 +01:00

106 lines
2.5 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* @author Amir E. Aharoni
* @copyright Copyright © 2012, Amir E. Aharoni
* @file
*/
/**
* @group Language
*/
class LanguagePlTest extends LanguageClassesTestCase {
/**
* @dataProvider providePlural
* @covers Language::convertPlural
*/
public function testPlural( $result, $value ) {
$forms = [ 'one', 'few', 'many' ];
$this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
}
/**
* @dataProvider providePlural
* @covers Language::getPluralRuleType
*/
public function testGetPluralRuleType( $result, $value ) {
$this->assertEquals( $result, $this->getLang()->getPluralRuleType( $value ) );
}
public static function providePlural() {
return [
[ 'many', 0 ],
[ 'one', 1 ],
[ 'few', 2 ],
[ 'few', 3 ],
[ 'few', 4 ],
[ 'many', 5 ],
[ 'many', 9 ],
[ 'many', 10 ],
[ 'many', 11 ],
[ 'many', 21 ],
[ 'few', 22 ],
[ 'few', 23 ],
[ 'few', 24 ],
[ 'many', 25 ],
[ 'many', 200 ],
[ 'many', 201 ],
];
}
/**
* @dataProvider providePluralTwoForms
* @covers Language::convertPlural
*/
public function testPluralTwoForms( $result, $value ) {
$forms = [ 'one', 'other' ];
$this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
}
public static function providePluralTwoForms() {
return [
[ 'other', 0 ],
[ 'one', 1 ],
[ 'other', 2 ],
[ 'other', 3 ],
[ 'other', 4 ],
[ 'other', 5 ],
[ 'other', 9 ],
[ 'other', 10 ],
[ 'other', 11 ],
[ 'other', 21 ],
[ 'other', 22 ],
[ 'other', 23 ],
[ 'other', 24 ],
[ 'other', 25 ],
[ 'other', 200 ],
[ 'other', 201 ],
];
}
/**
* @covers Language::formatNum()
* @dataProvider provideFormatNum
*/
public function testFormatNum( $number, $formattedNum, $desc ) {
$this->assertEquals(
$formattedNum,
$this->getLang()->formatNum( $number ),
$desc
);
}
public static function provideFormatNum() {
return [
[ 1000, '1000', 'No change' ],
[ 10000, '10 000', 'Only separator transform. Separator is NO-BREAK Space, not Space' ],
[ 1000.0001, '1000,0001' ,
'No change since this is below minimumGroupingDigits, just separator transform' ],
[ 10000.123456, '10 000,123456', 'separator transform' ],
[ -1000, '1000', 'No change, other than minus replacement' ],
[ -10000, '10 000', 'Only separator transform' ],
[ -1000.0001, '1000,0001',
'No change since this is below minimumGroupingDigits, just separator transform' ],
[ -10000.789, '10 000,789', '' ],
];
}
}