Yaffs site version 1.1
[yaffs-website] / vendor / symfony / finder / Tests / Iterator / RealIteratorTestCase.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\Finder\Tests\Iterator;
13
14 abstract class RealIteratorTestCase extends IteratorTestCase
15 {
16     protected static $tmpDir;
17     protected static $files;
18
19     public static function setUpBeforeClass()
20     {
21         self::$tmpDir = realpath(sys_get_temp_dir()).DIRECTORY_SEPARATOR.'symfony_finder';
22
23         self::$files = array(
24             '.git/',
25             '.foo/',
26             '.foo/.bar',
27             '.foo/bar',
28             '.bar',
29             'test.py',
30             'foo/',
31             'foo/bar.tmp',
32             'test.php',
33             'toto/',
34             'toto/.git/',
35             'foo bar',
36         );
37
38         self::$files = self::toAbsolute(self::$files);
39
40         if (is_dir(self::$tmpDir)) {
41             self::tearDownAfterClass();
42         } else {
43             mkdir(self::$tmpDir);
44         }
45
46         foreach (self::$files as $file) {
47             if (DIRECTORY_SEPARATOR === $file[strlen($file) - 1]) {
48                 mkdir($file);
49             } else {
50                 touch($file);
51             }
52         }
53
54         file_put_contents(self::toAbsolute('test.php'), str_repeat(' ', 800));
55         file_put_contents(self::toAbsolute('test.py'), str_repeat(' ', 2000));
56
57         touch(self::toAbsolute('foo/bar.tmp'), strtotime('2005-10-15'));
58         touch(self::toAbsolute('test.php'), strtotime('2005-10-15'));
59     }
60
61     public static function tearDownAfterClass()
62     {
63         foreach (array_reverse(self::$files) as $file) {
64             if (DIRECTORY_SEPARATOR === $file[strlen($file) - 1]) {
65                 @rmdir($file);
66             } else {
67                 @unlink($file);
68             }
69         }
70     }
71
72     protected static function toAbsolute($files = null)
73     {
74         /*
75          * Without the call to setUpBeforeClass() property can be null.
76          */
77         if (!self::$tmpDir) {
78             self::$tmpDir = realpath(sys_get_temp_dir()).DIRECTORY_SEPARATOR.'symfony_finder';
79         }
80
81         if (is_array($files)) {
82             $f = array();
83             foreach ($files as $file) {
84                 if (is_array($file)) {
85                     $f[] = self::toAbsolute($file);
86                 } else {
87                     $f[] = self::$tmpDir.DIRECTORY_SEPARATOR.str_replace('/', DIRECTORY_SEPARATOR, $file);
88                 }
89             }
90
91             return $f;
92         }
93
94         if (is_string($files)) {
95             return self::$tmpDir.DIRECTORY_SEPARATOR.str_replace('/', DIRECTORY_SEPARATOR, $files);
96         }
97
98         return self::$tmpDir;
99     }
100
101     protected static function toAbsoluteFixtures($files)
102     {
103         $f = array();
104         foreach ($files as $file) {
105             $f[] = realpath(__DIR__.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.$file);
106         }
107
108         return $f;
109     }
110 }