nextcloud/tests/lib/files/utils/scanner.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);
}
}