From 03f27b4c2c2c3a6d3187a877cf5feb93830b7a9f Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 13 Jul 2017 14:17:52 +0200 Subject: Fix scan permissions with nested permissions masks Signed-off-by: Robin Appelman --- tests/lib/Files/Storage/Wrapper/PermissionsMaskTest.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'tests/lib/Files') diff --git a/tests/lib/Files/Storage/Wrapper/PermissionsMaskTest.php b/tests/lib/Files/Storage/Wrapper/PermissionsMaskTest.php index 354db9d069d..388272b4107 100644 --- a/tests/lib/Files/Storage/Wrapper/PermissionsMaskTest.php +++ b/tests/lib/Files/Storage/Wrapper/PermissionsMaskTest.php @@ -127,6 +127,21 @@ class PermissionsMaskTest extends \Test\Files\Storage\Storage { $this->assertEquals(Constants::PERMISSION_READ, $storage->getCache()->get('foo')->getPermissions()); } + public function testScanNewFilesNested() { + $storage = $this->getMaskedStorage(Constants::PERMISSION_READ + Constants::PERMISSION_CREATE + Constants::PERMISSION_UPDATE); + $nestedStorage = new \OC\Files\Storage\Wrapper\PermissionsMask(array( + 'storage' => $storage, + 'mask' => Constants::PERMISSION_READ + Constants::PERMISSION_CREATE + )); + $wrappedStorage = new Wrapper(['storage' => $nestedStorage]); + $wrappedStorage->file_put_contents('foo', 'bar'); + $wrappedStorage->getScanner()->scan(''); + + $this->assertEquals(Constants::PERMISSION_ALL - Constants::PERMISSION_CREATE, $this->sourceStorage->getCache()->get('foo')->getPermissions()); + $this->assertEquals(Constants::PERMISSION_READ + Constants::PERMISSION_UPDATE, $storage->getCache()->get('foo')->getPermissions()); + $this->assertEquals(Constants::PERMISSION_READ, $wrappedStorage->getCache()->get('foo')->getPermissions()); + } + public function testScanUnchanged() { $this->sourceStorage->mkdir('foo'); $this->sourceStorage->file_put_contents('foo/bar.txt', 'bar'); -- cgit v1.2.3