diff options
Diffstat (limited to 'apps/files_sharing/tests/SharedMountTest.php')
-rw-r--r-- | apps/files_sharing/tests/SharedMountTest.php | 130 |
1 files changed, 57 insertions, 73 deletions
diff --git a/apps/files_sharing/tests/SharedMountTest.php b/apps/files_sharing/tests/SharedMountTest.php index e320b85cb22..cc9c70a241f 100644 --- a/apps/files_sharing/tests/SharedMountTest.php +++ b/apps/files_sharing/tests/SharedMountTest.php @@ -1,39 +1,23 @@ <?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 Lukas Reschke <lukas@statuscode.ch> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin Appelman <robin@icewind.nl> - * @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\Filesystem; +use OC\Files\View; use OC\Memcache\ArrayCache; use OCA\Files_Sharing\MountProvider; +use OCA\Files_Sharing\SharedMount; +use OCP\Constants; use OCP\ICacheFactory; +use OCP\IDBConnection; use OCP\IGroupManager; use OCP\IUserManager; +use OCP\Server; use OCP\Share\IShare; /** @@ -68,8 +52,8 @@ class SharedMountTest extends TestCase { $this->view->file_put_contents($this->folder . $this->filename, 'file in subfolder'); $this->view->file_put_contents($this->folder2 . $this->filename, 'file in subfolder2'); - $this->groupManager = \OC::$server->getGroupManager(); - $this->userManager = \OC::$server->getUserManager(); + $this->groupManager = Server::get(IGroupManager::class); + $this->userManager = Server::get(IUserManager::class); } protected function tearDown(): void { @@ -88,7 +72,7 @@ class SharedMountTest extends TestCase { /** * test if the mount point moves up if the parent folder no longer exists */ - public function testShareMountLoseParentFolder() { + public function testShareMountLoseParentFolder(): void { // share to user $share = $this->share( @@ -96,7 +80,7 @@ class SharedMountTest extends TestCase { $this->folder, self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2, - \OCP\Constants::PERMISSION_ALL); + Constants::PERMISSION_ALL); $this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2); $share->setTarget('/foo/bar' . $this->folder); @@ -120,18 +104,18 @@ class SharedMountTest extends TestCase { /** * @medium */ - public function testDeleteParentOfMountPoint() { + public function testDeleteParentOfMountPoint(): void { // share to user $share = $this->share( IShare::TYPE_USER, $this->folder, self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2, - \OCP\Constants::PERMISSION_ALL + Constants::PERMISSION_ALL ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); - $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); + $user2View = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); $this->assertTrue($user2View->file_exists($this->folder)); // create a local folder @@ -160,31 +144,31 @@ class SharedMountTest extends TestCase { $this->view->unlink($this->folder); } - public function testMoveSharedFile() { + public function testMoveSharedFile(): void { $share = $this->share( IShare::TYPE_USER, $this->filename, self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2, - \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE + Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_SHARE ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); - \OC\Files\Filesystem::rename($this->filename, $this->filename . '_renamed'); + Filesystem::rename($this->filename, $this->filename . '_renamed'); - $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename . '_renamed')); - $this->assertFalse(\OC\Files\Filesystem::file_exists($this->filename)); + $this->assertTrue(Filesystem::file_exists($this->filename . '_renamed')); + $this->assertFalse(Filesystem::file_exists($this->filename)); self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename)); - $this->assertFalse(\OC\Files\Filesystem::file_exists($this->filename . '_renamed')); + $this->assertTrue(Filesystem::file_exists($this->filename)); + $this->assertFalse(Filesystem::file_exists($this->filename . '_renamed')); // rename back to original name self::loginHelper(self::TEST_FILES_SHARING_API_USER2); - \OC\Files\Filesystem::rename($this->filename . '_renamed', $this->filename); - $this->assertFalse(\OC\Files\Filesystem::file_exists($this->filename . '_renamed')); - $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename)); + Filesystem::rename($this->filename . '_renamed', $this->filename); + $this->assertFalse(Filesystem::file_exists($this->filename . '_renamed')); + $this->assertTrue(Filesystem::file_exists($this->filename)); //cleanup $this->shareManager->deleteShare($share); @@ -194,7 +178,7 @@ class SharedMountTest extends TestCase { * share file with a group if a user renames the file the filename should not change * for the other users */ - public function testMoveGroupShare() { + public function testMoveGroupShare(): void { $testGroup = $this->groupManager->createGroup('testGroup'); $user1 = $this->userManager->get(self::TEST_FILES_SHARING_API_USER1); $user2 = $this->userManager->get(self::TEST_FILES_SHARING_API_USER2); @@ -209,7 +193,7 @@ class SharedMountTest extends TestCase { $this->filename, self::TEST_FILES_SHARING_API_USER1, 'testGroup', - \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE + Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE | Constants::PERMISSION_SHARE ); $this->shareManager->acceptShare($share, $user1->getUID()); $this->shareManager->acceptShare($share, $user2->getUID()); @@ -217,20 +201,20 @@ class SharedMountTest extends TestCase { self::loginHelper(self::TEST_FILES_SHARING_API_USER2); - $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename)); + $this->assertTrue(Filesystem::file_exists($this->filename)); - \OC\Files\Filesystem::rename($this->filename, 'newFileName'); + Filesystem::rename($this->filename, 'newFileName'); - $this->assertTrue(\OC\Files\Filesystem::file_exists('newFileName')); - $this->assertFalse(\OC\Files\Filesystem::file_exists($this->filename)); + $this->assertTrue(Filesystem::file_exists('newFileName')); + $this->assertFalse(Filesystem::file_exists($this->filename)); self::loginHelper(self::TEST_FILES_SHARING_API_USER3); - $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename)); - $this->assertFalse(\OC\Files\Filesystem::file_exists('newFileName')); + $this->assertTrue(Filesystem::file_exists($this->filename)); + $this->assertFalse(Filesystem::file_exists('newFileName')); self::loginHelper(self::TEST_FILES_SHARING_API_USER3); - $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename)); - $this->assertFalse(\OC\Files\Filesystem::file_exists('newFileName')); + $this->assertTrue(Filesystem::file_exists($this->filename)); + $this->assertFalse(Filesystem::file_exists('newFileName')); //cleanup self::loginHelper(self::TEST_FILES_SHARING_API_USER1); @@ -241,12 +225,12 @@ class SharedMountTest extends TestCase { } /** - * @dataProvider dataProviderTestStripUserFilesPath * @param string $path * @param string $expectedResult * @param bool $exception if a exception is expected */ - public function testStripUserFilesPath($path, $expectedResult, $exception) { + #[\PHPUnit\Framework\Attributes\DataProvider('dataProviderTestStripUserFilesPath')] + public function testStripUserFilesPath($path, $expectedResult, $exception): void { $testClass = new DummyTestClassSharedMount(null, null); try { $result = $testClass->stripUserFilesPathDummy($path); @@ -260,7 +244,7 @@ class SharedMountTest extends TestCase { } } - public function dataProviderTestStripUserFilesPath() { + public static function dataProviderTestStripUserFilesPath() { return [ ['/user/files/foo.txt', '/foo.txt', false], ['/user/files/folder/foo.txt', '/folder/foo.txt', false], @@ -275,7 +259,7 @@ class SharedMountTest extends TestCase { * If the permissions on a group share are upgraded be sure to still respect * removed shares by a member of that group */ - public function testPermissionUpgradeOnUserDeletedGroupShare() { + public function testPermissionUpgradeOnUserDeletedGroupShare(): void { $testGroup = $this->groupManager->createGroup('testGroup'); $user1 = $this->userManager->get(self::TEST_FILES_SHARING_API_USER1); $user2 = $this->userManager->get(self::TEST_FILES_SHARING_API_USER2); @@ -284,7 +268,7 @@ class SharedMountTest extends TestCase { $testGroup->addUser($user2); $testGroup->addUser($user3); - $connection = \OC::$server->getDatabaseConnection(); + $connection = Server::get(IDBConnection::class); // Share item with group $fileinfo = $this->view->getFileInfo($this->folder); @@ -293,7 +277,7 @@ class SharedMountTest extends TestCase { $this->folder, self::TEST_FILES_SHARING_API_USER1, 'testGroup', - \OCP\Constants::PERMISSION_READ + Constants::PERMISSION_READ ); $this->shareManager->acceptShare($share, $user1->getUID()); $this->shareManager->acceptShare($share, $user2->getUID()); @@ -301,14 +285,14 @@ class SharedMountTest extends TestCase { // Login as user 2 and verify the item exists self::loginHelper(self::TEST_FILES_SHARING_API_USER2); - $this->assertTrue(\OC\Files\Filesystem::file_exists($this->folder)); + $this->assertTrue(Filesystem::file_exists($this->folder)); $result = $this->shareManager->getShareById($share->getFullId(), self::TEST_FILES_SHARING_API_USER2); $this->assertNotEmpty($result); - $this->assertEquals(\OCP\Constants::PERMISSION_READ, $result->getPermissions()); + $this->assertEquals(Constants::PERMISSION_READ, $result->getPermissions()); // Delete the share - $this->assertTrue(\OC\Files\Filesystem::rmdir($this->folder)); - $this->assertFalse(\OC\Files\Filesystem::file_exists($this->folder)); + $this->assertTrue(Filesystem::rmdir($this->folder)); + $this->assertFalse(Filesystem::file_exists($this->folder)); // Verify we do not get a share $result = $this->shareManager->getShareById($share->getFullId(), self::TEST_FILES_SHARING_API_USER2); @@ -316,12 +300,12 @@ class SharedMountTest extends TestCase { // Login as user 1 again and change permissions self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - $share->setPermissions(\OCP\Constants::PERMISSION_ALL); + $share->setPermissions(Constants::PERMISSION_ALL); $share = $this->shareManager->updateShare($share); // Login as user 2 and verify self::loginHelper(self::TEST_FILES_SHARING_API_USER2); - $this->assertFalse(\OC\Files\Filesystem::file_exists($this->folder)); + $this->assertFalse(Filesystem::file_exists($this->folder)); $result = $this->shareManager->getShareById($share->getFullId(), self::TEST_FILES_SHARING_API_USER2); $this->assertEquals(0, $result->getPermissions()); @@ -337,7 +321,7 @@ class SharedMountTest extends TestCase { /** * test if the mount point gets renamed if a folder exists at the target */ - public function testShareMountOverFolder() { + public function testShareMountOverFolder(): void { self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $this->view2->mkdir('bar'); @@ -349,7 +333,7 @@ class SharedMountTest extends TestCase { $this->folder, self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2, - \OCP\Constants::PERMISSION_ALL); + Constants::PERMISSION_ALL); $this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2); $share->setTarget('/bar'); @@ -372,7 +356,7 @@ class SharedMountTest extends TestCase { /** * test if the mount point gets renamed if another share exists at the target */ - public function testShareMountOverShare() { + public function testShareMountOverShare(): void { // create a shared cache $caches = []; $cacheFactory = $this->createMock(ICacheFactory::class); @@ -392,9 +376,9 @@ class SharedMountTest extends TestCase { }); // hack to overwrite the cache factory, we can't use the proper "overwriteService" since the mount provider is created before this test is called - $mountProvider = \OCP\Server::get(MountProvider::class); + $mountProvider = Server::get(MountProvider::class); $reflectionClass = new \ReflectionClass($mountProvider); - $reflectionCacheFactory = $reflectionClass->getProperty("cacheFactory"); + $reflectionCacheFactory = $reflectionClass->getProperty('cacheFactory'); $reflectionCacheFactory->setAccessible(true); $reflectionCacheFactory->setValue($mountProvider, $cacheFactory); @@ -404,7 +388,7 @@ class SharedMountTest extends TestCase { $this->folder, self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2, - \OCP\Constants::PERMISSION_ALL); + Constants::PERMISSION_ALL); $this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2); $share->setTarget('/foobar'); @@ -417,7 +401,7 @@ class SharedMountTest extends TestCase { $this->folder2, self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2, - \OCP\Constants::PERMISSION_ALL); + Constants::PERMISSION_ALL); $this->shareManager->acceptShare($share2, self::TEST_FILES_SHARING_API_USER2); $share2->setTarget('/foobar'); @@ -441,7 +425,7 @@ class SharedMountTest extends TestCase { } } -class DummyTestClassSharedMount extends \OCA\Files_Sharing\SharedMount { +class DummyTestClassSharedMount extends SharedMount { public function __construct($storage, $mountpoint, $arguments = null, $loader = null) { // noop } |