From 22f5a735fd534d6815d31390231ad34df03e8172 Mon Sep 17 00:00:00 2001 From: Abdellatif Ait boudad Date: Tue, 17 Mar 2015 15:29:52 +0000 Subject: [PATCH] [Translation][MoFileLoader] fixed load empty translation. --- .../Component/Translation/Loader/MoFileLoader.php | 4 ++++ .../Translation/Tests/Loader/MoFileLoaderTest.php | 11 +++++++++++ .../Tests/fixtures/empty-translation.mo | Bin 0 -> 49 bytes 3 files changed, 15 insertions(+) create mode 100644 src/Symfony/Component/Translation/Tests/fixtures/empty-translation.mo diff --git a/src/Symfony/Component/Translation/Loader/MoFileLoader.php b/src/Symfony/Component/Translation/Loader/MoFileLoader.php index 95a1363fa4..3f0dd921ee 100644 --- a/src/Symfony/Component/Translation/Loader/MoFileLoader.php +++ b/src/Symfony/Component/Translation/Loader/MoFileLoader.php @@ -137,6 +137,10 @@ class MoFileLoader extends ArrayLoader implements LoaderInterface $length = $this->readLong($stream, $isBigEndian); $offset = $this->readLong($stream, $isBigEndian); + if ($length < 1) { + continue; + } + fseek($stream, $offset); $translated = fread($stream, $length); diff --git a/src/Symfony/Component/Translation/Tests/Loader/MoFileLoaderTest.php b/src/Symfony/Component/Translation/Tests/Loader/MoFileLoaderTest.php index d568e4530b..34078d0a9e 100644 --- a/src/Symfony/Component/Translation/Tests/Loader/MoFileLoaderTest.php +++ b/src/Symfony/Component/Translation/Tests/Loader/MoFileLoaderTest.php @@ -57,4 +57,15 @@ class MoFileLoaderTest extends \PHPUnit_Framework_TestCase $resource = __DIR__.'/../fixtures/empty.mo'; $loader->load($resource, 'en', 'domain1'); } + + public function testLoadEmptyTranslation() + { + $loader = new MoFileLoader(); + $resource = __DIR__.'/../fixtures/empty-translation.mo'; + $catalogue = $loader->load($resource, 'en', 'message'); + + $this->assertEquals(array(), $catalogue->all('message')); + $this->assertEquals('en', $catalogue->getLocale()); + $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources()); + } } diff --git a/src/Symfony/Component/Translation/Tests/fixtures/empty-translation.mo b/src/Symfony/Component/Translation/Tests/fixtures/empty-translation.mo new file mode 100644 index 0000000000000000000000000000000000000000..ed01000c9b1b3fdf40fc2369a7799e72e41a1edf GIT binary patch literal 49 ncmca7#4?ou2pEA_28dNa93apEVrC%L1#y7D5JaTq=Q98RUv2}O literal 0 HcmV?d00001