diff vendor/symfony/finder/Tests/GlobTest.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 129ea1e6d783
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/symfony/finder/Tests/GlobTest.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,95 @@
+<?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;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\Finder\Finder;
+use Symfony\Component\Finder\Glob;
+
+class GlobTest extends TestCase
+{
+    public function testGlobToRegexDelimiters()
+    {
+        $this->assertEquals('#^(?=[^\.])\#$#', Glob::toRegex('#'));
+        $this->assertEquals('#^\.[^/]*$#', Glob::toRegex('.*'));
+        $this->assertEquals('^\.[^/]*$', Glob::toRegex('.*', true, true, ''));
+        $this->assertEquals('/^\.[^/]*$/', Glob::toRegex('.*', true, true, '/'));
+    }
+
+    public function testGlobToRegexDoubleStarStrictDots()
+    {
+        $finder = new Finder();
+        $finder->ignoreDotFiles(false);
+        $regex = Glob::toRegex('/**/*.neon');
+
+        foreach ($finder->in(__DIR__) as $k => $v) {
+            $k = str_replace(DIRECTORY_SEPARATOR, '/', $k);
+            if (preg_match($regex, substr($k, strlen(__DIR__)))) {
+                $match[] = substr($k, 10 + strlen(__DIR__));
+            }
+        }
+        sort($match);
+
+        $this->assertSame(array('one/b/c.neon', 'one/b/d.neon'), $match);
+    }
+
+    public function testGlobToRegexDoubleStarNonStrictDots()
+    {
+        $finder = new Finder();
+        $finder->ignoreDotFiles(false);
+        $regex = Glob::toRegex('/**/*.neon', false);
+
+        foreach ($finder->in(__DIR__) as $k => $v) {
+            $k = str_replace(DIRECTORY_SEPARATOR, '/', $k);
+            if (preg_match($regex, substr($k, strlen(__DIR__)))) {
+                $match[] = substr($k, 10 + strlen(__DIR__));
+            }
+        }
+        sort($match);
+
+        $this->assertSame(array('.dot/b/c.neon', '.dot/b/d.neon', 'one/b/c.neon', 'one/b/d.neon'), $match);
+    }
+
+    public function testGlobToRegexDoubleStarWithoutLeadingSlash()
+    {
+        $finder = new Finder();
+        $finder->ignoreDotFiles(false);
+        $regex = Glob::toRegex('/Fixtures/one/**');
+
+        foreach ($finder->in(__DIR__) as $k => $v) {
+            $k = str_replace(DIRECTORY_SEPARATOR, '/', $k);
+            if (preg_match($regex, substr($k, strlen(__DIR__)))) {
+                $match[] = substr($k, 10 + strlen(__DIR__));
+            }
+        }
+        sort($match);
+
+        $this->assertSame(array('one/a', 'one/b', 'one/b/c.neon', 'one/b/d.neon'), $match);
+    }
+
+    public function testGlobToRegexDoubleStarWithoutLeadingSlashNotStrictLeadingDot()
+    {
+        $finder = new Finder();
+        $finder->ignoreDotFiles(false);
+        $regex = Glob::toRegex('/Fixtures/one/**', false);
+
+        foreach ($finder->in(__DIR__) as $k => $v) {
+            $k = str_replace(DIRECTORY_SEPARATOR, '/', $k);
+            if (preg_match($regex, substr($k, strlen(__DIR__)))) {
+                $match[] = substr($k, 10 + strlen(__DIR__));
+            }
+        }
+        sort($match);
+
+        $this->assertSame(array('one/.dot', 'one/a', 'one/b', 'one/b/c.neon', 'one/b/d.neon'), $match);
+    }
+}