From ed507dec9fa898cef3dfa80b779acc03eedfdecd Mon Sep 17 00:00:00 2001 From: hakre Date: Thu, 24 Jul 2014 14:17:42 +0200 Subject: [PATCH] added test unlinking directory #3157 --- tests/Composer/Test/Util/FilesystemTest.php | 27 +++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/Composer/Test/Util/FilesystemTest.php b/tests/Composer/Test/Util/FilesystemTest.php index c74e84a5f..bffea7434 100644 --- a/tests/Composer/Test/Util/FilesystemTest.php +++ b/tests/Composer/Test/Util/FilesystemTest.php @@ -176,4 +176,31 @@ class FilesystemTest extends TestCase array('phar://c:../Foo', 'phar://c:../Foo'), ); } + + /** + * @link https://github.com/composer/composer/issues/3157 + */ + public function testUnlinkSymlinkedDirectory() + { + $tmp = sys_get_temp_dir(); + $basepath = $tmp . "/composer_testdir"; + $symlinked = $basepath . "/linked"; + @mkdir($basepath . "/real", 0777, true); + touch($basepath . "/real/FILE"); + + $result = @symlink($basepath . "/real", $symlinked); + + if (!$result) { + $this->markTestSkipped('Symbolic links for directories not supported on this platform'); + } + + if (!is_dir($symlinked)) { + $this->fail('Precondition assertion failed (is_dir is false on symbolic link to directory).'); + } + + $fs = new Filesystem(); + $result = $fs->unlink($symlinked); + $this->assertTrue($result); + $this->assertFalse(file_exists($symlinked)); + } }