Skip to content
Snippets Groups Projects
Commit 7ef0ffe8 authored by Robin Appelman's avatar Robin Appelman
Browse files

add View->putFileInfo to the filecache api

parent e63e246c
No related branches found
No related tags found
No related merge requests found
......@@ -663,7 +663,7 @@ class View {
$path = \OC\Files\Filesystem::normalizePath($this->fakeRoot . '/' . $path);
/**
* @var \OC\Files\Storage\Storage $storage
* @var string $path
* @var string $internalPath
*/
list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($path);
$cache = $storage->getCache();
......@@ -700,7 +700,7 @@ class View {
$path = \OC\Files\Filesystem::normalizePath($this->fakeRoot . '/' . $directory);
/**
* @var \OC\Files\Storage\Storage $storage
* @var string $path
* @var string $internalPath
*/
list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($path);
$cache = $storage->getCache();
......@@ -737,4 +737,30 @@ class View {
usort($files, "fileCmp"); //TODO: remove this once ajax is merged
return $files;
}
/**
* change file metadata
*
* @param string $path
* @param array $data
* @return int
*
* returns the fileid of the updated file
*/
public function putFileInfo($path, $data) {
$path = \OC\Files\Filesystem::normalizePath($this->fakeRoot . '/' . $path);
/**
* @var \OC\Files\Storage\Storage $storage
* @var string $internalPath
*/
list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($path);
$cache = $storage->getCache();
if (!$cache->inCache($internalPath)) {
$scanner = $storage->getScanner();
$scanner->scan($internalPath, \OC\Files\Cache\Scanner::SCAN_SHALLOW);
}
return $cache->put($internalPath, $data);
}
}
......@@ -72,6 +72,13 @@ class View extends \PHPUnit_Framework_TestCase {
$folderView = new \OC\Files\View('/folder');
$this->assertEquals($rootView->getFileInfo('/folder'), $folderView->getFileInfo('/'));
$cachedData = $rootView->getFileInfo('/foo.txt');
$this->assertFalse($cachedData['encrypted']);
$id = $rootView->putFileInfo('/foo.txt', array('encrypted' => true));
$cachedData = $rootView->getFileInfo('/foo.txt');
$this->assertTrue($cachedData['encrypted']);
$this->assertEquals($cachedData['fileid'], $id);
}
public function testAutoScan() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment