diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php index 80b47d85df..dcf264aae6 100644 --- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php @@ -2433,150 +2433,6 @@ class ShareAPIControllerTest extends TestCase { } } - public function testUpdateShareCannotIncreasePermissionsLinkShare() { - $ocs = $this->mockFormatShare(); - - $folder = $this->createMock(Folder::class); - $folder->method('getId') - ->willReturn(42); - - $share = \OC::$server->getShareManager()->newShare(); - $share - ->setId(42) - ->setSharedBy($this->currentUser) - ->setShareOwner('anotheruser') - ->setShareType(\OCP\Share::SHARE_TYPE_LINK) - ->setPermissions(\OCP\Constants::PERMISSION_READ) - ->setNode($folder); - - // note: updateShare will modify the received instance but getSharedWith will reread from the database, - // so their values will be different - $incomingShare = \OC::$server->getShareManager()->newShare(); - $incomingShare - ->setId(42) - ->setSharedBy($this->currentUser) - ->setShareOwner('anotheruser') - ->setShareType(\OCP\Share::SHARE_TYPE_USER) - ->setSharedWith('currentUser') - ->setPermissions(\OCP\Constants::PERMISSION_READ) - ->setNode($folder); - - $this->shareManager->method('getShareById')->with('ocinternal:42')->willReturn($share); - - $this->shareManager->expects($this->any()) - ->method('getSharedWith') - ->will($this->returnValueMap([ - ['currentUser', \OCP\Share::SHARE_TYPE_USER, $share->getNode(), -1, 0, [$incomingShare]], - ['currentUser', \OCP\Share::SHARE_TYPE_GROUP, $share->getNode(), -1, 0, []], - ['currentUser', \OCP\Share::SHARE_TYPE_ROOM, $share->getNode(), -1, 0, []] - ])); - - $userFolder = $this->createMock(Folder::class); - $this->rootFolder->method('getUserFolder') - ->with($this->currentUser) - ->willReturn($userFolder); - - $userFolder->method('getById') - ->with(42) - ->willReturn([$folder]); - - $mountPoint = $this->createMock(IMountPoint::class); - $folder->method('getMountPoint') - ->willReturn($mountPoint); - $mountPoint->method('getStorageRootId') - ->willReturn(42); - - $this->shareManager->expects($this->never())->method('updateShare'); - $this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true); - - try { - $ocs->updateShare(42, null, null, null, 'true'); - $this->fail(); - } catch (OCSNotFoundException $e) { - $this->assertEquals('Cannot increase permissions', $e->getMessage()); - } - } - - public function testUpdateShareCannotIncreasePermissionsRoomShare() { - $ocs = $this->mockFormatShare(); - - $folder = $this->createMock(Folder::class); - $folder->method('getId') - ->willReturn(42); - - $share = \OC::$server->getShareManager()->newShare(); - $share - ->setId(42) - ->setSharedBy($this->currentUser) - ->setShareOwner('anotheruser') - ->setShareType(\OCP\Share::SHARE_TYPE_ROOM) - ->setSharedWith('group1') - ->setPermissions(\OCP\Constants::PERMISSION_READ) - ->setNode($folder); - - // note: updateShare will modify the received instance but getSharedWith will reread from the database, - // so their values will be different - $incomingShare = \OC::$server->getShareManager()->newShare(); - $incomingShare - ->setId(42) - ->setSharedBy($this->currentUser) - ->setShareOwner('anotheruser') - ->setShareType(\OCP\Share::SHARE_TYPE_ROOM) - ->setSharedWith('group1') - ->setPermissions(\OCP\Constants::PERMISSION_READ) - ->setNode($folder); - - $this->request - ->method('getParam') - ->will($this->returnValueMap([ - ['permissions', null, '31'], - ])); - - $this->shareManager - ->method('getShareById') - ->will($this->returnCallback( - function ($id) use ($share) { - if ($id !== 'ocRoomShare:42') { - throw new \OCP\Share\Exceptions\ShareNotFound(); - } - - return $share; - } - )); - - $userFolder = $this->createMock(Folder::class); - $this->rootFolder->method('getUserFolder') - ->with($this->currentUser) - ->willReturn($userFolder); - - $userFolder->method('getById') - ->with(42) - ->willReturn([$folder]); - - $mountPoint = $this->createMock(IMountPoint::class); - $folder->method('getMountPoint') - ->willReturn($mountPoint); - $mountPoint->method('getStorageRootId') - ->willReturn(42); - - $this->shareManager->expects($this->any()) - ->method('getSharedWith') - ->will($this->returnValueMap([ - ['currentUser', \OCP\Share::SHARE_TYPE_USER, $share->getNode(), -1, 0, []], - ['currentUser', \OCP\Share::SHARE_TYPE_GROUP, $share->getNode(), -1, 0, []], - ['currentUser', \OCP\Share::SHARE_TYPE_ROOM, $share->getNode(), -1, 0, [$incomingShare]] - ])); - - $this->shareManager->expects($this->never())->method('updateShare'); - - try { - $ocs->updateShare(42, 31); - $this->fail(); - } catch (OCSNotFoundException $e) { - $this->assertEquals('Cannot increase permissions', $e->getMessage()); - } - } - public function testUpdateShareCanIncreasePermissionsIfOwner() { $ocs = $this->mockFormatShare();