From 89478a0961c70f2b8f55b6ded9103b2cac4223a1 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Thu, 31 Mar 2016 21:25:23 +0200 Subject: [PATCH] Fix unit tests --- apps/dav/lib/connector/sabre/node.php | 10 +++++++++- apps/dav/tests/unit/connector/sabre/node.php | 7 +++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/apps/dav/lib/connector/sabre/node.php b/apps/dav/lib/connector/sabre/node.php index 4828cb611e..9867fe66cd 100644 --- a/apps/dav/lib/connector/sabre/node.php +++ b/apps/dav/lib/connector/sabre/node.php @@ -30,6 +30,7 @@ namespace OCA\DAV\Connector\Sabre; +use OC\Files\Mount\MoveableMount; use OCA\DAV\Connector\Sabre\Exception\InvalidPath; @@ -234,7 +235,14 @@ abstract class Node implements \Sabre\DAV\INode { */ $mountpoint = $this->info->getMountPoint(); if (!($mountpoint instanceof MoveableMount)) { - $permissions |= \OCP\Constants::PERMISSION_DELETE | \OCP\Constants::PERMISSION_UPDATE; + $mountpointpath = $mountpoint->getMountPoint(); + if (substr($mountpointpath, -1) === '/') { + $mountpointpath = substr($mountpointpath, 0, -1); + } + + if ($mountpointpath === $this->info->getPath()) { + $permissions |= \OCP\Constants::PERMISSION_DELETE | \OCP\Constants::PERMISSION_UPDATE; + } } /* diff --git a/apps/dav/tests/unit/connector/sabre/node.php b/apps/dav/tests/unit/connector/sabre/node.php index c9fe6e6027..cde8e746dc 100644 --- a/apps/dav/tests/unit/connector/sabre/node.php +++ b/apps/dav/tests/unit/connector/sabre/node.php @@ -108,16 +108,19 @@ class Node extends \Test\TestCase { */ public function testSharePermissions($type, $permissions, $expected) { $storage = $this->getMock('\OCP\Files\Storage'); - $storage->method('getPermissions')->willReturn($permissions); + $mountpoint = $this->getMock('\OCP\Files\Mount\IMountPoint'); + $mountpoint->method('getMountPoint')->willReturn('myPath'); + $info = $this->getMockBuilder('\OC\Files\FileInfo') ->disableOriginalConstructor() - ->setMethods(array('getStorage', 'getType')) + ->setMethods(['getStorage', 'getType', 'getMountPoint']) ->getMock(); $info->method('getStorage')->willReturn($storage); $info->method('getType')->willReturn($type); + $info->method('getMountPoint')->willReturn($mountpoint); $view = $this->getMock('\OC\Files\View');