diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/Share20/DefaultShareProviderTest.php | 68 |
1 files changed, 49 insertions, 19 deletions
diff --git a/tests/lib/Share20/DefaultShareProviderTest.php b/tests/lib/Share20/DefaultShareProviderTest.php index 72ef83331e9..333f5ab9515 100644 --- a/tests/lib/Share20/DefaultShareProviderTest.php +++ b/tests/lib/Share20/DefaultShareProviderTest.php @@ -7,6 +7,8 @@ namespace Test\Share20; +use OC\Files\Cache\CacheEntry; +use OC\Files\Cache\FileAccess; use OC\Share20\DefaultShareProvider; use OC\Share20\ShareAttributes; use OCP\AppFramework\Utility\ITimeFactory; @@ -68,6 +70,11 @@ class DefaultShareProviderTest extends \Test\TestCase { /** @var ITimeFactory|MockObject */ protected $timeFactory; + /** @var FileAccess|MockObject */ + protected $cacheAccess; + /** @var array<int, CacheEntry> */ + protected $cacheItems = []; + protected function setUp(): void { $this->dbConn = \OC::$server->getDatabaseConnection(); $this->userManager = $this->createMock(IUserManager::class); @@ -79,6 +86,26 @@ class DefaultShareProviderTest extends \Test\TestCase { $this->defaults = $this->getMockBuilder(Defaults::class)->disableOriginalConstructor()->getMock(); $this->urlGenerator = $this->createMock(IURLGenerator::class); $this->timeFactory = $this->createMock(ITimeFactory::class); + $this->cacheAccess = $this->createMock(FileAccess::class); + $this->cacheItems = []; + $this->cacheAccess->method('getByFileIds')->willReturnCallback(function (array $fileIds) { + $result = []; + foreach ($fileIds as $fileId) { + if (isset($this->cacheItems[$fileId])) { + $result[$fileId] = $this->cacheItems[$fileId]; + } + } + return $result; + }); + $this->cacheAccess->method('getByFileIdsInStorage')->willReturnCallback(function (array $fileIds, int $storageId) { + $result = []; + foreach ($fileIds as $fileId) { + if (isset($this->cacheItems[$fileId]) && $this->cacheItems[$fileId]->getStorageId() === $storageId) { + $result[$fileId] = $this->cacheItems[$fileId]; + } + } + return $result; + }); $this->userManager->expects($this->any())->method('userExists')->willReturn(true); $this->timeFactory->expects($this->any())->method('now')->willReturn(new \DateTimeImmutable("2023-05-04 00:00 Europe/Berlin")); @@ -95,13 +122,13 @@ class DefaultShareProviderTest extends \Test\TestCase { $this->defaults, $this->l10nFactory, $this->urlGenerator, - $this->timeFactory + $this->timeFactory, + $this->cacheAccess, ); } protected function tearDown(): void { $this->dbConn->getQueryBuilder()->delete('share')->execute(); - $this->dbConn->getQueryBuilder()->delete('filecache')->execute(); $this->dbConn->getQueryBuilder()->delete('storages')->execute(); } @@ -456,7 +483,8 @@ class DefaultShareProviderTest extends \Test\TestCase { $this->defaults, $this->l10nFactory, $this->urlGenerator, - $this->timeFactory + $this->timeFactory, + $this->cacheAccess, ]) ->setMethods(['getShareById']) ->getMock(); @@ -551,7 +579,8 @@ class DefaultShareProviderTest extends \Test\TestCase { $this->defaults, $this->l10nFactory, $this->urlGenerator, - $this->timeFactory + $this->timeFactory, + $this->cacheAccess, ]) ->setMethods(['getShareById']) ->getMock(); @@ -906,16 +935,15 @@ class DefaultShareProviderTest extends \Test\TestCase { } private function createTestFileEntry($path, $storage = 1) { - $qb = $this->dbConn->getQueryBuilder(); - $qb->insert('filecache') - ->values([ - 'storage' => $qb->expr()->literal($storage), - 'path' => $qb->expr()->literal($path), - 'path_hash' => $qb->expr()->literal(md5($path)), - 'name' => $qb->expr()->literal(basename($path)), - ]); - $this->assertEquals(1, $qb->execute()); - return $qb->getLastInsertId(); + $id = count($this->cacheItems); + $this->cacheItems[$id] = new CacheEntry([ + 'fileid' => $id, + 'storage' => $storage, + 'path' => $path, + 'path_hash' => md5($path), + 'name' => basename($path), + ]); + return $id; } public function storageAndFileNameProvider() { @@ -924,8 +952,6 @@ class DefaultShareProviderTest extends \Test\TestCase { ['home::shareOwner', 'files/test.txt', 'files/test2.txt'], // regular file on external storage ['smb::whatever', 'files/test.txt', 'files/test2.txt'], - // regular file on external storage in trashbin-like folder, - ['smb::whatever', 'files_trashbin/files/test.txt', 'files_trashbin/files/test2.txt'], ]; } @@ -1273,6 +1299,7 @@ class DefaultShareProviderTest extends \Test\TestCase { $user = $this->createMock(IUser::class); $user->method('getUID')->willReturn('sharedWith'); + $user->method('getDisplayName')->willReturn('sharedWith'); $owner = $this->createMock(IUser::class); $owner->method('getUID')->willReturn('shareOwner'); $initiator = $this->createMock(IUser::class); @@ -2511,7 +2538,8 @@ class DefaultShareProviderTest extends \Test\TestCase { $this->defaults, $this->l10nFactory, $this->urlGenerator, - $this->timeFactory + $this->timeFactory, + $this->cacheAccess, ); $password = md5(time()); @@ -2609,7 +2637,8 @@ class DefaultShareProviderTest extends \Test\TestCase { $this->defaults, $this->l10nFactory, $this->urlGenerator, - $this->timeFactory + $this->timeFactory, + $this->cacheAccess, ); $u1 = $userManager->createUser('testShare1', 'test'); @@ -2705,7 +2734,8 @@ class DefaultShareProviderTest extends \Test\TestCase { $this->defaults, $this->l10nFactory, $this->urlGenerator, - $this->timeFactory + $this->timeFactory, + $this->cacheAccess, ); $u1 = $userManager->createUser('testShare1', 'test'); |