[Translation] Add failing tests to verify that UTF-8 lang files can't be used with another charset

This commit is contained in:
Jordi Boggiano 2011-10-03 12:12:49 +02:00
parent 0e852fe232
commit deb6dea76d

View File

@ -132,6 +132,27 @@ class TranslatorTest extends \PHPUnit_Framework_TestCase
$this->assertEquals($expected, $translator->trans($id, array(), '', 'fr'));
}
/**
* @dataProvider getLoadCatalogueTests
*/
public function testLoadCatalogueConvertsEncoding($translation, $charset)
{
if (!extension_loaded('mbstring')) {
$this->markTestSkipped('This test relies on the mbstring extension');
}
$translator = new Translator('en', new MessageSelector(), $charset);
$translator->addLoader('array', new ArrayLoader());
$translator->addResource('array', array('id' => $translation), 'en', 'messages');
if (null !== $charset && mb_detect_encoding($translation) !== $charset) {
$expected = mb_convert_encoding($translation, $charset, mb_detect_encoding($translation));
} else {
$expected = $translation;
}
$this->assertEquals($expected, $translator->trans('id', array(), 'messages', 'en'));
}
/**
* @dataProvider getTransChoiceTests
*/
@ -199,6 +220,21 @@ class TranslatorTest extends \PHPUnit_Framework_TestCase
);
}
public function getLoadCatalogueTests()
{
return array(
array('oia', null),
array('oia', 'UTF-8'),
array('öïä', 'UTF-8'),
array('oia', 'ISO-8859-1'),
array('öïä', 'ISO-8859-1'),
array('цфЭ', 'UTF-8'),
array('цфЭ', 'KOI8-R'),
array('ヨラリ', 'UTF-8'),
array('ヨラリ', 'SJIS'),
);
}
public function testTransChoiceFallback()
{
$translator = new Translator('ru', new MessageSelector());