Version 1
[yaffs-website] / vendor / mikey179 / vfsStream / src / test / php / org / bovigo / vfs / UnlinkTestCase.php
diff --git a/vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/UnlinkTestCase.php b/vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/UnlinkTestCase.php
new file mode 100644 (file)
index 0000000..4f9fb17
--- /dev/null
@@ -0,0 +1,58 @@
+<?php
+/**
+ * This file is part of vfsStream.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ *
+ * @package  org\bovigo\vfs
+ */
+namespace org\bovigo\vfs;
+/**
+ * Test for unlink() functionality.
+ *
+ * @group  unlink
+ */
+class UnlinkTestCase extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @test
+     * @group  issue_51
+     */
+    public function canRemoveNonWritableFileFromWritableDirectory()
+    {
+        $structure = array('test_directory' => array('test.file' => ''));
+        $root = vfsStream::setup('root', null, $structure);
+        $root->getChild('test_directory')->chmod(0777);
+        $root->getChild('test_directory')->getChild('test.file')->chmod(0444);
+        $this->assertTrue(@unlink(vfsStream::url('root/test_directory/test.file')));
+    }
+
+    /**
+     * @test
+     * @group  issue_51
+     */
+    public function canNotRemoveWritableFileFromNonWritableDirectory()
+    {
+        $structure = array('test_directory' => array('test.file' => ''));
+        $root = vfsStream::setup('root', null, $structure);
+        $root->getChild('test_directory')->chmod(0444);
+        $root->getChild('test_directory')->getChild('test.file')->chmod(0777);
+        $this->assertFalse(@unlink(vfsStream::url('root/test_directory/test.file')));
+    }
+
+    /**
+     * @test
+     * @since  1.4.0
+     * @group  issue_68
+     */
+    public function unlinkNonExistingFileTriggersError()
+    {
+        vfsStream::setup();
+        try {
+            $this->assertFalse(unlink('vfs://root/foo.txt'));
+        } catch (\PHPUnit_Framework_Error $fe) {
+            $this->assertEquals('unlink(vfs://root/foo.txt): No such file or directory', $fe->getMessage());
+        }
+    }
+}