Skip to content
Snippets Groups Projects
Commit 66bc0f08 authored by Vincent Petry's avatar Vincent Petry
Browse files

Still return quota value when free space is unknown

Fixed the quota storage wrapper to correctly return the quota value when
the free space is not known (which usually happens when the disk_free_space
function is disabled)
parent 6252c248
No related branches found
No related tags found
No related merge requests found
......@@ -69,7 +69,14 @@ class Quota extends Wrapper {
return \OC\Files\SPACE_NOT_COMPUTED;
} else {
$free = $this->storage->free_space($path);
return min($free, (max($this->quota - $used, 0)));
$quotaFree = max($this->quota - $used, 0);
// if free space is known
if ($free >= 0) {
$free = min($free, $quotaFree);
} else {
$free = $quotaFree;
}
return $free;
}
}
}
......
......@@ -61,6 +61,24 @@ class Quota extends \Test\Files\Storage\Storage {
$this->assertEquals(6, $instance->free_space(''));
}
public function testFreeSpaceWithUnknownDiskSpace() {
$storage = $this->getMock(
'\OC\Files\Storage\Local',
array('free_space'),
array(array('datadir' => $this->tmpDir))
);
$storage->expects($this->any())
->method('free_space')
->will($this->returnValue(-2));
$storage->getScanner()->scan('');
$instance = new \OC\Files\Storage\Wrapper\Quota(array('storage' => $storage, 'quota' => 9));
$instance->getCache()->put(
'', array('size' => 3, 'unencrypted_size' => 0)
);
$this->assertEquals(6, $instance->free_space(''));
}
public function testFreeSpaceWithUsedSpaceAndEncryption() {
$instance = $this->getLimitedStorage(9);
$instance->getCache()->put(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment