scratch

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 119  →  ?path2? @ 120
/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php
@@ -0,0 +1,82 @@
<?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 function getTestFilterData()
{
$inner = new MockFileListIterator();
 
//PATH: A/B/C/abc.dat
$inner[] = new MockSplFileInfo(array(
'name' => 'abc.dat',
'relativePathname' => 'A'.DIRECTORY_SEPARATOR.'B'.DIRECTORY_SEPARATOR.'C'.DIRECTORY_SEPARATOR.'abc.dat',
));
 
//PATH: A/B/ab.dat
$inner[] = new MockSplFileInfo(array(
'name' => 'ab.dat',
'relativePathname' => 'A'.DIRECTORY_SEPARATOR.'B'.DIRECTORY_SEPARATOR.'ab.dat',
));
 
//PATH: A/a.dat
$inner[] = new MockSplFileInfo(array(
'name' => 'a.dat',
'relativePathname' => 'A'.DIRECTORY_SEPARATOR.'a.dat',
));
 
//PATH: copy/A/B/C/abc.dat.copy
$inner[] = new MockSplFileInfo(array(
'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(array(
'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(array(
'name' => 'a.dat.copy',
'relativePathname' => 'copy'.DIRECTORY_SEPARATOR.'A'.DIRECTORY_SEPARATOR.'a.dat',
));
 
return array(
array($inner, array('/^A/'), array(), array('abc.dat', 'ab.dat', 'a.dat')),
array($inner, array('/^A\/B/'), array(), array('abc.dat', 'ab.dat')),
array($inner, array('/^A\/B\/C/'), array(), array('abc.dat')),
array($inner, array('/A\/B\/C/'), array(), array('abc.dat', 'abc.dat.copy')),
 
array($inner, array('A'), array(), array('abc.dat', 'ab.dat', 'a.dat', 'abc.dat.copy', 'ab.dat.copy', 'a.dat.copy')),
array($inner, array('A/B'), array(), array('abc.dat', 'ab.dat', 'abc.dat.copy', 'ab.dat.copy')),
array($inner, array('A/B/C'), array(), array('abc.dat', 'abc.dat.copy')),
 
array($inner, array('copy/A'), array(), array('abc.dat.copy', 'ab.dat.copy', 'a.dat.copy')),
array($inner, array('copy/A/B'), array(), array('abc.dat.copy', 'ab.dat.copy')),
array($inner, array('copy/A/B/C'), array(), array('abc.dat.copy')),
);
}
}