75 lines
1.8 KiB
PHP
75 lines
1.8 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
|
||
|
* This file is licensed under the Affero General Public License version 3 or
|
||
|
* later.
|
||
|
* See the COPYING-README file.
|
||
|
*/
|
||
|
|
||
|
namespace Test\Files\Utils;
|
||
|
|
||
|
use OC\Files\Mount\Mount;
|
||
|
use OC\Files\Storage\Temporary;
|
||
|
|
||
|
class TestScanner extends \OC\Files\Utils\Scanner {
|
||
|
/**
|
||
|
* @var \OC\Files\Mount\Mount[] $mounts
|
||
|
*/
|
||
|
private $mounts = array();
|
||
|
|
||
|
/**
|
||
|
* @param \OC\Files\Mount\Mount $mount
|
||
|
*/
|
||
|
public function addMount($mount) {
|
||
|
$this->mounts[] = $mount;
|
||
|
}
|
||
|
|
||
|
protected function getMounts($dir) {
|
||
|
return $this->mounts;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class Scanner extends \PHPUnit_Framework_TestCase {
|
||
|
public function testReuseExistingRoot() {
|
||
|
$storage = new Temporary(array());
|
||
|
$mount = new Mount($storage, '');
|
||
|
$cache = $storage->getCache();
|
||
|
|
||
|
$storage->mkdir('folder');
|
||
|
$storage->file_put_contents('foo.txt', 'qwerty');
|
||
|
$storage->file_put_contents('folder/bar.txt', 'qwerty');
|
||
|
|
||
|
$scanner = new TestScanner('');
|
||
|
$scanner->addMount($mount);
|
||
|
|
||
|
$scanner->scan('');
|
||
|
$this->assertTrue($cache->inCache('folder/bar.txt'));
|
||
|
$oldRoot = $cache->get('');
|
||
|
|
||
|
$scanner->scan('');
|
||
|
$newRoot = $cache->get('');
|
||
|
$this->assertEquals($oldRoot, $newRoot);
|
||
|
}
|
||
|
|
||
|
public function testReuseExistingFile() {
|
||
|
$storage = new Temporary(array());
|
||
|
$mount = new Mount($storage, '');
|
||
|
$cache = $storage->getCache();
|
||
|
|
||
|
$storage->mkdir('folder');
|
||
|
$storage->file_put_contents('foo.txt', 'qwerty');
|
||
|
$storage->file_put_contents('folder/bar.txt', 'qwerty');
|
||
|
|
||
|
$scanner = new TestScanner('');
|
||
|
$scanner->addMount($mount);
|
||
|
|
||
|
$scanner->scan('');
|
||
|
$this->assertTrue($cache->inCache('folder/bar.txt'));
|
||
|
$old = $cache->get('folder/bar.txt');
|
||
|
|
||
|
$scanner->scan('');
|
||
|
$new = $cache->get('folder/bar.txt');
|
||
|
$this->assertEquals($old, $new);
|
||
|
}
|
||
|
}
|