diff options
author | Robin Appelman <robin@icewind.nl> | 2023-11-22 16:26:57 +0100 |
---|---|---|
committer | backportbot[bot] <backportbot[bot]@users.noreply.github.com> | 2024-01-31 18:28:05 +0000 |
commit | 14678e6bca964561189164c03385d8a707ddfc7f (patch) | |
tree | 3827d266d410127337c8489bd8ec867591642e32 /tests/lib | |
parent | 0b0efed67a9dd83326b4b078c08b906f409f1ef5 (diff) | |
download | nextcloud-server-14678e6bca964561189164c03385d8a707ddfc7f.tar.gz nextcloud-server-14678e6bca964561189164c03385d8a707ddfc7f.zip |
add test for updating etag with unchanged mtime in child folder
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'tests/lib')
-rw-r--r-- | tests/lib/Files/Cache/ScannerTest.php | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/lib/Files/Cache/ScannerTest.php b/tests/lib/Files/Cache/ScannerTest.php index 52587aeabc7..22d458a4a9b 100644 --- a/tests/lib/Files/Cache/ScannerTest.php +++ b/tests/lib/Files/Cache/ScannerTest.php @@ -423,4 +423,29 @@ class ScannerTest extends TestCase { $newFolderEntry = $this->cache->get('folder'); $this->assertNotEquals($newFolderEntry->getEtag(), $oldFolderEntry->getEtag()); } + + public function testNoETagUnscannedSubFolder() { + $this->fillTestFolders(); + $this->storage->mkdir('folder/sub'); + + $this->scanner->scan(''); + + $oldFolderEntry1 = $this->cache->get('folder'); + $oldFolderEntry2 = $this->cache->get('folder/sub'); + // create a new file in a folder by keeping the mtime unchanged, but mark the folder as unscanned + $this->storage->file_put_contents('folder/sub/new.txt', 'foo'); + $this->storage->touch('folder/sub', $oldFolderEntry1->getMTime()); + + // we only mark the direct parent as unscanned, which is the current "notify" behavior + $this->cache->update($oldFolderEntry2->getId(), ['size' => -1]); + + $this->scanner->scan(''); + + $this->cache->inCache('folder/new.txt'); + + $newFolderEntry1 = $this->cache->get('folder'); + $this->assertNotEquals($newFolderEntry1->getEtag(), $oldFolderEntry1->getEtag()); + $newFolderEntry2 = $this->cache->get('folder/sub'); + $this->assertNotEquals($newFolderEntry2->getEtag(), $oldFolderEntry2->getEtag()); + } } |