diff --git a/src/Node/Directory.php b/src/Node/Directory.php index d4a3805..c7aa747 100644 --- a/src/Node/Directory.php +++ b/src/Node/Directory.php @@ -30,7 +30,7 @@ class Directory implements NodeContainerInterface */ public function __construct(array $nodes = []) { - $this->mode = self::TYPE_DIR; + $this->mode = self::TYPE_DIR | self::OTHER_FULL; $this->dateAccessed = new DateTime(); $this->dateCreated = $this->dateAccessed; diff --git a/src/Node/DirectoryLink.php b/src/Node/DirectoryLink.php index 78296ae..43ad115 100644 --- a/src/Node/DirectoryLink.php +++ b/src/Node/DirectoryLink.php @@ -25,7 +25,7 @@ class DirectoryLink implements NodeContainerInterface, LinkInterface public function __construct(NodeContainerInterface $directory) { $this->directory = $directory; - $this->mode = self::TYPE_LINK; + $this->mode = self::TYPE_LINK | self::OTHER_FULL; $this->dateAccessed = new DateTime(); $this->dateCreated = clone $this->dateAccessed; diff --git a/src/Node/File.php b/src/Node/File.php index e17aad9..bc35c10 100644 --- a/src/Node/File.php +++ b/src/Node/File.php @@ -25,7 +25,7 @@ class File implements FileInterface public function __construct($content = '') { $this->content = (string) $content; - $this->mode = self::TYPE_FILE; + $this->mode = self::TYPE_FILE | self::OTHER_FULL; $this->dateAccessed = new DateTime(); $this->dateCreated = clone $this->dateAccessed; diff --git a/src/Node/FileLink.php b/src/Node/FileLink.php index 58bff67..7be6a79 100644 --- a/src/Node/FileLink.php +++ b/src/Node/FileLink.php @@ -25,7 +25,7 @@ class FileLink implements FileInterface, LinkInterface public function __construct(FileInterface $file) { $this->file = $file; - $this->mode = self::TYPE_LINK; + $this->mode = self::TYPE_LINK | self::OTHER_FULL; $this->dateAccessed = new DateTime(); $this->dateCreated = clone $this->dateAccessed; diff --git a/test/acceptance/Stream/StreamWrapper/PermissionAcceptanceTest.php b/test/acceptance/Stream/StreamWrapper/PermissionAcceptanceTest.php new file mode 100644 index 0000000..e0af2d4 --- /dev/null +++ b/test/acceptance/Stream/StreamWrapper/PermissionAcceptanceTest.php @@ -0,0 +1,44 @@ + [ + 'bar' => 'baz' + ] + ]; + + public function testDirIsReadable() + { + $this->assertTrue(is_readable("$this->scheme:///foo")); + } + + public function testDirIsWritable() + { + $this->assertTrue(is_writable("$this->scheme:///foo")); + } + + public function testDirIsExecutable() + { + // Directory can't be executable + $this->assertFalse(is_executable("$this->scheme:///foo")); + } + + public function testFileIsReadable() + { + $this->assertTrue(is_readable("$this->scheme:///foo/bar")); + } + + public function testFileIsWritable() + { + $this->assertTrue(is_writable("$this->scheme:///foo/bar")); + } + + public function testFileIsExecutable() + { + $this->assertTrue(is_executable("$this->scheme:///foo/bar")); + } +}