aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorprovokateurin <kate@provokateurin.de>2025-07-15 11:51:41 +0200
committerprovokateurin <kate@provokateurin.de>2025-07-15 13:10:45 +0200
commitcb005704306cfd855104d3f8adb2a39106018d4e (patch)
tree110766152bdc180bb91468b74e7f4cf77f685073
parentaf5acc35cd41e3384240489b96eb8d263498a1f2 (diff)
downloadnextcloud-server-chore/remove-hierarchical-shares.tar.gz
nextcloud-server-chore/remove-hierarchical-shares.zip
chore(Share20): Remove legacy hierarchical shares logicchore/remove-hierarchical-shares
Signed-off-by: provokateurin <kate@provokateurin.de>
-rw-r--r--apps/federatedfilesharing/lib/FederatedShareProvider.php25
-rw-r--r--apps/sharebymail/lib/ShareByMailProvider.php24
-rw-r--r--build/psalm-baseline.xml6
-rw-r--r--lib/private/Share20/DefaultShareProvider.php43
-rw-r--r--lib/private/Share20/LegacyHooks.php1
-rw-r--r--lib/private/Share20/Manager.php54
-rw-r--r--lib/private/Share20/Share.php24
-rw-r--r--tests/lib/Share20/DefaultShareProviderTest.php88
-rw-r--r--tests/lib/Share20/LegacyHooksTest.php5
-rw-r--r--tests/lib/Share20/ManagerTest.php139
10 files changed, 2 insertions, 407 deletions
diff --git a/apps/federatedfilesharing/lib/FederatedShareProvider.php b/apps/federatedfilesharing/lib/FederatedShareProvider.php
index e3731ac3ecf..d2ebede489b 100644
--- a/apps/federatedfilesharing/lib/FederatedShareProvider.php
+++ b/apps/federatedfilesharing/lib/FederatedShareProvider.php
@@ -432,31 +432,6 @@ class FederatedShareProvider implements IShareProvider, IShareProviderSupportsAl
}
/**
- * Get all children of this share
- *
- * @param IShare $parent
- * @return IShare[]
- */
- public function getChildren(IShare $parent) {
- $children = [];
-
- $qb = $this->dbConnection->getQueryBuilder();
- $qb->select('*')
- ->from('share')
- ->where($qb->expr()->eq('parent', $qb->createNamedParameter($parent->getId())))
- ->andWhere($qb->expr()->in('share_type', $qb->createNamedParameter($this->supportedShareType, IQueryBuilder::PARAM_INT_ARRAY)))
- ->orderBy('id');
-
- $cursor = $qb->executeQuery();
- while ($data = $cursor->fetch()) {
- $children[] = $this->createShareObject($data);
- }
- $cursor->closeCursor();
-
- return $children;
- }
-
- /**
* Delete a share (owner unShares the file)
*
* @param IShare $share
diff --git a/apps/sharebymail/lib/ShareByMailProvider.php b/apps/sharebymail/lib/ShareByMailProvider.php
index 16a13786ea1..18c4e9096b1 100644
--- a/apps/sharebymail/lib/ShareByMailProvider.php
+++ b/apps/sharebymail/lib/ShareByMailProvider.php
@@ -638,30 +638,6 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
}
/**
- * Get all children of this share
- *
- * @return IShare[]
- */
- public function getChildren(IShare $parent): array {
- $children = [];
-
- $qb = $this->dbConnection->getQueryBuilder();
- $qb->select('*')
- ->from('share')
- ->where($qb->expr()->eq('parent', $qb->createNamedParameter($parent->getId())))
- ->andWhere($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_EMAIL)))
- ->orderBy('id');
-
- $cursor = $qb->executeQuery();
- while ($data = $cursor->fetch()) {
- $children[] = $this->createShareObject($data);
- }
- $cursor->closeCursor();
-
- return $children;
- }
-
- /**
* Add share to the database and return the ID
*/
protected function addShareToDB(
diff --git a/build/psalm-baseline.xml b/build/psalm-baseline.xml
index db43a3e7336..a2b89ac9737 100644
--- a/build/psalm-baseline.xml
+++ b/build/psalm-baseline.xml
@@ -4286,9 +4286,6 @@
<TooManyArguments>
<code><![CDATA[set]]></code>
</TooManyArguments>
- <UndefinedInterfaceMethod>
- <code><![CDATA[getParent]]></code>
- </UndefinedInterfaceMethod>
</file>
<file src="lib/private/Share20/Manager.php">
<InvalidArgument>
@@ -4300,9 +4297,6 @@
<UndefinedClass>
<code><![CDATA[\OCA\Circles\Api\v1\Circles]]></code>
</UndefinedClass>
- <UndefinedInterfaceMethod>
- <code><![CDATA[getChildren]]></code>
- </UndefinedInterfaceMethod>
</file>
<file src="lib/private/Share20/ProviderFactory.php">
<InvalidReturnStatement>
diff --git a/lib/private/Share20/DefaultShareProvider.php b/lib/private/Share20/DefaultShareProvider.php
index e1eebe1e450..0c32a97ab7d 100644
--- a/lib/private/Share20/DefaultShareProvider.php
+++ b/lib/private/Share20/DefaultShareProvider.php
@@ -127,10 +127,6 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
$qb->setValue('expiration', $qb->createNamedParameter($expirationDate, 'datetime'));
}
- if (method_exists($share, 'getParent')) {
- $qb->setValue('parent', $qb->createNamedParameter($share->getParent()));
- }
-
$qb->setValue('hide_download', $qb->createNamedParameter($share->getHideDownload() ? 1 : 0, IQueryBuilder::PARAM_INT));
} else {
throw new \Exception('invalid share type!');
@@ -359,42 +355,6 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
}
/**
- * Get all children of this share
- * FIXME: remove once https://github.com/owncloud/core/pull/21660 is in
- *
- * @param \OCP\Share\IShare $parent
- * @return \OCP\Share\IShare[]
- */
- public function getChildren(\OCP\Share\IShare $parent) {
- $children = [];
-
- $qb = $this->dbConn->getQueryBuilder();
- $qb->select('*')
- ->from('share')
- ->where($qb->expr()->eq('parent', $qb->createNamedParameter($parent->getId())))
- ->andWhere(
- $qb->expr()->in(
- 'share_type',
- $qb->createNamedParameter([
- IShare::TYPE_USER,
- IShare::TYPE_GROUP,
- IShare::TYPE_LINK,
- ], IQueryBuilder::PARAM_INT_ARRAY)
- )
- )
- ->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)))
- ->orderBy('id');
-
- $cursor = $qb->executeQuery();
- while ($data = $cursor->fetch()) {
- $children[] = $this->createShare($data);
- }
- $cursor->closeCursor();
-
- return $children;
- }
-
- /**
* Delete a share
*
* @param \OCP\Share\IShare $share
@@ -527,8 +487,6 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
$qb->update('share')
->set('permissions', $qb->createNamedParameter($originalPermission))
->where(
- $qb->expr()->eq('parent', $qb->createNamedParameter($share->getParent()))
- )->andWhere(
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP))
)->andWhere(
$qb->expr()->eq('share_with', $qb->createNamedParameter($recipient))
@@ -1078,7 +1036,6 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
$shareMap[$data['parent']]->setPermissions((int)$data['permissions']);
$shareMap[$data['parent']]->setStatus((int)$data['accepted']);
$shareMap[$data['parent']]->setTarget($data['file_target']);
- $shareMap[$data['parent']]->setParent($data['parent']);
}
}
diff --git a/lib/private/Share20/LegacyHooks.php b/lib/private/Share20/LegacyHooks.php
index 3bce0b9560a..00e88ca959d 100644
--- a/lib/private/Share20/LegacyHooks.php
+++ b/lib/private/Share20/LegacyHooks.php
@@ -82,7 +82,6 @@ class LegacyHooks {
'itemSource' => $share->getNodeId(),
'shareType' => $shareType,
'shareWith' => $sharedWith,
- 'itemparent' => method_exists($share, 'getParent') ? $share->getParent() : '',
'uidOwner' => $share->getSharedBy(),
'fileSource' => $share->getNodeId(),
'fileTarget' => $share->getTarget()
diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php
index 01664c6a0a3..cf4dcf7e05f 100644
--- a/lib/private/Share20/Manager.php
+++ b/lib/private/Share20/Manager.php
@@ -11,7 +11,6 @@ use OC\Files\Mount\MoveableMount;
use OC\KnownUser\KnownUserService;
use OC\Share20\Exception\ProviderException;
use OCA\Files_Sharing\AppInfo\Application;
-use OCA\Files_Sharing\SharedStorage;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\File;
use OCP\Files\Folder;
@@ -568,28 +567,6 @@ class Manager implements IManager {
}
/**
- * To make sure we don't get invisible link shares we set the parent
- * of a link if it is a reshare. This is a quick word around
- * until we can properly display multiple link shares in the UI
- *
- * See: https://github.com/owncloud/core/issues/22295
- *
- * FIXME: Remove once multiple link shares can be properly displayed
- *
- * @param IShare $share
- */
- protected function setLinkParent(IShare $share) {
- // No sense in checking if the method is not there.
- if (method_exists($share, 'setParent')) {
- $storage = $share->getNode()->getStorage();
- if ($storage->instanceOfStorage(SharedStorage::class)) {
- /** @var \OCA\Files_Sharing\SharedStorage $storage */
- $share->setParent($storage->getShareId());
- }
- }
- }
-
- /**
* @param File|Folder $path
*/
protected function pathCreateChecks($path) {
@@ -678,7 +655,6 @@ class Manager implements IManager {
} elseif ($share->getShareType() === IShare::TYPE_LINK
|| $share->getShareType() === IShare::TYPE_EMAIL) {
$this->linkCreateChecks($share);
- $this->setLinkParent($share);
$token = $this->generateToken();
// Set the unique token
@@ -1003,33 +979,6 @@ class Manager implements IManager {
$share->setPasswordExpirationTime($expirationTime);
}
-
- /**
- * Delete all the children of this share
- * FIXME: remove once https://github.com/owncloud/core/pull/21660 is in
- *
- * @param IShare $share
- * @return IShare[] List of deleted shares
- */
- protected function deleteChildren(IShare $share) {
- $deletedShares = [];
-
- $provider = $this->factory->getProviderForType($share->getShareType());
-
- foreach ($provider->getChildren($share) as $child) {
- $this->dispatcher->dispatchTyped(new BeforeShareDeletedEvent($child));
-
- $deletedChildren = $this->deleteChildren($child);
- $deletedShares = array_merge($deletedShares, $deletedChildren);
-
- $provider->delete($child);
- $this->dispatcher->dispatchTyped(new ShareDeletedEvent($child));
- $deletedShares[] = $child;
- }
-
- return $deletedShares;
- }
-
/** Promote re-shares into direct shares so that target user keeps access */
protected function promoteReshares(IShare $share): void {
try {
@@ -1134,9 +1083,6 @@ class Manager implements IManager {
$this->dispatcher->dispatchTyped(new BeforeShareDeletedEvent($share));
- // Get all children and delete them as well
- $this->deleteChildren($share);
-
// Do the actual delete
$provider = $this->factory->getProviderForType($share->getShareType());
$provider->delete($share);
diff --git a/lib/private/Share20/Share.php b/lib/private/Share20/Share.php
index 8caabb0898a..ef8296b1ee8 100644
--- a/lib/private/Share20/Share.php
+++ b/lib/private/Share20/Share.php
@@ -60,8 +60,6 @@ class Share implements IShare {
private $sendPasswordByTalk = false;
/** @var string */
private $token;
- /** @var int */
- private $parent;
/** @var string */
private $target;
/** @var \DateTime */
@@ -527,28 +525,6 @@ class Share implements IShare {
}
/**
- * Set the parent of this share
- *
- * @param int $parent
- * @return IShare
- * @deprecated 12.0.0 The new shares do not have parents. This is just here for legacy reasons.
- */
- public function setParent($parent) {
- $this->parent = $parent;
- return $this;
- }
-
- /**
- * Get the parent of this share.
- *
- * @return int
- * @deprecated 12.0.0 The new shares do not have parents. This is just here for legacy reasons.
- */
- public function getParent() {
- return $this->parent;
- }
-
- /**
* @inheritdoc
*/
public function setTarget($target) {
diff --git a/tests/lib/Share20/DefaultShareProviderTest.php b/tests/lib/Share20/DefaultShareProviderTest.php
index eaf17fa1a26..1ba4386f547 100644
--- a/tests/lib/Share20/DefaultShareProviderTest.php
+++ b/tests/lib/Share20/DefaultShareProviderTest.php
@@ -591,94 +591,6 @@ class DefaultShareProviderTest extends \Test\TestCase {
$this->assertEmpty($result);
}
- public function testGetChildren(): void {
- $qb = $this->dbConn->getQueryBuilder();
- $qb->insert('share')
- ->values([
- 'share_type' => $qb->expr()->literal(IShare::TYPE_USER),
- 'share_with' => $qb->expr()->literal('sharedWith'),
- 'uid_owner' => $qb->expr()->literal('shareOwner'),
- 'uid_initiator' => $qb->expr()->literal('sharedBy'),
- 'item_type' => $qb->expr()->literal('file'),
- 'file_source' => $qb->expr()->literal(42),
- 'file_target' => $qb->expr()->literal('myTarget'),
- 'permissions' => $qb->expr()->literal(13),
- ]);
- $qb->execute();
-
- // Get the id
- $id = $qb->getLastInsertId();
-
- $qb = $this->dbConn->getQueryBuilder();
- $qb->insert('share')
- ->values([
- 'share_type' => $qb->expr()->literal(IShare::TYPE_USER),
- 'share_with' => $qb->expr()->literal('user1'),
- 'uid_owner' => $qb->expr()->literal('shareOwner'),
- 'uid_initiator' => $qb->expr()->literal('user2'),
- 'item_type' => $qb->expr()->literal('file'),
- 'file_source' => $qb->expr()->literal(1),
- 'file_target' => $qb->expr()->literal('myTarget1'),
- 'permissions' => $qb->expr()->literal(2),
- 'parent' => $qb->expr()->literal($id),
- ]);
- $qb->execute();
-
- $qb = $this->dbConn->getQueryBuilder();
- $qb->insert('share')
- ->values([
- 'share_type' => $qb->expr()->literal(IShare::TYPE_GROUP),
- 'share_with' => $qb->expr()->literal('group1'),
- 'uid_owner' => $qb->expr()->literal('shareOwner'),
- 'uid_initiator' => $qb->expr()->literal('user3'),
- 'item_type' => $qb->expr()->literal('folder'),
- 'file_source' => $qb->expr()->literal(3),
- 'file_target' => $qb->expr()->literal('myTarget2'),
- 'permissions' => $qb->expr()->literal(4),
- 'parent' => $qb->expr()->literal($id),
- ]);
- $qb->execute();
-
- $ownerPath = $this->createMock(Folder::class);
- $ownerFolder = $this->createMock(Folder::class);
- $ownerFolder->method('getFirstNodeById')->willReturn($ownerPath);
-
- $this->rootFolder
- ->method('getUserFolder')
- ->willReturnMap([
- ['shareOwner', $ownerFolder],
- ]);
-
- $share = $this->createMock(IShare::class);
- $share->method('getId')->willReturn($id);
-
- $children = $this->provider->getChildren($share);
-
- $this->assertCount(2, $children);
-
- //Child1
- $this->assertEquals(IShare::TYPE_USER, $children[0]->getShareType());
- $this->assertEquals('user1', $children[0]->getSharedWith());
- $this->assertEquals('user2', $children[0]->getSharedBy());
- $this->assertEquals('shareOwner', $children[0]->getShareOwner());
- $this->assertEquals($ownerPath, $children[0]->getNode());
- $this->assertEquals(2, $children[0]->getPermissions());
- $this->assertEquals(null, $children[0]->getToken());
- $this->assertEquals(null, $children[0]->getExpirationDate());
- $this->assertEquals('myTarget1', $children[0]->getTarget());
-
- //Child2
- $this->assertEquals(IShare::TYPE_GROUP, $children[1]->getShareType());
- $this->assertEquals('group1', $children[1]->getSharedWith());
- $this->assertEquals('user3', $children[1]->getSharedBy());
- $this->assertEquals('shareOwner', $children[1]->getShareOwner());
- $this->assertEquals($ownerPath, $children[1]->getNode());
- $this->assertEquals(4, $children[1]->getPermissions());
- $this->assertEquals(null, $children[1]->getToken());
- $this->assertEquals(null, $children[1]->getExpirationDate());
- $this->assertEquals('myTarget2', $children[1]->getTarget());
- }
-
public function testCreateUserShare(): void {
$share = new Share($this->rootFolder, $this->userManager);
diff --git a/tests/lib/Share20/LegacyHooksTest.php b/tests/lib/Share20/LegacyHooksTest.php
index 2ce72b3fc1c..750dcec32be 100644
--- a/tests/lib/Share20/LegacyHooksTest.php
+++ b/tests/lib/Share20/LegacyHooksTest.php
@@ -86,7 +86,6 @@ class LegacyHooksTest extends TestCase {
'itemSource' => 1,
'shareType' => IShare::TYPE_USER,
'shareWith' => 'awesomeUser',
- 'itemparent' => null,
'uidOwner' => 'sharedBy',
'fileSource' => 1,
'fileTarget' => 'myTarget',
@@ -127,7 +126,6 @@ class LegacyHooksTest extends TestCase {
'itemSource' => 1,
'shareType' => IShare::TYPE_USER,
'shareWith' => 'awesomeUser',
- 'itemparent' => null,
'uidOwner' => 'sharedBy',
'fileSource' => 1,
'fileTarget' => 'myTarget',
@@ -138,7 +136,6 @@ class LegacyHooksTest extends TestCase {
'itemSource' => 1,
'shareType' => IShare::TYPE_USER,
'shareWith' => 'awesomeUser',
- 'itemparent' => null,
'uidOwner' => 'sharedBy',
'fileSource' => 1,
'fileTarget' => 'myTarget',
@@ -181,7 +178,6 @@ class LegacyHooksTest extends TestCase {
'itemSource' => 1,
'shareType' => IShare::TYPE_USER,
'shareWith' => 'awesomeUser',
- 'itemparent' => null,
'uidOwner' => 'sharedBy',
'fileSource' => 1,
'fileTarget' => 'myTarget',
@@ -193,7 +189,6 @@ class LegacyHooksTest extends TestCase {
'itemSource' => 1,
'shareType' => IShare::TYPE_USER,
'shareWith' => 'awesomeUser',
- 'itemparent' => null,
'uidOwner' => 'sharedBy',
'fileSource' => 1,
'fileTarget' => 'myTarget',
diff --git a/tests/lib/Share20/ManagerTest.php b/tests/lib/Share20/ManagerTest.php
index 7859407651f..8ca7ac2783b 100644
--- a/tests/lib/Share20/ManagerTest.php
+++ b/tests/lib/Share20/ManagerTest.php
@@ -248,11 +248,9 @@ class ManagerTest extends \Test\TestCase {
#[\PHPUnit\Framework\Attributes\DataProvider('dataTestDelete')]
public function testDelete($shareType, $sharedWith): void {
$manager = $this->createManagerMock()
- ->onlyMethods(['getShareById', 'deleteChildren', 'promoteReshares'])
+ ->onlyMethods(['getShareById', 'promoteReshares'])
->getMock();
- $manager->method('deleteChildren')->willReturn([]);
-
$path = $this->createMock(File::class);
$path->method('getId')->willReturn(1);
@@ -265,7 +263,6 @@ class ManagerTest extends \Test\TestCase {
->setNode($path)
->setTarget('myTarget');
- $manager->expects($this->once())->method('deleteChildren')->with($share);
$manager->expects($this->once())->method('promoteReshares')->with($share);
$this->defaultProvider
@@ -290,11 +287,9 @@ class ManagerTest extends \Test\TestCase {
public function testDeleteLazyShare(): void {
$manager = $this->createManagerMock()
- ->onlyMethods(['getShareById', 'deleteChildren', 'promoteReshares'])
+ ->onlyMethods(['getShareById', 'promoteReshares'])
->getMock();
- $manager->method('deleteChildren')->willReturn([]);
-
$share = $this->manager->newShare();
$share->setId(42)
->setProviderId('prov')
@@ -308,7 +303,6 @@ class ManagerTest extends \Test\TestCase {
$this->rootFolder->expects($this->never())->method($this->anything());
- $manager->expects($this->once())->method('deleteChildren')->with($share);
$manager->expects($this->once())->method('promoteReshares')->with($share);
$this->defaultProvider
@@ -331,81 +325,6 @@ class ManagerTest extends \Test\TestCase {
$manager->deleteShare($share);
}
- public function testDeleteNested(): void {
- $manager = $this->createManagerMock()
- ->onlyMethods(['getShareById', 'promoteReshares'])
- ->getMock();
-
- $path = $this->createMock(File::class);
- $path->method('getId')->willReturn(1);
-
- $share1 = $this->manager->newShare();
- $share1->setId(42)
- ->setProviderId('prov')
- ->setShareType(IShare::TYPE_USER)
- ->setSharedWith('sharedWith1')
- ->setSharedBy('sharedBy1')
- ->setNode($path)
- ->setTarget('myTarget1');
-
- $share2 = $this->manager->newShare();
- $share2->setId(43)
- ->setProviderId('prov')
- ->setShareType(IShare::TYPE_GROUP)
- ->setSharedWith('sharedWith2')
- ->setSharedBy('sharedBy2')
- ->setNode($path)
- ->setTarget('myTarget2')
- ->setParent(42);
-
- $share3 = $this->manager->newShare();
- $share3->setId(44)
- ->setProviderId('prov')
- ->setShareType(IShare::TYPE_LINK)
- ->setSharedBy('sharedBy3')
- ->setNode($path)
- ->setTarget('myTarget3')
- ->setParent(43);
-
- $this->defaultProvider
- ->method('getChildren')
- ->willReturnMap([
- [$share1, [$share2]],
- [$share2, [$share3]],
- [$share3, []],
- ]);
-
- $deleteCalls = [
- $share3,
- $share2,
- $share1,
- ];
- $this->defaultProvider->expects($this->exactly(3))
- ->method('delete')
- ->willReturnCallback(function ($share) use (&$deleteCalls): void {
- $expected = array_shift($deleteCalls);
- $this->assertEquals($expected, $share);
- });
-
- $dispatchCalls = [
- [BeforeShareDeletedEvent::class, $share1],
- [BeforeShareDeletedEvent::class, $share2],
- [BeforeShareDeletedEvent::class, $share3],
- [ShareDeletedEvent::class, $share3],
- [ShareDeletedEvent::class, $share2],
- [ShareDeletedEvent::class, $share1],
- ];
- $this->dispatcher->expects($this->exactly(6))
- ->method('dispatchTyped')
- ->willReturnCallback(function ($event) use (&$dispatchCalls): void {
- $expected = array_shift($dispatchCalls);
- $this->assertInstanceOf($expected[0], $event);
- $this->assertEquals($expected[1]->getId(), $event->getShare()->getId());
- });
-
- $manager->deleteShare($share1);
- }
-
public function testDeleteFromSelf(): void {
$manager = $this->createManagerMock()
->onlyMethods(['getShareById'])
@@ -439,53 +358,6 @@ class ManagerTest extends \Test\TestCase {
$manager->deleteFromSelf($share, $recipientId);
}
- public function testDeleteChildren(): void {
- $manager = $this->createManagerMock()
- ->onlyMethods(['deleteShare'])
- ->getMock();
-
- $share = $this->createMock(IShare::class);
- $share->method('getShareType')->willReturn(IShare::TYPE_USER);
-
- $child1 = $this->createMock(IShare::class);
- $child1->method('getShareType')->willReturn(IShare::TYPE_USER);
- $child2 = $this->createMock(IShare::class);
- $child2->method('getShareType')->willReturn(IShare::TYPE_USER);
- $child3 = $this->createMock(IShare::class);
- $child3->method('getShareType')->willReturn(IShare::TYPE_USER);
-
- $shares = [
- $child1,
- $child2,
- $child3,
- ];
-
- $this->defaultProvider
- ->expects($this->exactly(4))
- ->method('getChildren')
- ->willReturnCallback(function ($_share) use ($share, $shares) {
- if ($_share === $share) {
- return $shares;
- }
- return [];
- });
-
- $calls = [
- $child1,
- $child2,
- $child3,
- ];
- $this->defaultProvider->expects($this->exactly(3))
- ->method('delete')
- ->willReturnCallback(function ($share) use (&$calls): void {
- $expected = array_shift($calls);
- $this->assertEquals($expected, $share);
- });
-
- $result = self::invokePrivate($manager, 'deleteChildren', [$share]);
- $this->assertSame($shares, $result);
- }
-
public function testPromoteReshareFile(): void {
$manager = $this->createManagerMock()
->onlyMethods(['updateShare', 'getSharesInFolder', 'generalCreateChecks'])
@@ -2531,7 +2403,6 @@ class ManagerTest extends \Test\TestCase {
'pathCreateChecks',
'validateExpirationDateLink',
'verifyPassword',
- 'setLinkParent',
])
->getMock();
@@ -2577,9 +2448,6 @@ class ManagerTest extends \Test\TestCase {
$manager->expects($this->once())
->method('verifyPassword')
->with('password');
- $manager->expects($this->once())
- ->method('setLinkParent')
- ->with($share);
$this->hasher->expects($this->once())
->method('hash')
@@ -2641,7 +2509,6 @@ class ManagerTest extends \Test\TestCase {
'pathCreateChecks',
'validateExpirationDateLink',
'verifyPassword',
- 'setLinkParent',
])
->getMock();
@@ -2680,8 +2547,6 @@ class ManagerTest extends \Test\TestCase {
->willReturn($share);
$manager->expects($this->once())
->method('verifyPassword');
- $manager->expects($this->once())
- ->method('setLinkParent');
$this->secureRandom->method('generate')
->willReturn('token');