pico/lib/twig/test/Twig/Tests/FileCachingTest.php
Gilbert Pellegrom 92b792e8f2 Initial commit.
2012-04-04 14:45:09 +01:00

71 lines
2.0 KiB
PHP
Executable File

<?php
class Twig_Tests_FileCachingTest extends PHPUnit_Framework_TestCase
{
protected $fileName;
protected $env;
protected $tmpDir;
public function setUp()
{
$this->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);
}
}