diff --git a/src/Symfony/Bridge/Twig/Tests/Translation/TwigExtractorTest.php b/src/Symfony/Bridge/Twig/Tests/Translation/TwigExtractorTest.php index a2c5cd3d03..d5614e7ec7 100644 --- a/src/Symfony/Bridge/Twig/Tests/Translation/TwigExtractorTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Translation/TwigExtractorTest.php @@ -78,4 +78,17 @@ class TwigExtractorTest extends TestCase array('{{ "new key" | transchoice(domain="domain", count=1) }}', array('new key' => 'domain')), ); } + + /** + * @expectedException \Twig_Error + * @expectedExceptionMessage Unclosed "block" in "extractor/syntax_error.twig" at line 1 + */ + public function testExtractSyntaxError() + { + $twig = new \Twig_Environment(new \Twig_Loader_Array(array())); + $twig->addExtension(new TranslationExtension($this->getMock('Symfony\Component\Translation\TranslatorInterface'))); + + $extractor = new TwigExtractor($twig); + $extractor->extract(__DIR__.'/../Fixtures', new MessageCatalogue('en')); + } } diff --git a/src/Symfony/Bridge/Twig/Translation/TwigExtractor.php b/src/Symfony/Bridge/Twig/Translation/TwigExtractor.php index a7fc89954e..fe36436c71 100644 --- a/src/Symfony/Bridge/Twig/Translation/TwigExtractor.php +++ b/src/Symfony/Bridge/Twig/Translation/TwigExtractor.php @@ -58,7 +58,13 @@ class TwigExtractor implements ExtractorInterface $finder = new Finder(); $files = $finder->files()->name('*.twig')->in($directory); foreach ($files as $file) { - $this->extractTemplate(file_get_contents($file->getPathname()), $catalogue); + try { + $this->extractTemplate(file_get_contents($file->getPathname()), $catalogue); + } catch (\Twig_Error $e) { + $e->setTemplateFile($file->getRelativePathname()); + + throw $e; + } } }