diff options
author | Julius Härtl <jus@bitgrid.net> | 2020-02-12 15:24:35 +0100 |
---|---|---|
committer | Julius Härtl <jus@bitgrid.net> | 2020-04-24 18:15:43 +0200 |
commit | 902d12555e0e4347cef82da0a6bc9283f7394cd0 (patch) | |
tree | 102fc8aa1f48d226c92f3db2dc75dd21b2d58c5f | |
parent | 797fa188c224132d522710ecda4aa4feb85c3739 (diff) | |
download | nextcloud-server-902d12555e0e4347cef82da0a6bc9283f7394cd0.tar.gz nextcloud-server-902d12555e0e4347cef82da0a6bc9283f7394cd0.zip |
Do not include mountpoints when calculating quota usage on WebDAV
Signed-off-by: Julius Härtl <jus@bitgrid.net>
-rw-r--r-- | apps/dav/lib/Connector/Sabre/Directory.php | 3 | ||||
-rw-r--r-- | apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php | 28 |
2 files changed, 20 insertions, 11 deletions
diff --git a/apps/dav/lib/Connector/Sabre/Directory.php b/apps/dav/lib/Connector/Sabre/Directory.php index a7c319b4eee..e49a2ac3fe6 100644 --- a/apps/dav/lib/Connector/Sabre/Directory.php +++ b/apps/dav/lib/Connector/Sabre/Directory.php @@ -326,7 +326,8 @@ class Directory extends \OCA\DAV\Connector\Sabre\Node implements \Sabre\DAV\ICol return $this->quotaInfo; } try { - $storageInfo = \OC_Helper::getStorageInfo($this->info->getPath(), $this->info); + $info = $this->fileView->getFileInfo($this->path, false); + $storageInfo = \OC_Helper::getStorageInfo($this->info->getPath(), $info); if ($storageInfo['quota'] === \OCP\Files\FileInfo::SPACE_UNLIMITED) { $free = \OCP\Files\FileInfo::SPACE_UNLIMITED; } else { diff --git a/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php b/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php index d3d17eefec1..69b2dd5877e 100644 --- a/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php @@ -98,7 +98,7 @@ class DirectoryTest extends \Test\TestCase { return new Directory($this->view, $this->info); } - + public function testDeleteRootFolderFails() { $this->expectException(\Sabre\DAV\Exception\Forbidden::class); @@ -111,7 +111,7 @@ class DirectoryTest extends \Test\TestCase { $dir->delete(); } - + public function testDeleteForbidden() { $this->expectException(\OCA\DAV\Connector\Sabre\Exception\Forbidden::class); @@ -130,7 +130,7 @@ class DirectoryTest extends \Test\TestCase { $dir->delete(); } - + public function testDeleteFolderWhenAllowed() { // deletion allowed $this->info->expects($this->once()) @@ -147,7 +147,7 @@ class DirectoryTest extends \Test\TestCase { $dir->delete(); } - + public function testDeleteFolderFailsWhenNotAllowed() { $this->expectException(\Sabre\DAV\Exception\Forbidden::class); @@ -159,7 +159,7 @@ class DirectoryTest extends \Test\TestCase { $dir->delete(); } - + public function testDeleteFolderThrowsWhenDeletionFailed() { $this->expectException(\Sabre\DAV\Exception\Forbidden::class); @@ -217,7 +217,7 @@ class DirectoryTest extends \Test\TestCase { $dir->getChildren(); } - + public function testGetChildrenNoPermission() { $this->expectException(\Sabre\DAV\Exception\Forbidden::class); @@ -230,7 +230,7 @@ class DirectoryTest extends \Test\TestCase { $dir->getChildren(); } - + public function testGetChildNoPermission() { $this->expectException(\Sabre\DAV\Exception\NotFound::class); @@ -242,7 +242,7 @@ class DirectoryTest extends \Test\TestCase { $dir->getChild('test'); } - + public function testGetChildThrowStorageNotAvailableException() { $this->expectException(\Sabre\DAV\Exception\ServiceUnavailable::class); @@ -254,7 +254,7 @@ class DirectoryTest extends \Test\TestCase { $dir->getChild('.'); } - + public function testGetChildThrowInvalidPath() { $this->expectException(\OCA\DAV\Connector\Sabre\Exception\InvalidPath::class); @@ -295,6 +295,10 @@ class DirectoryTest extends \Test\TestCase { ->method('getStorage') ->willReturn($storage); + $this->view->expects($this->once()) + ->method('getFileInfo') + ->willReturn($this->info); + $dir = new Directory($this->view, $this->info); $this->assertEquals([200, -3], $dir->getQuotaInfo()); //200 used, unlimited } @@ -327,6 +331,10 @@ class DirectoryTest extends \Test\TestCase { ->method('getStorage') ->willReturn($storage); + $this->view->expects($this->once()) + ->method('getFileInfo') + ->willReturn($this->info); + $dir = new Directory($this->view, $this->info); $this->assertEquals([200, 800], $dir->getQuotaInfo()); //200 used, 800 free } @@ -404,7 +412,7 @@ class DirectoryTest extends \Test\TestCase { $this->assertTrue($targetNode->moveInto(basename($destination), $source, $sourceNode)); } - + public function testFailingMove() { $this->expectException(\Sabre\DAV\Exception\Forbidden::class); $this->expectExceptionMessage('Could not copy directory b, target exists'); |