111 lines
3.0 KiB
PHP
111 lines
3.0 KiB
PHP
|
<?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()
|
||
|
{
|
||
|
foreach (array_reverse(self::$files) as $file) {
|
||
|
if (DIRECTORY_SEPARATOR === $file[strlen($file) - 1]) {
|
||
|
@rmdir($file);
|
||
|
} else {
|
||
|
@unlink($file);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
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;
|
||
|
}
|
||
|
}
|