You are here

FileCachingTest.php in Zircon Profile 8.0

Same filename and directory in other branches
  1. 8 vendor/twig/twig/test/Twig/Tests/FileCachingTest.php

File

vendor/twig/twig/test/Twig/Tests/FileCachingTest.php
View source
<?php

/*
 * This file is part of Twig.
 *
 * (c) Fabien Potencier
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
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_Array(array(
      'index' => 'index',
      'index2' => 'index2',
    )), array(
      'cache' => $this->tmpDir,
    ));
  }
  public function tearDown() {
    if ($this->fileName) {
      unlink($this->fileName);
    }
    $this
      ->removeDir($this->tmpDir);
  }

  /**
   * @group legacy
   */
  public function testWritingCacheFiles() {
    $name = 'index';
    $this->env
      ->loadTemplate($name);
    $cacheFileName = $this->env
      ->getCacheFilename($name);
    $this
      ->assertTrue(file_exists($cacheFileName), 'Cache file does not exist.');
    $this->fileName = $cacheFileName;
  }

  /**
   * @group legacy
   */
  public function testClearingCacheFiles() {
    $name = 'index2';
    $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