From 5321741ab5b045ee4789a7157f0d7f159feae041 Mon Sep 17 00:00:00 2001 From: Yosmany Garcia Date: Sat, 8 Nov 2014 14:35:51 -0500 Subject: [PATCH] Fixed case for empty folder --- src/Symfony/Component/Filesystem/Filesystem.php | 4 ++++ .../Component/Filesystem/Tests/FilesystemTest.php | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/Symfony/Component/Filesystem/Filesystem.php b/src/Symfony/Component/Filesystem/Filesystem.php index 7de9507e26..34b82cfd97 100644 --- a/src/Symfony/Component/Filesystem/Filesystem.php +++ b/src/Symfony/Component/Filesystem/Filesystem.php @@ -388,6 +388,10 @@ class Filesystem $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($originDir, $flags), \RecursiveIteratorIterator::SELF_FIRST); } + if ($this->exists($originDir)) { + $this->mkdir($targetDir); + } + foreach ($iterator as $file) { $target = str_replace($originDir, $targetDir, $file->getPathname()); diff --git a/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php b/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php index 76988d0e68..e957edfbb1 100644 --- a/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php +++ b/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php @@ -845,6 +845,21 @@ class FilesystemTest extends \PHPUnit_Framework_TestCase $this->assertFalse($this->filesystem->exists($targetPath.'directory'.DIRECTORY_SEPARATOR.'file1')); } + public function testMirrorCreatesEmptyDirectory() + { + $sourcePath = $this->workspace.DIRECTORY_SEPARATOR.'source'.DIRECTORY_SEPARATOR; + + mkdir($sourcePath); + + $targetPath = $this->workspace.DIRECTORY_SEPARATOR.'target'.DIRECTORY_SEPARATOR; + + $this->filesystem->mirror($sourcePath, $targetPath); + + $this->assertTrue(is_dir($targetPath)); + + $this->filesystem->remove($sourcePath); + } + public function testMirrorCopiesLinks() { $this->markAsSkippedIfSymlinkIsMissing();