diff --git a/lib/private/Server.php b/lib/private/Server.php index 4827b5cf3c78b..d09b0b8e67f8b 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -803,6 +803,8 @@ public function __construct($webRoot, \OC\Config $config) { return $manager; }); + $this->registerAlias(MountProviderCollection::class, IMountProviderCollection::class); + $this->registerService(IBus::class, function (ContainerInterface $c) { $busClass = $c->get(\OCP\IConfig::class)->getSystemValueString('commandbus'); if ($busClass) { diff --git a/tests/lib/TestCase.php b/tests/lib/TestCase.php index 5efa5249bc53e..24f1e39ecefe5 100644 --- a/tests/lib/TestCase.php +++ b/tests/lib/TestCase.php @@ -23,6 +23,7 @@ use OC\Files\View; use OC\Installer; use OC\Updater; +use OCA\Files_Sharing\MountProvider; use OCP\Command\IBus; use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\Files\IRootFolder; @@ -315,13 +316,13 @@ public static function tearDownAfterClass(): void { $setupManager = Server::get(SetupManager::class); $setupManager->tearDown(); - /** @var MountProviderCollection $mountProviderCollection */ $mountProviderCollection = Server::get(MountProviderCollection::class); $mountProviderCollection->clearProviders(); /** @var IConfig $config */ $config = Server::get(IConfig::class); $mountProviderCollection->registerProvider(new CacheMountProvider($config)); + $mountProviderCollection->registerProvider(Server::get(MountProvider::class)); $mountProviderCollection->registerHomeProvider(new LocalHomeMountProvider()); $objectStoreConfig = Server::get(PrimaryObjectStoreConfig::class); $mountProviderCollection->registerRootProvider(new RootMountProvider($objectStoreConfig, $config)); diff --git a/tests/lib/TestCaseTest.php b/tests/lib/TestCaseTest.php new file mode 100644 index 0000000000000..10c1d46bd2f61 --- /dev/null +++ b/tests/lib/TestCaseTest.php @@ -0,0 +1,48 @@ +createUser('owner', 'password'); + $receiver = $this->createUser('receiver', 'password'); + + $ownerUserFolder = Server::get(IRootFolder::class)->getUserFolder($owner->getUID()); + $ownerNode = $ownerUserFolder->newFolder('foo'); + $this->assertInstanceOf(Folder::class, $ownerNode); + + $manager = Server::get(IManager::class); + $manager->createShare( + $manager->newShare() + ->setShareType(IShare::TYPE_USER) + ->setShareOwner($owner->getUID()) + ->setSharedBy($owner->getUID()) + ->setSharedWith($receiver->getUID()) + ->setNode($ownerNode) + ->setPermissions(Constants::PERMISSION_ALL) + ); + + $receiverUserFolder = Server::get(IRootFolder::class)->getUserFolder($receiver->getUID()); + $receiverNode = $receiverUserFolder->get($ownerNode->getName()); + $this->assertInstanceOf(Folder::class, $receiverNode); + } +}