Use parameters in createShare

* Fix tests
This commit is contained in:
Roeland Jago Douma 2016-08-16 22:45:49 +02:00
parent c40fa47944
commit 22e23f3045
No known key found for this signature in database
GPG Key ID: 1E152838F164D13B
3 changed files with 80 additions and 280 deletions

View File

@ -246,17 +246,32 @@ class Share20OCS extends OCSController {
/** /**
* @NoAdminRequired * @NoAdminRequired
* *
* @param string $path
* @param int $permissions
* @param int $shareType
* @param string $shareWith
* @param string $publicUpload
* @param string $password
* @param string $expireDate
*
* @return DataResponse * @return DataResponse
* @throws OCSNotFoundException * @throws OCSNotFoundException
* @throws OCSForbiddenException * @throws OCSForbiddenException
* @throws OCSBadRequestException * @throws OCSBadRequestException
* @throws OCSException * @throws OCSException
*/ */
public function createShare() { public function createShare(
$path = null,
$permissions = \OCP\Constants::PERMISSION_ALL,
$shareType = -1,
$shareWith = null,
$publicUpload = 'false',
$password = '',
$expireDate = ''
) {
$share = $this->shareManager->newShare(); $share = $this->shareManager->newShare();
// Verify path // Verify path
$path = $this->request->getParam('path', null);
if ($path === null) { if ($path === null) {
throw new OCSNotFoundException($this->l->t('Please specify a file or folder path')); throw new OCSNotFoundException($this->l->t('Please specify a file or folder path'));
} }
@ -276,14 +291,6 @@ class Share20OCS extends OCSController {
throw new OCSNotFoundException($this->l->t('Could not create share')); throw new OCSNotFoundException($this->l->t('Could not create share'));
} }
// Parse permissions (if available)
$permissions = $this->request->getParam('permissions', null);
if ($permissions === null) {
$permissions = \OCP\Constants::PERMISSION_ALL;
} else {
$permissions = (int)$permissions;
}
if ($permissions < 0 || $permissions > \OCP\Constants::PERMISSION_ALL) { if ($permissions < 0 || $permissions > \OCP\Constants::PERMISSION_ALL) {
throw new OCSNotFoundException($this->l->t('invalid permissions')); throw new OCSNotFoundException($this->l->t('invalid permissions'));
} }
@ -306,9 +313,6 @@ class Share20OCS extends OCSController {
$permissions &= ~($permissions & ~$path->getPermissions()); $permissions &= ~($permissions & ~$path->getPermissions());
} }
$shareWith = $this->request->getParam('shareWith', null);
$shareType = (int)$this->request->getParam('shareType', '-1');
if ($shareType === \OCP\Share::SHARE_TYPE_USER) { if ($shareType === \OCP\Share::SHARE_TYPE_USER) {
// Valid user is required to share // Valid user is required to share
if ($shareWith === null || !$this->userManager->userExists($shareWith)) { if ($shareWith === null || !$this->userManager->userExists($shareWith)) {
@ -342,7 +346,6 @@ class Share20OCS extends OCSController {
return new DataResponse($this->formatShare($existingShares[0])); return new DataResponse($this->formatShare($existingShares[0]));
} }
$publicUpload = $this->request->getParam('publicUpload', null);
if ($publicUpload === 'true') { if ($publicUpload === 'true') {
// Check if public upload is allowed // Check if public upload is allowed
if (!$this->shareManager->shareApiLinkAllowPublicUpload()) { if (!$this->shareManager->shareApiLinkAllowPublicUpload()) {
@ -365,15 +368,11 @@ class Share20OCS extends OCSController {
} }
// Set password // Set password
$password = $this->request->getParam('password', '');
if ($password !== '') { if ($password !== '') {
$share->setPassword($password); $share->setPassword($password);
} }
//Expire date //Expire date
$expireDate = $this->request->getParam('expireDate', '');
if ($expireDate !== '') { if ($expireDate !== '') {
try { try {
$expireDate = $this->parseDate($expireDate); $expireDate = $this->parseDate($expireDate);

View File

@ -89,8 +89,6 @@ class Share20OCSTest extends \Test\TestCase {
$this->currentUser = $this->getMockBuilder('OCP\IUser')->getMock(); $this->currentUser = $this->getMockBuilder('OCP\IUser')->getMock();
$this->currentUser->method('getUID')->willReturn('currentUser'); $this->currentUser->method('getUID')->willReturn('currentUser');
$this->userManager->expects($this->any())->method('userExists')->willReturn(true);
$this->l = $this->getMockBuilder('\OCP\IL10N')->getMock(); $this->l = $this->getMockBuilder('\OCP\IL10N')->getMock();
$this->l->method('t') $this->l->method('t')
->will($this->returnCallback(function($text, $parameters = []) { ->will($this->returnCallback(function($text, $parameters = []) {
@ -565,12 +563,6 @@ class Share20OCSTest extends \Test\TestCase {
* @expectedExceptionMessage Wrong path, file/folder doesn't exist * @expectedExceptionMessage Wrong path, file/folder doesn't exist
*/ */
public function testCreateShareInvalidPath() { public function testCreateShareInvalidPath() {
$this->request
->method('getParam')
->will($this->returnValueMap([
['path', null, 'invalid-path'],
]));
$userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock();
$this->rootFolder->expects($this->once()) $this->rootFolder->expects($this->once())
->method('getUserFolder') ->method('getUserFolder')
@ -582,7 +574,7 @@ class Share20OCSTest extends \Test\TestCase {
->with('invalid-path') ->with('invalid-path')
->will($this->throwException(new \OCP\Files\NotFoundException())); ->will($this->throwException(new \OCP\Files\NotFoundException()));
$this->ocs->createShare(); $this->ocs->createShare('invalid-path');
} }
/** /**
@ -593,13 +585,6 @@ class Share20OCSTest extends \Test\TestCase {
$share = $this->newShare(); $share = $this->newShare();
$this->shareManager->method('newShare')->willReturn($share); $this->shareManager->method('newShare')->willReturn($share);
$this->request
->method('getParam')
->will($this->returnValueMap([
['path', null, 'valid-path'],
['permissions', null, 32],
]));
$userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock();
$this->rootFolder->expects($this->once()) $this->rootFolder->expects($this->once())
->method('getUserFolder') ->method('getUserFolder')
@ -616,7 +601,7 @@ class Share20OCSTest extends \Test\TestCase {
->method('lock') ->method('lock')
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
$this->ocs->createShare(); $this->ocs->createShare('valid-path', 32);
} }
/** /**
@ -627,14 +612,6 @@ class Share20OCSTest extends \Test\TestCase {
$share = $this->newShare(); $share = $this->newShare();
$this->shareManager->method('newShare')->willReturn($share); $this->shareManager->method('newShare')->willReturn($share);
$this->request
->method('getParam')
->will($this->returnValueMap([
['path', null, 'valid-path'],
['permissions', null, \OCP\Constants::PERMISSION_ALL],
['shareType', $this->any(), \OCP\Share::SHARE_TYPE_USER],
]));
$userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock();
$this->rootFolder->expects($this->once()) $this->rootFolder->expects($this->once())
->method('getUserFolder') ->method('getUserFolder')
@ -656,7 +633,7 @@ class Share20OCSTest extends \Test\TestCase {
->method('lock') ->method('lock')
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
$this->ocs->createShare(); $this->ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_USER);
} }
/** /**
@ -667,15 +644,6 @@ class Share20OCSTest extends \Test\TestCase {
$share = $this->newShare(); $share = $this->newShare();
$this->shareManager->method('newShare')->willReturn($share); $this->shareManager->method('newShare')->willReturn($share);
$this->request
->method('getParam')
->will($this->returnValueMap([
['path', null, 'valid-path'],
['permissions', null, \OCP\Constants::PERMISSION_ALL],
['shareType', $this->any(), \OCP\Share::SHARE_TYPE_USER],
['shareWith', $this->any(), 'invalidUser'],
]));
$userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock();
$this->rootFolder->expects($this->once()) $this->rootFolder->expects($this->once())
->method('getUserFolder') ->method('getUserFolder')
@ -692,12 +660,14 @@ class Share20OCSTest extends \Test\TestCase {
->method('get') ->method('get')
->with('valid-path') ->with('valid-path')
->willReturn($path); ->willReturn($path);
$path->expects($this->once()) $path->expects($this->once())
->method('lock') ->method('lock')
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
$this->userManager->method('userExists')
->with('invalidUser')
->willReturn(false);
$this->ocs->createShare(); $this->ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_USER, 'invalidUser');
} }
public function testCreateShareUser() { public function testCreateShareUser() {
@ -719,15 +689,6 @@ class Share20OCSTest extends \Test\TestCase {
])->setMethods(['formatShare']) ])->setMethods(['formatShare'])
->getMock(); ->getMock();
$this->request
->method('getParam')
->will($this->returnValueMap([
['path', null, 'valid-path'],
['permissions', null, \OCP\Constants::PERMISSION_ALL],
['shareType', $this->any(), \OCP\Share::SHARE_TYPE_USER],
['shareWith', null, 'validUser'],
]));
$userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock();
$this->rootFolder->expects($this->once()) $this->rootFolder->expects($this->once())
->method('getUserFolder') ->method('getUserFolder')
@ -766,7 +727,7 @@ class Share20OCSTest extends \Test\TestCase {
->will($this->returnArgument(0)); ->will($this->returnArgument(0));
$expected = new DataResponse(null); $expected = new DataResponse(null);
$result = $ocs->createShare(); $result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_USER, 'validUser');
$this->assertInstanceOf(get_class($expected), $result); $this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData()); $this->assertEquals($expected->getData(), $result->getData());
@ -774,21 +735,13 @@ class Share20OCSTest extends \Test\TestCase {
/** /**
* @expectedException \OCP\AppFramework\OCS\OCSNotFoundException * @expectedException \OCP\AppFramework\OCS\OCSNotFoundException
* @expectedExceptionMessage Please specify a valid user * @expectedExceptionMessage Please specify a valid group
*/ */
public function testCreateShareGroupNoValidShareWith() { public function testCreateShareGroupNoValidShareWith() {
$share = $this->newShare(); $share = $this->newShare();
$this->shareManager->method('newShare')->willReturn($share); $this->shareManager->method('newShare')->willReturn($share);
$this->shareManager->method('createShare')->will($this->returnArgument(0)); $this->shareManager->method('createShare')->will($this->returnArgument(0));
$this->shareManager->method('allowGroupSharing')->willReturn(true);
$this->request
->method('getParam')
->will($this->returnValueMap([
['path', null, 'valid-path'],
['permissions', null, \OCP\Constants::PERMISSION_ALL],
['shareType', $this->any(), \OCP\Share::SHARE_TYPE_GROUP],
['shareWith', $this->any(), 'invalidGroup'],
]));
$userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock();
$this->rootFolder->expects($this->once()) $this->rootFolder->expects($this->once())
@ -811,7 +764,7 @@ class Share20OCSTest extends \Test\TestCase {
->method('lock') ->method('lock')
->with(\OCP\Lock\ILockingProvider::LOCK_SHARED); ->with(\OCP\Lock\ILockingProvider::LOCK_SHARED);
$this->ocs->createShare(); $this->ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_GROUP, 'invalidGroup');
} }
public function testCreateShareGroup() { public function testCreateShareGroup() {
@ -879,7 +832,7 @@ class Share20OCSTest extends \Test\TestCase {
->will($this->returnArgument(0)); ->will($this->returnArgument(0));
$expected = new DataResponse(null); $expected = new DataResponse(null);
$result = $ocs->createShare(); $result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_GROUP, 'validGroup');
$this->assertInstanceOf(get_class($expected), $result); $this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData()); $this->assertEquals($expected->getData(), $result->getData());
@ -893,15 +846,6 @@ class Share20OCSTest extends \Test\TestCase {
$share = $this->newShare(); $share = $this->newShare();
$this->shareManager->method('newShare')->willReturn($share); $this->shareManager->method('newShare')->willReturn($share);
$this->request
->method('getParam')
->will($this->returnValueMap([
['path', null, 'valid-path'],
['permissions', null, \OCP\Constants::PERMISSION_ALL],
['shareType', '-1', \OCP\Share::SHARE_TYPE_GROUP],
['shareWith', null, 'validGroup'],
]));
$userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock();
$this->rootFolder->expects($this->once()) $this->rootFolder->expects($this->once())
->method('getUserFolder') ->method('getUserFolder')
@ -925,7 +869,7 @@ class Share20OCSTest extends \Test\TestCase {
->method('allowGroupSharing') ->method('allowGroupSharing')
->willReturn(false); ->willReturn(false);
$this->ocs->createShare(); $this->ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_GROUP, 'invalidGroup');
} }
/** /**
@ -951,7 +895,7 @@ class Share20OCSTest extends \Test\TestCase {
$this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare()); $this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare());
$this->ocs->createShare(); $this->ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK);
} }
/** /**
@ -959,14 +903,6 @@ class Share20OCSTest extends \Test\TestCase {
* @expectedExceptionMessage Public upload disabled by the administrator * @expectedExceptionMessage Public upload disabled by the administrator
*/ */
public function testCreateShareLinkNoPublicUpload() { public function testCreateShareLinkNoPublicUpload() {
$this->request
->method('getParam')
->will($this->returnValueMap([
['path', null, 'valid-path'],
['shareType', '-1', \OCP\Share::SHARE_TYPE_LINK],
['publicUpload', null, 'true'],
]));
$path = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); $path = $this->getMockBuilder('\OCP\Files\Folder')->getMock();
$storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock();
$storage->method('instanceOfStorage') $storage->method('instanceOfStorage')
@ -979,7 +915,7 @@ class Share20OCSTest extends \Test\TestCase {
$this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare()); $this->shareManager->method('newShare')->willReturn(\OC::$server->getShareManager()->newShare());
$this->shareManager->method('shareApiAllowLinks')->willReturn(true); $this->shareManager->method('shareApiAllowLinks')->willReturn(true);
$this->ocs->createShare(); $this->ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK, null, 'true');
} }
/** /**
@ -987,14 +923,6 @@ class Share20OCSTest extends \Test\TestCase {
* @expectedExceptionMessage Public upload is only possible for publicly shared folders * @expectedExceptionMessage Public upload is only possible for publicly shared folders
*/ */
public function testCreateShareLinkPublicUploadFile() { public function testCreateShareLinkPublicUploadFile() {
$this->request
->method('getParam')
->will($this->returnValueMap([
['path', null, 'valid-path'],
['shareType', '-1', \OCP\Share::SHARE_TYPE_LINK],
['publicUpload', null, 'true'],
]));
$path = $this->getMockBuilder('\OCP\Files\File')->getMock(); $path = $this->getMockBuilder('\OCP\Files\File')->getMock();
$storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock();
$storage->method('instanceOfStorage') $storage->method('instanceOfStorage')
@ -1008,22 +936,12 @@ class Share20OCSTest extends \Test\TestCase {
$this->shareManager->method('shareApiAllowLinks')->willReturn(true); $this->shareManager->method('shareApiAllowLinks')->willReturn(true);
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true); $this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
$this->ocs->createShare(); $this->ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK, null, 'true');
} }
public function testCreateShareLinkPublicUploadFolder() { public function testCreateShareLinkPublicUploadFolder() {
$ocs = $this->mockFormatShare(); $ocs = $this->mockFormatShare();
$this->request
->method('getParam')
->will($this->returnValueMap([
['path', null, 'valid-path'],
['shareType', '-1', \OCP\Share::SHARE_TYPE_LINK],
['publicUpload', null, 'true'],
['expireDate', '', ''],
['password', '', ''],
]));
$path = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); $path = $this->getMockBuilder('\OCP\Files\Folder')->getMock();
$storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock();
$storage->method('instanceOfStorage') $storage->method('instanceOfStorage')
@ -1049,7 +967,7 @@ class Share20OCSTest extends \Test\TestCase {
)->will($this->returnArgument(0)); )->will($this->returnArgument(0));
$expected = new DataResponse(null); $expected = new DataResponse(null);
$result = $ocs->createShare(); $result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK, null, 'true', '', '');
$this->assertInstanceOf(get_class($expected), $result); $this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData()); $this->assertEquals($expected->getData(), $result->getData());
@ -1058,16 +976,6 @@ class Share20OCSTest extends \Test\TestCase {
public function testCreateShareLinkPassword() { public function testCreateShareLinkPassword() {
$ocs = $this->mockFormatShare(); $ocs = $this->mockFormatShare();
$this->request
->method('getParam')
->will($this->returnValueMap([
['path', null, 'valid-path'],
['shareType', '-1', \OCP\Share::SHARE_TYPE_LINK],
['publicUpload', null, 'false'],
['expireDate', '', ''],
['password', '', 'password'],
]));
$path = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); $path = $this->getMockBuilder('\OCP\Files\Folder')->getMock();
$storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock();
$storage->method('instanceOfStorage') $storage->method('instanceOfStorage')
@ -1093,7 +1001,7 @@ class Share20OCSTest extends \Test\TestCase {
)->will($this->returnArgument(0)); )->will($this->returnArgument(0));
$expected = new DataResponse(null); $expected = new DataResponse(null);
$result = $ocs->createShare(); $result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK, null, 'false', 'password', '');
$this->assertInstanceOf(get_class($expected), $result); $this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData()); $this->assertEquals($expected->getData(), $result->getData());
@ -1140,7 +1048,7 @@ class Share20OCSTest extends \Test\TestCase {
)->will($this->returnArgument(0)); )->will($this->returnArgument(0));
$expected = new DataResponse(null); $expected = new DataResponse(null);
$result = $ocs->createShare(); $result = $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK, null, 'false', '', '2000-01-01');
$this->assertInstanceOf(get_class($expected), $result); $this->assertInstanceOf(get_class($expected), $result);
$this->assertEquals($expected->getData(), $result->getData()); $this->assertEquals($expected->getData(), $result->getData());
@ -1153,16 +1061,6 @@ class Share20OCSTest extends \Test\TestCase {
public function testCreateShareInvalidExpireDate() { public function testCreateShareInvalidExpireDate() {
$ocs = $this->mockFormatShare(); $ocs = $this->mockFormatShare();
$this->request
->method('getParam')
->will($this->returnValueMap([
['path', null, 'valid-path'],
['shareType', '-1', \OCP\Share::SHARE_TYPE_LINK],
['publicUpload', null, 'false'],
['expireDate', '', 'a1b2d3'],
['password', '', ''],
]));
$path = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); $path = $this->getMockBuilder('\OCP\Files\Folder')->getMock();
$storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock();
$storage->method('instanceOfStorage') $storage->method('instanceOfStorage')
@ -1176,7 +1074,7 @@ class Share20OCSTest extends \Test\TestCase {
$this->shareManager->method('shareApiAllowLinks')->willReturn(true); $this->shareManager->method('shareApiAllowLinks')->willReturn(true);
$this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true); $this->shareManager->method('shareApiLinkAllowPublicUpload')->willReturn(true);
$ocs->createShare(); $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK, null, 'false', '', 'a1b2d3');
} }
/** /**
@ -1201,15 +1099,6 @@ class Share20OCSTest extends \Test\TestCase {
])->setMethods(['formatShare']) ])->setMethods(['formatShare'])
->getMock(); ->getMock();
$this->request
->method('getParam')
->will($this->returnValueMap([
['path', null, 'valid-path'],
['permissions', null, \OCP\Constants::PERMISSION_ALL],
['shareType', $this->any(), \OCP\Share::SHARE_TYPE_USER],
['shareWith', null, 'validUser'],
]));
$userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock();
$this->rootFolder->expects($this->once()) $this->rootFolder->expects($this->once())
->method('getUserFolder') ->method('getUserFolder')
@ -1238,7 +1127,7 @@ class Share20OCSTest extends \Test\TestCase {
})) }))
->will($this->returnArgument(0)); ->will($this->returnArgument(0));
$ocs->createShare(); $ocs->createShare('valid-path', \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_USER, 'validUser');
} }
/** /**

View File

@ -130,14 +130,9 @@ class ApiTest extends TestCase {
* @medium * @medium
*/ */
function testCreateShareUserFile() { function testCreateShareUserFile() {
// simulate a post request $request = $this->createRequest([]);
$data['path'] = $this->filename;
$data['shareWith'] = self::TEST_FILES_SHARING_API_USER2;
$data['shareType'] = \OCP\Share::SHARE_TYPE_USER;
$request = $this->createRequest($data);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare(); $result = $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
$ocs->cleanup(); $ocs->cleanup();
$data = $result->getData(); $data = $result->getData();
@ -154,14 +149,9 @@ class ApiTest extends TestCase {
} }
function testCreateShareUserFolder() { function testCreateShareUserFolder() {
// simulate a post request $request = $this->createRequest([]);
$data['path'] = $this->folder;
$data['shareWith'] = self::TEST_FILES_SHARING_API_USER2;
$data['shareType'] = \OCP\Share::SHARE_TYPE_USER;
$request = $this->createRequest($data);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare(); $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
$ocs->cleanup(); $ocs->cleanup();
$data = $result->getData(); $data = $result->getData();
@ -179,14 +169,9 @@ class ApiTest extends TestCase {
function testCreateShareGroupFile() { function testCreateShareGroupFile() {
// simulate a post request $request = $this->createRequest([]);
$data['path'] = $this->filename;
$data['shareWith'] = self::TEST_FILES_SHARING_API_GROUP1;
$data['shareType'] = \OCP\Share::SHARE_TYPE_GROUP;
$request = $this->createRequest($data);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare(); $result = $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_GROUP, self::TEST_FILES_SHARING_API_GROUP1);
$ocs->cleanup(); $ocs->cleanup();
$data = $result->getData(); $data = $result->getData();
@ -202,14 +187,9 @@ class ApiTest extends TestCase {
} }
function testCreateShareGroupFolder() { function testCreateShareGroupFolder() {
// simulate a post request $request = $this->createRequest([]);
$data['path'] = $this->folder;
$data['shareWith'] = self::TEST_FILES_SHARING_API_GROUP1;
$data['shareType'] = \OCP\Share::SHARE_TYPE_GROUP;
$request = $this->createRequest($data);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare(); $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_GROUP, self::TEST_FILES_SHARING_API_GROUP1);
$ocs->cleanup(); $ocs->cleanup();
$data = $result->getData(); $data = $result->getData();
@ -226,13 +206,9 @@ class ApiTest extends TestCase {
} }
public function testCreateShareLink() { public function testCreateShareLink() {
// simulate a post request $request = $this->createRequest([]);
$data['path'] = $this->folder;
$data['shareType'] = \OCP\Share::SHARE_TYPE_LINK;
$request = $this->createRequest($data);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare(); $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK);
$ocs->cleanup(); $ocs->cleanup();
$data = $result->getData(); $data = $result->getData();
@ -253,14 +229,9 @@ class ApiTest extends TestCase {
} }
public function testCreateShareLinkPublicUpload() { public function testCreateShareLinkPublicUpload() {
// simulate a post request $request = $this->createRequest([]);
$data['path'] = $this->folder;
$data['shareType'] = \OCP\Share::SHARE_TYPE_LINK;
$data['publicUpload'] = 'true';
$request = $this->createRequest($data);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare(); $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK, null, 'true');
$ocs->cleanup(); $ocs->cleanup();
$data = $result->getData(); $data = $result->getData();
@ -291,30 +262,20 @@ class ApiTest extends TestCase {
$appConfig = \OC::$server->getAppConfig(); $appConfig = \OC::$server->getAppConfig();
$appConfig->setValue('core', 'shareapi_enforce_links_password', 'yes'); $appConfig->setValue('core', 'shareapi_enforce_links_password', 'yes');
// don't allow to share link without a password $request = $this->createRequest([]);
$data['path'] = $this->folder;
$data['shareType'] = \OCP\Share::SHARE_TYPE_LINK;
$request = $this->createRequest($data);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
try { try {
$ocs->createShare(); $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK);
$this->fail(); $this->fail();
} catch (OCSForbiddenException $e) { } catch (OCSForbiddenException $e) {
} }
$ocs->cleanup(); $ocs->cleanup();
// don't allow to share link without a empty password $request = $this->createRequest([]);
$data = [];
$data['path'] = $this->folder;
$data['shareType'] = \OCP\Share::SHARE_TYPE_LINK;
$data['password'] = '';
$request = $this->createRequest($data);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
try { try {
$ocs->createShare(); $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK, null, 'false', '');
$this->fail(); $this->fail();
} catch (OCSForbiddenException $e) { } catch (OCSForbiddenException $e) {
@ -322,14 +283,9 @@ class ApiTest extends TestCase {
$ocs->cleanup(); $ocs->cleanup();
// share with password should succeed // share with password should succeed
$data = []; $request = $this->createRequest([]);
$data['path'] = $this->folder;
$data['shareType'] = \OCP\Share::SHARE_TYPE_LINK;
$data['password'] = 'foo';
$request = $this->createRequest($data);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare(); $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK, null, 'false', 'bar');
$ocs->cleanup(); $ocs->cleanup();
$data = $result->getData(); $data = $result->getData();
@ -373,13 +329,10 @@ class ApiTest extends TestCase {
// sharing file to a user should work if shareapi_exclude_groups is set // sharing file to a user should work if shareapi_exclude_groups is set
// to no // to no
\OC::$server->getAppConfig()->setValue('core', 'shareapi_exclude_groups', 'no'); \OC::$server->getAppConfig()->setValue('core', 'shareapi_exclude_groups', 'no');
$post['path'] = $this->filename;
$post['shareWith'] = self::TEST_FILES_SHARING_API_USER2;
$post['shareType'] = \OCP\Share::SHARE_TYPE_USER;
$request = $this->createRequest($post); $request = $this->createRequest([]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare(); $result = $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
$ocs->cleanup(); $ocs->cleanup();
$data = $result->getData(); $data = $result->getData();
@ -388,21 +341,16 @@ class ApiTest extends TestCase {
$request = $this->createRequest([]); $request = $this->createRequest([]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->deleteShare($data['id']); $ocs->deleteShare($data['id']);
$ocs->cleanup(); $ocs->cleanup();
// exclude groups, but not the group the user belongs to. Sharing should still work // exclude groups, but not the group the user belongs to. Sharing should still work
\OC::$server->getAppConfig()->setValue('core', 'shareapi_exclude_groups', 'yes'); \OC::$server->getAppConfig()->setValue('core', 'shareapi_exclude_groups', 'yes');
\OC::$server->getAppConfig()->setValue('core', 'shareapi_exclude_groups_list', 'admin,group1,group2'); \OC::$server->getAppConfig()->setValue('core', 'shareapi_exclude_groups_list', 'admin,group1,group2');
$post = []; $request = $this->createRequest([]);
$post['path'] = $this->filename;
$post['shareWith'] = self::TEST_FILES_SHARING_API_USER2;
$post['shareType'] = \OCP\Share::SHARE_TYPE_USER;
$request = $this->createRequest($post);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare(); $result = $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
$ocs->cleanup(); $ocs->cleanup();
$data = $result->getData(); $data = $result->getData();
@ -417,14 +365,9 @@ class ApiTest extends TestCase {
// now we exclude the group the user belongs to ('group'), sharing should fail now // now we exclude the group the user belongs to ('group'), sharing should fail now
\OC::$server->getAppConfig()->setValue('core', 'shareapi_exclude_groups_list', 'admin,group'); \OC::$server->getAppConfig()->setValue('core', 'shareapi_exclude_groups_list', 'admin,group');
$post = []; $request = $this->createRequest([]);
$post['path'] = $this->filename;
$post['shareWith'] = self::TEST_FILES_SHARING_API_USER2;
$post['shareType'] = \OCP\Share::SHARE_TYPE_USER;
$request = $this->createRequest($post);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$ocs->createShare(); $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
$ocs->cleanup(); $ocs->cleanup();
// cleanup // cleanup
@ -492,13 +435,9 @@ class ApiTest extends TestCase {
* @medium * @medium
*/ */
function testPublicLinkUrl() { function testPublicLinkUrl() {
// simulate a post request $request = $this->createRequest([]);
$post['path'] = $this->folder;
$post['shareType'] = \OCP\Share::SHARE_TYPE_LINK;
$request = $this->createRequest($post);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare(); $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK);
$ocs->cleanup(); $ocs->cleanup();
$data = $result->getData(); $data = $result->getData();
@ -1473,15 +1412,11 @@ class ApiTest extends TestCase {
* @dataProvider datesProvider * @dataProvider datesProvider
*/ */
public function testPublicLinkExpireDate($date, $valid) { public function testPublicLinkExpireDate($date, $valid) {
$request = $this->createRequest([ $request = $this->createRequest([]);
'path' => $this->folder,
'shareType' => \OCP\Share::SHARE_TYPE_LINK,
'expireDate' => $date,
]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
try { try {
$result = $ocs->createShare(); $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK, null, 'false', '', $date);
$this->assertTrue($valid); $this->assertTrue($valid);
} catch (OCSNotFoundException $e) { } catch (OCSNotFoundException $e) {
$this->assertFalse($valid); $this->assertFalse($valid);
@ -1516,13 +1451,9 @@ class ApiTest extends TestCase {
$date = new \DateTime(); $date = new \DateTime();
$date->add(new \DateInterval('P5D')); $date->add(new \DateInterval('P5D'));
$request = $this->createRequest([ $request = $this->createRequest([]);
'path' => $this->folder,
'shareType' => \OCP\Share::SHARE_TYPE_LINK,
'expireDate' => $date->format('Y-m-d'),
]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare(); $result = $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK, null, 'false', '', $date->format('Y-m-d'));
$ocs->cleanup(); $ocs->cleanup();
$data = $result->getData(); $data = $result->getData();
@ -1553,15 +1484,11 @@ class ApiTest extends TestCase {
$date = new \DateTime(); $date = new \DateTime();
$date->add(new \DateInterval('P8D')); $date->add(new \DateInterval('P8D'));
$request = $this->createRequest([ $request = $this->createRequest([]);
'path' => $this->folder,
'shareType' => \OCP\Share::SHARE_TYPE_LINK,
'expireDate' => $date->format('Y-m-d'),
]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
try { try {
$ocs->createShare(); $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK, null, 'false', '', $date->format('Y-m-d'));
$this->fail(); $this->fail();
} catch (OCSException $e) { } catch (OCSException $e) {
$this->assertEquals(404, $e->getCode()); $this->assertEquals(404, $e->getCode());
@ -1579,15 +1506,11 @@ class ApiTest extends TestCase {
$date = new \DateTime(); $date = new \DateTime();
$date->sub(new \DateInterval('P8D')); $date->sub(new \DateInterval('P8D'));
$request = $this->createRequest([ $request = $this->createRequest([]);
'path' => $this->folder,
'shareType' => \OCP\Share::SHARE_TYPE_LINK,
'expireDate' => $date->format('Y-m-d'),
]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
try { try {
$result = $ocs->createShare(); $ocs->createShare($this->filename, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK, null, 'false', '', $date->format('Y-m-d'));
$this->fail(); $this->fail();
} catch(OCSException $e) { } catch(OCSException $e) {
$this->assertEquals(404, $e->getCode()); $this->assertEquals(404, $e->getCode());
@ -1605,13 +1528,9 @@ class ApiTest extends TestCase {
*/ */
public function testInvisibleSharesUser() { public function testInvisibleSharesUser() {
// simulate a post request // simulate a post request
$request = $this->createRequest([ $request = $this->createRequest([]);
'path' => $this->folder,
'shareWith' => self::TEST_FILES_SHARING_API_USER2,
'shareType' => \OCP\Share::SHARE_TYPE_USER
]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare(); $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
$ocs->cleanup(); $ocs->cleanup();
$data = $result->getData(); $data = $result->getData();
@ -1622,7 +1541,7 @@ class ApiTest extends TestCase {
'shareType' => \OCP\Share::SHARE_TYPE_LINK, 'shareType' => \OCP\Share::SHARE_TYPE_LINK,
]); ]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2);
$result = $ocs->createShare(); $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK);
$ocs->cleanup(); $ocs->cleanup();
$request = $this->createRequest([]); $request = $this->createRequest([]);
@ -1646,24 +1565,17 @@ class ApiTest extends TestCase {
*/ */
public function testInvisibleSharesGroup() { public function testInvisibleSharesGroup() {
// simulate a post request // simulate a post request
$request = $this->createRequest([ $request = $this->createRequest([]);
'path' => $this->folder,
'shareWith' => self::TEST_FILES_SHARING_API_GROUP1,
'shareType' => \OCP\Share::SHARE_TYPE_GROUP
]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER1);
$result = $ocs->createShare(); $result = $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_GROUP, self::TEST_FILES_SHARING_API_GROUP1);
$ocs->cleanup(); $ocs->cleanup();
$data = $result->getData(); $data = $result->getData();
$topId = $data['id']; $topId = $data['id'];
$request = $this->createRequest([ $request = $this->createRequest([]);
'path' => $this->folder . $this->subfolder,
'shareType' => \OCP\Share::SHARE_TYPE_LINK,
]);
$ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2); $ocs = $this->createOCS($request, self::TEST_FILES_SHARING_API_USER2);
$result = $ocs->createShare(); $ocs->createShare($this->folder, \OCP\Constants::PERMISSION_ALL, \OCP\Share::SHARE_TYPE_LINK);
$ocs->cleanup(); $ocs->cleanup();
$request = $this->createRequest([]); $request = $this->createRequest([]);