1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
<?php
/**
* @group Language
* @covers \ShConverter
*/
class ShConverterTest extends MediaWikiIntegrationTestCase {
use LanguageConverterTestTrait;
/**
* @dataProvider provideAutoConvertToAllVariants
*/
public function testAutoConvertToAllVariants( $result, $value ) {
$this->assertEquals( $result, $this->getLanguageConverter()->autoConvertToAllVariants( $value ) );
}
public static function provideAutoConvertToAllVariants() {
return [
[
[
'sh-latn' => 'g',
'sh-cyrl' => 'г',
],
'g'
],
[
[
'sh-latn' => 'г',
'sh-cyrl' => 'г',
],
'г'
],
];
}
public function testConvertTo() {
$this->testConversionToLatin();
$this->testConversionToCyrillic();
}
/**
* Wrapper for testConvertTo() for Cyrillic
*/
public function testConversionToCyrillic() {
// A simple conversion 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 conversion 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ž}-' )
);
// Roman numerals are not converted
$this->assertEquals( 'а I б II в III г IV шђжчћ',
$this->convertToCyrillic( 'a I b II v III g IV šđžčć' )
);
// Manual conversion rules work
$this->assertEquals( 'Cyrillic',
$this->convertToCyrillic( '-{sh-latn:Latin; sh-cyrl:Cyrillic;}-' )
);
}
/**
* Wrapper for testConvertTo() for Latin
*/
public function testConversionToLatin() {
// A simple conversion of Latin to Latin
$this->assertEquals( 'abvg',
$this->convertToLatin( 'abvg' )
);
// Same as above, but assert that -{}-s must be removed and not converted
$this->assertEquals( 'ljabnjvgdž',
$this->convertToLatin( '-{lj}-ab-{nj}-vg-{dž}-' )
);
// Manual conversion rules work
$this->assertEquals( 'Latin',
$this->convertToLatin( '-{sh-latn:Latin; sh-cyrl:Cyrillic;}-' )
);
}
/**
* Wrapper for converter::convertTo() method
* @param string $text
* @param string $variant
* @return string
*/
protected function convertTo( $text, $variant ) {
return $this->getLanguageConverter()->convertTo( $text, $variant );
}
protected function convertToCyrillic( $text ) {
return $this->convertTo( $text, 'sh-cyrl' );
}
protected function convertToLatin( $text ) {
return $this->convertTo( $text, 'sh-latn' );
}
}
|