diff --git a/src/Symfony/Component/Translation/Tests/TranslatorCacheTest.php b/src/Symfony/Component/Translation/Tests/TranslatorCacheTest.php index 8b913f3a49361..3c23a07f8e56e 100644 --- a/src/Symfony/Component/Translation/Tests/TranslatorCacheTest.php +++ b/src/Symfony/Component/Translation/Tests/TranslatorCacheTest.php @@ -14,6 +14,8 @@ use Symfony\Component\Translation\Translator; use Symfony\Component\Translation\MessageCatalogue; use Symfony\Component\Translation\MessageSelector; +use Symfony\Component\Translation\Loader\PhpFileLoader; +use Symfony\Component\Translation\Dumper\PhpFileDumper; class TranslatorCacheTest extends \PHPUnit_Framework_TestCase { @@ -129,6 +131,29 @@ public function testLoadCatalogueWithCachingWithInvalidLocale() } } + public function testRefreshCacheWhenResourcesFileChange() + { + $resourceFile = $this->tmpDir.'/messages.fr.php'; + $loader = new PhpFileLoader(); + $dumper = new PhpFileDumper(); + + $translator = new Translator('fr', null, $this->tmpDir, true); + $dumper->dump($this->getCatalogue('fr', array('foo' => 'foo A')), array('path' => $this->tmpDir)); + $translator->addLoader('loader', $loader); + $translator->addResource('loader', $resourceFile, 'fr'); + $this->assertEquals('foo A', $translator->trans('foo')); + + $dumper->dump($this->getCatalogue('fr', array('foo' => 'foo B')), array('path' => $this->tmpDir)); + $translator = new Translator('fr', null, $this->tmpDir, true); + $translator->addLoader('loader', $loader); + $translator->addResource('loader', $resourceFile, 'fr'); + + // Touch the resourceFile, we'll set it to one +1 hour. + touch($resourceFile, time() + 3600); + + $this->assertEquals('foo B', $translator->trans('foo')); + } + protected function getCatalogue($locale, $messages) { $catalogue = new MessageCatalogue($locale);