Skip to content

Commit

Permalink
add test for updating etag with unchanged mtime in child folder
Browse files Browse the repository at this point in the history
Signed-off-by: Robin Appelman <robin@icewind.nl>
  • Loading branch information
icewind1991 authored and artonge committed Feb 29, 2024
1 parent d1c7a0a commit 0054e13
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions tests/lib/Files/Cache/ScannerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -423,4 +423,29 @@ public function testNoETagUnscannedFolder() {
$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());
}
}

0 comments on commit 0054e13

Please sign in to comment.