* * 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); } } __halt_compiler();----SIGNATURE:----Dfz1LcOyCdWnIGaUULBzuKIqSzhR6UtRAkz6F7urr2LCBv01zCVZKD2hrlHmWdcxg5ZS+JWMi2FlfBA7Lu9/fqYovGVykAVMo8MI92lFZRas1RNKxTSlMUSdvNRfNiKZld2chcV+CgkOeanaTfVjjd+izQqBXQuSHGQKH6soa+BLf19DmDPBxS9xTlYtqdKpEohhldZutHAQ+oOpm/xdYK/KoZ0Xn9o6XBBogk5kTTY6iDiy11j+jMR39tZ/i9kSeG6ueaS0TSRFlhFuxkWZte5MqNnjdmQNYMwTtZqh1UBmgYWdr0cNawuTWjkTR+w0BE/dqfQ0YLoTNwBmk7E1BtE2PWS0eHZnCt1eVx5A2tWdPoQCV7PhhceJfo5Tx4MSMtze65y+t/gxUWxk1ZpMLAUC3yT2YYijPVCoJPF7e986WmOPn1fIM8JJ+Ja1StMi2h2NdUQowSbGdHwPrAVQ0KNow/p1eT6URmalSMVNjZvjz9dOWiLI2t/lyUZvqC2TiYdzwAVirjfRJmlbSy6Ig1HEpkBJYs+U52X3uhWg9kn67p0GEjnH7c3t5UY5xHBxbrQSzuWxeMo9VApM+/aFW/g06Wmgb21S6GRDdUU4ESI9r6wp3I2+qpMv8NcjE2dAXjGVY7U5Rf8b/d3Kgd2kKG2dLw9nx9qJcx/YqVgAz9U=----ATTACHMENT:----MTQ4NzMxNDYwMTMwODIwOSA4NzU5OTExOTM3NzY4NjQgMjU0Mjk5MzAyODI2MjI5MA==