You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.0 KiB
70 lines
2.0 KiB
<?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);
|
|
}
|
|
}
|
|
|