diff options
Diffstat (limited to 'tests/lib/Files/ObjectStore/ObjectStoreScannerTest.php')
-rw-r--r-- | tests/lib/Files/ObjectStore/ObjectStoreScannerTest.php | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/tests/lib/Files/ObjectStore/ObjectStoreScannerTest.php b/tests/lib/Files/ObjectStore/ObjectStoreScannerTest.php new file mode 100644 index 00000000000..02d72defa92 --- /dev/null +++ b/tests/lib/Files/ObjectStore/ObjectStoreScannerTest.php @@ -0,0 +1,87 @@ +<?php +/** + * ownCloud + * + * @author Joas Schilling + * @copyright 2015 Joas Schilling nickvergessen@owncloud.com + * + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\Files\ObjectStore; + +use OC\Files\Cache\Scanner; +use OC\Files\ObjectStore\ObjectStoreScanner; +use OC\Files\Storage\Temporary; +use OCP\Files\Cache\ICache; +use OCP\Files\Storage\IStorage; +use Test\TestCase; + +/** + * @group DB + */ +class ObjectStoreScannerTest extends TestCase { + private IStorage $storage; + private ICache $cache; + private ObjectStoreScanner $scanner; + private Scanner $realScanner; + + protected function setUp(): void { + parent::setUp(); + + $this->storage = new Temporary([]); + $this->cache = $this->storage->getCache(); + $this->scanner = new ObjectStoreScanner($this->storage); + $this->realScanner = new Scanner($this->storage); + } + + public function testFile() { + $data = "dummy file data\n"; + $this->storage->file_put_contents('foo.txt', $data); + + $this->assertEquals( + [], + $this->scanner->scanFile('foo.txt'), + 'Asserting that no error occurred while scanFile()' + ); + } + + private function fillTestFolders() { + $textData = "dummy file data\n"; + $imgData = file_get_contents(\OC::$SERVERROOT . '/core/img/logo/logo.png'); + $this->storage->mkdir('folder'); + $this->storage->file_put_contents('foo.txt', $textData); + $this->storage->file_put_contents('foo.png', $imgData); + $this->storage->file_put_contents('folder/bar.txt', $textData); + } + + public function testFolder() { + $this->fillTestFolders(); + + $this->assertEquals( + [], + $this->scanner->scan(''), + 'Asserting that no error occurred while scan()' + ); + } + + public function testBackgroundScan() { + $this->fillTestFolders(); + $this->storage->mkdir('folder2'); + $this->storage->file_put_contents('folder2/bar.txt', 'foobar'); + + $this->realScanner->scan(''); + + $this->assertEquals(6, $this->cache->get('folder2')->getSize()); + + $this->cache->put('folder2', ['size' => -1]); + + $this->assertEquals(-1, $this->cache->get('folder2')->getSize()); + + $this->scanner->backgroundScan(); + + $this->assertEquals(6, $this->cache->get('folder2')->getSize()); + } +} |