Skip to content

Commit 1eab80f

Browse files
Merge pull request nextcloud#53235 from nextcloud/test/fix-files-sharing
2 parents b36223c + 3a99b88 commit 1eab80f

5 files changed

Lines changed: 95 additions & 135 deletions

File tree

apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use OCP\Federation\ICloudIdManager;
1212
use OCP\IDBConnection;
1313
use OCP\Server;
14+
use PHPUnit\Framework\MockObject\MockObject;
1415
use Symfony\Component\Console\Input\InputInterface;
1516
use Symfony\Component\Console\Output\OutputInterface;
1617
use Test\TestCase;
@@ -24,20 +25,9 @@
2425
*/
2526
class CleanupRemoteStoragesTest extends TestCase {
2627

27-
/**
28-
* @var CleanupRemoteStorages
29-
*/
30-
private $command;
31-
32-
/**
33-
* @var IDBConnection
34-
*/
35-
private $connection;
36-
37-
/**
38-
* @var ICloudIdManager|\PHPUnit\Framework\MockObject\MockObject
39-
*/
40-
private $cloudIdManager;
28+
protected IDBConnection $connection;
29+
protected CleanupRemoteStorages $command;
30+
private ICloudIdManager&MockObject $cloudIdManager;
4131

4232
private $storages = [
4333
['id' => 'shared::7b4a322b22f9d0047c38d77d471ce3cf', 'share_token' => 'f2c69dad1dc0649f26976fd210fc62e1', 'remote' => 'https://hostname.tld/owncloud1', 'user' => 'user1'],
@@ -77,7 +67,7 @@ protected function setUp(): void {
7767
foreach ($this->storages as &$storage) {
7868
if (isset($storage['id'])) {
7969
$storageQuery->setParameter('id', $storage['id']);
80-
$storageQuery->execute();
70+
$storageQuery->executeStatement();
8171
$storage['numeric_id'] = $storageQuery->getLastInsertId();
8272
}
8373

@@ -121,13 +111,13 @@ protected function tearDown(): void {
121111
foreach ($this->storages as $storage) {
122112
if (isset($storage['id'])) {
123113
$storageQuery->setParameter('id', $storage['id']);
124-
$storageQuery->execute();
114+
$storageQuery->executeStatement();
125115
}
126116

127117
if (isset($storage['share_token'])) {
128118
$shareExternalQuery->setParameter('share_token', $storage['share_token']);
129119
$shareExternalQuery->setParameter('remote', $storage['remote']);
130-
$shareExternalQuery->execute();
120+
$shareExternalQuery->executeStatement();
131121
}
132122
}
133123

@@ -174,14 +164,13 @@ public function testCleanup(): void {
174164
->getMock();
175165

176166
// parent folder, `files`, ´test` and `welcome.txt` => 4 elements
177-
167+
$outputCalls = [];
178168
$output
179169
->expects($this->any())
180170
->method('writeln')
181-
->withConsecutive(
182-
['5 remote storage(s) need(s) to be checked'],
183-
['5 remote share(s) exist'],
184-
);
171+
->willReturnCallback(function (string $text) use (&$outputCalls) {
172+
$outputCalls[] = $text;
173+
});
185174

186175
$this->cloudIdManager
187176
->expects($this->any())
@@ -206,5 +195,10 @@ public function testCleanup(): void {
206195
$this->assertFalse($this->doesStorageExist($this->storages[3]['numeric_id']));
207196
$this->assertTrue($this->doesStorageExist($this->storages[4]['numeric_id']));
208197
$this->assertFalse($this->doesStorageExist($this->storages[5]['numeric_id']));
198+
199+
$this->assertEquals([
200+
'5 remote storage(s) need(s) to be checked',
201+
'5 remote share(s) exist',
202+
], array_slice($outputCalls, 0, 2));
209203
}
210204
}

apps/files_sharing/tests/Controller/ShareAPIControllerTest.php

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1675,8 +1675,11 @@ public function testCanAccessRoomShare(bool $expected, IShare $share, bool $help
16751675
->with('spreed')
16761676
->willReturn(true);
16771677

1678-
$helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
1679-
->setMethods(['canAccessShare'])
1678+
// This is not possible anymore with PHPUnit 10+
1679+
// as `setMethods` was removed and now real reflection is used, thus the class needs to exist.
1680+
// $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
1681+
$helper = $this->getMockBuilder(\stdClass::class)
1682+
->addMethods(['canAccessShare'])
16801683
->getMock();
16811684
$helper->method('canAccessShare')
16821685
->with($share, $this->currentUser)
@@ -2492,8 +2495,11 @@ public function testCreateShareRoom(): void {
24922495
->with('spreed')
24932496
->willReturn(true);
24942497

2495-
$helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
2496-
->setMethods(['createShare'])
2498+
// This is not possible anymore with PHPUnit 10+
2499+
// as `setMethods` was removed and now real reflection is used, thus the class needs to exist.
2500+
// $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
2501+
$helper = $this->getMockBuilder(\stdClass::class)
2502+
->addMethods(['createShare'])
24972503
->getMock();
24982504
$helper->method('createShare')
24992505
->with(
@@ -2598,7 +2604,10 @@ public function testCreateShareRoomHelperThrowException(): void {
25982604
->with('spreed')
25992605
->willReturn(true);
26002606

2601-
$helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
2607+
// This is not possible anymore with PHPUnit 10+
2608+
// as `setMethods` was removed and now real reflection is used, thus the class needs to exist.
2609+
// $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
2610+
$helper = $this->getMockBuilder(\stdClass::class)
26022611
->addMethods(['createShare'])
26032612
->getMock();
26042613
$helper->method('createShare')
@@ -5093,8 +5102,11 @@ public function testFormatRoomShare(array $expects, IShare $share, bool $helperA
50935102
->with('spreed')
50945103
->willReturn(true);
50955104

5096-
$helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
5097-
->setMethods(['formatShare', 'canAccessShare'])
5105+
// This is not possible anymore with PHPUnit 10+
5106+
// as `setMethods` was removed and now real reflection is used, thus the class needs to exist.
5107+
// $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
5108+
$helper = $this->getMockBuilder(\stdClass::class)
5109+
->addMethods(['formatShare', 'canAccessShare'])
50985110
->getMock();
50995111
$helper->method('formatShare')
51005112
->with($share)

apps/files_sharing/tests/Controller/ShareInfoControllerTest.php

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,25 @@
1515
use OCP\Share\Exceptions\ShareNotFound;
1616
use OCP\Share\IManager as ShareManager;
1717
use OCP\Share\IShare;
18+
use PHPUnit\Framework\MockObject\MockObject;
1819
use Test\TestCase;
1920

2021
class ShareInfoControllerTest extends TestCase {
2122

22-
/** @var ShareInfoController */
23-
private $controller;
24-
25-
/** @var ShareManager|\PHPUnit\Framework\MockObject\MockObject */
26-
private $shareManager;
23+
protected ShareInfoController $controller;
24+
protected ShareManager&MockObject $shareManager;
2725

2826

2927
protected function setUp(): void {
3028
parent::setUp();
3129

3230
$this->shareManager = $this->createMock(ShareManager::class);
3331

34-
$this->controller = $this->getMockBuilder(ShareInfoController::class)
35-
->setConstructorArgs([
36-
'files_sharing',
37-
$this->createMock(IRequest::class),
38-
$this->shareManager
39-
])
40-
->setMethods(['addROWrapper'])
41-
->getMock();
32+
$this->controller = new ShareInfoController(
33+
'files_sharing',
34+
$this->createMock(IRequest::class),
35+
$this->shareManager
36+
);
4237
}
4338

4439
public function testNoShare(): void {

apps/files_sharing/tests/External/ManagerTest.php

Lines changed: 21 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
use OCP\OCS\IDiscoveryService;
3434
use OCP\Server;
3535
use OCP\Share\IShare;
36+
use PHPUnit\Framework\MockObject\MockObject;
3637
use Psr\Log\LoggerInterface;
3738
use Test\Traits\UserTrait;
3839

@@ -46,42 +47,19 @@
4647
class ManagerTest extends TestCase {
4748
use UserTrait;
4849

49-
/** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
50-
protected $contactsManager;
51-
52-
/** @var Manager|\PHPUnit\Framework\MockObject\MockObject * */
53-
private $manager;
54-
55-
/** @var \OC\Files\Mount\Manager */
56-
private $mountManager;
57-
58-
/** @var IClientService|\PHPUnit\Framework\MockObject\MockObject */
59-
private $clientService;
60-
61-
/** @var ICloudFederationProviderManager|\PHPUnit\Framework\MockObject\MockObject */
62-
private $cloudFederationProviderManager;
63-
64-
/** @var ICloudFederationFactory|\PHPUnit\Framework\MockObject\MockObject */
65-
private $cloudFederationFactory;
66-
67-
/** @var \PHPUnit\Framework\MockObject\MockObject|IGroupManager */
68-
private $groupManager;
69-
70-
/** @var \PHPUnit\Framework\MockObject\MockObject|IUserManager */
71-
private $userManager;
72-
73-
/** @var LoggerInterface */
74-
private $logger;
75-
76-
private $uid;
77-
78-
/**
79-
* @var IUser
80-
*/
81-
private $user;
82-
private $testMountProvider;
83-
/** @var IEventDispatcher|\PHPUnit\Framework\MockObject\MockObject */
84-
private $eventDispatcher;
50+
protected string $uid;
51+
protected IUser $user;
52+
protected MountProvider $testMountProvider;
53+
protected IEventDispatcher&MockObject $eventDispatcher;
54+
protected LoggerInterface&MockObject $logger;
55+
protected \OC\Files\Mount\Manager $mountManager;
56+
protected IManager&MockObject $contactsManager;
57+
protected Manager&MockObject $manager;
58+
protected IClientService&MockObject $clientService;
59+
protected ICloudFederationProviderManager&MockObject $cloudFederationProviderManager;
60+
protected ICloudFederationFactory&MockObject $cloudFederationFactory;
61+
protected IGroupManager&MockObject $groupManager;
62+
protected IUserManager&MockObject $userManager;
8563

8664
protected function setUp(): void {
8765
parent::setUp();
@@ -169,7 +147,7 @@ private function createManagerForUser($userId) {
169147
$this->eventDispatcher,
170148
$this->logger,
171149
]
172-
)->setMethods(['tryOCMEndPoint'])->getMock();
150+
)->onlyMethods(['tryOCMEndPoint'])->getMock();
173151
}
174152

175153
private function setupMounts() {
@@ -222,14 +200,12 @@ public function doTestAddShare($shareData1, $isGroup = false) {
222200
if ($isGroup) {
223201
$this->manager->expects($this->never())->method('tryOCMEndPoint');
224202
} else {
225-
$this->manager->method('tryOCMEndPoint')
226-
->withConsecutive(
227-
['http://localhost', 'token1', '2342', 'accept'],
228-
['http://localhost', 'token3', '2342', 'decline'],
229-
)->willReturnOnConsecutiveCalls(
230-
false,
231-
false,
232-
);
203+
$this->manager->expects(self::atLeast(2))
204+
->method('tryOCMEndPoint')
205+
->willReturnMap([
206+
['http://localhost', 'token1', '2342', 'accept', false],
207+
['http://localhost', 'token3', '2342', 'decline', false],
208+
]);
233209
}
234210

235211
// Add a share for "user"

0 commit comments

Comments
 (0)