aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/tests/TestCase.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_sharing/tests/TestCase.php')
-rw-r--r--apps/files_sharing/tests/TestCase.php145
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);