You are here

RealIteratorTestCase.php in Database Sanitize 7

File

vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php
View source
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace Symfony\Component\Finder\Tests\Iterator;

abstract class RealIteratorTestCase extends IteratorTestCase {
  protected static $tmpDir;
  protected static $files;
  public static function setUpBeforeClass() {
    self::$tmpDir = realpath(sys_get_temp_dir()) . \DIRECTORY_SEPARATOR . 'symfony_finder';
    self::$files = array(
      '.git/',
      '.foo/',
      '.foo/.bar',
      '.foo/bar',
      '.bar',
      'test.py',
      'foo/',
      'foo/bar.tmp',
      'test.php',
      'toto/',
      'toto/.git/',
      'foo bar',
    );
    self::$files = self::toAbsolute(self::$files);
    if (is_dir(self::$tmpDir)) {
      self::tearDownAfterClass();
    }
    else {
      mkdir(self::$tmpDir);
    }
    foreach (self::$files as $file) {
      if (\DIRECTORY_SEPARATOR === $file[\strlen($file) - 1]) {
        mkdir($file);
      }
      else {
        touch($file);
      }
    }
    file_put_contents(self::toAbsolute('test.php'), str_repeat(' ', 800));
    file_put_contents(self::toAbsolute('test.py'), str_repeat(' ', 2000));
    touch(self::toAbsolute('foo/bar.tmp'), strtotime('2005-10-15'));
    touch(self::toAbsolute('test.php'), strtotime('2005-10-15'));
  }
  public static function tearDownAfterClass() {
    $paths = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator(self::$tmpDir, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::CHILD_FIRST);
    foreach ($paths as $path) {
      if ($path
        ->isDir()) {
        if ($path
          ->isLink()) {
          @unlink($path);
        }
        else {
          @rmdir($path);
        }
      }
      else {
        @unlink($path);
      }
    }
  }
  protected static function toAbsolute($files = null) {

    /*
     * Without the call to setUpBeforeClass() property can be null.
     */
    if (!self::$tmpDir) {
      self::$tmpDir = realpath(sys_get_temp_dir()) . \DIRECTORY_SEPARATOR . 'symfony_finder';
    }
    if (\is_array($files)) {
      $f = array();
      foreach ($files as $file) {
        if (\is_array($file)) {
          $f[] = self::toAbsolute($file);
        }
        else {
          $f[] = self::$tmpDir . \DIRECTORY_SEPARATOR . str_replace('/', \DIRECTORY_SEPARATOR, $file);
        }
      }
      return $f;
    }
    if (\is_string($files)) {
      return self::$tmpDir . \DIRECTORY_SEPARATOR . str_replace('/', \DIRECTORY_SEPARATOR, $files);
    }
    return self::$tmpDir;
  }
  protected static function toAbsoluteFixtures($files) {
    $f = array();
    foreach ($files as $file) {
      $f[] = realpath(__DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'Fixtures' . \DIRECTORY_SEPARATOR . $file);
    }
    return $f;
  }

}

Classes