|
16 | 16 | use Symfony\Component\Translation\MessageCatalogue;
|
17 | 17 | use Symfony\Component\Filesystem\Filesystem;
|
18 | 18 | use Symfony\Component\Translation\MessageSelector;
|
| 19 | +use Symfony\Component\Translation\Loader\PhpFileLoader; |
| 20 | +use Symfony\Component\Translation\Dumper\PhpFileDumper; |
19 | 21 |
|
20 | 22 | class TranslatorTest extends \PHPUnit_Framework_TestCase
|
21 | 23 | {
|
@@ -212,6 +214,33 @@ public function testDifferentCacheFilesAreUsedForDifferentSetsOfFallbackLocales(
|
212 | 214 | $this->assertEquals('bar', $translator->trans('bar'));
|
213 | 215 | }
|
214 | 216 |
|
| 217 | + public function testRefreshCacheWhenResourcesFileChange() |
| 218 | + { |
| 219 | + $resourceFile = $this->tmpDir.'/messages.fr.php'; |
| 220 | + $loader = new PhpFileLoader(); |
| 221 | + $dumper = new PhpFileDumper(); |
| 222 | + |
| 223 | + $translator = $this->createTranslator($loader, array('cache_dir' => $this->tmpDir, 'debug' => true)); |
| 224 | + $translator->trans('foo'); |
| 225 | + |
| 226 | + $translator->setLocale('fr'); |
| 227 | + $dumper->dump($this->getCatalogue('fr', array('foo' => 'foo A')), array('path' => $this->tmpDir)); |
| 228 | + $translator->addLoader('loader', $loader); |
| 229 | + $translator->addResource('loader', $resourceFile, 'fr'); |
| 230 | + $this->assertEquals('foo A', $translator->trans('foo')); |
| 231 | + |
| 232 | + $dumper->dump($this->getCatalogue('fr', array('foo' => 'foo B')), array('path' => $this->tmpDir)); |
| 233 | + $translator = $this->createTranslator($loader, array('cache_dir' => $this->tmpDir, 'debug' => true)); |
| 234 | + $translator->setLocale('fr'); |
| 235 | + $translator->addLoader('loader', $loader); |
| 236 | + $translator->addResource('loader', $resourceFile, 'fr'); |
| 237 | + |
| 238 | + // Touch the resourceFile, we'll set it to one +1 hour. |
| 239 | + touch($resourceFile, time() + 3600); |
| 240 | + |
| 241 | + $this->assertEquals('foo B', $translator->trans('foo')); |
| 242 | + } |
| 243 | + |
215 | 244 | protected function getCatalogue($locale, $messages)
|
216 | 245 | {
|
217 | 246 | $catalogue = new MessageCatalogue($locale);
|
|
0 commit comments