From 14ae8f48eec5e6e533ce201793333092c376c703 Mon Sep 17 00:00:00 2001 From: provokateurin Date: Tue, 10 Nov 2026 16:16:13 +0100 Subject: [PATCH] test: Reset the correct mount provider collection instance and add back the files_sharing mount provider Signed-off-by: provokateurin --- lib/private/Server.php | 2 ++ tests/lib/TestCase.php | 3 ++- tests/lib/TestCaseTest.php | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/lib/private/Server.php b/lib/private/Server.php index f6187e28e58d4..5c81a2188805c 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -686,6 +686,8 @@ public function runInitialRegistrations(): void { return $manager; }); + $this->registerAlias(MountProviderCollection::class, IMountProviderCollection::class); + $this->registerService(IBus::class, static function (ContainerInterface $c): IBus { $busClass = $c->get(IConfig::class)->getSystemValueString('commandbus'); if ($busClass) { diff --git a/tests/lib/TestCase.php b/tests/lib/TestCase.php index 62676095f2b9f..9990003463378 100644 --- a/tests/lib/TestCase.php +++ b/tests/lib/TestCase.php @@ -26,6 +26,7 @@ use OC\Installer; use OC\Updater; use OC\User\Session; +use OCA\Files_Sharing\MountProvider; use OCP\Command\IBus; use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\Files\IRootFolder; @@ -507,13 +508,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 index 81d9c68ca67ef..b3712d55791b4 100644 --- a/tests/lib/TestCaseTest.php +++ b/tests/lib/TestCaseTest.php @@ -8,8 +8,14 @@ namespace Test; +use OCP\Constants; +use OCP\Files\Folder; +use OCP\Files\IRootFolder; use OCP\IConfig; use OCP\Server; +use OCP\Share\IManager; +use OCP\Share\IShare; +use Test\Traits\UserTrait; /** * Tests for TestCase::overwriteSystemConfig(). System config is persisted to @@ -17,6 +23,8 @@ */ #[\PHPUnit\Framework\Attributes\Group('DB')] class TestCaseTest extends TestCase { + use UserTrait; + private const KEY = 'testcase_overwrite_system_config'; private IConfig $config; @@ -88,4 +96,30 @@ public function testRestoreReturnsAPreviousFalseValue(): void { $this->assertFalse($this->config->getSystemValue(self::KEY, 'fallback')); } + + // This test cannot fail if this suite is run standalone. + // It will only fail if the mount provider collection wasn't correctly reset after a different test suite was executed before this one. + public function testMountProviderCollectionReset(): void { + $owner = $this->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); + } }