<?php
namespace Drupal\system\Tests\Transliteration;
use Drupal\Core\Transliteration\PHPTransliteration;
use Drupal\simpletest\DrupalUnitTestBase;
class TransliterationTest extends DrupalUnitTestBase {
public static $modules = array(
'transliterate_test',
);
public static function getInfo() {
return array(
'name' => 'Transliteration functionality',
'description' => 'Tests Transliteration component functionality.',
'group' => 'Transliteration',
);
}
public function testPHPTransliteration() {
$random = $this
->randomName(10);
$two_byte = 'Ä Ö Ü Å Ø äöüåøhello';
$three_byte = html_entity_decode('ц', ENT_NOQUOTES, 'UTF-8');
$four_byte = html_entity_decode('ᐑ', ENT_NOQUOTES, 'UTF-8');
$cases = array(
array(
'en',
$random,
$random,
),
array(
'fr',
$random,
$random,
),
array(
'fr',
$three_byte,
'c',
),
array(
'fr',
$four_byte,
'wii',
),
array(
'en',
$two_byte,
'A O U A O aouaohello',
),
array(
'de',
$two_byte,
'Ae Oe Ue A O aeoeueaohello',
),
array(
'de',
$random,
$random,
),
array(
'dk',
$two_byte,
'A O U Aa Oe aouaaoehello',
),
array(
'dk',
$random,
$random,
),
array(
'kg',
$three_byte,
'ts',
),
array(
'zz',
$two_byte,
'Z O U A O aouaohello',
),
array(
'zz',
$random,
$random,
),
array(
'tr',
'Abayı serdiler bize. Söyleyeceğim yüzlerine. Sanırım hepimiz aynı şeyi düşünüyoruz.',
'Abayi serdiler bize. Soyleyecegim yuzlerine. Sanirim hepimiz ayni seyi dusunuyoruz.',
),
);
$transliterator_service = $this->container
->get('transliteration');
foreach ($cases as $case) {
list($langcode, $original, $expected) = $case;
$transliterator_class = new PHPTransliteration();
$actual = $transliterator_class
->transliterate($original, $langcode);
$this
->assertIdentical($actual, $expected, format_string('@original transliteration to @actual is identical to @expected for language @langcode in new class instance.', array(
'@original' => $original,
'@langcode' => $langcode,
'@expected' => $expected,
'@actual' => $actual,
)));
$actual = $transliterator_service
->transliterate($original, $langcode);
$this
->assertIdentical($actual, $expected, format_string('@original transliteration to @actual is identical to @expected for language @langcode in service instance.', array(
'@original' => $original,
'@langcode' => $langcode,
'@expected' => $expected,
'@actual' => $actual,
)));
}
}
}