Skip to content

Commit 56f7823

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

3 files changed

Lines changed: 44 additions & 53 deletions

File tree

apps/files_sharing/tests/EtagPropagationTest.php

Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
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;
@@ -31,16 +32,15 @@ class EtagPropagationTest extends PropagationTestCase {
3132
* "user4" puts the received "inside" folder into "sub1/sub2/inside" (this is to check if it propagates across multiple subfolders)
3233
*/
3334
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] = [];
35+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1] = [];
36+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2] = [];
37+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3] = [];
38+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4] = [];
3839

3940
$rootFolder = Server::get(IRootFolder::class);
4041
$shareManager = Server::get(\OCP\Share\IManager::class);
4142

4243
$this->rootView = new View('');
43-
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
4444
$view1 = new View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files');
4545
$view1->mkdir('/sub1/sub2/folder/inside');
4646
$view1->mkdir('/directReshare');
@@ -98,9 +98,9 @@ protected function setUpShares() {
9898
$share = $shareManager->createShare($share);
9999
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2);
100100

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();
101+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1][''] = $view1->getFileInfo('');
102+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1]['sub1'] = $view1->getFileInfo('sub1');
103+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1]['sub1/sub2'] = $view1->getFileInfo('sub1/sub2');
104104

105105
/*
106106
* User 2
@@ -109,7 +109,6 @@ protected function setUpShares() {
109109
$view2 = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
110110
$view2->mkdir('/sub1/sub2');
111111
$view2->rename('/folder', '/sub1/sub2/folder');
112-
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
113112

114113
$insideInfo = $view2->getFileInfo('/sub1/sub2/folder/inside');
115114
$this->assertInstanceOf('\OC\Files\FileInfo', $insideInfo);
@@ -139,9 +138,9 @@ protected function setUpShares() {
139138
$share = $shareManager->createShare($share);
140139
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER4);
141140

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();
141+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2][''] = $view2->getFileInfo('');
142+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2]['sub1'] = $view2->getFileInfo('sub1');
143+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2]['sub1/sub2'] = $view2->getFileInfo('sub1/sub2');
145144

146145
/*
147146
* User 3
@@ -150,9 +149,9 @@ protected function setUpShares() {
150149
$view3 = new View('/' . self::TEST_FILES_SHARING_API_USER3 . '/files');
151150
$view3->mkdir('/sub1/sub2');
152151
$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();
152+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3][''] = $view3->getFileInfo('');
153+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3]['sub1'] = $view3->getFileInfo('sub1');
154+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3]['sub1/sub2'] = $view3->getFileInfo('sub1/sub2');
156155

157156
/*
158157
* User 4
@@ -161,18 +160,9 @@ protected function setUpShares() {
161160
$view4 = new View('/' . self::TEST_FILES_SHARING_API_USER4 . '/files');
162161
$view4->mkdir('/sub1/sub2');
163162
$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-
}
163+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4][''] = $view4->getFileInfo('');
164+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4]['sub1'] = $view4->getFileInfo('sub1');
165+
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4]['sub1/sub2'] = $view4->getFileInfo('sub1/sub2');
176166
}
177167

178168
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)