From 501d28215d177ad5406dfec929679b611820df6b Mon Sep 17 00:00:00 2001 From: Josh Date: Thu, 2 Jul 2026 10:15:18 -0400 Subject: [PATCH 1/3] test(files): remove mkdir side effect from CachePermissionsMaskTest setup Pre-creating `foo` in `setUp()` changes the initial cache state and breaks inherited cache tests that expect a fresh entry. It's also redundant for the tests in CachePermissionsMaskTest itself which already create `foo` when needed. Signed-off-by: Josh --- tests/lib/Files/Cache/Wrapper/CachePermissionsMaskTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/lib/Files/Cache/Wrapper/CachePermissionsMaskTest.php b/tests/lib/Files/Cache/Wrapper/CachePermissionsMaskTest.php index dadcc0beae3eb..d894df8c91dc3 100644 --- a/tests/lib/Files/Cache/Wrapper/CachePermissionsMaskTest.php +++ b/tests/lib/Files/Cache/Wrapper/CachePermissionsMaskTest.php @@ -29,7 +29,6 @@ class CachePermissionsMaskTest extends CacheTest { #[\Override] protected function setUp(): void { parent::setUp(); - $this->storage->mkdir('foo'); $this->sourceCache = $this->cache; $this->cache = $this->getMaskedCached(Constants::PERMISSION_ALL); } From 7752e82a9f5922d49c40e7812e335729cec091b9 Mon Sep 17 00:00:00 2001 From: Josh Date: Thu, 2 Jul 2026 10:16:23 -0400 Subject: [PATCH 2/3] test(files): expand CachePermissionsMask coverage Signed-off-by: Josh --- .../Wrapper/CachePermissionsMaskTest.php | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/tests/lib/Files/Cache/Wrapper/CachePermissionsMaskTest.php b/tests/lib/Files/Cache/Wrapper/CachePermissionsMaskTest.php index d894df8c91dc3..7839e61f78627 100644 --- a/tests/lib/Files/Cache/Wrapper/CachePermissionsMaskTest.php +++ b/tests/lib/Files/Cache/Wrapper/CachePermissionsMaskTest.php @@ -100,4 +100,67 @@ public function testSearchMasked($mask): void { $this->assertEquals($mask & ~Constants::PERMISSION_CREATE, $file['permissions']); } } + + #[\PHPUnit\Framework\Attributes\DataProvider('maskProvider')] + public function testGetScannedFileMasked($mask): void { + $this->storage->mkdir('foo'); + $this->storage->file_put_contents('foo/bar', 'asd'); + $this->storage->getScanner()->scan(''); + + $cache = $this->getMaskedCached($mask); + $file = $cache->get('foo/bar'); + + $this->assertNotFalse($file); + $this->assertEquals($mask & ~Constants::PERMISSION_CREATE, $file['permissions']); + } + + #[\PHPUnit\Framework\Attributes\DataProvider('maskProvider')] + public function testGetScannedFolderMasked($mask): void { + $this->storage->mkdir('foo'); + $this->storage->file_put_contents('foo/bar', 'asd'); + $this->storage->getScanner()->scan(''); + + $cache = $this->getMaskedCached($mask); + $folder = $cache->get('foo'); + + $this->assertNotFalse($folder); + $this->assertEquals($mask, $folder['permissions']); + } + + public function testGetSetsScanPermissionsFromOriginalPermissions(): void { + $mask = Constants::PERMISSION_READ; + $cache = $this->getMaskedCached($mask); + + $data = [ + 'size' => 100, + 'mtime' => 50, + 'mimetype' => 'text/plain', + 'permissions' => Constants::PERMISSION_ALL, + ]; + $this->sourceCache->put('foo', $data); + + $result = $cache->get('foo'); + + $this->assertEquals(Constants::PERMISSION_ALL, $result['scan_permissions']); + $this->assertEquals(Constants::PERMISSION_ALL & $mask, $result['permissions']); + } + + public function testGetDoesNotOverwriteExistingScanPermissions(): void { + $mask = Constants::PERMISSION_READ; + $cache = $this->getMaskedCached($mask); + + $data = [ + 'size' => 100, + 'mtime' => 50, + 'mimetype' => 'text/plain', + 'permissions' => Constants::PERMISSION_ALL, + 'scan_permissions' => Constants::PERMISSION_READ, + ]; + $this->sourceCache->put('foo', $data); + + $result = $cache->get('foo'); + + $this->assertEquals(Constants::PERMISSION_READ, $result['scan_permissions']); + $this->assertEquals(Constants::PERMISSION_ALL & $mask, $result['permissions']); + } } From 33632ed4764e51cbf8872606202dd89746455895 Mon Sep 17 00:00:00 2001 From: Josh Date: Thu, 2 Jul 2026 10:33:06 -0400 Subject: [PATCH 3/3] chore(files): cleanup/modernize CachePermissionsMaskTest Signed-off-by: Josh --- .../Wrapper/CachePermissionsMaskTest.php | 71 ++++++++----------- 1 file changed, 28 insertions(+), 43 deletions(-) diff --git a/tests/lib/Files/Cache/Wrapper/CachePermissionsMaskTest.php b/tests/lib/Files/Cache/Wrapper/CachePermissionsMaskTest.php index 7839e61f78627..148e2e8ac2b81 100644 --- a/tests/lib/Files/Cache/Wrapper/CachePermissionsMaskTest.php +++ b/tests/lib/Files/Cache/Wrapper/CachePermissionsMaskTest.php @@ -13,30 +13,24 @@ use OCP\Constants; use Test\Files\Cache\CacheTest; -/** - * Class CachePermissionsMask - * - * - * @package Test\Files\Cache\Wrapper - */ #[\PHPUnit\Framework\Attributes\Group('DB')] class CachePermissionsMaskTest extends CacheTest { - /** - * @var Cache $sourceCache - */ - protected $sourceCache; + protected Cache $sourceCache; #[\Override] protected function setUp(): void { parent::setUp(); $this->sourceCache = $this->cache; - $this->cache = $this->getMaskedCached(Constants::PERMISSION_ALL); + $this->cache = $this->getMaskedCache(Constants::PERMISSION_ALL); } - protected function getMaskedCached($mask) { + protected function getMaskedCache(int $mask): CachePermissionsMask { return new CachePermissionsMask($this->sourceCache, $mask); } + /** + * @return list + */ public static function maskProvider(): array { return [ [Constants::PERMISSION_ALL], @@ -46,90 +40,81 @@ public static function maskProvider(): array { ]; } - /** - * @param int $mask - */ #[\PHPUnit\Framework\Attributes\DataProvider('maskProvider')] - public function testGetMasked($mask): void { - $cache = $this->getMaskedCached($mask); + public function testGetMasked(int $mask): void { + $cache = $this->getMaskedCache($mask); $data = ['size' => 100, 'mtime' => 50, 'mimetype' => 'text/plain', 'permissions' => Constants::PERMISSION_ALL]; $this->sourceCache->put('foo', $data); $result = $cache->get('foo'); - $this->assertEquals($mask, $result['permissions']); + $this->assertSame($mask, $result['permissions']); $data = ['size' => 100, 'mtime' => 50, 'mimetype' => 'text/plain', 'permissions' => Constants::PERMISSION_ALL - Constants::PERMISSION_DELETE]; $this->sourceCache->put('bar', $data); $result = $cache->get('bar'); - $this->assertEquals($mask & ~Constants::PERMISSION_DELETE, $result['permissions']); + $this->assertSame($mask & ~Constants::PERMISSION_DELETE, $result['permissions']); } - /** - * @param int $mask - */ #[\PHPUnit\Framework\Attributes\DataProvider('maskProvider')] - public function testGetFolderContentMasked($mask): void { + public function testGetFolderContentMasked(int $mask): void { $this->storage->mkdir('foo'); $this->storage->file_put_contents('foo/bar', 'asd'); $this->storage->file_put_contents('foo/asd', 'bar'); $this->storage->getScanner()->scan(''); - $cache = $this->getMaskedCached($mask); + $cache = $this->getMaskedCache($mask); $files = $cache->getFolderContents('foo'); $this->assertCount(2, $files); foreach ($files as $file) { - $this->assertEquals($mask & ~Constants::PERMISSION_CREATE, $file['permissions']); + $this->assertSame($mask & ~Constants::PERMISSION_CREATE, $file['permissions']); } } - /** - * @param int $mask - */ #[\PHPUnit\Framework\Attributes\DataProvider('maskProvider')] - public function testSearchMasked($mask): void { + public function testSearchMasked(int $mask): void { $this->storage->mkdir('foo'); $this->storage->file_put_contents('foo/bar', 'asd'); $this->storage->file_put_contents('foo/foobar', 'bar'); $this->storage->getScanner()->scan(''); - $cache = $this->getMaskedCached($mask); + $cache = $this->getMaskedCache($mask); $files = $cache->search('%bar'); $this->assertCount(2, $files); foreach ($files as $file) { - $this->assertEquals($mask & ~Constants::PERMISSION_CREATE, $file['permissions']); + $this->assertSame($mask & ~Constants::PERMISSION_CREATE, $file['permissions']); } } #[\PHPUnit\Framework\Attributes\DataProvider('maskProvider')] - public function testGetScannedFileMasked($mask): void { + public function testGetScannedFileMasked(int $mask): void { $this->storage->mkdir('foo'); $this->storage->file_put_contents('foo/bar', 'asd'); $this->storage->getScanner()->scan(''); - $cache = $this->getMaskedCached($mask); + $cache = $this->getMaskedCache($mask); $file = $cache->get('foo/bar'); $this->assertNotFalse($file); - $this->assertEquals($mask & ~Constants::PERMISSION_CREATE, $file['permissions']); + $this->assertSame($mask & ~Constants::PERMISSION_CREATE, $file['permissions']); } #[\PHPUnit\Framework\Attributes\DataProvider('maskProvider')] - public function testGetScannedFolderMasked($mask): void { + public function testGetScannedFolderMasked(int $mask): void { $this->storage->mkdir('foo'); $this->storage->file_put_contents('foo/bar', 'asd'); $this->storage->getScanner()->scan(''); - $cache = $this->getMaskedCached($mask); + $cache = $this->getMaskedCache($mask); $folder = $cache->get('foo'); $this->assertNotFalse($folder); - $this->assertEquals($mask, $folder['permissions']); + $this->assertSame($mask, $folder['permissions']); } public function testGetSetsScanPermissionsFromOriginalPermissions(): void { $mask = Constants::PERMISSION_READ; - $cache = $this->getMaskedCached($mask); + $cache = $this->getMaskedCache($mask); $data = [ 'size' => 100, @@ -141,13 +126,13 @@ public function testGetSetsScanPermissionsFromOriginalPermissions(): void { $result = $cache->get('foo'); - $this->assertEquals(Constants::PERMISSION_ALL, $result['scan_permissions']); - $this->assertEquals(Constants::PERMISSION_ALL & $mask, $result['permissions']); + $this->assertSame(Constants::PERMISSION_ALL, $result['scan_permissions']); + $this->assertSame(Constants::PERMISSION_ALL & $mask, $result['permissions']); } public function testGetDoesNotOverwriteExistingScanPermissions(): void { $mask = Constants::PERMISSION_READ; - $cache = $this->getMaskedCached($mask); + $cache = $this->getMaskedCache($mask); $data = [ 'size' => 100, @@ -160,7 +145,7 @@ public function testGetDoesNotOverwriteExistingScanPermissions(): void { $result = $cache->get('foo'); - $this->assertEquals(Constants::PERMISSION_READ, $result['scan_permissions']); - $this->assertEquals(Constants::PERMISSION_ALL & $mask, $result['permissions']); + $this->assertSame(Constants::PERMISSION_READ, $result['scan_permissions']); + $this->assertSame(Constants::PERMISSION_ALL & $mask, $result['permissions']); } }