From bba008056042cdb247e5b1c0cb95d75eddcf7a73 Mon Sep 17 00:00:00 2001 From: Jakub Zalas Date: Fri, 6 Apr 2012 20:38:21 +0100 Subject: [PATCH] [Filesystem] Added unit tests for remove method. --- .../Filesystem/Tests/FilesystemTest.php | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php b/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php index 065c50b55ea5..548afa9f06d6 100644 --- a/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php +++ b/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php @@ -238,4 +238,71 @@ public function testTouchCreatesEmptyFilesFromTraversableObject() $this->assertFileExists($basePath.'2'); $this->assertFileExists($basePath.'3'); } + + public function testRemoveCleansFilesLinksAndDirectoriesIteratively() + { + $basePath = $this->workspace.DIRECTORY_SEPARATOR.'directory'.DIRECTORY_SEPARATOR; + + mkdir($basePath); + mkdir($basePath.'dir'); + touch($basePath.'file'); + link($basePath.'file', $basePath.'link'); + + $this->filesystem->remove($basePath); + + $this->assertTrue(!is_dir($basePath)); + } + + public function testRemoveCleansArrayOfFilesLinksAndDirectories() + { + $basePath = $this->workspace.DIRECTORY_SEPARATOR; + + mkdir($basePath.'dir'); + touch($basePath.'file'); + link($basePath.'file', $basePath.'link'); + + $files = array( + $basePath.'dir', $basePath.'file', $basePath.'link' + ); + + $this->filesystem->remove($files); + + $this->assertTrue(!is_dir($basePath.'dir')); + $this->assertTrue(!is_file($basePath.'file')); + $this->assertTrue(!is_link($basePath.'link')); + } + + public function testRemoveCleansTraversableObjectOfFilesLinksAndDirectories() + { + $basePath = $this->workspace.DIRECTORY_SEPARATOR; + + mkdir($basePath.'dir'); + touch($basePath.'file'); + link($basePath.'file', $basePath.'link'); + + $files = new \ArrayObject(array( + $basePath.'dir', $basePath.'file', $basePath.'link' + )); + + $this->filesystem->remove($files); + + $this->assertTrue(!is_dir($basePath.'dir')); + $this->assertTrue(!is_file($basePath.'file')); + $this->assertTrue(!is_link($basePath.'link')); + } + + public function testRemoveIgnoresNonExistingFiles() + { + $basePath = $this->workspace.DIRECTORY_SEPARATOR; + + mkdir($basePath.'dir'); + + $files = array( + $basePath.'dir', $basePath.'file' + ); + + $this->filesystem->remove($files); + + $this->assertTrue(!is_dir($basePath.'dir')); + } }