]> source.dussan.org Git - nextcloud-server.git/commitdiff
test(files_sharing): Test if recent files result use actual share target name 40495/head
authorJulius Härtl <jus@bitgrid.net>
Wed, 18 Oct 2023 12:29:14 +0000 (14:29 +0200)
committerJulius Härtl <jus@bitgrid.net>
Wed, 18 Oct 2023 12:31:27 +0000 (14:31 +0200)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
apps/files_sharing/tests/CacheTest.php

index f4f64bc6a328e8e293d2f054ee008f35d8e6ea79..50e5433d10f5670da7cb5a5d45a9312059bd2ea8 100644 (file)
@@ -88,6 +88,7 @@ class CacheTest extends TestCase {
                $this->view->file_put_contents('container/shareddir/subdir/another.txt', $textData);
                $this->view->file_put_contents('container/shareddir/subdir/another too.txt', $textData);
                $this->view->file_put_contents('container/shareddir/subdir/not a text file.xml', '<xml></xml>');
+               $this->view->file_put_contents('simplefile.txt', $textData);
 
                [$this->ownerStorage,] = $this->view->resolvePath('');
                $this->ownerCache = $this->ownerStorage->getCache();
@@ -302,6 +303,42 @@ class CacheTest extends TestCase {
                );
        }
 
+       /**
+        * This covers a bug where the share owners name was propagated
+        * to the recipient in the recent files API response where the
+        * share recipient has a different target set
+        *
+        * https://github.com/nextcloud/server/issues/39879
+        */
+       public function testShareRenameOriginalFileInRecentResults() {
+               self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
+
+               $rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1);
+               $node = $rootFolder->get('simplefile.txt');
+               $share = $this->shareManager->newShare();
+               $share->setNode($node)
+                       ->setShareType(IShare::TYPE_USER)
+                       ->setSharedWith(self::TEST_FILES_SHARING_API_USER3)
+                       ->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
+                       ->setPermissions(\OCP\Constants::PERMISSION_READ);
+               $share = $this->shareManager->createShare($share);
+               $share->setStatus(IShare::STATUS_ACCEPTED);
+               $this->shareManager->updateShare($share);
+
+               self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
+               $node->move(self::TEST_FILES_SHARING_API_USER1 . '/files/simplefile2.txt');
+
+               self::loginHelper(self::TEST_FILES_SHARING_API_USER3);
+               $rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER3);
+               $recents = $rootFolder->getRecent(10);
+               self::assertEquals([
+                       'welcome.txt',
+                       'simplefile.txt'
+               ], array_map(function($node) {
+                       return $node->getFileInfo()['name'];
+               }, $recents));
+       }
+
        public function testGetFolderContentsWhenSubSubdirShared() {
                self::loginHelper(self::TEST_FILES_SHARING_API_USER1);