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
|
<?php
/**
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Util
* @subpackage UnitTests
*/
class Horde_Util_TransliterateTest extends PHPUnit_Framework_TestCase
{
/**
* @dataProvider fallbackDataProvider
*/
public function testTransliterateToAsciiFallback($str, $expected)
{
$this->assertEquals(
$expected,
Horde_Util_Mock_Transliterate::testFallback($str)
);
}
public function fallbackDataProvider()
{
return array(
// No normalization
array('ABC123abc', 'ABC123abc'),
// Non-ascii can all be transliterated
array('AÀBÞEÉSß', 'AABTHEESss'),
// Some non-ascii cannot be transliterated
array('AÀ黾BÞ', 'AA黾BTH')
);
}
/**
* @dataProvider intlDataProvider
*/
public function testTransliterateToAsciiIntl($str, $expected)
{
if (!class_exists('Transliterator')) {
$this->markTestSkipped('intl extension not installed or too old');
}
$this->assertEquals(
$expected,
Horde_Util_Mock_Transliterate::testIntl($str)
);
}
public function intlDataProvider()
{
return array(
// No normalization
array('ABC123abc', 'ABC123abc'),
// Non-ascii can all be transliterated
array('AÀBÞEÉSß', 'AABTHEESss'),
// Some non-ascii cannot be transliterated
array('AÀ黾BÞ', 'AA mianBTH')
);
}
/**
* @dataProvider iconvDataProvider
*/
public function testTransliterateToAsciiIconv($str, $expected)
{
if (!extension_loaded('iconv')) {
$this->markTestSkipped('iconv extension not installed');
}
$this->assertEquals(
$expected,
Horde_Util_Mock_Transliterate::testIconv($str)
);
}
public function iconvDataProvider()
{
return array(
// No normalization
array('ABC123abc', 'ABC123abc'),
// Non-ascii can all be transliterated
array('AÀBÞEÉSß', 'AAB?EESss'),
// Some non-ascii cannot be transliterated
array('AÀ黾BÞ', 'AA?B?')
);
}
}
|