diff --git a/lib/Twig/Environment.php b/lib/Twig/Environment.php index 55aef05b8..1596d0add 100644 --- a/lib/Twig/Environment.php +++ b/lib/Twig/Environment.php @@ -462,7 +462,7 @@ class Twig_Environment if (0 === $this->lastModifiedExtension) { foreach ($this->extensions as $extension) { $r = new ReflectionObject($extension); - if (($extensionTime = filemtime($r->getFileName())) > $this->lastModifiedExtension) { + if (file_exists($r->getFileName()) && ($extensionTime = filemtime($r->getFileName())) > $this->lastModifiedExtension) { $this->lastModifiedExtension = $extensionTime; } } diff --git a/test/Twig/Tests/EnvironmentTest.php b/test/Twig/Tests/EnvironmentTest.php index 57b91ae50..a43e16e2b 100644 --- a/test/Twig/Tests/EnvironmentTest.php +++ b/test/Twig/Tests/EnvironmentTest.php @@ -292,6 +292,22 @@ class Twig_Tests_EnvironmentTest extends PHPUnit_Framework_TestCase $this->assertCount(2, $twig->getNodeVisitors()); } + public function testAddMockExtension() + { + $extension = $this->getMock('Twig_ExtensionInterface'); + $extension->expects($this->once()) + ->method('getName') + ->will($this->returnValue('mock')); + + $loader = new Twig_Loader_Array(array('page' => 'hey')); + + $twig = new Twig_Environment($loader); + $twig->addExtension($extension); + + $this->assertInstanceOf('Twig_ExtensionInterface', $twig->getExtension('mock')); + $this->assertTrue($twig->isTemplateFresh('page', time())); + } + protected function getMockLoader($templateName, $templateContent) { $loader = $this->getMock('Twig_LoaderInterface');