mirror of
https://github.com/nextcloud/server.git
synced 2026-06-13 10:40:40 -04:00
test: improve setup in share propagation tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
parent
7db238319f
commit
2ee8f5c374
3 changed files with 43 additions and 53 deletions
|
|
@ -32,16 +32,15 @@ class EtagPropagationTest extends PropagationTestCase {
|
|||
* "user4" puts the received "inside" folder into "sub1/sub2/inside" (this is to check if it propagates across multiple subfolders)
|
||||
*/
|
||||
protected function setUpShares() {
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER1] = [];
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER2] = [];
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER3] = [];
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER4] = [];
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1] = [];
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2] = [];
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3] = [];
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4] = [];
|
||||
|
||||
$rootFolder = Server::get(IRootFolder::class);
|
||||
$shareManager = Server::get(\OCP\Share\IManager::class);
|
||||
|
||||
$this->rootView = new View('');
|
||||
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
|
||||
$view1 = new View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files');
|
||||
$view1->mkdir('/sub1/sub2/folder/inside');
|
||||
$view1->mkdir('/directReshare');
|
||||
|
|
@ -99,9 +98,9 @@ class EtagPropagationTest extends PropagationTestCase {
|
|||
$share = $shareManager->createShare($share);
|
||||
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2);
|
||||
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER1][''] = $view1->getFileInfo('')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER1]['sub1'] = $view1->getFileInfo('sub1')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER1]['sub1/sub2'] = $view1->getFileInfo('sub1/sub2')->getId();
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1][''] = $view1->getFileInfo('');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1]['sub1'] = $view1->getFileInfo('sub1');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1]['sub1/sub2'] = $view1->getFileInfo('sub1/sub2');
|
||||
|
||||
/*
|
||||
* User 2
|
||||
|
|
@ -110,7 +109,6 @@ class EtagPropagationTest extends PropagationTestCase {
|
|||
$view2 = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
|
||||
$view2->mkdir('/sub1/sub2');
|
||||
$view2->rename('/folder', '/sub1/sub2/folder');
|
||||
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
|
||||
|
||||
$insideInfo = $view2->getFileInfo('/sub1/sub2/folder/inside');
|
||||
$this->assertInstanceOf('\OC\Files\FileInfo', $insideInfo);
|
||||
|
|
@ -140,9 +138,9 @@ class EtagPropagationTest extends PropagationTestCase {
|
|||
$share = $shareManager->createShare($share);
|
||||
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER4);
|
||||
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER2][''] = $view2->getFileInfo('')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER2]['sub1'] = $view2->getFileInfo('sub1')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER2]['sub1/sub2'] = $view2->getFileInfo('sub1/sub2')->getId();
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2][''] = $view2->getFileInfo('');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2]['sub1'] = $view2->getFileInfo('sub1');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2]['sub1/sub2'] = $view2->getFileInfo('sub1/sub2');
|
||||
|
||||
/*
|
||||
* User 3
|
||||
|
|
@ -151,9 +149,9 @@ class EtagPropagationTest extends PropagationTestCase {
|
|||
$view3 = new View('/' . self::TEST_FILES_SHARING_API_USER3 . '/files');
|
||||
$view3->mkdir('/sub1/sub2');
|
||||
$view3->rename('/folder', '/sub1/sub2/folder');
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER3][''] = $view3->getFileInfo('')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER3]['sub1'] = $view3->getFileInfo('sub1')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER3]['sub1/sub2'] = $view3->getFileInfo('sub1/sub2')->getId();
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3][''] = $view3->getFileInfo('');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3]['sub1'] = $view3->getFileInfo('sub1');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3]['sub1/sub2'] = $view3->getFileInfo('sub1/sub2');
|
||||
|
||||
/*
|
||||
* User 4
|
||||
|
|
@ -162,18 +160,9 @@ class EtagPropagationTest extends PropagationTestCase {
|
|||
$view4 = new View('/' . self::TEST_FILES_SHARING_API_USER4 . '/files');
|
||||
$view4->mkdir('/sub1/sub2');
|
||||
$view4->rename('/inside', '/sub1/sub2/inside');
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER4][''] = $view4->getFileInfo('')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER4]['sub1'] = $view4->getFileInfo('sub1')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER4]['sub1/sub2'] = $view4->getFileInfo('sub1/sub2')->getId();
|
||||
|
||||
foreach ($this->fileIds as $user => $ids) {
|
||||
$this->loginAsUser($user);
|
||||
foreach ($ids as $id) {
|
||||
$path = $this->rootView->getPath($id);
|
||||
$ls = $this->rootView->getDirectoryContent($path);
|
||||
$this->fileEtags[$id] = $this->rootView->getFileInfo($path)->getEtag();
|
||||
}
|
||||
}
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4][''] = $view4->getFileInfo('');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4]['sub1'] = $view4->getFileInfo('sub1');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4]['sub1/sub2'] = $view4->getFileInfo('sub1/sub2');
|
||||
}
|
||||
|
||||
public function testOwnerWritesToShare(): void {
|
||||
|
|
|
|||
|
|
@ -25,10 +25,10 @@ class GroupEtagPropagationTest extends PropagationTestCase {
|
|||
* "user4" (in group 3)
|
||||
*/
|
||||
protected function setUpShares() {
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER1] = [];
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER2] = [];
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER3] = [];
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER4] = [];
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1] = [];
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2] = [];
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3] = [];
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4] = [];
|
||||
|
||||
$this->rootView = new View('');
|
||||
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
|
||||
|
|
@ -43,9 +43,9 @@ class GroupEtagPropagationTest extends PropagationTestCase {
|
|||
Constants::PERMISSION_ALL
|
||||
);
|
||||
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER2);
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER1][''] = $view1->getFileInfo('')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER1]['test'] = $view1->getFileInfo('test')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER1]['test/sub'] = $view1->getFileInfo('test/sub')->getId();
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1][''] = $view1->getFileInfo('');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1]['test'] = $view1->getFileInfo('test');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER1]['test/sub'] = $view1->getFileInfo('test/sub');
|
||||
|
||||
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
|
||||
$view2 = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
|
||||
|
|
@ -67,28 +67,20 @@ class GroupEtagPropagationTest extends PropagationTestCase {
|
|||
);
|
||||
$this->shareManager->acceptShare($share, self::TEST_FILES_SHARING_API_USER4);
|
||||
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER2][''] = $view2->getFileInfo('')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER2]['test'] = $view2->getFileInfo('test')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER2]['test/sub'] = $view2->getFileInfo('test/sub')->getId();
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2][''] = $view2->getFileInfo('');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2]['test'] = $view2->getFileInfo('test');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER2]['test/sub'] = $view2->getFileInfo('test/sub');
|
||||
|
||||
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER3);
|
||||
$view3 = new View('/' . self::TEST_FILES_SHARING_API_USER3 . '/files');
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER3][''] = $view3->getFileInfo('')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER3]['test'] = $view3->getFileInfo('test')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER3]['test/sub'] = $view3->getFileInfo('test/sub')->getId();
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3][''] = $view3->getFileInfo('');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3]['test'] = $view3->getFileInfo('test');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER3]['test/sub'] = $view3->getFileInfo('test/sub');
|
||||
|
||||
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER4);
|
||||
$view4 = new View('/' . self::TEST_FILES_SHARING_API_USER4 . '/files');
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER4][''] = $view4->getFileInfo('')->getId();
|
||||
$this->fileIds[self::TEST_FILES_SHARING_API_USER4]['sub'] = $view4->getFileInfo('sub')->getId();
|
||||
|
||||
foreach ($this->fileIds as $user => $ids) {
|
||||
$this->loginAsUser($user);
|
||||
foreach ($ids as $id) {
|
||||
$path = $this->rootView->getPath($id);
|
||||
$this->fileEtags[$id] = $this->rootView->getFileInfo($path)->getEtag();
|
||||
}
|
||||
}
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4][''] = $view4->getFileInfo('');
|
||||
$this->fileInfos[self::TEST_FILES_SHARING_API_USER4]['sub'] = $view4->getFileInfo('sub');
|
||||
}
|
||||
|
||||
public function testGroupReShareRecipientWrites(): void {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ namespace OCA\Files_Sharing\Tests;
|
|||
|
||||
use OC\Files\View;
|
||||
use OCA\Files_Sharing\Helper;
|
||||
use OCP\Files\FileInfo;
|
||||
use OCP\IUserSession;
|
||||
use OCP\Server;
|
||||
|
||||
|
|
@ -18,7 +19,8 @@ abstract class PropagationTestCase extends TestCase {
|
|||
* @var View
|
||||
*/
|
||||
protected $rootView;
|
||||
protected $fileIds = []; // [$user=>[$path=>$id]]
|
||||
/** @var array<string, array<string, FileInfo> */
|
||||
protected array $fileInfos = []; // [$user=>[$path=>$info]]
|
||||
protected $fileEtags = []; // [$id=>$etag]
|
||||
|
||||
public static function setUpBeforeClass(): void {
|
||||
|
|
@ -29,6 +31,13 @@ abstract class PropagationTestCase extends TestCase {
|
|||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
$this->setUpShares();
|
||||
|
||||
foreach ($this->fileInfos as $infos) {
|
||||
/** @var FileInfo $info */
|
||||
foreach ($infos as $info) {
|
||||
$this->fileEtags[$info->getId()] = $info->getEtag();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function tearDown(): void {
|
||||
|
|
@ -49,7 +58,7 @@ abstract class PropagationTestCase extends TestCase {
|
|||
$oldUser = Server::get(IUserSession::class)->getUser();
|
||||
foreach ($users as $user) {
|
||||
$this->loginAsUser($user);
|
||||
$id = $this->fileIds[$user][$subPath];
|
||||
$id = $this->fileInfos[$user][$subPath]->getId();
|
||||
$path = $this->rootView->getPath($id);
|
||||
$etag = $this->rootView->getFileInfo($path)->getEtag();
|
||||
$this->assertNotEquals($this->fileEtags[$id], $etag, 'Failed asserting that the etag for "' . $subPath . '" of user ' . $user . ' has changed');
|
||||
|
|
@ -66,7 +75,7 @@ abstract class PropagationTestCase extends TestCase {
|
|||
$oldUser = Server::get(IUserSession::class)->getUser();
|
||||
foreach ($users as $user) {
|
||||
$this->loginAsUser($user);
|
||||
$id = $this->fileIds[$user][$subPath];
|
||||
$id = $this->fileInfos[$user][$subPath]->getId();
|
||||
$path = $this->rootView->getPath($id);
|
||||
$etag = $this->rootView->getFileInfo($path)->getEtag();
|
||||
$this->assertEquals($this->fileEtags[$id], $etag, 'Failed asserting that the etag for "' . $subPath . '" of user ' . $user . ' has not changed');
|
||||
|
|
|
|||
Loading…
Reference in a new issue