|
|
@@ -995,6 +995,7 @@ class ShareAPIControllerTest extends TestCase { |
|
|
|
->setSharedBy('initiator') |
|
|
|
->setShareOwner('currentUser') |
|
|
|
->setPermissions(\OCP\Constants::PERMISSION_READ) |
|
|
|
->setExpirationDate(new \DateTime('2000-01-01T01:02:03')) |
|
|
|
->setNode($file1) |
|
|
|
->setId(815); |
|
|
|
|
|
|
@@ -1009,6 +1010,7 @@ class ShareAPIControllerTest extends TestCase { |
|
|
|
->setSharedBy('initiator') |
|
|
|
->setShareOwner('currentUser') |
|
|
|
->setPermissions(\OCP\Constants::PERMISSION_READ) |
|
|
|
->setExpirationDate(new \DateTime('2000-01-02T01:02:03')) |
|
|
|
->setNode($file1) |
|
|
|
->setId(816); |
|
|
|
|
|
|
@@ -2173,6 +2175,146 @@ class ShareAPIControllerTest extends TestCase { |
|
|
|
$ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_LINK, null, 'false', '', null, 'a1b2d3'); |
|
|
|
} |
|
|
|
|
|
|
|
public function testCreateShareRemote() { |
|
|
|
$share = $this->newShare(); |
|
|
|
$this->shareManager->method('newShare')->willReturn($share); |
|
|
|
|
|
|
|
/** @var \OCA\Files_Sharing\Controller\ShareAPIController $ocs */ |
|
|
|
$ocs = $this->getMockBuilder(ShareAPIController::class) |
|
|
|
->setConstructorArgs([ |
|
|
|
$this->appName, |
|
|
|
$this->request, |
|
|
|
$this->shareManager, |
|
|
|
$this->groupManager, |
|
|
|
$this->userManager, |
|
|
|
$this->rootFolder, |
|
|
|
$this->urlGenerator, |
|
|
|
$this->currentUser, |
|
|
|
$this->l, |
|
|
|
$this->config, |
|
|
|
$this->appManager, |
|
|
|
$this->serverContainer, |
|
|
|
$this->userStatusManager, |
|
|
|
$this->previewManager, |
|
|
|
])->setMethods(['formatShare']) |
|
|
|
->getMock(); |
|
|
|
|
|
|
|
$userFolder = $this->getMockBuilder(Folder::class)->getMock(); |
|
|
|
$this->rootFolder->expects($this->once()) |
|
|
|
->method('getUserFolder') |
|
|
|
->with('currentUser') |
|
|
|
->willReturn($userFolder); |
|
|
|
|
|
|
|
$path = $this->getMockBuilder(File::class)->getMock(); |
|
|
|
$storage = $this->createMock(Storage::class); |
|
|
|
$storage->method('instanceOfStorage') |
|
|
|
->with('OCA\Files_Sharing\External\Storage') |
|
|
|
->willReturn(false); |
|
|
|
$path->method('getStorage')->willReturn($storage); |
|
|
|
$userFolder->expects($this->once()) |
|
|
|
->method('get') |
|
|
|
->with('valid-path') |
|
|
|
->willReturn($path); |
|
|
|
|
|
|
|
$this->userManager->method('userExists')->with('validUser')->willReturn(true); |
|
|
|
|
|
|
|
$path->expects($this->once()) |
|
|
|
->method('lock') |
|
|
|
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); |
|
|
|
|
|
|
|
$this->shareManager->method('createShare') |
|
|
|
->with($this->callback(function (\OCP\Share\IShare $share) use ($path) { |
|
|
|
return $share->getNode() === $path && |
|
|
|
$share->getPermissions() === ( |
|
|
|
\OCP\Constants::PERMISSION_ALL & |
|
|
|
~\OCP\Constants::PERMISSION_DELETE & |
|
|
|
~\OCP\Constants::PERMISSION_CREATE |
|
|
|
) && |
|
|
|
$share->getShareType() === IShare::TYPE_REMOTE && |
|
|
|
$share->getSharedWith() === 'user@example.org' && |
|
|
|
$share->getSharedBy() === 'currentUser'; |
|
|
|
})) |
|
|
|
->willReturnArgument(0); |
|
|
|
|
|
|
|
$this->shareManager->method('outgoingServer2ServerSharesAllowed')->willReturn(true); |
|
|
|
|
|
|
|
$expected = new DataResponse([]); |
|
|
|
$result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_REMOTE, 'user@example.org'); |
|
|
|
|
|
|
|
$this->assertInstanceOf(get_class($expected), $result); |
|
|
|
$this->assertEquals($expected->getData(), $result->getData()); |
|
|
|
} |
|
|
|
|
|
|
|
public function testCreateShareRemoteGroup() { |
|
|
|
$share = $this->newShare(); |
|
|
|
$this->shareManager->method('newShare')->willReturn($share); |
|
|
|
|
|
|
|
/** @var \OCA\Files_Sharing\Controller\ShareAPIController $ocs */ |
|
|
|
$ocs = $this->getMockBuilder(ShareAPIController::class) |
|
|
|
->setConstructorArgs([ |
|
|
|
$this->appName, |
|
|
|
$this->request, |
|
|
|
$this->shareManager, |
|
|
|
$this->groupManager, |
|
|
|
$this->userManager, |
|
|
|
$this->rootFolder, |
|
|
|
$this->urlGenerator, |
|
|
|
$this->currentUser, |
|
|
|
$this->l, |
|
|
|
$this->config, |
|
|
|
$this->appManager, |
|
|
|
$this->serverContainer, |
|
|
|
$this->userStatusManager, |
|
|
|
$this->previewManager, |
|
|
|
])->setMethods(['formatShare']) |
|
|
|
->getMock(); |
|
|
|
|
|
|
|
$userFolder = $this->getMockBuilder(Folder::class)->getMock(); |
|
|
|
$this->rootFolder->expects($this->once()) |
|
|
|
->method('getUserFolder') |
|
|
|
->with('currentUser') |
|
|
|
->willReturn($userFolder); |
|
|
|
|
|
|
|
$path = $this->getMockBuilder(File::class)->getMock(); |
|
|
|
$storage = $this->createMock(Storage::class); |
|
|
|
$storage->method('instanceOfStorage') |
|
|
|
->with('OCA\Files_Sharing\External\Storage') |
|
|
|
->willReturn(false); |
|
|
|
$path->method('getStorage')->willReturn($storage); |
|
|
|
$userFolder->expects($this->once()) |
|
|
|
->method('get') |
|
|
|
->with('valid-path') |
|
|
|
->willReturn($path); |
|
|
|
|
|
|
|
$this->userManager->method('userExists')->with('validUser')->willReturn(true); |
|
|
|
|
|
|
|
$path->expects($this->once()) |
|
|
|
->method('lock') |
|
|
|
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); |
|
|
|
|
|
|
|
$this->shareManager->method('createShare') |
|
|
|
->with($this->callback(function (\OCP\Share\IShare $share) use ($path) { |
|
|
|
return $share->getNode() === $path && |
|
|
|
$share->getPermissions() === ( |
|
|
|
\OCP\Constants::PERMISSION_ALL & |
|
|
|
~\OCP\Constants::PERMISSION_DELETE & |
|
|
|
~\OCP\Constants::PERMISSION_CREATE |
|
|
|
) && |
|
|
|
$share->getShareType() === IShare::TYPE_REMOTE_GROUP && |
|
|
|
$share->getSharedWith() === 'group@example.org' && |
|
|
|
$share->getSharedBy() === 'currentUser'; |
|
|
|
})) |
|
|
|
->willReturnArgument(0); |
|
|
|
|
|
|
|
$this->shareManager->method('outgoingServer2ServerGroupSharesAllowed')->willReturn(true); |
|
|
|
|
|
|
|
$expected = new DataResponse([]); |
|
|
|
$result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, IShare::TYPE_REMOTE_GROUP, 'group@example.org'); |
|
|
|
|
|
|
|
$this->assertInstanceOf(get_class($expected), $result); |
|
|
|
$this->assertEquals($expected->getData(), $result->getData()); |
|
|
|
} |
|
|
|
|
|
|
|
public function testCreateShareRoom() { |
|
|
|
$ocs = $this->mockFormatShare(); |
|
|
|
|
|
|
@@ -3841,6 +3983,7 @@ class ShareAPIControllerTest extends TestCase { |
|
|
|
->setPermissions(\OCP\Constants::PERMISSION_READ) |
|
|
|
->setNode($folder) |
|
|
|
->setShareTime(new \DateTime('2000-01-01T00:01:02')) |
|
|
|
->setExpirationDate(new \DateTime('2001-02-03T04:05:06')) |
|
|
|
->setTarget('myTarget') |
|
|
|
->setNote('personal note') |
|
|
|
->setId(42); |
|
|
@@ -3854,7 +3997,54 @@ class ShareAPIControllerTest extends TestCase { |
|
|
|
'permissions' => 1, |
|
|
|
'stime' => 946684862, |
|
|
|
'parent' => null, |
|
|
|
'expiration' => null, |
|
|
|
'expiration' => '2001-02-03 00:00:00', |
|
|
|
'token' => null, |
|
|
|
'uid_file_owner' => 'owner', |
|
|
|
'displayname_file_owner' => 'owner', |
|
|
|
'note' => 'personal note', |
|
|
|
'label' => null, |
|
|
|
'path' => 'folder', |
|
|
|
'item_type' => 'folder', |
|
|
|
'storage_id' => 'storageId', |
|
|
|
'storage' => 100, |
|
|
|
'item_source' => 2, |
|
|
|
'file_source' => 2, |
|
|
|
'file_parent' => 1, |
|
|
|
'file_target' => 'myTarget', |
|
|
|
'share_with' => 'user@server.com', |
|
|
|
'share_with_displayname' => 'foobar', |
|
|
|
'mail_send' => 0, |
|
|
|
'mimetype' => 'myFolderMimeType', |
|
|
|
'has_preview' => false, |
|
|
|
'hide_download' => 0, |
|
|
|
'can_edit' => false, |
|
|
|
'can_delete' => false, |
|
|
|
], $share, [], false |
|
|
|
]; |
|
|
|
|
|
|
|
$share = \OC::$server->getShareManager()->newShare(); |
|
|
|
$share->setShareType(IShare::TYPE_REMOTE_GROUP) |
|
|
|
->setSharedBy('initiator') |
|
|
|
->setSharedWith('user@server.com') |
|
|
|
->setShareOwner('owner') |
|
|
|
->setPermissions(\OCP\Constants::PERMISSION_READ) |
|
|
|
->setNode($folder) |
|
|
|
->setShareTime(new \DateTime('2000-01-01T00:01:02')) |
|
|
|
->setExpirationDate(new \DateTime('2001-02-03T04:05:06')) |
|
|
|
->setTarget('myTarget') |
|
|
|
->setNote('personal note') |
|
|
|
->setId(42); |
|
|
|
|
|
|
|
$result[] = [ |
|
|
|
[ |
|
|
|
'id' => 42, |
|
|
|
'share_type' => IShare::TYPE_REMOTE_GROUP, |
|
|
|
'uid_owner' => 'initiator', |
|
|
|
'displayname_owner' => 'initiator', |
|
|
|
'permissions' => 1, |
|
|
|
'stime' => 946684862, |
|
|
|
'parent' => null, |
|
|
|
'expiration' => '2001-02-03 00:00:00', |
|
|
|
'token' => null, |
|
|
|
'uid_file_owner' => 'owner', |
|
|
|
'displayname_file_owner' => 'owner', |