Now also preventing to override "files" dir size with -1

Fixes #6526
This commit is contained in:
Vincent Petry 2014-01-07 17:41:04 +01:00
parent b6474506eb
commit 5be4af9f51
2 changed files with 13 additions and 7 deletions

View File

@ -16,7 +16,7 @@ class HomeCache extends Cache {
* @return int * @return int
*/ */
public function calculateFolderSize($path) { public function calculateFolderSize($path) {
if ($path !== '/' and $path !== '') { if ($path !== '/' and $path !== '' and $path !== 'files') {
return parent::calculateFolderSize($path); return parent::calculateFolderSize($path);
} }

View File

@ -62,33 +62,39 @@ class HomeCache extends \PHPUnit_Framework_TestCase {
} }
/** /**
* Tests that the root folder size calculation ignores the subdirs that have an unknown * Tests that the root and files folder size calculation ignores the subdirs
* size. This makes sure that quota calculation still works as it's based on the root * that have an unknown size. This makes sure that quota calculation still
* folder size. * works as it's based on the "files" folder size.
*/ */
public function testRootFolderSizeIgnoresUnknownUpdate() { public function testRootFolderSizeIgnoresUnknownUpdate() {
$dir1 = 'knownsize'; $dir1 = 'files/knownsize';
$dir2 = 'unknownsize'; $dir2 = 'files/unknownsize';
$fileData = array(); $fileData = array();
$fileData[''] = array('size' => -1, 'mtime' => 20, 'mimetype' => 'httpd/unix-directory'); $fileData[''] = array('size' => -1, 'mtime' => 20, 'mimetype' => 'httpd/unix-directory');
$fileData['files'] = array('size' => -1, 'mtime' => 20, 'mimetype' => 'httpd/unix-directory');
$fileData[$dir1] = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'httpd/unix-directory'); $fileData[$dir1] = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'httpd/unix-directory');
$fileData[$dir2] = array('size' => -1, 'mtime' => 25, 'mimetype' => 'httpd/unix-directory'); $fileData[$dir2] = array('size' => -1, 'mtime' => 25, 'mimetype' => 'httpd/unix-directory');
$this->cache->put('', $fileData['']); $this->cache->put('', $fileData['']);
$this->cache->put('files', $fileData['files']);
$this->cache->put($dir1, $fileData[$dir1]); $this->cache->put($dir1, $fileData[$dir1]);
$this->cache->put($dir2, $fileData[$dir2]); $this->cache->put($dir2, $fileData[$dir2]);
$this->assertTrue($this->cache->inCache('files'));
$this->assertTrue($this->cache->inCache($dir1)); $this->assertTrue($this->cache->inCache($dir1));
$this->assertTrue($this->cache->inCache($dir2)); $this->assertTrue($this->cache->inCache($dir2));
// check that root size ignored the unknown sizes // check that files and root size ignored the unknown sizes
$this->assertEquals(1000, $this->cache->calculateFolderSize('files'));
$this->assertEquals(1000, $this->cache->calculateFolderSize('')); $this->assertEquals(1000, $this->cache->calculateFolderSize(''));
// clean up // clean up
$this->cache->remove(''); $this->cache->remove('');
$this->cache->remove('files');
$this->cache->remove($dir1); $this->cache->remove($dir1);
$this->cache->remove($dir2); $this->cache->remove($dir2);
$this->assertFalse($this->cache->inCache('files'));
$this->assertFalse($this->cache->inCache($dir1)); $this->assertFalse($this->cache->inCache($dir1));
$this->assertFalse($this->cache->inCache($dir2)); $this->assertFalse($this->cache->inCache($dir2));
} }