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

add tests for reusing existing data in scanner

parent 398fe8bf
Branches
No related tags found
No related merge requests found
......@@ -119,7 +119,7 @@ class Scanner {
$reuse = ($recursive === self::SCAN_SHALLOW) ? self::REUSE_ETAG | self::REUSE_SIZE : 0;
}
$this->scanFile($path, $reuse);
return $this->scanChildren($path, $recursive);
return $this->scanChildren($path, $recursive, $reuse);
}
/**
......@@ -165,9 +165,7 @@ class Scanner {
$size += $childSize;
}
}
if ($size !== -1) {
$this->cache->put($path, array('size' => $size));
}
$this->cache->put($path, array('size' => $size));
}
return $size;
}
......
......@@ -104,7 +104,7 @@ class Scanner extends \PHPUnit_Framework_TestCase {
$this->assertNotEquals($cachedDataFolder['size'], -1);
}
function testBackgroundScan(){
function testBackgroundScan() {
$this->fillTestFolders();
$this->storage->mkdir('folder2');
$this->storage->file_put_contents('folder2/bar.txt', 'foobar');
......@@ -126,6 +126,24 @@ class Scanner extends \PHPUnit_Framework_TestCase {
$this->assertFalse($this->cache->getIncomplete());
}
public function testReuseExisting() {
$this->fillTestFolders();
$this->scanner->scan('');
$oldData = $this->cache->get('');
$this->storage->unlink('folder/bar.txt');
$this->scanner->scan('', \OC\Files\Cache\Scanner::SCAN_SHALLOW, \OC\Files\Cache\Scanner::REUSE_SIZE);
$newData = $this->cache->get('');
$this->assertNotEquals($oldData['etag'], $newData['etag']);
$this->assertEquals($oldData['size'], $newData['size']);
$oldData = $newData;
$this->scanner->scan('', \OC\Files\Cache\Scanner::SCAN_SHALLOW, \OC\Files\Cache\Scanner::REUSE_ETAG);
$newData = $this->cache->get('');
$this->assertEquals($oldData['etag'], $newData['etag']);
$this->assertEquals(-1, $newData['size']);
}
function setUp() {
$this->storage = new \OC\Files\Storage\Temporary(array());
$this->scanner = new \OC\Files\Cache\Scanner($this->storage);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment