aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/Share20
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/Share20')
-rw-r--r--tests/lib/Share20/DefaultShareProviderTest.php68
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');