Skip to content

Commit

Permalink
Use data provider for tests
Browse files Browse the repository at this point in the history
  • Loading branch information
slusarz committed Aug 5, 2014
1 parent b2eba33 commit a3b1088
Showing 1 changed file with 46 additions and 42 deletions.
88 changes: 46 additions & 42 deletions framework/Util/test/Horde/Util/TransliterateTest.php
Expand Up @@ -8,77 +8,81 @@
*/
class Horde_Util_TransliterateTest extends PHPUnit_Framework_TestCase
{
public function testTransliterateToAsciiFallback()
/**
* @dataProvider fallbackDataProvider
*/
public function testTransliterateToAsciiFallback($str, $expected)
{
// No normalization
$str = 'ABC123abc';
$this->assertEquals(
$str,
$expected,
Horde_Util_Mock_Transliterate::testFallback($str)
);
}

// Non-ascii can all be transliterated
$this->assertEquals(
'AABTHEESss',
Horde_Util_Mock_Transliterate::testFallback('AÀBÞEÉSß')
);

// Some non-ascii cannot be transliterated
$this->assertEquals(
'AA黾BTH',
Horde_Util_Mock_Transliterate::testFallback('AÀ黾BÞ')
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')
);
}

public function testTransliterateToAsciiIntl()
/**
* @dataProvider intlDataProvider
*/
public function testTransliterateToAsciiIntl($str, $expected)
{
if (!class_exists('Transliterator')) {
$this->markTestSkipped('intl extension not installed or too old');
}

// No normalization
$str = 'ABC123abc';
$this->assertEquals(
$str,
$expected,
Horde_Util_Mock_Transliterate::testIntl($str)
);
}

// Non-ascii can all be transliterated
$this->assertEquals(
'AABTHEESss',
Horde_Util_Mock_Transliterate::testIntl('AÀBÞEÉSß')
);

// Some non-ascii cannot be transliterated
$this->assertEquals(
'AA mianBTH',
Horde_Util_Mock_Transliterate::testIntl('AÀ黾BÞ')
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')
);
}

public function testTransliterateToAsciiIconv()
/**
* @dataProvider iconvDataProvider
*/
public function testTransliterateToAsciiIconv($str, $expected)
{
if (!extension_loaded('iconv')) {
$this->markTestSkipped('iconv extension not installed');
}

// No normalization
$str = 'ABC123abc';
$this->assertEquals(
$str,
$expected,
Horde_Util_Mock_Transliterate::testIconv($str)
);
}

// Non-ascii can all be transliterated
$this->assertEquals(
'AAB?EESss',
Horde_Util_Mock_Transliterate::testIconv('AÀBÞEÉSß')
);

// Some non-ascii cannot be transliterated
$this->assertEquals(
'AA?B?',
Horde_Util_Mock_Transliterate::testIconv('AÀ黾BÞ')
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?')
);
}

}

0 comments on commit a3b1088

Please sign in to comment.