optimize isShared and isMounted

Signed-off-by: Robin Appelman <robin@icewind.nl>
pull/41119/head
Robin Appelman 1 year ago
parent dec880b285
commit f4fa2fb93c
No known key found for this signature in database
GPG Key ID: 42B69D8A64526EFB
  1. 12
      lib/private/Files/FileInfo.php
  2. 18
      tests/lib/Files/FileInfoTest.php

@ -33,9 +33,10 @@
*/
namespace OC\Files;
use OCA\Files_Sharing\ISharedStorage;
use OC\Files\Mount\HomeMountPoint;
use OCA\Files_Sharing\External\Mount;
use OCA\Files_Sharing\ISharedMountPoint;
use OCP\Files\Cache\ICacheEntry;
use OCP\Files\IHomeStorage;
use OCP\Files\Mount\IMountPoint;
use OCP\IUser;
@ -312,13 +313,12 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess {
* @return bool
*/
public function isShared() {
$storage = $this->getStorage();
return $storage->instanceOfStorage(ISharedStorage::class);
return $this->mount instanceof ISharedMountPoint;
}
public function isMounted() {
$storage = $this->getStorage();
return !($storage->instanceOfStorage(IHomeStorage::class) || $storage->instanceOfStorage(ISharedStorage::class));
$isHome = $this->mount instanceof HomeMountPoint;
return !$isHome && !$this->isShared();
}
/**

@ -9,6 +9,8 @@
namespace Test\Files;
use OC\Files\FileInfo;
use OC\Files\Mount\HomeMountPoint;
use OC\Files\Mount\MountPoint;
use OC\Files\Storage\Home;
use OC\Files\Storage\Temporary;
use OCP\IConfig;
@ -33,19 +35,27 @@ class FileInfoTest extends TestCase {
->willReturn('foo');
$user->method('getHome')
->willReturn('foo');
$storage = new Home(['user' => $user]);
$fileInfo = new FileInfo(
'',
new Home(['user' => $user]),
'', [], null);
$storage,
'',
[],
new HomeMountPoint($user, $storage, '/foo/files')
);
$this->assertFalse($fileInfo->isMounted());
}
public function testIsMountedNonHomeStorage() {
$storage = new Temporary();
$fileInfo = new FileInfo(
'',
new Temporary(),
'', [], null);
$storage,
'',
[],
new MountPoint($storage, '/foo/files/bar')
);
$this->assertTrue($fileInfo->isMounted());
}
}

Loading…
Cancel
Save