+++ /dev/null
-<?php
-
-class LanguageConverterTest extends MediaWikiLangTestCase {
- /** @var LanguageToTest */
- protected $lang = null;
- /** @var TestConverter */
- protected $lc = null;
-
- protected function setUp() {
- parent::setUp();
-
- $this->setMwGlobals( array(
- 'wgContLang' => Language::factory( 'tg' ),
- 'wgLanguageCode' => 'tg',
- 'wgDefaultLanguageVariant' => false,
- 'wgMemc' => new EmptyBagOStuff,
- 'wgRequest' => new FauxRequest( array() ),
- 'wgUser' => new User,
- ) );
-
- $this->lang = new LanguageToTest();
- $this->lc = new TestConverter(
- $this->lang, 'tg',
- array( 'tg', 'tg-latn' )
- );
- }
-
- protected function tearDown() {
- unset( $this->lc );
- unset( $this->lang );
-
- parent::tearDown();
- }
-
- /**
- * @covers LanguageConverter::getPreferredVariant
- */
- public function testGetPreferredVariantDefaults() {
- $this->assertEquals( 'tg', $this->lc->getPreferredVariant() );
- }
-
- /**
- * @covers LanguageConverter::getPreferredVariant
- * @covers LanguageConverter::getHeaderVariant
- */
- public function testGetPreferredVariantHeaders() {
- global $wgRequest;
- $wgRequest->setHeader( 'Accept-Language', 'tg-latn' );
-
- $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
- }
-
- /**
- * @covers LanguageConverter::getPreferredVariant
- * @covers LanguageConverter::getHeaderVariant
- */
- public function testGetPreferredVariantHeaderWeight() {
- global $wgRequest;
- $wgRequest->setHeader( 'Accept-Language', 'tg;q=1' );
-
- $this->assertEquals( 'tg', $this->lc->getPreferredVariant() );
- }
-
- /**
- * @covers LanguageConverter::getPreferredVariant
- * @covers LanguageConverter::getHeaderVariant
- */
- public function testGetPreferredVariantHeaderWeight2() {
- global $wgRequest;
- $wgRequest->setHeader( 'Accept-Language', 'tg-latn;q=1' );
-
- $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
- }
-
- /**
- * @covers LanguageConverter::getPreferredVariant
- * @covers LanguageConverter::getHeaderVariant
- */
- public function testGetPreferredVariantHeaderMulti() {
- global $wgRequest;
- $wgRequest->setHeader( 'Accept-Language', 'en, tg-latn;q=1' );
-
- $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
- }
-
- /**
- * @covers LanguageConverter::getPreferredVariant
- */
- public function testGetPreferredVariantUserOption() {
- global $wgUser;
-
- $wgUser = new User;
- $wgUser->load(); // from 'defaults'
- $wgUser->mId = 1;
- $wgUser->mDataLoaded = true;
- $wgUser->mOptionsLoaded = true;
- $wgUser->setOption( 'variant', 'tg-latn' );
-
- $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
- }
-
- /**
- * @covers LanguageConverter::getPreferredVariant
- * @covers LanguageConverter::getUserVariant
- */
- public function testGetPreferredVariantUserOptionForForeignLanguage() {
- global $wgContLang, $wgUser;
-
- $wgContLang = Language::factory( 'en' );
- $wgUser = new User;
- $wgUser->load(); // from 'defaults'
- $wgUser->mId = 1;
- $wgUser->mDataLoaded = true;
- $wgUser->mOptionsLoaded = true;
- $wgUser->setOption( 'variant-tg', 'tg-latn' );
-
- $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
- }
-
- /**
- * @covers LanguageConverter::getPreferredVariant
- * @covers LanguageConverter::getUserVariant
- * @covers LanguageConverter::getURLVariant
- */
- public function testGetPreferredVariantHeaderUserVsUrl() {
- global $wgContLang, $wgRequest, $wgUser;
-
- $wgContLang = Language::factory( 'tg-latn' );
- $wgRequest->setVal( 'variant', 'tg' );
- $wgUser = User::newFromId( "admin" );
- $wgUser->setId( 1 );
- $wgUser->mFrom = 'defaults';
- $wgUser->mOptionsLoaded = true;
- // The user's data is ignored because the variant is set in the URL.
- $wgUser->setOption( 'variant', 'tg-latn' );
- $this->assertEquals( 'tg', $this->lc->getPreferredVariant() );
- }
-
- /**
- * @covers LanguageConverter::getPreferredVariant
- */
- public function testGetPreferredVariantDefaultLanguageVariant() {
- global $wgDefaultLanguageVariant;
-
- $wgDefaultLanguageVariant = 'tg-latn';
- $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
- }
-
- /**
- * @covers LanguageConverter::getPreferredVariant
- * @covers LanguageConverter::getURLVariant
- */
- public function testGetPreferredVariantDefaultLanguageVsUrlVariant() {
- global $wgDefaultLanguageVariant, $wgRequest, $wgContLang;
-
- $wgContLang = Language::factory( 'tg-latn' );
- $wgDefaultLanguageVariant = 'tg';
- $wgRequest->setVal( 'variant', null );
- $this->assertEquals( 'tg', $this->lc->getPreferredVariant() );
- }
-}
-
-/**
- * Test converter (from Tajiki to latin orthography)
- */
-class TestConverter extends LanguageConverter {
- private $table = array(
- 'б' => 'b',
- 'в' => 'v',
- 'г' => 'g',
- );
-
- function loadDefaultTables() {
- $this->mTables = array(
- 'tg-latn' => new ReplacementArray( $this->table ),
- 'tg' => new ReplacementArray()
- );
- }
-}
-
-class LanguageToTest extends Language {
- function __construct() {
- parent::__construct();
- $variants = array( 'tg', 'tg-latn' );
- $this->mConverter = new TestConverter( $this, 'tg', $variants );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/LanguageAm.php */
-class LanguageAmTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'other' );
- $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 array(
- array( 'one', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * Based on LanguagMlTest
- * @file
- */
-
-/** Tests for MediaWiki languages/LanguageAr.php */
-class LanguageArTest extends LanguageClassesTestCase {
- /**
- * @covers Language::formatNum
- * @todo split into a test and a dataprovider
- */
- public function testFormatNum() {
- $this->assertEquals( '١٬٢٣٤٬٥٦٧', $this->getLang()->formatNum( '1234567' ) );
- $this->assertEquals( '-١٢٫٨٩', $this->getLang()->formatNum( -12.89 ) );
- }
-
- /**
- * Mostly to test the raw ascii feature.
- * @dataProvider providerSprintfDate
- * @covers Language::sprintfDate
- */
- public function testSprintfDate( $format, $date, $expected ) {
- $this->assertEquals( $expected, $this->getLang()->sprintfDate( $format, $date ) );
- }
-
- public static 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
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'zero', 'one', 'two', 'few', 'many', 'other' );
- $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 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 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * Based on LanguageMlTest
- * @author Joel Sahleen
- * @copyright Copyright © 2014, Joel Sahleen
- * @file
- */
-
-/** Tests for MediaWiki languages/LanguageArq.php */
-class LanguageArqTest extends LanguageClassesTestCase {
- /**
- * @dataProvider provideNumber
- * @covers Language::formatNum
- */
- public function testFormatNum( $result, $value ) {
- $this->assertEquals( $result, $this->getLang()->formatNum( $value ) );
- }
-
- public static function provideNumber() {
- return array(
- array( '1.234.567', '1234567'),
- array( '-12,89', -12.89 ),
- );
- }
-
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/LanguageBe.php */
-class LanguageBeTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'few', 'many', 'other' );
- $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 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 ),
- );
- }
-}
+++ /dev/null
-<?php
-
-// @codingStandardsIgnoreStart Ignore Squiz.Classes.ValidClassName.NotCamelCaps
-class LanguageBe_taraskTest extends LanguageClassesTestCase {
- // @codingStandardsIgnoreEnd
- /**
- * Make sure the language code we are given is indeed
- * be-tarask. This is to ensure LanguageClassesTestCase
- * does not give us the wrong language.
- */
- public function testBeTaraskTestsUsesBeTaraskCode() {
- $this->assertEquals( 'be-tarask',
- $this->getLang()->getCode()
- );
- }
-
- /**
- * @see bug 23156 & r64981
- * @covers Language::commafy
- */
- public function testSearchRightSingleQuotationMarkAsApostroph() {
- $this->assertEquals(
- "'",
- $this->getLang()->normalizeForSearch( '’' ),
- 'bug 23156: U+2019 conversion to U+0027'
- );
- }
-
- /**
- * @see bug 23156 & r64981
- * @covers Language::commafy
- */
- public function testCommafy() {
- $this->assertEquals( '1,234,567', $this->getLang()->commafy( '1234567' ) );
- $this->assertEquals( '12,345', $this->getLang()->commafy( '12345' ) );
- }
-
- /**
- * @see bug 23156 & r64981
- * @covers Language::commafy
- */
- public function testDoesNotCommafyFourDigitsNumber() {
- $this->assertEquals( '1234', $this->getLang()->commafy( '1234' ) );
- }
-
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'few', 'many', 'other' );
- $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 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
- * @covers Language::convertPlural
- */
- public function testPluralTwoForms( $result, $value ) {
- $forms = array( '1=one', 'other' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- public static function providePluralTwoForms() {
- return array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'other', 11 ),
- array( 'other', 91 ),
- array( 'other', 121 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/LanguageBho.php */
-class LanguageBhoTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'other' );
- $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 array(
- array( 'one', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for Croatian (hrvatski) */
-class LanguageBsTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'few', 'other' );
- $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 array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'few', 2 ),
- array( 'few', 4 ),
- array( 'other', 5 ),
- array( 'other', 11 ),
- array( 'other', 20 ),
- array( 'one', 21 ),
- array( 'few', 24 ),
- array( 'other', 25 ),
- array( 'other', 200 ),
- );
- }
-}
--- /dev/null
+<?php
+
+class LanguageConverterTest extends MediaWikiLangTestCase {
+ /** @var LanguageToTest */
+ protected $lang = null;
+ /** @var TestConverter */
+ protected $lc = null;
+
+ protected function setUp() {
+ parent::setUp();
+
+ $this->setMwGlobals( array(
+ 'wgContLang' => Language::factory( 'tg' ),
+ 'wgLanguageCode' => 'tg',
+ 'wgDefaultLanguageVariant' => false,
+ 'wgMemc' => new EmptyBagOStuff,
+ 'wgRequest' => new FauxRequest( array() ),
+ 'wgUser' => new User,
+ ) );
+
+ $this->lang = new LanguageToTest();
+ $this->lc = new TestConverter(
+ $this->lang, 'tg',
+ array( 'tg', 'tg-latn' )
+ );
+ }
+
+ protected function tearDown() {
+ unset( $this->lc );
+ unset( $this->lang );
+
+ parent::tearDown();
+ }
+
+ /**
+ * @covers LanguageConverter::getPreferredVariant
+ */
+ public function testGetPreferredVariantDefaults() {
+ $this->assertEquals( 'tg', $this->lc->getPreferredVariant() );
+ }
+
+ /**
+ * @covers LanguageConverter::getPreferredVariant
+ * @covers LanguageConverter::getHeaderVariant
+ */
+ public function testGetPreferredVariantHeaders() {
+ global $wgRequest;
+ $wgRequest->setHeader( 'Accept-Language', 'tg-latn' );
+
+ $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
+ }
+
+ /**
+ * @covers LanguageConverter::getPreferredVariant
+ * @covers LanguageConverter::getHeaderVariant
+ */
+ public function testGetPreferredVariantHeaderWeight() {
+ global $wgRequest;
+ $wgRequest->setHeader( 'Accept-Language', 'tg;q=1' );
+
+ $this->assertEquals( 'tg', $this->lc->getPreferredVariant() );
+ }
+
+ /**
+ * @covers LanguageConverter::getPreferredVariant
+ * @covers LanguageConverter::getHeaderVariant
+ */
+ public function testGetPreferredVariantHeaderWeight2() {
+ global $wgRequest;
+ $wgRequest->setHeader( 'Accept-Language', 'tg-latn;q=1' );
+
+ $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
+ }
+
+ /**
+ * @covers LanguageConverter::getPreferredVariant
+ * @covers LanguageConverter::getHeaderVariant
+ */
+ public function testGetPreferredVariantHeaderMulti() {
+ global $wgRequest;
+ $wgRequest->setHeader( 'Accept-Language', 'en, tg-latn;q=1' );
+
+ $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
+ }
+
+ /**
+ * @covers LanguageConverter::getPreferredVariant
+ */
+ public function testGetPreferredVariantUserOption() {
+ global $wgUser;
+
+ $wgUser = new User;
+ $wgUser->load(); // from 'defaults'
+ $wgUser->mId = 1;
+ $wgUser->mDataLoaded = true;
+ $wgUser->mOptionsLoaded = true;
+ $wgUser->setOption( 'variant', 'tg-latn' );
+
+ $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
+ }
+
+ /**
+ * @covers LanguageConverter::getPreferredVariant
+ * @covers LanguageConverter::getUserVariant
+ */
+ public function testGetPreferredVariantUserOptionForForeignLanguage() {
+ global $wgContLang, $wgUser;
+
+ $wgContLang = Language::factory( 'en' );
+ $wgUser = new User;
+ $wgUser->load(); // from 'defaults'
+ $wgUser->mId = 1;
+ $wgUser->mDataLoaded = true;
+ $wgUser->mOptionsLoaded = true;
+ $wgUser->setOption( 'variant-tg', 'tg-latn' );
+
+ $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
+ }
+
+ /**
+ * @covers LanguageConverter::getPreferredVariant
+ * @covers LanguageConverter::getUserVariant
+ * @covers LanguageConverter::getURLVariant
+ */
+ public function testGetPreferredVariantHeaderUserVsUrl() {
+ global $wgContLang, $wgRequest, $wgUser;
+
+ $wgContLang = Language::factory( 'tg-latn' );
+ $wgRequest->setVal( 'variant', 'tg' );
+ $wgUser = User::newFromId( "admin" );
+ $wgUser->setId( 1 );
+ $wgUser->mFrom = 'defaults';
+ $wgUser->mOptionsLoaded = true;
+ // The user's data is ignored because the variant is set in the URL.
+ $wgUser->setOption( 'variant', 'tg-latn' );
+ $this->assertEquals( 'tg', $this->lc->getPreferredVariant() );
+ }
+
+ /**
+ * @covers LanguageConverter::getPreferredVariant
+ */
+ public function testGetPreferredVariantDefaultLanguageVariant() {
+ global $wgDefaultLanguageVariant;
+
+ $wgDefaultLanguageVariant = 'tg-latn';
+ $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
+ }
+
+ /**
+ * @covers LanguageConverter::getPreferredVariant
+ * @covers LanguageConverter::getURLVariant
+ */
+ public function testGetPreferredVariantDefaultLanguageVsUrlVariant() {
+ global $wgDefaultLanguageVariant, $wgRequest, $wgContLang;
+
+ $wgContLang = Language::factory( 'tg-latn' );
+ $wgDefaultLanguageVariant = 'tg';
+ $wgRequest->setVal( 'variant', null );
+ $this->assertEquals( 'tg', $this->lc->getPreferredVariant() );
+ }
+}
+
+/**
+ * Test converter (from Tajiki to latin orthography)
+ */
+class TestConverter extends LanguageConverter {
+ private $table = array(
+ 'б' => 'b',
+ 'в' => 'v',
+ 'г' => 'g',
+ );
+
+ function loadDefaultTables() {
+ $this->mTables = array(
+ 'tg-latn' => new ReplacementArray( $this->table ),
+ 'tg' => new ReplacementArray()
+ );
+ }
+}
+
+class LanguageToTest extends Language {
+ function __construct() {
+ parent::__construct();
+ $variants = array( 'tg', 'tg-latn' );
+ $this->mConverter = new TestConverter( $this, 'tg', $variants );
+ }
+}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/Languagecs.php */
-class LanguageCsTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'few', 'other' );
- $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 array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'few', 2 ),
- array( 'few', 3 ),
- array( 'few', 4 ),
- array( 'other', 5 ),
- array( 'other', 11 ),
- array( 'other', 20 ),
- array( 'other', 25 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/LanguageCu.php */
-class LanguageCuTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'two', 'few', 'other' );
- $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 array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'two', 2 ),
- array( 'few', 3 ),
- array( 'few', 4 ),
- array( 'other', 5 ),
- array( 'one', 11 ),
- array( 'other', 20 ),
- array( 'two', 22 ),
- array( 'few', 223 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageCy.php */
-class LanguageCyTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'zero', 'one', 'two', 'few', 'many', 'other' );
- $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 array(
- array( 'zero', 0 ),
- array( 'one', 1 ),
- array( 'two', 2 ),
- array( 'few', 3 ),
- array( 'many', 6 ),
- array( 'other', 4 ),
- array( 'other', 5 ),
- array( 'other', 11 ),
- array( 'other', 20 ),
- array( 'other', 22 ),
- array( 'other', 223 ),
- array( 'other', 200.00 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageDsb.php */
-class LanguageDsbTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'two', 'few', 'other' );
- $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 array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'one', 101 ),
- array( 'one', 90001 ),
- array( 'two', 2 ),
- array( 'few', 3 ),
- array( 'few', 203 ),
- array( 'few', 4 ),
- array( 'other', 99 ),
- array( 'other', 555 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageFr.php */
-class LanguageFrTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'other' );
- $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 array(
- array( 'one', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageGa.php */
-class LanguageGaTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'two', 'other' );
- $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 array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'two', 2 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012-2013, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageGd.php */
-class LanguageGdTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providerPlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'two', 'few', 'other' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- public static function providerPlural() {
- return array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'two', 2 ),
- array( 'one', 11 ),
- array( 'two', 12 ),
- array( 'few', 3 ),
- array( 'few', 19 ),
- array( 'other', 200 ),
- );
- }
-
- /**
- * @dataProvider providerPluralExplicit
- * @covers Language::convertPlural
- */
- public function testExplicitPlural( $result, $value ) {
- $forms = array( 'one', 'two', 'few', 'other', '11=Form11', '12=Form12' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- public static function providerPluralExplicit() {
- return array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'two', 2 ),
- array( 'Form11', 11 ),
- array( 'Form12', 12 ),
- array( 'few', 3 ),
- array( 'few', 19 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * Test for Manx (Gaelg) language
- *
- * @author Santhosh Thottingal
- * @copyright Copyright © 2013, Santhosh Thottingal
- * @file
- */
-
-class LanguageGvTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'two', 'few', 'other' );
- $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 array(
- array( 'few', 0 ),
- array( 'one', 1 ),
- array( 'two', 2 ),
- array( 'other', 3 ),
- array( 'few', 20 ),
- array( 'one', 21 ),
- array( 'two', 22 ),
- array( 'other', 23 ),
- array( 'other', 50 ),
- array( 'few', 60 ),
- array( 'few', 80 ),
- array( 'few', 100 )
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Amir E. Aharoni
- * @copyright Copyright © 2012, Amir E. Aharoni
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageHe.php */
-class LanguageHeTest extends LanguageClassesTestCase {
- /**
- * The most common usage for the plural forms is two forms,
- * for singular and plural. In this case, the second form
- * is technically dual, but in practice it's used as plural.
- * In some cases, usually with expressions of time, three forms
- * are needed - singular, dual and plural.
- * CLDR also specifies a fourth form for multiples of 10,
- * which is very rare. It also has a mistake, because
- * the number 10 itself is supposed to be just plural,
- * so currently it's overridden in MediaWiki.
- */
-
- // @todo the below test*PluralForms test methods can be refactored
- // to use a single test method and data provider..
-
- /**
- * @dataProvider provideTwoPluralForms
- * @covers Language::convertPlural
- */
- public function testTwoPluralForms( $result, $value ) {
- $forms = array( 'one', 'other' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- /**
- * @dataProvider provideThreePluralForms
- * @covers Language::convertPlural
- */
- public function testThreePluralForms( $result, $value ) {
- $forms = array( 'one', 'two', 'other' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- /**
- * @dataProvider provideFourPluralForms
- * @covers Language::convertPlural
- */
- public function testFourPluralForms( $result, $value ) {
- $forms = array( 'one', 'two', 'many', 'other' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- /**
- * @dataProvider provideFourPluralForms
- * @covers Language::convertPlural
- */
- public function testGetPluralRuleType( $result, $value ) {
- $this->assertEquals( $result, $this->getLang()->getPluralRuleType( $value ) );
- }
-
- public static function provideTwoPluralForms() {
- return array(
- array( 'other', 0 ), // Zero - plural
- array( 'one', 1 ), // Singular
- array( 'other', 2 ), // No third form provided, use it as plural
- array( 'other', 3 ), // Plural - other
- array( 'other', 10 ), // No fourth form provided, use it as plural
- array( 'other', 20 ), // No fourth form provided, use it as plural
- );
- }
-
- public static function provideThreePluralForms() {
- return array(
- array( 'other', 0 ), // Zero - plural
- array( 'one', 1 ), // Singular
- array( 'two', 2 ), // Dual
- array( 'other', 3 ), // Plural - other
- array( 'other', 10 ), // No fourth form provided, use it as plural
- array( 'other', 20 ), // No fourth form provided, use it as plural
- );
- }
-
- public static function provideFourPluralForms() {
- return array(
- array( 'other', 0 ), // Zero - plural
- array( 'one', 1 ), // Singular
- array( 'two', 2 ), // Dual
- array( 'other', 3 ), // Plural - other
- array( 'other', 10 ), // 10 is supposed to be plural (other), not "many"
- array( 'many', 20 ), // Fourth form provided - rare, but supported by CLDR
- );
- }
-
- /**
- * @dataProvider provideGrammar
- * @covers Language::convertGrammar
- */
- public function testGrammar( $result, $word, $case ) {
- $this->assertEquals( $result, $this->getLang()->convertGrammar( $word, $case ) );
- }
-
- // The comments in the beginning of the line help avoid RTL problems
- // with text editors.
- public static function provideGrammar() {
- return array(
- array(
- /* result */'וויקיפדיה',
- /* word */'ויקיפדיה',
- /* case */'תחילית',
- ),
- array(
- /* result */'וולפגנג',
- /* word */'וולפגנג',
- /* case */'prefixed',
- ),
- array(
- /* result */'קובץ',
- /* word */'הקובץ',
- /* case */'תחילית',
- ),
- array(
- /* result */'־Wikipedia',
- /* word */'Wikipedia',
- /* case */'תחילית',
- ),
- array(
- /* result */'־1995',
- /* word */'1995',
- /* case */'תחילית',
- ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/LanguageHi.php */
-class LanguageHiTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'other' );
- $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 array(
- array( 'one', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageHr.php */
-class LanguageHrTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'few', 'other' );
- $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 array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'few', 2 ),
- array( 'few', 4 ),
- array( 'other', 5 ),
- array( 'other', 11 ),
- array( 'other', 20 ),
- array( 'one', 21 ),
- array( 'few', 24 ),
- array( 'other', 25 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageHsb.php */
-class LanguageHsbTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'two', 'few', 'other' );
- $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 array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'one', 101 ),
- array( 'one', 90001 ),
- array( 'two', 2 ),
- array( 'few', 3 ),
- array( 'few', 203 ),
- array( 'few', 4 ),
- array( 'other', 99 ),
- array( 'other', 555 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/LanguageHu.php */
-class LanguageHuTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'other' );
- $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 array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for Armenian (Հայերեն) */
-class LanguageHyTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'other' );
- $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 array(
- array( 'one', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageKsh.php */
-class LanguageKshTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'other', 'zero' );
- $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 array(
- array( 'zero', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageLn.php */
-class LanguageLnTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'other' );
- $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 array(
- array( 'one', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/LanguageLt.php */
-class LanguageLtTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'few', 'other' );
- $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 array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'few', 2 ),
- array( 'few', 9 ),
- array( 'other', 10 ),
- array( 'other', 11 ),
- array( 'other', 20 ),
- array( 'one', 21 ),
- array( 'few', 32 ),
- array( 'one', 41 ),
- array( 'one', 40001 ),
- );
- }
-
- /**
- * @dataProvider providePluralTwoForms
- * @covers Language::convertPlural
- */
- public function testOneFewPlural( $result, $value ) {
- $forms = array( 'one', 'other' );
- // This fails for 21, but not sure why.
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- public static function providePluralTwoForms() {
- return array(
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 15 ),
- array( 'other', 20 ),
- array( 'one', 21 ),
- array( 'other', 22 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for Latvian */
-class LanguageLvTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'zero', 'one', 'other' );
- $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 array(
- array( 'zero', 0 ),
- array( 'one', 1 ),
- array( 'zero', 11 ),
- array( 'one', 21 ),
- array( 'zero', 411 ),
- array( 'other', 2 ),
- array( 'other', 9 ),
- array( 'zero', 12 ),
- array( 'other', 12.345 ),
- array( 'zero', 20 ),
- array( 'other', 22 ),
- array( 'one', 31 ),
- array( 'zero', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageMg.php */
-class LanguageMgTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'other' );
- $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 array(
- array( 'one', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 200 ),
- array( 'other', 123.3434 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for македонски/Macedonian */
-class LanguageMkTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'other' );
- $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 array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'one', 11 ),
- array( 'one', 21 ),
- array( 'one', 411 ),
- array( 'other', 12.345 ),
- array( 'other', 20 ),
- array( 'one', 31 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2011, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/LanguageMl.php */
-class LanguageMlTest extends LanguageClassesTestCase {
-
- /**
- * @dataProvider providerFormatNum
- * @see bug 29495
- * @covers Language::formatNum
- */
- public function testFormatNum( $result, $value ) {
- $this->assertEquals( $result, $this->getLang()->formatNum( $value ) );
- }
-
- public static function providerFormatNum() {
- return array(
- array( '12,34,567', '1234567' ),
- array( '12,345', '12345' ),
- array( '1', '1' ),
- array( '123', '123' ),
- array( '1,234', '1234' ),
- array( '12,345.56', '12345.56' ),
- array( '12,34,56,79,81,23,45,678', '12345679812345678' ),
- array( '.12345', '.12345' ),
- array( '-12,00,000', '-1200000' ),
- array( '-98', '-98' ),
- array( '-98', -98 ),
- array( '-1,23,45,678', -12345678 ),
- array( '', '' ),
- array( '', null ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageMo.php */
-class LanguageMoTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'few', 'other' );
- $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 array(
- array( 'few', 0 ),
- array( 'one', 1 ),
- array( 'few', 2 ),
- array( 'few', 19 ),
- array( 'other', 20 ),
- array( 'other', 99 ),
- array( 'other', 100 ),
- array( 'few', 101 ),
- array( 'few', 119 ),
- array( 'other', 120 ),
- array( 'other', 200 ),
- array( 'few', 201 ),
- array( 'few', 219 ),
- array( 'other', 220 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Amir E. Aharoni
- * @copyright Copyright © 2012, Amir E. Aharoni
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageMt.php */
-class LanguageMtTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'few', 'many', 'other' );
- $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 array(
- array( 'few', 0 ),
- array( 'one', 1 ),
- array( 'few', 2 ),
- array( 'few', 10 ),
- array( 'many', 11 ),
- array( 'many', 19 ),
- array( 'other', 20 ),
- array( 'other', 99 ),
- array( 'other', 100 ),
- array( 'other', 101 ),
- array( 'few', 102 ),
- array( 'few', 110 ),
- array( 'many', 111 ),
- array( 'many', 119 ),
- array( 'other', 120 ),
- array( 'other', 201 ),
- );
- }
-
- /**
- * @dataProvider providePluralTwoForms
- * @covers Language::convertPlural
- */
- public function testPluralTwoForms( $result, $value ) {
- $forms = array( 'one', 'other' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- public static function providePluralTwoForms() {
- return array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 10 ),
- array( 'other', 11 ),
- array( 'other', 19 ),
- array( 'other', 20 ),
- array( 'other', 99 ),
- array( 'other', 100 ),
- array( 'other', 101 ),
- array( 'other', 102 ),
- array( 'other', 110 ),
- array( 'other', 111 ),
- array( 'other', 119 ),
- array( 'other', 120 ),
- array( 'other', 201 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2011, Santhosh Thottingal
- * @file
- */
-
-/** Tests for MediaWiki languages/LanguageNl.php */
-class LanguageNlTest extends LanguageClassesTestCase {
-
- /**
- * @covers Language::formatNum
- * @todo split into a test and a dataprovider
- */
- public function testFormatNum() {
- $this->assertEquals( '1.234.567', $this->getLang()->formatNum( '1234567' ) );
- $this->assertEquals( '12.345', $this->getLang()->formatNum( '12345' ) );
- $this->assertEquals( '1', $this->getLang()->formatNum( '1' ) );
- $this->assertEquals( '123', $this->getLang()->formatNum( '123' ) );
- $this->assertEquals( '1.234', $this->getLang()->formatNum( '1234' ) );
- $this->assertEquals( '12.345,56', $this->getLang()->formatNum( '12345.56' ) );
- $this->assertEquals( ',1234556', $this->getLang()->formatNum( '.1234556' ) );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Amir E. Aharoni
- * @copyright Copyright © 2012, Amir E. Aharoni
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageNso.php */
-class LanguageNsoTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'other' );
- $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 array(
- array( 'one', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Amir E. Aharoni
- * @copyright Copyright © 2012, Amir E. Aharoni
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguagePl.php */
-class LanguagePlTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( '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 array(
- array( 'many', 0 ),
- array( 'one', 1 ),
- array( 'few', 2 ),
- array( 'few', 3 ),
- array( 'few', 4 ),
- array( 'many', 5 ),
- array( 'many', 9 ),
- array( 'many', 10 ),
- array( 'many', 11 ),
- array( 'many', 21 ),
- array( 'few', 22 ),
- array( 'few', 23 ),
- array( 'few', 24 ),
- array( 'many', 25 ),
- array( 'many', 200 ),
- array( 'many', 201 ),
- );
- }
-
- /**
- * @dataProvider providePluralTwoForms
- * @covers Language::convertPlural
- */
- public function testPluralTwoForms( $result, $value ) {
- $forms = array( 'one', 'other' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- public static function providePluralTwoForms() {
- return array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 3 ),
- array( 'other', 4 ),
- array( 'other', 5 ),
- array( 'other', 9 ),
- array( 'other', 10 ),
- array( 'other', 11 ),
- array( 'other', 21 ),
- array( 'other', 22 ),
- array( 'other', 23 ),
- array( 'other', 24 ),
- array( 'other', 25 ),
- array( 'other', 200 ),
- array( 'other', 201 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Amir E. Aharoni
- * @copyright Copyright © 2012, Amir E. Aharoni
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageRo.php */
-class LanguageRoTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'few', 'other' );
- $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 array(
- array( 'few', 0 ),
- array( 'one', 1 ),
- array( 'few', 2 ),
- array( 'few', 19 ),
- array( 'other', 20 ),
- array( 'other', 99 ),
- array( 'other', 100 ),
- array( 'few', 101 ),
- array( 'few', 119 ),
- array( 'other', 120 ),
- array( 'other', 200 ),
- array( 'few', 201 ),
- array( 'few', 219 ),
- array( 'other', 220 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Amir E. Aharoni
- * based on LanguageBe_tarask.php
- * @copyright Copyright © 2012, Amir E. Aharoni
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageRu.php */
-class LanguageRuTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'few', 'many', 'other' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- /**
- * Test explicit plural forms - n=FormN forms
- * @covers Language::convertPlural
- */
- public function testExplicitPlural() {
- $forms = array( 'one', 'few', 'many', 'other', '12=dozen' );
- $this->assertEquals( 'dozen', $this->getLang()->convertPlural( 12, $forms ) );
- $forms = array( 'one', 'few', 'many', '100=hundred', 'other', '12=dozen' );
- $this->assertEquals( 'hundred', $this->getLang()->convertPlural( 100, $forms ) );
- }
-
- /**
- * @dataProvider providePlural
- * @covers Language::getPluralRuleType
- */
- public 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
- * @covers Language::convertPlural
- */
- public function testPluralTwoForms( $result, $value ) {
- $forms = array( '1=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 ),
- );
- }
-
- /**
- * @dataProvider providerGrammar
- * @covers Language::convertGrammar
- */
- public function testGrammar( $result, $word, $case ) {
- $this->assertEquals( $result, $this->getLang()->convertGrammar( $word, $case ) );
- }
-
- public static function providerGrammar() {
- return array(
- array(
- 'Википедии',
- 'Википедия',
- 'genitive',
- ),
- array(
- 'Викитеки',
- 'Викитека',
- 'genitive',
- ),
- array(
- 'Викитеке',
- 'Викитека',
- 'prepositional',
- ),
- array(
- 'Викисклада',
- 'Викисклад',
- 'genitive',
- ),
- array(
- 'Викискладе',
- 'Викисклад',
- 'prepositional',
- ),
- array(
- 'Викиданных',
- 'Викиданные',
- 'prepositional',
- ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Amir E. Aharoni
- * @copyright Copyright © 2012, Amir E. Aharoni
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageSe.php */
-class LanguageSeTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'two', 'other' );
- $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 array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'two', 2 ),
- array( 'other', 3 ),
- );
- }
-
- /**
- * @dataProvider providePluralTwoForms
- * @covers Language::convertPlural
- */
- public function testPluralTwoForms( $result, $value ) {
- $forms = array( 'one', 'other' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- public static function providePluralTwoForms() {
- return array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 3 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Amir E. Aharoni
- * @copyright Copyright © 2012, Amir E. Aharoni
- * @file
- */
-
-/** Tests for Samogitian */
-class LanguageSgsTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePluralAllForms
- * @covers Language::convertPlural
- */
- public function testPluralAllForms( $result, $value ) {
- $forms = array( 'one', 'two', 'few', 'other' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- /**
- * @dataProvider providePluralAllForms
- * @covers Language::getPluralRuleType
- */
- public function testGetPluralRuleType( $result, $value ) {
- $this->assertEquals( $result, $this->getLang()->getPluralRuleType( $value ) );
- }
-
- public static function providePluralAllForms() {
- return array(
- array( 'few', 0 ),
- array( 'one', 1 ),
- array( 'two', 2 ),
- array( 'other', 3 ),
- array( 'few', 10 ),
- array( 'few', 11 ),
- array( 'few', 12 ),
- array( 'few', 19 ),
- array( 'other', 20 ),
- array( 'few', 100 ),
- array( 'one', 101 ),
- array( 'few', 111 ),
- array( 'few', 112 ),
- );
- }
-
- /**
- * @dataProvider providePluralTwoForms
- * @covers Language::convertPlural
- */
- public function testPluralTwoForms( $result, $value ) {
- $forms = array( 'one', 'other' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- public static function providePluralTwoForms() {
- return array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 3 ),
- array( 'other', 10 ),
- array( 'other', 11 ),
- array( 'other', 12 ),
- array( 'other', 19 ),
- array( 'other', 20 ),
- array( 'other', 100 ),
- array( 'one', 101 ),
- array( 'other', 111 ),
- array( 'other', 112 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Amir E. Aharoni
- * @copyright Copyright © 2012, Amir E. Aharoni
- * @file
- */
-
-/** Tests for srpskohrvatski / српскохрватски / Serbocroatian */
-class LanguageShTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'few', 'other' );
- $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 array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'few', 2 ),
- array( 'few', 4 ),
- array( 'other', 5 ),
- array( 'other', 10 ),
- array( 'other', 11 ),
- array( 'other', 12 ),
- array( 'one', 101 ),
- array( 'few', 102 ),
- array( 'other', 111 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Amir E. Aharoni
- * based on LanguageSkTest.php
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageSk.php */
-class LanguageSkTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'few', 'other' );
- $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 array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'few', 2 ),
- array( 'few', 3 ),
- array( 'few', 4 ),
- array( 'other', 5 ),
- array( 'other', 11 ),
- array( 'other', 20 ),
- array( 'other', 25 ),
- array( 'other', 200 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Santhosh Thottingal
- * @copyright Copyright © 2012, Amir E. Aharoni
- * based on LanguageSkTest.php
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageSl.php */
-class LanguageSlTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providerPlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'two', 'few', 'other' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- /**
- * @dataProvider providerPlural
- * @covers Language::getPluralRuleType
- */
- public function testGetPluralRuleType( $result, $value ) {
- $this->assertEquals( $result, $this->getLang()->getPluralRuleType( $value ) );
- }
-
- public static function providerPlural() {
- return array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'two', 2 ),
- array( 'few', 3 ),
- array( 'few', 4 ),
- array( 'other', 5 ),
- array( 'other', 99 ),
- array( 'other', 100 ),
- array( 'one', 101 ),
- array( 'two', 102 ),
- array( 'few', 103 ),
- array( 'one', 201 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Amir E. Aharoni
- * @copyright Copyright © 2012, Amir E. Aharoni
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageSma.php */
-class LanguageSmaTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'two', 'other' );
- $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 array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'two', 2 ),
- array( 'other', 3 ),
- );
- }
-
- /**
- * @dataProvider providePluralTwoForms
- * @covers Language::convertPlural
- */
- public function testPluralTwoForms( $result, $value ) {
- $forms = array( 'one', 'other' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- public static function providePluralTwoForms() {
- return array(
- array( 'other', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- array( 'other', 3 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * PHPUnit tests for the Serbian language.
- * The language can be represented using two scripts:
- * - Latin (SR_el)
- * - Cyrillic (SR_ec)
- * Both representations seems to be bijective, hence MediaWiki can convert
- * from one script to the other.
- *
- * @author Antoine Musso <hashar at free dot fr>
- * @copyright Copyright © 2011, Antoine Musso <hashar at free dot fr>
- * @file
- *
- * @todo methods in test class should be tidied:
- * - Should be split into separate test methods and data providers
- * - Tests for LanguageConverter and Language should probably be separate..
- */
-
-/** Tests for MediaWiki languages/LanguageSr.php */
-class LanguageSrTest extends LanguageClassesTestCase {
- /**
- * @covers LanguageConverter::convertTo
- */
- public function testEasyConversions() {
- $this->assertCyrillic(
- 'шђчћжШЂЧЋЖ',
- 'Cyrillic guessing characters'
- );
- $this->assertLatin(
- 'šđč枊ĐČĆŽ',
- 'Latin guessing characters'
- );
- }
-
- /**
- * @covers LanguageConverter::convertTo
- */
- public function testMixedConversions() {
- $this->assertCyrillic(
- 'шђчћжШЂЧЋЖ - šđčćž',
- 'Mostly cyrillic characters'
- );
- $this->assertLatin(
- 'šđč枊ĐČĆŽ - шђчћж',
- 'Mostly latin characters'
- );
- }
-
- /**
- * @covers LanguageConverter::convertTo
- */
- public function testSameAmountOfLatinAndCyrillicGetConverted() {
- $this->assertConverted(
- '4 latin: šđčć | 4 cyrillic: шђчћ',
- 'sr-ec'
- );
- $this->assertConverted(
- '4 latin: šđčć | 4 cyrillic: шђчћ',
- 'sr-el'
- );
- }
-
- /**
- * @author Nikola Smolenski
- * @covers LanguageConverter::convertTo
- */
- public function testConversionToCyrillic() {
- //A simple convertion of Latin to Cyrillic
- $this->assertEquals( 'абвг',
- $this->convertToCyrillic( 'abvg' )
- );
- //Same as above, but assert that -{}-s must be removed and not converted
- $this->assertEquals( 'ljабnjвгdž',
- $this->convertToCyrillic( '-{lj}-ab-{nj}-vg-{dž}-' )
- );
- //A simple convertion of Cyrillic to Cyrillic
- $this->assertEquals( 'абвг',
- $this->convertToCyrillic( 'абвг' )
- );
- //Same as above, but assert that -{}-s must be removed and not converted
- $this->assertEquals( 'ljабnjвгdž',
- $this->convertToCyrillic( '-{lj}-аб-{nj}-вг-{dž}-' )
- );
- //This text has some Latin, but is recognized as Cyrillic, so it should not be converted
- $this->assertEquals( 'abvgшђжчћ',
- $this->convertToCyrillic( 'abvgшђжчћ' )
- );
- //Same as above, but assert that -{}-s must be removed
- $this->assertEquals( 'љabvgњшђжчћџ',
- $this->convertToCyrillic( '-{љ}-abvg-{њ}-шђжчћ-{џ}-' )
- );
- //This text has some Cyrillic, but is recognized as Latin, so it should be converted
- $this->assertEquals( 'абвгшђжчћ',
- $this->convertToCyrillic( 'абвгšđžčć' )
- );
- //Same as above, but assert that -{}-s must be removed and not converted
- $this->assertEquals( 'ljабвгnjшђжчћdž',
- $this->convertToCyrillic( '-{lj}-абвг-{nj}-šđžčć-{dž}-' )
- );
- // Roman numerals are not converted
- $this->assertEquals( 'а I б II в III г IV шђжчћ',
- $this->convertToCyrillic( 'a I b II v III g IV šđžčć' )
- );
- }
-
- /**
- * @covers LanguageConverter::convertTo
- */
- public function testConversionToLatin() {
- //A simple convertion of Latin to Latin
- $this->assertEquals( 'abcd',
- $this->convertToLatin( 'abcd' )
- );
- //A simple convertion of Cyrillic to Latin
- $this->assertEquals( 'abcd',
- $this->convertToLatin( 'абцд' )
- );
- //This text has some Latin, but is recognized as Cyrillic, so it should be converted
- $this->assertEquals( 'abcdšđžčć',
- $this->convertToLatin( 'abcdшђжчћ' )
- );
- //This text has some Cyrillic, but is recognized as Latin, so it should not be converted
- $this->assertEquals( 'абцдšđžčć',
- $this->convertToLatin( 'абцдšđžčć' )
- );
- }
-
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'few', 'other' );
- $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 array(
- array( 'one', 1 ),
- array( 'other', 11 ),
- array( 'one', 91 ),
- array( 'one', 121 ),
- array( 'few', 2 ),
- array( 'few', 3 ),
- array( 'few', 4 ),
- array( 'few', 334 ),
- array( 'other', 5 ),
- array( 'other', 15 ),
- array( 'other', 120 ),
- );
- }
-
- /**
- * @dataProvider providePluralTwoForms
- * @covers Language::convertPlural
- */
- public 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', 4 ),
- array( 'one', 91 ),
- array( 'one', 121 ),
- );
- }
-
- ##### HELPERS #####################################################
- /**
- *Wrapper to verify text stay the same after applying conversion
- * @param string $text Text to convert
- * @param string $variant Language variant 'sr-ec' or 'sr-el'
- * @param string $msg Optional message
- */
- protected function assertUnConverted( $text, $variant, $msg = '' ) {
- $this->assertEquals(
- $text,
- $this->convertTo( $text, $variant ),
- $msg
- );
- }
-
- /**
- * Wrapper to verify a text is different once converted to a variant.
- * @param string $text Text to convert
- * @param string $variant Language variant 'sr-ec' or 'sr-el'
- * @param string $msg Optional message
- */
- protected function assertConverted( $text, $variant, $msg = '' ) {
- $this->assertNotEquals(
- $text,
- $this->convertTo( $text, $variant ),
- $msg
- );
- }
-
- /**
- * Verifiy the given Cyrillic text is not converted when using
- * using the cyrillic variant and converted to Latin when using
- * the Latin variant.
- * @param string $text Text to convert
- * @param string $msg Optional message
- */
- protected function assertCyrillic( $text, $msg = '' ) {
- $this->assertUnConverted( $text, 'sr-ec', $msg );
- $this->assertConverted( $text, 'sr-el', $msg );
- }
-
- /**
- * Verifiy the given Latin text is not converted when using
- * using the Latin variant and converted to Cyrillic when using
- * the Cyrillic variant.
- * @param string $text Text to convert
- * @param string $msg Optional message
- */
- protected function assertLatin( $text, $msg = '' ) {
- $this->assertUnConverted( $text, 'sr-el', $msg );
- $this->assertConverted( $text, 'sr-ec', $msg );
- }
-
- /** Wrapper for converter::convertTo() method*/
- protected function convertTo( $text, $variant ) {
- return $this->getLang()
- ->mConverter
- ->convertTo(
- $text, $variant
- );
- }
-
- protected function convertToCyrillic( $text ) {
- return $this->convertTo( $text, 'sr-ec' );
- }
-
- protected function convertToLatin( $text ) {
- return $this->convertTo( $text, 'sr-el' );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Amir E. Aharoni
- * @copyright Copyright © 2012, Amir E. Aharoni
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageTi.php */
-class LanguageTiTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'other' );
- $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 array(
- array( 'one', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Amir E. Aharoni
- * @copyright Copyright © 2012, Amir E. Aharoni
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageTl.php */
-class LanguageTlTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'other' );
- $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 array(
- array( 'one', 0 ),
- array( 'one', 1 ),
- array( 'one', 2 ),
- array( 'other', 4 ),
- array( 'other', 6 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Antoine Musso
- * @copyright Copyright © 2011, Antoine Musso
- * @file
- */
-
-/** Tests for MediaWiki languages/LanguageTr.php */
-class LanguageTrTest extends LanguageClassesTestCase {
-
- /**
- * See @bug 28040
- * Credits to irc://irc.freenode.net/wikipedia-tr users:
- * - berm
- * - []LuCkY[]
- * - Emperyan
- * @see http://en.wikipedia.org/wiki/Dotted_and_dotless_I
- * @dataProvider provideDottedAndDotlessI
- * @covers Language::ucfirst
- * @covers Language::lcfirst
- */
- public function testDottedAndDotlessI( $func, $input, $inputCase, $expected ) {
- if ( $func == 'ucfirst' ) {
- $res = $this->getLang()->ucfirst( $input );
- } elseif ( $func == 'lcfirst' ) {
- $res = $this->getLang()->lcfirst( $input );
- } else {
- throw new MWException( __METHOD__ . " given an invalid function name '$func'" );
- }
-
- $msg = "Converting $inputCase case '$input' with $func should give '$expected'";
-
- $this->assertEquals( $expected, $res, $msg );
- }
-
- public static function provideDottedAndDotlessI() {
- return array(
- # function, input, input case, expected
- # Case changed:
- array( 'ucfirst', 'ı', 'lower', 'I' ),
- array( 'ucfirst', 'i', 'lower', 'İ' ),
- array( 'lcfirst', 'I', 'upper', 'ı' ),
- array( 'lcfirst', 'İ', 'upper', 'i' ),
-
- # Already using the correct case
- array( 'ucfirst', 'I', 'upper', 'I' ),
- array( 'ucfirst', 'İ', 'upper', 'İ' ),
- array( 'lcfirst', 'ı', 'lower', 'ı' ),
- array( 'lcfirst', 'i', 'lower', 'i' ),
-
- # A real example taken from bug 28040 using
- # http://tr.wikipedia.org/wiki/%C4%B0Phone
- array( 'lcfirst', 'iPhone', 'lower', 'iPhone' ),
-
- # next case is valid in Turkish but are different words if we
- # consider IPhone is English!
- array( 'lcfirst', 'IPhone', 'upper', 'ıPhone' ),
-
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Amir E. Aharoni
- * based on LanguageBe_tarask.php
- * @copyright Copyright © 2012, Amir E. Aharoni
- * @file
- */
-
-/** Tests for Ukrainian */
-class LanguageUkTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'few', 'many', 'other' );
- $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
- }
-
- /**
- * Test explicit plural forms - n=FormN forms
- * @covers Language::convertPlural
- */
- public function testExplicitPlural() {
- $forms = array( 'one', 'few', 'many', 'other', '12=dozen' );
- $this->assertEquals( 'dozen', $this->getLang()->convertPlural( 12, $forms ) );
- $forms = array( 'one', 'few', 'many', '100=hundred', 'other', '12=dozen' );
- $this->assertEquals( 'hundred', $this->getLang()->convertPlural( 100, $forms ) );
- }
-
- /**
- * @dataProvider providePlural
- * @covers Language::getPluralRuleType
- */
- public 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
- * @covers Language::convertPlural
- */
- public function testPluralTwoForms( $result, $value ) {
- $forms = array( '1=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 ),
- );
- }
-}
+++ /dev/null
-<?php
-/**
- * PHPUnit tests for the Uzbek language.
- * The language can be represented using two scripts:
- * - Latin (uz-latn)
- * - Cyrillic (uz-cyrl)
- *
- * @author Robin Pepermans
- * @author Antoine Musso <hashar at free dot fr>
- * @copyright Copyright © 2012, Robin Pepermans
- * @copyright Copyright © 2011, Antoine Musso <hashar at free dot fr>
- * @file
- *
- * @todo methods in test class should be tidied:
- * - Should be split into separate test methods and data providers
- * - Tests for LanguageConverter and Language should probably be separate..
- */
-
-/** Tests for MediaWiki languages/LanguageUz.php */
-class LanguageUzTest extends LanguageClassesTestCase {
-
- /**
- * @author Nikola Smolenski
- * @covers LanguageConverter::convertTo
- */
- public function testConversionToCyrillic() {
- // A convertion of Latin to Cyrillic
- $this->assertEquals( 'абвгғ',
- $this->convertToCyrillic( 'abvggʻ' )
- );
- // Same as above, but assert that -{}-s must be removed and not converted
- $this->assertEquals( 'ljабnjвгўоdb',
- $this->convertToCyrillic( '-{lj}-ab-{nj}-vgoʻo-{db}-' )
- );
- // A simple convertion of Cyrillic to Cyrillic
- $this->assertEquals( 'абвг',
- $this->convertToCyrillic( 'абвг' )
- );
- // Same as above, but assert that -{}-s must be removed and not converted
- $this->assertEquals( 'ljабnjвгdaž',
- $this->convertToCyrillic( '-{lj}-аб-{nj}-вг-{da}-ž' )
- );
- }
-
- /**
- * @covers LanguageConverter::convertTo
- */
- public function testConversionToLatin() {
- // A simple convertion of Latin to Latin
- $this->assertEquals( 'abdef',
- $this->convertToLatin( 'abdef' )
- );
- // A convertion of Cyrillic to Latin
- $this->assertEquals( 'gʻabtsdOʻQyo',
- $this->convertToLatin( 'ғабцдЎҚё' )
- );
- }
-
- ##### HELPERS #####################################################
- /**
- * Wrapper to verify text stay the same after applying conversion
- * @param string $text Text to convert
- * @param string $variant Language variant 'uz-cyrl' or 'uz-latn'
- * @param string $msg Optional message
- */
- protected function assertUnConverted( $text, $variant, $msg = '' ) {
- $this->assertEquals(
- $text,
- $this->convertTo( $text, $variant ),
- $msg
- );
- }
-
- /**
- * Wrapper to verify a text is different once converted to a variant.
- * @param string $text Text to convert
- * @param string $variant Language variant 'uz-cyrl' or 'uz-latn'
- * @param string $msg Optional message
- */
- protected function assertConverted( $text, $variant, $msg = '' ) {
- $this->assertNotEquals(
- $text,
- $this->convertTo( $text, $variant ),
- $msg
- );
- }
-
- /**
- * Verifiy the given Cyrillic text is not converted when using
- * using the cyrillic variant and converted to Latin when using
- * the Latin variant.
- * @param string $text Text to convert
- * @param string $msg Optional message
- */
- protected function assertCyrillic( $text, $msg = '' ) {
- $this->assertUnConverted( $text, 'uz-cyrl', $msg );
- $this->assertConverted( $text, 'uz-latn', $msg );
- }
-
- /**
- * Verifiy the given Latin text is not converted when using
- * using the Latin variant and converted to Cyrillic when using
- * the Cyrillic variant.
- * @param string $text Text to convert
- * @param string $msg Optional message
- */
- protected function assertLatin( $text, $msg = '' ) {
- $this->assertUnConverted( $text, 'uz-latn', $msg );
- $this->assertConverted( $text, 'uz-cyrl', $msg );
- }
-
- /** Wrapper for converter::convertTo() method*/
- protected function convertTo( $text, $variant ) {
- return $this->getLang()->mConverter->convertTo( $text, $variant );
- }
-
- protected function convertToCyrillic( $text ) {
- return $this->convertTo( $text, 'uz-cyrl' );
- }
-
- protected function convertToLatin( $text ) {
- return $this->convertTo( $text, 'uz-latn' );
- }
-}
+++ /dev/null
-<?php
-/**
- * @author Amir E. Aharoni
- * @copyright Copyright © 2012, Amir E. Aharoni
- * @file
- */
-
-/** Tests for MediaWiki languages/classes/LanguageWa.php */
-class LanguageWaTest extends LanguageClassesTestCase {
- /**
- * @dataProvider providePlural
- * @covers Language::convertPlural
- */
- public function testPlural( $result, $value ) {
- $forms = array( 'one', 'other' );
- $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 array(
- array( 'one', 0 ),
- array( 'one', 1 ),
- array( 'other', 2 ),
- );
- }
-}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/LanguageAm.php */
+class LanguageAmTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $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 array(
+ array( 'one', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * Based on LanguagMlTest
+ * @file
+ */
+
+/** Tests for MediaWiki languages/LanguageAr.php */
+class LanguageArTest extends LanguageClassesTestCase {
+ /**
+ * @covers Language::formatNum
+ * @todo split into a test and a dataprovider
+ */
+ public function testFormatNum() {
+ $this->assertEquals( '١٬٢٣٤٬٥٦٧', $this->getLang()->formatNum( '1234567' ) );
+ $this->assertEquals( '-١٢٫٨٩', $this->getLang()->formatNum( -12.89 ) );
+ }
+
+ /**
+ * Mostly to test the raw ascii feature.
+ * @dataProvider providerSprintfDate
+ * @covers Language::sprintfDate
+ */
+ public function testSprintfDate( $format, $date, $expected ) {
+ $this->assertEquals( $expected, $this->getLang()->sprintfDate( $format, $date ) );
+ }
+
+ public static 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
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'zero', 'one', 'two', 'few', 'many', 'other' );
+ $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 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 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * Based on LanguageMlTest
+ * @author Joel Sahleen
+ * @copyright Copyright © 2014, Joel Sahleen
+ * @file
+ */
+
+/** Tests for MediaWiki languages/LanguageArq.php */
+class LanguageArqTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider provideNumber
+ * @covers Language::formatNum
+ */
+ public function testFormatNum( $result, $value ) {
+ $this->assertEquals( $result, $this->getLang()->formatNum( $value ) );
+ }
+
+ public static function provideNumber() {
+ return array(
+ array( '1.234.567', '1234567'),
+ array( '-12,89', -12.89 ),
+ );
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/LanguageBe.php */
+class LanguageBeTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'many', 'other' );
+ $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 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 ),
+ );
+ }
+}
--- /dev/null
+<?php
+
+// @codingStandardsIgnoreStart Ignore Squiz.Classes.ValidClassName.NotCamelCaps
+class LanguageBe_taraskTest extends LanguageClassesTestCase {
+ // @codingStandardsIgnoreEnd
+ /**
+ * Make sure the language code we are given is indeed
+ * be-tarask. This is to ensure LanguageClassesTestCase
+ * does not give us the wrong language.
+ */
+ public function testBeTaraskTestsUsesBeTaraskCode() {
+ $this->assertEquals( 'be-tarask',
+ $this->getLang()->getCode()
+ );
+ }
+
+ /**
+ * @see bug 23156 & r64981
+ * @covers Language::commafy
+ */
+ public function testSearchRightSingleQuotationMarkAsApostroph() {
+ $this->assertEquals(
+ "'",
+ $this->getLang()->normalizeForSearch( '’' ),
+ 'bug 23156: U+2019 conversion to U+0027'
+ );
+ }
+
+ /**
+ * @see bug 23156 & r64981
+ * @covers Language::commafy
+ */
+ public function testCommafy() {
+ $this->assertEquals( '1,234,567', $this->getLang()->commafy( '1234567' ) );
+ $this->assertEquals( '12,345', $this->getLang()->commafy( '12345' ) );
+ }
+
+ /**
+ * @see bug 23156 & r64981
+ * @covers Language::commafy
+ */
+ public function testDoesNotCommafyFourDigitsNumber() {
+ $this->assertEquals( '1234', $this->getLang()->commafy( '1234' ) );
+ }
+
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'many', 'other' );
+ $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 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
+ * @covers Language::convertPlural
+ */
+ public function testPluralTwoForms( $result, $value ) {
+ $forms = array( '1=one', 'other' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ public static function providePluralTwoForms() {
+ return array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 11 ),
+ array( 'other', 91 ),
+ array( 'other', 121 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/LanguageBho.php */
+class LanguageBhoTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $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 array(
+ array( 'one', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for Croatian (hrvatski) */
+class LanguageBsTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'other' );
+ $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 array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'few', 2 ),
+ array( 'few', 4 ),
+ array( 'other', 5 ),
+ array( 'other', 11 ),
+ array( 'other', 20 ),
+ array( 'one', 21 ),
+ array( 'few', 24 ),
+ array( 'other', 25 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/Languagecs.php */
+class LanguageCsTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'other' );
+ $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 array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'few', 2 ),
+ array( 'few', 3 ),
+ array( 'few', 4 ),
+ array( 'other', 5 ),
+ array( 'other', 11 ),
+ array( 'other', 20 ),
+ array( 'other', 25 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/LanguageCu.php */
+class LanguageCuTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'two', 'few', 'other' );
+ $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 array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'two', 2 ),
+ array( 'few', 3 ),
+ array( 'few', 4 ),
+ array( 'other', 5 ),
+ array( 'one', 11 ),
+ array( 'other', 20 ),
+ array( 'two', 22 ),
+ array( 'few', 223 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageCy.php */
+class LanguageCyTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'zero', 'one', 'two', 'few', 'many', 'other' );
+ $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 array(
+ array( 'zero', 0 ),
+ array( 'one', 1 ),
+ array( 'two', 2 ),
+ array( 'few', 3 ),
+ array( 'many', 6 ),
+ array( 'other', 4 ),
+ array( 'other', 5 ),
+ array( 'other', 11 ),
+ array( 'other', 20 ),
+ array( 'other', 22 ),
+ array( 'other', 223 ),
+ array( 'other', 200.00 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageDsb.php */
+class LanguageDsbTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'two', 'few', 'other' );
+ $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 array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'one', 101 ),
+ array( 'one', 90001 ),
+ array( 'two', 2 ),
+ array( 'few', 3 ),
+ array( 'few', 203 ),
+ array( 'few', 4 ),
+ array( 'other', 99 ),
+ array( 'other', 555 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageFr.php */
+class LanguageFrTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $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 array(
+ array( 'one', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageGa.php */
+class LanguageGaTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'two', 'other' );
+ $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 array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'two', 2 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012-2013, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageGd.php */
+class LanguageGdTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providerPlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'two', 'few', 'other' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ public static function providerPlural() {
+ return array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'two', 2 ),
+ array( 'one', 11 ),
+ array( 'two', 12 ),
+ array( 'few', 3 ),
+ array( 'few', 19 ),
+ array( 'other', 200 ),
+ );
+ }
+
+ /**
+ * @dataProvider providerPluralExplicit
+ * @covers Language::convertPlural
+ */
+ public function testExplicitPlural( $result, $value ) {
+ $forms = array( 'one', 'two', 'few', 'other', '11=Form11', '12=Form12' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ public static function providerPluralExplicit() {
+ return array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'two', 2 ),
+ array( 'Form11', 11 ),
+ array( 'Form12', 12 ),
+ array( 'few', 3 ),
+ array( 'few', 19 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * Test for Manx (Gaelg) language
+ *
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2013, Santhosh Thottingal
+ * @file
+ */
+
+class LanguageGvTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'two', 'few', 'other' );
+ $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 array(
+ array( 'few', 0 ),
+ array( 'one', 1 ),
+ array( 'two', 2 ),
+ array( 'other', 3 ),
+ array( 'few', 20 ),
+ array( 'one', 21 ),
+ array( 'two', 22 ),
+ array( 'other', 23 ),
+ array( 'other', 50 ),
+ array( 'few', 60 ),
+ array( 'few', 80 ),
+ array( 'few', 100 )
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageHe.php */
+class LanguageHeTest extends LanguageClassesTestCase {
+ /**
+ * The most common usage for the plural forms is two forms,
+ * for singular and plural. In this case, the second form
+ * is technically dual, but in practice it's used as plural.
+ * In some cases, usually with expressions of time, three forms
+ * are needed - singular, dual and plural.
+ * CLDR also specifies a fourth form for multiples of 10,
+ * which is very rare. It also has a mistake, because
+ * the number 10 itself is supposed to be just plural,
+ * so currently it's overridden in MediaWiki.
+ */
+
+ // @todo the below test*PluralForms test methods can be refactored
+ // to use a single test method and data provider..
+
+ /**
+ * @dataProvider provideTwoPluralForms
+ * @covers Language::convertPlural
+ */
+ public function testTwoPluralForms( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ /**
+ * @dataProvider provideThreePluralForms
+ * @covers Language::convertPlural
+ */
+ public function testThreePluralForms( $result, $value ) {
+ $forms = array( 'one', 'two', 'other' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ /**
+ * @dataProvider provideFourPluralForms
+ * @covers Language::convertPlural
+ */
+ public function testFourPluralForms( $result, $value ) {
+ $forms = array( 'one', 'two', 'many', 'other' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ /**
+ * @dataProvider provideFourPluralForms
+ * @covers Language::convertPlural
+ */
+ public function testGetPluralRuleType( $result, $value ) {
+ $this->assertEquals( $result, $this->getLang()->getPluralRuleType( $value ) );
+ }
+
+ public static function provideTwoPluralForms() {
+ return array(
+ array( 'other', 0 ), // Zero - plural
+ array( 'one', 1 ), // Singular
+ array( 'other', 2 ), // No third form provided, use it as plural
+ array( 'other', 3 ), // Plural - other
+ array( 'other', 10 ), // No fourth form provided, use it as plural
+ array( 'other', 20 ), // No fourth form provided, use it as plural
+ );
+ }
+
+ public static function provideThreePluralForms() {
+ return array(
+ array( 'other', 0 ), // Zero - plural
+ array( 'one', 1 ), // Singular
+ array( 'two', 2 ), // Dual
+ array( 'other', 3 ), // Plural - other
+ array( 'other', 10 ), // No fourth form provided, use it as plural
+ array( 'other', 20 ), // No fourth form provided, use it as plural
+ );
+ }
+
+ public static function provideFourPluralForms() {
+ return array(
+ array( 'other', 0 ), // Zero - plural
+ array( 'one', 1 ), // Singular
+ array( 'two', 2 ), // Dual
+ array( 'other', 3 ), // Plural - other
+ array( 'other', 10 ), // 10 is supposed to be plural (other), not "many"
+ array( 'many', 20 ), // Fourth form provided - rare, but supported by CLDR
+ );
+ }
+
+ /**
+ * @dataProvider provideGrammar
+ * @covers Language::convertGrammar
+ */
+ public function testGrammar( $result, $word, $case ) {
+ $this->assertEquals( $result, $this->getLang()->convertGrammar( $word, $case ) );
+ }
+
+ // The comments in the beginning of the line help avoid RTL problems
+ // with text editors.
+ public static function provideGrammar() {
+ return array(
+ array(
+ /* result */'וויקיפדיה',
+ /* word */'ויקיפדיה',
+ /* case */'תחילית',
+ ),
+ array(
+ /* result */'וולפגנג',
+ /* word */'וולפגנג',
+ /* case */'prefixed',
+ ),
+ array(
+ /* result */'קובץ',
+ /* word */'הקובץ',
+ /* case */'תחילית',
+ ),
+ array(
+ /* result */'־Wikipedia',
+ /* word */'Wikipedia',
+ /* case */'תחילית',
+ ),
+ array(
+ /* result */'־1995',
+ /* word */'1995',
+ /* case */'תחילית',
+ ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/LanguageHi.php */
+class LanguageHiTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $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 array(
+ array( 'one', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageHr.php */
+class LanguageHrTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'other' );
+ $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 array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'few', 2 ),
+ array( 'few', 4 ),
+ array( 'other', 5 ),
+ array( 'other', 11 ),
+ array( 'other', 20 ),
+ array( 'one', 21 ),
+ array( 'few', 24 ),
+ array( 'other', 25 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageHsb.php */
+class LanguageHsbTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'two', 'few', 'other' );
+ $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 array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'one', 101 ),
+ array( 'one', 90001 ),
+ array( 'two', 2 ),
+ array( 'few', 3 ),
+ array( 'few', 203 ),
+ array( 'few', 4 ),
+ array( 'other', 99 ),
+ array( 'other', 555 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/LanguageHu.php */
+class LanguageHuTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $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 array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for Armenian (Հայերեն) */
+class LanguageHyTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $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 array(
+ array( 'one', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageKsh.php */
+class LanguageKshTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'other', 'zero' );
+ $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 array(
+ array( 'zero', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageLn.php */
+class LanguageLnTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $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 array(
+ array( 'one', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/LanguageLt.php */
+class LanguageLtTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'other' );
+ $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 array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'few', 2 ),
+ array( 'few', 9 ),
+ array( 'other', 10 ),
+ array( 'other', 11 ),
+ array( 'other', 20 ),
+ array( 'one', 21 ),
+ array( 'few', 32 ),
+ array( 'one', 41 ),
+ array( 'one', 40001 ),
+ );
+ }
+
+ /**
+ * @dataProvider providePluralTwoForms
+ * @covers Language::convertPlural
+ */
+ public function testOneFewPlural( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ // This fails for 21, but not sure why.
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ public static function providePluralTwoForms() {
+ return array(
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 15 ),
+ array( 'other', 20 ),
+ array( 'one', 21 ),
+ array( 'other', 22 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for Latvian */
+class LanguageLvTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'zero', 'one', 'other' );
+ $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 array(
+ array( 'zero', 0 ),
+ array( 'one', 1 ),
+ array( 'zero', 11 ),
+ array( 'one', 21 ),
+ array( 'zero', 411 ),
+ array( 'other', 2 ),
+ array( 'other', 9 ),
+ array( 'zero', 12 ),
+ array( 'other', 12.345 ),
+ array( 'zero', 20 ),
+ array( 'other', 22 ),
+ array( 'one', 31 ),
+ array( 'zero', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageMg.php */
+class LanguageMgTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $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 array(
+ array( 'one', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 200 ),
+ array( 'other', 123.3434 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for македонски/Macedonian */
+class LanguageMkTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $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 array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'one', 11 ),
+ array( 'one', 21 ),
+ array( 'one', 411 ),
+ array( 'other', 12.345 ),
+ array( 'other', 20 ),
+ array( 'one', 31 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2011, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/LanguageMl.php */
+class LanguageMlTest extends LanguageClassesTestCase {
+
+ /**
+ * @dataProvider providerFormatNum
+ * @see bug 29495
+ * @covers Language::formatNum
+ */
+ public function testFormatNum( $result, $value ) {
+ $this->assertEquals( $result, $this->getLang()->formatNum( $value ) );
+ }
+
+ public static function providerFormatNum() {
+ return array(
+ array( '12,34,567', '1234567' ),
+ array( '12,345', '12345' ),
+ array( '1', '1' ),
+ array( '123', '123' ),
+ array( '1,234', '1234' ),
+ array( '12,345.56', '12345.56' ),
+ array( '12,34,56,79,81,23,45,678', '12345679812345678' ),
+ array( '.12345', '.12345' ),
+ array( '-12,00,000', '-1200000' ),
+ array( '-98', '-98' ),
+ array( '-98', -98 ),
+ array( '-1,23,45,678', -12345678 ),
+ array( '', '' ),
+ array( '', null ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageMo.php */
+class LanguageMoTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'other' );
+ $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 array(
+ array( 'few', 0 ),
+ array( 'one', 1 ),
+ array( 'few', 2 ),
+ array( 'few', 19 ),
+ array( 'other', 20 ),
+ array( 'other', 99 ),
+ array( 'other', 100 ),
+ array( 'few', 101 ),
+ array( 'few', 119 ),
+ array( 'other', 120 ),
+ array( 'other', 200 ),
+ array( 'few', 201 ),
+ array( 'few', 219 ),
+ array( 'other', 220 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageMt.php */
+class LanguageMtTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'many', 'other' );
+ $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 array(
+ array( 'few', 0 ),
+ array( 'one', 1 ),
+ array( 'few', 2 ),
+ array( 'few', 10 ),
+ array( 'many', 11 ),
+ array( 'many', 19 ),
+ array( 'other', 20 ),
+ array( 'other', 99 ),
+ array( 'other', 100 ),
+ array( 'other', 101 ),
+ array( 'few', 102 ),
+ array( 'few', 110 ),
+ array( 'many', 111 ),
+ array( 'many', 119 ),
+ array( 'other', 120 ),
+ array( 'other', 201 ),
+ );
+ }
+
+ /**
+ * @dataProvider providePluralTwoForms
+ * @covers Language::convertPlural
+ */
+ public function testPluralTwoForms( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ public static function providePluralTwoForms() {
+ return array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 10 ),
+ array( 'other', 11 ),
+ array( 'other', 19 ),
+ array( 'other', 20 ),
+ array( 'other', 99 ),
+ array( 'other', 100 ),
+ array( 'other', 101 ),
+ array( 'other', 102 ),
+ array( 'other', 110 ),
+ array( 'other', 111 ),
+ array( 'other', 119 ),
+ array( 'other', 120 ),
+ array( 'other', 201 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2011, Santhosh Thottingal
+ * @file
+ */
+
+/** Tests for MediaWiki languages/LanguageNl.php */
+class LanguageNlTest extends LanguageClassesTestCase {
+
+ /**
+ * @covers Language::formatNum
+ * @todo split into a test and a dataprovider
+ */
+ public function testFormatNum() {
+ $this->assertEquals( '1.234.567', $this->getLang()->formatNum( '1234567' ) );
+ $this->assertEquals( '12.345', $this->getLang()->formatNum( '12345' ) );
+ $this->assertEquals( '1', $this->getLang()->formatNum( '1' ) );
+ $this->assertEquals( '123', $this->getLang()->formatNum( '123' ) );
+ $this->assertEquals( '1.234', $this->getLang()->formatNum( '1234' ) );
+ $this->assertEquals( '12.345,56', $this->getLang()->formatNum( '12345.56' ) );
+ $this->assertEquals( ',1234556', $this->getLang()->formatNum( '.1234556' ) );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageNso.php */
+class LanguageNsoTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $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 array(
+ array( 'one', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguagePl.php */
+class LanguagePlTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( '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 array(
+ array( 'many', 0 ),
+ array( 'one', 1 ),
+ array( 'few', 2 ),
+ array( 'few', 3 ),
+ array( 'few', 4 ),
+ array( 'many', 5 ),
+ array( 'many', 9 ),
+ array( 'many', 10 ),
+ array( 'many', 11 ),
+ array( 'many', 21 ),
+ array( 'few', 22 ),
+ array( 'few', 23 ),
+ array( 'few', 24 ),
+ array( 'many', 25 ),
+ array( 'many', 200 ),
+ array( 'many', 201 ),
+ );
+ }
+
+ /**
+ * @dataProvider providePluralTwoForms
+ * @covers Language::convertPlural
+ */
+ public function testPluralTwoForms( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ public static function providePluralTwoForms() {
+ return array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 3 ),
+ array( 'other', 4 ),
+ array( 'other', 5 ),
+ array( 'other', 9 ),
+ array( 'other', 10 ),
+ array( 'other', 11 ),
+ array( 'other', 21 ),
+ array( 'other', 22 ),
+ array( 'other', 23 ),
+ array( 'other', 24 ),
+ array( 'other', 25 ),
+ array( 'other', 200 ),
+ array( 'other', 201 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageRo.php */
+class LanguageRoTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'other' );
+ $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 array(
+ array( 'few', 0 ),
+ array( 'one', 1 ),
+ array( 'few', 2 ),
+ array( 'few', 19 ),
+ array( 'other', 20 ),
+ array( 'other', 99 ),
+ array( 'other', 100 ),
+ array( 'few', 101 ),
+ array( 'few', 119 ),
+ array( 'other', 120 ),
+ array( 'other', 200 ),
+ array( 'few', 201 ),
+ array( 'few', 219 ),
+ array( 'other', 220 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * based on LanguageBe_tarask.php
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageRu.php */
+class LanguageRuTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'many', 'other' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ /**
+ * Test explicit plural forms - n=FormN forms
+ * @covers Language::convertPlural
+ */
+ public function testExplicitPlural() {
+ $forms = array( 'one', 'few', 'many', 'other', '12=dozen' );
+ $this->assertEquals( 'dozen', $this->getLang()->convertPlural( 12, $forms ) );
+ $forms = array( 'one', 'few', 'many', '100=hundred', 'other', '12=dozen' );
+ $this->assertEquals( 'hundred', $this->getLang()->convertPlural( 100, $forms ) );
+ }
+
+ /**
+ * @dataProvider providePlural
+ * @covers Language::getPluralRuleType
+ */
+ public 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
+ * @covers Language::convertPlural
+ */
+ public function testPluralTwoForms( $result, $value ) {
+ $forms = array( '1=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 ),
+ );
+ }
+
+ /**
+ * @dataProvider providerGrammar
+ * @covers Language::convertGrammar
+ */
+ public function testGrammar( $result, $word, $case ) {
+ $this->assertEquals( $result, $this->getLang()->convertGrammar( $word, $case ) );
+ }
+
+ public static function providerGrammar() {
+ return array(
+ array(
+ 'Википедии',
+ 'Википедия',
+ 'genitive',
+ ),
+ array(
+ 'Викитеки',
+ 'Викитека',
+ 'genitive',
+ ),
+ array(
+ 'Викитеке',
+ 'Викитека',
+ 'prepositional',
+ ),
+ array(
+ 'Викисклада',
+ 'Викисклад',
+ 'genitive',
+ ),
+ array(
+ 'Викискладе',
+ 'Викисклад',
+ 'prepositional',
+ ),
+ array(
+ 'Викиданных',
+ 'Викиданные',
+ 'prepositional',
+ ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageSe.php */
+class LanguageSeTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'two', 'other' );
+ $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 array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'two', 2 ),
+ array( 'other', 3 ),
+ );
+ }
+
+ /**
+ * @dataProvider providePluralTwoForms
+ * @covers Language::convertPlural
+ */
+ public function testPluralTwoForms( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ public static function providePluralTwoForms() {
+ return array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 3 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for Samogitian */
+class LanguageSgsTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePluralAllForms
+ * @covers Language::convertPlural
+ */
+ public function testPluralAllForms( $result, $value ) {
+ $forms = array( 'one', 'two', 'few', 'other' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ /**
+ * @dataProvider providePluralAllForms
+ * @covers Language::getPluralRuleType
+ */
+ public function testGetPluralRuleType( $result, $value ) {
+ $this->assertEquals( $result, $this->getLang()->getPluralRuleType( $value ) );
+ }
+
+ public static function providePluralAllForms() {
+ return array(
+ array( 'few', 0 ),
+ array( 'one', 1 ),
+ array( 'two', 2 ),
+ array( 'other', 3 ),
+ array( 'few', 10 ),
+ array( 'few', 11 ),
+ array( 'few', 12 ),
+ array( 'few', 19 ),
+ array( 'other', 20 ),
+ array( 'few', 100 ),
+ array( 'one', 101 ),
+ array( 'few', 111 ),
+ array( 'few', 112 ),
+ );
+ }
+
+ /**
+ * @dataProvider providePluralTwoForms
+ * @covers Language::convertPlural
+ */
+ public function testPluralTwoForms( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ public static function providePluralTwoForms() {
+ return array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 3 ),
+ array( 'other', 10 ),
+ array( 'other', 11 ),
+ array( 'other', 12 ),
+ array( 'other', 19 ),
+ array( 'other', 20 ),
+ array( 'other', 100 ),
+ array( 'one', 101 ),
+ array( 'other', 111 ),
+ array( 'other', 112 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for srpskohrvatski / српскохрватски / Serbocroatian */
+class LanguageShTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'other' );
+ $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 array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'few', 2 ),
+ array( 'few', 4 ),
+ array( 'other', 5 ),
+ array( 'other', 10 ),
+ array( 'other', 11 ),
+ array( 'other', 12 ),
+ array( 'one', 101 ),
+ array( 'few', 102 ),
+ array( 'other', 111 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * based on LanguageSkTest.php
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageSk.php */
+class LanguageSkTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'other' );
+ $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 array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'few', 2 ),
+ array( 'few', 3 ),
+ array( 'few', 4 ),
+ array( 'other', 5 ),
+ array( 'other', 11 ),
+ array( 'other', 20 ),
+ array( 'other', 25 ),
+ array( 'other', 200 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * based on LanguageSkTest.php
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageSl.php */
+class LanguageSlTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providerPlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'two', 'few', 'other' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ /**
+ * @dataProvider providerPlural
+ * @covers Language::getPluralRuleType
+ */
+ public function testGetPluralRuleType( $result, $value ) {
+ $this->assertEquals( $result, $this->getLang()->getPluralRuleType( $value ) );
+ }
+
+ public static function providerPlural() {
+ return array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'two', 2 ),
+ array( 'few', 3 ),
+ array( 'few', 4 ),
+ array( 'other', 5 ),
+ array( 'other', 99 ),
+ array( 'other', 100 ),
+ array( 'one', 101 ),
+ array( 'two', 102 ),
+ array( 'few', 103 ),
+ array( 'one', 201 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageSma.php */
+class LanguageSmaTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'two', 'other' );
+ $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 array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'two', 2 ),
+ array( 'other', 3 ),
+ );
+ }
+
+ /**
+ * @dataProvider providePluralTwoForms
+ * @covers Language::convertPlural
+ */
+ public function testPluralTwoForms( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ public static function providePluralTwoForms() {
+ return array(
+ array( 'other', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ array( 'other', 3 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * PHPUnit tests for the Serbian language.
+ * The language can be represented using two scripts:
+ * - Latin (SR_el)
+ * - Cyrillic (SR_ec)
+ * Both representations seems to be bijective, hence MediaWiki can convert
+ * from one script to the other.
+ *
+ * @author Antoine Musso <hashar at free dot fr>
+ * @copyright Copyright © 2011, Antoine Musso <hashar at free dot fr>
+ * @file
+ *
+ * @todo methods in test class should be tidied:
+ * - Should be split into separate test methods and data providers
+ * - Tests for LanguageConverter and Language should probably be separate..
+ */
+
+/** Tests for MediaWiki languages/LanguageSr.php */
+class LanguageSrTest extends LanguageClassesTestCase {
+ /**
+ * @covers LanguageConverter::convertTo
+ */
+ public function testEasyConversions() {
+ $this->assertCyrillic(
+ 'шђчћжШЂЧЋЖ',
+ 'Cyrillic guessing characters'
+ );
+ $this->assertLatin(
+ 'šđč枊ĐČĆŽ',
+ 'Latin guessing characters'
+ );
+ }
+
+ /**
+ * @covers LanguageConverter::convertTo
+ */
+ public function testMixedConversions() {
+ $this->assertCyrillic(
+ 'шђчћжШЂЧЋЖ - šđčćž',
+ 'Mostly cyrillic characters'
+ );
+ $this->assertLatin(
+ 'šđč枊ĐČĆŽ - шђчћж',
+ 'Mostly latin characters'
+ );
+ }
+
+ /**
+ * @covers LanguageConverter::convertTo
+ */
+ public function testSameAmountOfLatinAndCyrillicGetConverted() {
+ $this->assertConverted(
+ '4 latin: šđčć | 4 cyrillic: шђчћ',
+ 'sr-ec'
+ );
+ $this->assertConverted(
+ '4 latin: šđčć | 4 cyrillic: шђчћ',
+ 'sr-el'
+ );
+ }
+
+ /**
+ * @author Nikola Smolenski
+ * @covers LanguageConverter::convertTo
+ */
+ public function testConversionToCyrillic() {
+ //A simple convertion of Latin to Cyrillic
+ $this->assertEquals( 'абвг',
+ $this->convertToCyrillic( 'abvg' )
+ );
+ //Same as above, but assert that -{}-s must be removed and not converted
+ $this->assertEquals( 'ljабnjвгdž',
+ $this->convertToCyrillic( '-{lj}-ab-{nj}-vg-{dž}-' )
+ );
+ //A simple convertion of Cyrillic to Cyrillic
+ $this->assertEquals( 'абвг',
+ $this->convertToCyrillic( 'абвг' )
+ );
+ //Same as above, but assert that -{}-s must be removed and not converted
+ $this->assertEquals( 'ljабnjвгdž',
+ $this->convertToCyrillic( '-{lj}-аб-{nj}-вг-{dž}-' )
+ );
+ //This text has some Latin, but is recognized as Cyrillic, so it should not be converted
+ $this->assertEquals( 'abvgшђжчћ',
+ $this->convertToCyrillic( 'abvgшђжчћ' )
+ );
+ //Same as above, but assert that -{}-s must be removed
+ $this->assertEquals( 'љabvgњшђжчћџ',
+ $this->convertToCyrillic( '-{љ}-abvg-{њ}-шђжчћ-{џ}-' )
+ );
+ //This text has some Cyrillic, but is recognized as Latin, so it should be converted
+ $this->assertEquals( 'абвгшђжчћ',
+ $this->convertToCyrillic( 'абвгšđžčć' )
+ );
+ //Same as above, but assert that -{}-s must be removed and not converted
+ $this->assertEquals( 'ljабвгnjшђжчћdž',
+ $this->convertToCyrillic( '-{lj}-абвг-{nj}-šđžčć-{dž}-' )
+ );
+ // Roman numerals are not converted
+ $this->assertEquals( 'а I б II в III г IV шђжчћ',
+ $this->convertToCyrillic( 'a I b II v III g IV šđžčć' )
+ );
+ }
+
+ /**
+ * @covers LanguageConverter::convertTo
+ */
+ public function testConversionToLatin() {
+ //A simple convertion of Latin to Latin
+ $this->assertEquals( 'abcd',
+ $this->convertToLatin( 'abcd' )
+ );
+ //A simple convertion of Cyrillic to Latin
+ $this->assertEquals( 'abcd',
+ $this->convertToLatin( 'абцд' )
+ );
+ //This text has some Latin, but is recognized as Cyrillic, so it should be converted
+ $this->assertEquals( 'abcdšđžčć',
+ $this->convertToLatin( 'abcdшђжчћ' )
+ );
+ //This text has some Cyrillic, but is recognized as Latin, so it should not be converted
+ $this->assertEquals( 'абцдšđžčć',
+ $this->convertToLatin( 'абцдšđžčć' )
+ );
+ }
+
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'other' );
+ $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 array(
+ array( 'one', 1 ),
+ array( 'other', 11 ),
+ array( 'one', 91 ),
+ array( 'one', 121 ),
+ array( 'few', 2 ),
+ array( 'few', 3 ),
+ array( 'few', 4 ),
+ array( 'few', 334 ),
+ array( 'other', 5 ),
+ array( 'other', 15 ),
+ array( 'other', 120 ),
+ );
+ }
+
+ /**
+ * @dataProvider providePluralTwoForms
+ * @covers Language::convertPlural
+ */
+ public 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', 4 ),
+ array( 'one', 91 ),
+ array( 'one', 121 ),
+ );
+ }
+
+ ##### HELPERS #####################################################
+ /**
+ *Wrapper to verify text stay the same after applying conversion
+ * @param string $text Text to convert
+ * @param string $variant Language variant 'sr-ec' or 'sr-el'
+ * @param string $msg Optional message
+ */
+ protected function assertUnConverted( $text, $variant, $msg = '' ) {
+ $this->assertEquals(
+ $text,
+ $this->convertTo( $text, $variant ),
+ $msg
+ );
+ }
+
+ /**
+ * Wrapper to verify a text is different once converted to a variant.
+ * @param string $text Text to convert
+ * @param string $variant Language variant 'sr-ec' or 'sr-el'
+ * @param string $msg Optional message
+ */
+ protected function assertConverted( $text, $variant, $msg = '' ) {
+ $this->assertNotEquals(
+ $text,
+ $this->convertTo( $text, $variant ),
+ $msg
+ );
+ }
+
+ /**
+ * Verifiy the given Cyrillic text is not converted when using
+ * using the cyrillic variant and converted to Latin when using
+ * the Latin variant.
+ * @param string $text Text to convert
+ * @param string $msg Optional message
+ */
+ protected function assertCyrillic( $text, $msg = '' ) {
+ $this->assertUnConverted( $text, 'sr-ec', $msg );
+ $this->assertConverted( $text, 'sr-el', $msg );
+ }
+
+ /**
+ * Verifiy the given Latin text is not converted when using
+ * using the Latin variant and converted to Cyrillic when using
+ * the Cyrillic variant.
+ * @param string $text Text to convert
+ * @param string $msg Optional message
+ */
+ protected function assertLatin( $text, $msg = '' ) {
+ $this->assertUnConverted( $text, 'sr-el', $msg );
+ $this->assertConverted( $text, 'sr-ec', $msg );
+ }
+
+ /** Wrapper for converter::convertTo() method*/
+ protected function convertTo( $text, $variant ) {
+ return $this->getLang()
+ ->mConverter
+ ->convertTo(
+ $text, $variant
+ );
+ }
+
+ protected function convertToCyrillic( $text ) {
+ return $this->convertTo( $text, 'sr-ec' );
+ }
+
+ protected function convertToLatin( $text ) {
+ return $this->convertTo( $text, 'sr-el' );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageTi.php */
+class LanguageTiTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $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 array(
+ array( 'one', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageTl.php */
+class LanguageTlTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $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 array(
+ array( 'one', 0 ),
+ array( 'one', 1 ),
+ array( 'one', 2 ),
+ array( 'other', 4 ),
+ array( 'other', 6 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Antoine Musso
+ * @copyright Copyright © 2011, Antoine Musso
+ * @file
+ */
+
+/** Tests for MediaWiki languages/LanguageTr.php */
+class LanguageTrTest extends LanguageClassesTestCase {
+
+ /**
+ * See @bug 28040
+ * Credits to irc://irc.freenode.net/wikipedia-tr users:
+ * - berm
+ * - []LuCkY[]
+ * - Emperyan
+ * @see http://en.wikipedia.org/wiki/Dotted_and_dotless_I
+ * @dataProvider provideDottedAndDotlessI
+ * @covers Language::ucfirst
+ * @covers Language::lcfirst
+ */
+ public function testDottedAndDotlessI( $func, $input, $inputCase, $expected ) {
+ if ( $func == 'ucfirst' ) {
+ $res = $this->getLang()->ucfirst( $input );
+ } elseif ( $func == 'lcfirst' ) {
+ $res = $this->getLang()->lcfirst( $input );
+ } else {
+ throw new MWException( __METHOD__ . " given an invalid function name '$func'" );
+ }
+
+ $msg = "Converting $inputCase case '$input' with $func should give '$expected'";
+
+ $this->assertEquals( $expected, $res, $msg );
+ }
+
+ public static function provideDottedAndDotlessI() {
+ return array(
+ # function, input, input case, expected
+ # Case changed:
+ array( 'ucfirst', 'ı', 'lower', 'I' ),
+ array( 'ucfirst', 'i', 'lower', 'İ' ),
+ array( 'lcfirst', 'I', 'upper', 'ı' ),
+ array( 'lcfirst', 'İ', 'upper', 'i' ),
+
+ # Already using the correct case
+ array( 'ucfirst', 'I', 'upper', 'I' ),
+ array( 'ucfirst', 'İ', 'upper', 'İ' ),
+ array( 'lcfirst', 'ı', 'lower', 'ı' ),
+ array( 'lcfirst', 'i', 'lower', 'i' ),
+
+ # A real example taken from bug 28040 using
+ # http://tr.wikipedia.org/wiki/%C4%B0Phone
+ array( 'lcfirst', 'iPhone', 'lower', 'iPhone' ),
+
+ # next case is valid in Turkish but are different words if we
+ # consider IPhone is English!
+ array( 'lcfirst', 'IPhone', 'upper', 'ıPhone' ),
+
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * based on LanguageBe_tarask.php
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for Ukrainian */
+class LanguageUkTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'many', 'other' );
+ $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+ }
+
+ /**
+ * Test explicit plural forms - n=FormN forms
+ * @covers Language::convertPlural
+ */
+ public function testExplicitPlural() {
+ $forms = array( 'one', 'few', 'many', 'other', '12=dozen' );
+ $this->assertEquals( 'dozen', $this->getLang()->convertPlural( 12, $forms ) );
+ $forms = array( 'one', 'few', 'many', '100=hundred', 'other', '12=dozen' );
+ $this->assertEquals( 'hundred', $this->getLang()->convertPlural( 100, $forms ) );
+ }
+
+ /**
+ * @dataProvider providePlural
+ * @covers Language::getPluralRuleType
+ */
+ public 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
+ * @covers Language::convertPlural
+ */
+ public function testPluralTwoForms( $result, $value ) {
+ $forms = array( '1=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 ),
+ );
+ }
+}
--- /dev/null
+<?php
+/**
+ * PHPUnit tests for the Uzbek language.
+ * The language can be represented using two scripts:
+ * - Latin (uz-latn)
+ * - Cyrillic (uz-cyrl)
+ *
+ * @author Robin Pepermans
+ * @author Antoine Musso <hashar at free dot fr>
+ * @copyright Copyright © 2012, Robin Pepermans
+ * @copyright Copyright © 2011, Antoine Musso <hashar at free dot fr>
+ * @file
+ *
+ * @todo methods in test class should be tidied:
+ * - Should be split into separate test methods and data providers
+ * - Tests for LanguageConverter and Language should probably be separate..
+ */
+
+/** Tests for MediaWiki languages/LanguageUz.php */
+class LanguageUzTest extends LanguageClassesTestCase {
+
+ /**
+ * @author Nikola Smolenski
+ * @covers LanguageConverter::convertTo
+ */
+ public function testConversionToCyrillic() {
+ // A convertion of Latin to Cyrillic
+ $this->assertEquals( 'абвгғ',
+ $this->convertToCyrillic( 'abvggʻ' )
+ );
+ // Same as above, but assert that -{}-s must be removed and not converted
+ $this->assertEquals( 'ljабnjвгўоdb',
+ $this->convertToCyrillic( '-{lj}-ab-{nj}-vgoʻo-{db}-' )
+ );
+ // A simple convertion of Cyrillic to Cyrillic
+ $this->assertEquals( 'абвг',
+ $this->convertToCyrillic( 'абвг' )
+ );
+ // Same as above, but assert that -{}-s must be removed and not converted
+ $this->assertEquals( 'ljабnjвгdaž',
+ $this->convertToCyrillic( '-{lj}-аб-{nj}-вг-{da}-ž' )
+ );
+ }
+
+ /**
+ * @covers LanguageConverter::convertTo
+ */
+ public function testConversionToLatin() {
+ // A simple convertion of Latin to Latin
+ $this->assertEquals( 'abdef',
+ $this->convertToLatin( 'abdef' )
+ );
+ // A convertion of Cyrillic to Latin
+ $this->assertEquals( 'gʻabtsdOʻQyo',
+ $this->convertToLatin( 'ғабцдЎҚё' )
+ );
+ }
+
+ ##### HELPERS #####################################################
+ /**
+ * Wrapper to verify text stay the same after applying conversion
+ * @param string $text Text to convert
+ * @param string $variant Language variant 'uz-cyrl' or 'uz-latn'
+ * @param string $msg Optional message
+ */
+ protected function assertUnConverted( $text, $variant, $msg = '' ) {
+ $this->assertEquals(
+ $text,
+ $this->convertTo( $text, $variant ),
+ $msg
+ );
+ }
+
+ /**
+ * Wrapper to verify a text is different once converted to a variant.
+ * @param string $text Text to convert
+ * @param string $variant Language variant 'uz-cyrl' or 'uz-latn'
+ * @param string $msg Optional message
+ */
+ protected function assertConverted( $text, $variant, $msg = '' ) {
+ $this->assertNotEquals(
+ $text,
+ $this->convertTo( $text, $variant ),
+ $msg
+ );
+ }
+
+ /**
+ * Verifiy the given Cyrillic text is not converted when using
+ * using the cyrillic variant and converted to Latin when using
+ * the Latin variant.
+ * @param string $text Text to convert
+ * @param string $msg Optional message
+ */
+ protected function assertCyrillic( $text, $msg = '' ) {
+ $this->assertUnConverted( $text, 'uz-cyrl', $msg );
+ $this->assertConverted( $text, 'uz-latn', $msg );
+ }
+
+ /**
+ * Verifiy the given Latin text is not converted when using
+ * using the Latin variant and converted to Cyrillic when using
+ * the Cyrillic variant.
+ * @param string $text Text to convert
+ * @param string $msg Optional message
+ */
+ protected function assertLatin( $text, $msg = '' ) {
+ $this->assertUnConverted( $text, 'uz-latn', $msg );
+ $this->assertConverted( $text, 'uz-cyrl', $msg );
+ }
+
+ /** Wrapper for converter::convertTo() method*/
+ protected function convertTo( $text, $variant ) {
+ return $this->getLang()->mConverter->convertTo( $text, $variant );
+ }
+
+ protected function convertToCyrillic( $text ) {
+ return $this->convertTo( $text, 'uz-cyrl' );
+ }
+
+ protected function convertToLatin( $text ) {
+ return $this->convertTo( $text, 'uz-latn' );
+ }
+}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageWa.php */
+class LanguageWaTest extends LanguageClassesTestCase {
+ /**
+ * @dataProvider providePlural
+ * @covers Language::convertPlural
+ */
+ public function testPlural( $result, $value ) {
+ $forms = array( 'one', 'other' );
+ $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 array(
+ array( 'one', 0 ),
+ array( 'one', 1 ),
+ array( 'other', 2 ),
+ );
+ }
+}