Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / vendor / symfony / finder / Tests / GlobTest.php
index b81151e1e478a5b4f335f8e47daac0acea8f32ea..d48ac1fc5452be9532e15a984fe0746626638b0a 100644 (file)
@@ -12,6 +12,7 @@
 namespace Symfony\Component\Finder\Tests;
 
 use PHPUnit\Framework\TestCase;
+use Symfony\Component\Finder\Finder;
 use Symfony\Component\Finder\Glob;
 
 class GlobTest extends TestCase
@@ -23,4 +24,72 @@ class GlobTest extends TestCase
         $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);
+    }
 }