summaryrefslogtreecommitdiffstats
path: root/tests/lib/files/view.php
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2015-05-05 13:48:49 +0200
committerRobin Appelman <icewind@owncloud.com>2015-06-01 13:22:56 +0200
commit7e418c7d699718b6d934de6184f6c96fdf9437d6 (patch)
tree8e722a048b0422d5d6a66688f2eb94487092db0f /tests/lib/files/view.php
parente64360e72db8514b305c628a38cd30809fb2913d (diff)
downloadnextcloud-server-7e418c7d699718b6d934de6184f6c96fdf9437d6.tar.gz
nextcloud-server-7e418c7d699718b6d934de6184f6c96fdf9437d6.zip
high level locking wip
Diffstat (limited to 'tests/lib/files/view.php')
-rw-r--r--tests/lib/files/view.php27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/lib/files/view.php b/tests/lib/files/view.php
index 6bc63557138..99310742473 100644
--- a/tests/lib/files/view.php
+++ b/tests/lib/files/view.php
@@ -11,6 +11,7 @@ use OC\Files\Cache\Watcher;
use OC\Files\Storage\Common;
use OC\Files\Mount\MountPoint;
use OC\Files\Storage\Temporary;
+use OCP\Lock\ILockingProvider;
class TemporaryNoTouch extends \OC\Files\Storage\Temporary {
public function touch($path, $mtime = null) {
@@ -1080,4 +1081,30 @@ class View extends \Test\TestCase {
public function testNullAsRoot() {
new \OC\Files\View(null);
}
+
+ /**
+ * e.g. reading from a folder that's being renamed
+ *
+ * @expectedException \OCP\Lock\LockedException
+ */
+ public function testReadFromWriteLockedPath() {
+ $view = new \OC\Files\View();
+ $storage = new Temporary(array());
+ Filesystem::mount($storage, [], '/');
+ $view->lockFile('/foo/bar', ILockingProvider::LOCK_EXCLUSIVE);
+ $view->lockFile('/foo/bar/asd', ILockingProvider::LOCK_SHARED);
+ }
+
+ /**
+ * e.g. writing a file that's being downloaded
+ *
+ * @expectedException \OCP\Lock\LockedException
+ */
+ public function testWriteToReadLockedFile() {
+ $view = new \OC\Files\View();
+ $storage = new Temporary(array());
+ Filesystem::mount($storage, [], '/');
+ $view->lockFile('/foo/bar', ILockingProvider::LOCK_SHARED);
+ $view->lockFile('/foo/bar', ILockingProvider::LOCK_EXCLUSIVE);
+ }
}