add tests for reusing existing data in scanner

This commit is contained in:
Robin Appelman 2013-06-17 18:03:57 +02:00
parent 398fe8bf32
commit 2ed0e6e915
2 changed files with 21 additions and 5 deletions

View File

@ -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;
}

View File

@ -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);