|
10 | 10 | use OCA\Files_Sharing\SharedStorage; |
11 | 11 | use OCA\Files_Trashbin\AppInfo\Application; |
12 | 12 | use OCP\AppFramework\Bootstrap\IBootContext; |
| 13 | +use OCP\Constants; |
13 | 14 | use OCP\Files\NotFoundException; |
14 | 15 | use OCP\Share\IShare; |
15 | 16 |
|
@@ -579,4 +580,30 @@ public function testInitWithNotFoundSource() { |
579 | 580 | $this->assertInstanceOf(\OC\Files\Storage\FailedStorage::class, $storage->getSourceStorage()); |
580 | 581 | $this->assertInstanceOf(\OC\Files\Cache\FailedCache::class, $storage->getCache()); |
581 | 582 | } |
| 583 | + |
| 584 | + public function testCopyPermissions(): void { |
| 585 | + self::loginHelper(self::TEST_FILES_SHARING_API_USER1); |
| 586 | + |
| 587 | + $share = $this->share( |
| 588 | + IShare::TYPE_USER, |
| 589 | + $this->filename, |
| 590 | + self::TEST_FILES_SHARING_API_USER1, |
| 591 | + self::TEST_FILES_SHARING_API_USER2, |
| 592 | + Constants::PERMISSION_ALL - Constants::PERMISSION_CREATE - Constants::PERMISSION_DELETE |
| 593 | + ); |
| 594 | + |
| 595 | + self::loginHelper(self::TEST_FILES_SHARING_API_USER2); |
| 596 | + $view = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); |
| 597 | + $this->assertTrue($view->file_exists($this->filename)); |
| 598 | + |
| 599 | + $this->assertTrue($view->copy($this->filename, '/target.txt')); |
| 600 | + |
| 601 | + $this->assertTrue($view->file_exists('/target.txt')); |
| 602 | + |
| 603 | + $info = $view->getFileInfo('/target.txt'); |
| 604 | + $this->assertEquals(Constants::PERMISSION_ALL - Constants::PERMISSION_CREATE, $info->getPermissions()); |
| 605 | + |
| 606 | + $this->view->unlink($this->filename); |
| 607 | + $this->shareManager->deleteShare($share); |
| 608 | + } |
582 | 609 | } |
0 commit comments