[Translation] Add failing tests to verify that UTF-8 lang files can't be used with another charset
This commit is contained in:
parent
0e852fe232
commit
deb6dea76d
@ -132,6 +132,27 @@ class TranslatorTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertEquals($expected, $translator->trans($id, array(), '', 'fr'));
|
$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
|
* @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()
|
public function testTransChoiceFallback()
|
||||||
{
|
{
|
||||||
$translator = new Translator('ru', new MessageSelector());
|
$translator = new Translator('ru', new MessageSelector());
|
||||||
|
Reference in New Issue
Block a user