/var/www/hkosl.com/b2b2c/webadmin/libraies/symfony/finder/Tests/Iterator/RealIteratorTestCase.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?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;
    }
}