Yaffs site version 1.1
[yaffs-website] / vendor / symfony / finder / Tests / Iterator / RealIteratorTestCase.php
diff --git a/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php b/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php
new file mode 100644 (file)
index 0000000..94253c7
--- /dev/null
@@ -0,0 +1,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;
+    }
+}