tmpDir = sys_get_temp_dir().'/TwigTests'; if (!file_exists($this->tmpDir)) { @mkdir($this->tmpDir, 0777, true); } if (!is_writable($this->tmpDir)) { $this->markTestSkipped(sprintf('Unable to run the tests as "%s" is not writable.', $this->tmpDir)); } $this->env = new Twig_Environment(new Twig_Loader_String(), array('cache' => $this->tmpDir)); } public function tearDown() { if ($this->fileName) { unlink($this->fileName); } $this->removeDir($this->tmpDir); } public function testWritingCacheFiles() { $name = 'This is just text.'; $template = $this->env->loadTemplate($name); $cacheFileName = $this->env->getCacheFilename($name); $this->assertTrue(file_exists($cacheFileName), 'Cache file does not exist.'); $this->fileName = $cacheFileName; } public function testClearingCacheFiles() { $name = 'I will be deleted.'; $template = $this->env->loadTemplate($name); $cacheFileName = $this->env->getCacheFilename($name); $this->assertTrue(file_exists($cacheFileName), 'Cache file does not exist.'); $this->env->clearCacheFiles(); $this->assertFalse(file_exists($cacheFileName), 'Cache file was not cleared.'); } private function removeDir($target) { $fp = opendir($target); while (false !== $file = readdir($fp)) { if (in_array($file, array('.', '..'))) { continue; } if (is_dir($target.'/'.$file)) { self::removeDir($target.'/'.$file); } else { unlink($target.'/'.$file); } } closedir($fp); rmdir($target); } }