Skip to content

Commit ec3728e

Browse files
committed
test: improve setup in share propagation tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
1 parent 07f0cd3 commit ec3728e

3 files changed

Lines changed: 45 additions & 53 deletions

File tree

apps/files_sharing/tests/EtagPropagationTest.php

Lines changed: 18 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
66
* SPDX-License-Identifier: AGPL-3.0-only
77
*/
8+
89
namespace OCA\Files_Sharing\Tests;
910

1011
use OC\Files\Filesystem;
1112
use OC\Files\View;
1213
use OCP\Constants;
14+
use OCP\Files\FileInfo;
1315
use OCP\Files\IRootFolder;
1416
use OCP\Server;
1517
use OCP\Share\IShare;
@@ -31,16 +33,15 @@ class EtagPropagationTest extends PropagationTestCase {
3133
* "user4" puts the received "inside" folder into "sub1/sub2/inside" (this is to check if it propagates across multiple subfolders)
3234
*/
3335
protected function setUpShares() {
34-
$this->fileIds[self::TEST_FILES_SHARING_API_USER1] = [];
35-
$this->fileIds[self::TEST_FILES_SHARING_API_USER2] = [];
36-
$this->fileIds[self::TEST_FILES_SHARING_API_USER3] = [];
37-
$this->fileIds[self::TEST_FILES_SHARING_API_USER4] = [];
36+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1] = [];
37+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2] = [];
38+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3] = [];
39+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4] = [];
3840

3941
$rootFolder = Server::get(IRootFolder::class);
4042
$shareManager = Server::get(\OCP\Share\IManager::class);
4143

4244
$this->rootView = new View('');
43-
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
4445
$view1 = new View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files');
4546
$view1->mkdir('/sub1/sub2/folder/inside');
4647
$view1->mkdir('/directReshare');
@@ -98,9 +99,9 @@ protected function setUpShares() {
9899
$share = $shareManager->createShare($share);
99100
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2);
100101

101-
$this->fileIds[self::TEST_FILES_SHARING_API_USER1][''] = $view1->getFileInfo('')->getId();
102-
$this->fileIds[self::TEST_FILES_SHARING_API_USER1]['sub1'] = $view1->getFileInfo('sub1')->getId();
103-
$this->fileIds[self::TEST_FILES_SHARING_API_USER1]['sub1/sub2'] = $view1->getFileInfo('sub1/sub2')->getId();
102+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1][''] = $view1->getFileInfo('');
103+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1]['sub1'] = $view1->getFileInfo('sub1');
104+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1]['sub1/sub2'] = $view1->getFileInfo('sub1/sub2');
104105

105106
/*
106107
* User 2
@@ -109,7 +110,6 @@ protected function setUpShares() {
109110
$view2 = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
110111
$view2->mkdir('/sub1/sub2');
111112
$view2->rename('/folder', '/sub1/sub2/folder');
112-
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
113113

114114
$insideInfo = $view2->getFileInfo('/sub1/sub2/folder/inside');
115115
$this->assertInstanceOf('\OC\Files\FileInfo', $insideInfo);
@@ -139,9 +139,9 @@ protected function setUpShares() {
139139
$share = $shareManager->createShare($share);
140140
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER4);
141141

142-
$this->fileIds[self::TEST_FILES_SHARING_API_USER2][''] = $view2->getFileInfo('')->getId();
143-
$this->fileIds[self::TEST_FILES_SHARING_API_USER2]['sub1'] = $view2->getFileInfo('sub1')->getId();
144-
$this->fileIds[self::TEST_FILES_SHARING_API_USER2]['sub1/sub2'] = $view2->getFileInfo('sub1/sub2')->getId();
142+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2][''] = $view2->getFileInfo('');
143+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2]['sub1'] = $view2->getFileInfo('sub1');
144+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2]['sub1/sub2'] = $view2->getFileInfo('sub1/sub2');
145145

146146
/*
147147
* User 3
@@ -150,9 +150,9 @@ protected function setUpShares() {
150150
$view3 = new View('/' . self::TEST_FILES_SHARING_API_USER3 . '/files');
151151
$view3->mkdir('/sub1/sub2');
152152
$view3->rename('/folder', '/sub1/sub2/folder');
153-
$this->fileIds[self::TEST_FILES_SHARING_API_USER3][''] = $view3->getFileInfo('')->getId();
154-
$this->fileIds[self::TEST_FILES_SHARING_API_USER3]['sub1'] = $view3->getFileInfo('sub1')->getId();
155-
$this->fileIds[self::TEST_FILES_SHARING_API_USER3]['sub1/sub2'] = $view3->getFileInfo('sub1/sub2')->getId();
153+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3][''] = $view3->getFileInfo('');
154+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3]['sub1'] = $view3->getFileInfo('sub1');
155+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3]['sub1/sub2'] = $view3->getFileInfo('sub1/sub2');
156156

157157
/*
158158
* User 4
@@ -161,18 +161,9 @@ protected function setUpShares() {
161161
$view4 = new View('/' . self::TEST_FILES_SHARING_API_USER4 . '/files');
162162
$view4->mkdir('/sub1/sub2');
163163
$view4->rename('/inside', '/sub1/sub2/inside');
164-
$this->fileIds[self::TEST_FILES_SHARING_API_USER4][''] = $view4->getFileInfo('')->getId();
165-
$this->fileIds[self::TEST_FILES_SHARING_API_USER4]['sub1'] = $view4->getFileInfo('sub1')->getId();
166-
$this->fileIds[self::TEST_FILES_SHARING_API_USER4]['sub1/sub2'] = $view4->getFileInfo('sub1/sub2')->getId();
167-
168-
foreach ($this->fileIds as $user => $ids) {
169-
$this->loginAsUser($user);
170-
foreach ($ids as $id) {
171-
$path = $this->rootView->getPath($id);
172-
$ls = $this->rootView->getDirectoryContent($path);
173-
$this->fileEtags[$id] = $this->rootView->getFileInfo($path)->getEtag();
174-
}
175-
}
164+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4][''] = $view4->getFileInfo('');
165+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4]['sub1'] = $view4->getFileInfo('sub1');
166+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4]['sub1/sub2'] = $view4->getFileInfo('sub1/sub2');
176167
}
177168

178169
public function testOwnerWritesToShare(): void {

apps/files_sharing/tests/GroupEtagPropagationTest.php

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ class GroupEtagPropagationTest extends PropagationTestCase {
2424
* "user4" (in group 3)
2525
*/
2626
protected function setUpShares() {
27-
$this->fileIds[self::TEST_FILES_SHARING_API_USER1] = [];
28-
$this->fileIds[self::TEST_FILES_SHARING_API_USER2] = [];
29-
$this->fileIds[self::TEST_FILES_SHARING_API_USER3] = [];
30-
$this->fileIds[self::TEST_FILES_SHARING_API_USER4] = [];
27+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1] = [];
28+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2] = [];
29+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3] = [];
30+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4] = [];
3131

3232
$this->rootView = new View('');
3333
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
@@ -42,9 +42,9 @@ protected function setUpShares() {
4242
Constants::PERMISSION_ALL
4343
);
4444
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2);
45-
$this->fileIds[self::TEST_FILES_SHARING_API_USER1][''] = $view1->getFileInfo('')->getId();
46-
$this->fileIds[self::TEST_FILES_SHARING_API_USER1]['test'] = $view1->getFileInfo('test')->getId();
47-
$this->fileIds[self::TEST_FILES_SHARING_API_USER1]['test/sub'] = $view1->getFileInfo('test/sub')->getId();
45+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1][''] = $view1->getFileInfo('');
46+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1]['test'] = $view1->getFileInfo('test');
47+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1]['test/sub'] = $view1->getFileInfo('test/sub');
4848

4949
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
5050
$view2 = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
@@ -66,28 +66,20 @@ protected function setUpShares() {
6666
);
6767
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER4);
6868

69-
$this->fileIds[self::TEST_FILES_SHARING_API_USER2][''] = $view2->getFileInfo('')->getId();
70-
$this->fileIds[self::TEST_FILES_SHARING_API_USER2]['test'] = $view2->getFileInfo('test')->getId();
71-
$this->fileIds[self::TEST_FILES_SHARING_API_USER2]['test/sub'] = $view2->getFileInfo('test/sub')->getId();
69+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2][''] = $view2->getFileInfo('');
70+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2]['test'] = $view2->getFileInfo('test');
71+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2]['test/sub'] = $view2->getFileInfo('test/sub');
7272

7373
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER3);
7474
$view3 = new View('/' . self::TEST_FILES_SHARING_API_USER3 . '/files');
75-
$this->fileIds[self::TEST_FILES_SHARING_API_USER3][''] = $view3->getFileInfo('')->getId();
76-
$this->fileIds[self::TEST_FILES_SHARING_API_USER3]['test'] = $view3->getFileInfo('test')->getId();
77-
$this->fileIds[self::TEST_FILES_SHARING_API_USER3]['test/sub'] = $view3->getFileInfo('test/sub')->getId();
75+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3][''] = $view3->getFileInfo('');
76+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3]['test'] = $view3->getFileInfo('test');
77+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3]['test/sub'] = $view3->getFileInfo('test/sub');
7878

7979
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER4);
8080
$view4 = new View('/' . self::TEST_FILES_SHARING_API_USER4 . '/files');
81-
$this->fileIds[self::TEST_FILES_SHARING_API_USER4][''] = $view4->getFileInfo('')->getId();
82-
$this->fileIds[self::TEST_FILES_SHARING_API_USER4]['sub'] = $view4->getFileInfo('sub')->getId();
83-
84-
foreach ($this->fileIds as $user => $ids) {
85-
$this->loginAsUser($user);
86-
foreach ($ids as $id) {
87-
$path = $this->rootView->getPath($id);
88-
$this->fileEtags[$id] = $this->rootView->getFileInfo($path)->getEtag();
89-
}
90-
}
81+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4][''] = $view4->getFileInfo('');
82+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4]['sub'] = $view4->getFileInfo('sub');
9183
}
9284

9385
public function testGroupReShareRecipientWrites(): void {

apps/files_sharing/tests/PropagationTestCase.php

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
use OC\Files\View;
1111
use OCA\Files_Sharing\Helper;
12+
use OCP\Files\FileInfo;
1213
use OCP\IUserSession;
1314
use OCP\Server;
1415

@@ -17,7 +18,8 @@ abstract class PropagationTestCase extends TestCase {
1718
* @var View
1819
*/
1920
protected $rootView;
20-
protected $fileIds = []; // [$user=>[$path=>$id]]
21+
/** @var array<string, array<string, FileInfo> */
22+
protected array $fileInfos = []; // [$user=>[$path=>$info]]
2123
protected $fileEtags = []; // [$id=>$etag]
2224

2325
public static function setUpBeforeClass(): void {
@@ -28,6 +30,13 @@ public static function setUpBeforeClass(): void {
2830
protected function setUp(): void {
2931
parent::setUp();
3032
$this->setUpShares();
33+
34+
foreach ($this->fileInfos as $infos) {
35+
/** @var FileInfo $info */
36+
foreach ($infos as $info) {
37+
$this->fileEtags[$info->getId()] = $info->getEtag();
38+
}
39+
}
3140
}
3241

3342
protected function tearDown(): void {
@@ -48,7 +57,7 @@ protected function assertEtagsChanged($users, $subPath = '') {
4857
$oldUser = Server::get(IUserSession::class)->getUser();
4958
foreach ($users as $user) {
5059
$this->loginAsUser($user);
51-
$id = $this->fileIds[$user][$subPath];
60+
$id = $this->fileInfos[$user][$subPath]->getId();
5261
$path = $this->rootView->getPath($id);
5362
$etag = $this->rootView->getFileInfo($path)->getEtag();
5463
$this->assertNotEquals($this->fileEtags[$id], $etag, 'Failed asserting that the etag for "' . $subPath . '" of user ' . $user . ' has changed');
@@ -65,7 +74,7 @@ protected function assertEtagsNotChanged($users, $subPath = '') {
6574
$oldUser = Server::get(IUserSession::class)->getUser();
6675
foreach ($users as $user) {
6776
$this->loginAsUser($user);
68-
$id = $this->fileIds[$user][$subPath];
77+
$id = $this->fileInfos[$user][$subPath]->getId();
6978
$path = $this->rootView->getPath($id);
7079
$etag = $this->rootView->getFileInfo($path)->getEtag();
7180
$this->assertEquals($this->fileEtags[$id], $etag, 'Failed asserting that the etag for "' . $subPath . '" of user ' . $user . ' has not changed');

0 commit comments

Comments
 (0)