<?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; use Symfony\Component\Finder\Iterator\PathFilterIterator; class PathFilterIteratorTest extends IteratorTestCase { /** * @dataProvider getTestFilterData */ public function testFilter(\Iterator $inner, array $matchPatterns, array $noMatchPatterns, array $resultArray) { $iterator = new PathFilterIterator($inner, $matchPatterns, $noMatchPatterns); $this->assertIterator($resultArray, $iterator); } public static function getTestFilterData() { $inner = new MockFileListIterator(); // PATH: A/B/C/abc.dat $inner[] = new MockSplFileInfo([ 'name' => 'abc.dat', 'relativePathname' => 'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C'.\DIRECTORY_SEPARATOR.'abc.dat', ]); // PATH: A/B/ab.dat $inner[] = new MockSplFileInfo([ 'name' => 'ab.dat', 'relativePathname' => 'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'ab.dat', ]); // PATH: A/a.dat $inner[] = new MockSplFileInfo([ 'name' => 'a.dat', 'relativePathname' => 'A'.\DIRECTORY_SEPARATOR.'a.dat', ]); // PATH: copy/A/B/C/abc.dat.copy $inner[] = new MockSplFileInfo([ 'name' => 'abc.dat.copy', 'relativePathname' => 'copy'.\DIRECTORY_SEPARATOR.'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'C'.\DIRECTORY_SEPARATOR.'abc.dat', ]); // PATH: copy/A/B/ab.dat.copy $inner[] = new MockSplFileInfo([ 'name' => 'ab.dat.copy', 'relativePathname' => 'copy'.\DIRECTORY_SEPARATOR.'A'.\DIRECTORY_SEPARATOR.'B'.\DIRECTORY_SEPARATOR.'ab.dat', ]); // PATH: copy/A/a.dat.copy $inner[] = new MockSplFileInfo([ 'name' => 'a.dat.copy', 'relativePathname' => 'copy'.\DIRECTORY_SEPARATOR.'A'.\DIRECTORY_SEPARATOR.'a.dat', ]); return [ [$inner, ['/^A/'], [], ['abc.dat', 'ab.dat', 'a.dat']], [$inner, ['/^A\/B/'], [], ['abc.dat', 'ab.dat']], [$inner, ['/^A\/B\/C/'], [], ['abc.dat']], [$inner, ['/A\/B\/C/'], [], ['abc.dat', 'abc.dat.copy']], [$inner, ['A'], [], ['abc.dat', 'ab.dat', 'a.dat', 'abc.dat.copy', 'ab.dat.copy', 'a.dat.copy']], [$inner, ['A/B'], [], ['abc.dat', 'ab.dat', 'abc.dat.copy', 'ab.dat.copy']], [$inner, ['A/B/C'], [], ['abc.dat', 'abc.dat.copy']], [$inner, ['copy/A'], [], ['abc.dat.copy', 'ab.dat.copy', 'a.dat.copy']], [$inner, ['copy/A/B'], [], ['abc.dat.copy', 'ab.dat.copy']], [$inner, ['copy/A/B/C'], [], ['abc.dat.copy']], ]; } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
CustomFilterIteratorTest.php | File | 1.22 KB | 0644 |
|
DateRangeFilterIteratorTest.php | File | 2.51 KB | 0644 |
|
DepthRangeFilterIteratorTest.php | File | 2.8 KB | 0644 |
|
ExcludeDirectoryFilterIteratorTest.php | File | 2.92 KB | 0644 |
|
FileTypeFilterIteratorTest.php | File | 1.99 KB | 0644 |
|
FilecontentFilterIteratorTest.php | File | 2.56 KB | 0644 |
|
FilenameFilterIteratorTest.php | File | 1.19 KB | 0644 |
|
InnerNameIterator.php | File | 555 B | 0644 |
|
Iterator.php | File | 1.1 KB | 0644 |
|
IteratorTestCase.php | File | 3.43 KB | 0644 |
|
LazyIteratorTest.php | File | 1.26 KB | 0644 |
|
MockFileListIterator.php | File | 568 B | 0644 |
|
MockSplFileInfo.php | File | 3.18 KB | 0644 |
|
MultiplePcreFilterIteratorTest.php | File | 2.42 KB | 0644 |
|
PathFilterIteratorTest.php | File | 3.03 KB | 0644 |
|
RealIteratorTestCase.php | File | 4.84 KB | 0644 |
|
RecursiveDirectoryIteratorTest.php | File | 1.63 KB | 0644 |
|
SizeRangeFilterIteratorTest.php | File | 1.63 KB | 0644 |
|
SortableIteratorTest.php | File | 8.23 KB | 0644 |
|
VcsIgnoredFilterIteratorTest.php | File | 8.79 KB | 0644 |
|