Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: namespace Symfony\Component\Finder\Tests\Iterator; Chris@0: Chris@0: abstract class RealIteratorTestCase extends IteratorTestCase Chris@0: { Chris@0: protected static $tmpDir; Chris@0: protected static $files; Chris@0: Chris@0: public static function setUpBeforeClass() Chris@0: { Chris@0: self::$tmpDir = realpath(sys_get_temp_dir()).DIRECTORY_SEPARATOR.'symfony_finder'; Chris@0: Chris@0: self::$files = array( Chris@0: '.git/', Chris@0: '.foo/', Chris@0: '.foo/.bar', Chris@0: '.foo/bar', Chris@0: '.bar', Chris@0: 'test.py', Chris@0: 'foo/', Chris@0: 'foo/bar.tmp', Chris@0: 'test.php', Chris@0: 'toto/', Chris@0: 'toto/.git/', Chris@0: 'foo bar', Chris@0: ); Chris@0: Chris@0: self::$files = self::toAbsolute(self::$files); Chris@0: Chris@0: if (is_dir(self::$tmpDir)) { Chris@0: self::tearDownAfterClass(); Chris@0: } else { Chris@0: mkdir(self::$tmpDir); Chris@0: } Chris@0: Chris@0: foreach (self::$files as $file) { Chris@0: if (DIRECTORY_SEPARATOR === $file[strlen($file) - 1]) { Chris@0: mkdir($file); Chris@0: } else { Chris@0: touch($file); Chris@0: } Chris@0: } Chris@0: Chris@0: file_put_contents(self::toAbsolute('test.php'), str_repeat(' ', 800)); Chris@0: file_put_contents(self::toAbsolute('test.py'), str_repeat(' ', 2000)); Chris@0: Chris@0: touch(self::toAbsolute('foo/bar.tmp'), strtotime('2005-10-15')); Chris@0: touch(self::toAbsolute('test.php'), strtotime('2005-10-15')); Chris@0: } Chris@0: Chris@0: public static function tearDownAfterClass() Chris@0: { Chris@0: foreach (array_reverse(self::$files) as $file) { Chris@0: if (DIRECTORY_SEPARATOR === $file[strlen($file) - 1]) { Chris@0: @rmdir($file); Chris@0: } else { Chris@0: @unlink($file); Chris@0: } Chris@0: } Chris@0: } Chris@0: Chris@0: protected static function toAbsolute($files = null) Chris@0: { Chris@0: /* Chris@0: * Without the call to setUpBeforeClass() property can be null. Chris@0: */ Chris@0: if (!self::$tmpDir) { Chris@0: self::$tmpDir = realpath(sys_get_temp_dir()).DIRECTORY_SEPARATOR.'symfony_finder'; Chris@0: } Chris@0: Chris@0: if (is_array($files)) { Chris@0: $f = array(); Chris@0: foreach ($files as $file) { Chris@0: if (is_array($file)) { Chris@0: $f[] = self::toAbsolute($file); Chris@0: } else { Chris@0: $f[] = self::$tmpDir.DIRECTORY_SEPARATOR.str_replace('/', DIRECTORY_SEPARATOR, $file); Chris@0: } Chris@0: } Chris@0: Chris@0: return $f; Chris@0: } Chris@0: Chris@0: if (is_string($files)) { Chris@0: return self::$tmpDir.DIRECTORY_SEPARATOR.str_replace('/', DIRECTORY_SEPARATOR, $files); Chris@0: } Chris@0: Chris@0: return self::$tmpDir; Chris@0: } Chris@0: Chris@0: protected static function toAbsoluteFixtures($files) Chris@0: { Chris@0: $f = array(); Chris@0: foreach ($files as $file) { Chris@0: $f[] = realpath(__DIR__.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.$file); Chris@0: } Chris@0: Chris@0: return $f; Chris@0: } Chris@0: }