[Finder] Fixed leading/trailing / in filename
Without this patch, we go this: ``` --- Expected +++ Actual @@ @@ Array ( - 0 => '/tmp/symfony_finder/foo bar' - 1 => '/tmp/symfony_finder/foo/bar.tmp' - 2 => '/tmp/symfony_finder/test.php' - 3 => '/tmp/symfony_finder/test.py' + 0 => '///tmp/symfony_finder///foo bar' + 1 => '///tmp/symfony_finder///foo/bar.tmp' + 2 => '///tmp/symfony_finder///test.php' + 3 => '///tmp/symfony_finder///test.py' ) ```
This commit is contained in:
parent
887cba28f4
commit
e17a63457a
@ -28,7 +28,7 @@ class SplFileInfo extends \SplFileInfo
|
|||||||
*/
|
*/
|
||||||
public function __construct($file, $relativePath, $relativePathname)
|
public function __construct($file, $relativePath, $relativePathname)
|
||||||
{
|
{
|
||||||
parent::__construct($file);
|
parent::__construct(realpath($file) ?: $file);
|
||||||
$this->relativePath = $relativePath;
|
$this->relativePath = $relativePath;
|
||||||
$this->relativePathname = $relativePathname;
|
$this->relativePathname = $relativePathname;
|
||||||
}
|
}
|
||||||
|
@ -48,6 +48,20 @@ class FinderTest extends Iterator\RealIteratorTestCase
|
|||||||
$this->assertIterator($this->toAbsolute(array('foo/bar.tmp', 'test.php', 'test.py', 'foo bar')), $finder->in(self::$tmpDir)->getIterator());
|
$this->assertIterator($this->toAbsolute(array('foo/bar.tmp', 'test.php', 'test.py', 'foo bar')), $finder->in(self::$tmpDir)->getIterator());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testRemoveTrailingSlash()
|
||||||
|
{
|
||||||
|
if ('\\' === \DIRECTORY_SEPARATOR) {
|
||||||
|
$this->markTestSkipped('This test cannot be run on Windows.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$finder = $this->buildFinder();
|
||||||
|
|
||||||
|
$expected = $this->toAbsolute(array('foo/bar.tmp', 'test.php', 'test.py', 'foo bar'));
|
||||||
|
$in = '//'.realpath(self::$tmpDir).'//';
|
||||||
|
|
||||||
|
$this->assertIterator($expected, $finder->in($in)->files()->getIterator());
|
||||||
|
}
|
||||||
|
|
||||||
public function testDepth()
|
public function testDepth()
|
||||||
{
|
{
|
||||||
$finder = $this->buildFinder();
|
$finder = $this->buildFinder();
|
||||||
@ -504,8 +518,8 @@ class FinderTest extends Iterator\RealIteratorTestCase
|
|||||||
$finder->in($locations)->depth('< 10')->name('*.neon');
|
$finder->in($locations)->depth('< 10')->name('*.neon');
|
||||||
|
|
||||||
$expected = array(
|
$expected = array(
|
||||||
__DIR__.'/Fixtures/one'.DIRECTORY_SEPARATOR.'b'.DIRECTORY_SEPARATOR.'c.neon',
|
__DIR__.DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'one'.DIRECTORY_SEPARATOR.'b'.DIRECTORY_SEPARATOR.'c.neon',
|
||||||
__DIR__.'/Fixtures/one'.DIRECTORY_SEPARATOR.'b'.DIRECTORY_SEPARATOR.'d.neon',
|
__DIR__.DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'one'.DIRECTORY_SEPARATOR.'b'.DIRECTORY_SEPARATOR.'d.neon',
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->assertIterator($expected, $finder);
|
$this->assertIterator($expected, $finder);
|
||||||
|
@ -31,7 +31,7 @@ class FilePathsIteratorTest extends RealIteratorTestCase
|
|||||||
|
|
||||||
public function getSubPathData()
|
public function getSubPathData()
|
||||||
{
|
{
|
||||||
$tmpDir = sys_get_temp_dir().'/symfony_finder';
|
$tmpDir = sys_get_temp_dir().DIRECTORY_SEPARATOR.'symfony_finder';
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
array(
|
array(
|
||||||
|
Reference in New Issue
Block a user