Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLukas Reschke <lukas@statuscode.ch>2017-05-19 01:49:58 +0300
committerGitHub <noreply@github.com>2017-05-19 01:49:58 +0300
commit8c624bdef9f3d7c2304ba4a3fba9dbbb23c65f3e (patch)
treed674313e168717c412d576e059ed16609271c96c /tests
parent0eb4970ec8981d112a412a4858833459533b158a (diff)
parent1f1e1b0d000488ac6a7032ae2ba8ba7e25232b22 (diff)
Merge pull request #4792 from nextcloud/fix-storage-wrappers-on-scanner
Make sure we use the passed-in storage when there is one
Diffstat (limited to 'tests')
-rw-r--r--tests/lib/Files/Storage/Wrapper/PermissionsMaskTest.php47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/lib/Files/Storage/Wrapper/PermissionsMaskTest.php b/tests/lib/Files/Storage/Wrapper/PermissionsMaskTest.php
index d0903ce5f97..354db9d069d 100644
--- a/tests/lib/Files/Storage/Wrapper/PermissionsMaskTest.php
+++ b/tests/lib/Files/Storage/Wrapper/PermissionsMaskTest.php
@@ -8,7 +8,9 @@
namespace Test\Files\Storage\Wrapper;
+use OC\Files\Storage\Wrapper\Wrapper;
use OCP\Constants;
+use OCP\Files\Cache\IScanner;
/**
* @group DB
@@ -114,4 +116,49 @@ class PermissionsMaskTest extends \Test\Files\Storage\Storage {
$this->assertEquals(Constants::PERMISSION_ALL - Constants::PERMISSION_CREATE, $this->sourceStorage->getCache()->get('foo')->getPermissions());
$this->assertEquals(Constants::PERMISSION_READ, $storage->getCache()->get('foo')->getPermissions());
}
+
+ public function testScanNewWrappedFiles() {
+ $storage = $this->getMaskedStorage(Constants::PERMISSION_READ + Constants::PERMISSION_CREATE);
+ $wrappedStorage = new Wrapper(['storage' => $storage]);
+ $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, $storage->getCache()->get('foo')->getPermissions());
+ }
+
+ public function testScanUnchanged() {
+ $this->sourceStorage->mkdir('foo');
+ $this->sourceStorage->file_put_contents('foo/bar.txt', 'bar');
+
+ $this->sourceStorage->getScanner()->scan('foo');
+
+ $storage = $this->getMaskedStorage(Constants::PERMISSION_READ);
+ $scanner = $storage->getScanner();
+ $called = false;
+ $scanner->listen('\OC\Files\Cache\Scanner', 'addToCache', function () use (&$called) {
+ $called = true;
+ });
+ $scanner->scan('foo', IScanner::SCAN_RECURSIVE, IScanner::REUSE_ETAG | IScanner::REUSE_SIZE);
+
+ $this->assertFalse($called);
+ }
+
+ public function testScanUnchangedWrapped() {
+ $this->sourceStorage->mkdir('foo');
+ $this->sourceStorage->file_put_contents('foo/bar.txt', 'bar');
+
+ $this->sourceStorage->getScanner()->scan('foo');
+
+ $storage = $this->getMaskedStorage(Constants::PERMISSION_READ);
+ $wrappedStorage = new Wrapper(['storage' => $storage]);
+ $scanner = $wrappedStorage->getScanner();
+ $called = false;
+ $scanner->listen('\OC\Files\Cache\Scanner', 'addToCache', function () use (&$called) {
+ $called = true;
+ });
+ $scanner->scan('foo', IScanner::SCAN_RECURSIVE, IScanner::REUSE_ETAG | IScanner::REUSE_SIZE);
+
+ $this->assertFalse($called);
+ }
}