diff options
Diffstat (limited to 'apps/files_sharing/tests/TestCase.php')
-rw-r--r-- | apps/files_sharing/tests/TestCase.php | 145 |
1 files changed, 61 insertions, 84 deletions
diff --git a/apps/files_sharing/tests/TestCase.php b/apps/files_sharing/tests/TestCase.php index 234ea2c69c8..9a6935e46b6 100644 --- a/apps/files_sharing/tests/TestCase.php +++ b/apps/files_sharing/tests/TestCase.php @@ -1,45 +1,30 @@ <?php + /** - * @copyright Copyright (c) 2016, ownCloud, Inc. - * - * @author Björn Schießle <bjoern@schiessle.org> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Joas Schilling <coding@schilljs.com> - * @author John Molakvoæ <skjnldsv@protonmail.com> - * @author Jörn Friedrich Dreyer <jfd@butonic.de> - * @author Lukas Reschke <lukas@statuscode.ch> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin Appelman <robin@icewind.nl> - * @author Robin McCorkell <robin@mccorkell.me.uk> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Vincent Petry <vincent@nextcloud.com> - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * + * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-only */ namespace OCA\Files_Sharing\Tests; +use OC\Files\Cache\Storage; use OC\Files\Filesystem; +use OC\Files\View; +use OC\Group\Database; +use OC\SystemConfig; +use OC\User\DisplayNameCache; use OCA\Files_Sharing\AppInfo\Application; use OCA\Files_Sharing\External\MountProvider as ExternalMountProvider; use OCA\Files_Sharing\MountProvider; use OCP\Files\Config\IMountProviderCollection; +use OCP\Files\IRootFolder; +use OCP\IDBConnection; +use OCP\IGroupManager; +use OCP\IUserManager; +use OCP\IUserSession; +use OCP\Server; use OCP\Share\IShare; use Test\Traits\MountProviderTrait; -use OC\User\DisplayNameCache; /** * Class TestCase @@ -51,25 +36,29 @@ use OC\User\DisplayNameCache; abstract class TestCase extends \Test\TestCase { use MountProviderTrait; - public const TEST_FILES_SHARING_API_USER1 = "test-share-user1"; - public const TEST_FILES_SHARING_API_USER2 = "test-share-user2"; - public const TEST_FILES_SHARING_API_USER3 = "test-share-user3"; - public const TEST_FILES_SHARING_API_USER4 = "test-share-user4"; + public const TEST_FILES_SHARING_API_USER1 = 'test-share-user1'; + public const TEST_FILES_SHARING_API_USER2 = 'test-share-user2'; + public const TEST_FILES_SHARING_API_USER3 = 'test-share-user3'; + public const TEST_FILES_SHARING_API_USER4 = 'test-share-user4'; - public const TEST_FILES_SHARING_API_GROUP1 = "test-share-group1"; + public const TEST_FILES_SHARING_API_GROUP1 = 'test-share-group1'; public $filename; public $data; /** - * @var \OC\Files\View + * @var View */ public $view; + /** + * @var View + */ + public $view2; public $folder; public $subfolder; /** @var \OCP\Share\IManager */ protected $shareManager; - /** @var \OCP\Files\IRootFolder */ + /** @var IRootFolder */ protected $rootFolder; public static function setUpBeforeClass(): void { @@ -77,22 +66,22 @@ abstract class TestCase extends \Test\TestCase { $app = new Application(); $app->registerMountProviders( - \OC::$server->get(IMountProviderCollection::class), - \OC::$server->get(MountProvider::class), - \OC::$server->get(ExternalMountProvider::class), + Server::get(IMountProviderCollection::class), + Server::get(MountProvider::class), + Server::get(ExternalMountProvider::class), ); // reset backend - \OC_User::clearBackends(); - \OC::$server->getGroupManager()->clearBackends(); + Server::get(IUserManager::class)->clearBackends(); + Server::get(IGroupManager::class)->clearBackends(); // clear share hooks \OC_Hook::clear('OCP\\Share'); - \OC::registerShareHooks(\OC::$server->getSystemConfig()); + \OC::registerShareHooks(Server::get(SystemConfig::class)); // create users $backend = new \Test\Util\User\Dummy(); - \OC_User::useBackend($backend); + Server::get(IUserManager::class)->registerBackend($backend); $backend->createUser(self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER1); $backend->createUser(self::TEST_FILES_SHARING_API_USER2, self::TEST_FILES_SHARING_API_USER2); $backend->createUser(self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER3); @@ -112,34 +101,35 @@ abstract class TestCase extends \Test\TestCase { $groupBackend->addToGroup(self::TEST_FILES_SHARING_API_USER3, 'group2'); $groupBackend->addToGroup(self::TEST_FILES_SHARING_API_USER4, 'group3'); $groupBackend->addToGroup(self::TEST_FILES_SHARING_API_USER2, self::TEST_FILES_SHARING_API_GROUP1); - \OC::$server->getGroupManager()->addBackend($groupBackend); + Server::get(IGroupManager::class)->addBackend($groupBackend); } protected function setUp(): void { parent::setUp(); - \OC::$server->get(DisplayNameCache::class)->clear(); + Server::get(DisplayNameCache::class)->clear(); //login as user1 - self::loginHelper(self::TEST_FILES_SHARING_API_USER1); + $this->loginHelper(self::TEST_FILES_SHARING_API_USER1); $this->data = 'foobar'; - $this->view = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files'); + $this->view = new View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files'); + $this->view2 = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); - $this->shareManager = \OC::$server->getShareManager(); - $this->rootFolder = \OC::$server->getRootFolder(); + $this->shareManager = Server::get(\OCP\Share\IManager::class); + $this->rootFolder = Server::get(IRootFolder::class); } protected function tearDown(): void { - $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder(); + $qb = Server::get(IDBConnection::class)->getQueryBuilder(); $qb->delete('share'); $qb->execute(); - $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder(); + $qb = Server::get(IDBConnection::class)->getQueryBuilder(); $qb->delete('mounts'); $qb->execute(); - $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder(); - $qb->delete('filecache'); + $qb = Server::get(IDBConnection::class)->getQueryBuilder(); + $qb->delete('filecache')->runAcrossAllShards(); $qb->execute(); parent::tearDown(); @@ -147,21 +137,21 @@ abstract class TestCase extends \Test\TestCase { public static function tearDownAfterClass(): void { // cleanup users - $user = \OC::$server->getUserManager()->get(self::TEST_FILES_SHARING_API_USER1); + $user = Server::get(IUserManager::class)->get(self::TEST_FILES_SHARING_API_USER1); if ($user !== null) { $user->delete(); } - $user = \OC::$server->getUserManager()->get(self::TEST_FILES_SHARING_API_USER2); + $user = Server::get(IUserManager::class)->get(self::TEST_FILES_SHARING_API_USER2); if ($user !== null) { $user->delete(); } - $user = \OC::$server->getUserManager()->get(self::TEST_FILES_SHARING_API_USER3); + $user = Server::get(IUserManager::class)->get(self::TEST_FILES_SHARING_API_USER3); if ($user !== null) { $user->delete(); } // delete group - $group = \OC::$server->getGroupManager()->get(self::TEST_FILES_SHARING_API_GROUP1); + $group = Server::get(IGroupManager::class)->get(self::TEST_FILES_SHARING_API_GROUP1); if ($group) { $group->delete(); } @@ -171,10 +161,10 @@ abstract class TestCase extends \Test\TestCase { Filesystem::tearDown(); // reset backend - \OC_User::clearBackends(); - \OC_User::useBackend('database'); - \OC::$server->getGroupManager()->clearBackends(); - \OC::$server->getGroupManager()->addBackend(new \OC\Group\Database()); + Server::get(IUserManager::class)->clearBackends(); + Server::get(IUserManager::class)->registerBackend(new \OC\User\Database()); + Server::get(IGroupManager::class)->clearBackends(); + Server::get(IGroupManager::class)->addBackend(new Database()); parent::tearDownAfterClass(); } @@ -184,14 +174,14 @@ abstract class TestCase extends \Test\TestCase { * @param bool $create * @param bool $password */ - protected static function loginHelper($user, $create = false, $password = false) { + protected function loginHelper($user, $create = false, $password = false) { if ($password === false) { $password = $user; } if ($create) { - $userManager = \OC::$server->getUserManager(); - $groupManager = \OC::$server->getGroupManager(); + $userManager = Server::get(IUserManager::class); + $groupManager = Server::get(IGroupManager::class); $userObject = $userManager->createUser($user, $password); $group = $groupManager->createGroup('group'); @@ -201,36 +191,23 @@ abstract class TestCase extends \Test\TestCase { } } - self::resetStorage(); - \OC_Util::tearDownFS(); - \OC\Files\Cache\Storage::getGlobalCache()->clearCache(); - \OC::$server->getUserSession()->setUser(null); - \OC\Files\Filesystem::tearDown(); - \OC::$server->getUserSession()->login($user, $password); + Storage::getGlobalCache()->clearCache(); + Server::get(IUserSession::class)->setUser(null); + Filesystem::tearDown(); + Server::get(IUserSession::class)->login($user, $password); \OC::$server->getUserFolder($user); \OC_Util::setupFS($user); } /** - * reset init status for the share storage - */ - protected static function resetStorage() { - $storage = new \ReflectionClass('\OCA\Files_Sharing\SharedStorage'); - $isInitialized = $storage->getProperty('initialized'); - $isInitialized->setAccessible(true); - $isInitialized->setValue($storage, false); - $isInitialized->setAccessible(false); - } - - /** * get some information from a given share * @param int $shareID * @return array with: item_source, share_type, share_with, item_type, permissions */ protected function getShareFromId($shareID) { - $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder(); + $qb = Server::get(IDBConnection::class)->getQueryBuilder(); $qb->select('item_source', '`share_type', 'share_with', 'item_type', 'permissions') ->from('share') ->where( @@ -249,7 +226,7 @@ abstract class TestCase extends \Test\TestCase { * @param string $initiator * @param string $recipient * @param int $permissions - * @return \OCP\Share\IShare + * @return IShare */ protected function share($type, $path, $initiator, $recipient, $permissions) { $userFolder = $this->rootFolder->getUserFolder($initiator); |