From 2ea41dab93324749164e7c9c380085b8daab6138 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 12 Apr 2023 18:08:14 +0200 Subject: repair -1 folder sizes for object store background scan Signed-off-by: Robin Appelman --- .../Files/ObjectStore/ObjectStoreScannerTest.php | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 tests/lib/Files/ObjectStore/ObjectStoreScannerTest.php (limited to 'tests/lib/Files/ObjectStore/ObjectStoreScannerTest.php') 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 @@ +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()); + } +} -- cgit v1.2.3