Tests: Make phpunit providers "public static".
[lhc/web/wiklou.git] / tests / phpunit / languages / LanguageBe_taraskTest.php
index beeb023..8bc908d 100644 (file)
@@ -1,31 +1,76 @@
 <?php
-require_once dirname(dirname(__FILE__)). '/bootstrap.php';
 
-class LanguageBeTaraskTest extends MediaWikiTestCase {
-       private $lang;
-
-       function setUp() {
-               $this->lang = Language::factory( 'Be_tarask' );
-       }
-       function tearDown() {
-               unset( $this->lang );
+class LanguageBe_taraskTest extends LanguageClassesTestCase {
+       /**
+        * Make sure the language code we are given is indeed
+        * be-tarask. This is to ensure LanguageClassesTestCase
+        * does not give us the wrong language.
+        */
+       function testBeTaraskTestsUsesBeTaraskCode() {
+               $this->assertEquals( 'be-tarask',
+                       $this->getLang()->getCode()
+               );
        }
 
        /** see bug 23156 & r64981 */
        function testSearchRightSingleQuotationMarkAsApostroph() {
                $this->assertEquals(
                        "'",
-                       $this->lang->normalizeForSearch( '’' ),
+                       $this->getLang()->normalizeForSearch( '’' ),
                        'bug 23156: U+2019 conversion to U+0027'
                );
        }
+
        /** see bug 23156 & r64981 */
        function testCommafy() {
-               $this->assertEquals( '1,234,567', $this->lang->commafy( '1234567' ) );
-               $this->assertEquals(    '12,345', $this->lang->commafy(   '12345' ) );
+               $this->assertEquals( '1,234,567', $this->getLang()->commafy( '1234567' ) );
+               $this->assertEquals( '12,345', $this->getLang()->commafy( '12345' ) );
        }
+
        /** see bug 23156 & r64981 */
        function testDoesNotCommafyFourDigitsNumber() {
-               $this->assertEquals(      '1234', $this->lang->commafy(    '1234' ) );
+               $this->assertEquals( '1234', $this->getLang()->commafy( '1234' ) );
+       }
+
+       /** @dataProvider providePlural */
+       function testPlural( $result, $value ) {
+               $forms =  array( 'one', 'few', 'many', 'other' );
+               $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+       }
+
+       /** @dataProvider providePlural */
+       function testGetPluralRuleType( $result, $value ) {
+               $this->assertEquals( $result, $this->getLang()->getPluralRuleType( $value ) );
+       }
+
+       public static function providePlural() {
+               return array (
+                       array( 'one', 1 ),
+                       array( 'many', 11 ),
+                       array( 'one', 91 ),
+                       array( 'one', 121 ),
+                       array( 'few', 2 ),
+                       array( 'few', 3 ),
+                       array( 'few', 4 ),
+                       array( 'few', 334 ),
+                       array( 'many', 5 ),
+                       array( 'many', 15 ),
+                       array( 'many', 120 ),
+               );
+       }
+
+       /** @dataProvider providePluralTwoForms */
+       function testPluralTwoForms( $result, $value ) {
+               $forms =  array( 'one', 'other' );
+               $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+       }
+
+       public static function providePluralTwoForms() {
+               return array(
+                       array( 'one', 1 ),
+                       array( 'other', 11 ),
+                       array( 'other', 91 ),
+                       array( 'other', 121 ),
+               );
        }
 }