Skip to content

Commit 829f4a1

Browse files
committed
update tests
Signed-off-by: Robin Appelman <[email protected]>
1 parent 78050ec commit 829f4a1

File tree

1 file changed

+56
-4
lines changed

1 file changed

+56
-4
lines changed

apps/files_versions/tests/VersioningTest.php

Lines changed: 56 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737

3838
use OC\Files\Storage\Temporary;
3939
use OCP\IConfig;
40+
use OCP\IUser;
4041
use OCP\Share\IShare;
4142

4243
/**
@@ -55,6 +56,8 @@ class VersioningTest extends \Test\TestCase {
5556
* @var \OC\Files\View
5657
*/
5758
private $rootView;
59+
private $user1;
60+
private $user2;
5861

5962
public static function setUpBeforeClass(): void {
6063
parent::setUpBeforeClass();
@@ -102,6 +105,13 @@ protected function setUp(): void {
102105
if (!$this->rootView->file_exists(self::USERS_VERSIONS_ROOT)) {
103106
$this->rootView->mkdir(self::USERS_VERSIONS_ROOT);
104107
}
108+
109+
$this->user1 = $this->createMock(IUser::class);
110+
$this->user1->method('getUID')
111+
->willReturn(self::TEST_VERSIONS_USER);
112+
$this->user2 = $this->createMock(IUser::class);
113+
$this->user2->method('getUID')
114+
->willReturn(self::TEST_VERSIONS_USER2);
105115
}
106116

107117
protected function tearDown(): void {
@@ -130,7 +140,7 @@ public function testGetExpireList($versions, $sizeOfAllDeletedFiles) {
130140
$startTime = 5000000;
131141

132142
$testClass = new VersionStorageToTest();
133-
list($deleted, $size) = $testClass->callProtectedGetExpireList($startTime, $versions);
143+
[$deleted, $size] = $testClass->callProtectedGetExpireList($startTime, $versions);
134144

135145
// we should have deleted 16 files each of the size 1
136146
$this->assertEquals($sizeOfAllDeletedFiles, $size);
@@ -670,14 +680,56 @@ public function testRestoreNoPermission() {
670680

671681
$firstVersion = current($versions);
672682

673-
$this->assertFalse(\OCA\Files_Versions\Storage::rollback('folder/test.txt', $firstVersion['version']), 'Revert did not happen');
683+
$this->assertFalse(\OCA\Files_Versions\Storage::rollback('folder/test.txt', $firstVersion['version'], $this->user2), 'Revert did not happen');
674684

675685
$this->loginAsUser(self::TEST_VERSIONS_USER);
676686

677687
\OC::$server->getShareManager()->deleteShare($share);
678688
$this->assertEquals('test file', $file->getContent(), 'File content has not changed');
679689
}
680690

691+
public function testRestoreMovedShare() {
692+
$this->loginAsUser(self::TEST_VERSIONS_USER);
693+
694+
$userHome = \OC::$server->getUserFolder(self::TEST_VERSIONS_USER);
695+
$node = $userHome->newFolder('folder');
696+
$file = $node->newFile('test.txt');
697+
698+
$userHome2 = \OC::$server->getUserFolder(self::TEST_VERSIONS_USER2);
699+
$userHome2->newFolder('subfolder');
700+
701+
$share = \OC::$server->getShareManager()->newShare();
702+
$share->setNode($node)
703+
->setShareType(\OCP\Share::SHARE_TYPE_USER)
704+
->setSharedBy(self::TEST_VERSIONS_USER)
705+
->setSharedWith(self::TEST_VERSIONS_USER2)
706+
->setPermissions(\OCP\Constants::PERMISSION_ALL);
707+
$share = \OC::$server->getShareManager()->createShare($share);
708+
$shareManager = \OC::$server->getShareManager();
709+
$shareManager->acceptShare($share, self::TEST_VERSIONS_USER2);
710+
711+
$share->setTarget("subfolder/folder");
712+
$shareManager->moveShare($share, self::TEST_VERSIONS_USER2);
713+
714+
$versions = $this->createAndCheckVersions(
715+
\OC\Files\Filesystem::getView(),
716+
'folder/test.txt'
717+
);
718+
719+
$file->putContent('test file');
720+
721+
$this->loginAsUser(self::TEST_VERSIONS_USER2);
722+
723+
$firstVersion = current($versions);
724+
725+
$this->assertTrue(\OCA\Files_Versions\Storage::rollback('folder/test.txt', $firstVersion['version'], $this->user1));
726+
727+
$this->loginAsUser(self::TEST_VERSIONS_USER);
728+
729+
\OC::$server->getShareManager()->deleteShare($share);
730+
$this->assertEquals('version 2', $file->getContent(), 'File content has not changed');
731+
}
732+
681733
/**
682734
* @param string $hookName name of hook called
683735
* @param string $params variable to receive parameters provided by hook
@@ -738,7 +790,7 @@ private function doTestRestore() {
738790
$params = array();
739791
$this->connectMockHooks('rollback', $params);
740792

741-
$this->assertTrue(\OCA\Files_Versions\Storage::rollback('sub/test.txt', $t2));
793+
$this->assertTrue(\OCA\Files_Versions\Storage::rollback('sub/test.txt', $t2, $this->user1));
742794
$expectedParams = array(
743795
'path' => '/sub/test.txt',
744796
);
@@ -873,7 +925,7 @@ private function createAndCheckVersions(\OC\Files\View $view, $path) {
873925
$this->loginAsUser(self::TEST_VERSIONS_USER);
874926

875927
// need to scan for the versions
876-
list($rootStorage,) = $this->rootView->resolvePath(self::TEST_VERSIONS_USER . '/files_versions');
928+
[$rootStorage,] = $this->rootView->resolvePath(self::TEST_VERSIONS_USER . '/files_versions');
877929
$rootStorage->getScanner()->scan('files_versions');
878930

879931
$versions = \OCA\Files_Versions\Storage::getVersions(

0 commit comments

Comments
 (0)