diff options
author | Timo Tijhof <krinklemail@gmail.com> | 2021-07-31 22:23:21 +0100 |
---|---|---|
committer | Timo Tijhof <krinklemail@gmail.com> | 2021-08-04 23:44:46 +0100 |
commit | 7c39f764520f60109dedbcb904fe8327aa5ddedb (patch) | |
tree | 9e99e5a055f7a97f4cde265ecb90cb45f0bb3ab4 /tests/phpunit/includes/languages/LanguagePlTest.php | |
parent | def349289f899f9f8e3884cc79dc2751997b09d1 (diff) | |
download | mediawikicore-7c39f764520f60109dedbcb904fe8327aa5ddedb.tar.gz mediawikicore-7c39f764520f60109dedbcb904fe8327aa5ddedb.zip |
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
Diffstat (limited to 'tests/phpunit/includes/languages/LanguagePlTest.php')
-rw-r--r-- | tests/phpunit/includes/languages/LanguagePlTest.php | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/tests/phpunit/includes/languages/LanguagePlTest.php b/tests/phpunit/includes/languages/LanguagePlTest.php new file mode 100644 index 000000000000..0764af36dc0c --- /dev/null +++ b/tests/phpunit/includes/languages/LanguagePlTest.php @@ -0,0 +1,106 @@ +<?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', '' ], + ]; + } +} |