FileCachingTest.php

File

drupal/core/vendor/twig/twig/test/Twig/Tests/FileCachingTest.php
View source
<?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);
  }

}

Classes