Skip to content

Commit

Permalink
[Translation] Add failing tests to verify that UTF-8 lang files can't…
Browse files Browse the repository at this point in the history
… be used with another charset
  • Loading branch information
Seldaek committed Oct 7, 2011
1 parent 0e852fe commit deb6dea
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions tests/Symfony/Tests/Component/Translation/TranslatorTest.php
Expand Up @@ -132,6 +132,27 @@ public function testFlattenedTrans($expected, $messages, $id)
$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
*/
Expand Down Expand Up @@ -199,6 +220,21 @@ public function getTransChoiceTests()
);
}

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());
Expand Down

0 comments on commit deb6dea

Please sign in to comment.