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;
 | |
|     }
 | |
| }
 | 
