explicitly sort files when using getFolderContents

remotes/origin/stable5
Robin Appelman 13 years ago
parent 8ce5e0d30d
commit ad706229f5
  1. 14
      lib/files/cache/cache.php
  2. 14
      tests/lib/files/view.php

@ -33,9 +33,9 @@ class Cache {
* @param \OC\Files\Storage\Storage|string $storage * @param \OC\Files\Storage\Storage|string $storage
*/ */
public function __construct($storage) { public function __construct($storage) {
if($storage instanceof \OC\Files\Storage\Storage){ if ($storage instanceof \OC\Files\Storage\Storage) {
$this->storageId = $storage->getId(); $this->storageId = $storage->getId();
}else{ } else {
$this->storageId = $storage; $this->storageId = $storage;
} }
} }
@ -87,7 +87,7 @@ class Cache {
if ($fileId > -1) { if ($fileId > -1) {
$query = \OC_DB::prepare( $query = \OC_DB::prepare(
'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted` 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`
FROM `*PREFIX*filecache` WHERE parent = ?'); FROM `*PREFIX*filecache` WHERE parent = ? ORDER BY `fileid` ASC');
$result = $query->execute(array($fileId)); $result = $query->execute(array($fileId));
return $result->fetchAll(); return $result->fetchAll();
} else { } else {
@ -364,7 +364,7 @@ class Cache {
*/ */
public function calculateFolderSize($path) { public function calculateFolderSize($path) {
$id = $this->getId($path); $id = $this->getId($path);
if($id === -1){ if ($id === -1) {
return 0; return 0;
} }
$query = \OC_DB::prepare('SELECT `size` FROM `*PREFIX*filecache` WHERE `parent` = ? AND `storage` = ?'); $query = \OC_DB::prepare('SELECT `size` FROM `*PREFIX*filecache` WHERE `parent` = ? AND `storage` = ?');
@ -412,12 +412,12 @@ class Cache {
* *
* @return string|bool the path of the folder or false when no folder matched * @return string|bool the path of the folder or false when no folder matched
*/ */
public function getIncomplete(){ public function getIncomplete() {
$query = \OC_DB::prepare('SELECT `path` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `size` = -1 ORDER BY `fileid` DESC LIMIT 1'); $query = \OC_DB::prepare('SELECT `path` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `size` = -1 ORDER BY `fileid` DESC LIMIT 1');
$query->execute(array($this->storageId)); $query->execute(array($this->storageId));
if($row = $query->fetchRow()){ if ($row = $query->fetchRow()) {
return $row['path']; return $row['path'];
}else{ } else {
return false; return false;
} }
} }

@ -55,20 +55,20 @@ class View extends \PHPUnit_Framework_TestCase {
$folderData = $rootView->getDirectoryContent('/'); $folderData = $rootView->getDirectoryContent('/');
/** /**
* expected entries: * expected entries:
* folder
* foo.png * foo.png
* foo.txt * foo.txt
* folder
* substorage * substorage
*/ */
$this->assertEquals(4, count($folderData)); $this->assertEquals(4, count($folderData));
$this->assertEquals('folder', $folderData[0]['name']); $this->assertEquals('foo.png', $folderData[0]['name']);
$this->assertEquals('foo.png', $folderData[1]['name']); $this->assertEquals('foo.txt', $folderData[1]['name']);
$this->assertEquals('foo.txt', $folderData[2]['name']); $this->assertEquals('folder', $folderData[2]['name']);
$this->assertEquals('substorage', $folderData[3]['name']); $this->assertEquals('substorage', $folderData[3]['name']);
$this->assertEquals($storageSize + $textSize, $folderData[0]['size']); $this->assertEquals($imageSize, $folderData[0]['size']);
$this->assertEquals($imageSize, $folderData[1]['size']); $this->assertEquals($textSize, $folderData[1]['size']);
$this->assertEquals($textSize, $folderData[2]['size']); $this->assertEquals($storageSize + $textSize, $folderData[2]['size']);
$this->assertEquals($storageSize, $folderData[3]['size']); $this->assertEquals($storageSize, $folderData[3]['size']);
$folderView = new \OC\Files\View('/folder'); $folderView = new \OC\Files\View('/folder');

Loading…
Cancel
Save