Root size for home storage is now size of "files" subdir

Fixes #4593
This commit is contained in:
Vincent Petry 2013-11-18 17:39:52 +01:00
parent 44c2f9aad2
commit 3e2fd9942b
2 changed files with 39 additions and 0 deletions

View File

@ -37,4 +37,17 @@ class HomeCache extends Cache {
}
return $totalSize;
}
public function get($path) {
$data = parent::get($path);
if ($path === '' or $path === '/') {
// only the size of the "files" dir counts
$filesData = parent::get('files');
if (isset($filesData['size'])) {
$data['size'] = $filesData['size'];
}
}
return $data;
}
}

View File

@ -92,4 +92,30 @@ class HomeCache extends \PHPUnit_Framework_TestCase {
$this->assertFalse($this->cache->inCache($dir1));
$this->assertFalse($this->cache->inCache($dir2));
}
public function testRootFolderSizeIsFilesSize() {
$dir1 = 'files';
$afile = 'test.txt';
$fileData = array();
$fileData[''] = array('size' => 1500, 'mtime' => 20, 'mimetype' => 'httpd/unix-directory');
$fileData[$dir1] = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'httpd/unix-directory');
$fileData[$afile] = array('size' => 500, 'mtime' => 20);
$this->cache->put('', $fileData['']);
$this->cache->put($dir1, $fileData[$dir1]);
$this->assertTrue($this->cache->inCache($dir1));
// check that root size ignored the unknown sizes
$data = $this->cache->get('files');
$this->assertEquals(1000, $data['size']);
$data = $this->cache->get('');
$this->assertEquals(1000, $data['size']);
// clean up
$this->cache->remove('');
$this->cache->remove($dir1);
$this->assertFalse($this->cache->inCache($dir1));
}
}